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

Sygus2 #1166

Closed
wants to merge 11 commits into from
7 changes: 4 additions & 3 deletions crucible-llvm/src/Lang/Crucible/LLVM/MemModel/Generic.hs
Original file line number Diff line number Diff line change
Expand Up @@ -790,9 +790,10 @@ readMem' sym w end gsym l0 origMem tp0 alignment (MemWrites ws) =
else do -- We're playing a trick here. By making a fresh constant a proof obligation, we can be
-- sure it always fails. But, because it's a variable, it won't be constant-folded away
-- and we can be relatively sure the annotation will survive.
b <- freshConstant sym (safeSymbol "noSatisfyingWrite") BaseBoolRepr
Partial.Err <$>
Partial.annotateME sym mop (NoSatisfyingWrite tp) b
-- b <- freshConstant sym (safeSymbol "noSatisfyingWrite") BaseBoolRepr
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be controlled by some sort of config or saw option. The intent is to avoid very large sets of fresh constants due to the "trick".

-- Partial.Err <$>
-- Partial.annotateME sym mop (NoSatisfyingWrite tp) b
Partial.partErr sym mop (NoSatisfyingWrite tp)

go :: (StorageType -> LLVMPtr sym w -> ReadMem sym (PartLLVMVal sym)) ->
LLVMPtr sym w ->
Expand Down
Loading
Loading