[-cxx-abi microsoft] Mangle UUIDs correctly, stick them in the proper section
Revert r188055 which reverted r188053. An unrelated change previously snuck in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188060 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index dbdf016..35c18b4 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -1059,7 +1059,8 @@
else
Uuid = "00000000-0000-0000-0000-000000000000";
}
- std::string Name = "__uuid_" + Uuid.str();
+ std::string Name = "_GUID_" + Uuid.lower();
+ std::replace(Name.begin(), Name.end(), '-', '_');
// Look for an existing global.
if (llvm::GlobalVariable *GV = getModule().getNamedGlobal(Name))
@@ -1082,7 +1083,7 @@
}
llvm::GlobalVariable *GV = new llvm::GlobalVariable(getModule(), GuidType,
- /*isConstant=*/true, llvm::GlobalValue::PrivateLinkage, Init, Name);
+ /*isConstant=*/true, llvm::GlobalValue::ExternalLinkage, Init, Name);
GV->setUnnamedAddr(true);
return GV;
}