summaryrefslogtreecommitdiff
path: root/src/preprocessing/passes/int_to_bv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preprocessing/passes/int_to_bv.cpp')
-rw-r--r--src/preprocessing/passes/int_to_bv.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/preprocessing/passes/int_to_bv.cpp b/src/preprocessing/passes/int_to_bv.cpp
index e6b5a4bca..2ff45aef0 100644
--- a/src/preprocessing/passes/int_to_bv.cpp
+++ b/src/preprocessing/passes/int_to_bv.cpp
@@ -235,25 +235,19 @@ Node IntToBV::intToBV(TNode n, NodeMap& cache)
}
else if (current.isConst())
{
- switch (current.getKind())
+ if (current.getType().isInteger())
{
- case kind::CONST_RATIONAL:
+ Rational constant = current.getConst<Rational>();
+ Assert (constant.isIntegral());
+ BitVector bv(size, constant.getNumerator());
+ if (bv.toSignedInteger() != constant.getNumerator())
{
- Rational constant = current.getConst<Rational>();
- if (constant.isIntegral()) {
- BitVector bv(size, constant.getNumerator());
- if (bv.toSignedInteger() != constant.getNumerator())
- {
- throw TypeCheckingExceptionPrivate(
- current,
- string("Not enough bits for constant in intToBV: ")
- + current.toString());
- }
- result = nm->mkConst(bv);
- }
- break;
+ throw TypeCheckingExceptionPrivate(
+ current,
+ string("Not enough bits for constant in intToBV: ")
+ + current.toString());
}
- default: break;
+ result = nm->mkConst(bv);
}
}
else
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback