diff --git a/clang-tools-extra/test/pp-trace/pp-trace-filter.cpp b/clang-tools-extra/test/pp-trace/pp-trace-filter.cpp index 1cd2ce7ef14d7..8f090ab0bb79a 100644 --- a/clang-tools-extra/test/pp-trace/pp-trace-filter.cpp +++ b/clang-tools-extra/test/pp-trace/pp-trace-filter.cpp @@ -14,4 +14,4 @@ int i = M; // CHECK-NOT: - Callback: EndOfMainFile // CHECK: ... -// INVALID: error: invalid glob pattern: [ +// INVALID: error: invalid glob pattern, unmatched '[' diff --git a/lld/Common/Strings.cpp b/lld/Common/Strings.cpp index db22c06eb17e2..41cbbf36f38cb 100644 --- a/lld/Common/Strings.cpp +++ b/lld/Common/Strings.cpp @@ -27,7 +27,7 @@ SingleStringMatcher::SingleStringMatcher(StringRef Pattern) { } else { Expected Glob = GlobPattern::create(Pattern); if (!Glob) { - error(toString(Glob.takeError())); + error(toString(Glob.takeError()) + ": " + Pattern); return; } ExactMatch = false; diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 8ce2f481f2df6..1759598b6d970 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -1114,7 +1114,7 @@ static bool remapInputs(StringRef line, const Twine &location) { else if (Expected pat = GlobPattern::create(fields[0])) config->remapInputsWildcards.emplace_back(std::move(*pat), fields[1]); else { - error(location + ": " + toString(pat.takeError())); + error(location + ": " + toString(pat.takeError()) + ": " + fields[0]); return true; } return false; @@ -1415,7 +1415,7 @@ static void readConfigs(opt::InputArgList &args) { else if (Expected pat = GlobPattern::create(kv.first)) config->shuffleSections.emplace_back(std::move(*pat), uint32_t(v)); else - error(errPrefix + toString(pat.takeError())); + error(errPrefix + toString(pat.takeError()) + ": " + kv.first); } auto reports = {std::make_pair("bti-report", &config->zBtiReport), @@ -1453,7 +1453,7 @@ static void readConfigs(opt::InputArgList &args) { else if (Expected pat = GlobPattern::create(kv.first)) config->deadRelocInNonAlloc.emplace_back(std::move(*pat), v); else - error(errPrefix + toString(pat.takeError())); + error(errPrefix + toString(pat.takeError()) + ": " + kv.first); } cl::ResetAllOptionOccurrences(); @@ -1610,7 +1610,8 @@ static void readConfigs(opt::InputArgList &args) { if (Expected pat = GlobPattern::create(pattern)) config->warnBackrefsExclude.push_back(std::move(*pat)); else - error(arg->getSpelling() + ": " + toString(pat.takeError())); + error(arg->getSpelling() + ": " + toString(pat.takeError()) + ": " + + pattern); } // For -no-pie and -pie, --export-dynamic-symbol specifies defined symbols @@ -1968,7 +1969,7 @@ static void handleUndefined(Symbol *sym, const char *option) { static void handleUndefinedGlob(StringRef arg) { Expected pat = GlobPattern::create(arg); if (!pat) { - error("--undefined-glob: " + toString(pat.takeError())); + error("--undefined-glob: " + toString(pat.takeError()) + ": " + arg); return; } diff --git a/lld/test/ELF/dead-reloc-in-nonalloc.s b/lld/test/ELF/dead-reloc-in-nonalloc.s index 9e93a0cf32afd..3857ead6e55d0 100644 --- a/lld/test/ELF/dead-reloc-in-nonalloc.s +++ b/lld/test/ELF/dead-reloc-in-nonalloc.s @@ -46,7 +46,7 @@ # RUN: not ld.lld -z dead-reloc-in-nonalloc='['=0 2>&1 | FileCheck %s --check-prefix=INVALID -# INVALID: error: -z dead-reloc-in-nonalloc=: invalid glob pattern: [ +# INVALID: error: -z dead-reloc-in-nonalloc=: invalid glob pattern, unmatched '[': [ .globl _start _start: diff --git a/lld/test/ELF/remap-inputs.test b/lld/test/ELF/remap-inputs.test index 8a2d2e9891064..0f9cafa987ac9 100644 --- a/lld/test/ELF/remap-inputs.test +++ b/lld/test/ELF/remap-inputs.test @@ -31,7 +31,7 @@ # RUN: not ld.lld --remap-inputs-file=err2.map aa.o -o /dev/null 2>&1 | \ # RUN: FileCheck %s --check-prefix=ERR2 --implicit-check-not=error: -# ERR2: error: err2.map:1: invalid glob pattern: aa.[o +# ERR2: error: err2.map:1: invalid glob pattern, unmatched '[': aa.[o # ERR2-NEXT: error: cannot open aa.o: {{.*}} # RUN: not ld.lld --remap-inputs=aa.o aa.o -o /dev/null 2>&1 | \ diff --git a/lld/test/ELF/shuffle-sections.s b/lld/test/ELF/shuffle-sections.s index 6328035e0584b..21c79eab950d6 100644 --- a/lld/test/ELF/shuffle-sections.s +++ b/lld/test/ELF/shuffle-sections.s @@ -52,7 +52,7 @@ # RUN: not ld.lld --shuffle-sections='['=0 2>&1 | FileCheck %s --check-prefix=INVALID -# INVALID: error: --shuffle-sections=: invalid glob pattern: [ +# INVALID: error: --shuffle-sections=: invalid glob pattern, unmatched '[': [ ## .text has an alignment of 4. .global _start diff --git a/lld/test/ELF/undefined-glob.s b/lld/test/ELF/undefined-glob.s index f6d692acf2ebf..22df4aeee2b95 100644 --- a/lld/test/ELF/undefined-glob.s +++ b/lld/test/ELF/undefined-glob.s @@ -52,7 +52,7 @@ # RUN: not ld.lld -o /dev/null %t.o %t.a --undefined-glob '[' 2>&1 | \ # RUN: FileCheck -check-prefix=BAD-PATTERN %s -# BAD-PATTERN: --undefined-glob: invalid glob pattern: [ +# BAD-PATTERN: --undefined-glob: invalid glob pattern, unmatched '[': [ .globl _start _start: diff --git a/lld/test/ELF/version-script-complex-wildcards.s b/lld/test/ELF/version-script-complex-wildcards.s index 233c4b1fdd904..c58fb54bcb072 100644 --- a/lld/test/ELF/version-script-complex-wildcards.s +++ b/lld/test/ELF/version-script-complex-wildcards.s @@ -48,7 +48,7 @@ # RUN: echo "FOO { global: extern \"C++\" { a[; }; };" > %t9.script # RUN: not ld.lld --version-script %t9.script -shared %t.o -o /dev/null 2>&1 \ # RUN: | FileCheck %s --check-prefix=ERROR -# ERROR: invalid glob pattern: a[ +# ERROR: invalid glob pattern, unmatched '[': a[ .text .globl _Z3abbi diff --git a/lld/test/ELF/warn-backrefs.s b/lld/test/ELF/warn-backrefs.s index 483ef8a2decef..1e5c14ed052e6 100644 --- a/lld/test/ELF/warn-backrefs.s +++ b/lld/test/ELF/warn-backrefs.s @@ -101,7 +101,7 @@ # RUN: ld.lld --fatal-warnings --warn-backrefs -u foo %t2.a %t1.o -o /dev/null # RUN: not ld.lld --warn-backrefs-exclude='[' 2>&1 | FileCheck --check-prefix=INVALID %s -# INVALID: error: --warn-backrefs-exclude: invalid glob pattern: [ +# INVALID: error: --warn-backrefs-exclude: invalid glob pattern, unmatched '[': [ .globl _start, foo _start: diff --git a/llvm/lib/Support/GlobPattern.cpp b/llvm/lib/Support/GlobPattern.cpp index 0de69153cc689..74e9bc88de472 100644 --- a/llvm/lib/Support/GlobPattern.cpp +++ b/llvm/lib/Support/GlobPattern.cpp @@ -62,7 +62,6 @@ Expected GlobPattern::create(StringRef S) { Pat.Prefix = S.substr(0, PrefixSize); if (PrefixSize == std::string::npos) return Pat; - StringRef Original = S; S = S.substr(PrefixSize); // Parse brackets. @@ -74,7 +73,7 @@ Expected GlobPattern::create(StringRef S) { ++I; size_t J = S.find(']', I + 1); if (J == StringRef::npos) - return make_error("invalid glob pattern: " + Original, + return make_error("invalid glob pattern, unmatched '['", errc::invalid_argument); StringRef Chars = S.substr(I, J - I); bool Invert = S[I] == '^' || S[I] == '!'; diff --git a/llvm/test/tools/llvm-ifs/exclude.test b/llvm/test/tools/llvm-ifs/exclude.test index 78789486bc8d5..c55c9540a5ab1 100644 --- a/llvm/test/tools/llvm-ifs/exclude.test +++ b/llvm/test/tools/llvm-ifs/exclude.test @@ -11,7 +11,7 @@ # RUN: not llvm-ifs --input-format=IFS --output-ifs=- --exclude='[' %s 2>&1 | \ # RUN: FileCheck %s --check-prefix=BAD-GLOB -# BAD-GLOB: error: invalid glob pattern: [ +# BAD-GLOB: error: invalid glob pattern, unmatched '[' --- !ifs-v1 SoName: somelib.so diff --git a/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test b/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test index 67f7f0b273c98..0eca56a95e999 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test +++ b/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test @@ -131,7 +131,7 @@ Sections: Type: SHT_PROGBITS Symbols: [] -# WARN: warning: invalid glob pattern: ][] +# WARN: warning: invalid glob pattern, unmatched '[' # CHECK: LoadName: # CHECK: Name: (0)