Skip to content

Commit 8c66f47

Browse files
author
svorenova
committed
Mark some variables in Java with ID_C_no_nondet_initialization_allowed
This sets the flag to be true for __CPROVER_rounding_mode, __CPROVER_malloc_object, java::@inflight_exception and static initializer proprietary variables
1 parent 8d06abe commit 8c66f47

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

jbmc/src/java_bytecode/java_bytecode_internal_additions.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ void java_internal_additions(symbol_table_baset &dest)
2424
symbol.base_name="__CPROVER_rounding_mode";
2525
symbol.name=CPROVER_PREFIX "rounding_mode";
2626
symbol.type=signed_int_type();
27+
symbol.type.set(ID_C_no_nondet_initialization_allowed, true);
2728
symbol.mode=ID_C;
2829
symbol.is_lvalue=true;
2930
symbol.is_state_var=true;
@@ -38,6 +39,7 @@ void java_internal_additions(symbol_table_baset &dest)
3839
symbol.base_name="__CPROVER_malloc_object";
3940
symbol.name=CPROVER_PREFIX "malloc_object";
4041
symbol.type=pointer_type(empty_typet());
42+
symbol.type.set(ID_C_no_nondet_initialization_allowed, true);
4143
symbol.mode=ID_C;
4244
symbol.is_lvalue=true;
4345
symbol.is_state_var=true;
@@ -51,6 +53,7 @@ void java_internal_additions(symbol_table_baset &dest)
5153
symbol.name = INFLIGHT_EXCEPTION_VARIABLE_NAME;
5254
symbol.mode = ID_java;
5355
symbol.type = pointer_type(empty_typet());
56+
symbol.type.set(ID_C_no_nondet_initialization_allowed, true);
5457
symbol.value = null_pointer_exprt(to_pointer_type(symbol.type));
5558
symbol.is_file_local = false;
5659
symbol.is_static_lifetime = true;

jbmc/src/java_bytecode/java_static_initializers.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ static symbolt add_new_variable_symbol(
9191
new_symbol.pretty_name = name;
9292
new_symbol.base_name = name;
9393
new_symbol.type = type;
94+
new_symbol.type.set(ID_C_no_nondet_initialization_allowed, true);
9495
new_symbol.value = value;
9596
new_symbol.is_lvalue = true;
9697
new_symbol.is_state_var = true;

0 commit comments

Comments
 (0)