; Because -dump-input-filter=error includes a failed directive's search range,
; input lines 1 and 62 below are revealed, and -dump-input-context=2 reveals the
; surrounding lines.  Even with only line 1, it looks like the host list
; includes a GPU triple.  Line 62 and its context reveals we have an
; accidentally nested list.  Often the key to understanding a CHECK-NOT failure
; is where the directives before and after it matched because those establish
; the search range.

RUN: rm -rf %t
RUN: split-file %s %t

RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input-context=2 -v %t/check.txt < %t/input.txt \
RUN:               -dump-input-filter=error 2>&1 | \
RUN:   FileCheck %s -match-full-lines -check-prefix=DMP

     DMP:<<<<<<
DMP-NEXT:         1: <triples kind="host"> 
DMP-NEXT:check:1     ^~~~~~~~~~~~~~~~~~~~~
DMP-NEXT:not:2'0                         {   search range start (exclusive)
DMP-NEXT:         2:  x86_64-linux-gnu 
DMP-NEXT:         3:  x86_64-unknown-linux-gnu 
DMP-NEXT:         .
DMP-NEXT:         .
DMP-NEXT:         .
DMP-NEXT:        42:  x86_64-amazon-linux 
DMP-NEXT:        43:  x86_64-linux-android 
DMP-NEXT:        44:  nvptx64-nvidia-cuda 
DMP-NEXT:not:2'1      !~~~~~~~~~~~~~~~~~~   error: no match expected
DMP-NEXT:        45:  i686-linux-gnu 
DMP-NEXT:        46:  i686-pc-linux-gnu 
DMP-NEXT:         .
DMP-NEXT:         .
DMP-NEXT:         .
DMP-NEXT:        59:  i486-gnu 
DMP-NEXT:        60:  i586-gnu 
DMP-NEXT:        61:  i686-gnu 
DMP-NEXT:not:2'2               } search range end (exclusive)
DMP-NEXT:        62: </triples> 
DMP-NEXT:check:3     ^~~~~~~~~~
DMP-NEXT:        63: </triples> 
DMP-NEXT:>>>>>>

;--- check.txt
CHECK: <triples kind="host">
CHECK-NOT: nvptx64-nvidia-cuda
CHECK: </triples>

;--- input.txt
<triples kind="host">
  x86_64-linux-gnu
  x86_64-unknown-linux-gnu
  x86_64-pc-linux-gnu
  x86_64-redhat-linux6E
  x86_64-redhat-linux
  x86_64-suse-linux
  x86_64-manbo-linux-gnu
  x86_64-linux-gnu
  x86_64-slackware-linux
  x86_64-unknown-linux
  x86_64-amazon-linux
  x86_64-linux-android
  i686-linux-gnu
  i686-pc-linux-gnu
  i486-linux-gnu
  i386-linux-gnu
  i386-redhat-linux6E
  i686-redhat-linux
  i586-redhat-linux
  i386-redhat-linux
  i586-suse-linux
  i486-slackware-linux
  i686-montavista-linux
  i586-linux-gnu
  i686-linux-android
  i386-gnu
  i486-gnu
  i586-gnu
  i686-gnu
<triples kind="offload">
  x86_64-linux-gnu
  x86_64-unknown-linux-gnu
  x86_64-pc-linux-gnu
  x86_64-redhat-linux6E
  x86_64-redhat-linux
  x86_64-suse-linux
  x86_64-manbo-linux-gnu
  x86_64-linux-gnu
  x86_64-slackware-linux
  x86_64-unknown-linux
  x86_64-amazon-linux
  x86_64-linux-android
  nvptx64-nvidia-cuda
  i686-linux-gnu
  i686-pc-linux-gnu
  i486-linux-gnu
  i386-linux-gnu
  i386-redhat-linux6E
  i686-redhat-linux
  i586-redhat-linux
  i386-redhat-linux
  i586-suse-linux
  i486-slackware-linux
  i686-montavista-linux
  i586-linux-gnu
  i686-linux-android
  i386-gnu
  i486-gnu
  i586-gnu
  i686-gnu
</triples>
</triples>
