
Reland #82595 with fixes of build failures related to colored output. See https://lab.llvm.org/buildbot/#/builders/139/builds/60549 Use `%ProtectFileCheckOutput` to avoid colored output. Original commit message below. In `Pattern::parseVariable`, for global variables (those starting with '$') and for pseudo variables (those starting with '@') the first character is consumed before actual variable name parsing. If the name is empty, it leads to out-of-bound access to the corresponding `StringRef`. This patch adds an if statement against the case described.
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
a
|
|
|
|
; RUN: %ProtectFileCheckOutput not FileCheck -input-file %s %s 2>&1 | \
|
|
; RUN: FileCheck -check-prefix CHECK-ERROR -DDIR=%S \
|
|
; RUN: --match-full-lines --strict-whitespace %s
|
|
|
|
; CHECK: a[[]]
|
|
; CHECK-ERROR:[[DIR]]{{/|\\}}empty-variable-name.txt:7:13: error: empty variable name
|
|
; CHECK-ERROR-NEXT:; CHECK: a{{\[\[\]\]}}
|
|
; CHECK-ERROR-NEXT: ^
|
|
|
|
b
|
|
|
|
; RUN: %ProtectFileCheckOutput not FileCheck -input-file %s -check-prefix CHECK-PSEUDO %s 2>&1 | \
|
|
; RUN: FileCheck -check-prefix CHECK-ERROR-PSEUDO -DDIR=%S \
|
|
; RUN: --match-full-lines --strict-whitespace %s
|
|
|
|
; CHECK-PSEUDO: b[[@]]
|
|
; CHECK-ERROR-PSEUDO:[[DIR]]{{/|\\}}empty-variable-name.txt:18:21: error: empty pseudo variable name
|
|
; CHECK-ERROR-PSEUDO-NEXT:; CHECK-PSEUDO: b{{\[\[@\]\]}}
|
|
; CHECK-ERROR-PSEUDO-NEXT: ^
|
|
|
|
c
|
|
|
|
; RUN: %ProtectFileCheckOutput not FileCheck -input-file %s -check-prefix CHECK-GLOBAL %s 2>&1 | \
|
|
; RUN: FileCheck -check-prefix CHECK-ERROR-GLOBAL -DDIR=%S \
|
|
; RUN: --match-full-lines --strict-whitespace %s
|
|
|
|
; CHECK-GLOBAL: c[[$]]
|
|
; CHECK-ERROR-GLOBAL:[[DIR]]{{/|\\}}empty-variable-name.txt:29:21: error: empty global variable name
|
|
; CHECK-ERROR-GLOBAL-NEXT:; CHECK-GLOBAL: c{{\[\[\$\]\]}}
|
|
; CHECK-ERROR-GLOBAL-NEXT: ^
|