Skip to content

Commit e51444e

Browse files
committed
Use get_fresh_aux_symbol to construct dynamic objects
This avoids use of a global variable and reuses central infrastructure instead of repeated local work. Note that this changes the names of dynamic objects as the suffix now includes a $ character, and need not have any suffix, as well as moving the counter out of the middle of C++/Java dynamic_X_array objects.
1 parent d2b56c2 commit e51444e

File tree

22 files changed

+130
-142
lines changed

22 files changed

+130
-142
lines changed

jbmc/regression/jbmc-generics/constant_propagation/test.desc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Test
33
--function Test.main --show-vcc
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\{-\d+\} symex_dynamic::dynamic_object1#2\.\.@Generic\.\[email protected]\.\.@class_identifier = "java::GenericSub"$
7-
^\{-\d+\} symex_dynamic::dynamic_object1#2\.\.@Generic\.\.key = NULL$
8-
^\{-\d+\} symex_dynamic::dynamic_object1#3\.\.@Generic\.\.x = 5$
6+
^\{-\d+\} symex_dynamic::dynamic_object#2\.\.@Generic\.\[email protected]\.\.@class_identifier = "java::GenericSub"$
7+
^\{-\d+\} symex_dynamic::dynamic_object#2\.\.@Generic\.\.key = NULL$
8+
^\{-\d+\} symex_dynamic::dynamic_object#3\.\.@Generic\.\.x = 5$
99
--
1010
byte_extract_(big|little)_endian
1111
--

jbmc/regression/jbmc-strings/StringBuilderConstructors01/test-no-arg-fail.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ StringBuilderConstructors01
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$
7-
dynamic_object2=\{\s*\}
7+
dynamic_object\$0=\{\s*\}
88
--
99
^warning: ignoring
1010
--
11-
The check for dynamic_object2 is to make sure the array is created empty and
11+
The check for dynamic_object\$0 is to make sure the array is created empty and
1212
is not given arbitrary content before its final assignment.

jbmc/regression/jbmc-strings/long_string/test_abort.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Test
33
--function Test.checkAbort --trace --max-nondet-string-length 100000000
44
^EXIT=10$
55
^SIGNAL=0$
6-
dynamic_object[0-9]*=\(assignment removed\)
6+
dynamic_object\$?[0-9]*=\(assignment removed\)
77
--
88
--
99
This tests that the object does not appear in the trace, because concretizing

jbmc/regression/jbmc/VarLengthArrayTrace1/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ VarLengthArrayTrace1
33
--trace --function VarLengthArrayTrace1.main
44
^EXIT=10$
55
^SIGNAL=0$
6-
dynamic_3_array\[1.*\]=10
6+
dynamic_array\$?\d*\[1.*\]=10
77
--
88
^warning: ignoring
99
assignment removed

jbmc/regression/jbmc/array-cell-sensitivity1/test-max-array-size-10.desc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
CORE
22
Test
33
--function Test.main --show-vcc --max-field-sensitivity-array-size 10
4-
symex_dynamic::dynamic_2_array#2\[\[0\]\] =
5-
symex_dynamic::dynamic_2_array#2\[\[1\]\] =
6-
symex_dynamic::dynamic_2_array#2\[\[2\]\] =
7-
symex_dynamic::dynamic_2_array#2\[\[3\]\] =
8-
symex_dynamic::dynamic_2_array#2\[\[4\]\] =
9-
symex_dynamic::dynamic_2_array#2\[\[5\]\] =
10-
symex_dynamic::dynamic_2_array#2\[\[6\]\] =
11-
symex_dynamic::dynamic_2_array#2\[\[7\]\] =
12-
symex_dynamic::dynamic_2_array#2\[\[8\]\] =
13-
symex_dynamic::dynamic_2_array#2\[\[9\]\] =
14-
symex_dynamic::dynamic_2_array#3\[\[1\]\] = java::Test.main:\(I\)V::unknown!0@1#1
4+
symex_dynamic::dynamic_array#2\[\[0\]\] =
5+
symex_dynamic::dynamic_array#2\[\[1\]\] =
6+
symex_dynamic::dynamic_array#2\[\[2\]\] =
7+
symex_dynamic::dynamic_array#2\[\[3\]\] =
8+
symex_dynamic::dynamic_array#2\[\[4\]\] =
9+
symex_dynamic::dynamic_array#2\[\[5\]\] =
10+
symex_dynamic::dynamic_array#2\[\[6\]\] =
11+
symex_dynamic::dynamic_array#2\[\[7\]\] =
12+
symex_dynamic::dynamic_array#2\[\[8\]\] =
13+
symex_dynamic::dynamic_array#2\[\[9\]\] =
14+
symex_dynamic::dynamic_array#3\[\[1\]\] = java::Test.main:\(I\)V::unknown!0@1#1
1515
^EXIT=0$
1616
^SIGNAL=0$
1717
--

jbmc/regression/jbmc/array-cell-sensitivity1/test-max-array-size-9.desc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Test
33
--function Test.main --show-vcc --max-field-sensitivity-array-size 9
44
^EXIT=0$
55
^SIGNAL=0$
6-
symex_dynamic::dynamic_2_array#[0-9]\[1\]
6+
symex_dynamic::dynamic_array#[0-9]\[1\]
77
--
8-
symex_dynamic::dynamic_2_array#[0-9]\[\[[0-9]\]\]
8+
symex_dynamic::dynamic_array#[0-9]\[\[[0-9]\]\]
99
--
1010
This checks that field sensitvity is not applied to an array of size 10
11-
when the max is set to 9.
11+
when the max is set to 9.

jbmc/regression/jbmc/array-cell-sensitivity1/test-no-array-field-sensitivity.desc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Test
33
--function Test.main --show-vcc --no-array-field-sensitivity
44
^EXIT=0$
55
^SIGNAL=0$
6-
symex_dynamic::dynamic_2_array#[0-9]\[1\]
6+
symex_dynamic::dynamic_array#[0-9]\[1\]
77
--
8-
symex_dynamic::dynamic_2_array#[0-9]\[\[[0-9]\]\]
8+
symex_dynamic::dynamic_array#[0-9]\[\[[0-9]\]\]
99
--
1010
This checks that field sensitvity is not applied to arrays when
11-
no-array-field-sensitivity is used.
11+
no-array-field-sensitivity is used.

jbmc/regression/jbmc/array-cell-sensitivity1/test.desc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
CORE
22
Test
33
--function Test.main --show-vcc
4-
symex_dynamic::dynamic_2_array#2\[\[0\]\] =
5-
symex_dynamic::dynamic_2_array#2\[\[1\]\] =
6-
symex_dynamic::dynamic_2_array#2\[\[2\]\] =
7-
symex_dynamic::dynamic_2_array#2\[\[3\]\] =
8-
symex_dynamic::dynamic_2_array#2\[\[4\]\] =
9-
symex_dynamic::dynamic_2_array#2\[\[5\]\] =
10-
symex_dynamic::dynamic_2_array#2\[\[6\]\] =
11-
symex_dynamic::dynamic_2_array#2\[\[7\]\] =
12-
symex_dynamic::dynamic_2_array#2\[\[8\]\] =
13-
symex_dynamic::dynamic_2_array#2\[\[9\]\] =
14-
symex_dynamic::dynamic_2_array#3\[\[1\]\] = java::Test.main:\(I\)V::unknown!0@1#1
4+
symex_dynamic::dynamic_array#2\[\[0\]\] =
5+
symex_dynamic::dynamic_array#2\[\[1\]\] =
6+
symex_dynamic::dynamic_array#2\[\[2\]\] =
7+
symex_dynamic::dynamic_array#2\[\[3\]\] =
8+
symex_dynamic::dynamic_array#2\[\[4\]\] =
9+
symex_dynamic::dynamic_array#2\[\[5\]\] =
10+
symex_dynamic::dynamic_array#2\[\[6\]\] =
11+
symex_dynamic::dynamic_array#2\[\[7\]\] =
12+
symex_dynamic::dynamic_array#2\[\[8\]\] =
13+
symex_dynamic::dynamic_array#2\[\[9\]\] =
14+
symex_dynamic::dynamic_array#3\[\[1\]\] = java::Test.main:\(I\)V::unknown!0@1#1
1515
^EXIT=0$
1616
^SIGNAL=0$
1717
--
18-
symex_dynamic::dynamic_2_array#3\[\[[023456789]\]\] =
18+
symex_dynamic::dynamic_array#3\[\[[023456789]\]\] =
1919
--
2020
This checks that a write to a Java array with an unknown index uses a whole-array
2121
write followed by array-cell expansion, but one targeting a constant index uses

jbmc/regression/jbmc/array-cell-sensitivity2/test.desc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
CORE
22
Test
33
--function Test.main --show-vcc
4-
symex_dynamic::dynamic_object6#3\.\.data =
5-
symex_dynamic::dynamic_object3#3\.\.data =
4+
symex_dynamic::dynamic_object\$3#3\.\.data =
5+
symex_dynamic::dynamic_object\$1#3\.\.data =
66
^EXIT=0$
77
^SIGNAL=0$
88
--
9-
symex_dynamic::dynamic_object6#3\.\.data = symex_dynamic::dynamic_object6#3\.data
10-
symex_dynamic::dynamic_object3#3\.\.data = symex_dynamic::dynamic_object3#3\.data
9+
symex_dynamic::dynamic_object\$3#3\.\.data = symex_dynamic::dynamic_object\$3#3\.data
10+
symex_dynamic::dynamic_object\$1#3\.\.data = symex_dynamic::dynamic_object\$1#3\.data
1111
--
1212
This checks that a write using a mix of field and array accessors uses a field-sensitive
1313
symbol (the data field of the possible ultimate target objects) rather than using

jbmc/regression/jbmc/json_trace3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Test
44
activate-multi-line-match
55
^EXIT=10$
66
^SIGNAL=0$
7-
"lhs": "dynamic_object3\[1L?\]",\n *"mode": "java",\n *"sourceLocation": \{\n *"bytecodeIndex": "18",\n *"file": "Test\.java",\n *"function": "java::Test\.main:\(\[J\)V",\n *"line": "8"\n *\},\n *"stepType": "assignment",\n *"thread": 0,\n *"value": \{\n *"binary": "0000000000000000000000000000000000000000000000000000000000000001",\n *"data": "1L",\n *"name": "integer",\n *"type": "long",\n *"width": 64
7+
"lhs": "dynamic_object\$?\d*\[1L?\]",\n *"mode": "java",\n *"sourceLocation": \{\n *"bytecodeIndex": "18",\n *"file": "Test\.java",\n *"function": "java::Test\.main:\(\[J\)V",\n *"line": "8"\n *\},\n *"stepType": "assignment",\n *"thread": 0,\n *"value": \{\n *"binary": "0000000000000000000000000000000000000000000000000000000000000001",\n *"data": "1L",\n *"name": "integer",\n *"type": "long",\n *"width": 64
88
--
99
"name": "unknown"
1010
^warning: ignoring

0 commit comments

Comments
 (0)