diff options
| author | Douglas Katzman <dougk@google.com> | 2016-10-14 19:55:09 +0000 |
|---|---|---|
| committer | Douglas Katzman <dougk@google.com> | 2016-10-14 19:55:09 +0000 |
| commit | 3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86 (patch) | |
| tree | c78c3e1d4ce390185d4059c55d78750d01cc1365 /clang/lib/CodeGen/SanitizerMetadata.cpp | |
| parent | f80a27e3c6190a9aaec4454696cd4c162e3164e6 (diff) | |
| download | bcm5719-llvm-3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86.tar.gz bcm5719-llvm-3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86.zip | |
Implement no_sanitize_address for global vars
llvm-svn: 284272
Diffstat (limited to 'clang/lib/CodeGen/SanitizerMetadata.cpp')
| -rw-r--r-- | clang/lib/CodeGen/SanitizerMetadata.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/SanitizerMetadata.cpp b/clang/lib/CodeGen/SanitizerMetadata.cpp index 2a338bac4b4..9848e3e452f 100644 --- a/clang/lib/CodeGen/SanitizerMetadata.cpp +++ b/clang/lib/CodeGen/SanitizerMetadata.cpp @@ -63,7 +63,13 @@ void SanitizerMetadata::reportGlobalToASan(llvm::GlobalVariable *GV, std::string QualName; llvm::raw_string_ostream OS(QualName); D.printQualifiedName(OS); - reportGlobalToASan(GV, D.getLocation(), OS.str(), D.getType(), IsDynInit); + + bool IsBlacklisted = false; + for (auto Attr : D.specific_attrs<NoSanitizeAttr>()) + if (Attr->getMask() & SanitizerKind::Address) + IsBlacklisted = true; + reportGlobalToASan(GV, D.getLocation(), OS.str(), D.getType(), IsDynInit, + IsBlacklisted); } void SanitizerMetadata::disableSanitizerForGlobal(llvm::GlobalVariable *GV) { |

