[llvm-commits] CVS: llvm/tools/llvm-nm/llvm-nm.cpp

Lauro Ramos Venancio lauro.venancio at gmail.com
Wed Jun 27 15:08:45 PDT 2007



Changes in directory llvm/tools/llvm-nm:

llvm-nm.cpp updated: 1.36 -> 1.37
---
Log message:

llvm-nm must print the alias symbols.



---
Diffs of the changes:  (+13 -5)

 llvm-nm.cpp |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)


Index: llvm/tools/llvm-nm/llvm-nm.cpp
diff -u llvm/tools/llvm-nm/llvm-nm.cpp:1.36 llvm/tools/llvm-nm/llvm-nm.cpp:1.37
--- llvm/tools/llvm-nm/llvm-nm.cpp:1.36	Sun May  6 18:45:49 2007
+++ llvm/tools/llvm-nm/llvm-nm.cpp	Wed Jun 27 17:08:09 2007
@@ -68,14 +68,19 @@
 }
 
 static char TypeCharForSymbol(GlobalValue &GV) {
-  if (GV.isDeclaration())                                     return 'U';
+  if (GV.isDeclaration())                                  return 'U';
   if (GV.hasLinkOnceLinkage())                             return 'C';
   if (GV.hasWeakLinkage())                                 return 'W';
-  if (isa<Function>(GV) && GV.hasInternalLinkage())       return 't';
+  if (isa<Function>(GV) && GV.hasInternalLinkage())        return 't';
   if (isa<Function>(GV))                                   return 'T';
-  if (isa<GlobalVariable>(GV) && GV.hasInternalLinkage()) return 'd';
+  if (isa<GlobalVariable>(GV) && GV.hasInternalLinkage())  return 'd';
   if (isa<GlobalVariable>(GV))                             return 'D';
-                                                            return '?';
+  if (const GlobalAlias *GA = dyn_cast<GlobalAlias>(&GV)) {
+    const GlobalValue *AliasedGV = GA->getAliasedGlobal();
+    if (isa<Function>(AliasedGV))                          return 'T';
+    if (isa<GlobalVariable>(AliasedGV))                    return 'D';
+  }
+                                                           return '?';
 }
 
 static void DumpSymbolNameForGlobalValue(GlobalValue &GV) {
@@ -115,7 +120,10 @@
               << "         Size   Line  Section\n";
   }
   std::for_each (M->begin (), M->end (), DumpSymbolNameForGlobalValue);
-  std::for_each (M->global_begin (), M->global_end (), DumpSymbolNameForGlobalValue);
+  std::for_each (M->global_begin (), M->global_end (),
+                 DumpSymbolNameForGlobalValue);
+  std::for_each (M->alias_begin (), M->alias_end (),
+                 DumpSymbolNameForGlobalValue);
 }
 
 static void DumpSymbolNamesFromFile(std::string &Filename) {






More information about the llvm-commits mailing list