| # RUN: split-file %s %t | |
| # RUN: %clangxx_host -g %t/main.cpp -o %t.out | |
| # | |
| # RUN: %lldb -x -b -o "settings set interpreter.stop-command-source-on-error false" \ | |
| # RUN: -s %t/no-target.input 2>&1 | FileCheck %s --check-prefix=CHECK-NO-TARGET | |
| # | |
| # RUN: %lldb %t.out -x -b -o "settings set interpreter.stop-command-source-on-error false" \ | |
| # RUN: -s %t/with-target.input 2>&1 | FileCheck %s --check-prefix=CHECK-TARGET | |
| #--- main.cpp | |
| int main() { | |
| int x = 10; | |
| return x; | |
| } | |
| #--- with-target.input | |
| expr blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Falling back to default language. Ran expression as 'Objective C++'. | |
| b 4 | |
| run | |
| expr blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Ran expression as '{{(ISO )?}}C++{{.*}}' | |
| expr -l objc -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Expression evaluation in pure Objective-C not supported. Ran expression as 'Objective C++'. | |
| expr -l c -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Expression evaluation in pure C not supported. Ran expression as 'ISO C++'. | |
| expr -l c++14 -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Ran expression as 'C++14' | |
| expr -l c++20 -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Ran expression as 'C++20' | |
| expr -l objective-c++ -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Ran expression as 'Objective C++' | |
| # D uses TypeSystemClang but running expressions in it isn't supported. Test that we warn about this. | |
| expr -l D -- blah | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET: note: Expression evaluation in D not supported. Falling back to default language. Ran expression as 'Objective C++'. | |
| expr -l c++17 -- x = 5 | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET-NOT: note: | |
| expr x = 5 | |
| # CHECK-TARGET: (lldb) expr | |
| # CHECK-TARGET-NOT: note: | |
| #--- no-target.input | |
| expr blah | |
| # CHECK-NO-TARGET: (lldb) expr | |
| # CHECK-NO-TARGET: note: Falling back to default language. Ran expression as 'Objective C++'. | |
| expr -l c++ -- 1 + 1 | |
| # CHECK-NO-TARGET: (lldb) expr | |
| # CHECK-NO-TARGET-NOT: note: | |
| expr 1 + 1 | |
| # CHECK-NO-TARGET: (lldb) expr | |
| # CHECK-NO-TARGET-NOT: note: |