This is an archive of the discontinued LLVM Phabricator instance.

[FileCheck] Annotate input dump (3/7)
ClosedPublic

Authored by jdenny on Oct 30 2018, 2:09 PM.

Details

Summary

This patch implements input annotations for diagnostics that report
wrong-line matches for the directives CHECK-NEXT, CHECK-SAME, and
CHECK-EMPTY. Instead of the usual ^~~, which is used by later
patches for good matches, these annotations use !~~ to mark the bad
match ranges so that this category of errors is visually distinct.
Because such matches are errors, these annotates are red when colors
are enabled.

For example:

$ FileCheck -dump-input=help
The following description was requested by -dump-input=help to
explain the input annotations printed by -dump-input=always and
-dump-input=fail:

  - L:     labels line number L of the input file
  - T:L    labels the only match result for a pattern of type T from line L of
           the check file
  - T:L'N  labels the Nth match result for a pattern of type T from line L of
           the check file
  - !~~    marks bad match, such as:
           - CHECK-NEXT on same line as previous match (error)
  - X~~    marks search range when no match is found, such as:
           - CHECK-NEXT not found (error)
  - ?      marks fuzzy match when no match is found
  - colors error, fuzzy match

If you are not seeing color above or in input dumps, try: -color

$ FileCheck -v -dump-input=always check2 < input2 |& sed -n '/^<<<</,$p'
<<<<<<
        1: foo bar
next:2         !~~ error: match on wrong line
>>>>>>

$ cat check2
CHECK: foo
CHECK-NEXT: bar

$ cat input2
foo bar

Diff Detail

Repository
rL LLVM

Event Timeline

jdenny created this revision.Oct 30 2018, 2:09 PM
jdenny updated this revision to Diff 173046.Nov 7 2018, 3:13 PM

Rebased onto updated patches earlier in series.

jdenny updated this revision to Diff 174786.Nov 20 2018, 8:51 AM

Update for changes earlier in patch series.

jdenny updated this revision to Diff 176898.Dec 5 2018, 4:43 PM
jdenny edited the summary of this revision. (Show Details)
jdenny set the repository for this revision to rL LLVM.

Propagate changes started earlier in patch series.

jdenny updated this revision to Diff 177383.Dec 7 2018, 10:14 PM
jdenny edited the summary of this revision. (Show Details)

Continue changes started earlier in patch series.

probinson accepted this revision.Dec 12 2018, 10:48 AM

Comment issue, otherwise LGTM.

llvm/include/llvm/Support/FileCheck.h
167 ↗(On Diff #177383)

Comments should be proper sentences.

This revision is now accepted and ready to land.Dec 12 2018, 10:48 AM
jdenny updated this revision to Diff 177940.Dec 12 2018, 3:11 PM
jdenny set the repository for this revision to rL LLVM.

Adjust comment, as suggested by probinson.

jdenny marked an inline comment as done.Dec 12 2018, 3:19 PM
This revision was automatically updated to reflect the committed changes.