crucible-llvm-0.8.0.0: Support for translating and executing LLVM code in Crucible
Copyright(c) Galois Inc 2018
LicenseBSD3
MaintainerLangston Barrett <lbarrett@galois.com>
Stabilityprovisional
Safe HaskellNone
LanguageHaskell2010

Lang.Crucible.LLVM.Errors.MemoryError

Description

See crucible-llvm-clitest-dataub for tests demonstrating some of these.

Synopsis

Documentation

data MemoryError sym where Source #

Constructors

MemoryError :: forall (w :: Natural) sym. 1 <= w => MemoryOp sym w -> MemoryErrorReason -> MemoryError sym 

type MemErrContext sym (w :: Nat) = MemoryOp sym w Source #

explain :: IsExpr (SymExpr sym) => MemoryError sym -> Doc ann Source #

details :: IsExpr (SymExpr sym) => MemoryError sym -> Doc ann Source #

data MemoryOp sym (w :: Nat) Source #

Constructors

MemLoadOp StorageType (Maybe String) (LLVMPtr sym w) (Mem sym) 
MemStoreOp StorageType (Maybe String) (LLVMPtr sym w) (Mem sym) 
MemStoreBytesOp (Maybe String) (LLVMPtr sym w) (Maybe (SymBV sym w)) (Mem sym) 
1 <= wlen => MemCopyOp (Maybe String, LLVMPtr sym w) (Maybe String, LLVMPtr sym w) (SymBV sym wlen) (Mem sym) 
MemLoadHandleOp (Maybe Type) (Maybe String) (LLVMPtr sym w) (Mem sym) 
1 <= wlen => MemInvalidateOp Text (Maybe String) (LLVMPtr sym w) (SymBV sym wlen) (Mem sym) 

memOpMem :: forall sym (w :: Nat). MemoryOp sym w -> Mem sym Source #

ppMemoryOp :: forall sym (w :: Nat) ann. IsExpr (SymExpr sym) => MemoryOp sym w -> Doc ann Source #

concMemoryError :: IsExprBuilder sym => sym -> (forall (tp :: BaseType). SymExpr sym tp -> IO (GroundValue tp)) -> MemoryError sym -> IO (MemoryError sym) Source #

concMemoryOp :: forall (w :: Natural) sym. (1 <= w, IsExprBuilder sym) => sym -> (forall (tp :: BaseType). SymExpr sym tp -> IO (GroundValue tp)) -> MemoryOp sym w -> IO (MemoryOp sym w) Source #