12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- #ifndef LLVM_TRANSFORMS_UTILS_ASANSTACKFRAMELAYOUT_H
- #define LLVM_TRANSFORMS_UTILS_ASANSTACKFRAMELAYOUT_H
- #include "llvm/ADT/SmallString.h"
- #include "llvm/ADT/SmallVector.h"
- namespace llvm {
- class AllocaInst;
- static const int kAsanStackLeftRedzoneMagic = 0xf1;
- static const int kAsanStackMidRedzoneMagic = 0xf2;
- static const int kAsanStackRightRedzoneMagic = 0xf3;
- static const int kAsanStackUseAfterReturnMagic = 0xf5;
- static const int kAsanStackUseAfterScopeMagic = 0xf8;
- struct ASanStackVariableDescription {
- const char *Name;
-
- uint64_t Size;
- size_t LifetimeSize;
-
- uint64_t Alignment;
- AllocaInst *AI;
- size_t Offset;
-
- unsigned Line;
- };
- struct ASanStackFrameLayout {
- uint64_t Granularity;
- uint64_t FrameAlignment;
- uint64_t FrameSize;
- };
- ASanStackFrameLayout ComputeASanStackFrameLayout(
-
- SmallVectorImpl<ASanStackVariableDescription> &Vars,
-
- uint64_t Granularity,
-
-
-
- uint64_t MinHeaderSize);
- SmallString<64> ComputeASanStackFrameDescription(
- const SmallVectorImpl<ASanStackVariableDescription> &Vars);
- SmallVector<uint8_t, 64>
- GetShadowBytes(const SmallVectorImpl<ASanStackVariableDescription> &Vars,
- const ASanStackFrameLayout &Layout);
- SmallVector<uint8_t, 64> GetShadowBytesAfterScope(
-
- const SmallVectorImpl<ASanStackVariableDescription> &Vars,
- const ASanStackFrameLayout &Layout);
- }
- #endif
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|