1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/FileCheck/match-time-error-propagation/invalid-expected-pattern.txt
Thomas Preud'homme 2c0468b550 Fix PR46880: Fail CHECK-NOT with undefined variable
Currently a CHECK-NOT directive succeeds whenever the corresponding
match fails. However match can fail due to an error rather than a lack
of match, for instance if a variable is undefined. This commit makes match
error a failure for CHECK-NOT.

Reviewed By: jdenny

Differential Revision: https://reviews.llvm.org/D86222
2021-04-20 14:42:46 +01:00

55 lines
2.1 KiB
Plaintext

; Check handling of match-time diagnostics for invalid patterns (e.g.,
; substitution overflow) in the case of expected patterns (e.g., CHECK).
RUN: echo > %t.chk \
RUN: 'CHECK: [[#0x8000000000000000+0x8000000000000000]] [[UNDEFVAR]]'
RUN: echo > %t.in '10000000000000000'
ERR-NOT:{{.}}
ERR:{{.*}}: error: unable to substitute variable or numeric expression: overflow error
ERR-NEXT:CHECK: {{.*}}
ERR-NEXT:{{ *}}^
ERR-NEXT:{{.*}}: error: undefined variable: UNDEFVAR
ERR-NEXT:{{CHECK: \[\[#0x8000000000000000\+0x8000000000000000\]\] \[\[UNDEFVAR\]\]}}
ERR-NEXT:^
ERR-NOT:{{error|note|remark}}:
DUMP:<<<<<<
DUMP-NEXT: 1: 10000000000000000
DUMP-NEXT:check:1'0 X~~~~~~~~~~~~~~~~~ error: match failed for invalid pattern
DUMP-NEXT:check:1'1 unable to substitute variable or numeric expression: overflow error
DUMP-NEXT:check:1'2 undefined variable: UNDEFVAR
DUMP-NEXT:>>>>>>
;--------------------------------------------------
; Check -dump-input=never cases.
;--------------------------------------------------
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never -v %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=never -vv %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR
;--------------------------------------------------
; Check -dump-input=fail cases.
;--------------------------------------------------
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail -v %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP
RUN: %ProtectFileCheckOutput \
RUN: not FileCheck -dump-input=fail -vv %t.chk < %t.in 2>&1 \
RUN: | FileCheck %s -match-full-lines -check-prefixes=ERR,DUMP