Skip to content

Commit 3ef168a

Browse files
committed
Do not use global variable that requires an initializer function
In particular don't use one that depends on other globals to be initialized first.
1 parent e32ccf6 commit 3ef168a

File tree

36 files changed

+44
-41
lines changed

36 files changed

+44
-41
lines changed

jbmc/regression/jbmc-concurrency/anonymous-java.lang.thread/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^VERIFICATION SUCCESSFUL$

jbmc/regression/jbmc-concurrency/anonymous-java.lang.thread/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^SIGNAL=0$

jbmc/regression/jbmc-concurrency/explicit-thread-blocks/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me:()V' --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/explicit-thread-blocks/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --java-threading
44
^SIGNAL=0$

jbmc/regression/jbmc-concurrency/get-current-thread/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/get-current-thread/test4.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me4:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/get-current-thread/test5.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me5:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/get-current-thread/test6.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me6:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/java-lang-runnable/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/java-lang-runnable/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^SIGNAL=0$

jbmc/regression/jbmc-concurrency/java-lang-runnable/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me4:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/java-lang-runnable/test4.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me3:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/java-lang-thread/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/java-lang-thread/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^SIGNAL=0$

jbmc/regression/jbmc-concurrency/java-lang-thread/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me4:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^VERIFICATION SUCCESSFUL$

jbmc/regression/jbmc-concurrency/java-lang-thread/test4.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me3:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^VERIFICATION SUCCESSFUL$

jbmc/regression/jbmc-concurrency/several-threads/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function A.me --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/several-threads/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function A.me2 --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^SIGNAL=0$

jbmc/regression/jbmc-concurrency/several-threads/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function A.me3 --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading --unwind 3
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-blocks/test1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me0:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --show-goto-functions --java-threading
44
ATOMIC_BEGIN

jbmc/regression/jbmc-concurrency/synchronized-blocks/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me0:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-blocks/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me0:()V' --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-blocks/test_sync.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-blocks/test_sync_baseline.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me1:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-method-illegal-state/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
Sync.class
33
--cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --java-threading
44
^VERIFICATION SUCCESSFUL$

jbmc/regression/jbmc-concurrency/synchronized-methods/test1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me1:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --show-goto-functions
44
ATOMIC_BEGIN

jbmc/regression/jbmc-concurrency/synchronized-methods/test2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me1:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar` --show-goto-functions
44
ATOMIC_BEGIN

jbmc/regression/jbmc-concurrency/synchronized-methods/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me1:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-methods/test_sync.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me3:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized-methods/test_sync_baseline.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
A.class
33
--function 'A.me2:()V' --java-threading --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc-concurrency/synchronized/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
Sync.class
33
--java-threading --throw-runtime-exceptions --cp `../../../../scripts/format_classpath.sh . ../../../src/java_bytecode/library/core-models.jar`
44
^EXIT=0$

jbmc/regression/jbmc/static_init1/test1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
static_init.class
33
--function static_init.main --java-threading
44
^EXIT=0$

jbmc/regression/jbmc/static_init2/test1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
static_init.class
33
--function static_init.main --java-threading
44
^EXIT=0$

jbmc/regression/jbmc/static_init_order/test3.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
static_init_order.class
33
--function static_init_order.test1 --trace --java-threading
44
^EXIT=0$

jbmc/regression/jbmc/static_init_order/test4.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
static_init_order.class
33
--function static_init_order.test2 --java-threading
44
^EXIT=10$

jbmc/src/java_bytecode/java_static_initializers.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ enum class clinit_statest
4444
INIT_COMPLETE
4545
};
4646

47-
const typet clinit_states_type = java_byte_type();
47+
static typet clinit_states_type()
48+
{
49+
return java_byte_type();
50+
}
4851

4952
// Disable linter here to allow a std::string constant, since that holds
5053
// a length, whereas a cstr would require strlen every time.
@@ -158,7 +161,7 @@ static code_assignt
158161
gen_clinit_assign(const exprt &expr, const clinit_statest state)
159162
{
160163
mp_integer initv(static_cast<int>(state));
161-
constant_exprt init_s = from_integer(initv, clinit_states_type);
164+
constant_exprt init_s = from_integer(initv, clinit_states_type());
162165
return code_assignt(expr, init_s);
163166
}
164167

@@ -174,7 +177,7 @@ static equal_exprt
174177
gen_clinit_eqexpr(const exprt &expr, const clinit_statest state)
175178
{
176179
mp_integer initv(static_cast<int>(state));
177-
constant_exprt init_s = from_integer(initv, clinit_states_type);
180+
constant_exprt init_s = from_integer(initv, clinit_states_type());
178181
return equal_exprt(expr, init_s);
179182
}
180183

@@ -312,23 +315,23 @@ static void create_clinit_wrapper_symbols(
312315
if(thread_safe)
313316
{
314317
exprt not_init_value = from_integer(
315-
static_cast<int>(clinit_statest::NOT_INIT), clinit_states_type);
318+
static_cast<int>(clinit_statest::NOT_INIT), clinit_states_type());
316319

317320
// Create two global static synthetic "fields" for the class "id"
318321
// these two variables hold the state of the class initialization algorithm
319322
// across calls to the clinit_wrapper
320323
add_new_variable_symbol(
321324
symbol_table,
322325
clinit_state_var_name(class_name),
323-
clinit_states_type,
326+
clinit_states_type(),
324327
not_init_value,
325328
false,
326329
true);
327330

328331
add_new_variable_symbol(
329332
symbol_table,
330333
clinit_thread_local_state_var_name(class_name),
331-
clinit_states_type,
334+
clinit_states_type(),
332335
not_init_value,
333336
true,
334337
true);

0 commit comments

Comments
 (0)