diff options
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/CppBackend/CPPBackend.cpp | 2 | ||||
-rw-r--r-- | lib/Target/Mangler.cpp | 5 | ||||
-rw-r--r-- | lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index eda08e7a88..e72763bbf1 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -286,6 +286,8 @@ void CppWriter::printLinkageType(GlobalValue::LinkageTypes LT) { Out << "GlobalValue::PrivateLinkage"; break; case GlobalValue::LinkerPrivateLinkage: Out << "GlobalValue::LinkerPrivateLinkage"; break; + case GlobalValue::LinkerWeakLinkage: + Out << "GlobalValue::LinkerWeakLinkage"; break; case GlobalValue::AvailableExternallyLinkage: Out << "GlobalValue::AvailableExternallyLinkage "; break; case GlobalValue::LinkOnceAnyLinkage: diff --git a/lib/Target/Mangler.cpp b/lib/Target/Mangler.cpp index 4ef017ab92..fc2f78d5b6 100644 --- a/lib/Target/Mangler.cpp +++ b/lib/Target/Mangler.cpp @@ -118,6 +118,9 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName, } else if (PrefixTy == Mangler::LinkerPrivate) { const char *Prefix = MAI.getLinkerPrivateGlobalPrefix(); OutName.append(Prefix, Prefix+strlen(Prefix)); + } else if (PrefixTy == Mangler::LinkerWeak) { + const char *Prefix = MAI.getLinkerWeakGlobalPrefix(); + OutName.append(Prefix, Prefix+strlen(Prefix)); } const char *Prefix = MAI.getGlobalPrefix(); @@ -182,6 +185,8 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName, PrefixTy = Mangler::Private; else if (GV->hasLinkerPrivateLinkage()) PrefixTy = Mangler::LinkerPrivate; + else if (GV->hasLinkerWeakLinkage()) + PrefixTy = Mangler::LinkerWeak; // If this global has a name, handle it simply. if (GV->hasName()) { diff --git a/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp b/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp index c100c59013..33a11d09f2 100644 --- a/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp +++ b/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp @@ -129,6 +129,7 @@ void XCoreAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) { case GlobalValue::WeakAnyLinkage: case GlobalValue::WeakODRLinkage: case GlobalValue::ExternalLinkage: + case GlobalValue::LinkerWeakLinkage: emitArrayBound(GVSym, GV); OutStreamer.EmitSymbolAttribute(GVSym, MCSA_Global); |