X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FMangler.cpp;h=53ad155f376c24f7f0e396186614ff4bafd0ab79;hb=0efe213ed5a2c1d2647dc1306e684da6147a611e;hp=fc2f78d5b620137a6aac5ae089795c8f2c46cc44;hpb=207855cff9b4811004b9720f28a5bd0adf3784b7;p=oota-llvm.git diff --git a/lib/Target/Mangler.cpp b/lib/Target/Mangler.cpp index fc2f78d5b62..53ad155f376 100644 --- a/lib/Target/Mangler.cpp +++ b/lib/Target/Mangler.cpp @@ -118,9 +118,6 @@ void Mangler::getNameWithPrefix(SmallVectorImpl &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(); @@ -162,7 +159,7 @@ static void AddFastCallStdCallSuffix(SmallVectorImpl &OutName, unsigned ArgWords = 0; for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end(); AI != AE; ++AI) { - const Type *Ty = AI->getType(); + Type *Ty = AI->getType(); // 'Dereference' type in case of byval parameter attribute if (AI->hasByValAttr()) Ty = cast(Ty)->getElementType(); @@ -183,10 +180,9 @@ void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, ManglerPrefixTy PrefixTy = Mangler::Default; if (GV->hasPrivateLinkage() || isImplicitlyPrivate) PrefixTy = Mangler::Private; - else if (GV->hasLinkerPrivateLinkage()) + else if (GV->hasLinkerPrivateLinkage() || GV->hasLinkerPrivateWeakLinkage() || + GV->hasLinkerPrivateWeakDefAutoLinkage()) PrefixTy = Mangler::LinkerPrivate; - else if (GV->hasLinkerWeakLinkage()) - PrefixTy = Mangler::LinkerWeak; // If this global has a name, handle it simply. if (GV->hasName()) { @@ -218,7 +214,7 @@ void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, // fastcall and stdcall functions usually need @42 at the end to specify // the argument info. - const FunctionType *FT = F->getFunctionType(); + FunctionType *FT = F->getFunctionType(); if ((CC == CallingConv::X86_FastCall || CC == CallingConv::X86_StdCall) && // "Pure" variadic functions do not receive @0 suffix. (!FT->isVarArg() || FT->getNumParams() == 0 || @@ -228,16 +224,6 @@ void Mangler::getNameWithPrefix(SmallVectorImpl &OutName, } } -/// getNameWithPrefix - Fill OutName with the name of the appropriate prefix -/// and the specified global variable's name. If the global variable doesn't -/// have a name, this fills in a unique name for the global. -std::string Mangler::getNameWithPrefix(const GlobalValue *GV, - bool isImplicitlyPrivate) { - SmallString<64> Buf; - getNameWithPrefix(Buf, GV, isImplicitlyPrivate); - return std::string(Buf.begin(), Buf.end()); -} - /// getSymbol - Return the MCSymbol for the specified global value. This /// symbol is the main label that is the address of the global. MCSymbol *Mangler::getSymbol(const GlobalValue *GV) {