Don't include llvm.metadata variables in archive symbol tables.
[oota-llvm.git] / lib / Object / IRObjectFile.cpp
index 50394058a87ad69a0da3c73953f1501b7730e12a..d01910811a65f5a2a7094f34fd02041013798456 100644 (file)
@@ -240,6 +240,11 @@ uint32_t IRObjectFile::getSymbolFlags(DataRefImpl Symb) const {
   if (GV->hasLinkOnceLinkage() || GV->hasWeakLinkage())
     Res |= BasicSymbolRef::SF_Weak;
 
+  if (auto *Var = dyn_cast<GlobalVariable>(GV)) {
+    if (Var->getSection() == StringRef("llvm.metadata"))
+      Res |= BasicSymbolRef::SF_FormatSpecific;
+  }
+
   return Res;
 }