Opened 17 years ago
Closed 17 years ago
#12 closed defect (fixed)
Execution exception in Evaluator
| Reported by: | ywei | Owned by: | ywei |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | front | Version: | 1.0 |
| Keywords: | Cc: |
Description
Revision 952, tile compare example:
Step 4: State 3 -> spec.mmp line 15 proc 0 [main@3->main@4] "j = j + a[i];"
Predicate does not hold at current state.
CVC3 prover invoked with query: TRUE under context ((0 <= ((X0 * -1) + 3)) AND (0 <= X0))
CVC3 prover invoked with query: (0 <= (X0 + -1)) under context ((0 <= ((X0 * -1) + 3)) AND (0 <= X0))
edu.udel.cis.vsl.minimp.util.ExecutionException: Execution error encountered at line 15 column 10 through line 15 column 14:
a[i];
Possible array out of bounds error:
index = 0
extent = X0
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.referenceValue(Evaluator.java:107)
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.evaluateSubscript(Evaluator.java:223)
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.evaluateBinary(Evaluator.java:153)
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.evaluate(Evaluator.java:133)
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.evaluateBinary(Evaluator.java:156)
at edu.udel.cis.vsl.minimp.semantics.impl.Evaluator.evaluate(Evaluator.java:133)
at edu.udel.cis.vsl.minimp.semantics.impl.Executor.executeAssignment(Executor.java:145)
at edu.udel.cis.vsl.minimp.semantics.impl.Executor.execute(Executor.java:81)
at edu.udel.cis.vsl.minimp.verify.std.StateManager.nextState(StateManager.java:74)
at edu.udel.cis.vsl.minimp.verify.std.StateManager.nextState(StateManager.java:19)
at edu.udel.cis.vsl.minimp.search.DfsSearcher.proceedToNewState(DfsSearcher.java:143)
at edu.udel.cis.vsl.minimp.search.DfsSearcher.search(DfsSearcher.java:104)
at edu.udel.cis.vsl.minimp.search.DfsSearcher.search(DfsSearcher.java:90)
at edu.udel.cis.vsl.minimp.verify.Verification.compare(Verification.java:136)
at edu.udel.cis.vsl.minimp.Minimp.compareEquivalence(Minimp.java:356)
at edu.udel.cis.vsl.minimp.Minimp.main(Minimp.java:375)
Change History (5)
comment:1 by , 17 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:2 by , 17 years ago
| Version: | → 1.0 |
|---|
comment:3 by , 17 years ago
comment:4 by , 17 years ago
| Owner: | changed from to |
|---|
comment:5 by , 17 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed by correcting other bugs.

I think this is a result of incorrect computations in symbolic package. The "and" of two symbolic expressions is not computed correctly. This means the path condition does not updated correctly when control enters the loop: the expression "X0>=1" should be added to the path condition, but it is not because the symbolic package is not returning the "and" correctly. See my other bug report tickets.