Skip to content

Commit 0f43677

Browse files
committedFeb 19, 2019
Revert "Revert "[llvm-objdump] Allow short options without arguments to be grouped""
- Tests that use multiple short switches now test them grouped and ungrouped. - Ensure the output of ungrouped and grouped variants is identical Differential Revision: https://reviews.llvm.org/D57904 llvm-svn: 354375
1 parent daf777b commit 0f43677

8 files changed

+55
-25
lines changed
 

‎llvm/test/tools/llvm-objdump/AArch64/macho-fat-arm-disasm.test

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
RUN: llvm-objdump -d -m -no-show-raw-insn -arch all %p/Inputs/fat.macho-armv7s-arm64 | FileCheck %s
1+
RUN: llvm-objdump -d -m -no-show-raw-insn -arch all %p/Inputs/fat.macho-armv7s-arm64 >%t0
2+
RUN: llvm-objdump -dm -no-show-raw-insn -arch all %p/Inputs/fat.macho-armv7s-arm64 >%t1
3+
RUN: cmp %t0 %t1
4+
RUN: FileCheck --input-file %t0 %s
25
REQUIRES: arm-registered-target
36

47
CHECK: (architecture armv7s):

‎llvm/test/tools/llvm-objdump/X86/disasm-specific-funcs.test

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: yaml2obj -o %t.out %p/Inputs/simple-executable-x86_64.yaml
2-
// RUN: llvm-objdump -d %t.out -df=main | FileCheck %s
2+
// RUN: llvm-objdump -d %t.out -disassemble-functions=main | FileCheck %s
33

44
// CHECK: Disassembly of section .anothertext:
55
// CHECK-NEXT: main:
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
// RUN: dsymutil -f -oso-prepend-path=%p/../../dsymutil/ %p/../../dsymutil/Inputs/basic.macho.x86_64 -o %t1.dSYM
2-
// RUN: llvm-objdump -d -g -dsym=%t1.dSYM %p/../../dsymutil/Inputs/basic.macho.x86_64 | FileCheck %s
2+
// RUN: llvm-objdump -d -g -dsym=%t1.dSYM %p/../../dsymutil/Inputs/basic.macho.x86_64 >%t0
3+
// RUN: llvm-objdump -dg -dsym=%t1.dSYM %p/../../dsymutil/Inputs/basic.macho.x86_64 >%t1
4+
// RUN: cmp %t0 %t1
5+
// RUN: FileCheck --input-file %t0 %s
36

47
CHECK: Disassembly of section __TEXT,__text:

‎llvm/test/tools/llvm-objdump/X86/out-of-section-sym.test

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// Check that llvm-objdump does not attempt to disassemble symbols outside
22
// of section boundaries.
3-
// RUN: llvm-objdump -d -t %p/Inputs/out-of-section-sym.elf-i386 | FileCheck %s
3+
// RUN: llvm-objdump -d -t %p/Inputs/out-of-section-sym.elf-i386 >%t0
4+
// RUN: llvm-objdump -dt %p/Inputs/out-of-section-sym.elf-i386 >%t1
5+
// RUN: cmp %t0 %t1
6+
// RUN: FileCheck --input-file %t0 %s
47

58
CHECK: Disassembly of section .text:
69
CHECK-NEXT: _start:

‎llvm/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
; REQUIRES: shell
22
; RUN: sed -e "s,SRC_COMPDIR,%p/Inputs,g" %s > %t.ll
33
; RUN: llc -o %t.o -filetype=obj -mtriple=x86_64-pc-linux %t.ll
4-
; RUN: llvm-objdump -d -l %t.o | FileCheck --check-prefix="LINES" %t.ll
5-
; RUN: llvm-objdump -d -S %t.o | FileCheck --check-prefix="SOURCE" %t.ll
4+
; RUN: llvm-objdump -d -l %t.o >%t0
5+
; RUN: llvm-objdump -dl %t.o >%t1
6+
; RUN: llvm-objdump -d -S %t.o >%t2
7+
; RUN: llvm-objdump -dS %t.o >%t3
8+
; RUN: cmp %t0 %t1
9+
; RUN: cmp %t2 %t3
10+
; RUN: FileCheck --input-file %t0 --check-prefix="LINES" %t.ll
11+
; RUN: FileCheck --input-file %t1 --check-prefix="LINES" %t.ll
12+
; RUN: FileCheck --input-file %t2 --check-prefix="SOURCE" %t.ll
13+
; RUN: FileCheck --input-file %t3 --check-prefix="SOURCE" %t.ll
614
; ModuleID = 'source-interleave-x86_64.bc'
715
source_filename = "source-interleave-x86_64.c"
816
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// RUN: llvm-objdump -afxz %p/Inputs/private-headers-x86_64.elf 2>&1 >%t0
2+
// RUN: llvm-objdump -a -f -x -z %p/Inputs/private-headers-x86_64.elf 2>&1 >%t1
3+
// RUN: cmp %t0 %t1
4+
// RUN: FileCheck --input-file %t0 %s
5+
// CHECK-NOT: Unknown command line argument

‎llvm/tools/llvm-objdump/MachODump.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ using namespace llvm;
5959
using namespace object;
6060

6161
static cl::opt<bool>
62-
UseDbg("g",
62+
UseDbg("g", cl::Grouping,
6363
cl::desc("Print line information from debug info if available"));
6464

6565
static cl::opt<std::string> DSYMFile("dsym",

‎llvm/tools/llvm-objdump/llvm-objdump.cpp

+26-18
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ cl::opt<bool>
7979
llvm::AllHeaders("all-headers",
8080
cl::desc("Display all available header information"));
8181
static cl::alias AllHeadersShort("x", cl::desc("Alias for --all-headers"),
82-
cl::NotHidden, cl::aliasopt(AllHeaders));
82+
cl::NotHidden, cl::Grouping,
83+
cl::aliasopt(AllHeaders));
8384

8485
static cl::list<std::string>
8586
InputFilenames(cl::Positional, cl::desc("<input object files>"),cl::ZeroOrMore);
@@ -88,22 +89,25 @@ cl::opt<bool>
8889
llvm::Disassemble("disassemble",
8990
cl::desc("Display assembler mnemonics for the machine instructions"));
9091
static cl::alias Disassembled("d", cl::desc("Alias for --disassemble"),
91-
cl::NotHidden, cl::aliasopt(Disassemble));
92+
cl::NotHidden, cl::Grouping,
93+
cl::aliasopt(Disassemble));
9294

9395
cl::opt<bool>
9496
llvm::DisassembleAll("disassemble-all",
9597
cl::desc("Display assembler mnemonics for the machine instructions"));
9698
static cl::alias DisassembleAlld("D", cl::desc("Alias for --disassemble-all"),
97-
cl::NotHidden, cl::aliasopt(DisassembleAll));
99+
cl::NotHidden, cl::Grouping,
100+
cl::aliasopt(DisassembleAll));
98101

99102
cl::opt<bool> llvm::Demangle("demangle", cl::desc("Demangle symbols names"),
100103
cl::init(false));
101104

102105
static cl::alias DemangleShort("C", cl::desc("Alias for --demangle"),
103-
cl::NotHidden, cl::aliasopt(llvm::Demangle));
106+
cl::NotHidden, cl::Grouping,
107+
cl::aliasopt(llvm::Demangle));
104108

105109
static cl::list<std::string>
106-
DisassembleFunctions("df",
110+
DisassembleFunctions("disassemble-functions",
107111
cl::CommaSeparated,
108112
cl::desc("List of functions to disassemble"));
109113
static StringSet<> DisasmFuncsSet;
@@ -112,27 +116,27 @@ cl::opt<bool>
112116
llvm::Relocations("reloc",
113117
cl::desc("Display the relocation entries in the file"));
114118
static cl::alias RelocationsShort("r", cl::desc("Alias for --reloc"),
115-
cl::NotHidden,
119+
cl::NotHidden, cl::Grouping,
116120
cl::aliasopt(llvm::Relocations));
117121

118122
cl::opt<bool>
119123
llvm::DynamicRelocations("dynamic-reloc",
120124
cl::desc("Display the dynamic relocation entries in the file"));
121125
static cl::alias DynamicRelocationsd("R", cl::desc("Alias for --dynamic-reloc"),
122-
cl::NotHidden,
126+
cl::NotHidden, cl::Grouping,
123127
cl::aliasopt(DynamicRelocations));
124128

125129
cl::opt<bool>
126130
llvm::SectionContents("full-contents",
127131
cl::desc("Display the content of each section"));
128132
static cl::alias SectionContentsShort("s",
129133
cl::desc("Alias for --full-contents"),
130-
cl::NotHidden,
134+
cl::NotHidden, cl::Grouping,
131135
cl::aliasopt(SectionContents));
132136

133137
cl::opt<bool> llvm::SymbolTable("syms", cl::desc("Display the symbol table"));
134138
static cl::alias SymbolTableShort("t", cl::desc("Alias for --syms"),
135-
cl::NotHidden,
139+
cl::NotHidden, cl::Grouping,
136140
cl::aliasopt(llvm::SymbolTable));
137141

138142
cl::opt<bool>
@@ -157,7 +161,7 @@ llvm::RawClangAST("raw-clang-ast",
157161
static cl::opt<bool>
158162
MachOOpt("macho", cl::desc("Use MachO specific object file parser"));
159163
static cl::alias MachOm("m", cl::desc("Alias for --macho"), cl::NotHidden,
160-
cl::aliasopt(MachOOpt));
164+
cl::Grouping, cl::aliasopt(MachOOpt));
161165

162166
cl::opt<std::string>
163167
llvm::TripleName("triple", cl::desc("Target triple to disassemble for, "
@@ -182,7 +186,7 @@ static cl::alias SectionHeadersShort("headers",
182186
cl::aliasopt(SectionHeaders));
183187
static cl::alias SectionHeadersShorter("h",
184188
cl::desc("Alias for --section-headers"),
185-
cl::NotHidden,
189+
cl::NotHidden, cl::Grouping,
186190
cl::aliasopt(SectionHeaders));
187191

188192
static cl::opt<bool>
@@ -213,7 +217,8 @@ cl::opt<bool>
213217
llvm::UnwindInfo("unwind-info", cl::desc("Display unwind information"));
214218

215219
static cl::alias UnwindInfoShort("u", cl::desc("Alias for --unwind-info"),
216-
cl::NotHidden, cl::aliasopt(UnwindInfo));
220+
cl::NotHidden, cl::Grouping,
221+
cl::aliasopt(UnwindInfo));
217222

218223
cl::opt<bool>
219224
llvm::PrivateHeaders("private-headers",
@@ -226,22 +231,24 @@ llvm::FirstPrivateHeader("private-header",
226231

227232
static cl::alias PrivateHeadersShort("p",
228233
cl::desc("Alias for --private-headers"),
229-
cl::NotHidden,
234+
cl::NotHidden, cl::Grouping,
230235
cl::aliasopt(PrivateHeaders));
231236

232237
cl::opt<bool> llvm::FileHeaders(
233238
"file-headers",
234239
cl::desc("Display the contents of the overall file header"));
235240

236241
static cl::alias FileHeadersShort("f", cl::desc("Alias for --file-headers"),
237-
cl::NotHidden, cl::aliasopt(FileHeaders));
242+
cl::NotHidden, cl::Grouping,
243+
cl::aliasopt(FileHeaders));
238244

239245
cl::opt<bool>
240246
llvm::ArchiveHeaders("archive-headers",
241247
cl::desc("Display archive header information"));
242248

243249
cl::alias ArchiveHeadersShort("a", cl::desc("Alias for --archive-headers"),
244-
cl::NotHidden, cl::aliasopt(ArchiveHeaders));
250+
cl::NotHidden, cl::Grouping,
251+
cl::aliasopt(ArchiveHeaders));
245252

246253
cl::opt<bool>
247254
llvm::PrintImmHex("print-imm-hex",
@@ -260,14 +267,15 @@ cl::opt<bool> PrintSource(
260267
"Display source inlined with disassembly. Implies disassemble object"));
261268

262269
cl::alias PrintSourceShort("S", cl::desc("Alias for -source"), cl::NotHidden,
263-
cl::aliasopt(PrintSource));
270+
cl::Grouping, cl::aliasopt(PrintSource));
264271

265272
cl::opt<bool> PrintLines("line-numbers",
266273
cl::desc("Display source line numbers with "
267274
"disassembly. Implies disassemble object"));
268275

269276
cl::alias PrintLinesShort("l", cl::desc("Alias for -line-numbers"),
270-
cl::NotHidden, cl::aliasopt(PrintLines));
277+
cl::NotHidden, cl::Grouping,
278+
cl::aliasopt(PrintLines));
271279

272280
cl::opt<unsigned long long>
273281
StartAddress("start-address", cl::desc("Disassemble beginning at address"),
@@ -282,7 +290,7 @@ cl::opt<bool> DisassembleZeroes(
282290
cl::desc("Do not skip blocks of zeroes when disassembling"));
283291
cl::alias DisassembleZeroesShort("z",
284292
cl::desc("Alias for --disassemble-zeroes"),
285-
cl::NotHidden,
293+
cl::NotHidden, cl::Grouping,
286294
cl::aliasopt(DisassembleZeroes));
287295

288296
static StringRef ToolName;

0 commit comments

Comments
 (0)
Please sign in to comment.