Fix ICE on unique errors

This commit is contained in:
Leo Alt
2021-09-09 16:37:43 +02:00
parent 3e2e3d1baa
commit d91f75deb8
3 changed files with 28 additions and 7 deletions
+1
View File
@@ -35,6 +35,7 @@ SMTCheckerTest::SMTCheckerTest(string const& _filename): SyntaxTest(_filename, E
else
BOOST_THROW_EXCEPTION(runtime_error("Invalid SMT \"show unproved\" choice."));
m_modelCheckerSettings.solvers = smtutil::SMTSolverChoice::None();
auto const& choice = m_reader.stringSetting("SMTSolvers", "any");
if (choice == "any")
m_modelCheckerSettings.solvers = smtutil::SMTSolverChoice::All();
@@ -0,0 +1,24 @@
==== Source: a.sol ====
contract A {
uint x;
}
==== Source: b.sol ====
import "a.sol";
contract B is A {
function g() public view { assert(x > x); }
}
==== Source: c.sol ====
import "b.sol";
contract C is B {
function h(uint x) public pure { assert(x < x); }
}
// ====
// SMTEngine: all
// SMTSolvers: smtlib2
// ----
// Warning 6328: (b.sol:62-75): CHC: Assertion violation might happen here.
// Warning 3996: CHC analysis was not possible. No Horn solver was available. None of the installed solvers was enabled.
// Warning 7812: (b.sol:62-75): BMC: Assertion violation might happen here.
// Warning 8084: BMC analysis was not possible. No SMT solver (Z3 or CVC4) was available. None of the installed solvers was enabled.
// Warning 6328: (c.sol:68-81): CHC: Assertion violation might happen here.
// Warning 7812: (c.sol:68-81): BMC: Assertion violation might happen here.