1RUN: FileCheck --input-file %s %s 2 3; We use CHECK-NEXT directives to force a match on all lines with digits. 4 5; Numeric variable definition with default matching format without spaces. 6DEF DEFAULT FMT NO SPC // CHECK-LABEL: DEF DEFAULT FMT NO SPC 710 // CHECK-NEXT: {{^}}[[#UNSI:]] 8 9; Numeric variable definition with default matching format with different 10; spacing. 11DEF DEFAULT FMT SPC // CHECK-LABEL: DEF DEFAULT FMT SPC 1211 // CHECK-NEXT: {{^}}[[# UNSIa:]] 1311 // CHECK-NEXT: {{^}}[[# UNSIb :]] 1411 // CHECK-NEXT: {{^}}[[# UNSIc : ]] 15 16; Numeric variable redefinition. 17REDEF NO SPC // CHECK-LABEL: REDEF 1811 // CHECK-NEXT: {{^}}[[#UNSI:]] 19 20; Numeric variable definition with explicit matching format. 21DEF FMT // CHECK-LABEL: DEF FMT 22c // CHECK-NEXT: {{^}}[[#%x,LHEX:]] 23D // CHECK-NEXT: {{^}}[[#%X,UHEX:]] 24-30 // CHECK-NEXT: {{^}}[[#%d,SIGN:]] 25 26; Numeric variable definition with explicit matching format with different 27; spacing. 28DEF FMT SPC // CHECK-LABEL: DEF FMT SPC 29c // CHECK-NEXT: {{^}}[[# %x , LHEXa : ]] 30 31; Numeric variable definition with unsupported matching format. 32RUN: %ProtectFileCheckOutput \ 33RUN: not FileCheck --check-prefixes ERR,INVALID-FMT-SPEC1 --input-file %s %s 2>&1 \ 34RUN: | FileCheck --check-prefix INVALID-FMT-SPEC-MSG1 --strict-whitespace %s 35RUN: %ProtectFileCheckOutput \ 36RUN: not FileCheck --check-prefixes ERR,INVALID-FMT-SPEC2 --input-file %s %s 2>&1 \ 37RUN: | FileCheck --check-prefix INVALID-FMT-SPEC-MSG2 --strict-whitespace %s 38 39DEF INVALID FMT 40INVVAR1=a 41INVVAR2=11 42ERR-LABEL: DEF INVALID FMT 43INVALID-FMT-SPEC1-NEXT: INVVAR1=[[#%c,INVVAR1:]] 44INVALID-FMT-SPEC2-NEXT: INVVAR2=[[#%hhd,INVVAR2:]] 45INVALID-FMT-SPEC-MSG1: numeric-expression.txt:[[#@LINE-2]]:37: error: invalid format specifier in expression 46INVALID-FMT-SPEC-MSG1-NEXT: {{I}}NVALID-FMT-SPEC1-NEXT: INVVAR1={{\[\[#%c,INVVAR1:\]\]}} 47INVALID-FMT-SPEC-MSG1-NEXT: {{^}} ^{{$}} 48INVALID-FMT-SPEC-MSG2: numeric-expression.txt:[[#@LINE-4]]:37: error: invalid format specifier in expression 49INVALID-FMT-SPEC-MSG2-NEXT: {{I}}NVALID-FMT-SPEC2-NEXT: INVVAR2={{\[\[#%hhd,INVVAR2:\]\]}} 50INVALID-FMT-SPEC-MSG2-NEXT: {{^}} ^{{$}} 51 52; Numeric expressions in explicit matching format and default matching rule using 53; variables defined on other lines without spaces. 54USE EXPL FMT IMPL MATCH // CHECK-LABEL: USE EXPL FMT IMPL MATCH 5511 // CHECK-NEXT: {{^}}[[#%u,UNSI]] 5612 // CHECK-NEXT: {{^}}[[#%u,UNSI+1]] 5710 // CHECK-NEXT: {{^}}[[#%u,UNSI-1]] 58c // CHECK-NEXT: {{^}}[[#%x,LHEX]] 59d // CHECK-NEXT: {{^}}[[#%x,LHEX+1]] 60b // CHECK-NEXT: {{^}}[[#%x,LHEX-1]] 611a // CHECK-NEXT: {{^}}[[#%x,LHEX+0xe]] 621a // CHECK-NEXT: {{^}}[[#%x,LHEX+0xE]] 63D // CHECK-NEXT: {{^}}[[#%X,UHEX]] 64E // CHECK-NEXT: {{^}}[[#%X,UHEX+1]] 65C // CHECK-NEXT: {{^}}[[#%X,UHEX-1]] 661B // CHECK-NEXT: {{^}}[[#%X,UHEX+0xe]] 671B // CHECK-NEXT: {{^}}[[#%X,UHEX+0xE]] 68-30 // CHECK-NEXT: {{^}}[[#%d,SIGN]] 69-29 // CHECK-NEXT: {{^}}[[#%d,SIGN+1]] 70-31 // CHECK-NEXT: {{^}}[[#%d,SIGN-1]] 7142 // CHECK-NEXT: {{^}}[[#%d,SIGN+72]] 7211 // CHECK-NEXT: {{^}}[[#%u,UNSIa]] 7311 // CHECK-NEXT: {{^}}[[#%u,UNSIb]] 7411 // CHECK-NEXT: {{^}}[[#%u,UNSIc]] 75c // CHECK-NEXT: {{^}}[[#%x,LHEXa]] 76 77; Numeric expressions in explicit matching format and default matching rule using 78; variables defined on other lines with different spacing. 79USE EXPL FMT IMPL MATCH SPC // CHECK-LABEL: USE EXPL FMT IMPL MATCH SPC 8011 // CHECK-NEXT: {{^}}[[#%u, UNSI]] 8111 // CHECK-NEXT: {{^}}[[# %u, UNSI]] 8211 // CHECK-NEXT: {{^}}[[# %u, UNSI ]] 8312 // CHECK-NEXT: {{^}}[[#%u, UNSI+1]] 8412 // CHECK-NEXT: {{^}}[[# %u, UNSI+1]] 8512 // CHECK-NEXT: {{^}}[[# %u , UNSI+1]] 8612 // CHECK-NEXT: {{^}}[[# %u , UNSI +1]] 8712 // CHECK-NEXT: {{^}}[[# %u , UNSI + 1]] 8812 // CHECK-NEXT: {{^}}[[# %u , UNSI + 1 ]] 8910 // CHECK-NEXT: {{^}}[[#%u, UNSI-1]] 9010 // CHECK-NEXT: {{^}}[[# %u, UNSI-1]] 9110 // CHECK-NEXT: {{^}}[[# %u , UNSI-1]] 9210 // CHECK-NEXT: {{^}}[[# %u , UNSI -1]] 9310 // CHECK-NEXT: {{^}}[[# %u , UNSI - 1]] 9410 // CHECK-NEXT: {{^}}[[# %u , UNSI - 1 ]] 95 96; Numeric expressions in implicit matching format and default matching rule using 97; variables defined on other lines. 98USE IMPL FMT IMPL MATCH // CHECK-LABEL: USE IMPL FMT IMPL MATCH 9911 // CHECK-NEXT: {{^}}[[#UNSI]] 10012 // CHECK-NEXT: {{^}}[[#UNSI+1]] 10110 // CHECK-NEXT: {{^}}[[#UNSI-1]] 102c // CHECK-NEXT: {{^}}[[#LHEX]] 103d // CHECK-NEXT: {{^}}[[#LHEX+1]] 104b // CHECK-NEXT: {{^}}[[#LHEX-1]] 1051a // CHECK-NEXT: {{^}}[[#LHEX+0xe]] 1061a // CHECK-NEXT: {{^}}[[#LHEX+0xE]] 107D // CHECK-NEXT: {{^}}[[#UHEX]] 108E // CHECK-NEXT: {{^}}[[#UHEX+1]] 109C // CHECK-NEXT: {{^}}[[#UHEX-1]] 1101B // CHECK-NEXT: {{^}}[[#UHEX+0xe]] 1111B // CHECK-NEXT: {{^}}[[#UHEX+0xE]] 112-30 // CHECK-NEXT: {{^}}[[#SIGN]] 113-29 // CHECK-NEXT: {{^}}[[#SIGN+1]] 114-31 // CHECK-NEXT: {{^}}[[#SIGN-1]] 115 116; Numeric expressions using variables defined on other lines and an immediate 117; interpreted as an unsigned value. 118; Note: 9223372036854775819 = 0x8000000000000000 + 11 119USE IMPL FMT IMPL MATCH UNSIGNED IMM 1209223372036854775819 121CHECK-LABEL: USE IMPL FMT IMPL MATCH UNSIGNED IMM 122CHECK-NEXT: [[#UNSI+0x8000000000000000]] 123 124; Numeric expressions with matching format overriding the implicit format of 125; variables defined on other lines. 126USE CONV FMT IMPL MATCH // CHECK-LABEL: USE CONV FMT IMPL MATCH 127b // CHECK-NEXT: {{^}}[[# %x, UNSI]] 128B // CHECK-NEXT: {{^}}[[# %X, UNSI]] 129-1 // CHECK-NEXT: {{^}}[[# %d, UNSI-12]] 13012 // CHECK-NEXT: {{^}}[[# %u, LHEX]] 131C // CHECK-NEXT: {{^}}[[# %X, LHEX]] 132-2 // CHECK-NEXT: {{^}}[[# %d, LHEX-14]] 13313 // CHECK-NEXT: {{^}}[[# %u, UHEX]] 134d // CHECK-NEXT: {{^}}[[# %x, UHEX]] 135-5 // CHECK-NEXT: {{^}}[[# %d, UHEX-18]] 13615 // CHECK-NEXT: {{^}}[[# %u, SIGN+45]] 137f // CHECK-NEXT: {{^}}[[# %x, SIGN+45]] 138F // CHECK-NEXT: {{^}}[[# %X, SIGN+45]] 139 140; Conflicting implicit format. 141RUN: %ProtectFileCheckOutput \ 142RUN: not FileCheck --check-prefixes CHECK,FMT-CONFLICT1 --input-file %s %s 2>&1 \ 143RUN: | FileCheck --strict-whitespace --check-prefix FMT-CONFLICT1-MSG %s 144RUN: %ProtectFileCheckOutput \ 145RUN: not FileCheck --check-prefixes CHECK,FMT-CONFLICT2 --input-file %s %s 2>&1 \ 146RUN: | FileCheck --strict-whitespace --check-prefix FMT-CONFLICT2-MSG %s 147 148VAR USE IMPL FMT CONFLICT 14923 150FMT-CONFLICT1-LABEL: VAR USE IMPL FMT CONFLICT 151FMT-CONFLICT1-NEXT: [[#UNSI + LHEX]] 152FMT-CONFLICT1-MSG: numeric-expression.txt:[[#@LINE-1]]:24: error: implicit format conflict between 'UNSI' (%u) and 'LHEX' (%x), need an explicit format specifier 153FMT-CONFLICT1-MSG-NEXT: {{F}}MT-CONFLICT1-NEXT: {{\[\[#UNSI \+ LHEX\]\]}} 154FMT-CONFLICT1-MSG-NEXT: {{^ \^$}} 155 156VAR USE IMPL FMT CONFLICT COMPLEX 15734 158FMT-CONFLICT2-LABEL: VAR USE IMPL FMT CONFLICT 159FMT-CONFLICT2-NEXT: [[#UNSI + UNSIa + LHEX]] 160FMT-CONFLICT2-MSG: numeric-expression.txt:[[#@LINE-1]]:24: error: implicit format conflict between 'UNSI + UNSIa' (%u) and 'LHEX' (%x), need an explicit format specifier 161FMT-CONFLICT2-MSG-NEXT: {{F}}MT-CONFLICT2-NEXT: {{\[\[#UNSI \+ UNSIa \+ LHEX\]\]}} 162FMT-CONFLICT2-MSG-NEXT: {{^ \^$}} 163 164; Explicitly specified format can override conflicting implicit formats. 165VAR USE IMPL OVERRIDE FMT CONFLICT // CHECK-LABEL: VAR USE IMPL OVERRIDE FMT CONFLICT 16623 // CHECK-NEXT: {{^}}[[# %u, UNSI + LHEX]] 167 168; Numeric expressions using more than one variable defined on other lines. 169USE MULTI VAR // CHECK-LABEL: USE MULTI VAR 17022 // CHECK-NEXT: {{^}}[[#UNSI+UNSIa]] 171 172; Numeric expression using a variable defined from a numeric expression. 173DEF EXPR GOOD MATCH // CHECK-LABEL: DEF EXPR GOOD MATCH 17442 // CHECK-NEXT: {{^}}[[# VAR42:UNSI+31]] 17541 // CHECK-NEXT: {{^}}[[# VAR42-1]] 176 177; Empty numeric expression. 178EMPTY NUM EXPR // CHECK-LABEL: EMPTY NUM EXPR 179foo 104 bar // CHECK-NEXT: {{^}}foo [[#]] bar 180 181; Numeric expressions using parentheses. 182RUN: %ProtectFileCheckOutput \ 183RUN: not FileCheck -D#NUMVAR=10 --check-prefix PAREN-OP \ 184RUN: --input-file %s %s 2>&1 \ 185RUN: | FileCheck --strict-whitespace --check-prefix PAREN-OP-MSG %s 186 187PAREN EXPRESSIONS // PAREN-OP-LABEL: PAREN EXPRESSIONS 18811 // PAREN-OP-NEXT: [[#(NUMVAR+2)-1]] 18911 // PAREN-OP-NEXT: [[#NUMVAR+(2-1)]] 19011 // PAREN-OP-NEXT: [[#NUMVAR+(2-1]] 191PAREN-OP-MSG: numeric-expression.txt:[[#@LINE-1]]:36: error: missing ')' at end of nested expression 192PAREN-OP-MSG-NEXT: {{P}}AREN-OP-NEXT: {{\[\[#NUMVAR\+\(2\-1]\]}} 193PAREN-OP-MSG-NEXT: {{^}} ^{{$}} 194 195; Numeric expression using undefined variables. 196RUN: %ProtectFileCheckOutput \ 197RUN: not FileCheck --check-prefix UNDEF-USE --input-file %s %s 2>&1 \ 198RUN: | FileCheck --strict-whitespace --check-prefix UNDEF-USE-MSG %s 199 200UNDEF VAR USE 201UNDEFVAR: 11 202UNDEF-USE-LABEL: UNDEF VAR USE 203UNDEF-USE-NEXT: UNDEFVAR: [[#UNDEFVAR1+UNDEFVAR2]] 204UNDEF-USE-MSG: numeric-expression.txt:[[#@LINE-1]]:17: error: {{U}}NDEF-USE-NEXT: expected string not found in input 205UNDEF-USE-MSG-NEXT: {{U}}NDEF-USE-NEXT: UNDEFVAR: {{\[\[#UNDEFVAR1\+UNDEFVAR2\]\]}} 206UNDEF-USE-MSG-NEXT: {{^}} ^{{$}} 207UNDEF-USE-MSG-NEXT: numeric-expression.txt:[[#@LINE-6]]:1: note: scanning from here 208UNDEF-USE-MSG-NEXT: UNDEFVAR: 11 209UNDEF-USE-MSG-NEXT: {{^}}^{{$}} 210UNDEF-USE-MSG-NEXT: numeric-expression.txt:[[#@LINE-9]]:1: note: uses undefined variable(s): "UNDEFVAR1" "UNDEFVAR2" 211UNDEF-USE-MSG-NEXT: UNDEFVAR: 11 212UNDEF-USE-MSG-NEXT: {{^}}^{{$}} 213 214; Numeric expression with unsupported operator. 215RUN: %ProtectFileCheckOutput \ 216RUN: not FileCheck -D#NUMVAR=10 --check-prefix INVAL-OP \ 217RUN: --input-file %s %s 2>&1 \ 218RUN: | FileCheck --strict-whitespace --check-prefix INVAL-OP-MSG %s 219 220INVALID OPERATOR 221NUMVAR*2: 22 222INVAL-OP-LABEL: INVALID OPERATOR 223INVAL-OP-NEXT: NUMVAR*2: [[#NUMVAR*2]] 224INVAL-OP-MSG: numeric-expression.txt:[[#@LINE-1]]:35: error: unsupported operation '*' 225INVAL-OP-MSG-NEXT: {{I}}NVAL-OP-NEXT: NUMVAR*2: {{\[\[#NUMVAR\*2\]\]}} 226INVAL-OP-MSG-NEXT: {{^}} ^{{$}} 227 228; Name conflict between Numeric variable definition and string variable 229; definition whether from the command-line or input text. 230RUN: %ProtectFileCheckOutput \ 231RUN: not FileCheck --check-prefixes CONFLICT,CONFLICT1,CONFLICT2 \ 232RUN: --input-file %s %s 2>&1 \ 233RUN: | FileCheck --strict-whitespace --check-prefix INPUT-STR-CONFLICT %s 234RUN: %ProtectFileCheckOutput \ 235RUN: not FileCheck -D#NUMVAR=42 --check-prefixes CONFLICT,CONFLICT2 \ 236RUN: --input-file %s %s 2>&1 \ 237RUN: | FileCheck --strict-whitespace --check-prefix INPUT-STR-CONFLICT %s 238RUN: %ProtectFileCheckOutput \ 239RUN: not FileCheck -D#NUMVAR=42 -DNUMVAR=foobar --check-prefix CONFLICT \ 240RUN: --input-file %s %s 2>&1 \ 241RUN: | FileCheck --strict-whitespace --check-prefix CLI-STR-CONFLICT %s 242RUN: %ProtectFileCheckOutput \ 243RUN: not FileCheck --check-prefixes CONFLICT,CONFLICT3,CONFLICT4 \ 244RUN: --input-file %s %s 2>&1 \ 245RUN: | FileCheck --strict-whitespace --check-prefix INPUT-NUM-CONFLICT %s 246RUN: %ProtectFileCheckOutput \ 247RUN: not FileCheck -DSTRVAR=foobar --check-prefixes CONFLICT,CONFLICT4 \ 248RUN: --input-file %s %s 2>&1 \ 249RUN: | FileCheck --strict-whitespace --check-prefix INPUT-NUM-CONFLICT %s 250RUN: %ProtectFileCheckOutput \ 251RUN: not FileCheck -DSTRVAR=foobar -D#STRVAR=42 --check-prefix CONFLICT \ 252RUN: --input-file %s %s 2>&1 \ 253RUN: | FileCheck --strict-whitespace --check-prefix CLI-NUM-CONFLICT %s 254 255STRVAR NUMVAR CONFLICT 256redef1 42 257foobar 258redef2 42 259CONFLICT-LABEL: STRVAR NUMVAR CONFLICT 260CONFLICT1-NEXT: redef1 [[#NUMVAR:]] 261CONFLICT2: [[NUMVAR:foo.*]] 262CONFLICT3: [[STRVAR:foo.*]] 263CONFLICT4: redef2 [[#STRVAR:]] 264INPUT-STR-CONFLICT: numeric-expression.txt:[[#@LINE-3]]:14: error: numeric variable with name 'NUMVAR' already exists 265INPUT-STR-CONFLICT-NEXT: {{C}}ONFLICT2: {{\[\[NUMVAR:foo\.\*\]\]}} 266INPUT-STR-CONFLICT-NEXT: {{^}} ^{{$}} 267CLI-STR-CONFLICT: Global defines:2:19: error: numeric variable with name 'NUMVAR' already exists 268CLI-STR-CONFLICT-NEXT: Global define #2: NUMVAR=foobar 269CLI-STR-CONFLICT-NEXT: {{^}} ^{{$}} 270INPUT-NUM-CONFLICT: numeric-expression.txt:[[#@LINE-7]]:22: error: string variable with name 'STRVAR' already exists 271 INPUT-NUM-CONFLICT-NEXT: CONFLICT4: redef2 {{\[\[#STRVAR:\]\]}} 272INPUT-NUM-CONFLICT-NEXT: {{^}} ^{{$}} 273CLI-NUM-CONFLICT: Global defines:2:45: error: string variable with name 'STRVAR' already exists 274 CLI-NUM-CONFLICT-NEXT: Global define #2: #STRVAR=42 (parsed as: {{\[\[#STRVAR:42\]\]}}) 275CLI-NUM-CONFLICT-NEXT: {{^}} ^{{$}} 276 277; Numeric variable definition with too big value. 278RUN: %ProtectFileCheckOutput \ 279RUN: not FileCheck --check-prefix BIGVAL --input-file %s %s 2>&1 \ 280RUN: | FileCheck --strict-whitespace --check-prefix BIGVAL-MSG %s 281 282BIG VALUE 283NUMVAR: 10000000000000000000000 284BIGVAL-LABEL: BIG VALUE 285BIGVAL-NEXT: NUMVAR: [[#NUMVAR:]] 286BIGVAL-MSG: numeric-expression.txt:[[#@LINE-3]]:9: error: unable to represent numeric value 287 BIGVAL-MSG-NEXT: {{N}}UMVAR: 10000000000000000000000 288BIGVAL-MSG-NEXT: {{^}} ^{{$}} 289 290; Verify that when a variable is set to an expression the expression is still 291; checked. 292RUN: %ProtectFileCheckOutput \ 293RUN: not FileCheck --check-prefix DEF-EXPR-FAIL --input-file %s %s 2>&1 \ 294RUN: | FileCheck --strict-whitespace --check-prefix DEF-EXPR-FAIL-MSG %s 295 296DEF EXPR WRONG MATCH 29720 29843 299DEF-EXPR-FAIL-LABEL: DEF EXPR WRONG MATCH 300DEF-EXPR-FAIL-NEXT: [[# VAR20:]] 301DEF-EXPR-FAIL-NEXT: [[# VAR42: VAR20+22]] 302DEF-EXPR-FAIL-MSG: numeric-expression.txt:[[#@LINE-1]]:21: error: {{D}}EF-EXPR-FAIL-NEXT: is not on the line after the previous match 303DEF-EXPR-FAIL-MSG-NEXT: {{D}}EF-EXPR-FAIL-NEXT: {{\[\[# VAR42: VAR20\+22\]\]}} 304DEF-EXPR-FAIL-MSG-NEXT: {{^}} ^{{$}} 305 306; Verify that using a numeric variable defined on the same line (whether from 307; input or from an expression) is rejected. 308RUN: %ProtectFileCheckOutput \ 309RUN: not FileCheck --check-prefix SAME-LINE-USE1 --input-file %s %s 2>&1 \ 310RUN: | FileCheck --strict-whitespace --check-prefix SAME-LINE-USE-MSG1 %s 311RUN: %ProtectFileCheckOutput \ 312RUN: not FileCheck --check-prefix SAME-LINE-USE2 --input-file %s %s 2>&1 \ 313RUN: | FileCheck --strict-whitespace --check-prefix SAME-LINE-USE-MSG2 %s 314 315SAME LINE USE 3163 3174 5 318SAME-LINE-USE1-LABEL: SAME LINE USE 319SAME-LINE-USE1-NEXT: [[#]] 320SAME-LINE-USE1-NEXT: [[#UNSI:]] [[#UNSI+1]] 321SAME-LINE-USE-MSG1: numeric-expression.txt:[[#@LINE-1]]:36: error: numeric variable 'UNSI' defined earlier in the same CHECK directive 322SAME-LINE-USE-MSG1-NEXT: {{S}}AME-LINE-USE1-NEXT: {{\[\[#UNSI:\]\] \[\[#UNSI\+1\]\]}} 323SAME-LINE-USE-MSG1-NEXT: {{^}} ^{{$}} 324 325SAME-LINE-USE2-LABEL: SAME LINE USE 326SAME-LINE-USE2-NEXT: [[#UNSI:]] 327SAME-LINE-USE2-NEXT: [[#UNSI2:UNSI+1]] [[#UNSI2+1]] 328SAME-LINE-USE-MSG2: numeric-expression.txt:[[#@LINE-1]]:43: error: numeric variable 'UNSI2' defined earlier in the same CHECK directive 329SAME-LINE-USE-MSG2-NEXT: {{S}}AME-LINE-USE2-NEXT: {{\[\[#UNSI2:UNSI\+1\]\] \[\[#UNSI2\+1\]\]}} 330SAME-LINE-USE-MSG2-NEXT: {{^}} ^{{$}} 331 332; Invalid change of format in variable redefinition. 333RUN: %ProtectFileCheckOutput \ 334RUN: not FileCheck --check-prefix REDEF-NEW-FMT --input-file %s %s 2>&1 \ 335RUN: | FileCheck --strict-whitespace --check-prefix REDEF-NEW-FMT-MSG %s 336 337VAR REDEF FMT CHANGE 33822 339DC 340REDEF-NEW-FMT-LABEL: VAR REDEF FMT CHANGE 341REDEF-NEW-FMT-NEXT: [[#UNSI:]] 342REDEF-NEW-FMT-NEXT: [[#%X,UNSI:]] 343REDEF-NEW-FMT-MSG: numeric-expression.txt:[[#@LINE-1]]:31: error: format different from previous variable definition 344REDEF-NEW-FMT-MSG-NEXT: {{R}}EDEF-NEW-FMT-NEXT: {{\[\[#%X,UNSI:\]\]}} 345REDEF-NEW-FMT-MSG-NEXT: {{^}} ^{{$}} 346 347; Numeric expression with overflow. 348RUN: not FileCheck --check-prefix OVERFLOW --input-file %s %s 2>&1 \ 349RUN: | FileCheck --check-prefix OVERFLOW-MSG --strict-whitespace %s 350 351OVERFLOW 352BIGVAR=10000000000000000 353OVERFLOW-LABEL: OVERFLOW 354OVERFLOW-NEXT: BIGVAR: [[#BIGVAR:0x8000000000000000+0x8000000000000000]] 355OVERFLOW-MSG: numeric-expression.txt:[[#@LINE-1]]:27: error: unable to substitute variable or numeric expression 356OVERFLOW-MSG-NEXT: {{O}}VERFLOW-NEXT: BIGVAR: {{\[\[#BIGVAR:0x8000000000000000\+0x8000000000000000\]\]}} 357OVERFLOW-MSG-NEXT: {{^}} ^{{$}} 358 359; Numeric expression with underflow. 360RUN: not FileCheck --check-prefix UNDERFLOW --input-file %s %s 2>&1 \ 361RUN: | FileCheck --check-prefix UNDERFLOW-MSG --strict-whitespace %s 362 363UNDERFLOW 364TINYVAR=-10000000000000000 365UNDERFLOW-LABEL: UNDERFLOW 366UNDERFLOW-NEXT: TINYVAR: [[#%d,TINYVAR:-0x8000000000000000-0x8000000000000000]] 367UNDERFLOW-MSG: numeric-expression.txt:[[#@LINE-1]]:29: error: unable to substitute variable or numeric expression 368UNDERFLOW-MSG-NEXT: {{U}}NDERFLOW-NEXT: TINYVAR: {{\[\[#%d,TINYVAR:-0x8000000000000000-0x8000000000000000\]\]}} 369UNDERFLOW-MSG-NEXT: {{^}} ^{{$}} 370