Most of the cases were where a C++ file was being compiled with the C substitution. There were a few cases of the opposite though. LLDB seems to be the only real culprit in the LLVM codebase for these mismatches. Rest of the LLVM presumably sticks at least language-specific options in the common substitutions making the mistakes immediately apparent. I found these by using Clang frontend configuration files containing language-specific options for both C and C++ (e.g. `-std=c2y` and `-std=c++26`).
75 lines
1.6 KiB
Plaintext
75 lines
1.6 KiB
Plaintext
# Test `image dump ast` command.
|
|
|
|
# DWARF is required to properly create the AST, and on Windows that is discarded
|
|
# and we only have PDB which doesn't work for this test.
|
|
# UNSUPPORTED: system-windows
|
|
|
|
# RUN: split-file %s %t
|
|
# RUN: %clangxx_host -g -gdwarf %t/main.cpp -o %t.out
|
|
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \
|
|
# RUN: | FileCheck %s
|
|
|
|
#--- main.cpp
|
|
|
|
void A() {}
|
|
void A1() {}
|
|
void BA1() {}
|
|
void AB() {}
|
|
|
|
int main() {
|
|
A();
|
|
A1();
|
|
BA1();
|
|
AB();
|
|
}
|
|
|
|
#--- commands.input
|
|
|
|
break set -n main
|
|
run
|
|
expr A(); A1(); BA1(); AB()
|
|
|
|
image dump ast
|
|
|
|
# CHECK: image dump ast
|
|
# CHECK-DAG: FunctionDecl {{.*}} main
|
|
# CHECK-DAG: FunctionDecl {{.*}} A
|
|
# CHECK-DAG: FunctionDecl {{.*}} A1
|
|
# CHECK-DAG: FunctionDecl {{.*}} BA1
|
|
# CHECK-DAG: FunctionDecl {{.*}} AB
|
|
|
|
image dump ast --filter A
|
|
|
|
# CHECK: image dump ast --filter A
|
|
# CHECK: Dumping A
|
|
# CHECK-NOT: FunctionDecl {{.*}} main
|
|
# CHECK-DAG: FunctionDecl {{.*}} A1
|
|
# CHECK-DAG: FunctionDecl {{.*}} BA1
|
|
# CHECK-DAG: FunctionDecl {{.*}} AB
|
|
|
|
image dump ast --filter A1
|
|
|
|
# CHECK: image dump ast --filter A1
|
|
# CHECK: Dumping A
|
|
# CHECK-NOT: FunctionDecl {{.*}} main
|
|
# CHECK-NOT: FunctionDecl {{.*}} AB
|
|
# CHECK-DAG: FunctionDecl {{.*}} A1
|
|
# CHECK-DAG: FunctionDecl {{.*}} BA1
|
|
|
|
image dump ast --filter ""
|
|
|
|
# CHECK: image dump ast --filter ""
|
|
# CHECK-DAG: FunctionDecl {{.*}} main
|
|
# CHECK-DAG: FunctionDecl {{.*}} AB
|
|
# CHECK-DAG: FunctionDecl {{.*}} A1
|
|
# CHECK-DAG: FunctionDecl {{.*}} BA1
|
|
|
|
image dump ast -f AB
|
|
|
|
# CHECK: image dump ast -f AB
|
|
# CHECK: Dumping AB
|
|
# CHECK-NOT: FunctionDecl {{.*}} main
|
|
# CHECK-NOT: FunctionDecl {{.*}} A1
|
|
# CHECK-NOT: FunctionDecl {{.*}} BA1
|
|
# CHECK: FunctionDecl {{.*}} AB
|