Skip to content

Commit b127c46

Browse files
author
Owen Jones
committed
Squashed 'cbmc/' changes from 207b801..7202003
7202003 Merge branch 'develop' of github.com:diffblue/cbmc into CBMC_subtree_2018-04-10 768e8a6 Merge pull request diffblue#2009 from romainbrenguier/solvers/sparse-arrays-in-get 69f6e7b Merge pull request diffblue#2032 from tautschnig/replace-rename-performance ec43b00 Merge pull request diffblue#2026 from tautschnig/sat-clean 64b336a Refactor interval_sparse_array::concretize 5392645 Reserve size of array in concretize 8277e92 Stop using concretize_array_expr in unit tests 1a08772 Tests where model involves long strings a6c4010 Stop using concretize_arrays_in_expression 6d87233 Use concretize instead of fill_in_array 052d503 Use get_array in get_char_array_and_concretize 8ed138b Remove unused header c58ac60 Avoid copy in ranged for loops over expressions beff419 Use sparse arrays in get_array 9b286d9 Use sparse arrays in string_refinement::get 037f631 Refactor string_refinementt::get dfc584a Add concretize function for interval_sparse_array cb10550 Use sparse arrays in substitute_array_access ce4c008 Remove plus_exprt_with_overflow_check 4779b25 Get rid of calls to plus_exprt_with_overflow c40b836 Truncate string concatenations in case of overflow c52c813 Add a sum_overflows function 0d03591 Add an `at` function for access in sparse arrays 848dd95 Add an interval_sparse_array::of_expr function 5f07bf0 Initialization of sparse array from array-list 5b4d618 Reduce number of constraints in format ede2fa1 Clear string_dependencies in calls to dec_solve d483c81 Initialize sparse array from array_exprt a914153 Use map instead of vector for sparse array entries 20d2445 Remove unused rename(expr, old_id, new_id) 430d402 Use exprt::depth_iterator in rename_symbolt 54e5b85 Use a const expr to avoid unnecessary detach 6f71ff6 replace_symbolt: stop early if there is nothing to replace with 1dbb162 Clean locally built SAT solver objects 28c076b Merge pull request diffblue#2013 from LAJW/lajw/java-no-load-class e6a9127 Merge pull request diffblue#2020 from tautschnig/sat-cleanup 70741ff Remove support for Precosat 2aa81eb Remove support for SMVSAT a0fd3f7 Remove support for Limmat as a SAT solver 28cca9c Remove unused DIMACS parser 1d81306 Merge pull request diffblue#2015 from tautschnig/fix-smt2_solver-clean 392144d Makefiles: Place .d suffix used for dependencies in DEPEXT variable 839d32a smt2_solver.{o,d} should be removed by "make clean" 48e427a Merge pull request diffblue#1979 from romainbrenguier/regression/fix-indexOf-test c2f3726 Merge pull request diffblue#1976 from romainbrenguier/regression/activate-dependency-tests 42ecfa2 Add --java-no-load-class option 69fb74a Merge pull request diffblue#1995 from tautschnig/byte-update-soundness aa766ae Set string-max-length in indexOf test 988b818 Merge pull request diffblue#1990 from tautschnig/missing-header 8300147 Abort on byte_update(pointer) 4a8d9b4 Include missing header a695814 Merge pull request diffblue#1986 from thk123/revert/1816/overlay-classes 9933b58 Revert "Merge pull request diffblue#1816 from NathanJPhillips/feature/overlay-methods" cd9b839 Revert "Merge pull request diffblue#1982 from NathanJPhillips/bugfix/load-object-once" 58beeb4 Merge pull request diffblue#1978 from svorenova/lambda_tg2478_cont 1e3a9cd Merge pull request diffblue#1980 from NathanJPhillips/tests/irept 772b603 Merge pull request diffblue#1982 from NathanJPhillips/bugfix/load-object-once 0902ae7 Tests to demonstrate expected sharing behaviour of irept 2239ec1 Unit test of irept's public API 81ac259 Prevent test running on symex-driven lazy loading eae194f Allow incorrect paths for jar files on the classpath without crashing 6749fd0 Tests to ensure invalid values in the classpath are ignored 3c95aa1 Prevent attempting to load any class more than once c520331 Unit test to show java.lang.Object can be loaded from an explicit model 05a7b4a Merge pull request diffblue#1981 from smowton/smowton/cleanup/missing-docstring e4dc2aa Merge pull request diffblue#1946 from thk123/feature/TG-1811/unit-tests-for-invokedynamic-static-lambda 2b53d3b Merge pull request diffblue#1983 from svorenova/lambda_tg2478_fix f428247 Tidying up for lambdas f3b1379 Merge pull request diffblue#1975 from romainbrenguier/bugfix/literal-length-TG2878 7d4441d Regression test for lambda in a package 7366fda Format class name for lambda method handles 7db42c0 Add missing Doxygen parameter description 31fa0fe Addressing review comments 2a0927c Merge pull request diffblue#1643 from NathanJPhillips/bugfix/string-solver-function-type-mistake 229d1ee Merge pull request diffblue#1977 from romainbrenguier/bugfix/string-equals-TG-2179 97a6713 Merge pull request diffblue#1816 from NathanJPhillips/feature/overlay-methods e2d4b09 Updates for merge 674c9f0 Activate tests for StringBuffer concat in loops a997ffb Add verification test for String.equals 1ab596d Merge commit '3b8120f3a8c9ed3a343493a44ac454ae265946c1' into develop f7602af Merge commit 'bb88574aaa4043f0ebf0ad6881ccaaeb1f0413ff' into merge-develop-20180327 55d36b5 Fix code for String.equals baf33f8 Added regression tests 9984fc1 Add ability to overlay classes with new definitions of existing methods 66c529c Tidied up java_class_loader_limitt 397c14e Correcting typos and adding documentation to unit tests 54f1c54 Adding checks for the super class of the generated class df895d3 Temp checkin for checking components 44a5dcb Adding check for inheritance 28bfc37 Amending path to reflect new location e27151b Correcting typo in the scenario name d7356be Modified behaviour to find function calls ac33761 Use raw strings to avoid unnecessary escaping 4201db9 Adding tests for static lambdas f9adaa6 Adding tests for member methods 5f5994b Pull out the logic for getting the inital assignment 7f843a7 Add natural language explanation of the test's checks fa27117 Introduce tests for lambdas that are member variables 8999cf6 Added utiltity for getting this member components 3e0e12e Adding tests for the other two returning lambdas that don't capture f3ddee6 Adding tests to verify the return of the lambda wrapper method db6756e Adding checks for parameters of the called function d2ed92b Adding test for lambda taking array parameters d171f64 Swap finding variable values to use regex 99c21ed Extended find pointer assignment to take a regex 5610aca Added unit test for lambda assigned 7b0cee1 Refactored test method to allow reuse bea730d Adding utility for verifying a set of statements contains a function call ee2179c Introduce checks the the function body for Execute calls the correct lambda 2348d10 Adding unit test for checking local lambda conversion 46fa176 Extending require utilities to be used in test 6df8d6b Extended require_goto_statements to provide meaningful errors 39282a6 Add debug information for working directory 770eb2a Remove methods without a implementation or usage 5cbb758 Merge pull request diffblue#1937 from svorenova/lambda_tg2711 8cfd9bf Merge pull request diffblue#1968 from smowton/smowton/cleanup/remove-exceptions-clarity 6ca3272 Merge pull request diffblue#1973 from karkhaz/kk-c++2a-fixes 212da75 Making members of a test utility class non-const d57fe53 Renaming the folder with lambda unit tests 823f2a7 Adding a unit test for lambda method handles in class symbol 8b172b4 Adding a utility function for lambda method handles in struct 844bb20 Pulling out a utility function to a separate file 3585f73 Updating unit tests for parsing lambda method table 078dc0f Updating a utility function a8ac3d4 Pass lambda method handles to method instruction conversion bf04c93 Add lambda method handles during class conversion a518393 Introduce lambda method handles in java class type 37afd9a Store the full method reference of lambda method handles 0a49697 Store bootstrap method index for invokedynamic instructions 56c9c02 Add test for string literals length af958f0 Correct length field of string literals a190534 Remove-exceptions: make lambda types explicit b052a4d Fix warnings emitted by C++2a compiler 20eaf21 Fix type of call to forName git-subtree-dir: cbmc git-subtree-split: 7202003985a99fb6563cf4d0fb8e7f2c727cc040
1 parent 3b8120f commit b127c46

File tree

163 files changed

+2845
-1694
lines changed

Some content is hidden

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

163 files changed

+2845
-1694
lines changed
164 Bytes
Binary file not shown.
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package LambdaTest;
2+
3+
interface Lamb1 {
4+
public Integer lambFunc1(Integer x);
5+
}
6+
7+
class Test {
8+
9+
public static Integer recvLambda(Integer y, Integer z) {
10+
Lamb1 lmb1 = (x) -> x = y + z; // Initializing in a lambda statement
11+
if (lmb1 != null && z != null) {
12+
return lmb1.lambFunc1(y);
13+
}
14+
return lmb1.lambFunc1(z);
15+
}
16+
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
LambdaTest/Test.class
3+
--show-symbol-table --function LambdaTest.Test.recvLambda
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
--
8+
This is to verify that parsing lambdas in a package does not crash.

regression/jbmc-strings/StringConcat/test_buffer_nondet_loop.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
Test.class
3-
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop --depth 10000 --unwind 5 --verbosity 10 --property "java::Test.bufferNonDetLoop:(ILjava/lang/String;)Ljava/lang/String;.assertion.1"
3+
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop --depth 10000 --unwind 5 --verbosity 10 --property 'java::Test.bufferNonDetLoop:(ILjava/lang/String;)Ljava/lang/String;.assertion.1'
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$

regression/jbmc-strings/StringConcat/test_buffer_nondet_loop2.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
Test.class
33
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop2 --depth 10000 --unwind 5 --verbosity 10
44
^EXIT=10$

regression/jbmc-strings/StringConcat/test_buffer_nondet_loop4.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
Test.class
3-
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop4 --depth 10000 --unwind 5 --verbosity 10 --property "java::Test.bufferNonDetLoop4:(IILjava/lang/String;)Ljava/lang/String;.assertion.1"
3+
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop4 --depth 10000 --unwind 5 --verbosity 10 --property 'java::Test.bufferNonDetLoop4:(IILjava/lang/String;)Ljava/lang/String;.assertion.1'
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$

regression/jbmc-strings/StringConcat/test_buffer_nondet_loop5.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
Test.class
3-
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop5 --depth 10000 --unwind 5 --verbosity 10
3+
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.bufferNonDetLoop5 --depth 10000 --unwind 3 --verbosity 10
44
^EXIT=10$
55
^SIGNAL=0$
66
^VERIFICATION FAILED$

regression/jbmc-strings/StringConcat/test_string_nondet.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
Test.class
33
--refine-strings --string-max-length 1000 --string-max-input-length 100 --function Test.stringNonDet --depth 10000 --unwind 5 --verbosity 10
44
^EXIT=10$
572 Bytes
Binary file not shown.

regression/jbmc-strings/StringEquals/Test.java

+48
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// Uses CProverString, must be compiled with ../cprover/CProverString.java
2+
import org.cprover.*;
3+
14
public class Test {
25
public static void check(int i, String s) {
36
String t = "Hello World";
@@ -15,4 +18,49 @@ else if (i==4)
1518
else if (i==5)
1619
assert(s.equals(x));
1720
}
21+
22+
public static boolean referenceImplementation(String s, Object o) {
23+
if (! (o instanceof String))
24+
return false;
25+
26+
String s2 = (String) o;
27+
if (s.length() != s2.length())
28+
return false;
29+
30+
for (int i = 0; i < s.length(); i++) {
31+
if (CProverString.charAt(s, i) != CProverString.charAt(s2, i))
32+
return false;
33+
}
34+
35+
return true;
36+
}
37+
38+
public static boolean verifyNonNull(String s, Object o) {
39+
// Filter
40+
if (s == null || o == null)
41+
return false;
42+
43+
// Act
44+
boolean result = s.equals(o);
45+
boolean referenceResult = referenceImplementation(s, o);
46+
47+
// Assert
48+
assert result == referenceResult;
49+
50+
// Return
51+
return result;
52+
}
53+
54+
public static boolean verify(String s, Object o) {
55+
// Act
56+
boolean result = s.equals(o);
57+
boolean referenceResult = referenceImplementation(s, o);
58+
59+
// Assert
60+
assert result == referenceResult;
61+
62+
// Return
63+
return result;
64+
}
65+
1866
}

regression/jbmc-strings/StringEquals/test.desc

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ Test.class
33
--refine-strings --string-max-length 40 --function Test.check
44
^EXIT=10$
55
^SIGNAL=0$
6-
assertion at file Test.java line 6 .* SUCCESS
7-
assertion at file Test.java line 8 .* FAILURE
8-
assertion at file Test.java line 10 .* SUCCESS
9-
assertion at file Test.java line 12 .* FAILURE
10-
assertion at file Test.java line 14 .* SUCCESS
11-
assertion at file Test.java line 16 .* FAILURE
6+
assertion at file Test.java line 9 .* SUCCESS
7+
assertion at file Test.java line 11 .* FAILURE
8+
assertion at file Test.java line 13 .* SUCCESS
9+
assertion at file Test.java line 15 .* FAILURE
10+
assertion at file Test.java line 17 .* SUCCESS
11+
assertion at file Test.java line 19 .* FAILURE
1212
--
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
KNOWNBUG
2+
Test.class
3+
--refine-strings --string-max-input-length 5 --string-max-length 100 --unwind 10 --function Test.verify --java-throw-runtime-exceptions
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
assertion at file Test.java line 60 .* SUCCESS
7+
--
8+
--
9+
null case not handled currently
10+
TG-2179
11+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CORE
2+
Test.class
3+
--refine-strings --string-max-input-length 20 --string-max-length 100 --unwind 30 --function Test.verifyNonNull
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
assertion at file Test.java line 48 .* SUCCESS
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
Test.class
3-
--refine-strings --function Test.check --unwind 4 --string-max-input-length 3 --java-assume-inputs-non-null
3+
--refine-strings --function Test.check --unwind 4 --string-max-input-length 3 --string-max-length 100 --java-assume-inputs-non-null
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
623 Bytes
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
public class Test {
2+
public static int check(int i) {
3+
String s = "\u0000";
4+
5+
if (i == 0)
6+
assert(s.length() == 1);
7+
else if (i == 1)
8+
assert(s.length() != 1);
9+
10+
return s.length();
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
Test.class
3+
--refine-strings --function Test.check
4+
assertion at file Test.java line 6 .* SUCCESS
5+
assertion at file Test.java line 8 .* FAILURE
6+
^EXIT=10$
7+
^SIGNAL=0$
985 Bytes
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import org.cprover.CProverString;
2+
3+
public class Test {
4+
public static void check(String s, String t) {
5+
// Filter
6+
if(s == null || t == null)
7+
return;
8+
9+
// Act
10+
String u = s.concat(t);
11+
12+
// Filter out
13+
if(u.length() < 3_000_000)
14+
return;
15+
if(CProverString.charAt(u, 500_000) != 'a')
16+
return;
17+
if(CProverString.charAt(u, 2_000_000) != 'b')
18+
return;
19+
20+
// Assert
21+
assert(false);
22+
}
23+
24+
public static void checkAbort(String s, String t) {
25+
// Filter
26+
if(s == null || t == null)
27+
return;
28+
29+
// Act
30+
String u = s.concat(t);
31+
32+
// Filter out
33+
if(u.length() < 67_108_864)
34+
return;
35+
if(CProverString.charAt(u, 2_000_000) != 'b')
36+
return;
37+
38+
// Assert
39+
assert(false);
40+
}
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CORE
2+
Test.class
3+
--refine-strings --function Test.check --string-max-input-length 2000000
4+
^EXIT=10$
5+
^SIGNAL=0$
6+
assertion at file Test.java line 21 .* FAILURE
7+
--
8+
--
9+
This checks that the solver manage to violate assertions even when this requires
10+
some very long strings, as long as they don't exceed the arbitrary limit that
11+
is set by the solver (64M characters).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
Test.class
3+
--refine-strings --function Test.checkAbort
4+
^EXIT=6$
5+
^SIGNAL=0$
6+
--
7+
--
8+
This tests should abort, because concretizing a string of the required
9+
length may take to much memory.

src/cbmc/bmc.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,8 @@ void bmct::setup_unwind()
627627
/// \param message: used for logging
628628
/// \param driver_configure_bmc: function provided by the driver program,
629629
/// which applies driver-specific configuration to a bmct before running.
630+
/// \param callback_after_symex: optional callback to be run after symex.
631+
/// See class member `bmct::driver_callback_after_symex` for details.
630632
int bmct::do_language_agnostic_bmc(
631633
const optionst &opts,
632634
abstract_goto_modelt &model,

src/common

+9-10
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ ifeq ($(filter-out Unix MinGW OSX OSX_Universal FreeBSD,$(BUILD_ENV_)),)
2727
# Linux-ish
2828
LIBEXT = .a
2929
OBJEXT = .o
30+
DEPEXT = .d
3031
ifeq ($(BUILD_ENV_),MinGW)
3132
EXEEXT = .exe
3233
else
@@ -99,6 +100,7 @@ else ifeq ($(BUILD_ENV_),Cygwin)
99100
# use these for Cygwin:
100101
LIBEXT = .a
101102
OBJEXT = .o
103+
DEPEXT = .d
102104
EXEEXT = .exe
103105
CFLAGS ?= -Wall -O2
104106
CXXFLAGS ?= -Wall -O2
@@ -131,6 +133,7 @@ else ifeq ($(BUILD_ENV_),MSVC)
131133
# use these for Visual Studio:
132134
LIBEXT = .lib
133135
OBJEXT = .obj
136+
DEPEXT = .dep
134137
EXEEXT = .exe
135138
CFLAGS ?= /W3 /O2 /GF
136139
CXXFLAGS ?= /W3 /D_CRT_SECURE_NO_WARNINGS /O2 /GF
@@ -159,18 +162,14 @@ else
159162
endif
160163

161164
# select default solver to be minisat2 if no other is specified
162-
ifeq ($(BOOLEFORCE)$(CHAFF)$(GLUCOSE)$(IPASIR)$(LINGELING)$(MINISAT)$(MINISAT2)$(PICOSAT)$(PRECOSAT),)
165+
ifeq ($(BOOLEFORCE)$(CHAFF)$(GLUCOSE)$(IPASIR)$(LINGELING)$(MINISAT)$(MINISAT2)$(PICOSAT),)
163166
MINISAT2 = ../../minisat-2.2.1
164167
endif
165168

166169
ifneq ($(IPASIR),)
167170
CP_CXXFLAGS += -DHAVE_IPASIR
168171
endif
169172

170-
ifneq ($(PRECOSAT),)
171-
CP_CXXFLAGS += -DHAVE_PRECOSAT
172-
endif
173-
174173
ifneq ($(PICOSAT),)
175174
CP_CXXFLAGS += -DHAVE_PICOSAT
176175
endif
@@ -213,7 +212,7 @@ CP_CXXFLAGS += $(CXXFLAGS) $(INCLUDES)
213212
OBJ += $(patsubst %.cpp, %$(OBJEXT), $(filter %.cpp, $(SRC)))
214213
OBJ += $(patsubst %.cc, %$(OBJEXT), $(filter %.cc, $(SRC)))
215214

216-
.SUFFIXES: .cc .d .cpp
215+
.SUFFIXES: .cc $(DEPEXT) .cpp
217216

218217
%.o:%.cpp
219218
$(CXX) -c $(CP_CXXFLAGS) -o $@ $<
@@ -236,9 +235,9 @@ OBJ += $(patsubst %.cc, %$(OBJEXT), $(filter %.cc, $(SRC)))
236235

237236
clean:
238237
$(RM) $(patsubst %.cpp, %$(OBJEXT), $(filter %.cpp, $(SRC))) \
239-
$(patsubst %.cpp, %.d, $(filter %.cpp, $(SRC))) \
238+
$(patsubst %.cpp, %$(DEPEXT), $(filter %.cpp, $(SRC))) \
240239
$(patsubst %.cc, %$(OBJEXT), $(filter %.cc, $(SRC))) \
241-
$(patsubst %.cc, %.d, $(filter %.cc, $(SRC))) \
240+
$(patsubst %.cc, %$(DEPEXT), $(filter %.cc, $(SRC))) \
242241
$(CLEANFILES)
243242

244243
.PHONY: first_target clean all
@@ -255,7 +254,7 @@ sources: Makefile
255254
# include .depend
256255
# endif
257256

258-
D_FILES1 = $(SRC:.c=.d)
259-
D_FILES = $(D_FILES1:.cpp=.d)
257+
D_FILES1 = $(SRC:.c=$(DEPEXT))
258+
D_FILES = $(D_FILES1:.cpp=$(DEPEXT))
260259

261260
-include $(D_FILES)

src/config.inc

-10
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ endif
2424
#LIB_GLPK = -lglpk
2525

2626
# SAT-solvers we have
27-
#PRECOSAT = ../../precosat-576-7e5e66f-120112
2827
#PICOSAT = ../../picosat-959
2928
#LINGELING = ../../lingeling-587f-4882048-110513
3029
#CHAFF = ../../zChaff
@@ -33,16 +32,11 @@ endif
3332
#MINISAT2 = ../../minisat-2.2.1
3433
#IPASIR = ../../ipasir
3534
#GLUCOSE = ../../glucose-syrup
36-
#SMVSAT =
3735

3836
# Extra library for SAT solver. This should link to the archive file to be used
3937
# when linking against an IPASIR solver.
4038
LIBSOLVER =
4139

42-
ifneq ($(PRECOSAT),)
43-
CP_CXXFLAGS += -DSATCHECK_PRECOSAT
44-
endif
45-
4640
ifneq ($(PICOSAT),)
4741
CP_CXXFLAGS += -DSATCHECK_PICOSAT
4842
endif
@@ -71,10 +65,6 @@ ifneq ($(GLUCOSE),)
7165
CP_CXXFLAGS += -DSATCHECK_GLUCOSE
7266
endif
7367

74-
ifneq ($(SMVSAT),)
75-
CP_CXXFLAGS += -DSATCHECK_SMVSAT
76-
endif
77-
7868
# Signing identity for MacOS Gatekeeper
7969

8070
OSX_IDENTITY="Developer ID Application: Daniel Kroening"

src/cpp/cpp_typecheck_resolve.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,6 @@ void cpp_typecheck_resolvet::make_constructors(
588588
{
589589
resolve_identifierst new_identifiers;
590590

591-
resolve_identifierst::iterator next;
592-
593591
for(resolve_identifierst::iterator
594592
it=identifiers.begin();
595593
it!=identifiers.end();

src/goto-instrument/cover_basic_blocks.h

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class message_handlert;
2121
class cover_blocks_baset
2222
{
2323
public:
24+
virtual ~cover_blocks_baset() = default;
2425
/// \param t a goto instruction
2526
/// \return the block number of the block
2627
/// the given goto instruction is part of

src/goto-instrument/cover_instrument.h

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class goal_filterst;
2525
class cover_instrumenter_baset
2626
{
2727
public:
28+
virtual ~cover_instrumenter_baset() = default;
2829
cover_instrumenter_baset(
2930
const symbol_tablet &_symbol_table,
3031
const goal_filterst &_goal_filters,

0 commit comments

Comments
 (0)