summaryrefslogtreecommitdiff
path: root/src/theory/strings/theory_strings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/strings/theory_strings.cpp')
-rw-r--r--src/theory/strings/theory_strings.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/theory/strings/theory_strings.cpp b/src/theory/strings/theory_strings.cpp
index c2790fe42..cd1d0cd67 100644
--- a/src/theory/strings/theory_strings.cpp
+++ b/src/theory/strings/theory_strings.cpp
@@ -304,8 +304,13 @@ bool TheoryStrings::collectModelInfo(TheoryModel* m)
}
else
{
- Assert(len_value.getConst<Rational>() <= Rational(String::maxSize()))
- << "Exceeded UINT32_MAX in string model";
+ // must throw logic exception if we cannot construct the string
+ if (len_value.getConst<Rational>() > Rational(String::maxSize()))
+ {
+ std::stringstream ss;
+ ss << "Cannot generate model with string whose length exceeds UINT32_MAX";
+ throw LogicException(ss.str());
+ }
unsigned lvalue =
len_value.getConst<Rational>().getNumerator().toUnsignedInt();
std::map<unsigned, Node>::iterator itvu = values_used.find(lvalue);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback