Opened 17 years ago
Closed 17 years ago
#25 closed defect (fixed)
SyntaxException when verifying matmat-seq.mmp
| Reported by: | zirkel | Owned by: | zirkel |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | examples | Version: | 1.0 |
| Keywords: | Cc: |
Description
When running verify on examples/matmat/matmat-seq.mmp, a SyntaxException is generated. It may be due to passing array c, an output variable (which is supposed to be written, but not read), as an argument to a function.
The exception is:
Exception in thread "main" edu.udel.cis.vsl.minimp.model.IF.SyntaxException: Syntax error in line 30 column 19 through line 30 column 23:
c[i]):
c[i]
Argument 2 of function call not in read scope of calling function main
at edu.udel.cis.vsl.minimp.model.impl.statement.InvocationStatement.<init>(InvocationStatement.java:63)
at edu.udel.cis.vsl.minimp.model.impl.Model.newInvocationStatement(Model.java:309)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processInvocationStmt(ModelBuilder.java:673)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processStatement(ModelBuilder.java:489)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processCompoundStmt(ModelBuilder.java:578)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processStatement(ModelBuilder.java:473)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processWhileStmt(ModelBuilder.java:810)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processStatement(ModelBuilder.java:505)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processStatementList(ModelBuilder.java:449)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processFunctionBody(ModelBuilder.java:411)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processFunctions(ModelBuilder.java:386)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.processAST(ModelBuilder.java:244)
at edu.udel.cis.vsl.minimp.front.minimp.ModelBuilder.buildModel(ModelBuilder.java:237)
at edu.udel.cis.vsl.minimp.Minimp.verify(Minimp.java:273)
at edu.udel.cis.vsl.minimp.Minimp.main(Minimp.java:371)
Change History (2)
comment:1 by , 17 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
| Version: | → 1.0 |
comment:2 by , 17 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |

Yep, you can't do that with an output variable. Make c a regular variable, create a new output variable called "out" and at the end copy all values from c into out.