Author: Vitaly Buka
Date: 2022-06-07T14:08:43-07:00
New Revision: d7df3f0a4b8dd089ade1805ab150efc5b1c84fe7

URL: 
https://github.com/llvm/llvm-project/commit/d7df3f0a4b8dd089ade1805ab150efc5b1c84fe7
DIFF: 
https://github.com/llvm/llvm-project/commit/d7df3f0a4b8dd089ade1805ab150efc5b1c84fe7.diff

LOG: [NFC] Exctract getNoSanitizeMask lambda

Added: 
    

Modified: 
    clang/lib/CodeGen/SanitizerMetadata.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/SanitizerMetadata.cpp 
b/clang/lib/CodeGen/SanitizerMetadata.cpp
index 5e094ec4c505..8127e1519261 100644
--- a/clang/lib/CodeGen/SanitizerMetadata.cpp
+++ b/clang/lib/CodeGen/SanitizerMetadata.cpp
@@ -67,14 +67,18 @@ void SanitizerMetadata::reportGlobal(llvm::GlobalVariable 
*GV, const VarDecl &D,
   llvm::raw_string_ostream OS(QualName);
   D.printQualifiedName(OS);
 
-  bool IsExcluded = false;
-  for (auto Attr : D.specific_attrs<NoSanitizeAttr>())
-    if (Attr->getMask() & SanitizerKind::Address)
-      IsExcluded = true;
-  if (D.hasAttr<DisableSanitizerInstrumentationAttr>())
-    IsExcluded = true;
+  auto getNoSanitizeMask = [](const VarDecl &D) {
+    if (D.hasAttr<DisableSanitizerInstrumentationAttr>())
+      return SanitizerKind::All;
+
+    SanitizerMask NoSanitizeMask;
+    for (auto *Attr : D.specific_attrs<NoSanitizeAttr>())
+      NoSanitizeMask |= Attr->getMask();
+
+    return NoSanitizeMask;
+  };
   reportGlobal(GV, D.getLocation(), OS.str(), D.getType(), IsDynInit,
-               IsExcluded);
+               SanitizerSet{getNoSanitizeMask(D)}.has(SanitizerKind::Address));
 }
 
 void SanitizerMetadata::reportGlobal(llvm::GlobalVariable *GV,


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to