1 REQUIRES: target-windows, msvc
2 RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/PointerTypeTest.cpp.obj %S/Inputs/PointerTypeTest.cpp
3 RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/PointerTypeTest.cpp.exe %T/PointerTypeTest.cpp.obj
4 RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck %s
5 RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN-ST-F %s
6 RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN-ST %s
7 RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=MAIN %s
8 RUN: lldb-test symbols %T/PointerTypeTest.cpp.exe | FileCheck --check-prefix=F %s
10 CHECK: Module [[MOD:.*]]
11 CHECK: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\PointerTypeTest.cpp'
14 MAIN-ST-F-SAME: decl = PointerTypeTest.cpp:8
15 MAIN-ST-F-SAME: compiler_type = {{.*}} int (int)
17 MAIN-ST: name = "ST", size = 4, decl = PointerTypeTest.cpp:6, compiler_type = {{.*}} struct ST {
19 MAIN-ST-NEXT: int {{.*}}f(int);
22 MAIN: Function{[[FID1:.*]]}, mangled = {{_?}}main
23 MAIN-NEXT: Block{[[FID1]]}
24 MAIN: Variable{{.*}}, name = "array_pointer"
25 MAIN-SAME: (int (*)[2][4]), scope = local
26 MAIN: Variable{{.*}}, name = "p_int"
27 MAIN-SAME: (int *), scope = local
28 MAIN: Variable{{.*}}, name = "p_member_field"
29 MAIN-SAME: (int ST::*), scope = local
30 MAIN: Variable{{.*}}, name = "p_member_method"
31 MAIN-SAME: (int (ST::*)(int){{( __attribute__\(\(thiscall\)\))?}}), scope = local
33 F: Function{[[FID2:.*]]}, demangled = {{.*}}f(int)
34 F-NEXT: Block{[[FID2]]}
35 F: Variable{{.*}}, name = "this"
36 F-SAME: (ST *), scope = parameter, location = {{(DW_OP.*)|(<empty>)}}, artificial
37 F: Variable{{.*}}, name = "x"
38 F-SAME: (int), scope = parameter, decl = PointerTypeTest.cpp:8