blob: beb5ae2f90256e7f47a2c1f7b0814089f7629a15 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// REQUIRES: lld, x86
// Test symtab reading
// RUN: %build --compiler=clang-cl --arch=64 --nodefaultlib -o %t.exe -- %s
// RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symtab %t.exe --find-symbols-by-regex=".*" | FileCheck %s
// RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symtab %t.exe --find-symbols-by-regex=".*" | FileCheck %s
struct A {
void something() {}
};
namespace ns {
template <typename T> struct B {
struct C {
static int static_fn() { return 1; }
};
int b_func() const { return 3; }
};
struct Dyn {
virtual ~Dyn() = default;
};
int a_function() { return 1; }
} // namespace ns
void *operator new(unsigned long long n) { return nullptr; }
void operator delete(void *p, unsigned long long i) {}
A global_a;
ns::B<long long>::C global_c;
int global_int;
int main(int argc, char **argv) {
A a;
a.something();
ns::B<int>::C::static_fn();
ns::B<bool>::C::static_fn();
ns::B<short> b;
ns::Dyn dyn;
return ns::a_function() + b.b_func();
}
// CHECK-DAG: Code {{.*}} main
// CHECK-DAG: Code {{.*}} ?b_func@?$B@F@ns@@QEBAHXZ
// CHECK-DAG: Code {{.*}} ?something@A@@QEAAXXZ
// CHECK-DAG: Code {{.*}} ??_GDyn@ns@@UEAAPEAXI@Z
// CHECK-DAG: Code {{.*}} ??2@YAPEAX_K@Z
// CHECK-DAG: Code {{.*}} ??3@YAXPEAX_K@Z
// CHECK-DAG: Code {{.*}} ?static_fn@C@?$B@H@ns@@SAHXZ
// CHECK-DAG: Code {{.*}} ?a_function@ns@@YAHXZ
// CHECK-DAG: Code {{.*}} ?static_fn@C@?$B@_N@ns@@SAHXZ
// CHECK-DAG: Code {{.*}} ??1Dyn@ns@@UEAA@XZ
// CHECK-DAG: Code {{.*}} ??0Dyn@ns@@QEAA@XZ
// CHECK-DAG: Data {{.*}} ?global_int@@3HA
// CHECK-DAG: Data {{.*}} ??_7Dyn@ns@@6B@
// CHECK-DAG: Data {{.*}} ?global_a@@3UA@@A
// CHECK-DAG: Data {{.*}} ?global_c@@3UC@?$B@_J@ns@@A
|