Skip to content

Commit

Permalink
Merge pull request #1521 from GaloisInc/crucible-submod-bump
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanGlScott authored Dec 6, 2021
2 parents a648349 + acb7894 commit 96272c0
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 25 deletions.
2 changes: 1 addition & 1 deletion deps/crucible
Submodule crucible updated 57 files
+2 −1 crucible-concurrency/src/Cruces/CrucesMain.hs
+6 −3 crucible-concurrency/test/Main.hs
+14 −2 crucible-go/src/Lang/Crucible/Go/Simulate.hs
+16 −3 crucible-jvm/src/Lang/Crucible/JVM/Simulate.hs
+16 −0 crucible-llvm/CHANGELOG.md
+2 −0 crucible-llvm/crucible-llvm.cabal
+11 −0 crucible-llvm/src/Lang/Crucible/LLVM/Errors/MemoryError.hs
+37 −8 crucible-llvm/src/Lang/Crucible/LLVM/Eval.hs
+10 −5 crucible-llvm/src/Lang/Crucible/LLVM/Extension/Syntax.hs
+49 −6 crucible-llvm/src/Lang/Crucible/LLVM/Globals.hs
+3 −0 crucible-llvm/src/Lang/Crucible/LLVM/Intrinsics.hs
+8 −0 crucible-llvm/src/Lang/Crucible/LLVM/Intrinsics/Common.hs
+3 −1 crucible-llvm/src/Lang/Crucible/LLVM/Intrinsics/LLVM.hs
+91 −17 crucible-llvm/src/Lang/Crucible/LLVM/Intrinsics/Libc.hs
+95 −33 crucible-llvm/src/Lang/Crucible/LLVM/MemModel.hs
+49 −0 crucible-llvm/src/Lang/Crucible/LLVM/MemModel/CallStack.hs
+30 −7 crucible-llvm/src/Lang/Crucible/LLVM/MemModel/Generic.hs
+46 −3 crucible-llvm/src/Lang/Crucible/LLVM/MemModel/Options.hs
+40 −26 crucible-llvm/src/Lang/Crucible/LLVM/MemModel/Partial.hs
+82 −43 crucible-llvm/src/Lang/Crucible/LLVM/SymIO.hs
+88 −79 crucible-llvm/src/Lang/Crucible/LLVM/Translation/Instruction.hs
+6 −0 crucible-llvm/test/MemSetup.hs
+69 −2 crucible-llvm/test/TestMemory.hs
+1 −1 crucible-mc/exe/Main.hs
+290 −153 crucible-syntax/src/Lang/Crucible/Syntax/Concrete.hs
+3 −0 crucible-syntax/src/Lang/Crucible/Syntax/Prog.hs
+1 −1 crucible-wasm/src/Lang/Crucible/Wasm/Extension.hs
+1 −1 crucible-wasm/tool/Main.hs
+1 −1 crucible/src/Lang/Crucible/Simulator/EvalStmt.hs
+3 −1 crucible/src/Lang/Crucible/Simulator/ExecutionTree.hs
+6 −0 crux-llvm/CHANGELOG.md
+17 −1 crux-llvm/README.md
+1 −0 crux-llvm/crux-llvm.cabal
+17 −1 crux-llvm/src/Crux/LLVM/Config.hs
+14 −3 crux-llvm/src/Crux/LLVM/Simulate.hs
+54 −1 crux-llvm/svcomp/crux-llvm-svcomp-driver.sh
+8 −16 crux-llvm/svcomp/def-files/crux.py
+0 −4 crux-llvm/svcomp/def-files/crux.xml
+13 −0 crux-llvm/test-data/golden/T844-stable.c
+3 −0 crux-llvm/test-data/golden/T844-stable.config
+1 −0 crux-llvm/test-data/golden/T844-stable.good
+13 −0 crux-llvm/test-data/golden/T844-unstable.c
+3 −0 crux-llvm/test-data/golden/T844-unstable.config
+4 −0 crux-llvm/test-data/golden/T844-unstable.good
+6 −0 crux-llvm/test-data/golden/golden/T847-fail1.good
+2 −0 crux-llvm/test-data/golden/golden/double_free.good
+3 −0 crux-llvm/test-data/golden/golden/invoke-test.good
+22 −0 crux-llvm/test-data/golden/isnan.c
+1 −0 crux-llvm/test-data/golden/isnan.config
+1 −0 crux-llvm/test-data/golden/isnan.good
+4 −0 uc-crux-llvm/CHANGELOG.md
+5 −3 uc-crux-llvm/src/UCCrux/LLVM/Overrides/Skip.hs
+3 −2 uc-crux-llvm/src/UCCrux/LLVM/Overrides/Unsound.hs
+13 −4 uc-crux-llvm/src/UCCrux/LLVM/Run/Simulate.hs
+8 −4 uc-crux-llvm/src/UCCrux/LLVM/Setup.hs
+4 −1 uc-crux-llvm/src/UCCrux/LLVM/Setup/Monad.hs
+1 −0 uc-crux-llvm/uc-crux-llvm.cabal
2 changes: 1 addition & 1 deletion deps/macaw
Submodule macaw updated 49 files
+20 −0 base/ChangeLog.md
+1 −1 base/src/Data/Macaw/Analysis/FunctionArgs.hs
+2 −2 base/src/Data/Macaw/Analysis/RegisterUse.hs
+3 −3 base/src/Data/Macaw/Architecture/Info.hs
+4 −7 base/src/Data/Macaw/CFG/AssignRhs.hs
+2 −2 base/src/Data/Macaw/CFG/Block.hs
+8 −1 base/src/Data/Macaw/CFG/Core.hs
+2 −0 base/src/Data/Macaw/Discovery/Classifier.hs
+2 −2 base/src/Data/Macaw/Discovery/ParsedContents.hs
+1 −1 deps/asl-translator
+1 −1 deps/crucible
+1 −1 deps/llvm-pretty
+1 −1 deps/llvm-pretty-bc-parser
+1 −1 deps/semmc
+1 −1 deps/what4
+1 −0 macaw-aarch32-symbolic/macaw-aarch32-symbolic.cabal
+41 −9 macaw-aarch32-symbolic/src/Data/Macaw/AArch32/Symbolic.hs
+2 −0 macaw-aarch32-symbolic/src/Data/Macaw/AArch32/Symbolic/Functions.hs
+6 −0 macaw-aarch32-symbolic/tests/pass/Makefile
+24 −0 macaw-aarch32-symbolic/tests/pass/test-conditional-return.c
+ macaw-aarch32-symbolic/tests/pass/test-conditional-return.opt.exe
+ macaw-aarch32-symbolic/tests/pass/test-conditional-return.unopt.exe
+3 −0 macaw-aarch32-symbolic/tests/pass/util.h
+2 −0 macaw-aarch32/macaw-aarch32.cabal
+3 −2 macaw-aarch32/src/Data/Macaw/ARM.hs
+45 −12 macaw-aarch32/src/Data/Macaw/ARM/Arch.hs
+22 −1 macaw-aarch32/src/Data/Macaw/ARM/Eval.hs
+135 −0 macaw-aarch32/src/Data/Macaw/ARM/Identify.hs
+15 −0 macaw-aarch32/src/Data/Macaw/ARM/Panic.hs
+43 −9 macaw-aarch32/tests/ARMTests.hs
+9 −2 macaw-aarch32/tests/TestMain.hs
+ macaw-aarch32/tests/arm/test-conditional-return-a32.exe
+5 −0 macaw-aarch32/tests/arm/test-conditional-return-a32.mcw.expected
+13 −10 macaw-ppc-symbolic/src/Data/Macaw/PPC/Symbolic.hs
+28 −13 macaw-ppc/src/Data/Macaw/PPC/Arch.hs
+1 −1 macaw-ppc/src/Data/Macaw/PPC/Eval.hs
+2 −1 refinement/src/Data/Macaw/Refinement/SymbolicExecution.hs
+1 −1 refinement/tests/RefinementTests.hs
+23 −0 symbolic/ChangeLog.md
+3 −2 symbolic/src/Data/Macaw/Symbolic.hs
+6 −0 symbolic/src/Data/Macaw/Symbolic/Backend.hs
+14 −3 symbolic/src/Data/Macaw/Symbolic/CrucGen.hs
+1 −0 symbolic/src/Data/Macaw/Symbolic/Memory.hs
+1 −1 symbolic/src/Data/Macaw/Symbolic/Testing.hs
+1 −1 x86/src/Data/Macaw/X86.hs
+17 −5 x86/src/Data/Macaw/X86/ArchTypes.hs
+1 −1 x86/src/Data/Macaw/X86/Generator.hs
+6 −2 x86_symbolic/src/Data/Macaw/X86/Crucible.hs
+13 −7 x86_symbolic/src/Data/Macaw/X86/Symbolic.hs
16 changes: 14 additions & 2 deletions heapster-saw/src/Verifier/SAW/Heapster/CruUtil.hs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import Data.Parameterized.Context hiding ((:>), empty, take, view)
import qualified Data.Parameterized.Context as Ctx
import Data.Parameterized.TraversableFC
import Data.Parameterized.BoolRepr
import Data.Parameterized.Nonce (Nonce)

-- import qualified Text.PrettyPrint.ANSI.Leijen as PP
import qualified Prettyprinter as PP
Expand All @@ -70,7 +71,7 @@ import Verifier.SAW.OpenTerm

-- | The lens into an 'RAssign' associated with a 'Member' proof
--
-- FIXME HERE: this should go into Hobbits, possibly using
-- FIXME HERE: this should go into Hobbits, possibly using
member :: Member ctx a -> Lens' (RAssign f ctx) (f a)
member memb = lens (RL.get memb) (flip (RL.set memb))

Expand Down Expand Up @@ -399,6 +400,17 @@ instance NuMatchingAny1 f => NuMatchingAny1 (LLVMExtensionExpr f) where
$(mkNuMatching [t| forall w f tp. NuMatchingAny1 f => LLVMStmt w f tp |])
-}

$(mkNuMatching [t| forall tp. GlobalVar tp |])

instance NuMatching (Nonce s tp) where
nuMatchingProof = unsafeMbTypeRepr

instance Closable (Nonce s tp) where
toClosed = unsafeClose

instance Liftable (Nonce s tp) where
mbLift = unClosed . mbLift . fmap toClosed

instance Closable (BV.BV w) where
toClosed = unsafeClose

Expand Down Expand Up @@ -729,7 +741,7 @@ cruCtxLookup (CruCtxCons _ tp) Member_Base = tp
cruCtxLookup (CruCtxCons ctx _) (Member_Step memb) = cruCtxLookup ctx memb

-- | Build a 'CruCtx' of the given length.
cruCtxReplicate :: NatRepr n -> TypeRepr a -> Some CruCtx
cruCtxReplicate :: NatRepr n -> TypeRepr a -> Some CruCtx
cruCtxReplicate n tp =
case isZeroNat n of
ZeroNat -> Some CruCtxNil
Expand Down
16 changes: 8 additions & 8 deletions heapster-saw/src/Verifier/SAW/Heapster/TypedCrucible.hs
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ data TypedLLVMStmt ret ps_in ps_out where
-- Type:
-- > ps, x:ptr((rw,0) |-> p), cur_ps
-- > -o ps, x:ptr((rw,0) |-> eq(ret)), ret:p, cur_ps
TypedLLVMLoad ::
TypedLLVMLoad ::
(HasPtrWidth w, 1 <= sz, KnownNat sz) =>
!(TypedReg (LLVMPointerType w)) ->
!(LLVMFieldPerm w sz) ->
Expand Down Expand Up @@ -540,7 +540,7 @@ data TypedLLVMStmt ret ps_in ps_out where
-- referred to by a function pointer, assuming we know it has one:
--
-- Type: @x:llvm_funptr(p) -o ret:p@
TypedLLVMLoadHandle ::
TypedLLVMLoadHandle ::
HasPtrWidth w =>
!(TypedReg (LLVMPointerType w)) ->
!(TypeRepr (FunctionHandleType cargs ret)) ->
Expand Down Expand Up @@ -1338,7 +1338,7 @@ entryByID entryID =
over typedBlockEntries (replaceNth (blockEntryIx entryID blk) e) blk)


-- | Build an empty 'TypedBlock'
-- | Build an empty 'TypedBlock'
emptyBlockOfSort ::
[Maybe String] ->
Assignment CtxRepr cblocks ->
Expand Down Expand Up @@ -1943,7 +1943,7 @@ runPermCheckM names entryID args ghosts mb_perms_in m =
(tops_ns, args_ns) = RL.split Proxy args_prxs tops_args
(arg_names, local_names) = initialNames args names
st = emptyPermCheckState (distPermSet perms_in) tops_ns entryID local_names in

let go x = runGenStateContT x st (\_ () -> pure ()) in
go $
setVarTypes (Just "top") (noNames' stTopCtx) tops_ns stTopCtx >>>
Expand All @@ -1967,7 +1967,7 @@ initialNames CruCtxNil xs = (MNil, xs)
initialNames (CruCtxCons ts _) xs =
case initialNames ts xs of
(ys, z:zs) -> (ys :>: Constant z, zs)
(ys, [] ) -> (ys :>: Constant Nothing, [])
(ys, [] ) -> (ys :>: Constant Nothing, [])

-- | Compute an empty debug name assignment from a known context
noNames ::
Expand Down Expand Up @@ -2641,7 +2641,7 @@ ppCruRegAndPerms ctx r =
-- their permissions, the variables in those permissions etc., as in
-- 'varPermsTransFreeVars'
getRelevantPerms :: [SomeName CrucibleType] ->
PermCheckM ext cblocks blocks tops ret r ps r ps
PermCheckM ext cblocks blocks tops ret r ps r ps
(Some DistPerms)
getRelevantPerms (namesListToNames -> SomeRAssign ns) =
gets stCurPerms >>>= \perms ->
Expand Down Expand Up @@ -3121,7 +3121,7 @@ tcEmitLLVMSetExpr ctx loc (LLVM_PointerIte w cond_reg then_reg else_reg) =
PExpr_Bool True ->
dbgNames >>= \names ->
emitStmt knownRepr names loc
(TypedSetRegPermExpr knownRepr $
(TypedSetRegPermExpr knownRepr $
PExpr_Var $ typedRegVar tthen_reg) >>>= \(MNil :>: ret) ->
stmtRecombinePerms >>>
pure (addCtxName ctx ret)
Expand All @@ -3140,7 +3140,7 @@ tcEmitLLVMSetExpr ctx loc (LLVM_PointerIte w cond_reg then_reg else_reg) =
pure (addCtxName ctx ret)

-- For LLVM side conditions, treat each side condition as an assert
tcEmitLLVMSetExpr ctx loc (LLVM_SideConditions tp conds reg) =
tcEmitLLVMSetExpr ctx loc (LLVM_SideConditions _ tp conds reg) =
let treg = tcReg ctx reg in
foldr
(\(LLVMSideCondition cond_reg ub) rest_m ->
Expand Down
27 changes: 22 additions & 5 deletions src/SAWScript/Crucible/LLVM/Builtins.hs
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,11 @@ checkSpecReturnType cc mspec =
-- Returns a tuple of (arguments, preconditions, pointer values,
-- memory).
verifyPrestate ::
(?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
Options ->
LLVMCrucibleContext arch ->
MS.CrucibleMethodSpecIR (LLVM arch) ->
Expand Down Expand Up @@ -882,7 +886,11 @@ resolveArguments cc mem mspec env = mapM resolveArg [0..(nArgs-1)]
-- | For each "llvm_global_alloc" in the method specification, allocate and
-- register the appropriate memory.
setupGlobalAllocs :: forall arch.
(?lc :: Crucible.TypeContext, Crucible.HasPtrWidth (Crucible.ArchWidth arch)) =>
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
LLVMCrucibleContext arch ->
MS.CrucibleMethodSpecIR (LLVM arch) ->
MemImpl ->
Expand Down Expand Up @@ -928,7 +936,12 @@ setupGlobalAllocs cc mspec mem0 = foldM go mem0 $ mspec ^. MS.csGlobalAllocs
-- function spec, write the given value to the address of the given
-- pointer.
setupPrePointsTos :: forall arch.
(?lc :: Crucible.TypeContext, ?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
MS.CrucibleMethodSpecIR (LLVM arch) ->
Options ->
LLVMCrucibleContext arch ->
Expand Down Expand Up @@ -1010,7 +1023,11 @@ assertEqualVals cc v1 v2 =

-- TODO(langston): combine with/move to executeAllocation
doAlloc ::
(?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
LLVMCrucibleContext arch ->
AllocIndex ->
LLVMAllocSpec ->
Expand Down Expand Up @@ -1390,7 +1407,7 @@ setupLLVMCrucibleContext pathSat lm action =
{ Crucible.laxPointerOrdering = laxPointerOrdering
}
let ?intrinsicsOpts = Crucible.defaultIntrinsicsOptions
let ?recordLLVMAnnotation = \_ _ -> return ()
let ?recordLLVMAnnotation = \_ _ _ -> return ()
let ?w4EvalTactic = W4EvalTactic { doW4Eval = what4Eval }
let ?checkAllocSymInit = allocSymInitCheck
cc <-
Expand Down
41 changes: 35 additions & 6 deletions src/SAWScript/Crucible/LLVM/Override.hs
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,12 @@ methodSpecHandler_prestate opts sc cc args cs =
-- and computing postcondition predicates.
methodSpecHandler_poststate ::
forall arch ret.
(?lc :: Crucible.TypeContext, ?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
Options {- ^ output/verbosity options -} ->
SharedContext {- ^ context for constructing SAW terms -} ->
LLVMCrucibleContext arch {- ^ context for interacting with Crucible -} ->
Expand Down Expand Up @@ -706,7 +711,12 @@ enforceCompleteSubstitution loc ss =


-- execute a pre/post condition
executeCond :: (?lc :: Crucible.TypeContext, ?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym)
executeCond :: ( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
)
=> Options
-> SharedContext
-> LLVMCrucibleContext arch
Expand Down Expand Up @@ -1615,6 +1625,7 @@ instantiateExtResolveSAWSymBV sc cc w tm = do
-- Return a map containing the overwritten memory allocations.
invalidateMutableAllocs ::
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
Expand Down Expand Up @@ -1707,7 +1718,12 @@ invalidateMutableAllocs opts sc cc cs = do
-- | Perform an allocation as indicated by an @llvm_alloc@ or
-- @llvm_fresh_pointer@ statement from the postcondition section.
executeAllocation ::
(?lc :: Crucible.TypeContext, ?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
Options ->
SharedContext ->
LLVMCrucibleContext arch ->
Expand All @@ -1734,7 +1750,11 @@ executeAllocation opts sc cc (var, LLVMAllocSpec mut memTy alignment sz loc fres
assignVar cc loc var ptr

doAllocSymInit ::
(Crucible.IsSymInterface sym, Crucible.HasPtrWidth wptr, Crucible.HasLLVMAnn sym) =>
( ?memOpts :: Crucible.MemOptions
, Crucible.IsSymInterface sym
, Crucible.HasPtrWidth wptr
, Crucible.HasLLVMAnn sym
) =>
sym ->
Crucible.MemImpl sym ->
Crucible.Mutability ->
Expand Down Expand Up @@ -1799,7 +1819,12 @@ executeGhost _sc _var (TypedTerm tp _) =
-- the CrucibleSetup block. First we compute the value indicated by
-- 'val', and then write it to the address indicated by 'ptr'.
executePointsTo ::
(?lc :: Crucible.TypeContext, ?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?lc :: Crucible.TypeContext
, ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
Options ->
SharedContext ->
LLVMCrucibleContext arch ->
Expand Down Expand Up @@ -1830,7 +1855,11 @@ executePointsTo opts sc cc spec overwritten_allocs (LLVMPointsTo _loc cond ptr v
writeGlobal memVar mem'

storePointsToValue ::
(?w4EvalTactic :: W4EvalTactic, Crucible.HasPtrWidth (Crucible.ArchWidth arch), Crucible.HasLLVMAnn Sym) =>
( ?memOpts :: Crucible.MemOptions
, ?w4EvalTactic :: W4EvalTactic
, Crucible.HasPtrWidth (Crucible.ArchWidth arch)
, Crucible.HasLLVMAnn Sym
) =>
Options ->
LLVMCrucibleContext arch ->
Map AllocIndex (LLVMPtr (Crucible.ArchWidth arch)) ->
Expand Down
2 changes: 1 addition & 1 deletion src/SAWScript/Crucible/LLVM/X86.hs
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ llvm_verify_x86 (Some (llvmModule :: LLVMModule x)) path nm globsyms checkSat se
start <- io getCurrentTime
let ?ptrWidth = knownNat @64
let ?memOpts = C.LLVM.defaultMemOptions
let ?recordLLVMAnnotation = \_ _ -> return ()
let ?recordLLVMAnnotation = \_ _ _ -> return ()
sc <- getSharedContext
opts <- getOptions
basic_ss <- getBasicSS
Expand Down
2 changes: 1 addition & 1 deletion src/SAWScript/X86.hs
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ translate opts elf fun =
sayLn ("Translating function: " ++ BSC.unpack name)

let ?memOpts = Crucible.defaultMemOptions
let ?recordLLVMAnnotation = \_ _ -> return ()
let ?recordLLVMAnnotation = \_ _ _ -> return ()

let sym = backend opts
sopts = Opts { optsSym = sym, optsCry = cryEnv opts, optsMvar = memvar opts }
Expand Down

0 comments on commit 96272c0

Please sign in to comment.