-
Notifications
You must be signed in to change notification settings - Fork 42
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-jvm: Add permission bit for writability to each static field. #733
Conversation
The permission bit is asserted to be true on every putstatic instruction. This feature will allow SAW to use method specs that do not explicitly specify a final value for each static field; by making those fields read-only, we can be sure that the values did not change, without having to explicitly check that the final value is equal to the initial value.
J.FieldId -> | ||
W4.Pred sym -> | ||
IO (C.SymGlobalState sym) | ||
doStaticFieldWritable sym jc globals fid val = |
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.
The implementations of this function, doStaticFieldStore
, and doStaticFieldLoad
are nearly identical except for the Just
case. Can the common bits be factored out?
Also use a variation on the variable name for the writability bit.
3fc7017
to
b2f49a5
Compare
We've discussed the crux-llvm test failures on macos separately; those are due to an LLVM version issue on the build machines, and are unrelated to this PR. |
The permission bit is asserted to be true on every putstatic instruction.
This feature will allow SAW to use method specs that do not explicitly
specify a final value for each static field; by making those fields
read-only, we can be sure that the values did not change, without having
to explicitly check that the final value is equal to the initial value.
This will be used to address GaloisInc/saw-script#1066.