Skip to content

Commit f11e2b2

Browse files
committed
Remove now-unused bitvector conversion exceptions
Byte-operator lowering no longer throws any exceptions, and thus don't need to attempt to catch them either. Remove the entire infrastructure built around these. Fixes: diffblue#2103
1 parent 3fbbbea commit f11e2b2

9 files changed

+10
-329
lines changed

src/goto-symex/symex_target_equation.cpp

+8-62
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ Author: Daniel Kroening, [email protected]
1818
#include <util/unwrap_nested_exception.h>
1919

2020
#include <solvers/decision_procedure.h>
21-
#include <solvers/flattening/bv_conversion_exceptions.h>
2221

2322
#include "equation_conversion_exceptions.h"
2423
#include "goto_symex_state.h"
@@ -376,17 +375,8 @@ void symex_target_equationt::convert_decls(
376375
{
377376
// The result is not used, these have no impact on
378377
// the satisfiability of the formula.
379-
try
380-
{
381-
decision_procedure.handle(step.cond_expr);
382-
step.converted = true;
383-
}
384-
catch(const bitvector_conversion_exceptiont &)
385-
{
386-
util_throw_with_nested(
387-
equation_conversion_exceptiont(
388-
"Error converting decls for step", step));
389-
}
378+
decision_procedure.handle(step.cond_expr);
379+
step.converted = true;
390380
}
391381
}
392382
}
@@ -405,16 +395,7 @@ void symex_target_equationt::convert_guards(
405395
mstream << messaget::eom;
406396
});
407397

408-
try
409-
{
410-
step.guard_handle = decision_procedure.handle(step.guard);
411-
}
412-
catch(const bitvector_conversion_exceptiont &)
413-
{
414-
util_throw_with_nested(
415-
equation_conversion_exceptiont(
416-
"Error converting guard for step", step));
417-
}
398+
step.guard_handle = decision_procedure.handle(step.guard);
418399
}
419400
}
420401
}
@@ -436,16 +417,7 @@ void symex_target_equationt::convert_assumptions(
436417
mstream << messaget::eom;
437418
});
438419

439-
try
440-
{
441-
step.cond_handle = decision_procedure.handle(step.cond_expr);
442-
}
443-
catch(const bitvector_conversion_exceptiont &)
444-
{
445-
util_throw_with_nested(
446-
equation_conversion_exceptiont(
447-
"Error converting assumptions for step", step));
448-
}
420+
step.cond_handle = decision_procedure.handle(step.cond_expr);
449421
}
450422
}
451423
}
@@ -468,16 +440,7 @@ void symex_target_equationt::convert_goto_instructions(
468440
mstream << messaget::eom;
469441
});
470442

471-
try
472-
{
473-
step.cond_handle = decision_procedure.handle(step.cond_expr);
474-
}
475-
catch(const bitvector_conversion_exceptiont &)
476-
{
477-
util_throw_with_nested(
478-
equation_conversion_exceptiont(
479-
"Error converting goto instructions for step", step));
480-
}
443+
step.cond_handle = decision_procedure.handle(step.cond_expr);
481444
}
482445
}
483446
}
@@ -495,16 +458,8 @@ void symex_target_equationt::convert_constraints(
495458
mstream << messaget::eom;
496459
});
497460

498-
try
499-
{
500-
decision_procedure.set_to_true(step.cond_expr);
501-
step.converted = true;
502-
}
503-
catch(const bitvector_conversion_exceptiont &)
504-
{
505-
util_throw_with_nested(equation_conversion_exceptiont(
506-
"Error converting constraints for step", step));
507-
}
461+
decision_procedure.set_to_true(step.cond_expr);
462+
step.converted = true;
508463
}
509464
}
510465
}
@@ -569,16 +524,7 @@ void symex_target_equationt::convert_assertions(
569524
step.cond_expr);
570525

571526
// do the conversion
572-
try
573-
{
574-
step.cond_handle = decision_procedure.handle(implication);
575-
}
576-
catch(const bitvector_conversion_exceptiont &)
577-
{
578-
util_throw_with_nested(
579-
equation_conversion_exceptiont(
580-
"Error converting assertions for step", step));
581-
}
527+
step.cond_handle = decision_procedure.handle(implication);
582528

583529
// store disjunct
584530
disjuncts.push_back(not_exprt(step.cond_handle));

src/solvers/flattening/boolbv.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,6 @@ bvt boolbvt::conversion_failed(const exprt &expr)
171171
/// \param expr: Expression to convert
172172
/// \return A vector of literals corresponding to the outputs of the Boolean
173173
/// circuit
174-
/// \throws bitvector_conversion_exceptiont raised if converting byte_extraction
175-
/// goes wrong.
176-
/// TODO: extend for other types of conversion exception (diffblue/cbmc#2103).
177174
bvt boolbvt::convert_bitvector(const exprt &expr)
178175
{
179176
if(expr.type().id()==ID_bool)

src/solvers/flattening/boolbv_byte_extract.cpp

+1-11
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ Author: Daniel Kroening, [email protected]
1818
#include <util/throw_with_nested.h>
1919

2020
#include <solvers/lowering/expr_lowering.h>
21-
#include <solvers/lowering/flatten_byte_extract_exceptions.h>
2221

23-
#include "bv_conversion_exceptions.h"
2422
#include "bv_endianness_map.h"
2523

2624
bvt map_bv(const bv_endianness_mapt &map, const bvt &src)
@@ -45,15 +43,7 @@ bvt boolbvt::convert_byte_extract(const byte_extract_exprt &expr)
4543
// unbounded arrays
4644
if(is_unbounded_array(expr.op().type()))
4745
{
48-
try
49-
{
50-
return convert_bv(lower_byte_extract(expr, ns));
51-
}
52-
catch(const flatten_byte_extract_exceptiont &)
53-
{
54-
util_throw_with_nested(
55-
bitvector_conversion_exceptiont("Can't convert byte_extraction", expr));
56-
}
46+
return convert_bv(lower_byte_extract(expr, ns));
5747
}
5848

5949
const std::size_t width = boolbv_width(expr.type());

src/solvers/flattening/boolbv_byte_update.cpp

+1-11
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ Author: Daniel Kroening, [email protected]
1515
#include <util/throw_with_nested.h>
1616

1717
#include <solvers/lowering/expr_lowering.h>
18-
#include <solvers/lowering/flatten_byte_extract_exceptions.h>
1918

20-
#include "bv_conversion_exceptions.h"
2119
#include "bv_endianness_map.h"
2220

2321
bvt boolbvt::convert_byte_update(const byte_update_exprt &expr)
@@ -28,15 +26,7 @@ bvt boolbvt::convert_byte_update(const byte_update_exprt &expr)
2826
is_unbounded_array(expr.op().type()) ||
2927
is_unbounded_array(expr.value().type()))
3028
{
31-
try
32-
{
33-
return convert_bv(lower_byte_update(expr, ns));
34-
}
35-
catch(const flatten_byte_extract_exceptiont &byte_extract_flatten_exception)
36-
{
37-
util_throw_with_nested(
38-
bitvector_conversion_exceptiont("Can't convert byte_update", expr));
39-
}
29+
return convert_bv(lower_byte_update(expr, ns));
4030
}
4131

4232
const exprt &op = expr.op();

src/solvers/flattening/boolbv_equality.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ Author: Daniel Kroening, [email protected]
1313

1414
#include <solvers/lowering/expr_lowering.h>
1515

16-
#include "bv_conversion_exceptions.h"
17-
1816
literalt boolbvt::convert_equality(const equal_exprt &expr)
1917
{
2018
const bool equality_types_match = expr.lhs().type() == expr.rhs().type();

src/solvers/flattening/bv_conversion_exceptions.h

-34
This file was deleted.

src/solvers/lowering/byte_operators.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ Author: Daniel Kroening, [email protected]
2121
#include <util/simplify_expr.h>
2222
#include <util/string_constant.h>
2323

24-
#include "flatten_byte_extract_exceptions.h"
25-
2624
static exprt bv_to_expr(
2725
const exprt &bitvector_expr,
2826
const typet &target_type,

src/solvers/lowering/flatten_byte_extract_exceptions.h

-144
This file was deleted.

0 commit comments

Comments
 (0)