xref: /llvm-project/lldb/test/Shell/SymbolFile/PDB/enums-layout.test (revision 75acec818e3a419836cf4827eb64faee719becb8)
1REQUIRES: system-windows, msvc
2RUN: %build --compiler=msvc --arch=32 --nodefaultlib --output=%T/SimpleTypesTest.cpp.enums.exe %S/Inputs/SimpleTypesTest.cpp
3RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=ENUM %s
4RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=CONST-ENUM %s
5RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=EMPTY-ENUM %s
6RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=UCHAR-ENUM %s
7RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=CLASS-ENUM %s
8RUN: lldb-test symbols %T/SimpleTypesTest.cpp.enums.exe | FileCheck --check-prefix=STRUCT-ENUM %s
9
10; FIXME: PDB does not have information about scoped enumeration (Enum class) so the
11; compiler type used is the same as the one for unscoped enumeration.
12
13ENUM:      Type{{.*}} , name = "Enum", size = 4, decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:19, compiler_type = {{.*}} enum Enum {
14ENUM-NEXT:    RED,
15ENUM-NEXT:    GREEN,
16ENUM-NEXT:    BLUE
17ENUM-NEXT:}
18
19CONST-ENUM:      Type{{.*}} , name = "EnumConst", size = 4,  decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:22, compiler_type = {{.*}} enum EnumConst {
20CONST-ENUM-NEXT:    LOW,
21CONST-ENUM-NEXT:    NORMAL,
22CONST-ENUM-NEXT:    HIGH
23CONST-ENUM-NEXT:}
24
25EMPTY-ENUM:      Type{{.*}} , name = "EnumEmpty", size = 4,  decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:25, compiler_type = {{.*}} enum EnumEmpty {
26EMPTY-ENUM-NEXT:}
27
28UCHAR-ENUM:      Type{{.*}} , name = "EnumUChar", size = 1,  decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:28, compiler_type = {{.*}} enum EnumUChar {
29UCHAR-ENUM-NEXT:    ON,
30UCHAR-ENUM-NEXT:    OFF,
31UCHAR-ENUM-NEXT:    AUTO
32UCHAR-ENUM-NEXT:}
33
34; Note that `enum EnumClass` is tested instead of `enum class EnumClass`
35CLASS-ENUM:      Type{{.*}} , name = "EnumClass", size = 4,  decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:32, compiler_type = {{.*}} enum EnumClass {
36CLASS-ENUM-NEXT:    YES,
37CLASS-ENUM-NEXT:    NO,
38CLASS-ENUM-NEXT:    DEFAULT
39CLASS-ENUM-NEXT:}
40
41STRUCT-ENUM:      Type{{.*}} , name = "EnumStruct", size = 4,  decl = {{[Ss]}}imple{{[Tt]}}ypes{{[Tt]}}est.cpp:35, compiler_type = {{.*}} enum EnumStruct {
42STRUCT-ENUM-NEXT:    red,
43STRUCT-ENUM-NEXT:    blue,
44STRUCT-ENUM-NEXT:    black
45STRUCT-ENUM-NEXT:}
46