[llvm-commits] CVS: llvm/lib/Support/Mangler.cpp
Chris Lattner
lattner at cs.uiuc.edu
Mon Aug 11 14:35:01 PDT 2003
Changes in directory llvm/lib/Support:
Mangler.cpp updated: 1.3 -> 1.4
---
Log message:
Add support to the mangler for targets which require _'s on global symbols
---
Diffs of the changes:
Index: llvm/lib/Support/Mangler.cpp
diff -u llvm/lib/Support/Mangler.cpp:1.3 llvm/lib/Support/Mangler.cpp:1.4
--- llvm/lib/Support/Mangler.cpp:1.3 Fri Jul 25 15:21:20 2003
+++ llvm/lib/Support/Mangler.cpp Mon Aug 11 14:34:29 2003
@@ -42,8 +42,9 @@
// 2) V's name would collide if it is not mangled.
//
const GlobalValue* gv = dyn_cast<GlobalValue>(V);
- if(gv && !gv->hasInternalLinkage() && !MangledGlobals.count(gv)) {
+ if (gv && !gv->hasInternalLinkage() && !MangledGlobals.count(gv)) {
name = makeNameProper(gv->getName());
+ if (AddUnderscorePrefix) name = "_" + name;
} else {
// Non-global, or global with internal linkage / colliding name
// -> mangle.
@@ -54,12 +55,13 @@
name = "ltmp_" + utostr(Count++) + "_"
+ utostr(V->getType()->getUniqueID());
}
+
Memo[V] = name;
return name;
}
-Mangler::Mangler(Module &M_) : M(M_)
-{
+Mangler::Mangler(Module &m, bool addUnderscorePrefix)
+ : M(m), AddUnderscorePrefix(addUnderscorePrefix) {
// Calculate which global values have names that will collide when we throw
// away type information.
std::set<std::string> FoundNames;
More information about the llvm-commits
mailing list