-
Notifications
You must be signed in to change notification settings - Fork 5
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
Bitvector and array literal support for Theta backend #39
base: master
Are you sure you want to change the base?
Conversation
…error field variable
ftsrg/theta#77 was merged |
As far as I know, ftsrg/theta#77 only added syntactical support for bitvectors, besides |
PR ftsrg/theta#82 was merged, so Theta v2.4 has advanced refinement algorithms that support bitvectors. If #41 also gets merged here, functional tests could use these new algorithms. |
Don't forget to enable testing theta with flat memory model: Build result:
The change would be deleting this file: https://github.com/ftsrg/gazer/blob/master/test/theta/verif/memory/lit.local.cfg (I think there was a change in these files in the PR) |
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.
Left some minor comments, but overall very nice work! Could you please take care of the following major things?
- Reformat the code so it follows our existing convention:
if (c) { // Note that there is a whitespace between the keyword and the condition
} else if (d) {
} else {
}
- Update the lit tests so that they will run the memory model tests with Theta (by removing the local
lit
configuration and theREQUIRES
directives in the tests). - Update the existing unit tests for the new Theta expressions.
test/theta/verif/memory/arrays1.c
Outdated
@@ -1,5 +1,5 @@ | |||
// REQUIRES: memory.burstall |
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.
Is Theta able to handle this testcase with the flat memory model now? If so, this line should be remove (in all the other tests as well).
Co-authored-by: Gyula Sallai <salla016@gmail.com>
Co-authored-by: Gyula Sallai <salla016@gmail.com>
# Conflicts: # include/gazer/Core/Expr/ExprBuilder.h # test/theta/verif/memory/arrays1.c # test/theta/verif/memory/passbyref5.c # tools/gazer-theta/CMakeLists.txt # tools/gazer-theta/lib/ThetaCfaGenerator.cpp # tools/gazer-theta/lib/ThetaExpr.cpp # tools/gazer-theta/lib/ThetaType.h # tools/gazer-theta/lib/ThetaVerifier.cpp # unittest/tools/gazer-theta/ThetaExprPrinterTest.cpp
This pull request adds support for bitvector expressions and array literals in the Theta backend. Also as a minor improvement closes #37 .