[ASan] Initial support for Kernel AddressSanitizer
This patch adds initial support for the -fsanitize=kernel-address flag to Clang. Right now it's quite restricted: only out-of-line instrumentation is supported, globals are not instrumented, some GCC kasan flags are not supported. Using this patch I am able to build and boot the KASan tree with LLVMLinux patches from github.com/ramosian-glider/kasan/tree/kasan_llvmlinux. To disable KASan instrumentation for a certain function attribute((no_sanitize("kernel-address"))) can be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240131 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/Sanitizers.def 3 additions, 0 deletionsinclude/clang/Basic/Sanitizers.def
- include/clang/Basic/Sanitizers.h 3 additions, 0 deletionsinclude/clang/Basic/Sanitizers.h
- lib/AST/Decl.cpp 2 additions, 1 deletionlib/AST/Decl.cpp
- lib/Basic/Sanitizers.cpp 4 additions, 0 deletionslib/Basic/Sanitizers.cpp
- lib/CodeGen/BackendUtil.cpp 15 additions, 2 deletionslib/CodeGen/BackendUtil.cpp
- lib/CodeGen/CGDeclCXX.cpp 2 additions, 1 deletionlib/CodeGen/CGDeclCXX.cpp
- lib/CodeGen/CodeGenFunction.cpp 1 addition, 1 deletionlib/CodeGen/CodeGenFunction.cpp
- lib/CodeGen/CodeGenModule.cpp 3 additions, 2 deletionslib/CodeGen/CodeGenModule.cpp
- lib/CodeGen/SanitizerMetadata.cpp 6 additions, 3 deletionslib/CodeGen/SanitizerMetadata.cpp
- lib/Driver/SanitizerArgs.cpp 4 additions, 1 deletionlib/Driver/SanitizerArgs.cpp
- lib/Lex/PPMacroExpansion.cpp 3 additions, 1 deletionlib/Lex/PPMacroExpansion.cpp
- test/CodeGen/address-safety-attr-kasan.cpp 38 additions, 0 deletionstest/CodeGen/address-safety-attr-kasan.cpp
- test/Driver/asan.c 11 additions, 6 deletionstest/Driver/asan.c
- test/Driver/fsanitize.c 12 additions, 0 deletionstest/Driver/fsanitize.c
- test/Lexer/has_feature_address_sanitizer.cpp 1 addition, 0 deletionstest/Lexer/has_feature_address_sanitizer.cpp
Loading
Please register or sign in to comment