[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