From a36429f26d0b7a8eccdb27c649baa58926881cd8 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 1 Aug 2014 14:16:40 +0000 Subject: [PATCH] [pr20127] Check for leading \1 in the Twine version of getNameWithPrefix. No functionality change, but will simplify an upcoming patch that uses the Twine version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214515 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/IR/Mangler.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/IR/Mangler.cpp b/lib/IR/Mangler.cpp index 27d973b94f0..bfed3e39f4e 100644 --- a/lib/IR/Mangler.cpp +++ b/lib/IR/Mangler.cpp @@ -27,6 +27,13 @@ static void getNameWithPrefixx(raw_ostream &OS, const Twine &GVName, StringRef Name = GVName.toStringRef(TmpData); assert(!Name.empty() && "getNameWithPrefix requires non-empty name"); + // No need to do anything special if the global has the special "do not + // mangle" flag in the name. + if (Name[0] == '\1') { + OS << Name.substr(1); + return; + } + if (PrefixTy == Mangler::Private) OS << DL.getPrivateGlobalPrefix(); else if (PrefixTy == Mangler::LinkerPrivate) @@ -100,17 +107,10 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV, StringRef Name = GV->getName(); - // No need to do anything special if the global has the special "do not - // mangle" flag in the name. - if (Name[0] == '\1') { - OS << Name.substr(1); - return; - } - bool UseAt = false; const Function *MSFunc = nullptr; CallingConv::ID CC; - if (DL->hasMicrosoftFastStdCallMangling()) { + if (Name[0] != '\1' && DL->hasMicrosoftFastStdCallMangling()) { if ((MSFunc = dyn_cast(GV))) { CC = MSFunc->getCallingConv(); // fastcall functions need to start with @ instead of _.