Skip to content

Commit 71b6a49

Browse files
committed
SMV: error mod and div on integers
We do not have backend support for mod and div on integers. Hence, print an error message.
1 parent 5270dcc commit 71b6a49

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
KNOWNBUG
1+
CORE
22
div1.smv
33

4-
^EXIT=0$
4+
^file .* line 4: no support for / on integer operands$
5+
^EXIT=2$
56
^SIGNAL=0$
67
--
78
--
8-
div is not implemented.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
KNOWNBUG
1+
CORE
22
mod1.smv
33

4-
^EXIT=0$
4+
^file .* line 4: no support for % on integer operands$
5+
^EXIT=2$
56
^SIGNAL=0$
67
--
78
--
8-
mod is not implemented.

src/smvlang/smv_typecheck.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,9 +806,15 @@ void smv_typecheckt::typecheck_expr_rec(exprt &expr, modet mode)
806806
else if(expr.id() == ID_mult)
807807
new_range = smv_range0 * smv_range1;
808808
else if(expr.id() == ID_div)
809-
new_range = smv_range0;
809+
{
810+
throw errort().with_location(expr.source_location())
811+
<< "no support for / on integer operands";
812+
}
810813
else if(expr.id() == ID_mod)
811-
new_range = smv_range1;
814+
{
815+
throw errort().with_location(expr.source_location())
816+
<< "no support for % on integer operands";
817+
}
812818
else
813819
assert(false);
814820

0 commit comments

Comments
 (0)