Skip to content

Commit b1e690c

Browse files
authored
Merge pull request #3645 from tautschnig/vs-fix-global
Do not use global variable that requires an initializer function [depends-on: #3627]
2 parents 19bd2bf + 3ef168a commit b1e690c

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)