mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:43:36 +01:00
[llvm-objcopy] Changed command line parsing errors
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
This commit is contained in:
parent
59e5483bbc
commit
7ecc098141
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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());
|
||||
@ -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('=');
|
||||
@ -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('=');
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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)
|
||||
@ -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];
|
||||
@ -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();
|
||||
@ -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());
|
||||
@ -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());
|
||||
}
|
||||
|
||||
@ -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)) {
|
||||
@ -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
|
||||
@ -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())
|
||||
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user