Skip to content

Commit a0b5eab

Browse files
authored
Merge pull request diffblue#271 from diffblue/smowton/merge_develop_2017_11_16
Merge latest cbmc-develop
2 parents 8a2ad9e + 49cf2ff commit a0b5eab

File tree

365 files changed

+9277
-3852
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

365 files changed

+9277
-3852
lines changed

CMakeLists.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,49 @@ if(${enable_cbmc_tests})
4444
endif()
4545
add_subdirectory(unit)
4646
add_subdirectory(regression)
47+
48+
set_target_properties(
49+
analyses
50+
ansi-c
51+
assembler
52+
big-int
53+
cbmc
54+
cbmc-lib
55+
clobber
56+
clobber-lib
57+
cpp
58+
driver
59+
goto-analyzer
60+
goto-analyzer-lib
61+
goto-cc
62+
goto-cc-lib
63+
goto-diff
64+
goto-diff-lib
65+
goto-instrument
66+
goto-instrument-lib
67+
goto-programs
68+
goto-symex
69+
java_bytecode
70+
jbmc
71+
jbmc-lib
72+
jsil
73+
json
74+
langapi
75+
linking
76+
miniBDD
77+
miniz
78+
mmcc
79+
pointer-analysis
80+
solvers
81+
string_utils
82+
test-bigint
83+
testing-utils
84+
unit
85+
util
86+
xml
87+
88+
PROPERTIES
89+
CXX_STANDARD 11
90+
CXX_STANDARD_REQUIRED true
91+
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Developer ID Application: Daniel Kroening"
92+
)

CODEOWNERS

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,57 @@
11
# These owners will be the default owners for everything in the repo.
2-
* @kroening @tautschnig @peterschrammel
2+
* @kroening @tautschnig @peterschrammel @smowton @chrisr-diffblue
33

4-
src/java_bytecode/ @smowton @mgudemann @cristina-david @jgwilson42 @pkesseli @Degiorgio @NathanJPhillips
5-
src/jbmc/ @smowton @mgudemann @cristina-david @jgwilson42 @pkesseli @Degiorgio @NathanJPhillips
6-
src/miniz/ @smowton @mgudemann @cristina-david @jgwilson42 @pkesseli
4+
# These files should rarely change
75

8-
src/ansi-c/ @marek-trtik @kroening @tautschnig
6+
src/big-int/ @kroening
7+
src/ansi-c/ @kroening @tautschnig
8+
src/assembler/ @kroening @tautschnig
9+
src/goto-cc/ @kroening @tautschnig
10+
src/linking/ @kroening @tautschnig
11+
src/memory-models/ @kroening @tautschnig
12+
src/goto-symex/ @kroening @tautschnig @peterschrammel
13+
src/json/ @kroening @tautschnig @peterschrammel
14+
src/langapi/ @kroening @tautschnig @peterschrammel
15+
src/xmllang/ @kroening @tautschnig @peterschrammel
16+
src/nonstd/ @smowton @peterschrammel
17+
src/solvers/cvc @martin-cs @kroening
18+
src/solvers/flattening @martin-cs @kroening @tautschnig @peterschrammel
19+
src/solvers/floatbv @martin-cs @kroening
20+
src/solvers/miniBDD @tautschnig @kroening
21+
src/solvers/prop @martin-cs @kroening @tautschnig @peterschrammel
22+
src/solvers/sat @martin-cs @kroening @tautschnig @peterschrammel
23+
src/solvers/smt2 @martin-cs @tautschnig @peterschrammel
24+
src/miniz/ @smowton @mgudemann @peterschrammel
925

10-
src/cpp/ @marek-trtik @kroening @tautschnig
1126

12-
CMakeLists.txt @reuk @thk123
27+
# These files change frequently and changes are high-risk
1328

14-
cmake/ @reuk @thk123
29+
src/cbmc/ @smowton @kroening @tautschnig @peterschrammel
30+
src/goto-programs/ @smowton @kroening @tautschnig @peterschrammel @pkesseli
31+
src/util/ @smowton @kroening @tautschnig @peterschrammel @pkesseli
32+
src/solvers/refinement @martin-cs @romainbrenguier @peterschrammel
33+
src/java_bytecode/ @smowton @mgudemann @thk123 @cristina-david @cesaro @pkesseli @NathanJPhillips @peterschrammel
34+
src/analyses/ @martin-cs @peterschrammel @chrisr-diffblue @thk123 @smowton
35+
src/pointer-analysis/ @martin-cs @peterschrammel @chrisr-diffblue @smowton
1536

16-
src/solvers/ @martin-cs @romainbrenguier @antlechner @kroening
1737

18-
src/analyses/ @martin-cs @peterschrammel @thk123 @marek-trtik @NathanJPhillips
38+
# These files change frequently and changes are medium-risk
1939

20-
src/pointer-analysis/ @martin-cs @peterschrammel @thk123 @marek-trtik
40+
src/goto-analyzer/ @martin-cs @chrisr-diffblue @peterschrammel
41+
src/goto-instrument/ @martin-cs @chrisr-diffblue @peterschrammel
42+
src/goto-diff/ @tautschnig @peterschrammel
43+
src/jbmc/ @smowton @mgudemann @cristina-david @cesaro @pkesseli @peterschrammel
44+
src/cpp/ @kroening @tautschnig @peterschrammel
2145

22-
src/goto-analyzer/ @martin-cs @peterschrammel @thk123 @marek-trtik
2346

24-
src/goto-instrument/ @martin-cs @peterschrammel @thk123 @marek-trtik
25-
26-
src/goto-programs/ @smowton @kroening @tautschnig @peterschrammel @marek-trtik
27-
28-
src/linking/ @smowton @kroening @tautschnig @peterschrammel @marek-trtik
47+
# These files change frequently and changes are low-risk
2948

3049
unit/ @diffblue/cbmc-developers
31-
3250
regression/ @diffblue/cbmc-developers
3351

34-
.travis.yml @diffblue/devops @thk123 @forejtv @jgwilson42 @rabiamarzhiya
35-
appveyor.yml @diffblue/devops @thk123 @forejtv @jgwilson42 @rabiamarzhiya
52+
CMakeLists.txt @reuk @chrisr-diffblue
53+
cmake/ @reuk @chrisr-diffblue
3654

55+
scripts/ @diffblue/devops @thk123 @forejtv @peterschrammel
56+
.travis.yml @diffblue/devops @thk123 @forejtv @peterschrammel
57+
appveyor.yml @diffblue/devops @thk123 @forejtv @peterschrammel

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ test_script:
8383
rmdir /s /q cbmc\byte_update7
8484
rmdir /s /q cbmc\pipe1
8585
rmdir /s /q cbmc\unsigned___int128
86+
rmdir /s /q cbmc-cpp
8687
rmdir /s /q cpp\Decltype1
8788
rmdir /s /q cpp\Decltype2
8889
rmdir /s /q cpp\Function_Overloading1

regression/CMakeLists.txt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
set(CMAKE_CXX_STANDARD 11)
2-
set(CMAKE_CXX_STANDARD_REQUIRED true)
3-
41
set(test_pl_path "${CMAKE_CURRENT_SOURCE_DIR}/test.pl")
52

63
macro(add_test_pl_profile name cmdline flag profile)
74
add_test(
85
NAME "${name}-${profile}"
9-
COMMAND ${test_pl_path} -c ${cmdline} ${flag}
6+
COMMAND ${test_pl_path} -p -c ${cmdline} ${flag}
107
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
118
)
129
set_tests_properties("${name}-${profile}" PROPERTIES
@@ -25,15 +22,21 @@ endmacro(add_test_pl_tests)
2522

2623
add_subdirectory(ansi-c)
2724
add_subdirectory(cbmc)
25+
add_subdirectory(cbmc-cover)
26+
add_subdirectory(cbmc-cpp)
2827
add_subdirectory(cbmc-java)
2928
add_subdirectory(cbmc-java-inheritance)
3029
add_subdirectory(cpp)
3130
add_subdirectory(goto-analyzer)
31+
add_subdirectory(goto-analyzer-taint)
3232
add_subdirectory(goto-cc-cbmc)
3333
add_subdirectory(goto-cc-goto-analyzer)
3434
add_subdirectory(goto-diff)
3535
add_subdirectory(goto-instrument)
3636
add_subdirectory(goto-instrument-typedef)
37+
if(NOT WIN32)
38+
add_subdirectory(goto-gcc)
39+
endif()
3740
add_subdirectory(invariants)
3841
add_subdirectory(jbmc-strings)
3942
add_subdirectory(strings)

regression/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
DIRS = ansi-c \
22
cbmc \
33
cbmc-cover \
4+
cbmc-cpp \
45
cbmc-java \
56
cbmc-java-inheritance \
67
cpp \

regression/ansi-c/Makefile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,10 @@ else
1010
endif
1111

1212
test:
13-
@if ! ../test.pl -c $(exe) ; then \
14-
../failed-tests-printer.pl ; \
15-
exit 1 ; \
16-
fi
13+
@../test.pl -p -c $(exe)
1714

1815
tests.log: ../test.pl
19-
@if ! ../test.pl -c $(exe) ; then \
20-
../failed-tests-printer.pl ; \
21-
exit 1 ; \
22-
fi
16+
@../test.pl -p -c $(exe)
2317

2418
show:
2519
@for dir in *; do \

regression/cbmc-cover/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
add_test_pl_tests(
2+
"$<TARGET_FILE:cbmc>"
3+
)

regression/cbmc-cover/Makefile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
default: tests.log
22

33
test:
4-
@if ! ../test.pl -c ../../../src/cbmc/cbmc ; then \
5-
../failed-tests-printer.pl ; \
6-
exit 1 ; \
7-
fi
4+
@../test.pl -p -c ../../../src/cbmc/cbmc
85

96
tests.log: ../test.pl
10-
@if ! ../test.pl -c ../../../src/cbmc/cbmc ; then \
11-
../failed-tests-printer.pl ; \
12-
exit 1 ; \
13-
fi
7+
@../test.pl -p -c ../../../src/cbmc/cbmc
148

159
show:
1610
@for dir in *; do \

regression/cbmc-cpp/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
add_test_pl_tests(
2+
"$<TARGET_FILE:cbmc>"
3+
)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <assert.h>
2+
int x;
3+
4+
void g(int i){
5+
x=i;
6+
}
7+
8+
int main() {
9+
g(3);
10+
assert(x==3);
11+
}
12+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
main.cpp
3+
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#include <assert.h>
2+
unsigned x;
3+
4+
class ct {
5+
void f(int i) {
6+
x=x+i;
7+
}
8+
};
9+
10+
int main() {
11+
unsigned r;
12+
x=r%3;
13+
ct c;
14+
c.f(2);
15+
assert(x<4);
16+
assert(x<5);
17+
}
18+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CORE
2+
main.cpp
3+
4+
instance is SATISFIABLE$
5+
instance is UNSATISFIABLE$
6+
^EXIT=10$
7+
^SIGNAL=0$
8+
^VERIFICATION FAILED$
9+
--
10+
^warning: ignoring

regression/cbmc-cpp/union2/main.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include <assert.h>
12
struct A
23
{
34
union

regression/cbmc-java-inheritance/Makefile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
default: tests.log
22

33
test:
4-
@if ! ../test.pl -c ../../../src/jbmc/jbmc ; then \
5-
../failed-tests-printer.pl ; \
6-
exit 1 ; \
7-
fi
4+
@../test.pl -p -c ../../../src/jbmc/jbmc
85

96
tests.log: ../test.pl
10-
@if ! ../test.pl -c ../../../src/jbmc/jbmc ; then \
11-
../failed-tests-printer.pl ; \
12-
exit 1 ; \
13-
fi
7+
@../test.pl -p -c ../../../src/jbmc/jbmc
148

159
show:
1610
@for dir in *; do \

regression/cbmc-java/Makefile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
default: tests.log
22

33
test:
4-
@if ! ../test.pl -c ../../../src/jbmc/jbmc ; then \
5-
../failed-tests-printer.pl ; \
6-
exit 1 ; \
7-
fi
4+
@../test.pl -p -c ../../../src/jbmc/jbmc
85

96
tests.log: ../test.pl
10-
@if ! ../test.pl -c ../../../src/jbmc/jbmc ; then \
11-
../failed-tests-printer.pl ; \
12-
exit 1 ; \
13-
fi
7+
@../test.pl -p -c ../../../src/jbmc/jbmc
148

159
show:
1610
@for dir in *; do \

regression/cbmc-java/classpath2/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
jarfile3.class
3-
--function jarfile3.f --java-cp-include-files "jarfile3\.class"
3+
--function jarfile3.f --java-cp-include-files 'jarfile3\.class'
44
^EXIT=10$
55
^SIGNAL=0$
66
.*SUCCESS$
Binary file not shown.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public class DivideByZero {
2+
public static void main(String args[]) {
3+
int i=0;
4+
int j=10/i;
5+
}
6+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
DivideByZero.class
3+
4+
^EXIT=10$
5+
^SIGNAL=0$
6+
Denominator should be nonzero: FAILURE
7+
^VERIFICATION FAILED
8+
--
9+
^warning: ignoring

regression/cbmc-java/function1/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
Main.class
3-
--function "Other.fail:()V"
3+
--function 'Other.fail:()V'
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$

regression/cbmc-java/function2/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
Main.class
3-
--function "D.fail:()V"
3+
--function 'D.fail:()V'
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$

regression/cbmc-java/function3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
KNOWNBUG
22
Main.class
3-
--function "A.dummy:()V"
3+
--function 'A.dummy:()V'
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$

regression/cbmc-java/function4/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
KNOWNBUG
22
Main.class
3-
--function "Other.fail"
3+
--function 'Other.fail'
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
84 Bytes
Binary file not shown.
84 Bytes
Binary file not shown.
84 Bytes
Binary file not shown.
831 Bytes
Binary file not shown.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
interface A{}
2+
interface B{}
3+
interface C{}
4+
interface L<T> extends A,B,C{}
5+
6+
public class Gn<T extends L<? extends B>>{
7+
Gn<?> ex1;
8+
public void foo1(Gn<?> ex1){
9+
if(ex1 != null)
10+
this.ex1 = ex1;
11+
}
12+
public static void main(String[] args) {
13+
System.out.println("ddfsdf");
14+
}
15+
}
183 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)