| 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 Assignments of RegEntrys.
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 Assignments of
RegEntrys.
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'.