mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 05:32:25 +00:00
FileCheck: fix a bug with multiple --check-prefix options.
Summary: This fixes a subtle bug in new FileCheck feature added in r194343. When we search for the first satisfying check-prefix, we should actually return the first encounter of some check-prefix as a substring, even if it's not a part of valid check-line. Otherwise "FileCheck --check-prefix=FOO --check-prefix=BAR" with check file: FOO not a vaild check-line FOO: foo BAR: bar incorrectly accepted file: fog bar as it skipped the first two encounters of FOO, matching only BAR: line. Reviewers: arsenm, dsanders Reviewed By: dsanders CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2166 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194565 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8b99622b9b
commit
7df6641654
10
test/FileCheck/check-multiple-prefixes-nomatch.txt
Normal file
10
test/FileCheck/check-multiple-prefixes-nomatch.txt
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: not FileCheck -input-file %s %s -check-prefix=FOO -check-prefix=BAR 2>&1 | FileCheck %s
|
||||
|
||||
BAR
|
||||
bar
|
||||
foo
|
||||
; BAR: ba{{z}}
|
||||
; FOO: fo{{o}}
|
||||
|
||||
; CHECK: {{error: expected string not found in input}}
|
||||
; CHECK-NEXT: {{B}}AR: ba{{[{][{]z[}][}]}}
|
@ -794,12 +794,12 @@ static StringRef FindFirstCandidateMatch(StringRef &Buffer,
|
||||
continue;
|
||||
|
||||
Check::CheckType Ty = FindCheckType(Rest, Prefix);
|
||||
if (Ty == Check::CheckNone)
|
||||
continue;
|
||||
|
||||
FirstLoc = PrefixLoc;
|
||||
FirstTy = Ty;
|
||||
FirstPrefix = Prefix;
|
||||
// We've found the first matching check prefix. If it is invalid, we should
|
||||
// continue the search after it.
|
||||
FirstPrefix = (Ty == Check::CheckNone) ? "" : Prefix;
|
||||
}
|
||||
|
||||
if (FirstPrefix.empty()) {
|
||||
|
Loading…
Reference in New Issue
Block a user