[ASan/Win] Don't instrument private COMDAT globals until PR20244 is properly fixed
llvm-svn: 212530
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 65f769c..8f9355c 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -946,6 +946,13 @@
return false;
}
+ // Don't instrument private COMDAT globals on Windows until PR20244 (linkage
+ // of vftables with RTTI) is properly fixed.
+ llvm::Triple TargetTriple(G->getParent()->getTargetTriple());
+ if (G->hasComdat() && G->getLinkage() == GlobalVariable::PrivateLinkage &&
+ TargetTriple.isWindowsMSVCEnvironment())
+ return false;
+
if (G->hasSection()) {
StringRef Section(G->getSection());
// Ignore the globals from the __OBJC section. The ObjC runtime assumes