@@ -15,8 +15,6 @@ Author: Daniel Kroening, kroening@kroening.com
1515#include < iostream>
1616
1717#include < util/exit_codes.h>
18- #include < util/string2int.h>
19- #include < util/string_utils.h>
2018
2119#include < langapi/language_util.h>
2220
@@ -319,7 +317,7 @@ void bmct::setup()
319317
320318 symex.last_source_location .make_nil ();
321319
322- setup_unwind ( );
320+ parse_unwinding_options (options, symex );
323321}
324322
325323safety_checkert::resultt bmct::execute (
@@ -546,43 +544,6 @@ safety_checkert::resultt bmct::stop_on_fail(prop_convt &prop_conv)
546544 }
547545}
548546
549- void bmct::setup_unwind ()
550- {
551- const std::string &set=options.get_option (" unwindset" );
552- std::vector<std::string> unwindset_loops;
553- split_string (set, ' ,' , unwindset_loops, true , true );
554-
555- for (auto &val : unwindset_loops)
556- {
557- unsigned thread_nr=0 ;
558- bool thread_nr_set=false ;
559-
560- if (!val.empty () &&
561- isdigit (val[0 ]) &&
562- val.find (" :" )!=std::string::npos)
563- {
564- std::string nr=val.substr (0 , val.find (" :" ));
565- thread_nr=unsafe_string2unsigned (nr);
566- thread_nr_set=true ;
567- val.erase (0 , nr.size ()+1 );
568- }
569-
570- if (val.rfind (" :" )!=std::string::npos)
571- {
572- std::string id=val.substr (0 , val.rfind (" :" ));
573- long uw=unsafe_string2int (val.substr (val.rfind (" :" )+1 ));
574-
575- if (thread_nr_set)
576- symex.set_unwind_thread_loop_limit (thread_nr, id, uw);
577- else
578- symex.set_unwind_loop_limit (id, uw);
579- }
580- }
581-
582- if (options.get_option (" unwind" )!=" " )
583- symex.set_unwind_limit (options.get_unsigned_int_option (" unwind" ));
584- }
585-
586547// / Perform core BMC, using an abstract model to supply GOTO function bodies
587548// / (perhaps created on demand).
588549// / \param opts: command-line options affecting BMC
0 commit comments