brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.2 KiB · 51dc665 Raw
391 lines · plain
1; Test that the native PDB reader can enumerate pointer types.  The output2; being checked against is golden output generated by llvm-pdbutil without3; the -native flag.  Then we check that we generate the same output.4 5; RUN: llvm-pdbutil pretty -native -pointers \6; RUN:     %p/../Inputs/every-pointer.pdb | FileCheck %s --check-prefix=PRETTY7; RUN: llvm-pdbutil diadump -no-ids -native -pointers \8; RUN:     %p/../Inputs/every-pointer.pdb | FileCheck %s9 10; PRETTY:      Pointers: (29 items)11; PRETTY-NEXT: char**12; PRETTY-NEXT: struct Foo*13; PRETTY-NEXT: int&14; PRETTY-NEXT: const int*15; PRETTY-NEXT: volatile int*16; PRETTY-NEXT: const volatile int*17; PRETTY-NEXT: int*18; PRETTY-NEXT: int*19; PRETTY-NEXT: struct __vc_attributes::event_sourceAttribute*20; PRETTY-NEXT: struct __vc_attributes::helper_attributes::v1_alttypeAttribute*21; PRETTY-NEXT: struct __vc_attributes::helper_attributes::usageAttribute*22; PRETTY-NEXT: struct __vc_attributes::threadingAttribute*23; PRETTY-NEXT: struct __vc_attributes::aggregatableAttribute*24; PRETTY-NEXT: struct __vc_attributes::event_receiverAttribute*25; PRETTY-NEXT: struct __vc_attributes::moduleAttribute*26; PRETTY-NEXT: const char*27; PRETTY-NEXT: int&&28; PRETTY-NEXT: struct Foo*29; PRETTY-NEXT: void (__cdecl Foo::*)()30; PRETTY-NEXT: int Foo::*31; PRETTY-NEXT: int (__cdecl Foo::*)()32; PRETTY-NEXT: void (__cdecl *)()33; PRETTY-NEXT: unaligned struct Foo*34; PRETTY-NEXT: struct Foo*35; PRETTY-NEXT: const struct Foo*36; PRETTY-NEXT: volatile struct Foo*37; PRETTY-NEXT: const volatile struct Foo*38; PRETTY-NEXT: struct Foo&&39; PRETTY-NEXT: struct Foo40 41; CHECK:      {42; CHECK-NEXT:   symTag: PointerType43; CHECK-NEXT:   length: 844; CHECK-NEXT:   constType: 045; CHECK-NEXT:   isPointerToDataMember: 046; CHECK-NEXT:   isPointerToMemberFunction: 047; CHECK-NEXT:   RValueReference: 048; CHECK-NEXT:   reference: 049; CHECK-NEXT:   restrictedType: 050; CHECK-NEXT:   unalignedType: 051; CHECK-NEXT:   volatileType: 052; CHECK-NEXT: }53; CHECK-NEXT: {54; CHECK-NEXT:   symTag: PointerType55; CHECK-NEXT:   length: 856; CHECK-NEXT:   constType: 057; CHECK-NEXT:   isPointerToDataMember: 058; CHECK-NEXT:   isPointerToMemberFunction: 059; CHECK-NEXT:   RValueReference: 060; CHECK-NEXT:   reference: 061; CHECK-NEXT:   restrictedType: 062; CHECK-NEXT:   unalignedType: 063; CHECK-NEXT:   volatileType: 064; CHECK-NEXT: }65; CHECK-NEXT: {66; CHECK-NEXT:   symTag: PointerType67; CHECK-NEXT:   length: 868; CHECK-NEXT:   constType: 069; CHECK-NEXT:   isPointerToDataMember: 070; CHECK-NEXT:   isPointerToMemberFunction: 071; CHECK-NEXT:   RValueReference: 072; CHECK-NEXT:   reference: 173; CHECK-NEXT:   restrictedType: 074; CHECK-NEXT:   unalignedType: 075; CHECK-NEXT:   volatileType: 076; CHECK-NEXT: }77; CHECK-NEXT: {78; CHECK-NEXT:   symTag: PointerType79; CHECK-NEXT:   length: 880; CHECK-NEXT:   constType: 081; CHECK-NEXT:   isPointerToDataMember: 082; CHECK-NEXT:   isPointerToMemberFunction: 083; CHECK-NEXT:   RValueReference: 084; CHECK-NEXT:   reference: 085; CHECK-NEXT:   restrictedType: 086; CHECK-NEXT:   unalignedType: 087; CHECK-NEXT:   volatileType: 088; CHECK-NEXT: }89; CHECK-NEXT: {90; CHECK-NEXT:   symTag: PointerType91; CHECK-NEXT:   length: 892; CHECK-NEXT:   constType: 093; CHECK-NEXT:   isPointerToDataMember: 094; CHECK-NEXT:   isPointerToMemberFunction: 095; CHECK-NEXT:   RValueReference: 096; CHECK-NEXT:   reference: 097; CHECK-NEXT:   restrictedType: 098; CHECK-NEXT:   unalignedType: 099; CHECK-NEXT:   volatileType: 0100; CHECK-NEXT: }101; CHECK-NEXT: {102; CHECK-NEXT:   symTag: PointerType103; CHECK-NEXT:   length: 8104; CHECK-NEXT:   constType: 0105; CHECK-NEXT:   isPointerToDataMember: 0106; CHECK-NEXT:   isPointerToMemberFunction: 0107; CHECK-NEXT:   RValueReference: 0108; CHECK-NEXT:   reference: 0109; CHECK-NEXT:   restrictedType: 0110; CHECK-NEXT:   unalignedType: 0111; CHECK-NEXT:   volatileType: 0112; CHECK-NEXT: }113; CHECK-NEXT: {114; CHECK-NEXT:   symTag: PointerType115; CHECK-NEXT:   length: 8116; CHECK-NEXT:   constType: 0117; CHECK-NEXT:   isPointerToDataMember: 0118; CHECK-NEXT:   isPointerToMemberFunction: 0119; CHECK-NEXT:   RValueReference: 0120; CHECK-NEXT:   reference: 0121; CHECK-NEXT:   restrictedType: 0122; CHECK-NEXT:   unalignedType: 0123; CHECK-NEXT:   volatileType: 0124; CHECK-NEXT: }125; CHECK-NEXT: {126; CHECK-NEXT:   symTag: PointerType127; CHECK-NEXT:   length: 8128; CHECK-NEXT:   constType: 0129; CHECK-NEXT:   isPointerToDataMember: 0130; CHECK-NEXT:   isPointerToMemberFunction: 0131; CHECK-NEXT:   RValueReference: 0132; CHECK-NEXT:   reference: 0133; CHECK-NEXT:   restrictedType: 1134; CHECK-NEXT:   unalignedType: 0135; CHECK-NEXT:   volatileType: 0136; CHECK-NEXT: }137; CHECK-NEXT: {138; CHECK-NEXT:   symTag: PointerType139; CHECK-NEXT:   length: 8140; CHECK-NEXT:   constType: 1141; CHECK-NEXT:   isPointerToDataMember: 0142; CHECK-NEXT:   isPointerToMemberFunction: 0143; CHECK-NEXT:   RValueReference: 0144; CHECK-NEXT:   reference: 0145; CHECK-NEXT:   restrictedType: 0146; CHECK-NEXT:   unalignedType: 0147; CHECK-NEXT:   volatileType: 0148; CHECK-NEXT: }149; CHECK-NEXT: {150; CHECK-NEXT:   symTag: PointerType151; CHECK-NEXT:   length: 8152; CHECK-NEXT:   constType: 1153; CHECK-NEXT:   isPointerToDataMember: 0154; CHECK-NEXT:   isPointerToMemberFunction: 0155; CHECK-NEXT:   RValueReference: 0156; CHECK-NEXT:   reference: 0157; CHECK-NEXT:   restrictedType: 0158; CHECK-NEXT:   unalignedType: 0159; CHECK-NEXT:   volatileType: 0160; CHECK-NEXT: }161; CHECK-NEXT: {162; CHECK-NEXT:   symTag: PointerType163; CHECK-NEXT:   length: 8164; CHECK-NEXT:   constType: 1165; CHECK-NEXT:   isPointerToDataMember: 0166; CHECK-NEXT:   isPointerToMemberFunction: 0167; CHECK-NEXT:   RValueReference: 0168; CHECK-NEXT:   reference: 0169; CHECK-NEXT:   restrictedType: 0170; CHECK-NEXT:   unalignedType: 0171; CHECK-NEXT:   volatileType: 0172; CHECK-NEXT: }173; CHECK-NEXT: {174; CHECK-NEXT:   symTag: PointerType175; CHECK-NEXT:   length: 8176; CHECK-NEXT:   constType: 1177; CHECK-NEXT:   isPointerToDataMember: 0178; CHECK-NEXT:   isPointerToMemberFunction: 0179; CHECK-NEXT:   RValueReference: 0180; CHECK-NEXT:   reference: 0181; CHECK-NEXT:   restrictedType: 0182; CHECK-NEXT:   unalignedType: 0183; CHECK-NEXT:   volatileType: 0184; CHECK-NEXT: }185; CHECK-NEXT: {186; CHECK-NEXT:   symTag: PointerType187; CHECK-NEXT:   length: 8188; CHECK-NEXT:   constType: 1189; CHECK-NEXT:   isPointerToDataMember: 0190; CHECK-NEXT:   isPointerToMemberFunction: 0191; CHECK-NEXT:   RValueReference: 0192; CHECK-NEXT:   reference: 0193; CHECK-NEXT:   restrictedType: 0194; CHECK-NEXT:   unalignedType: 0195; CHECK-NEXT:   volatileType: 0196; CHECK-NEXT: }197; CHECK-NEXT: {198; CHECK-NEXT:   symTag: PointerType199; CHECK-NEXT:   length: 8200; CHECK-NEXT:   constType: 1201; CHECK-NEXT:   isPointerToDataMember: 0202; CHECK-NEXT:   isPointerToMemberFunction: 0203; CHECK-NEXT:   RValueReference: 0204; CHECK-NEXT:   reference: 0205; CHECK-NEXT:   restrictedType: 0206; CHECK-NEXT:   unalignedType: 0207; CHECK-NEXT:   volatileType: 0208; CHECK-NEXT: }209; CHECK-NEXT: {210; CHECK-NEXT:   symTag: PointerType211; CHECK-NEXT:   length: 8212; CHECK-NEXT:   constType: 1213; CHECK-NEXT:   isPointerToDataMember: 0214; CHECK-NEXT:   isPointerToMemberFunction: 0215; CHECK-NEXT:   RValueReference: 0216; CHECK-NEXT:   reference: 0217; CHECK-NEXT:   restrictedType: 0218; CHECK-NEXT:   unalignedType: 0219; CHECK-NEXT:   volatileType: 0220; CHECK-NEXT: }221; CHECK-NEXT: {222; CHECK-NEXT:   symTag: PointerType223; CHECK-NEXT:   length: 8224; CHECK-NEXT:   constType: 0225; CHECK-NEXT:   isPointerToDataMember: 0226; CHECK-NEXT:   isPointerToMemberFunction: 0227; CHECK-NEXT:   RValueReference: 0228; CHECK-NEXT:   reference: 0229; CHECK-NEXT:   restrictedType: 0230; CHECK-NEXT:   unalignedType: 0231; CHECK-NEXT:   volatileType: 0232; CHECK-NEXT: }233; CHECK-NEXT: {234; CHECK-NEXT:   symTag: PointerType235; CHECK-NEXT:   length: 8236; CHECK-NEXT:   constType: 0237; CHECK-NEXT:   isPointerToDataMember: 0238; CHECK-NEXT:   isPointerToMemberFunction: 0239; CHECK-NEXT:   RValueReference: 1240; CHECK-NEXT:   reference: 0241; CHECK-NEXT:   restrictedType: 0242; CHECK-NEXT:   unalignedType: 0243; CHECK-NEXT:   volatileType: 0244; CHECK-NEXT: }245; CHECK-NEXT: {246; CHECK-NEXT:   symTag: PointerType247; CHECK-NEXT:   length: 8248; CHECK-NEXT:   constType: 1249; CHECK-NEXT:   isPointerToDataMember: 0250; CHECK-NEXT:   isPointerToMemberFunction: 0251; CHECK-NEXT:   RValueReference: 0252; CHECK-NEXT:   reference: 0253; CHECK-NEXT:   restrictedType: 0254; CHECK-NEXT:   unalignedType: 0255; CHECK-NEXT:   volatileType: 0256; CHECK-NEXT: }257; CHECK-NEXT: {258; CHECK-NEXT:   symTag: PointerType259; CHECK-NEXT:   length: 8260; CHECK-NEXT:   constType: 0261; CHECK-NEXT:   isPointerToDataMember: 0262; CHECK-NEXT:   isPointerToMemberFunction: 1263; CHECK-NEXT:   RValueReference: 0264; CHECK-NEXT:   reference: 0265; CHECK-NEXT:   restrictedType: 0266; CHECK-NEXT:   isSingleInheritance: 1267; CHECK-NEXT:   unalignedType: 0268; CHECK-NEXT:   volatileType: 0269; CHECK-NEXT: }270; CHECK-NEXT: {271; CHECK-NEXT:   symTag: PointerType272; CHECK-NEXT:   length: 4273; CHECK-NEXT:   constType: 0274; CHECK-NEXT:   isPointerToDataMember: 1275; CHECK-NEXT:   isPointerToMemberFunction: 0276; CHECK-NEXT:   RValueReference: 0277; CHECK-NEXT:   reference: 0278; CHECK-NEXT:   restrictedType: 0279; CHECK-NEXT:   isSingleInheritance: 1280; CHECK-NEXT:   unalignedType: 0281; CHECK-NEXT:   volatileType: 0282; CHECK-NEXT: }283; CHECK-NEXT: {284; CHECK-NEXT:   symTag: PointerType285; CHECK-NEXT:   length: 8286; CHECK-NEXT:   constType: 0287; CHECK-NEXT:   isPointerToDataMember: 0288; CHECK-NEXT:   isPointerToMemberFunction: 1289; CHECK-NEXT:   RValueReference: 0290; CHECK-NEXT:   reference: 0291; CHECK-NEXT:   restrictedType: 0292; CHECK-NEXT:   isSingleInheritance: 1293; CHECK-NEXT:   unalignedType: 0294; CHECK-NEXT:   volatileType: 0295; CHECK-NEXT: }296; CHECK-NEXT: {297; CHECK-NEXT:   symTag: PointerType298; CHECK-NEXT:   length: 8299; CHECK-NEXT:   constType: 0300; CHECK-NEXT:   isPointerToDataMember: 0301; CHECK-NEXT:   isPointerToMemberFunction: 0302; CHECK-NEXT:   RValueReference: 0303; CHECK-NEXT:   reference: 0304; CHECK-NEXT:   restrictedType: 0305; CHECK-NEXT:   unalignedType: 0306; CHECK-NEXT:   volatileType: 0307; CHECK-NEXT: }308; CHECK-NEXT: {309; CHECK-NEXT:   symTag: PointerType310; CHECK-NEXT:   length: 8311; CHECK-NEXT:   constType: 0312; CHECK-NEXT:   isPointerToDataMember: 0313; CHECK-NEXT:   isPointerToMemberFunction: 0314; CHECK-NEXT:   RValueReference: 0315; CHECK-NEXT:   reference: 0316; CHECK-NEXT:   restrictedType: 0317; CHECK-NEXT:   unalignedType: 0318; CHECK-NEXT:   volatileType: 0319; CHECK-NEXT: }320; CHECK-NEXT: {321; CHECK-NEXT:   symTag: PointerType322; CHECK-NEXT:   length: 8323; CHECK-NEXT:   constType: 0324; CHECK-NEXT:   isPointerToDataMember: 0325; CHECK-NEXT:   isPointerToMemberFunction: 0326; CHECK-NEXT:   RValueReference: 0327; CHECK-NEXT:   reference: 0328; CHECK-NEXT:   restrictedType: 1329; CHECK-NEXT:   unalignedType: 0330; CHECK-NEXT:   volatileType: 0331; CHECK-NEXT: }332; CHECK-NEXT: {333; CHECK-NEXT:   symTag: PointerType334; CHECK-NEXT:   length: 8335; CHECK-NEXT:   constType: 0336; CHECK-NEXT:   isPointerToDataMember: 0337; CHECK-NEXT:   isPointerToMemberFunction: 0338; CHECK-NEXT:   RValueReference: 0339; CHECK-NEXT:   reference: 0340; CHECK-NEXT:   restrictedType: 0341; CHECK-NEXT:   unalignedType: 0342; CHECK-NEXT:   volatileType: 0343; CHECK-NEXT: }344; CHECK-NEXT: {345; CHECK-NEXT:   symTag: PointerType346; CHECK-NEXT:   length: 8347; CHECK-NEXT:   constType: 0348; CHECK-NEXT:   isPointerToDataMember: 0349; CHECK-NEXT:   isPointerToMemberFunction: 0350; CHECK-NEXT:   RValueReference: 0351; CHECK-NEXT:   reference: 0352; CHECK-NEXT:   restrictedType: 0353; CHECK-NEXT:   unalignedType: 0354; CHECK-NEXT:   volatileType: 0355; CHECK-NEXT: }356; CHECK-NEXT: {357; CHECK-NEXT:   symTag: PointerType358; CHECK-NEXT:   length: 8359; CHECK-NEXT:   constType: 0360; CHECK-NEXT:   isPointerToDataMember: 0361; CHECK-NEXT:   isPointerToMemberFunction: 0362; CHECK-NEXT:   RValueReference: 0363; CHECK-NEXT:   reference: 0364; CHECK-NEXT:   restrictedType: 0365; CHECK-NEXT:   unalignedType: 0366; CHECK-NEXT:   volatileType: 0367; CHECK-NEXT: }368; CHECK-NEXT: {369; CHECK-NEXT:   symTag: PointerType370; CHECK-NEXT:   length: 8371; CHECK-NEXT:   constType: 0372; CHECK-NEXT:   isPointerToDataMember: 0373; CHECK-NEXT:   isPointerToMemberFunction: 0374; CHECK-NEXT:   RValueReference: 1375; CHECK-NEXT:   reference: 0376; CHECK-NEXT:   restrictedType: 0377; CHECK-NEXT:   unalignedType: 0378; CHECK-NEXT:   volatileType: 0379; CHECK-NEXT: }380; CHECK-NEXT: {381; CHECK-NEXT:   symTag: PointerType382; CHECK-NEXT:   length: 8383; CHECK-NEXT:   constType: 0384; CHECK-NEXT:   isPointerToDataMember: 0385; CHECK-NEXT:   isPointerToMemberFunction: 0386; CHECK-NEXT:   RValueReference: 0387; CHECK-NEXT:   reference: 1388; CHECK-NEXT:   restrictedType: 0389; CHECK-NEXT:   unalignedType: 0390; CHECK-NEXT:   volatileType: 0391; CHECK-NEXT: }