Skip to content

Commit ee92c07

Browse files
author
thk123
committed
Don't load nil types when lazy loading
This can happen when processing the clone method which sets its return type to be a void*
1 parent 9986658 commit ee92c07

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

jbmc/src/java_bytecode/ci_lazy_methods_needed.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ void ci_lazy_methods_neededt::gather_field_types(
138138
{
139139
const typet &element_type =
140140
java_array_element_type(to_struct_tag_type(class_type));
141-
if(element_type.id() == ID_pointer)
141+
if(
142+
element_type.id() == ID_pointer &&
143+
element_type.subtype().id() != ID_empty)
142144
{
143145
// This is a reference array -- mark its element type available.
144146
add_all_needed_classes(to_pointer_type(element_type));

jbmc/src/java_bytecode/java_types.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ typet java_type_from_char(char t)
209209
case 'f': return java_float_type();
210210
case 'd': return java_double_type();
211211
case 'z': return java_boolean_type();
212-
case 'a': return java_lang_object_type();
212+
case 'a': return java_reference_type(void_typet());
213213
default:
214214
UNREACHABLE;
215215
}

0 commit comments

Comments
 (0)