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 | |
| 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')
| -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) { | 

