[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