-
Notifications
You must be signed in to change notification settings - Fork 17
Fix CI and allow record field access #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… (step 1/2) * Update PyVCG and CVC5 * Permit record field references * Add new LRM rule that the prefix of a dereference may not be null * Add unsupported note in VCG (this will be done in step 2)
… (step 2/2) * Add basic support for record references in VCG. Some bits (like references in quantifiers) do not work yet.
It is dead.
hoe-jo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
|
||
| type T { | ||
| arr Integer [2 .. *] | ||
| ref T |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should a recursive type not be optional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is just a test case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So its possible but unlikely for such a type to exist. I made it non-optional in the test to avoid having to write the null guard :)
A future lint check would probably be a good idea, to spot any self or mutual recursion with all links being non-optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Created #159 to do just that.
|
|
||
| type T { | ||
| value Integer | ||
| arr T [0 .. *] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here
| cb_link.item >= 50000, warning "cb item value is oddly low" | ||
| // you can obtain a tuple's values | ||
|
|
||
| bar.asil == asil, warning "mismatch in ASIL levels" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should have a positive testcase for this. I only see negative testcases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's not a test, that is an example fragment of the LRM.
Or do you mean having a test that shows such a construct passing?
| link = R1 | ||
| } | ||
|
|
||
| T R3 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Link LRM here?
|
Thanks for implementing it, Florian! |
|
A much bigger change is coming that properly fixes VCG for this. |
This obsoletes PR #153.
This fixes #157 (OSX13 is dead).
This implements the first step in #156.