From: Nilanjana Basu Date: Sun, 25 Aug 2019 01:09:11 +0000 (+0000) Subject: Removing block comments from CodeView records in assembly files & related code cleanup X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=65de1d1004df9bf26450a1bdc7b7af9411212fea;p=llvm Removing block comments from CodeView records in assembly files & related code cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369860 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h b/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h index 7d20bb0a7bd..7538cb2c254 100644 --- a/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h +++ b/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h @@ -11,7 +11,6 @@ #include "llvm/DebugInfo/CodeView/CVRecord.h" #include "llvm/DebugInfo/CodeView/TypeRecord.h" -#include "llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h" #include "llvm/Support/Error.h" namespace llvm { @@ -31,9 +30,6 @@ enum VisitorDataSource { Error visitTypeRecord(CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source = VDS_BytesPresent); -Error visitTypeRecord(CVType &Record, TypeIndex Index, - TypeVisitorCallbackPipeline &Callbacks, - VisitorDataSource Source = VDS_BytesPresent); Error visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source = VDS_BytesPresent); diff --git a/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h b/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h index 169715be2d5..fb0b579d6a0 100644 --- a/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h +++ b/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h @@ -82,11 +82,6 @@ public: Pipeline.push_back(&Callbacks); } - void addCallbackToPipelineFront(TypeVisitorCallbacks &Callbacks) { - auto CallBackItr = Pipeline.begin(); - Pipeline.insert(CallBackItr, &Callbacks); - } - #define TYPE_RECORD(EnumName, EnumVal, Name) \ Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ return visitKnownRecordImpl(CVR, Record); \ diff --git a/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp index d4b8db088e0..616b1368a7a 100644 --- a/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp +++ b/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp @@ -642,27 +642,8 @@ void CodeViewDebug::emitTypeInformation() { OS.SwitchSection(Asm->getObjFileLowering().getCOFFDebugTypesSection()); emitCodeViewMagicVersion(); - SmallString<8> CommentPrefix; - if (OS.isVerboseAsm()) { - CommentPrefix += '\t'; - CommentPrefix += Asm->MAI->getCommentString(); - CommentPrefix += ' '; - } - TypeTableCollection Table(TypeTable.records()); TypeVisitorCallbackPipeline Pipeline; - SmallString<512> CommentBlock; - raw_svector_ostream CommentOS(CommentBlock); - std::unique_ptr SP; - std::unique_ptr TDV; - - if (OS.isVerboseAsm()) { - // To construct block comment describing the type record for readability. - SP = std::make_unique(CommentOS); - SP->setPrefix(CommentPrefix); - TDV = std::make_unique(Table, SP.get(), false); - Pipeline.addCallbackToPipeline(*TDV); - } // To emit type record using Codeview MCStreamer adapter CVMCAdapter CVMCOS(OS, Table); @@ -674,7 +655,6 @@ void CodeViewDebug::emitTypeInformation() { // This will fail if the record data is invalid. CVType Record = Table.getType(*B); - CommentBlock.clear(); Error E = codeview::visitTypeRecord(Record, *B, Pipeline); if (E) { @@ -682,13 +662,6 @@ void CodeViewDebug::emitTypeInformation() { llvm_unreachable("produced malformed type record"); } - if (OS.isVerboseAsm()) { - // emitRawComment will insert its own tab and comment string before - // the first line, so strip off our first one. It also prints its own - // newline. - OS.emitRawComment( - CommentOS.str().drop_front(CommentPrefix.size() - 1).rtrim()); - } B = Table.getNext(*B); } } diff --git a/lib/DebugInfo/CodeView/CVTypeVisitor.cpp b/lib/DebugInfo/CodeView/CVTypeVisitor.cpp index ec4773d571c..dd6f75f97a4 100644 --- a/lib/DebugInfo/CodeView/CVTypeVisitor.cpp +++ b/lib/DebugInfo/CodeView/CVTypeVisitor.cpp @@ -209,14 +209,6 @@ struct VisitHelper { } } - VisitHelper(TypeVisitorCallbackPipeline &Callbacks, VisitorDataSource Source) - : Visitor((Source == VDS_BytesPresent) ? Pipeline : Callbacks) { - if (Source == VDS_BytesPresent) { - Pipeline = Callbacks; - Pipeline.addCallbackToPipelineFront(Deserializer); - } - } - TypeDeserializer Deserializer; TypeVisitorCallbackPipeline Pipeline; CVTypeVisitor Visitor; @@ -230,13 +222,6 @@ Error llvm::codeview::visitTypeRecord(CVType &Record, TypeIndex Index, return V.Visitor.visitTypeRecord(Record, Index); } -Error llvm::codeview::visitTypeRecord(CVType &Record, TypeIndex Index, - TypeVisitorCallbackPipeline &Callbacks, - VisitorDataSource Source) { - VisitHelper V(Callbacks, Source); - return V.Visitor.visitTypeRecord(Record, Index); -} - Error llvm::codeview::visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source) { diff --git a/test/DebugInfo/COFF/array-odr-violation.ll b/test/DebugInfo/COFF/array-odr-violation.ll index ec83a45190f..0144059df8d 100644 --- a/test/DebugInfo/COFF/array-odr-violation.ll +++ b/test/DebugInfo/COFF/array-odr-violation.ll @@ -17,27 +17,24 @@ ; FIXME: sizeof(a) in the user program is 1, but we claim it is 4 because ; sometimes the frontend lies to us. See array-types-advanced.ll for an example. ; -; CHECK: Array ({{.*}}) { -; CHECK: TypeLeafKind: LF_ARRAY (0x1503) -; CHECK: ElementType: YYSTYPE ({{.*}}) -; CHECK: IndexType: unsigned __int64 (0x23) -; CHECK: SizeOf: 4 -; CHECK: Name: -; CHECK: } +; CHECK: # Array (0x1004) +; CHECK: .short 0xe # Record length +; CHECK: .short 0x1503 # Record kind: LF_ARRAY +; CHECK: .long 0x1003 # ElementType: YYSTYPE +; CHECK: .long 0x23 # IndexType: unsigned __int64 +; CHECK: .short 0x4 # SizeOf +; CHECK: .byte 0 # Name +; CHECK: .byte 241 -; sizeof(YYSTYPE) == 4 -; CHECK: Union ({{.*}}) { -; CHECK: TypeLeafKind: LF_UNION (0x1506) -; CHECK: MemberCount: 1 -; CHECK: Properties [ (0x600) -; CHECK: HasUniqueName (0x200) -; CHECK: Sealed (0x400) -; CHECK: ] -; CHECK: FieldList: -; CHECK: SizeOf: 4 -; CHECK: Name: YYSTYPE -; CHECK: LinkageName: .?ATYYSTYPE@@ -; CHECK: } +; CHECK: # Union (0x1006) +; CHECK: .short 0x22 # Record length +; CHECK: .short 0x1506 # Record kind: LF_UNION +; CHECK: .short 0x1 # MemberCount +; CHECK: .short 0x600 # Properties ( HasUniqueName (0x200) | Sealed (0x400) ) +; CHECK: .long 0x1005 # FieldList: +; CHECK: .short 0x4 # SizeOf +; CHECK: .asciz "YYSTYPE" # Name +; CHECK: .asciz ".?ATYYSTYPE@@" # LinkageName ; ModuleID = 'llvm-link' source_filename = "llvm-link" diff --git a/test/DebugInfo/COFF/class-options-common.ll b/test/DebugInfo/COFF/class-options-common.ll index 0134d38002d..05251d4ba95 100644 --- a/test/DebugInfo/COFF/class-options-common.ll +++ b/test/DebugInfo/COFF/class-options-common.ll @@ -662,17 +662,6 @@ ; ASM-INLINE-COMMENTS: .short 0x3 # Attrs: Public ; ASM-INLINE-COMMENTS: .short 0x0 ; ASM-INLINE-COMMENTS: .long 0x1087 # Type: void Foo::(const Foo&) -; ASM-INLINE-COMMENTS: # MethodOverloadList (0x1088) { -; ASM-INLINE-COMMENTS: # TypeLeafKind: LF_METHODLIST (0x1206) -; ASM-INLINE-COMMENTS: # Method [ -; ASM-INLINE-COMMENTS: # AccessSpecifier: Public (0x3) -; ASM-INLINE-COMMENTS: # Type: void Foo::() (0x1083) -; ASM-INLINE-COMMENTS: # ] -; ASM-INLINE-COMMENTS: # Method [ -; ASM-INLINE-COMMENTS: # AccessSpecifier: Public (0x3) -; ASM-INLINE-COMMENTS: # Type: void Foo::(const Foo&) (0x1087) -; ASM-INLINE-COMMENTS: # ] -; ASM-INLINE-COMMENTS: # } ; ModuleID = 'class-options-common.cpp' diff --git a/test/DebugInfo/COFF/inlining.ll b/test/DebugInfo/COFF/inlining.ll index 981ae5aad8e..1306f6510f2 100644 --- a/test/DebugInfo/COFF/inlining.ll +++ b/test/DebugInfo/COFF/inlining.ll @@ -75,33 +75,30 @@ ; ASM: .section .debug$T,"dr" ; ASM: .long 4 # Debug section magic -; ASM: # ArgList (0x1000) { -; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) -; ASM: # NumArgs: 0 -; ASM: # Arguments [ -; ASM: # ] -; ASM: # } -; ASM: # Procedure (0x1001) { -; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) -; ASM: # ReturnType: void (0x3) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 0 -; ASM: # ArgListType: () (0x1000) -; ASM: # } -; ASM: # FuncId (0x1002) { -; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) -; ASM: # ParentScope: 0x0 -; ASM: # FunctionType: void () (0x1001) -; ASM: # Name: bar -; ASM: # } -; ASM: # FuncId (0x1003) { -; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) -; ASM: # ParentScope: 0x0 -; ASM: # FunctionType: void () (0x1001) -; ASM: # Name: foo -; ASM: # } +; ASM: # ArgList (0x1000) +; ASM: .short 0x6 # Record length +; ASM: .short 0x1201 # Record kind: LF_ARGLIST +; ASM: .long 0x0 # NumArgs +; ASM: # Procedure (0x1001) +; ASM: .short 0xe # Record length +; ASM: .short 0x1008 # Record kind: LF_PROCEDURE +; ASM: .long 0x3 # ReturnType: void +; ASM: .byte 0x0 # CallingConvention: NearC +; ASM: .byte 0x0 # FunctionOptions +; ASM: .short 0x0 # NumParameters +; ASM: .long 0x1000 # ArgListType: () +; ASM: # FuncId (0x1002) +; ASM: .short 0xe # Record length +; ASM: .short 0x1601 # Record kind: LF_FUNC_ID +; ASM: .long 0x0 # ParentScope +; ASM: .long 0x1001 # FunctionType: void () +; ASM: .asciz "bar" # Name +; ASM: # FuncId (0x1003) +; ASM: .short 0xe # Record length +; ASM: .short 0x1601 # Record kind: LF_FUNC_ID +; ASM: .long 0x0 # ParentScope +; ASM: .long 0x1001 # FunctionType: void () +; ASM: .asciz "foo" # Name ; We should only the LF_FUNC_ID records that we needed to reference. ; OBJ: CodeViewTypes [ diff --git a/test/DebugInfo/COFF/pr37492.ll b/test/DebugInfo/COFF/pr37492.ll index 7edff440b67..bdf0bc77d1c 100644 --- a/test/DebugInfo/COFF/pr37492.ll +++ b/test/DebugInfo/COFF/pr37492.ll @@ -12,20 +12,22 @@ ; collision between this LF_BITFIELD and LF_MODIFIER record, so we only emitted ; one under the assumption that the other was redundant. Check that we emit both. -; CHECK-LABEL: # BitField ({{.*}}) { -; CHECK-NEXT: # TypeLeafKind: LF_BITFIELD (0x1205) -; CHECK-NEXT: # Type: unsigned char (0x20) -; CHECK-NEXT: # BitSize: 1 -; CHECK-NEXT: # BitOffset: 0 -; CHECK-NEXT: # } - -; CHECK-LABEL: # Modifier ({{.*}}) { -; CHECK-NEXT: # TypeLeafKind: LF_MODIFIER (0x1001) -; CHECK-NEXT: # ModifiedType: unsigned char (0x20) -; CHECK-NEXT: # Modifiers [ (0x1) -; CHECK-NEXT: # Const (0x1) -; CHECK-NEXT: # ] -; CHECK-NEXT: # } +; CHECK-LABEL: # BitField (0x1001) +; CHECK-NEXT: .short 0xa # Record length +; CHECK-NEXT: .short 0x1205 # Record kind: LF_BITFIELD +; CHECK-NEXT: .long 0x20 # Type: unsigned char +; CHECK-NEXT: .byte 0x1 # BitSize +; CHECK-NEXT: .byte 0x0 # BitOffset +; CHECK-NEXT: .byte 242 +; CHECK-NEXT: .byte 241 + +; CHECK-LABEL: # Modifier (0x1007) +; CHECK-NEXT: .short 0xa # Record length +; CHECK-NEXT: .short 0x1001 # Record kind: LF_MODIFIER +; CHECK-NEXT: .long 0x20 # ModifiedType: unsigned char +; CHECK-NEXT: .short 0x1 # Modifiers ( Const (0x1) ) +; CHECK-NEXT: .byte 242 +; CHECK-NEXT: .byte 241 ; ModuleID = 't.cpp' source_filename = "t.cpp" diff --git a/test/DebugInfo/COFF/synthetic.ll b/test/DebugInfo/COFF/synthetic.ll index aed6c33d519..246244e6b53 100644 --- a/test/DebugInfo/COFF/synthetic.ll +++ b/test/DebugInfo/COFF/synthetic.ll @@ -40,16 +40,16 @@ entry: !27 = !DIDerivedType(tag: DW_TAG_member, name: "Size", scope: !1, file: !1, baseType: !26, size: 32, offset: 32) !28 = !DILocation(line: 1, scope: !6) -; CHECK: # Struct -; CHECK: # TypeLeafKind: LF_STRUCTURE -; CHECK: # MemberCount: 0 -; CHECK: # Properties [ -; CHECK: # ForwardReference -; CHECK: # ] -; CHECK: # FieldList: 0x0 -; CHECK: # DerivedFrom: 0x0 -; CHECK: # VShape: 0x0 -; CHECK: # SizeOf: 0 -; CHECK: # Name: __block_descriptor -; CHECK: # } - +; CHECK: # Struct (0x1003) +; CHECK: .short 0x2a # Record length +; CHECK: .short 0x1505 # Record kind: LF_STRUCTURE +; CHECK: .short 0x0 # MemberCount +; CHECK: .short 0x80 # Properties ( ForwardReference (0x80) ) +; CHECK: .long 0x0 # FieldList +; CHECK: .long 0x0 # DerivedFrom +; CHECK: .long 0x0 # VShape +; CHECK: .short 0x0 # SizeOf +; CHECK: .asciz "__block_descriptor" # Name +; CHECK: .byte 243 +; CHECK: .byte 242 +; CHECK: .byte 241 diff --git a/test/DebugInfo/COFF/types-basic.ll b/test/DebugInfo/COFF/types-basic.ll index 71179a2937d..a3498e4589a 100644 --- a/test/DebugInfo/COFF/types-basic.ll +++ b/test/DebugInfo/COFF/types-basic.ll @@ -357,15 +357,6 @@ ; ASM: .long 0x40 # Argument: float ; ASM: .long 0x41 # Argument: double ; ASM: .long 0x13 # Argument: __int64 -; ASM: # ArgList (0x1000) { -; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) -; ASM: # NumArgs: 3 -; ASM: # Arguments [ -; ASM: # ArgType: float (0x40) -; ASM: # ArgType: double (0x41) -; ASM: # ArgType: __int64 (0x13) -; ASM: # ] -; ASM: # } ; ASM: # Procedure (0x1001) ; ASM: .short 0xe # Record length ; ASM: .short 0x1008 # Record kind: LF_PROCEDURE @@ -374,15 +365,6 @@ ; ASM: .byte 0x0 # FunctionOptions ; ASM: .short 0x3 # NumParameters ; ASM: .long 0x1000 # ArgListType: (float, double, __int64) -; ASM: # Procedure (0x1001) { -; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) -; ASM: # ReturnType: void (0x3) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 3 -; ASM: # ArgListType: (float, double, __int64) (0x1000) -; ASM: # } ; ASM: # FuncId (0x1002) ; ASM: .short 0xe # Record length ; ASM: .short 0x1601 # Record kind: LF_FUNC_ID @@ -391,12 +373,6 @@ ; ASM: .asciz "f" # Name ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # FuncId (0x1002) { -; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) -; ASM: # ParentScope: 0x0 -; ASM: # FunctionType: void (float, double, __int64) (0x1001) -; ASM: # Name: f -; ASM: # } ; ASM: # Modifier (0x1003) ; ASM: .short 0xa # Record length ; ASM: .short 0x1001 # Record kind: LF_MODIFIER @@ -404,32 +380,11 @@ ; ASM: .short 0x1 # Modifiers ( Const (0x1) ) ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Modifier (0x1003) { -; ASM: # TypeLeafKind: LF_MODIFIER (0x1001) -; ASM: # ModifiedType: int (0x74) -; ASM: # Modifiers [ (0x1) -; ASM: # Const (0x1) -; ASM: # ] -; ASM: # } ; ASM: # Pointer (0x1004) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1003 # PointeeType: const int ; ASM: .long 0x1000c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8 ] -; ASM: # Pointer (0x1004) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: const int (0x1003) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # Struct (0x1005) ; ASM: .short 0x16 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -440,18 +395,6 @@ ; ASM: .long 0x0 # VShape ; ASM: .short 0x0 # SizeOf ; ASM: .asciz "A" # Name -; ASM: # Struct (0x1005) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x80) -; ASM: # ForwardReference (0x80) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: A -; ASM: # } ; ASM: # Pointer (0x1006) ; ASM: .short 0x12 # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER @@ -461,51 +404,15 @@ ; ASM: .short 0x4 # Representation: GeneralData ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Pointer (0x1006) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: int (0x74) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: PointerToDataMember (0x2) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 4 -; ASM: # ClassType: A (0x1005) -; ASM: # Representation: GeneralData (0x4) -; ASM: # } ; ASM: # Pointer (0x1007) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1005 # PointeeType: A ; ASM: .long 0x1040c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8, isConst ] -; ASM: # Pointer (0x1007) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: A (0x1005) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 1 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # ArgList (0x1008) ; ASM: .short 0x6 # Record length ; ASM: .short 0x1201 # Record kind: LF_ARGLIST ; ASM: .long 0x0 # NumArgs -; ASM: # ArgList (0x1008) { -; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) -; ASM: # NumArgs: 0 -; ASM: # Arguments [ -; ASM: # ] -; ASM: # } ; ASM: # MemberFunction (0x1009) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1009 # Record kind: LF_MFUNCTION @@ -517,18 +424,6 @@ ; ASM: .short 0x0 # NumParameters ; ASM: .long 0x1008 # ArgListType: () ; ASM: .long 0x0 # ThisAdjustment -; ASM: # MemberFunction (0x1009) { -; ASM: # TypeLeafKind: LF_MFUNCTION (0x1009) -; ASM: # ReturnType: void (0x3) -; ASM: # ClassType: A (0x1005) -; ASM: # ThisType: A* const (0x1007) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 0 -; ASM: # ArgListType: () (0x1008) -; ASM: # ThisAdjustment: 0 -; ASM: # } ; ASM: # FieldList (0x100A) ; ASM: .short 0x1e # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -544,22 +439,6 @@ ; ASM: .byte 243 ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # FieldList (0x100A) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: a -; ASM: # } -; ASM: # OneMethod { -; ASM: # TypeLeafKind: LF_ONEMETHOD (0x1511) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: void A::() (0x1009) -; ASM: # Name: A::f -; ASM: # } -; ASM: # } ; ASM: # Struct (0x100B) ; ASM: .short 0x16 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -570,39 +449,17 @@ ; ASM: .long 0x0 # VShape ; ASM: .short 0x4 # SizeOf ; ASM: .asciz "A" # Name -; ASM: # Struct (0x100B) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 2 -; ASM: # Properties [ (0x0) -; ASM: # ] -; ASM: # FieldList: (0x100A) -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 4 -; ASM: # Name: A -; ASM: # } ; ASM: # StringId (0x100C) ; ASM: .short 0x1e # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID ; ASM: .long 0x0 # Id ; ASM: .asciz "D:\\src\\llvm\\build\\t.cpp" # StringData -; ASM: # StringId (0x100C) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: D:\src\llvm\build\t.cpp -; ASM: # } ; ASM: # UdtSourceLine (0x100D) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x100b # UDT: A ; ASM: .long 0x100c # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0x1 # LineNumber -; ASM: # UdtSourceLine (0x100D) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: A (0x100B) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x100C) -; ASM: # LineNumber: 1 -; ASM: # } ; ASM: # Pointer (0x100E) ; ASM: .short 0x12 # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER @@ -612,22 +469,6 @@ ; ASM: .short 0x8 # Representation: GeneralFunction ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Pointer (0x100E) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: void A::() (0x1009) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: PointerToMemberFunction (0x3) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # ClassType: A (0x1005) -; ASM: # Representation: GeneralFunction (0x8) -; ASM: # } ; ASM: # Modifier (0x100F) ; ASM: .short 0xa # Record length ; ASM: .short 0x1001 # Record kind: LF_MODIFIER @@ -635,32 +476,11 @@ ; ASM: .short 0x1 # Modifiers ( Const (0x1) ) ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Modifier (0x100F) { -; ASM: # TypeLeafKind: LF_MODIFIER (0x1001) -; ASM: # ModifiedType: void (0x3) -; ASM: # Modifiers [ (0x1) -; ASM: # Const (0x1) -; ASM: # ] -; ASM: # } ; ASM: # Pointer (0x1010) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x100f # PointeeType: const void ; ASM: .long 0x1000c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8 ] -; ASM: # Pointer (0x1010) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: const void (0x100F) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # Procedure (0x1011) ; ASM: .short 0xe # Record length ; ASM: .short 0x1008 # Record kind: LF_PROCEDURE @@ -669,15 +489,6 @@ ; ASM: .byte 0x0 # FunctionOptions ; ASM: .short 0x0 # NumParameters ; ASM: .long 0x1008 # ArgListType: () -; ASM: # Procedure (0x1011) { -; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) -; ASM: # ReturnType: void (0x3) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 0 -; ASM: # ArgListType: () (0x1008) -; ASM: # } ; ASM: # FuncId (0x1012) ; ASM: .short 0x16 # Record length ; ASM: .short 0x1601 # Record kind: LF_FUNC_ID @@ -686,12 +497,6 @@ ; ASM: .asciz "CharTypes" # Name ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # FuncId (0x1012) { -; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) -; ASM: # ParentScope: 0x0 -; ASM: # FunctionType: void () (0x1011) -; ASM: # Name: CharTypes -; ASM: # } ; ASM: # StringId (0x1013) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID @@ -699,11 +504,6 @@ ; ASM: .asciz "D:\\src\\llvm\\build" # StringData ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # StringId (0x1013) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: D:\src\llvm\build -; ASM: # } ; ASM: # StringId (0x1014) ; ASM: .short 0xe # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID @@ -711,11 +511,6 @@ ; ASM: .asciz "t.cpp" # StringData ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # StringId (0x1014) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: t.cpp -; ASM: # } ; ASM: # BuildInfo (0x1015) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1603 # Record kind: LF_BUILDINFO @@ -727,17 +522,6 @@ ; ASM: .long 0x0 # Argument ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # BuildInfo (0x1015) { -; ASM: # TypeLeafKind: LF_BUILDINFO (0x1603) -; ASM: # NumArgs: 5 -; ASM: # Arguments [ -; ASM: # ArgType: D:\src\llvm\build (0x1013) -; ASM: # ArgType: 0x0 -; ASM: # ArgType: t.cpp (0x1014) -; ASM: # ArgType: 0x0 -; ASM: # ArgType: 0x0 -; ASM: # ] -; ASM: # } ; ModuleID = 't.cpp' source_filename = "t.cpp" diff --git a/test/DebugInfo/COFF/types-data-members.ll b/test/DebugInfo/COFF/types-data-members.ll index e13e38a475b..23451b0fd42 100644 --- a/test/DebugInfo/COFF/types-data-members.ll +++ b/test/DebugInfo/COFF/types-data-members.ll @@ -397,12 +397,6 @@ ; ASM: .short 0x6 # Record length ; ASM: .short 0x1201 # Record kind: LF_ARGLIST ; ASM: .long 0x0 # NumArgs -; ASM: # ArgList (0x1000) { -; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) -; ASM: # NumArgs: 0 -; ASM: # Arguments [ -; ASM: # ] -; ASM: # } ; ASM: # Procedure (0x1001) ; ASM: .short 0xe # Record length ; ASM: .short 0x1008 # Record kind: LF_PROCEDURE @@ -411,15 +405,6 @@ ; ASM: .byte 0x0 # FunctionOptions ; ASM: .short 0x0 # NumParameters ; ASM: .long 0x1000 # ArgListType: () -; ASM: # Procedure (0x1001) { -; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) -; ASM: # ReturnType: void (0x3) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 0 -; ASM: # ArgListType: () (0x1000) -; ASM: # } ; ASM: # FuncId (0x1002) ; ASM: .short 0x16 # Record length ; ASM: .short 0x1601 # Record kind: LF_FUNC_ID @@ -429,12 +414,6 @@ ; ASM: .byte 243 ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # FuncId (0x1002) { -; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) -; ASM: # ParentScope: 0x0 -; ASM: # FunctionType: void () (0x1001) -; ASM: # Name: UseTypes -; ASM: # } ; ASM: # Struct (0x1003) ; ASM: .short 0x2a # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -448,20 +427,6 @@ ; ASM: .asciz ".?AUStruct@@" # LinkageName ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Struct (0x1003) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x280) -; ASM: # ForwardReference (0x80) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: Struct -; ASM: # LinkageName: .?AUStruct@@ -; ASM: # } ; ASM: # Modifier (0x1004) ; ASM: .short 0xa # Record length ; ASM: .short 0x1001 # Record kind: LF_MODIFIER @@ -469,13 +434,6 @@ ; ASM: .short 0x1 # Modifiers ( Const (0x1) ) ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Modifier (0x1004) { -; ASM: # TypeLeafKind: LF_MODIFIER (0x1001) -; ASM: # ModifiedType: int (0x74) -; ASM: # Modifiers [ (0x1) -; ASM: # Const (0x1) -; ASM: # ] -; ASM: # } ; ASM: # FieldList (0x1005) ; ASM: .short 0x3e # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -507,36 +465,6 @@ ; ASM: .short 0x3 # Attrs: Public ; ASM: .long 0x1004 # Type: const int ; ASM: .asciz "sdm" # Name -; ASM: # FieldList (0x1005) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: s1 -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x4 -; ASM: # Name: s2 -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x8 -; ASM: # Name: s3 -; ASM: # } -; ASM: # StaticDataMember { -; ASM: # TypeLeafKind: LF_STMEMBER (0x150E) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: const int (0x1004) -; ASM: # Name: sdm -; ASM: # } -; ASM: # } ; ASM: # Struct (0x1006) ; ASM: .short 0x2a # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -550,41 +478,17 @@ ; ASM: .asciz ".?AUStruct@@" # LinkageName ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Struct (0x1006) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 4 -; ASM: # Properties [ (0x200) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: (0x1005) -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 12 -; ASM: # Name: Struct -; ASM: # LinkageName: .?AUStruct@@ -; ASM: # } ; ASM: # StringId (0x1007) ; ASM: .short 0x1e # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID ; ASM: .long 0x0 # Id ; ASM: .asciz "D:\\src\\llvm\\build\\t.cpp" # StringData -; ASM: # StringId (0x1007) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: D:\src\llvm\build\t.cpp -; ASM: # } ; ASM: # UdtSourceLine (0x1008) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x1006 # UDT: Struct ; ASM: .long 0x1007 # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0x1 # LineNumber -; ASM: # UdtSourceLine (0x1008) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: Struct (0x1006) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x1007) -; ASM: # LineNumber: 1 -; ASM: # } ; ASM: # Union (0x1009) ; ASM: .short 0x1e # Record length ; ASM: .short 0x1506 # Record kind: LF_UNION @@ -594,18 +498,6 @@ ; ASM: .short 0x0 # SizeOf ; ASM: .asciz "Union" # Name ; ASM: .asciz ".?ATUnion@@" # LinkageName -; ASM: # Union (0x1009) { -; ASM: # TypeLeafKind: LF_UNION (0x1506) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x280) -; ASM: # ForwardReference (0x80) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: Union -; ASM: # LinkageName: .?ATUnion@@ -; ASM: # } ; ASM: # FieldList (0x100A) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -619,23 +511,6 @@ ; ASM: .long 0x40 # Type: float ; ASM: .short 0x0 # FieldOffset ; ASM: .asciz "b" # Name -; ASM: # FieldList (0x100A) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: a -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: float (0x40) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: b -; ASM: # } -; ASM: # } ; ASM: # Union (0x100B) ; ASM: .short 0x1e # Record length ; ASM: .short 0x1506 # Record kind: LF_UNION @@ -645,30 +520,12 @@ ; ASM: .short 0x4 # SizeOf ; ASM: .asciz "Union" # Name ; ASM: .asciz ".?ATUnion@@" # LinkageName -; ASM: # Union (0x100B) { -; ASM: # TypeLeafKind: LF_UNION (0x1506) -; ASM: # MemberCount: 2 -; ASM: # Properties [ (0x600) -; ASM: # HasUniqueName (0x200) -; ASM: # Sealed (0x400) -; ASM: # ] -; ASM: # FieldList: (0x100A) -; ASM: # SizeOf: 4 -; ASM: # Name: Union -; ASM: # LinkageName: .?ATUnion@@ -; ASM: # } ; ASM: # UdtSourceLine (0x100C) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x100b # UDT: Union ; ASM: .long 0x1007 # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0x7 # LineNumber -; ASM: # UdtSourceLine (0x100C) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: Union (0x100B) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x1007) -; ASM: # LineNumber: 7 -; ASM: # } ; ASM: # Class (0x100D) ; ASM: .short 0x26 # Record length ; ASM: .short 0x1504 # Record kind: LF_CLASS @@ -680,20 +537,6 @@ ; ASM: .short 0x0 # SizeOf ; ASM: .asciz "Class" # Name ; ASM: .asciz ".?AVClass@@" # LinkageName -; ASM: # Class (0x100D) { -; ASM: # TypeLeafKind: LF_CLASS (0x1504) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x280) -; ASM: # ForwardReference (0x80) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: Class -; ASM: # LinkageName: .?AVClass@@ -; ASM: # } ; ASM: # FieldList (0x100E) ; ASM: .short 0x32 # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -716,30 +559,6 @@ ; ASM: .short 0x8 # FieldOffset ; ASM: .asciz "prot" # Name ; ASM: .byte 241 -; ASM: # FieldList (0x100E) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: pub -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Private (0x1) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x4 -; ASM: # Name: priv -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Protected (0x2) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x8 -; ASM: # Name: prot -; ASM: # } -; ASM: # } ; ASM: # Class (0x100F) ; ASM: .short 0x26 # Record length ; ASM: .short 0x1504 # Record kind: LF_CLASS @@ -751,31 +570,12 @@ ; ASM: .short 0xc # SizeOf ; ASM: .asciz "Class" # Name ; ASM: .asciz ".?AVClass@@" # LinkageName -; ASM: # Class (0x100F) { -; ASM: # TypeLeafKind: LF_CLASS (0x1504) -; ASM: # MemberCount: 3 -; ASM: # Properties [ (0x200) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: (0x100E) -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 12 -; ASM: # Name: Class -; ASM: # LinkageName: .?AVClass@@ -; ASM: # } ; ASM: # UdtSourceLine (0x1010) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x100f # UDT: Class ; ASM: .long 0x1007 # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0xb # LineNumber -; ASM: # UdtSourceLine (0x1010) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: Class (0x100F) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x1007) -; ASM: # LineNumber: 11 -; ASM: # } ; ASM: # Struct (0x1011) ; ASM: .short 0x36 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -789,68 +589,22 @@ ; ASM: .asciz ".?AUDerivedClass@@" # LinkageName ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Struct (0x1011) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x280) -; ASM: # ForwardReference (0x80) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: DerivedClass -; ASM: # LinkageName: .?AUDerivedClass@@ -; ASM: # } ; ASM: # Pointer (0x1012) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1004 # PointeeType: const int ; ASM: .long 0x1000c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8 ] -; ASM: # Pointer (0x1012) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: const int (0x1004) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # VFTableShape (0x1013) ; ASM: .short 0x6 # Record length ; ASM: .short 0xa # Record kind: LF_VTSHAPE ; ASM: .short 0x1 # VFEntryCount ; ASM: .byte 0x0 ; ASM: .byte 241 -; ASM: # VFTableShape (0x1013) { -; ASM: # TypeLeafKind: LF_VTSHAPE (0xA) -; ASM: # VFEntryCount: 1 -; ASM: # } ; ASM: # Pointer (0x1014) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1013 # PointeeType: ; ASM: .long 0x1000c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8 ] -; ASM: # Pointer (0x1014) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: (0x1013) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # FieldList (0x1015) ; ASM: .short 0x32 # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -874,34 +628,6 @@ ; ASM: .long 0x74 # Type: int ; ASM: .short 0x18 # FieldOffset ; ASM: .asciz "d" # Name -; ASM: # FieldList (0x1015) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # BaseClass { -; ASM: # TypeLeafKind: LF_BCLASS (0x1400) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # BaseType: Struct (0x1003) -; ASM: # BaseOffset: 0x0 -; ASM: # } -; ASM: # VirtualBaseClass { -; ASM: # TypeLeafKind: LF_VBCLASS (0x1401) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # BaseType: Class (0x100D) -; ASM: # VBPtrType: const int* (0x1012) -; ASM: # VBPtrOffset: 0x0 -; ASM: # VBTableIndex: 0x1 -; ASM: # } -; ASM: # VFPtr { -; ASM: # TypeLeafKind: LF_VFUNCTAB (0x1409) -; ASM: # Type: * (0x1014) -; ASM: # } -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x18 -; ASM: # Name: d -; ASM: # } -; ASM: # } ; ASM: # Struct (0x1016) ; ASM: .short 0x36 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -915,31 +641,12 @@ ; ASM: .asciz ".?AUDerivedClass@@" # LinkageName ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # Struct (0x1016) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 4 -; ASM: # Properties [ (0x200) -; ASM: # HasUniqueName (0x200) -; ASM: # ] -; ASM: # FieldList: (0x1015) -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 48 -; ASM: # Name: DerivedClass -; ASM: # LinkageName: .?AUDerivedClass@@ -; ASM: # } ; ASM: # UdtSourceLine (0x1017) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x1016 # UDT: DerivedClass ; ASM: .long 0x1007 # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0x14 # LineNumber -; ASM: # UdtSourceLine (0x1017) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: DerivedClass (0x1016) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x1007) -; ASM: # LineNumber: 20 -; ASM: # } ; ASM: # Struct (0x1018) ; ASM: .short 0x36 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -952,21 +659,6 @@ ; ASM: .asciz "Class::Nested" # Name ; ASM: .asciz ".?AUNested@Class@@" # LinkageName ; ASM: .byte 241 -; ASM: # Struct (0x1018) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 0 -; ASM: # Properties [ (0x288) -; ASM: # ForwardReference (0x80) -; ASM: # HasUniqueName (0x200) -; ASM: # Nested (0x8) -; ASM: # ] -; ASM: # FieldList: 0x0 -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 0 -; ASM: # Name: Class::Nested -; ASM: # LinkageName: .?AUNested@Class@@ -; ASM: # } ; ASM: # FieldList (0x1019) ; ASM: .short 0xe # Record length ; ASM: .short 0x1203 # Record kind: LF_FIELDLIST @@ -975,16 +667,6 @@ ; ASM: .long 0x74 # Type: int ; ASM: .short 0x0 # FieldOffset ; ASM: .asciz "n" # Name -; ASM: # FieldList (0x1019) { -; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) -; ASM: # DataMember { -; ASM: # TypeLeafKind: LF_MEMBER (0x150D) -; ASM: # AccessSpecifier: Public (0x3) -; ASM: # Type: int (0x74) -; ASM: # FieldOffset: 0x0 -; ASM: # Name: n -; ASM: # } -; ASM: # } ; ASM: # Struct (0x101A) ; ASM: .short 0x36 # Record length ; ASM: .short 0x1505 # Record kind: LF_STRUCTURE @@ -997,51 +679,17 @@ ; ASM: .asciz "Class::Nested" # Name ; ASM: .asciz ".?AUNested@Class@@" # LinkageName ; ASM: .byte 241 -; ASM: # Struct (0x101A) { -; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) -; ASM: # MemberCount: 1 -; ASM: # Properties [ (0x208) -; ASM: # HasUniqueName (0x200) -; ASM: # Nested (0x8) -; ASM: # ] -; ASM: # FieldList: (0x1019) -; ASM: # DerivedFrom: 0x0 -; ASM: # VShape: 0x0 -; ASM: # SizeOf: 4 -; ASM: # Name: Class::Nested -; ASM: # LinkageName: .?AUNested@Class@@ -; ASM: # } ; ASM: # UdtSourceLine (0x101B) ; ASM: .short 0xe # Record length ; ASM: .short 0x1606 # Record kind: LF_UDT_SRC_LINE ; ASM: .long 0x101a # UDT: Class::Nested ; ASM: .long 0x1007 # SourceFile: D:\src\llvm\build\t.cpp ; ASM: .long 0x17 # LineNumber -; ASM: # UdtSourceLine (0x101B) { -; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) -; ASM: # UDT: Class::Nested (0x101A) -; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x1007) -; ASM: # LineNumber: 23 -; ASM: # } ; ASM: # Pointer (0x101C) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1011 # PointeeType: DerivedClass ; ASM: .long 0x1040c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8, isConst ] -; ASM: # Pointer (0x101C) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: DerivedClass (0x1011) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 1 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # MemberFunction (0x101D) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1009 # Record kind: LF_MFUNCTION @@ -1053,18 +701,6 @@ ; ASM: .short 0x0 # NumParameters ; ASM: .long 0x1000 # ArgListType: () ; ASM: .long 0x0 # ThisAdjustment -; ASM: # MemberFunction (0x101D) { -; ASM: # TypeLeafKind: LF_MFUNCTION (0x1009) -; ASM: # ReturnType: void (0x3) -; ASM: # ClassType: DerivedClass (0x1011) -; ASM: # ThisType: DerivedClass* const (0x101C) -; ASM: # CallingConvention: NearC (0x0) -; ASM: # FunctionOptions [ (0x0) -; ASM: # ] -; ASM: # NumParameters: 0 -; ASM: # ArgListType: () (0x1000) -; ASM: # ThisAdjustment: 0 -; ASM: # } ; ASM: # MemberFuncId (0x101E) ; ASM: .short 0x26 # Record length ; ASM: .short 0x1602 # Record kind: LF_MFUNC_ID @@ -1072,31 +708,11 @@ ; ASM: .long 0x101d # FunctionType: void DerivedClass::() ; ASM: .asciz "DerivedClass::DerivedClass" # Name ; ASM: .byte 241 -; ASM: # MemberFuncId (0x101E) { -; ASM: # TypeLeafKind: LF_MFUNC_ID (0x1602) -; ASM: # ClassType: DerivedClass (0x1011) -; ASM: # FunctionType: void DerivedClass::() (0x101D) -; ASM: # Name: DerivedClass::DerivedClass -; ASM: # } ; ASM: # Pointer (0x101F) ; ASM: .short 0xa # Record length ; ASM: .short 0x1002 # Record kind: LF_POINTER ; ASM: .long 0x1011 # PointeeType: DerivedClass ; ASM: .long 0x1000c # Attrs: [ Type: Near64, Mode: Pointer, SizeOf: 8 ] -; ASM: # Pointer (0x101F) { -; ASM: # TypeLeafKind: LF_POINTER (0x1002) -; ASM: # PointeeType: DerivedClass (0x1011) -; ASM: # PtrType: Near64 (0xC) -; ASM: # PtrMode: Pointer (0x0) -; ASM: # IsFlat: 0 -; ASM: # IsConst: 0 -; ASM: # IsVolatile: 0 -; ASM: # IsUnaligned: 0 -; ASM: # IsRestrict: 0 -; ASM: # IsThisPtr&: 0 -; ASM: # IsThisPtr&&: 0 -; ASM: # SizeOf: 8 -; ASM: # } ; ASM: # StringId (0x1020) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID @@ -1104,11 +720,6 @@ ; ASM: .asciz "D:\\src\\llvm\\build" # StringData ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # StringId (0x1020) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: D:\src\llvm\build -; ASM: # } ; ASM: # StringId (0x1021) ; ASM: .short 0xe # Record length ; ASM: .short 0x1605 # Record kind: LF_STRING_ID @@ -1116,11 +727,6 @@ ; ASM: .asciz "t.cpp" # StringData ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # StringId (0x1021) { -; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) -; ASM: # Id: 0x0 -; ASM: # StringData: t.cpp -; ASM: # } ; ASM: # BuildInfo (0x1022) ; ASM: .short 0x1a # Record length ; ASM: .short 0x1603 # Record kind: LF_BUILDINFO @@ -1132,17 +738,6 @@ ; ASM: .long 0x0 # Argument ; ASM: .byte 242 ; ASM: .byte 241 -; ASM: # BuildInfo (0x1022) { -; ASM: # TypeLeafKind: LF_BUILDINFO (0x1603) -; ASM: # NumArgs: 5 -; ASM: # Arguments [ -; ASM: # ArgType: D:\src\llvm\build (0x1020) -; ASM: # ArgType: 0x0 -; ASM: # ArgType: t.cpp (0x1021) -; ASM: # ArgType: 0x0 -; ASM: # ArgType: 0x0 -; ASM: # ] -; ASM: # } ; ModuleID = 't.cpp' source_filename = "t.cpp"