]> granicus.if.org Git - clang/commit
Cross-DSO control flow integrity (Clang part).
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 15 Dec 2015 23:00:20 +0000 (23:00 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 15 Dec 2015 23:00:20 +0000 (23:00 +0000)
commit3a8ad7e2f6acb0e823154d76a203b828d32e9aa7
treea776a11e6918adc4741b81ecd804378ef30a4e47
parent86fda4a2ffb1b93ea97556a504cdd41063aaced2
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255694 91177308-0d34-0410-b5e6-96231b3b80d8
20 files changed:
docs/ControlFlowIntegrity.rst
docs/ControlFlowIntegrityDesign.rst
docs/UsersManual.rst
include/clang/Driver/Options.td
include/clang/Driver/SanitizerArgs.h
include/clang/Frontend/CodeGenOptions.def
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGVTables.cpp
lib/CodeGen/CodeGenFunction.h
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Driver/SanitizerArgs.cpp
lib/Driver/Tools.cpp
lib/Frontend/CompilerInvocation.cpp
test/CodeGen/cfi-icall-cross-dso.c [new file with mode: 0644]
test/CodeGenCXX/cfi-cross-dso.cpp [new file with mode: 0644]
test/Driver/fsanitize.c
test/Driver/sanitizer-ld.c