[PATCH] D96653: [FileCheck] Add neighboring annotations for -dump-input-filter=error
    Thomas Preud'homme via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Feb 26 07:36:52 PST 2021
    
    
  
thopre added a comment.
In D96653#2590252 <https://reviews.llvm.org/D96653#2590252>, @jdenny wrote:
> In D96653#2589769 <https://reviews.llvm.org/D96653#2589769>, @thopre wrote:
>
>> Though I agree with the problem of special casing, I'd like to add that the disctinction between positive and negative match directives will be needed for supporting numeric substitution block using a variable defined on the same directive.
>
> I don't follow.  I might have missed a discussion.  Could you provide a quick example?
I was referring to https://lists.llvm.org/pipermail/llvm-dev/2020-June/142188.html . We already have a distinction between positive and negative match since we do PrintMatch or PrintNoMatch depending on that.
>> Regarding CHECK-LABEL, can't we have a data structure that allow browsing annotation by start line/point and end line/point? Is the position of CHECK-LABEL annotations in the list of annotation an artifact of how CHECK-LABEL are processed or is there a need for those annotation to be before another directive starting on the next line?
>
> The former.  D77607 <https://reviews.llvm.org/D77607> caused this.  I still feel like D77607 <https://reviews.llvm.org/D77607> is generally right.  The strange part to me is that a preceding directive's search range ends at the end of the CHECK-LABEL match.  It seems like it ought to end at the start of the CHECK-LABEL match.  `-dump-input` reveals that CHECK-LABEL behavior is odd:
>
>   $ cat input 
>   foo
>   
>   $ cat check 
>   CHECK: foo
>   CHECK-LABEL: foo
>   
>   $ FileCheck -vv check < input |& tail -6
>   <<<<<<
>            1: foo
>   label:2     ^~~
>   check:1     ^~~
>   label:2        X error: no match found
>   >>>>>>
>
> Per input line, annotations are sorted by time.  The CHECK-LABEL matches first.  Then the CHECK matches the same text.  Then CHECK-LABEL runs again and fails.  I suppose the reason for this behavior is to catch poorly chosen labels.
>
> Hopefully you see the value of D77607 <https://reviews.llvm.org/D77607>'s sort by time: it make the FileCheck behavior clearer even when that behavior is odd.
Ah yes that makes sense. Might be worth seaching why CHECK-NOT range ends at the end of the first line of the next CHECK-LABEL. Even if that were changed I do think focusing on search range rather than neighbouring annotations makes more sense.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96653/new/
https://reviews.llvm.org/D96653
    
    
More information about the llvm-commits
mailing list