Skip to content

String solver cbmc pass option #278

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

Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
299 commits
Select commit Hold shift + click to select a range
ee67a16
use highlight
Jun 13, 2016
b76ff86
use highlight
Jun 13, 2016
c87e55a
use highlight
Jun 13, 2016
43396c3
use highlight
Jun 13, 2016
df0b9b5
use highlight
Jun 13, 2016
32c440f
use highlight
Jun 13, 2016
f3114c0
Avoid warnings and errors with selected compilers in jsil front-end
tautschnig Jun 13, 2016
3d81e2c
Include _Bool variables in dimacs output, cleanup
tautschnig Jun 14, 2016
85041f5
Peter forgot to git-add show_goto_functions.cpp
Jun 17, 2016
f1da808
call show_goto_functions
Jun 17, 2016
8154f23
missing show_goto_functions
Jun 17, 2016
bb07798
Output all variables in dimacs mapping
tautschnig Jun 17, 2016
a044f85
Compile recently added show_goto_functions.cpp
tautschnig Jun 17, 2016
72ff309
Debugging facilities for the C lexer/parser
tautschnig Jun 1, 2016
f7ac9fd
Cleanup of attribute scanning/parsing
tautschnig Jun 1, 2016
96f2ff9
Support __attribute__((section("x"))
tautschnig Jun 1, 2016
ba24a6f
Detailed report of conflicting section names
tautschnig Jun 1, 2016
ea4d029
Support type attributes for enum, complex
tautschnig Jun 1, 2016
6471dd2
Clear out unused ID_gcc_attribute
tautschnig Jun 1, 2016
c561031
Make gcc_attribute5 work: attributes in parentheses
tautschnig Jun 1, 2016
c9a31d8
Output source location with all type checking errors
tautschnig Jun 9, 2016
5acd0dc
Print full path for file source when printing JSON
Apr 19, 2016
51bdce1
ansi-c library: no pthread_barrier_t on OS X
tautschnig Mar 7, 2016
05b4486
Proper C++ includes
tautschnig Jan 18, 2016
8bc6457
Remove revision-control backup files
tautschnig Jun 18, 2016
3bcc968
pthread_join on the mac
Jun 18, 2016
1764c1b
fix windows concat_dir_file
Jun 18, 2016
eafc46b
avoid a warning
Jun 18, 2016
da3cd59
mingw compiler got renamed
Jun 18, 2016
bbaf6bc
added INTPTR and UINTPTR
Jun 18, 2016
6edf9cf
regression tests for #123
Jun 18, 2016
251f9af
set the message handler for cover_goalst
Jun 19, 2016
2e89a82
better error handling for cover_goalst
Jun 19, 2016
4f8665c
fix help; change default SMT2 solver
Jun 19, 2016
6c6de42
SMT solvers shall do all-properties
Jun 19, 2016
0d14e2d
use consisten status messages
Jun 19, 2016
a56190e
added a failing assertion
Jun 19, 2016
86049a2
missing header
Jun 19, 2016
5f6f525
missing header
Jun 19, 2016
e6f5e2d
whitespace
Jun 19, 2016
c93c526
more than one error label
Jun 19, 2016
8df84f8
typecasts for function calls
Jun 19, 2016
b10ac54
missing assert.h
Jun 19, 2016
f6796d6
missing header
Jun 19, 2016
db27c3a
remove some complexities
Jun 19, 2016
a0d785b
be more persistent during search
Jun 19, 2016
39ed567
cleanup, using ranged for
Jun 19, 2016
df328e0
harmonize property results
Jun 19, 2016
0c6c3c5
fixes and cleanup for the intervals
Jun 19, 2016
54e76cf
ignore ID_notequal in interval domain
Jun 19, 2016
2b8050f
cleanup
Jun 19, 2016
3db508f
make BFS work
Jun 19, 2016
1fb50b8
avoid outputting 1-character strings
Jun 19, 2016
1c3f915
branch bound
Jun 19, 2016
c28e97a
--all-properties is now default
Jun 19, 2016
58a68af
report more stats
Jun 19, 2016
bc07116
use remove_returns
Jun 19, 2016
616cf1b
avoid an error if there is no lhs_object
Jun 19, 2016
e7bf4dd
tets for --show-trace
Jun 19, 2016
ae7e6d1
more on source code
Jun 19, 2016
59ac505
more work on string literals
Jun 19, 2016
bc3cc50
more work on environment setup
Jun 19, 2016
d59e21b
symex can now do Java bytecode
Jun 19, 2016
b1a2a54
deal with return values and virtual functions
Jun 19, 2016
99360ee
added stop-on-fail cmdline option
Jun 19, 2016
6a219d0
did class_hierarchyt::output
Jun 19, 2016
a26a843
mimick cbmc's output
Jun 19, 2016
9718528
optimize for case of one match in class hierarchy
Jun 19, 2016
1c90c05
fix for return, debug output
Jun 19, 2016
330cd07
Avoid string contents comparison, perform cheap operation first in ||
tautschnig Apr 21, 2016
bb4eeff
Fix for compilers (notably: g++ running on travis-ci) reporting spuri…
tautschnig Jun 19, 2016
2307b4c
Debugging output of dynamic_object type (disabled)
tautschnig Jun 18, 2016
57707d9
Malloc to yield an array of appropriate subtype when sizeof(T) is used
tautschnig Jun 18, 2016
80a908d
Extended regression test
tautschnig Jun 19, 2016
7d64ea0
Improved typing of flatten_byte_*
tautschnig Jun 19, 2016
16086ab
Code cleanup and bugfixes to flatten_byte_extract
tautschnig Jun 19, 2016
aceb05d
Successfully producing a formula with --outfile should not yield non-…
tautschnig Jun 20, 2016
dae543d
added code_typet::has_this
Jun 20, 2016
23c6f78
check whether 'this' is null on method invokation
Jun 20, 2016
d6f63de
flatten_byte_update now does arrays of pointers and booleans
Jun 20, 2016
920af00
whitespace
Jun 20, 2016
740397f
properly test byte_update flattening
Jun 20, 2016
1e6574a
further work on byte operator flattening
Jun 20, 2016
bb7450c
further work on byte operator flattening
Jun 20, 2016
a4befc5
more work on byte_update flattening
Jun 20, 2016
892b68c
GCC mode of goto-cc uses GCC's exit code, proper cleanup of files
tautschnig Jun 8, 2016
408dea4
Warn about files being ignored
tautschnig Jun 2, 2016
18e3d8e
goto-(g)cc -static entails -lc
tautschnig Jun 10, 2016
d6f8820
goto-(g)cc -pthread entails -lpthread
tautschnig Jun 14, 2016
fdba0bb
GCC (and clang) accept both -lx as well as -l x
tautschnig Jun 12, 2016
ac41780
Enforce re-build of static initialization when linking object files
tautschnig Apr 26, 2016
ddbb844
pointer_logic.objects must be fully populated before evaluating objec…
tautschnig Apr 3, 2016
377a73b
pragma pack(n) still permits more dense alignment than n
tautschnig Jun 16, 2016
a9c886a
Relax linking constraints to support Linux syscalls
tautschnig May 16, 2016
e241290
Spurious type conflicts on objects need to be fixed recursively
tautschnig Mar 18, 2016
a4e3a16
Treat 0-sized array declarations the same as arrays without size info
tautschnig Jun 13, 2016
a226f6d
Print statistics about shared memory accesses
tautschnig Jul 15, 2014
5399966
Removed unused jump table; we might use switch/case once Visual Studi…
tautschnig Feb 20, 2016
23ce04b
Simplify input/output format arguments
tautschnig Feb 23, 2016
c8da951
Extended simplify for byte_update, typing
tautschnig Feb 5, 2016
08c8d63
Simplify byte_extract: typing, added simplify_member call
tautschnig Feb 5, 2016
0e271df
Simplify ID_with when index is known
tautschnig Feb 16, 2016
2a24561
Simplify typecast of pointer arithmetic expression to integer
tautschnig Feb 11, 2014
9c3311e
Preparing typing of simplify_if, use lift_if
tautschnig Feb 27, 2016
a9e8b9c
New implementation of (still disabled) expression replacement in simp…
tautschnig Feb 27, 2016
d534e99
simplify/byte_extract bugfixes
tautschnig Mar 4, 2016
add43dd
Build symex
tautschnig Jun 21, 2016
cc91d1a
fix the test
Jun 21, 2016
91e3628
make library_check work again
Jun 21, 2016
fede5af
GCC asm labels need to be considered when listing undefined functions
tautschnig Jun 14, 2016
2a5cac1
Parse KnR functions returning function pointers
tautschnig Jun 21, 2016
77a2685
Fix type checking of ?: when one operand is void*
tautschnig Jun 21, 2016
9cb8535
merged with master
Jul 1, 2016
4b84909
added various string benchmarks taken from z3str2-bv
Jul 1, 2016
8be3253
started working on string support in the SAT backend (via PASS-like a…
Jul 8, 2016
e02fee2
sync with master
Jul 15, 2016
599b343
continued working on string refinement
Jul 15, 2016
d138195
further work on string refinement
Jul 15, 2016
4abb6d6
continued working on string refinement loop
Aug 1, 2016
06eccb4
string refinement: fixed bug in i2bin
Aug 2, 2016
7ce74e8
string refinement: fixed processing of command-line args
Aug 2, 2016
64ae282
string refinement: added missing conversions, fixed bug in axiom inst…
Aug 2, 2016
6afcf55
string refinement: further progress. Now something works, but checkin…
Aug 2, 2016
ad547d2
Adding --pass option to cbmc to use the string refinement code of Alb…
Aug 2, 2016
c864f07
experimenting with another conversion to bit vectors to take the leng…
Aug 3, 2016
557b119
Changed the encoding of strings to use a structured type
Aug 5, 2016
a1fce4f
Post proccessing of the lemmas
Aug 5, 2016
c4c0815
Converting all strings to bit vectors using a structure containing th…
Aug 9, 2016
a3e39ea
cleaned some code
Aug 9, 2016
4d0f0c3
better structure for the code of string expressions
Aug 9, 2016
2675eaf
taking care of char expressions
Aug 10, 2016
453381d
uniformisation of lemmas and axioms by putting them in a same class (…
Aug 10, 2016
2baf3bd
adapted the code for string_equal
Aug 10, 2016
e447fa7
adapted the code for string_equal
Aug 10, 2016
7999115
making the PASS algorithm cleaner
Aug 11, 2016
653ae6c
corrected the problem with infinite loops and some missing conversion…
Aug 12, 2016
30c1b78
removed some debugging information that should no longer be needed
Aug 12, 2016
0a489c7
removed some debugging information that should no longer be needed
Aug 12, 2016
2888fc2
corrected a sign problem in the computation of the substitution
Aug 12, 2016
d03aac0
avoid creating new string symbols when there is no need for it
Aug 12, 2016
45c9d04
adding instantiations before solving
Aug 15, 2016
7bf66a1
Adding new tests for strings
Aug 15, 2016
a690724
adding index to the index set when we have a char_at function
Aug 15, 2016
888e374
Corrected the order in the arguments of issuffix
Aug 15, 2016
1c89da7
A couple of other examples for strings
Aug 15, 2016
b90ec2c
Test descriptions for strings
Aug 15, 2016
f1a4908
Better displaying of the lemmas and other expressions
Aug 15, 2016
759613c
Cleaning a bit the code for string refinement
Aug 15, 2016
3f21d28
Tests coming from the PASS article
Aug 16, 2016
36015e3
adding support for axioms with existential quantifier, and adding the…
Aug 17, 2016
96d30c1
changed the index type to be signed in order to accomodate some funct…
Aug 18, 2016
24bfd52
more precise tests, with both assertions that should succeed and fail
Aug 19, 2016
ff4d91a
repaired the order of instantiation when there are existential quanti…
Aug 19, 2016
cac8777
giving up for now refinement approach for the index set, which was no…
Aug 22, 2016
b81708e
changing the way string constraints are represented
Aug 26, 2016
1624e6e
changing the way string constraints are represented
Aug 26, 2016
3f1c02b
changed the way string constraints are represented
Aug 26, 2016
04ad43d
structured the code for string refinement in several files
Aug 29, 2016
95a4d9e
Completed the algorithm for contains function
Aug 30, 2016
1eea52d
Test for the substring function
Aug 30, 2016
23426ce
corrected the prefix_of function
Aug 30, 2016
4dc1edd
some missing tests
Aug 30, 2016
4f878c0
removed the copy declarations which we don't really know how to do fo…
Aug 30, 2016
86abfae
Compatibility with java strings
Sep 6, 2016
37a3b75
Compatibility with java strings, and a couple of examples of java pro…
Sep 6, 2016
b254c25
Corrected type checkm for string equality in Java programs
Sep 7, 2016
ea93657
Corrected type checkm for string equality in Java programs
Sep 7, 2016
f04df39
Pass preprocessing of java string literals
Sep 10, 2016
7526764
improved pass processing for string literals inside arguments of func…
Sep 10, 2016
fab0bc6
pass processing of new String
Sep 10, 2016
7cf5e6d
PASS preprocessing for indexOf and lastIndexOf
Sep 11, 2016
cddbb6c
removed unecessary debugging information
Sep 11, 2016
19f5172
Substring method and more tests
Sep 12, 2016
9635737
corrected a confusion between c strings and java strings in the case …
Sep 12, 2016
4061517
regression test for java endsWith method
Sep 12, 2016
32d997e
added java contains string method
Sep 12, 2016
d4cee59
cleaning the code by removing some debugging information that were us…
Sep 13, 2016
f9c45b3
basic support for StringBuilder
Sep 13, 2016
f100d55
support for StringBuilder init without argument
Sep 13, 2016
33ded2d
test for StringBuilder
Sep 13, 2016
8e212b2
support for StringBuilder.length
Sep 13, 2016
9f53d15
init from String and void for String and StringBuilder
Sep 13, 2016
27a4a7d
tests for StringBuilder.length
Sep 13, 2016
6661386
substring with only one argument (we should add tests for this also)
Sep 13, 2016
3751029
conversion from integers to strings
Sep 14, 2016
2bc890d
conversion from integers to strings in java
Sep 14, 2016
0081e63
parsing of integer in strings
Sep 14, 2016
45f4b77
parsing of integer in strings
Sep 14, 2016
24cf61b
parsing of integer in strings for java
Sep 14, 2016
1e91533
better handling of StringBuilder.append to allow chained append calls
Sep 14, 2016
2c4395e
of int for negative numbers
Sep 15, 2016
a874b87
conversion between string and int for negative numbers
Sep 15, 2016
b56fcdc
corrected a mistake in the code for string refinement of if expressions
Sep 15, 2016
99add90
easychair example from TACAS09 (Path feasability analysis for string-…
Sep 16, 2016
26be0a4
Separating the classes for the refined string type and string express…
Sep 16, 2016
20cd623
Separating the classes for the refined string type and string express…
Sep 16, 2016
39e4ccc
clening the code of string refinement of useless functions
Sep 16, 2016
fef67d7
incremental string solver for better performances
Sep 16, 2016
2236603
incremental string solver
Sep 16, 2016
baebf8f
a couple of additional string methods, not tested yet
Sep 19, 2016
0ff5946
corrected string builders
Sep 20, 2016
1249657
corrected trim function and test
Sep 20, 2016
4066ea2
corrected case functions and test
Sep 20, 2016
7e49aa1
corrected case functions and test
Sep 22, 2016
a7e6c4c
changed the name of the CPROVER strcat functions to avoid confusion b…
Oct 3, 2016
9a0f4af
corrected append int and test for empty string
Oct 3, 2016
dab12b2
made the string of bool conversion precise
Oct 3, 2016
aff92df
added the set length method for string builders
Oct 3, 2016
ff6b640
added delete and deleteCharAt. Also improved the index simplification…
Oct 4, 2016
74a7d6b
tests for delete and deleteCharAt
Oct 4, 2016
94afd07
tests for delete and deleteCharAt
Oct 4, 2016
3da7602
tests for delete and deleteCharAt
Oct 4, 2016
185eb92
added startsWith(char,fromIndex)
Oct 5, 2016
731623d
added indexOf and lastIndexOf with fromIndex argument
Oct 5, 2016
8177899
tests for indexOf and lastIndexOf with fromIndex argument
Oct 5, 2016
2ac64a2
adding startsWith with toffset argument
Oct 5, 2016
c1691c3
adding String.replace(CC)
Oct 5, 2016
7d1d5f9
tests for setLength and toCharArray
Oct 5, 2016
ed20626
adding String.valueOf for several classes
Oct 5, 2016
827bda9
adding String.valueOf char
Oct 5, 2016
7755cde
adding String.setCharAt
Oct 6, 2016
592a8f2
adding String.subSequence
Oct 6, 2016
c6c0f69
adding StringBuilder.insert and tests
Oct 6, 2016
4f7fc09
unicode string litterals and codePointAt
Oct 7, 2016
acbc764
codePointBefore and Count
Oct 7, 2016
3731dd8
adding appendCodePoint
Oct 7, 2016
57b3d8d
adding String.compareTo
Oct 10, 2016
f6bc09c
adding String.hashCode
Oct 10, 2016
98d0687
adding Integer.toHexString
Oct 10, 2016
d3a39a1
adding Integer.toHexString
Oct 10, 2016
0fadc77
corrected an implementation problem with the initialisation of the in…
Oct 11, 2016
0fc6d29
partial specification for floats
Oct 13, 2016
3c5b277
overapproximation of indexOf for strings as arguments
Oct 13, 2016
9df15f3
overapproximation of lastIndexOf for strings as arguments
Oct 13, 2016
ad4ec55
corrected tests for IndexOf
Oct 13, 2016
c814f13
simplification of the code for string functions identifiers
Oct 13, 2016
547f384
simplification of the code for string functions identifiers
Oct 13, 2016
0202011
simplification of the code for string functions identifiers and corec…
Oct 14, 2016
f49cacc
merge main branch with string solver
Oct 14, 2016
b949db3
merge main branch with string solver
Oct 14, 2016
7efb88e
removing useless z3 string tests
Oct 15, 2016
854ac38
adding a PASS option to cbmc to activate the pass solver
Oct 27, 2016
26f02b2
Makefile changes necessary to compile the string solver
Oct 27, 2016
e83f58d
Changes to the push request as suggested by Michael
Nov 11, 2016
3b92cff
setting pass option necessary to select the right solver
Nov 11, 2016
5b23ab1
Merge remote-tracking branch 'origin/master' into string-solver-cbmc-…
romainbrenguier Dec 2, 2016
ffb602b
Merge remote-tracking branch 'diffblue/master' into string-solver-cbm…
romainbrenguier Dec 2, 2016
6d32484
failed tentative merge
romainbrenguier Dec 2, 2016
0b1a56b
Removed files that should not be part of this pull request
romainbrenguier Dec 2, 2016
8e45db2
Removed useless differences with master
romainbrenguier Dec 2, 2016
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
13 changes: 13 additions & 0 deletions src/cbmc/cbmc_parse_options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Author: Daniel Kroening, [email protected]
#include <ansi-c/c_preprocess.h>

#include <goto-programs/goto_convert_functions.h>
#include <goto-programs/pass_preprocess.h>
#include <goto-programs/remove_function_pointers.h>
#include <goto-programs/remove_virtual_functions.h>
#include <goto-programs/remove_returns.h>
Expand Down Expand Up @@ -341,6 +342,11 @@ void cbmc_parse_optionst::get_command_line_options(optionst &options)
options.set_option("refine-arithmetic", true);
}

if(cmdline.isset("pass"))
{
options.set_option("pass", true);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about options.set_option("pass", cmdline.isset("pass")); ?

}

if(cmdline.isset("max-node-refinement"))
options.set_option("max-node-refinement", cmdline.get_value("max-node-refinement"));

Expand Down Expand Up @@ -911,6 +917,12 @@ bool cbmc_parse_optionst::process_goto_program(
status() << "Partial Inlining" << eom;
goto_partial_inline(goto_functions, ns, ui_message_handler);


if(cmdline.isset("pass")) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By the looks of it: is options.set_option("pass", ...) even required?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is used in cbmc_parse_options.h

status() << "PASS Preprocessing " << eom;
pass_preprocess(symbol_table, goto_functions);
}

// remove returns, gcc vectors, complex
remove_returns(symbol_table, goto_functions);
remove_vector(symbol_table, goto_functions);
Expand Down Expand Up @@ -1175,6 +1187,7 @@ void cbmc_parse_optionst::help()
" --yices use Yices\n"
" --z3 use Z3\n"
" --refine use refinement procedure (experimental)\n"
" --pass use pass procedure (experimental)\n"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So ... what is the pass procedure? Would be nice to be user-friendly in the --help output.

" --outfile filename output formula to given file\n"
" --arrays-uf-never never turn arrays into uninterpreted functions\n"
" --arrays-uf-always always turn arrays into uninterpreted functions\n"
Expand Down
2 changes: 1 addition & 1 deletion src/cbmc/cbmc_parse_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class optionst;
"(no-sat-preprocessor)" \
"(no-pretty-names)(beautify)" \
"(fixedbv)" \
"(dimacs)(refine)(max-node-refinement):(refine-arrays)(refine-arithmetic)(aig)" \
"(dimacs)(refine)(max-node-refinement):(refine-arrays)(refine-arithmetic)(aig)(pass)" \
"(16)(32)(64)(LP64)(ILP64)(LLP64)(ILP32)(LP32)" \
"(little-endian)(big-endian)" \
"(show-goto-functions)(show-loops)" \
Expand Down
24 changes: 24 additions & 0 deletions src/cbmc/cbmc_solvers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Author: Daniel Kroening, [email protected]

#include <solvers/sat/satcheck.h>
#include <solvers/refinement/bv_refinement.h>
#include <solvers/refinement/string_refinement.h>
#include <solvers/smt1/smt1_dec.h>
#include <solvers/smt2/smt2_dec.h>
#include <solvers/cvc/cvc_dec.h>
Expand Down Expand Up @@ -324,6 +325,29 @@ cbmc_solverst::solvert* cbmc_solverst::get_bv_refinement()

/*******************************************************************\

Function: cbmc_solverst::get_string_refinement

Inputs:

Outputs:

Purpose:

\*******************************************************************/

cbmc_solverst::solvert* cbmc_solverst::get_string_refinement()
{
propt *prop;
prop=new satcheck_no_simplifiert();
prop->set_message_handler(get_message_handler());

string_refinementt *string_refinement = new string_refinementt(ns, *prop);
string_refinement->set_ui(ui);
return new cbmc_solver_with_propt(string_refinement, prop);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's two objects allocated on the heap and never freed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prop is deleted by ~cbmc_solver_with_propt and string_refinement by cbmc_solverst's destructor which cbmc_solver_with_propt inherits.

}

/*******************************************************************\

Function: cbmc_solverst::get_smt1

Inputs:
Expand Down
6 changes: 5 additions & 1 deletion src/cbmc/cbmc_solvers.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,14 @@ class cbmc_solverst:public messaget
virtual std::unique_ptr<solvert> get_solver()
{
solvert *solver;

if(options.get_bool_option("dimacs"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove whitespace?

solver = get_dimacs();
else if(options.get_bool_option("refine"))
solver = get_bv_refinement();
else if(options.get_bool_option("pass")) {
std::cout << "PASS solver" << std::endl;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use a proper message_streamt API

solver = get_string_refinement();
}
else if(options.get_bool_option("smt1"))
solver = get_smt1(get_smt1_solver_type());
else if(options.get_bool_option("smt2"))
Expand Down Expand Up @@ -111,6 +114,7 @@ class cbmc_solverst:public messaget
solvert* get_default();
solvert* get_dimacs();
solvert* get_bv_refinement();
solvert* get_string_refinement();
solvert* get_smt1(smt1_dect::solvert solver);
solvert* get_smt2(smt2_dect::solvert solver);

Expand Down