Properly handle linkonce stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53296 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index 923cac6..6967ebe 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -266,3 +266,26 @@
return getDataSection();
}
+
+std::string
+TargetAsmInfo::UniqueSectionForGlobal(const GlobalValue* GV,
+ SectionKind::Kind kind) const {
+ switch (kind) {
+ case SectionKind::Text:
+ return ".llvm.linkonce.t." + GV->getName();
+ case SectionKind::Data:
+ return ".llvm.linkonce.d." + GV->getName();
+ case SectionKind::BSS:
+ return ".llvm.linkonce.b." + GV->getName();
+ case SectionKind::ROData:
+ case SectionKind::RODataMergeConst:
+ case SectionKind::RODataMergeStr:
+ return ".llvm.linkonce.r." + GV->getName();
+ case SectionKind::ThreadData:
+ return ".llvm.linkonce.td." + GV->getName();
+ case SectionKind::ThreadBSS:
+ return ".llvm.linkonce.tb." + GV->getName();
+ default:
+ assert(0 && "Unknown section kind");
+ }
+}