Skip to content

Merge master 20170705 #1094

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 91 commits into from
Jul 7, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
c93cb8c
Adapt existing regression tests
May 17, 2017
4c17377
Add regression tests for `iload`, `dup`, `dup_x1`, `dup_x2`
May 17, 2017
21cd8a5
Add regression tests for `dup2`, `dup2_x1` and `dup2_x2`
May 18, 2017
953fb43
Add regression test for `getfield`, `getstatic`
May 19, 2017
0b81ed6
Add regression test for ?store
May 22, 2017
9368613
Add regression test for ?astore
May 24, 2017
b5cbb7f
Add README to tests pointing to jasmin bytecode assembler
May 19, 2017
0ce085f
Add temporary variables for values on stack for write operations
May 22, 2017
2f29c99
Assign function in instructions introduced by MM I/O instrumentation
peterschrammel May 30, 2017
afff4a7
MinGW GCC defines __int64 for Visual-Studio compatibility
tautschnig May 3, 2017
9f23c25
A first cut at the additions we need to the math library.
Dec 13, 2016
0777675
An alternative implementation to avoid the difference between RNE and…
Dec 18, 2016
e821efe
Fix special cases for the remainder functions, now down to 4 failures!
Dec 18, 2016
45d7f08
Support "polymorphic" floating-point functions, fix typos
tautschnig Dec 19, 2016
6822afa
Add --print-internal-representation to goto-instrument
karkhaz Jun 1, 2017
a6c32b0
Stop attempting to convert previously-converted headers
reuk Jun 12, 2017
bec818e
Remove duplication from conversion script
reuk Jun 13, 2017
e8202d9
Added test for array containing a zero struct
May 17, 2017
ab23684
Improved the interface of remove_const_functions
Jun 13, 2017
e2049b0
Making the approx and precise FP removal tests more precise
Jun 13, 2017
d7e4a35
Fixed null pointer related bug
Jun 13, 2017
8ec1890
Replace assert with appropriate invariant
Jun 13, 2017
30866b5
Force simplification of cast-from-universal-integer
smowton Jun 15, 2017
6cd9693
Add script to find linkerscript-defined info
karkhaz May 30, 2017
7c849cd
Added a 't' to the name of interval_template to be consistent with ge…
Jun 16, 2017
f21ff7f
Merge pull request #1025 from DanielNeville/danielneville/fix/add_t_t…
Jun 18, 2017
a2a143a
Merge pull request #1022 from karkhaz/ls-parse-script
Jun 18, 2017
17e5963
Merge pull request #1005 from reuk/script-update
Jun 18, 2017
1b58ff9
Merge pull request #991 from karkhaz/pretty-print
Jun 18, 2017
a71dfb5
Merge pull request #951 from mgudemann/fix/bytecode_args_write_from_s…
Jun 18, 2017
9d991b4
Use empty() instead of size()==0, size()<1
tautschnig Jun 19, 2017
e2e2360
Add test for Java integers with --no-simplify
smowton Jun 15, 2017
167636f
Fix sipush return type annotation
smowton Jun 19, 2017
40fb6a0
Don't warn on array_of_expr with zero length
smowton Jun 14, 2017
677f39d
Add zero-length array test
smowton Jun 19, 2017
e2204fc
Merge pull request #1032 from tautschnig/empty-cleanup
Jun 19, 2017
c897e06
Merge pull request #733 from tautschnig/float-lib
Jun 19, 2017
7039018
Add empty() to grapht as it implements size(), bug-fix
tautschnig Jun 19, 2017
dd8ed06
Merge pull request #1034 from diffblue/smowton/fix/sipush_return_type
Jun 19, 2017
7dbb203
Merge pull request #1040 from tautschnig/fix-1032
Jun 19, 2017
2c84b3a
add empty() to container-like classes with size()
Jun 19, 2017
7181e41
missing header
Jun 19, 2017
0bc503a
Merge pull request #1041 from diffblue/add_empty
tautschnig Jun 19, 2017
8542736
Fix typing in signed/unsigned comparison
tautschnig Jun 19, 2017
ed15077
detect missing message handler, and set a missing one
Jun 21, 2017
e0b4515
Merge pull request #1016 from diffblue/smowton/fix/java_integers_with…
Jun 23, 2017
03347eb
Expansion of array_replace/array_copy must not drop offsets
tautschnig Jun 28, 2017
78a23bb
Fix removal of first component
pkesseli Jun 19, 2017
76fa413
Taints cannot currently be tracked across undefined functions
tautschnig Jun 9, 2017
07841f7
Add bytecode files for non-public classes
tautschnig Jun 9, 2017
29dd3f1
Source locations have function names
tautschnig Jun 9, 2017
34e6b04
Move taint tests to goto-analyzer folder to ensure they are used
tautschnig Jun 9, 2017
5d84b1f
Make the custom bitvector analysis actually work
tautschnig Jun 9, 2017
10822d4
Propagate bitvector analysis state across function calls
tautschnig Jun 28, 2017
5a88619
Split up gen_nondet_init function
Jun 16, 2017
f4e8a9a
Split up gen_nondet_init for structs
Jun 16, 2017
0547fae
Added missing comment to class_hieracrchyt
Jun 16, 2017
e873e00
Correcting assertions
Jun 19, 2017
745a9b9
Merge pull request #1068 from tautschnig/fix-array-replace
Jun 29, 2017
9d232d4
Merge pull request #1027 from thk123/refactor/gen-nondet-init-master
Jun 30, 2017
b72cf31
Updated doxyfile to a modern version
cesaro Jun 29, 2017
7f4599f
Merge pull request #1074 from cesaro/feature/update-doxyfile
Jul 3, 2017
e1c313d
Merge pull request #1039 from tautschnig/signed-unsigned
Jul 3, 2017
1cb1fd9
Merge pull request #1013 from smowton/smowton/fix/array_of_zero_length
Jul 3, 2017
5938ecb
dump-c: Try to guess further system headers
tautschnig Apr 26, 2017
c54ddb8
Typedef names are symbols
tautschnig May 2, 2017
dc5ae8c
Fix dump-c output involving typedef names
tautschnig Apr 22, 2017
f56a398
No special handling of $link. This might appear due to unknown reasons.
stahlbauer May 16, 2017
2aa140c
Do not dump certain types if they are defined in system headers
stahlbauer May 16, 2017
b0e0c0a
Do not dump anonymous types from system headers
stahlbauer May 16, 2017
ac270c5
Dump the global declarations after the included system headers
stahlbauer May 16, 2017
fe04e59
Locate var args use even when va_arg_next is not used
tautschnig May 22, 2017
0428f6a
Output _Noreturn qualifier at appropriate place
tautschnig May 23, 2017
3a57645
Do not dump internal $object declarations
tautschnig May 23, 2017
f6509c3
Output float literals in a GCC-compatible fashion
tautschnig Jun 1, 2017
ad55c4f
bswap is not a library function; use __builtin_bswap[bit-suffix] instead
tautschnig Jun 1, 2017
a9dca20
Improve --use-system-headers output for GCC compatibility
tautschnig Jun 1, 2017
38b4c48
dump-c: respect local translation bounds in resolving switch/case
tautschnig Apr 4, 2017
e2cfed3
Use invariant annotations instead of asserts
tautschnig Jun 28, 2017
3433dc6
Merge pull request #885 from tautschnig/mingw-__int64
Jul 3, 2017
acc42c5
Merge pull request #977 from peterschrammel/bugfix/mm-io-instruction-…
Jul 3, 2017
3c896fd
Merge pull request #1038 from pkesseli/cpplint/header-guard-first-com…
Jul 3, 2017
eac8e2c
Merge pull request #1009 from thk123/bugfix/arrays-structs-null-pointers
Jul 3, 2017
34a476f
dump-c: Replace --use-system-headers by --no-system-headers
tautschnig Jul 3, 2017
a4945f3
Reset unwinding counters when leaving a loop at the loop head
tautschnig Jun 5, 2017
5fc1ca6
Partly revert to try out more beautiful approach
tautschnig Jul 3, 2017
7ef0091
Merge pull request #999 from tautschnig/fix-taint
Jul 3, 2017
c7ce527
Merge pull request #858 from tautschnig/dump-c-typedef
Jul 3, 2017
21afd2f
Initialise loop counters at loop entry
tautschnig Jul 3, 2017
32b68ce
Merge pull request #988 from tautschnig/fix-unwind-count
Jul 4, 2017
0e1b95c
Merge remote-tracking branch 'upstream/master' into merge_master_2017…
smowton Jul 5, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,6 @@ src/util/irep_ids_convert
src/util/irep_ids_convert.exe

*.pyc

# auto generated documentation
doc/html/
2 changes: 2 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
* GOTO-ANALYZER: New option --unreachable-functions, --reachable-functions
* GOTO-INSTRUMENT: New option --undefined-function-is-assume-false
* GOTO-INSTRUMENT: New option --remove-function-body
* GOTO-INSTRUMENT: New option --use-all-headers, changed --use-system-headers to
--no-system-headers


5.7
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc-java/LocalVarTable5/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ test.class
dead anonlocal::1i
dead anonlocal::2i
dead anonlocal::3a
dead new_tmp0
dead new_tmp[0-9]+
^EXIT=0$
^SIGNAL=0$
--
Binary file added regression/cbmc-java/array2/test.class
Binary file not shown.
6 changes: 6 additions & 0 deletions regression/cbmc-java/array2/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
CORE
test.class
--function test.f --cover location
\d+ of \d+ covered
--
^warning: ignoring
16 changes: 16 additions & 0 deletions regression/cbmc-java/array2/test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
public class test {

public void f(int unknown) {

int[] arr;
if(unknown > 0)
arr = new int[1];
else
arr = new int[0];

if(unknown > 0)
arr[0]=1;

}

}
2 changes: 1 addition & 1 deletion regression/cbmc-java/destructor1/test.desc
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ Break.class
^SIGNAL=0$
dead i;
--
GOTO 10
GOTO 11
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/integer_without_simplify1/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CORE
test.class
--no-simplify --function test.f --cover location
^EXIT=0$
^SIGNAL=0$
--
^warning: ignoring
10 changes: 10 additions & 0 deletions regression/cbmc-java/integer_without_simplify1/test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

public class test {

public void f() {

int x = 50;

}

}
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var1/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var1/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var1/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var1 s = new stack_var1();
int n = s.f(1);
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var1/stack_var1.class
Binary file not shown.
22 changes: 22 additions & 0 deletions regression/cbmc-java/stack_var1/stack_var1.j
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.class public stack_var1
.super java/lang/Object

.method public <init>()V
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method

.method public f(I)I
.limit stack 2
.limit locals 2

;; copy of arg on stack
iload_1
;; increment arg
iinc 1 1
;; incremented copy on stack
iload_1
isub
ireturn
.end method
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var1/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CORE
stack_test.class

^EXIT=10$
^SIGNAL=0$
^.*assertion at file stack_test.java line 5 function.*: FAILURE$
^VERIFICATION FAILED$
--
^warning: ignoring
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var10/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var10/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var10/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var10 s = new stack_var10();
int n = s.f();
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var10/stack_var10.class
Binary file not shown.
28 changes: 28 additions & 0 deletions regression/cbmc-java/stack_var10/stack_var10.j
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.class public stack_var10
.super java/lang/Object

.field private static n I

.method public <init>()V
.limit stack 5
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method

.method public f()I
.limit stack 8
.limit locals 5

iconst_1
istore_1
iconst_0
istore_2
;; lvar1 is 1, lvar2 is 0
iload_1
iload_2
;; on stack 1, 0
istore_1
;; store 0 into lvar1
ireturn
.end method
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var10/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CORE
stack_test.class

^EXIT=10$
^SIGNAL=0$
^.*assertion at file stack_test.java line 5 function.*: FAILURE$
^VERIFICATION FAILED$
--
^warning: ignoring
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var11/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var11/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var11/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var11 s = new stack_var11();
int n = s.f();
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var11/stack_var11.class
Binary file not shown.
31 changes: 31 additions & 0 deletions regression/cbmc-java/stack_var11/stack_var11.j
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.class public stack_var11
.super java/lang/Object

.field private arr [I

.method public <init>()V
.limit stack 5
aload_0
invokenonvirtual java/lang/Object/<init>()V
aload_0
iconst_2
newarray int
putfield stack_var11/arr [I
return
.end method

.method public f()I
.limit stack 8
.limit locals 5
aload_0
getfield stack_var11/arr [I
iconst_0
iaload ;; put arr[0] on stack (currently 0)
aload_0
getfield stack_var11/arr [I
iconst_0
iconst_1
iastore ;; store 1 in arr[0],
;; value on stack should not be touched
ireturn
.end method
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var2/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var2/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var2/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var2 s = new stack_var2();
int n = s.f(1);
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var2/stack_var2.class
Binary file not shown.
25 changes: 25 additions & 0 deletions regression/cbmc-java/stack_var2/stack_var2.j
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.class public stack_var2
.super java/lang/Object

.method public <init>()V
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method

.method public f(I)I
.limit stack 3
.limit locals 2

;; push local var1
iload_1
;; duplicate
dup
;; increment local var1
iinc 1 1
;; push local var1
iload_1
isub
;; incremented copy on stack
ireturn
.end method
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var2/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CORE
stack_test.class

^EXIT=10$
^SIGNAL=0$
^.*assertion at file stack_test.java line 5 function.*: FAILURE$
^VERIFICATION FAILED$
--
^warning: ignoring
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var3/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var3/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var3/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var3 s = new stack_var3();
int n = s.f();
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var3/stack_var3.class
Binary file not shown.
33 changes: 33 additions & 0 deletions regression/cbmc-java/stack_var3/stack_var3.j
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
.class public stack_var3
.super java/lang/Object

.method public <init>()V
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method

.method public f()I
.limit stack 5
.limit locals 3

;; 1->var1
;; 0->var2
iconst_1
istore_1
iconst_0
istore_2
;; push local var2 / var1
iload_2
iload_1
;; dup var1
dup_x1
;; sub one from var1
iinc 1 -1
;; pop first var1
pop
;; sub
isub
;; incremented copy on stack
ireturn
.end method
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var3/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CORE
stack_test.class

^EXIT=10$
^SIGNAL=0$
^.*assertion at file stack_test.java line 5 function.*: FAILURE$
^VERIFICATION FAILED$
--
^warning: ignoring
9 changes: 9 additions & 0 deletions regression/cbmc-java/stack_var4/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This regression test is created from the .j file with the jasmin assembler.
https://github.com/Sable/jasmin

On Ubuntu, it is available as jasmin-sable. To convert a .j file, it is
sufficient to do

> jasmin $FILE.j

and it will create the corresponding $FILE.class file.
Binary file added regression/cbmc-java/stack_var4/stack_test.class
Binary file not shown.
7 changes: 7 additions & 0 deletions regression/cbmc-java/stack_var4/stack_test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
public class stack_test {
public static void main(String[] args) {
stack_var4 s = new stack_var4();
int n = s.f();
assert(n==0);
}
}
Binary file added regression/cbmc-java/stack_var4/stack_var4.class
Binary file not shown.
Loading