Skip to content

Commit b78ca45

Browse files
committed
Add dispatch of overflow expression to smt conversions
1 parent 4996426 commit b78ca45

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/solvers/smt2_incremental/convert_expr_to_smt.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,34 @@ static smt_termt convert_expr_to_smt(const isnormal_exprt &is_normal_expr)
833833
is_normal_expr.pretty());
834834
}
835835

836+
static smt_termt convert_expr_to_smt(const plus_overflow_exprt &plus_overflow)
837+
{
838+
UNIMPLEMENTED_FEATURE(
839+
"Generation of SMT formula for plus overflow expression: " +
840+
plus_overflow.pretty());
841+
}
842+
843+
static smt_termt convert_expr_to_smt(const minus_overflow_exprt &minus_overflow)
844+
{
845+
UNIMPLEMENTED_FEATURE(
846+
"Generation of SMT formula for minus overflow expression: " +
847+
minus_overflow.pretty());
848+
}
849+
850+
static smt_termt convert_expr_to_smt(const mult_overflow_exprt &mult_overflow)
851+
{
852+
UNIMPLEMENTED_FEATURE(
853+
"Generation of SMT formula for multiply overflow expression: " +
854+
mult_overflow.pretty());
855+
}
856+
857+
static smt_termt convert_expr_to_smt(const shl_overflow_exprt &shl_overflow)
858+
{
859+
UNIMPLEMENTED_FEATURE(
860+
"Generation of SMT formula for shift left overflow expression: " +
861+
shl_overflow.pretty());
862+
}
863+
836864
static smt_termt convert_expr_to_smt(const array_exprt &array_construction)
837865
{
838866
UNIMPLEMENTED_FEATURE(
@@ -1144,6 +1172,26 @@ smt_termt convert_expr_to_smt(const exprt &expr)
11441172
{
11451173
return convert_expr_to_smt(*is_normal_expr);
11461174
}
1175+
if(
1176+
const auto plus_overflow = expr_try_dynamic_cast<plus_overflow_exprt>(expr))
1177+
{
1178+
return convert_expr_to_smt(*plus_overflow);
1179+
}
1180+
if(
1181+
const auto minus_overflow =
1182+
expr_try_dynamic_cast<minus_overflow_exprt>(expr))
1183+
{
1184+
return convert_expr_to_smt(*minus_overflow);
1185+
}
1186+
if(
1187+
const auto mult_overflow = expr_try_dynamic_cast<mult_overflow_exprt>(expr))
1188+
{
1189+
return convert_expr_to_smt(*mult_overflow);
1190+
}
1191+
if(const auto shl_overflow = expr_try_dynamic_cast<shl_overflow_exprt>(expr))
1192+
{
1193+
return convert_expr_to_smt(*shl_overflow);
1194+
}
11471195
if(const auto array_construction = expr_try_dynamic_cast<array_exprt>(expr))
11481196
{
11491197
return convert_expr_to_smt(*array_construction);

0 commit comments

Comments
 (0)