; Test that variables not starting with dollar sign get undefined after a
; CHECK-LABEL directive iff --enable-var-scope is used.

; Reference run: variables remain defined at all time when not using
; --enable-var-scope option.
RUN: filechecker --check-prefixes=CHECK --check-prefixes=LOCAL3 --check-prefixes=GLOBAL --input-file %s %s

RUN: filechecker --check-prefixes=CHECK --check-prefixes=GLOBAL --enable-var-scope --input-file %s %s
RUN: not filechecker --check-prefixes=CHECK --check-prefixes=LOCAL1 --enable-var-scope --input-file %s %s 2>&1 \
RUN:   | filechecker --check-prefixes=ERRUNDEF --check-prefixes=ERRUNDEFLOCAL %s
RUN: not filechecker --check-prefixes=CHECK --check-prefixes=LOCAL2 --enable-var-scope --input-file %s %s 2>&1 \
RUN:   | filechecker --check-prefixes=ERRUNDEF --check-prefixes=ERRUNDEFLOCNUM %s
RUN: not filechecker --check-prefixes=CHECK --check-prefixes=LOCAL3 --enable-var-scope --input-file %s %s 2>&1 \
RUN:   | filechecker --check-prefixes=ERRUNDEF --check-prefixes=ERRUNDEFLOCAL --check-prefixes=ERRUNDEFLOCNUM %s

local1
global1
CHECK: [[LOCAL:loc[^[:digit:]]*]][[#LOCNUM:]]
CHECK: [[$GLOBAL:glo[^[:digit:]]*]][[#$GLOBNUM:]]

local2
global2
CHECK: [[LOCAL]][[#LOCNUM+1]]
CHECK: [[$GLOBAL]][[#$GLOBNUM+1]]

barrier:
CHECK-LABEL: barrier

local3
global3
LOCAL1: [[LOCAL]]3
LOCAL2: local[[#LOCNUM+2]]
LOCAL3: [[LOCAL]][[#LOCNUM+2]]
GLOBAL: [[$GLOBAL]][[#$GLOBNUM+2]]

ERRUNDEF: expected string not found in input
ERRUNDEFLOCAL: uses undefined variable(s): "LOCAL"
ERRUNDEFLOCNUM: uses undefined variable(s): "LOCNUM"
