diff options
author | Andrey Konovalov <andreyknvl@google.com> | 2018-04-13 18:05:21 +0000 |
---|---|---|
committer | Andrey Konovalov <andreyknvl@google.com> | 2018-04-13 18:05:21 +0000 |
commit | 1ba9d9c6ca1ffeef7e833261ebca463a92adf82f (patch) | |
tree | 411cffebc58e2bb1b52c646829e63fd4e951c439 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 24fff2429cb612dfe4293ccb93e664f02671ef8a (diff) | |
download | bcm5719-llvm-1ba9d9c6ca1ffeef7e833261ebca463a92adf82f.tar.gz bcm5719-llvm-1ba9d9c6ca1ffeef7e833261ebca463a92adf82f.zip |
hwasan: add -fsanitize=kernel-hwaddress flag
This patch adds -fsanitize=kernel-hwaddress flag, that essentially enables
-hwasan-kernel=1 -hwasan-recover=1 -hwasan-match-all-tag=0xff.
Differential Revision: https://reviews.llvm.org/D45046
llvm-svn: 330044
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 5367c2addec..357f0d74376 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -856,13 +856,17 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, SanOpts.set(SanitizerKind::KernelAddress, false); if (mask & SanitizerKind::KernelAddress) SanOpts.set(SanitizerKind::Address, false); + if (mask & SanitizerKind::HWAddress) + SanOpts.set(SanitizerKind::KernelHWAddress, false); + if (mask & SanitizerKind::KernelHWAddress) + SanOpts.set(SanitizerKind::HWAddress, false); } } // Apply sanitizer attributes to the function. if (SanOpts.hasOneOf(SanitizerKind::Address | SanitizerKind::KernelAddress)) Fn->addFnAttr(llvm::Attribute::SanitizeAddress); - if (SanOpts.hasOneOf(SanitizerKind::HWAddress)) + if (SanOpts.hasOneOf(SanitizerKind::HWAddress | SanitizerKind::KernelHWAddress)) Fn->addFnAttr(llvm::Attribute::SanitizeHWAddress); if (SanOpts.has(SanitizerKind::Thread)) Fn->addFnAttr(llvm::Attribute::SanitizeThread); |