blob: 659ef6392d1c450d77a237a4900ceb506e669eae [file] [log] [blame]
REQUIRES: windows
RUN: clang-cl -m32 /Z7 /c /GS- %S/Inputs/SimpleTypesTest.cpp /o %T/SimpleTypesTest.cpp.typedefs.obj
RUN: link %T/SimpleTypesTest.cpp.typedefs.obj /DEBUG /nodefaultlib /ENTRY:main /OUT:%T/SimpleTypesTest.cpp.typedefs.exe
RUN: lldb-test symbols %T/SimpleTypesTest.cpp.typedefs.exe | FileCheck %s
; Generate 32-bit target
; FIXME: PDB does not have line information for typedef statements so source
; and line information for them is not tested.
; Note, types `long double` and `double` have same bit size in MSVC and there
; is no information in the PDB to distinguish them. So the compiler type for
; both of them is the same.
CHECK: Module [[MOD:.*]]
CHECK: {{^[0-9A-F]+}}: SymbolVendor ([[MOD]])
CHECK-DAG: name = "char32_t", size = 4, compiler_type = {{.*}} char32_t
CHECK-DAG: name = "char16_t", size = 2, compiler_type = {{.*}} char16_t
CHECK-DAG: Type{{.*}} , name = "unsigned long", size = 4, compiler_type = {{.*}} unsigned long
CHECK-DAG: Type{{.*}} , size = 40, compiler_type = {{.*}} unsigned long [10]
CHECK-DAG: Type{{.*}} , name = "ULongArrayTypedef", compiler_type = {{.*}} typedef ULongArrayTypedef
; Note: compiler_type of `long double` is represented by the one for `double`
CHECK-DAG: Type{{.*}} , name = "double", size = 8, compiler_type = {{.*}} double
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double *
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double *&
CHECK-DAG: Type{{.*}} , name = "RefTypedef", compiler_type = {{.*}} typedef RefTypedef
CHECK-DAG: Type{{.*}} , name = "wchar_t", size = 2, compiler_type = {{.*}} wchar_t
CHECK-DAG: Type{{.*}} , name = "int", size = 4, compiler_type = {{.*}} int
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int &
CHECK-DAG: Type{{.*}} , name = "unsigned char", size = 1, compiler_type = {{.*}} unsigned char
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char *
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char **
CHECK-DAG: Type{{.*}} , name = "short", size = 2, compiler_type = {{.*}} short
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} short *
CHECK-DAG: Type{{.*}} , name = "const double", size = 8, compiler_type = {{.*}} const double
CHECK-DAG: Type{{.*}} , name = "volatile bool", size = 1, compiler_type = {{.*}} volatile _Bool
CHECK-DAG: Type{{.*}} , name = "long long", size = 8, compiler_type = {{.*}} long long
CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} long long (int &, unsigned char **, short *, const double, volatile _Bool)
CHECK-DAG: Type{{.*}} , name = "FuncPtrTypedef", compiler_type = {{.*}} typedef FuncPtrTypedef
CHECK-DAG: Type{{.*}} , name = "void", compiler_type = {{.*}} void
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} void *
CHECK-DAG: Type{{.*}} , name = "long", size = 4, compiler_type = {{.*}} long
CHECK-DAG: Type{{.*}} , name = "unsigned short", size = 2, compiler_type = {{.*}} unsigned short
CHECK-DAG: Type{{.*}} , name = "unsigned int", size = 4, compiler_type = {{.*}} unsigned int
CHECK-DAG: Type{{.*}} , name = "signed char", size = 1, compiler_type = {{.*}} signed char
CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} signed char (void *, long, unsigned short, unsigned int, ...)
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} signed char (*)(void *, long, unsigned short, unsigned int, ...)
CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedef", compiler_type = {{.*}} typedef VarArgsFuncTypedef
CHECK-DAG: Type{{.*}} , name = "float", size = 4, compiler_type = {{.*}} float
CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} float (...)
CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} float (*)(...)
CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedefA", compiler_type = {{.*}} typedef VarArgsFuncTypedefA
CHECK-DAG: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\SimpleTypesTest.cpp'