# XFAIL: target-windows
# RUN: echo quit | %lldb -o "expression a+b" \
# RUN:   | FileCheck %s --strict-whitespace --check-prefix=CHECK1
#            (lldb) expression a+b
# CHECK1:{{^                  (\^|˄) (\^|˄)}}
# CHECK1: {{^                  (\||│) (╰─ )?error: use of undeclared identifier 'b'}}
# CHECK1: {{^                  (╰─ )?error: use of undeclared identifier 'a'}}

# RUN: echo quit | %lldb -o "expr a" \
# RUN:   | FileCheck %s --strict-whitespace --check-prefix=CHECK2
#            (lldb) expr a 
# CHECK2:{{^            (\^|˄)}}

# RUN: echo quit | %lldb -o "expr -i 0 -o 0 -- a" \
# RUN:   | FileCheck %s --strict-whitespace --check-prefix=CHECK3
#            (lldb) expr -i 0 -o 0 -- a
# CHECK3:{{^                         (\^|˄)}}
# CHECK3: {{^                         (╰─ )?error: use of undeclared identifier 'a'}}

# RUN: echo "int main(){return 0;}">%t.c
# RUN: %clang_host %t.c -o %t.exe
# RUN: echo quit | %lldb %t.exe -o "b main" -o r -o \
# RUN: "expr --top-level -- template<typename T> T FOO(T x) { return x/2;}" -o \
# RUN: "expression -- FOO(\"\")" 2>&1 | FileCheck %s --check-prefix=CHECK4
#            (lldb) expression -- FOO("")
# CHECK4:{{^                     (\^|˄)}}
# CHECK4: {{^                     (╰─ )?note: in instantiation of function template}}
# CHECK4: error: <user expression

# RUN: echo expression --\na\n+\nb
# RUN: cat %S/Inputs/multiline-expr.txt | %lldb 2>&1 | FileCheck %s --strict-whitespace --check-prefix=CHECK5
# CHECK5: error: <user{{.*}}a
# CHECK5: error: <user{{.*}}b
