Summary: | Wrongful interpretation of query over automatically instantiated templates with select expressions | ||
---|---|---|---|
Product: | UPPAAL | Reporter: | Jacob Illum <illum> |
Component: | Engine | Assignee: | Gerd Behrmann <behrmann> |
Status: | ASSIGNED --- | ||
Severity: | critical | ||
Priority: | P2 | ||
Version: | 4.0.5 | ||
Hardware: | PC | ||
OS: | All | ||
Architecture: | |||
Attachments: |
The model
The query |
Description
Jacob Illum
2007-02-19 12:11:48 CET
Created attachment 143 [details]
The model
Created attachment 144 [details]
The query
The problem is in the automatic instantiation of templates. If P(i) is a template, then P is internally treated as an array of processes with i being an index. This assumes that all instances of P have the same footprint. In the test case, this is not the case: The process argument is used in the select expression. Since the select expression is being unfolded into a number of edges, this means that the number of syntactic function calls varies between instances of P. Since we generate an internal variable for the return value for each syntactic function call, this has the consequence of differences in footprint. There does not seem to be a small/simple fix for the problem. I am currently considering to disallow models that trigger the bug and postpone the real fix for 4.2. "Fixed" on the 4.0 branch from rev. 2971. I choose to disallow models triggering the problem. I will leave this bug open, since it needs to be fixed on the trunk. |