Skip to content

Commit

Permalink
[llvm-objcopy] Changed command line parsing errors
Browse files Browse the repository at this point in the history
Summary: Tidied up errors during command line parsing to be more consistent with the rest of llvm-objcopy errors.

Reviewers: jhenderson, rupprecht, espindola, alexshap

Reviewed By: jhenderson, rupprecht

Subscribers: emaste, arichardson, MaskRay, llvm-commits, jakehehrlich

Tags: #llvm

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

llvm-svn: 363350
  • Loading branch information
abrachet committed Jun 14, 2019
1 parent 4129e3e commit d54d4f9
Show file tree
Hide file tree
Showing 12 changed files with 35 additions and 35 deletions.
4 changes: 2 additions & 2 deletions llvm/test/tools/llvm-objcopy/ELF/bad-output-format.test
Expand Up @@ -15,5 +15,5 @@ FileHeader:
Type: ET_EXEC
Machine: EM_386

# BAD-OUTPUT-FORMAT: Invalid output format: 'xyz'
# BAD-OUTPUT-FORMAT-BSD: Invalid output format: 'xyz-freebsd'
# BAD-OUTPUT-FORMAT: invalid output format: 'xyz'
# BAD-OUTPUT-FORMAT-BSD: invalid output format: 'xyz-freebsd'
4 changes: 2 additions & 2 deletions llvm/test/tools/llvm-objcopy/ELF/binary-input-error.test
Expand Up @@ -6,5 +6,5 @@
# RUN: not llvm-objcopy -I binary -B xyz %t.txt %t.o 2>&1 \
# RUN: | FileCheck %s --check-prefix=BAD-BINARY-ARCH

# MISSING-BINARY-ARCH: Specified binary input without specifiying an architecture
# BAD-BINARY-ARCH: Invalid architecture: 'xyz'
# MISSING-BINARY-ARCH: specified binary input without specifiying an architecture
# BAD-BINARY-ARCH: invalid architecture: 'xyz'
Expand Up @@ -3,5 +3,5 @@
# RUN: yaml2obj %p/Inputs/compress-debug-sections.yaml -o %t.o
# RUN: not llvm-objcopy --compress-debug-sections=zlib --decompress-debug-sections %t.o 2>&1 | FileCheck %s

# CHECK: Cannot specify --compress-debug-sections at the same time as --decompress-debug-sections at the same time
# CHECK: cannot specify both --compress-debug-sections and --decompress-debug-sections

@@ -1,5 +1,5 @@
# RUN: yaml2obj %p/Inputs/compress-debug-sections.yaml -o %t.o
# RUN: not llvm-objcopy --compress-debug-sections=zlib-fake %t.o 2>&1 | FileCheck %s

# CHECK: Invalid or unsupported --compress-debug-sections format: zlib-fake
# CHECK: invalid or unsupported --compress-debug-sections format: zlib-fake

2 changes: 1 addition & 1 deletion llvm/test/tools/llvm-objcopy/ELF/help-message.test
Expand Up @@ -16,4 +16,4 @@
# OBJCOPY-USAGE: USAGE: llvm-objcopy
# STRIP-USAGE: USAGE: llvm-strip
# UNKNOWN-ARG: unknown argument '{{-+}}abcabc'
# NO-INPUT-FILES: No input file specified
# NO-INPUT-FILES: no input file specified
4 changes: 2 additions & 2 deletions llvm/test/tools/llvm-objcopy/ELF/redefine-symbol.test
Expand Up @@ -88,8 +88,8 @@ Symbols:
#CHECK-NEXT: Section: .text
#CHECK-NEXT: }

#BAD-FORMAT: Bad format for --redefine-sym
#MULTIPLE-REDEFINITION: Multiple redefinition of symbol foo
#BAD-FORMAT: bad format for --redefine-sym
#MULTIPLE-REDEFINITION: multiple redefinition of symbol 'foo'
#MISSING-SYM-NAME: error: {{.*}}.rename.txt:2: missing new symbol name
#NO-FILE: error: '{{.*}}.rename-none.txt': {{[Nn]}}o such file or directory

Expand Down
2 changes: 1 addition & 1 deletion llvm/test/tools/llvm-objcopy/ELF/rename-section-flag.test
Expand Up @@ -95,4 +95,4 @@ Sections:
# WRITE-NEXT: SHF_WRITE (0x1)
# CHECK-NEXT: ]

# BAD-FLAG: Unrecognized section flag 'xyzzy'. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings
# BAD-FLAG: unrecognized section flag 'xyzzy'. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings
4 changes: 2 additions & 2 deletions llvm/test/tools/llvm-objcopy/ELF/rename-section.test
Expand Up @@ -26,5 +26,5 @@ Sections:
# CHECK: Name: .strtab
# CHECK: Name: .shstrtab

#BAD-FORMAT: Bad format for --rename-section: missing '='
#MULTIPLE-RENAMES: Multiple renames of section .foo
#BAD-FORMAT: bad format for --rename-section: missing '='
#MULTIPLE-RENAMES: multiple renames of section '.foo'
6 changes: 3 additions & 3 deletions llvm/test/tools/llvm-objcopy/ELF/set-section-flags.test
Expand Up @@ -117,7 +117,7 @@ Sections:
# WRITE-NEXT: SHF_WRITE (0x1)
# CHECK-NEXT: ]

# BAD-FORMAT: Bad format for --set-section-flags: missing '='
# MULTIPLE-SETS: --set-section-flags set multiple times for section .foo
# BAD-FORMAT: bad format for --set-section-flags: missing '='
# MULTIPLE-SETS: --set-section-flags set multiple times for section '.foo'

# BAD-FLAG: Unrecognized section flag 'xyzzy'. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings
# BAD-FLAG: unrecognized section flag 'xyzzy'. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings
2 changes: 1 addition & 1 deletion llvm/test/tools/llvm-objcopy/ELF/strip-multiple-files.test
Expand Up @@ -71,4 +71,4 @@ Symbols:
# CHECK-NEXT: }
# CHECK-NEXT: ]

# BAD-O-FLAG: Multiple input files cannot be used in combination with -o
# BAD-O-FLAG: multiple input files cannot be used in combination with -o
34 changes: 17 additions & 17 deletions llvm/tools/llvm-objcopy/CopyConfig.cpp
Expand Up @@ -118,7 +118,7 @@ parseSectionFlagSet(ArrayRef<StringRef> SectionFlags) {
if (ParsedFlag == SectionFlag::SecNone)
return createStringError(
errc::invalid_argument,
"Unrecognized section flag '%s'. Flags supported for GNU "
"unrecognized section flag '%s'. Flags supported for GNU "
"compatibility: alloc, load, noload, readonly, debug, code, data, "
"rom, share, contents, merge, strings",
Flag.str().c_str());
Expand All @@ -131,7 +131,7 @@ parseSectionFlagSet(ArrayRef<StringRef> SectionFlags) {
static Expected<SectionRename> parseRenameSectionValue(StringRef FlagValue) {
if (!FlagValue.contains('='))
return createStringError(errc::invalid_argument,
"Bad format for --rename-section: missing '='");
"bad format for --rename-section: missing '='");

// Initial split: ".foo" = ".bar,f1,f2,..."
auto Old2New = FlagValue.split('=');
Expand All @@ -158,7 +158,7 @@ static Expected<SectionFlagsUpdate>
parseSetSectionFlagValue(StringRef FlagValue) {
if (!StringRef(FlagValue).contains('='))
return createStringError(errc::invalid_argument,
"Bad format for --set-section-flags: missing '='");
"bad format for --set-section-flags: missing '='");

// Initial split: ".foo" = "f1,f2,..."
auto Section2Flags = StringRef(FlagValue).split('=');
Expand Down Expand Up @@ -272,7 +272,7 @@ static Expected<const MachineInfo &> getMachineInfo(StringRef Arch) {
auto Iter = ArchMap.find(Arch);
if (Iter == std::end(ArchMap))
return createStringError(errc::invalid_argument,
"Invalid architecture: '%s'", Arch.str().c_str());
"invalid architecture: '%s'", Arch.str().c_str());
return Iter->getValue();
}

Expand Down Expand Up @@ -314,7 +314,7 @@ static Expected<MachineInfo> getOutputFormatMachineInfo(StringRef Format) {
auto Iter = OutputFormatMap.find(Format);
if (Iter == std::end(OutputFormatMap))
return createStringError(errc::invalid_argument,
"Invalid output format: '%s'",
"invalid output format: '%s'",
OriginalFormat.str().c_str());
MachineInfo MI = Iter->getValue();
if (IsFreeBSD)
Expand Down Expand Up @@ -424,11 +424,11 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
Positional.push_back(Arg->getValue());

if (Positional.empty())
return createStringError(errc::invalid_argument, "No input file specified");
return createStringError(errc::invalid_argument, "no input file specified");

if (Positional.size() > 2)
return createStringError(errc::invalid_argument,
"Too many positional arguments");
"too many positional arguments");

CopyConfig Config;
Config.InputFilename = Positional[0];
Expand All @@ -453,7 +453,7 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
if (BinaryArch.empty())
return createStringError(
errc::invalid_argument,
"Specified binary input without specifiying an architecture");
"specified binary input without specifiying an architecture");
Expected<const MachineInfo &> MI = getMachineInfo(BinaryArch);
if (!MI)
return MI.takeError();
Expand Down Expand Up @@ -481,7 +481,7 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
if (Config.CompressionType == DebugCompressionType::None)
return createStringError(
errc::invalid_argument,
"Invalid or unsupported --compress-debug-sections format: %s",
"invalid or unsupported --compress-debug-sections format: %s",
InputArgs.getLastArgValue(OBJCOPY_compress_debug_sections_eq)
.str()
.c_str());
Expand Down Expand Up @@ -526,11 +526,11 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
for (auto Arg : InputArgs.filtered(OBJCOPY_redefine_symbol)) {
if (!StringRef(Arg->getValue()).contains('='))
return createStringError(errc::invalid_argument,
"Bad format for --redefine-sym");
"bad format for --redefine-sym");
auto Old2New = StringRef(Arg->getValue()).split('=');
if (!Config.SymbolsToRename.insert(Old2New).second)
return createStringError(errc::invalid_argument,
"Multiple redefinition of symbol %s",
"multiple redefinition of symbol '%s'",
Old2New.first.str().c_str());
}

Expand All @@ -546,7 +546,7 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
return SR.takeError();
if (!Config.SectionsToRename.try_emplace(SR->OriginalName, *SR).second)
return createStringError(errc::invalid_argument,
"Multiple renames of section %s",
"multiple renames of section '%s'",
SR->OriginalName.str().c_str());
}
for (auto Arg : InputArgs.filtered(OBJCOPY_set_section_flags)) {
Expand All @@ -557,7 +557,7 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
if (!Config.SetSectionFlags.try_emplace(SFU->Name, *SFU).second)
return createStringError(
errc::invalid_argument,
"--set-section-flags set multiple times for section %s",
"--set-section-flags set multiple times for section '%s'",
SFU->Name.str().c_str());
}
// Prohibit combinations of --set-section-flags when the section name is used
Expand Down Expand Up @@ -693,8 +693,8 @@ Expected<DriverConfig> parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
Config.CompressionType != DebugCompressionType::None) {
return createStringError(
errc::invalid_argument,
"Cannot specify --compress-debug-sections at the same time as "
"--decompress-debug-sections at the same time");
"cannot specify both --compress-debug-sections and "
"--decompress-debug-sections");
}

if (Config.DecompressDebugSections && !zlib::isAvailable())
Expand Down Expand Up @@ -744,12 +744,12 @@ Expected<DriverConfig> parseStripOptions(ArrayRef<const char *> ArgsArr) {
Positional.push_back(Arg->getValue());

if (Positional.empty())
return createStringError(errc::invalid_argument, "No input file specified");
return createStringError(errc::invalid_argument, "no input file specified");

if (Positional.size() > 1 && InputArgs.hasArg(STRIP_output))
return createStringError(
errc::invalid_argument,
"Multiple input files cannot be used in combination with -o");
"multiple input files cannot be used in combination with -o");

CopyConfig Config;
bool UseRegexp = InputArgs.hasArg(STRIP_regex);
Expand Down
4 changes: 2 additions & 2 deletions llvm/tools/llvm-objcopy/llvm-objcopy.cpp
Expand Up @@ -53,7 +53,7 @@ namespace objcopy {
StringRef ToolName;

LLVM_ATTRIBUTE_NORETURN void error(Twine Message) {
WithColor::error(errs(), ToolName) << Message << ".\n";
WithColor::error(errs(), ToolName) << Message << "\n";
errs().flush();
exit(1);
}
Expand Down Expand Up @@ -154,7 +154,7 @@ static Error executeObjcopyOnBinary(const CopyConfig &Config,
return macho::executeObjcopyOnBinary(Config, *MachOBinary, Out);
else
return createStringError(object_error::invalid_file_type,
"Unsupported object file format");
"unsupported object file format");
}

static Error executeObjcopyOnArchive(const CopyConfig &Config,
Expand Down

0 comments on commit d54d4f9

Please sign in to comment.