summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorJames Henderson <jh7370@my.bristol.ac.uk>2019-04-03 12:57:46 +0000
committerJames Henderson <jh7370@my.bristol.ac.uk>2019-04-03 12:57:46 +0000
commitef93be84d33efa59667a1b58b75eac33b60d71b4 (patch)
treee56e376ef5e4f4d7903f6d61266418c885f0c3a1 /llvm/tools/llvm-nm/llvm-nm.cpp
parentfee435702d9ad636d5acb0738ee68baa68a9e0e0 (diff)
downloadbcm5719-llvm-ef93be84d33efa59667a1b58b75eac33b60d71b4.tar.gz
bcm5719-llvm-ef93be84d33efa59667a1b58b75eac33b60d71b4.zip
[llvm-nm]Add support for --no-demangle
GNU nm has --no-demangle, so llvm-nm should too. It disables the --demangle switch. The patch also allows --demangle to be specified multiple times (the last of all --no-demangle/--demangle switches takes precedence). Reviewed by: grimar, rupprecht, mattd Differential Revision: https://reviews.llvm.org/D60134 llvm-svn: 357575
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r--llvm/tools/llvm-nm/llvm-nm.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index 53f07d191c8..f28cc5685d8 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -124,9 +124,12 @@ cl::opt<bool> NoSort("no-sort", cl::desc("Show symbols in order encountered"));
cl::alias NoSortp("p", cl::desc("Alias for --no-sort"), cl::aliasopt(NoSort),
cl::Grouping);
-cl::opt<bool> Demangle("demangle", cl::desc("Demangle C++ symbol names"));
-cl::alias DemangleC("C", cl::desc("Alias for --demangle"), cl::aliasopt(Demangle),
- cl::Grouping);
+cl::opt<bool> Demangle("demangle", cl::ZeroOrMore,
+ cl::desc("Demangle C++ symbol names"));
+cl::alias DemangleC("C", cl::desc("Alias for --demangle"),
+ cl::aliasopt(Demangle), cl::Grouping);
+cl::opt<bool> NoDemangle("no-demangle", cl::init(false), cl::ZeroOrMore,
+ cl::desc("Don't demangle symbol names"));
cl::opt<bool> ReverseSort("reverse-sort", cl::desc("Sort in reverse order"));
cl::alias ReverseSortr("r", cl::desc("Alias for --reverse-sort"),
@@ -2106,6 +2109,10 @@ int main(int argc, char **argv) {
if (InputFilenames.size() > 1)
MultipleFiles = true;
+ // If both --demangle and --no-demangle are specified then pick the last one.
+ if (NoDemangle.getPosition() > Demangle.getPosition())
+ Demangle = !NoDemangle;
+
for (unsigned i = 0; i < ArchFlags.size(); ++i) {
if (ArchFlags[i] == "all") {
ArchAll = true;
OpenPOWER on IntegriCloud