Skip to content
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

Crucible/LLVM: Group argument equality assertions in override matching #525

Merged

Conversation

langston-barrett
Copy link
Contributor

Fixes #522

Currently, Crucible/LLVM override matching is a very sequential, stateful
process. We iterate over the constructions in the method specification
(crucible_points_to, crucible_equal), accumulating relevant symbolic
predicates in a big list along the way.

This MR begins the process of making this process more declarative, while improving
debugability. It ties the symbolic assertions more closely to the spec.

Next steps: refactor the rest of learnCond to return lists of labeled
predicates, get rid of assertions stored in OverrideState and pass them
explicitly instead.

@langston-barrett langston-barrett added type: enhancement Issues describing an improvement to an existing feature or capability topics: error-messages Issues involving the messages SAW produces on error subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm labels Aug 7, 2019
@langston-barrett langston-barrett merged commit 06b0761 into GaloisInc:master Aug 7, 2019
@langston-barrett langston-barrett deleted the override-asserts branch August 7, 2019 18:17
langston-barrett added a commit to langston-barrett/saw-script that referenced this pull request Aug 12, 2019
@langston-barrett langston-barrett mentioned this pull request Aug 12, 2019
andreistefanescu pushed a commit that referenced this pull request Aug 12, 2019
langston-barrett added a commit to langston-barrett/saw-script that referenced this pull request Aug 19, 2019
langston-barrett added a commit to langston-barrett/saw-script that referenced this pull request Aug 19, 2019
andreistefanescu pushed a commit that referenced this pull request Aug 21, 2019
andreistefanescu pushed a commit that referenced this pull request Aug 21, 2019
Ptival pushed a commit that referenced this pull request Oct 31, 2019
#525)

* More explicit handling of assertions in override matching

* Crucible/LLVM: Better errors for argument and return value equalities

Fixes #522

* Propagate changes to methodSpecHandler

* add space

* Simplify

* Add an assertion
Ptival pushed a commit that referenced this pull request Oct 31, 2019
Ptival pushed a commit that referenced this pull request Oct 31, 2019
Ptival pushed a commit that referenced this pull request Oct 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
subsystem: crucible-llvm Issues related to LLVM bitcode verification with crucible-llvm topics: error-messages Issues involving the messages SAW produces on error type: enhancement Issues describing an improvement to an existing feature or capability
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crucible/LLVM: Group argument equality assertions in override matching
1 participant