[llvm-nm] Don't error out on multiple occurrances of the -g/--external-only flag
authorMartin Storsjo <martin@martin.st>
Fri, 3 Nov 2017 07:18:21 +0000 (07:18 +0000)
committerMartin Storsjo <martin@martin.st>
Fri, 3 Nov 2017 07:18:21 +0000 (07:18 +0000)
GNU binutils nm doesn't error out on this, and some projects' build
systems can end up doing that in some cases. Allowing that seems like
a better target than trying to avoid user projects passing multiple
-g parameters to $NM.

Differential Revision: https://reviews.llvm.org/D39539

llvm-svn: 317301

llvm/test/tools/llvm-nm/X86/externalonly.test
llvm/tools/llvm-nm/llvm-nm.cpp

index c374129..2a1853b 100644 (file)
@@ -1,4 +1,5 @@
 # RUN: llvm-nm -g %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+# RUN: llvm-nm -g -g %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
 
 # CHECK-NOT: EH_frame0
 # CHECK: _main
index 1b093f5..8520430 100644 (file)
@@ -85,9 +85,11 @@ cl::alias DefinedOnly2("U", cl::desc("Alias for --defined-only"),
                        cl::aliasopt(DefinedOnly), cl::Grouping);
 
 cl::opt<bool> ExternalOnly("extern-only",
-                           cl::desc("Show only external symbols"));
+                           cl::desc("Show only external symbols"),
+                           cl::ZeroOrMore);
 cl::alias ExternalOnly2("g", cl::desc("Alias for --extern-only"),
-                        cl::aliasopt(ExternalOnly), cl::Grouping);
+                        cl::aliasopt(ExternalOnly), cl::Grouping,
+                        cl::ZeroOrMore);
 
 cl::opt<bool> BSDFormat("B", cl::desc("Alias for --format=bsd"),
                         cl::Grouping);