From c632086ab80e6cefb5b7e7d0b0bc817c5d5898a4 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Fri, 3 Nov 2017 07:18:21 +0000 Subject: [PATCH] [llvm-nm] Don't error out on multiple occurrances of the -g/--external-only flag 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 | 1 + llvm/tools/llvm-nm/llvm-nm.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/llvm/test/tools/llvm-nm/X86/externalonly.test b/llvm/test/tools/llvm-nm/X86/externalonly.test index c374129..2a1853b 100644 --- a/llvm/test/tools/llvm-nm/X86/externalonly.test +++ b/llvm/test/tools/llvm-nm/X86/externalonly.test @@ -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 diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 1b093f5..8520430 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -85,9 +85,11 @@ cl::alias DefinedOnly2("U", cl::desc("Alias for --defined-only"), cl::aliasopt(DefinedOnly), cl::Grouping); cl::opt 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 BSDFormat("B", cl::desc("Alias for --format=bsd"), cl::Grouping); -- 2.7.4