diff --git a/llvm/test/tools/llvm-objcopy/grouped-options.test b/llvm/test/tools/llvm-objcopy/grouped-options.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-objcopy/grouped-options.test @@ -0,0 +1,47 @@ +# RUN: yaml2obj %s -o %t +# RUN: llvm-strip -S -x -o %t-separated %t +# RUN: llvm-strip -Sx -o %t-grouped %t +# RUN: cmp %t-separated %t-grouped + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .debugGlobal + Type: SHT_PROGBITS + Content: "00000000" + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + Address: 0x1000 + AddressAlign: 0x0000000000000010 + Size: 64 +Symbols: + - Name: Local + Type: STT_FUNC + Section: .text + Value: 0x1000 + Size: 8 + - Name: LocalSection + Type: STT_SECTION + Section: .text + - Name: LocalFile + Type: STT_FILE + - Name: Global + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1010 + Binding: STB_GLOBAL + - Name: Weak + Type: STT_FUNC + Size: 8 + Section: .text + Value: 0x1008 + - Name: debugGlobal + Section: .debugGlobal + Binding: STB_GLOBAL + diff --git a/llvm/tools/llvm-objcopy/ConfigManager.cpp b/llvm/tools/llvm-objcopy/ConfigManager.cpp --- a/llvm/tools/llvm-objcopy/ConfigManager.cpp +++ b/llvm/tools/llvm-objcopy/ConfigManager.cpp @@ -1242,6 +1242,7 @@ DashDash = std::next(DashDash); StripOptTable T; + T.setGroupedShortOptions(true); unsigned MissingArgumentIndex, MissingArgumentCount; llvm::opt::InputArgList InputArgs = T.ParseArgs(ArgsArr, MissingArgumentIndex, MissingArgumentCount);