summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorMichael Trent <mtrent@apple.com>2019-05-18 03:17:27 +0000
committerMichael Trent <mtrent@apple.com>2019-05-18 03:17:27 +0000
commit07c96ebd94422f1259f048cb9607ffefb183b970 (patch)
treef50d9a0fc31773bdbf25415feffd50e3de92936f /llvm/tools/llvm-nm/llvm-nm.cpp
parented2ad77ccb00d546dc3163d5a2722a3752972508 (diff)
downloadbcm5719-llvm-07c96ebd94422f1259f048cb9607ffefb183b970.tar.gz
bcm5719-llvm-07c96ebd94422f1259f048cb9607ffefb183b970.zip
Update llvm-nm -s to use a multi-var option
Summary: Previously llvm-nm relied on a positional parameter to read two values into the SegSect list. This worked, but required the "-s" paramater and its arguments to be the last elements on the command-line. The CommandLine library now supports mutli-var parameters, so it can naturally deal with "-s" expecting two arguments, and now the input file can appear anywhere (within reason) in the command line invocation. E.g. llvm-nm -s __TEXT __text /bin/ls llvm-nm /bin/ls -s __TEXT __text rdar://27284011 Reviewers: lhames, pete Reviewed By: pete Subscribers: rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62070 llvm-svn: 361091
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r--llvm/tools/llvm-nm/llvm-nm.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index f427f376497..f21978d50cc 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -183,12 +183,7 @@ cl::alias JustSymbolNames("j", cl::desc("Alias for --just-symbol-name"),
cl::opt<bool> SpecialSyms("special-syms",
cl::desc("No-op. Used for GNU compatibility only"));
-// FIXME: This option takes exactly two strings and should be allowed anywhere
-// on the command line. Such that "llvm-nm -s __TEXT __text foo.o" would work.
-// But that does not as the CommandLine Library does not have a way to make
-// this work. For now the "-s __TEXT __text" has to be last on the command
-// line.
-cl::list<std::string> SegSect("s", cl::Positional, cl::ZeroOrMore,
+cl::list<std::string> SegSect("s", cl::multi_val(2), cl::ZeroOrMore,
cl::value_desc("segment section"), cl::Hidden,
cl::desc("Dump only symbols from this segment "
"and section name, Mach-O only"),
OpenPOWER on IntegriCloud