1REQUIRES: system-windows, msvc 2RUN: %build --compiler=msvc --arch=32 --nodefaultlib --output=%T/SimpleTypesTest.cpp.typedefs.exe %S/Inputs/SimpleTypesTest.cpp 3RUN: lldb-test symbols %T/SimpleTypesTest.cpp.typedefs.exe | FileCheck %s 4 5; Generate 32-bit target 6 7; FIXME: PDB does not have line information for typedef statements so source 8; and line information for them is not tested. 9 10; Note, types `long double` and `double` have same bit size in MSVC and there 11; is no information in the PDB to distinguish them. So the compiler type for 12; both of them is the same. 13 14CHECK: Module [[MOD:.*]] 15CHECK: SymbolFile pdb ([[MOD]]) 16CHECK-DAG: name = "char32_t", size = 4, compiler_type = {{.*}} char32_t 17CHECK-DAG: name = "char16_t", size = 2, compiler_type = {{.*}} char16_t 18CHECK-DAG: Type{{.*}} , name = "unsigned long", size = 4, compiler_type = {{.*}} unsigned long 19CHECK-DAG: Type{{.*}} , size = 40, compiler_type = {{.*}} unsigned long[10] 20 21; Note: compiler_type of `long double` is represented by the one for `double` 22CHECK-DAG: Type{{.*}} , name = "double", size = 8, compiler_type = {{.*}} double 23CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double * 24CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} double *& 25CHECK-DAG: Type{{.*}} , name = "RefTypedef", compiler_type = {{.*}} typedef RefTypedef 26 27CHECK-DAG: Type{{.*}} , name = "wchar_t", size = 2, compiler_type = {{.*}} wchar_t 28 29CHECK-DAG: Type{{.*}} , name = "int", size = 4, compiler_type = {{.*}} int 30CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} int & 31CHECK-DAG: Type{{.*}} , name = "unsigned char", size = 1, compiler_type = {{.*}} unsigned char 32CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char * 33CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} unsigned char ** 34CHECK-DAG: Type{{.*}} , name = "short", size = 2, compiler_type = {{.*}} short 35CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} short * 36CHECK-DAG: Type{{.*}} , name = "const double", size = 8, compiler_type = {{.*}} const double 37CHECK-DAG: Type{{.*}} , name = "volatile bool", size = 1, compiler_type = {{.*}} volatile _Bool 38CHECK-DAG: Type{{.*}} , name = "long long", size = 8, compiler_type = {{.*}} long long 39CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} long long (int &, unsigned char **, short *, const double, volatile _Bool) 40CHECK-DAG: Type{{.*}} , name = "FuncPtrTypedef", compiler_type = {{.*}} typedef FuncPtrTypedef 41 42CHECK-DAG: Type{{.*}} , name = "void", compiler_type = {{.*}} void 43CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} void * 44CHECK-DAG: Type{{.*}} , name = "long", size = 4, compiler_type = {{.*}} long 45CHECK-DAG: Type{{.*}} , name = "unsigned short", size = 2, compiler_type = {{.*}} unsigned short 46CHECK-DAG: Type{{.*}} , name = "unsigned int", size = 4, compiler_type = {{.*}} unsigned int 47CHECK-DAG: Type{{.*}} , name = "char", size = 1, compiler_type = {{.*}} char 48CHECK-DAG: Type{{.*}} , name = "signed char", size = 1, compiler_type = {{.*}} signed char 49CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} char (void *, long, unsigned short, unsigned int, ...) 50CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} char (*)(void *, long, unsigned short, unsigned int, ...) 51CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedef", compiler_type = {{.*}} typedef VarArgsFuncTypedef 52 53CHECK-DAG: Type{{.*}} , name = "float", size = 4, compiler_type = {{.*}} float 54CHECK-DAG: Type{{.*}} , compiler_type = {{.*}} float (...) 55CHECK-DAG: Type{{.*}} , size = 4, compiler_type = {{.*}} float (*)(...) 56CHECK-DAG: Type{{.*}} , name = "VarArgsFuncTypedefA", compiler_type = {{.*}} typedef VarArgsFuncTypedefA 57 58CHECK-DAG: {{^[0-9A-F]+}}: CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\SimpleTypesTest.cpp' 59