Skip to content

Commit 5887174

Browse files
authored
Merge pull request #6580 from diffblue/pointer_base_type
introduce pointer_typet::base_type()
2 parents 9f9ee07 + 4f135cc commit 5887174

File tree

56 files changed

+173
-155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+173
-155
lines changed

jbmc/src/java_bytecode/assignments_from_json.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ static java_class_typet
6666
followed_class_type(const exprt &expr, const symbol_table_baset &symbol_table)
6767
{
6868
const pointer_typet &pointer_type = to_pointer_type(expr.type());
69-
const java_class_typet &java_class_type =
70-
to_java_class_type(namespacet{symbol_table}.follow(pointer_type.subtype()));
69+
const java_class_typet &java_class_type = to_java_class_type(
70+
namespacet{symbol_table}.follow(pointer_type.base_type()));
7171
return java_class_type;
7272
}
7373

@@ -602,7 +602,7 @@ static code_with_references_listt assign_non_enum_pointer_from_json(
602602
code_blockt output_code;
603603
exprt dereferenced_symbol_expr =
604604
info.allocate_objects.allocate_dynamic_object(
605-
output_code, expr, to_pointer_type(expr.type()).subtype());
605+
output_code, expr, to_pointer_type(expr.type()).base_type());
606606
for(codet &code : output_code.statements())
607607
result.add(std::move(code));
608608
result.append(assign_struct_from_json(dereferenced_symbol_expr, json, info));
@@ -754,7 +754,7 @@ static get_or_create_reference_resultt get_or_create_reference(
754754
{
755755
code_blockt block;
756756
reference.expr = info.allocate_objects.allocate_dynamic_object_symbol(
757-
block, expr, pointer_type.subtype());
757+
block, expr, pointer_type.base_type());
758758
code.add(block);
759759
}
760760
auto iterator_inserted_pair = info.references.insert({id, reference});

jbmc/src/java_bytecode/ci_lazy_methods_needed.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,14 @@ void ci_lazy_methods_neededt::initialize_instantiated_classes_from_pointer(
117117
const pointer_typet &pointer_type,
118118
const namespacet &ns)
119119
{
120-
const auto &class_type = to_struct_tag_type(pointer_type.subtype());
120+
const auto &class_type = to_struct_tag_type(pointer_type.base_type());
121121
const auto &param_classid = class_type.get_identifier();
122122

123123
// Note here: different arrays may have different element types, so we should
124124
// explore again even if we've seen this classid before in the array case.
125125
if(add_needed_class(param_classid) || is_java_array_tag(param_classid))
126126
{
127-
gather_field_types(pointer_type.subtype(), ns);
127+
gather_field_types(pointer_type.base_type(), ns);
128128
}
129129

130130
if(is_java_generic_type(pointer_type))
@@ -159,7 +159,7 @@ void ci_lazy_methods_neededt::gather_field_types(
159159
java_array_element_type(to_struct_tag_type(class_type));
160160
if(
161161
element_type.id() == ID_pointer &&
162-
element_type.subtype().id() != ID_empty)
162+
to_pointer_type(element_type).base_type().id() != ID_empty)
163163
{
164164
// This is a reference array -- mark its element type available.
165165
add_all_needed_classes(to_pointer_type(element_type));

jbmc/src/java_bytecode/code_with_references.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ codet allocate_array(
2020
{
2121
pointer_typet pointer_type = to_pointer_type(expr.type());
2222
const auto &element_type =
23-
java_array_element_type(to_struct_tag_type(pointer_type.subtype()));
24-
pointer_type.subtype().set(ID_element_type, element_type);
23+
java_array_element_type(to_struct_tag_type(pointer_type.base_type()));
24+
pointer_type.base_type().set(ID_element_type, element_type);
2525
side_effect_exprt java_new_array{
2626
ID_java_new_array, {array_length_expr}, pointer_type, loc};
2727
return code_frontend_assignt{expr, java_new_array, loc};

jbmc/src/java_bytecode/generic_parameter_specialization_map_keys.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ void generic_parameter_specialization_map_keyst::insert(
1818
return;
1919
// The supplied type must be the full type of the pointer's subtype
2020
PRECONDITION(
21-
pointer_type.subtype().get(ID_identifier) ==
21+
pointer_type.base_type().get(ID_identifier) ==
2222
pointer_subtype_struct.get(ID_name));
2323

2424
// If the pointer points to:

jbmc/src/java_bytecode/goto_check_java.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1148,7 +1148,7 @@ bool goto_check_javat::check_rec_member(const member_exprt &member)
11481148
if(member_offset_opt.has_value())
11491149
{
11501150
pointer_typet new_pointer_type = to_pointer_type(deref.pointer().type());
1151-
new_pointer_type.subtype() = member.type();
1151+
new_pointer_type.base_type() = member.type();
11521152

11531153
const exprt char_pointer = typecast_exprt::conditional_cast(
11541154
deref.pointer(), pointer_type(char_type()));

jbmc/src/java_bytecode/java_bytecode_concurrency_instrumentation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ static void instrument_get_monitor_count(
412412

413413
const namespacet ns(symbol_table);
414414
const auto &followed_type =
415-
ns.follow(to_pointer_type(f_code.arguments()[0].type()).subtype());
415+
ns.follow(to_pointer_type(f_code.arguments()[0].type()).base_type());
416416
const auto &object_type = to_struct_type(followed_type);
417417
code_assignt code_assign(
418418
f_code.lhs(),

jbmc/src/java_bytecode/java_bytecode_convert_class.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ void mark_java_implicitly_generic_class_type(
12351235
id2string(strip_java_namespace_prefix(
12361236
outer_generic_type_parameter.get_name()));
12371237
java_generic_parameter_tagt bound = to_java_generic_parameter_tag(
1238-
outer_generic_type_parameter.subtype());
1238+
outer_generic_type_parameter.base_type());
12391239
bound.type_variable_ref().set_identifier(identifier);
12401240
implicit_generic_type_parameters.emplace_back(identifier, bound);
12411241
}

jbmc/src/java_bytecode/java_bytecode_convert_method.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2711,10 +2711,10 @@ void java_bytecode_convert_methodt::convert_getstatic(
27112711
else if(arg0.type().id() == ID_pointer)
27122712
{
27132713
const auto &pointer_type = to_pointer_type(arg0.type());
2714-
if(pointer_type.subtype().id() == ID_struct_tag)
2714+
if(pointer_type.base_type().id() == ID_struct_tag)
27152715
{
27162716
needed_lazy_methods->add_needed_class(
2717-
to_struct_tag_type(pointer_type.subtype()).get_identifier());
2717+
to_struct_tag_type(pointer_type.base_type()).get_identifier());
27182718
}
27192719
}
27202720
else if(is_assertions_disabled_field)

jbmc/src/java_bytecode/java_bytecode_language.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1486,7 +1486,7 @@ bool java_bytecode_languaget::convert_single_method_code(
14861486
// TODO(tkiley): investigation
14871487
namespacet ns{symbol_table};
14881488
const java_class_typet &underlying_type =
1489-
to_java_class_type(ns.follow(pointer_return_type->subtype()));
1489+
to_java_class_type(ns.follow(pointer_return_type->base_type()));
14901490

14911491
if(!underlying_type.is_abstract())
14921492
needed_lazy_methods->add_all_needed_classes(*pointer_return_type);

jbmc/src/java_bytecode/java_object_factory.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ void java_object_factoryt::gen_nondet_pointer_init(
481481
{
482482
PRECONDITION(expr.type().id()==ID_pointer);
483483
const namespacet ns(symbol_table);
484-
const typet &subtype = pointer_type.subtype();
484+
const typet &subtype = pointer_type.base_type();
485485
const typet &followed_subtype = ns.follow(subtype);
486486
PRECONDITION(followed_subtype.id() == ID_struct);
487487
const pointer_typet &replacement_pointer_type =
@@ -500,7 +500,8 @@ void java_object_factoryt::gen_nondet_pointer_init(
500500
generic_parameter_specialization_map_keys(
501501
generic_parameter_specialization_map);
502502
generic_parameter_specialization_map_keys.insert(
503-
replacement_pointer_type, ns.follow(replacement_pointer_type.subtype()));
503+
replacement_pointer_type,
504+
ns.follow(replacement_pointer_type.base_type()));
504505

505506
const symbol_exprt real_pointer_symbol = gen_nondet_subtype_pointer_init(
506507
assignments, lifetime, replacement_pointer_type, depth, location);
@@ -1020,7 +1021,7 @@ void java_object_factoryt::gen_nondet_init(
10201021
generic_parameter_specialization_map_keys(
10211022
generic_parameter_specialization_map);
10221023
generic_parameter_specialization_map_keys.insert(
1023-
pointer_type, ns.follow(pointer_type.subtype()));
1024+
pointer_type, ns.follow(pointer_type.base_type()));
10241025

10251026
gen_nondet_pointer_init(
10261027
assignments,

0 commit comments

Comments
 (0)