Skip to content

Commit 2dc0863

Browse files
authored
Merge pull request #4102 from tautschnig/remove-void_typet
Remove void_typet
2 parents 2df39b1 + 32f4aa5 commit 2dc0863

32 files changed

+88
-91
lines changed

jbmc/src/java_bytecode/java_bytecode_convert_method.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,7 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
12251225
if(statement=="aconst_null")
12261226
{
12271227
assert(results.size()==1);
1228-
results[0]=null_pointer_exprt(java_reference_type(void_typet()));
1228+
results[0] = null_pointer_exprt(java_reference_type(java_void_type()));
12291229
}
12301230
else if(statement=="athrow")
12311231
{
@@ -1349,7 +1349,7 @@ code_blockt java_bytecode_convert_methodt::convert_instructions(
13491349
from_integer(
13501350
std::next(i_it)->address,
13511351
unsignedbv_typet(64));
1352-
results[0].type()=pointer_type(void_typet());
1352+
results[0].type() = pointer_type(java_void_type());
13531353
}
13541354
else if(statement=="ret")
13551355
{
@@ -1981,8 +1981,8 @@ codet java_bytecode_convert_methodt::convert_monitorenterexit(
19811981

19821982
// becomes a function call
19831983
java_method_typet type(
1984-
{java_method_typet::parametert(java_reference_type(void_typet()))},
1985-
void_typet());
1984+
{java_method_typet::parametert(java_reference_type(java_void_type()))},
1985+
java_void_type());
19861986
code_function_callt call(symbol_exprt(descriptor, type), {op[0]});
19871987
call.add_source_location() = source_location;
19881988
if(needed_lazy_methods && symbol_table.has_symbol(descriptor))
@@ -2725,7 +2725,7 @@ code_ifthenelset java_bytecode_convert_methodt::convert_ifnull(
27252725
const mp_integer &number,
27262726
const source_locationt &location) const
27272727
{
2728-
const typecast_exprt lhs(op[0], java_reference_type(empty_typet()));
2728+
const typecast_exprt lhs(op[0], java_reference_type(java_void_type()));
27292729
const exprt rhs(null_pointer_exprt(to_pointer_type(lhs.type())));
27302730

27312731
const method_offsett label_number = numeric_cast_v<method_offsett>(number);
@@ -2747,7 +2747,7 @@ code_ifthenelset java_bytecode_convert_methodt::convert_ifnonull(
27472747
const mp_integer &number,
27482748
const source_locationt &location) const
27492749
{
2750-
const typecast_exprt lhs(op[0], java_reference_type(empty_typet()));
2750+
const typecast_exprt lhs(op[0], java_reference_type(java_void_type()));
27512751
const exprt rhs(null_pointer_exprt(to_pointer_type(lhs.type())));
27522752

27532753
const method_offsett label_number = numeric_cast_v<method_offsett>(number);
@@ -2830,7 +2830,7 @@ code_blockt java_bytecode_convert_methodt::convert_ret(
28302830
{
28312831
auto address_ptr =
28322832
from_integer(jsr_ret_targets[idx], unsignedbv_typet(64));
2833-
address_ptr.type() = pointer_type(void_typet());
2833+
address_ptr.type() = pointer_type(java_void_type());
28342834

28352835
code_ifthenelset branch(equal_exprt(retvar, address_ptr), std::move(g));
28362836

jbmc/src/java_bytecode/java_bytecode_instrument.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ code_ifthenelset java_bytecode_instrumentt::check_class_cast(
224224
binary_predicate_exprt class_cast_check(
225225
class1, ID_java_instanceof, class2);
226226

227-
pointer_typet voidptr=pointer_type(empty_typet());
227+
pointer_typet voidptr = pointer_type(java_void_type());
228228
exprt null_check_op=class1;
229229
if(null_check_op.type()!=voidptr)
230230
null_check_op.make_typecast(voidptr);

jbmc/src/java_bytecode/java_bytecode_internal_additions.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Author: Daniel Kroening, [email protected]
99
#include "java_bytecode_internal_additions.h"
1010

1111
// For INFLIGHT_EXCEPTION_VARIABLE_NAME
12+
#include "java_types.h"
1213
#include "remove_exceptions.h"
1314

1415
#include <util/std_types.h>
@@ -37,7 +38,7 @@ void java_internal_additions(symbol_table_baset &dest)
3738
symbolt symbol;
3839
symbol.base_name = CPROVER_PREFIX "malloc_object";
3940
symbol.name=CPROVER_PREFIX "malloc_object";
40-
symbol.type=pointer_type(empty_typet());
41+
symbol.type = pointer_type(java_void_type());
4142
symbol.mode=ID_C;
4243
symbol.is_lvalue=true;
4344
symbol.is_state_var=true;
@@ -50,7 +51,7 @@ void java_internal_additions(symbol_table_baset &dest)
5051
symbol.base_name = INFLIGHT_EXCEPTION_VARIABLE_BASENAME;
5152
symbol.name = INFLIGHT_EXCEPTION_VARIABLE_NAME;
5253
symbol.mode = ID_java;
53-
symbol.type = pointer_type(empty_typet());
54+
symbol.type = pointer_type(java_void_type());
5455
symbol.type.set(ID_C_no_nondet_initialization, true);
5556
symbol.value = null_pointer_exprt(to_pointer_type(symbol.type));
5657
symbol.is_file_local = false;

jbmc/src/java_bytecode/java_entry_point.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static void create_initialize(symbol_table_baset &symbol_table)
3838
initialize.base_name=INITIALIZE_FUNCTION;
3939
initialize.mode=ID_java;
4040

41-
initialize.type = java_method_typet({}, empty_typet());
41+
initialize.type = java_method_typet({}, java_void_type());
4242

4343
code_blockt init_code;
4444

@@ -225,7 +225,7 @@ static void java_static_lifetime_init(
225225
// Then call the init function:
226226
code_block.add(std::move(initializer_call));
227227
}
228-
else if(sym.value.is_nil() && sym.type!=empty_typet())
228+
else if(sym.value.is_nil() && sym.type != java_void_type())
229229
{
230230
const bool is_class_model =
231231
has_suffix(id2string(sym.name), "@class_model");
@@ -446,7 +446,7 @@ void java_record_outputs(
446446
result.reserve(parameters.size()+1);
447447

448448
bool has_return_value =
449-
to_java_method_type(function.type).return_type() != empty_typet();
449+
to_java_method_type(function.type).return_type() != java_void_type();
450450

451451
if(has_return_value)
452452
{
@@ -702,7 +702,7 @@ bool generate_java_start_function(
702702

703703
// if the method return type is not void, store return value in a new variable
704704
// named 'return'
705-
if(to_java_method_type(symbol.type).return_type() != empty_typet())
705+
if(to_java_method_type(symbol.type).return_type() != java_void_type())
706706
{
707707
auxiliary_symbolt return_symbol;
708708
return_symbol.mode=ID_java;
@@ -720,7 +720,7 @@ bool generate_java_start_function(
720720
exc_symbol.mode=ID_java;
721721
exc_symbol.name=JAVA_ENTRY_POINT_EXCEPTION_SYMBOL;
722722
exc_symbol.base_name=exc_symbol.name;
723-
exc_symbol.type=java_reference_type(empty_typet());
723+
exc_symbol.type = java_reference_type(java_void_type());
724724
symbol_table.add(exc_symbol);
725725

726726
// Zero-initialise the top-level exception catch variable:
@@ -792,7 +792,7 @@ bool generate_java_start_function(
792792
symbolt new_symbol;
793793

794794
new_symbol.name=goto_functionst::entry_point();
795-
new_symbol.type = java_method_typet({}, empty_typet());
795+
new_symbol.type = java_method_typet({}, java_void_type());
796796
new_symbol.value.swap(init_code);
797797
new_symbol.mode=ID_java;
798798

jbmc/src/java_bytecode/java_object_factory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ void java_object_factoryt::gen_nondet_pointer_init(
592592

593593
// If this is a void* we *must* initialise with null:
594594
// (This can currently happen for some cases of #exception_value)
595-
bool must_be_null = subtype == empty_typet();
595+
bool must_be_null = subtype == java_void_type();
596596

597597
// If we may be about to initialize a non-null enum type, always run the
598598
// clinit_wrapper of its class first.

jbmc/src/java_bytecode/java_pointer_casts.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ Author: Daniel Kroening, [email protected]
1515
#include <util/std_types.h>
1616
#include <util/namespace.h>
1717

18+
#include "java_types.h"
19+
1820
/// dereference pointer expression
1921
/// \return dereferenced pointer
2022
static exprt clean_deref(const exprt &ptr)
@@ -94,8 +96,9 @@ exprt make_clean_pointer_cast(
9496
if(ptr.type()==target_type)
9597
return ptr;
9698

97-
if(ptr.type().subtype()==empty_typet() ||
98-
target_type.subtype()==empty_typet())
99+
if(
100+
ptr.type().subtype() == java_void_type() ||
101+
target_type.subtype() == java_void_type())
99102
return typecast_exprt(ptr, target_type);
100103

101104
const typet &target_base=ns.follow(target_type.subtype());
@@ -106,7 +109,7 @@ exprt make_clean_pointer_cast(
106109
assert(
107110
bare_ptr.type().id()==ID_pointer &&
108111
"Non-pointer in make_clean_pointer_cast?");
109-
if(bare_ptr.type().subtype()==empty_typet())
112+
if(bare_ptr.type().subtype() == java_void_type())
110113
bare_ptr=bare_ptr.op0();
111114
}
112115

jbmc/src/java_bytecode/java_static_initializers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ static void create_clinit_wrapper_symbols(
352352

353353
// Create symbol for the "clinit_wrapper"
354354
symbolt wrapper_method_symbol;
355-
const java_method_typet wrapper_method_type({}, void_typet());
355+
const java_method_typet wrapper_method_type({}, java_void_type());
356356
wrapper_method_symbol.name = clinit_wrapper_name(class_name);
357357
wrapper_method_symbol.pretty_name = wrapper_method_symbol.name;
358358
wrapper_method_symbol.base_name = "clinit_wrapper";
@@ -790,7 +790,7 @@ void stub_global_initializer_factoryt::create_stub_global_initializer_symbols(
790790
"a class cannot be both incomplete, and so have stub static fields, and "
791791
"also define a static initializer");
792792

793-
const java_method_typet thunk_type({}, void_typet());
793+
const java_method_typet thunk_type({}, java_void_type());
794794

795795
symbolt static_init_symbol;
796796
static_init_symbol.name = static_init_name;

jbmc/src/java_bytecode/java_string_library_preprocess.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1291,7 +1291,7 @@ dereference_exprt java_string_library_preprocesst::get_object_at_index(
12911291
std::size_t index)
12921292
{
12931293
dereference_exprt deref_objs(argv, argv.type().subtype());
1294-
pointer_typet empty_pointer=pointer_type(empty_typet());
1294+
pointer_typet empty_pointer = pointer_type(java_void_type());
12951295
pointer_typet pointer_of_pointer=pointer_type(empty_pointer);
12961296
member_exprt data_member(deref_objs, "data", pointer_of_pointer);
12971297
plus_exprt data_pointer_plus_index(

jbmc/src/java_bytecode/java_types.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ signedbv_typet java_int_type()
3535
return result;
3636
}
3737

38-
void_typet java_void_type()
38+
empty_typet java_void_type()
3939
{
40-
static const auto result = void_typet();
40+
static const auto result = empty_typet();
4141
return result;
4242
}
4343

@@ -209,7 +209,8 @@ 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_reference_type(void_typet());
212+
case 'a':
213+
return java_reference_type(java_void_type());
213214
default:
214215
UNREACHABLE;
215216
}

jbmc/src/java_bytecode/java_types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ unsignedbv_typet java_char_type();
368368
floatbv_typet java_float_type();
369369
floatbv_typet java_double_type();
370370
c_bool_typet java_boolean_type();
371-
void_typet java_void_type();
371+
empty_typet java_void_type();
372372
reference_typet java_reference_type(const typet &subtype);
373373
reference_typet java_lang_object_type();
374374
struct_tag_typet java_classname(const std::string &);

jbmc/src/java_bytecode/remove_exceptions.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Date: December 2016
3030

3131
#include <analyses/uncaught_exceptions_analysis.h>
3232

33+
#include "java_types.h"
34+
3335
/// Lowers high-level exception descriptions into low-level operations suitable
3436
/// for symex and other analyses that don't understand the THROW or CATCH GOTO
3537
/// instructions.
@@ -228,7 +230,7 @@ void remove_exceptionst::instrument_exception_handler(
228230
const symbol_exprt thrown_global_symbol=
229231
get_inflight_exception_global();
230232
// next we reset the exceptional return to NULL
231-
null_pointer_exprt null_voidptr((pointer_type(empty_typet())));
233+
null_pointer_exprt null_voidptr((pointer_type(java_void_type())));
232234

233235
// add the assignment @inflight_exception = NULL
234236
goto_programt::targett t_null=goto_program.insert_after(instr_it);
@@ -443,7 +445,7 @@ bool remove_exceptionst::instrument_function_call(
443445
{
444446
equal_exprt no_exception_currently_in_flight(
445447
get_inflight_exception_global(),
446-
null_pointer_exprt(pointer_type(empty_typet())));
448+
null_pointer_exprt(pointer_type(java_void_type())));
447449

448450
if(symbol_table.lookup_ref(callee_id).type.get_bool(ID_C_must_not_throw))
449451
{

jbmc/src/java_bytecode/simple_method_stubbing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ void java_simple_method_stubst::create_method_stub(symbolt &symbol)
187187
else
188188
{
189189
const typet &required_return_type = required_type.return_type();
190-
if(required_return_type != empty_typet())
190+
if(required_return_type != java_void_type())
191191
{
192192
symbolt &to_return_symbol = get_fresh_aux_symbol(
193193
required_return_type,

jbmc/unit/java_bytecode/java_bytecode_parser/parse_java_annotations.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ SCENARIO(
139139
const auto &id =
140140
to_symbol_expr(element_value_pair.value).get_identifier();
141141
const auto &java_type = java_type_from_string(id2string(id));
142-
REQUIRE(*java_type == void_type());
142+
REQUIRE(*java_type == java_void_type());
143143
}
144144
}
145145
WHEN("Parsing an annotation with an array field.")

regression/invariants/driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ int main(int argc, char** argv)
118118
else if(arg=="data-invariant-string")
119119
DATA_INVARIANT(false, "Test invariant failure");
120120
else if(arg=="irep")
121-
INVARIANT_WITH_IREP(false, "error with irep", pointer_type(void_typet()));
121+
INVARIANT_WITH_IREP(false, "error with irep", pointer_type(empty_typet()));
122122
else if(arg == "invariant-diagnostics")
123123
INVARIANT_WITH_DIAGNOSTICS(
124124
false,

src/ansi-c/ansi_c_entry_point.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ void record_function_outputs(
5454
code_blockt &init_code,
5555
symbol_tablet &symbol_table)
5656
{
57-
bool has_return_value=
58-
to_code_type(function.type).return_type()!=empty_typet();
57+
bool has_return_value =
58+
to_code_type(function.type).return_type() != void_type();
5959

6060
if(has_return_value)
6161
{
@@ -232,7 +232,7 @@ bool generate_ansi_c_start_function(
232232
call_main.add_source_location()=symbol.location;
233233
call_main.function().add_source_location()=symbol.location;
234234

235-
if(to_code_type(symbol.type).return_type()!=empty_typet())
235+
if(to_code_type(symbol.type).return_type() != void_type())
236236
{
237237
auxiliary_symbolt return_symbol;
238238
return_symbol.mode=ID_C;
@@ -515,7 +515,7 @@ bool generate_ansi_c_start_function(
515515
symbolt new_symbol;
516516

517517
new_symbol.name=goto_functionst::entry_point();
518-
new_symbol.type = code_typet({}, empty_typet());
518+
new_symbol.type = code_typet({}, void_type());
519519
new_symbol.value.swap(init_code);
520520
new_symbol.mode=symbol.mode;
521521

src/ansi-c/c_typecheck_base.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ Author: Daniel Kroening, [email protected]
1111

1212
#include "c_typecheck_base.h"
1313

14+
#include <util/c_types.h>
15+
#include <util/config.h>
1416
#include <util/invariant.h>
15-
#include <util/std_types.h>
1617
#include <util/prefix.h>
17-
#include <util/config.h>
18+
#include <util/std_types.h>
1819

1920
#include "expr2c.h"
2021
#include "type2name.h"
@@ -740,7 +741,7 @@ void c_typecheck_baset::typecheck_declaration(
740741

741742
typecheck_spec_expr(static_cast<codet &>(contract), ID_C_spec_requires);
742743

743-
typet ret_type=empty_typet();
744+
typet ret_type = void_type();
744745
if(new_symbol.type.id()==ID_code)
745746
ret_type=to_code_type(new_symbol.type).return_type();
746747
assert(parameter_map.empty());

src/ansi-c/c_typecheck_code.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Author: Daniel Kroening, [email protected]
1111

1212
#include "c_typecheck_base.h"
1313

14+
#include <util/c_types.h>
1415
#include <util/config.h>
1516
#include <util/expr_initializer.h>
1617

@@ -575,7 +576,7 @@ void c_typecheck_baset::typecheck_gcc_computed_goto(codet &code)
575576
assert(dest.operands().size()==1);
576577

577578
typecheck_expr(dest.op0());
578-
dest.type()=empty_typet();
579+
dest.type() = void_type();
579580
}
580581

581582
void c_typecheck_baset::typecheck_ifthenelse(code_ifthenelset &code)

src/ansi-c/c_typecheck_expr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1601,7 +1601,7 @@ void c_typecheck_baset::typecheck_expr_trinary(if_exprt &expr)
16011601
{
16021602
// Make it void *.
16031603
// gcc and clang issue a warning for this.
1604-
expr.type()=pointer_type(empty_typet());
1604+
expr.type() = pointer_type(void_type());
16051605
implicit_typecast(operands[1], expr.type());
16061606
implicit_typecast(operands[2], expr.type());
16071607
}

src/ansi-c/parser_static.inc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ Function: statement
8282
static void statement(YYSTYPE &expr, const irep_idt &id)
8383
{
8484
set(expr, ID_code);
85-
stack(expr).type().id(ID_code);
8685
stack(expr).set(ID_statement, id);
8786
}
8887

0 commit comments

Comments
 (0)