Copyright | (c) Galois Inc 2024 |
---|---|
License | BSD3 |
Maintainer | Langston Barrett <langston@galois.com> |
Stability | provisional |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Lang.Crucible.LLVM.Intrinsics.Cast
Description
The built-in overrides in Lang.Crucible.LLVM.Intrinsics.Libc and
Lang.Crucible.LLVM.Intrinsics.LLVM frequently take arguments of type
BVType
, but at runtime everything is represented as an
LLVMPtr
. This module contains helpers
for "casting" between pointers and bitvectors.
Synopsis
- data ValCastError
- printValCastError :: ValCastError -> [String]
- data ArgCast p sym ext args args'
- data ValCast p sym ext tp tp'
- castLLVMArgs :: forall p sym ext bak args args'. IsSymBackend sym bak => FunctionName -> bak -> CtxRepr args' -> CtxRepr args -> Either ValCastError (ArgCast p sym ext args args')
- castLLVMRet :: IsSymBackend sym bak => FunctionName -> bak -> TypeRepr ret -> TypeRepr ret' -> Either ValCastError (ValCast p sym ext ret ret')
Documentation
data ValCastError Source #
printValCastError :: ValCastError -> [String] Source #
Turn a ValCastError
into a human-readable message (lines).
data ArgCast p sym ext args args' Source #
A function to (infallibly) cast between Assignment
s of RegEntry
s.
Arguments
:: forall p sym ext bak args args'. IsSymBackend sym bak | |
=> FunctionName | Only used in error messages |
-> bak | |
-> CtxRepr args' | |
-> CtxRepr args | |
-> Either ValCastError (ArgCast p sym ext args args') |
Attempt to construct a function to cast between Assignment
s of
RegEntry
s.
Arguments
:: IsSymBackend sym bak | |
=> FunctionName | Only used in error messages |
-> bak | |
-> TypeRepr ret | |
-> TypeRepr ret' | |
-> Either ValCastError (ValCast p sym ext ret ret') |
Attempt to construct a function to cast values of type ret
to type
ret'
.