Cross-DSO control flow integrity (Clang part).
Clang-side cross-DSO CFI. * Adds a command line flag -f[no-]sanitize-cfi-cross-dso. * Links a runtime library when enabled. * Emits __cfi_slowpath calls is bitset test fails. * Emits extra hash-based bitsets for external CFI checks. * Sets a module flag to enable __cfi_check generation during LTO. This mode does not yet support diagnostics. llvm-svn: 255694
This commit is contained in:
@@ -3009,6 +3009,11 @@ public:
|
||||
StringRef CheckName, ArrayRef<llvm::Constant *> StaticArgs,
|
||||
ArrayRef<llvm::Value *> DynamicArgs);
|
||||
|
||||
/// \brief Emit a slow path cross-DSO CFI check which calls __cfi_slowpath
|
||||
/// if Cond if false.
|
||||
void EmitCfiSlowPathCheck(llvm::Value *Cond, llvm::ConstantInt *TypeId,
|
||||
llvm::Value *Ptr);
|
||||
|
||||
/// \brief Create a basic block that will call the trap intrinsic, and emit a
|
||||
/// conditional branch to it, for the -ftrapv checks.
|
||||
void EmitTrapCheck(llvm::Value *Checked);
|
||||
|
||||
Reference in New Issue
Block a user