[llvm] r273495 - [codeview] Write LF_UDT_SRC_LINE records (PR28251)
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 22 14:22:13 PDT 2016
Author: hans
Date: Wed Jun 22 16:22:13 2016
New Revision: 273495
URL: http://llvm.org/viewvc/llvm-project?rev=273495&view=rev
Log:
[codeview] Write LF_UDT_SRC_LINE records (PR28251)
Differential Revision: http://reviews.llvm.org/D21621
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
llvm/trunk/test/DebugInfo/COFF/defer-complete-type.ll
llvm/trunk/test/DebugInfo/COFF/types-basic.ll
llvm/trunk/test/DebugInfo/COFF/types-calling-conv.ll
llvm/trunk/test/DebugInfo/COFF/types-data-members.ll
llvm/trunk/test/DebugInfo/COFF/types-non-virtual-methods.ll
llvm/trunk/test/DebugInfo/COFF/types-recursive-struct.ll
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Wed Jun 22 16:22:13 2016
@@ -1406,10 +1406,17 @@ TypeIndex CodeViewDebug::lowerCompleteTy
getFullyQualifiedName(Ty->getScope().resolve(), Ty->getName());
uint64_t SizeInBytes = Ty->getSizeInBits() / 8;
- return TypeTable.writeClass(ClassRecord(
+
+ TypeIndex ClassTI = TypeTable.writeClass(ClassRecord(
Kind, FieldCount, CO, HfaKind::None, WindowsRTClassKind::None, FieldTI,
TypeIndex(), VShapeTI, SizeInBytes, FullName, Ty->getIdentifier()));
- // FIXME: Make an LF_UDT_SRC_LINE record.
+
+ TypeTable.writeUdtSourceLine(UdtSourceLineRecord(
+ ClassTI, TypeTable.writeStringId(StringIdRecord(
+ TypeIndex(0x0), getFullFilepath(Ty->getFile()))),
+ Ty->getLine()));
+
+ return ClassTI;
}
TypeIndex CodeViewDebug::lowerTypeUnion(const DICompositeType *Ty) {
@@ -1433,10 +1440,17 @@ TypeIndex CodeViewDebug::lowerCompleteTy
uint64_t SizeInBytes = Ty->getSizeInBits() / 8;
std::string FullName =
getFullyQualifiedName(Ty->getScope().resolve(), Ty->getName());
- return TypeTable.writeUnion(UnionRecord(FieldCount, CO, HfaKind::None,
- FieldTI, SizeInBytes, FullName,
- Ty->getIdentifier()));
- // FIXME: Make an LF_UDT_SRC_LINE record.
+
+ TypeIndex UnionTI = TypeTable.writeUnion(
+ UnionRecord(FieldCount, CO, HfaKind::None, FieldTI, SizeInBytes, FullName,
+ Ty->getIdentifier()));
+
+ TypeTable.writeUdtSourceLine(UdtSourceLineRecord(
+ UnionTI, TypeTable.writeStringId(StringIdRecord(
+ TypeIndex(0x0), getFullFilepath(Ty->getFile()))),
+ Ty->getLine()));
+
+ return UnionTI;
}
std::tuple<TypeIndex, TypeIndex, unsigned>
Modified: llvm/trunk/test/DebugInfo/COFF/defer-complete-type.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/defer-complete-type.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/defer-complete-type.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/defer-complete-type.ll Wed Jun 22 16:22:13 2016
@@ -103,7 +103,18 @@
; CHECK: Name: A
; CHECK: LinkageName: .?AUA@@
; CHECK: }
-; CHECK: FieldList (0x1008) {
+; CHECK: StringId (0x1008) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: D:\src\llvm\build\t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x1009) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: A (0x1007)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1008)
+; CHECK: LineNumber: 2
+; CHECK: }
+; CHECK: FieldList (0x100A) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
@@ -112,20 +123,26 @@
; CHECK: Name: b
; CHECK: }
; CHECK: }
-; CHECK: Struct (0x1009) {
+; CHECK: Struct (0x100B) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 1
; CHECK: Properties [ (0x200)
; CHECK: HasUniqueName (0x200)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1008)
+; CHECK: FieldList: <field list> (0x100A)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 4
; CHECK: Name: B
; CHECK: LinkageName: .?AUB@@
; CHECK: }
-; CHECK: FuncId (0x100A) {
+; CHECK: UdtSourceLine (0x100C) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: B (0x100B)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1008)
+; CHECK: LineNumber: 1
+; CHECK: }
+; CHECK: FuncId (0x100D) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
; CHECK: FunctionType: int (A*) (0x1003)
Modified: llvm/trunk/test/DebugInfo/COFF/types-basic.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-basic.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-basic.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-basic.ll Wed Jun 22 16:22:13 2016
@@ -156,7 +156,18 @@
; CHECK: SizeOf: 4
; CHECK: Name: A
; CHECK: }
-; CHECK: Pointer (0x100C) {
+; CHECK: StringId (0x100C) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: D:\src\llvm\build\t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x100D) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: A (0x100B)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x100C)
+; CHECK: LineNumber: 1
+; CHECK: }
+; CHECK: Pointer (0x100E) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
; CHECK: PointeeType: void A::() (0x1009)
; CHECK: PointerAttributes: 0x1006C
@@ -169,16 +180,16 @@
; CHECK: ClassType: A (0x1005)
; CHECK: Representation: GeneralFunction (0x8)
; CHECK: }
-; CHECK: Modifier (0x100D) {
+; CHECK: Modifier (0x100F) {
; CHECK: TypeLeafKind: LF_MODIFIER (0x1001)
; CHECK: ModifiedType: void (0x3)
; CHECK: Modifiers [ (0x1)
; CHECK: Const (0x1)
; CHECK: ]
; CHECK: }
-; CHECK: Pointer (0x100E) {
+; CHECK: Pointer (0x1010) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
-; CHECK: PointeeType: const void (0x100D)
+; CHECK: PointeeType: const void (0x100F)
; CHECK: PointerAttributes: 0x1000C
; CHECK: PtrType: Near64 (0xC)
; CHECK: PtrMode: Pointer (0x0)
@@ -187,7 +198,7 @@
; CHECK: IsVolatile: 0
; CHECK: IsUnaligned: 0
; CHECK: }
-; CHECK: Procedure (0x100F) {
+; CHECK: Procedure (0x1011) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: void (0x3)
; CHECK: CallingConvention: NearC (0x0)
@@ -196,10 +207,10 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1008)
; CHECK: }
-; CHECK: FuncId (0x1010) {
+; CHECK: FuncId (0x1012) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
-; CHECK: FunctionType: void () (0x100F)
+; CHECK: FunctionType: void () (0x1011)
; CHECK: Name: CharTypes
; CHECK: }
; CHECK: ]
@@ -260,7 +271,7 @@
; CHECK: VarName: v4
; CHECK: }
; CHECK: Local {
-; CHECK: Type: void A::() A::* (0x100C)
+; CHECK: Type: void A::() A::* (0x100E)
; CHECK: VarName: v5
; CHECK: }
; CHECK: Local {
@@ -280,7 +291,7 @@
; CHECK: VarName: l4
; CHECK: }
; CHECK: Local {
-; CHECK: Type: const void* (0x100E)
+; CHECK: Type: const void* (0x1010)
; CHECK: VarName: v6
; CHECK: }
; CHECK: ProcEnd {
@@ -288,7 +299,7 @@
; CHECK: ]
; CHECK: Subsection [
; CHECK: ProcStart {
-; CHECK: Type: CharTypes (0x1010)
+; CHECK: Type: CharTypes (0x1012)
; CHECK: DisplayName: CharTypes
; CHECK: LinkageName: ?CharTypes@@YAXXZ
; CHECK: }
Modified: llvm/trunk/test/DebugInfo/COFF/types-calling-conv.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-calling-conv.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-calling-conv.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-calling-conv.ll Wed Jun 22 16:22:13 2016
@@ -76,13 +76,24 @@
; CHECK: SizeOf: 1
; CHECK: Name: A
; CHECK: }
-; CHECK: MemberFuncId (0x1006) {
+; CHECK: StringId (0x1006) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: D:\src\llvm\build\t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x1007) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: A (0x1005)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1006)
+; CHECK: LineNumber: 1
+; CHECK: }
+; CHECK: MemberFuncId (0x1008) {
; CHECK: TypeLeafKind: LF_MFUNC_ID (0x1602)
; CHECK: ClassType: A (0x1000)
; CHECK: FunctionType: void A::() (0x1003)
; CHECK: Name: A::thiscallcc
; CHECK: }
-; CHECK: Procedure (0x1007) {
+; CHECK: Procedure (0x1009) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: void (0x3)
; CHECK: CallingConvention: NearC (0x0)
@@ -91,13 +102,13 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1002)
; CHECK: }
-; CHECK: FuncId (0x1008) {
+; CHECK: FuncId (0x100A) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
-; CHECK: FunctionType: void () (0x1007)
+; CHECK: FunctionType: void () (0x1009)
; CHECK: Name: cdeclcc
; CHECK: }
-; CHECK: Procedure (0x1009) {
+; CHECK: Procedure (0x100B) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: void (0x3)
; CHECK: CallingConvention: NearFast (0x4)
@@ -106,13 +117,13 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1002)
; CHECK: }
-; CHECK: FuncId (0x100A) {
+; CHECK: FuncId (0x100C) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
-; CHECK: FunctionType: void () (0x1009)
+; CHECK: FunctionType: void () (0x100B)
; CHECK: Name: fastcallcc
; CHECK: }
-; CHECK: Procedure (0x100B) {
+; CHECK: Procedure (0x100D) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: void (0x3)
; CHECK: CallingConvention: NearStdCall (0x7)
@@ -121,13 +132,13 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1002)
; CHECK: }
-; CHECK: FuncId (0x100C) {
+; CHECK: FuncId (0x100E) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
-; CHECK: FunctionType: void () (0x100B)
+; CHECK: FunctionType: void () (0x100D)
; CHECK: Name: stdcallcc
; CHECK: }
-; CHECK: Procedure (0x100D) {
+; CHECK: Procedure (0x100F) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: void (0x3)
; CHECK: CallingConvention: NearVector (0x18)
@@ -136,10 +147,10 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1002)
; CHECK: }
-; CHECK: FuncId (0x100E) {
+; CHECK: FuncId (0x1010) {
; CHECK: TypeLeafKind: LF_FUNC_ID (0x1601)
; CHECK: ParentScope: 0x0
-; CHECK: FunctionType: void () (0x100D)
+; CHECK: FunctionType: void () (0x100F)
; CHECK: Name: vectorcallcc
; CHECK: }
; CHECK: ]
Modified: llvm/trunk/test/DebugInfo/COFF/types-data-members.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-data-members.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-data-members.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-data-members.ll Wed Jun 22 16:22:13 2016
@@ -120,7 +120,18 @@
; CHECK: Name: Struct
; CHECK: LinkageName: .?AUStruct@@
; CHECK: }
-; CHECK: Union (0x1007) {
+; CHECK: StringId (0x1007) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: D:\src\llvm\build\t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x1008) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: Struct (0x1006)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1007)
+; CHECK: LineNumber: 1
+; CHECK: }
+; CHECK: Union (0x1009) {
; CHECK: TypeLeafKind: LF_UNION (0x1506)
; CHECK: MemberCount: 0
; CHECK: Properties [ (0x280)
@@ -132,7 +143,7 @@
; CHECK: Name: Union
; CHECK: LinkageName: .?ATUnion@@
; CHECK: }
-; CHECK: FieldList (0x1008) {
+; CHECK: FieldList (0x100A) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
@@ -147,18 +158,24 @@
; CHECK: Name: b
; CHECK: }
; CHECK: }
-; CHECK: Union (0x1009) {
+; CHECK: Union (0x100B) {
; CHECK: TypeLeafKind: LF_UNION (0x1506)
; CHECK: MemberCount: 2
; CHECK: Properties [ (0x200)
; CHECK: HasUniqueName (0x200)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1008)
+; CHECK: FieldList: <field list> (0x100A)
; CHECK: SizeOf: 4
; CHECK: Name: Union
; CHECK: LinkageName: .?ATUnion@@
; CHECK: }
-; CHECK: Class (0x100A) {
+; CHECK: UdtSourceLine (0x100C) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: Union (0x100B)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1007)
+; CHECK: LineNumber: 7
+; CHECK: }
+; CHECK: Class (0x100D) {
; CHECK: TypeLeafKind: LF_CLASS (0x1504)
; CHECK: MemberCount: 0
; CHECK: Properties [ (0x280)
@@ -170,8 +187,9 @@
; CHECK: VShape: 0x0
; CHECK: SizeOf: 0
; CHECK: Name: Class
+; CHECK: LinkageName: .?AVClass@@
; CHECK: }
-; CHECK: FieldList (0x100B) {
+; CHECK: FieldList (0x100E) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
@@ -192,19 +210,26 @@
; CHECK: Name: prot
; CHECK: }
; CHECK: }
-; CHECK: Class (0x100C) {
+; CHECK: Class (0x100F) {
; CHECK: TypeLeafKind: LF_CLASS (0x1504)
; CHECK: MemberCount: 3
; CHECK: Properties [ (0x200)
; CHECK: HasUniqueName (0x200)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x100B)
+; CHECK: FieldList: <field list> (0x100E)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 12
; CHECK: Name: Class
+; CHECK: LinkageName: .?AVClass@@
; CHECK: }
-; CHECK: Struct (0x100D) {
+; CHECK: UdtSourceLine (0x1010) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: Class (0x100F)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1007)
+; CHECK: LineNumber: 11
+; CHECK: }
+; CHECK: Struct (0x1011) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 0
; CHECK: Properties [ (0x280)
@@ -218,7 +243,7 @@
; CHECK: Name: DerivedClass
; CHECK: LinkageName: .?AUDerivedClass@@
; CHECK: }
-; CHECK: Procedure (0x100E) {
+; CHECK: Procedure (0x1012) {
; CHECK: TypeLeafKind: LF_PROCEDURE (0x1008)
; CHECK: ReturnType: int (0x74)
; CHECK: CallingConvention: NearC (0x0)
@@ -227,9 +252,9 @@
; CHECK: NumParameters: 0
; CHECK: ArgListType: () (0x1000)
; CHECK: }
-; CHECK: Pointer (0x100F) {
+; CHECK: Pointer (0x1013) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
-; CHECK: PointeeType: int () (0x100E)
+; CHECK: PointeeType: int () (0x1012)
; CHECK: PointerAttributes: 0x1000C
; CHECK: PtrType: Near64 (0xC)
; CHECK: PtrMode: Pointer (0x0)
@@ -237,10 +262,11 @@
; CHECK: IsConst: 0
; CHECK: IsVolatile: 0
; CHECK: IsUnaligned: 0
+; CHECK: SizeOf: 8
; CHECK: }
-; CHECK: Pointer (0x1010) {
+; CHECK: Pointer (0x1014) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
-; CHECK: PointeeType: int ()* (0x100F)
+; CHECK: PointeeType: int ()* (0x1013)
; CHECK: PointerAttributes: 0x1000C
; CHECK: PtrType: Near64 (0xC)
; CHECK: PtrMode: Pointer (0x0)
@@ -248,12 +274,13 @@
; CHECK: IsConst: 0
; CHECK: IsVolatile: 0
; CHECK: IsUnaligned: 0
+; CHECK: SizeOf: 8
; CHECK: }
-; CHECK: FieldList (0x1011) {
+; CHECK: FieldList (0x1015) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
-; CHECK: Type: int ()** (0x1010)
+; CHECK: Type: int ()** (0x1014)
; CHECK: FieldOffset: 0x0
; CHECK: Name: _vptr$DerivedClass
; CHECK: }
@@ -264,20 +291,26 @@
; CHECK: Name: d
; CHECK: }
; CHECK: }
-; CHECK: Struct (0x1012) {
+; CHECK: Struct (0x1016) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 2
; CHECK: Properties [ (0x200)
; CHECK: HasUniqueName (0x200)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1011)
+; CHECK: FieldList: <field list> (0x1015)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 48
; CHECK: Name: DerivedClass
; CHECK: LinkageName: .?AUDerivedClass@@
; CHECK: }
-; CHECK: Struct (0x1013) {
+; CHECK: UdtSourceLine (0x1017) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: DerivedClass (0x1016)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1007)
+; CHECK: LineNumber: 20
+; CHECK: }
+; CHECK: Struct (0x1018) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 0
; CHECK: Properties [ (0x280)
@@ -291,7 +324,7 @@
; CHECK: Name: Class::Nested
; CHECK: LinkageName: .?AUNested at Class@@
; CHECK: }
-; CHECK: FieldList (0x1014) {
+; CHECK: FieldList (0x1019) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
@@ -300,22 +333,28 @@
; CHECK: Name: n
; CHECK: }
; CHECK: }
-; CHECK: Struct (0x1015) {
+; CHECK: Struct (0x101A) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 1
; CHECK: Properties [ (0x200)
; CHECK: HasUniqueName (0x200)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1014)
+; CHECK: FieldList: <field list> (0x1019)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 4
; CHECK: Name: Class::Nested
; CHECK: LinkageName: .?AUNested at Class@@
; CHECK: }
-; CHECK: Pointer (0x1016) {
+; CHECK: UdtSourceLine (0x101B) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: Class::Nested (0x101A)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1007)
+; CHECK: LineNumber: 23
+; CHECK: }
+; CHECK: Pointer (0x101C) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
-; CHECK: PointeeType: DerivedClass (0x100D)
+; CHECK: PointeeType: DerivedClass (0x1011)
; CHECK: PointerAttributes: 0x1000C
; CHECK: PtrType: Near64 (0xC)
; CHECK: PtrMode: Pointer (0x0)
@@ -323,12 +362,13 @@
; CHECK: IsConst: 0
; CHECK: IsVolatile: 0
; CHECK: IsUnaligned: 0
+; CHECK: SizeOf: 8
; CHECK: }
-; CHECK: MemberFunction (0x1017) {
+; CHECK: MemberFunction (0x101D) {
; CHECK: TypeLeafKind: LF_MFUNCTION (0x1009)
; CHECK: ReturnType: void (0x3)
-; CHECK: ClassType: DerivedClass (0x100D)
-; CHECK: ThisType: DerivedClass* (0x1016)
+; CHECK: ClassType: DerivedClass (0x1011)
+; CHECK: ThisType: DerivedClass* (0x101C)
; CHECK: CallingConvention: NearC (0x0)
; CHECK: FunctionOptions [ (0x0)
; CHECK: ]
@@ -336,10 +376,10 @@
; CHECK: ArgListType: () (0x1000)
; CHECK: ThisAdjustment: 0
; CHECK: }
-; CHECK: FuncId (0x1018) {
+; CHECK: MemberFuncId (0x101E) {
; CHECK: TypeLeafKind: LF_MFUNC_ID (0x1602)
-; CHECK: ClassType: DerivedClass (0x100D)
-; CHECK: FunctionType: void DerivedClass::() (0x1017)
+; CHECK: ClassType: DerivedClass (0x1011)
+; CHECK: FunctionType: void DerivedClass::() (0x101D)
; CHECK: Name: DerivedClass::DerivedClass
; CHECK: }
; CHECK: ]
Modified: llvm/trunk/test/DebugInfo/COFF/types-non-virtual-methods.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-non-virtual-methods.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-non-virtual-methods.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-non-virtual-methods.ll Wed Jun 22 16:22:13 2016
@@ -118,7 +118,18 @@
; CHECK: SizeOf: 1
; CHECK: Name: A
; CHECK: }
-; CHECK: Class (0x1008) {
+; CHECK: StringId (0x1008) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: \t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x1009) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: A (0x1007)
+; CHECK: SourceFile: \t.cpp (0x1008)
+; CHECK: LineNumber: 1
+; CHECK: }
+; CHECK: Class (0x100A) {
; CHECK: TypeLeafKind: LF_CLASS (0x1504)
; CHECK: MemberCount: 0
; CHECK: Properties [ (0x80)
@@ -130,9 +141,9 @@
; CHECK: SizeOf: 0
; CHECK: Name: B
; CHECK: }
-; CHECK: Pointer (0x1009) {
+; CHECK: Pointer (0x100B) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
-; CHECK: PointeeType: B (0x1008)
+; CHECK: PointeeType: B (0x100A)
; CHECK: PointerAttributes: 0x800A
; CHECK: PtrType: Near32 (0xA)
; CHECK: PtrMode: Pointer (0x0)
@@ -140,12 +151,13 @@
; CHECK: IsConst: 0
; CHECK: IsVolatile: 0
; CHECK: IsUnaligned: 0
+; CHECK: SizeOf: 4
; CHECK: }
-; CHECK: MemberFunction (0x100A) {
+; CHECK: MemberFunction (0x100C) {
; CHECK: TypeLeafKind: LF_MFUNCTION (0x1009)
; CHECK: ReturnType: void (0x3)
-; CHECK: ClassType: B (0x1008)
-; CHECK: ThisType: B* (0x1009)
+; CHECK: ClassType: B (0x100A)
+; CHECK: ThisType: B* (0x100B)
; CHECK: CallingConvention: ThisCall (0xB)
; CHECK: FunctionOptions [ (0x0)
; CHECK: ]
@@ -153,79 +165,85 @@
; CHECK: ArgListType: () (0x1000)
; CHECK: ThisAdjustment: 0
; CHECK: }
-; CHECK: ArgList (0x100B) {
+; CHECK: ArgList (0x100D) {
; CHECK: TypeLeafKind: LF_ARGLIST (0x1201)
; CHECK: NumArgs: 1
; CHECK: Arguments [
; CHECK: ArgType: float (0x40)
; CHECK: ]
; CHECK: }
-; CHECK: MemberFunction (0x100C) {
+; CHECK: MemberFunction (0x100E) {
; CHECK: TypeLeafKind: LF_MFUNCTION (0x1009)
; CHECK: ReturnType: void (0x3)
-; CHECK: ClassType: B (0x1008)
-; CHECK: ThisType: B* (0x1009)
+; CHECK: ClassType: B (0x100A)
+; CHECK: ThisType: B* (0x100B)
; CHECK: CallingConvention: ThisCall (0xB)
; CHECK: FunctionOptions [ (0x0)
; CHECK: ]
; CHECK: NumParameters: 1
-; CHECK: ArgListType: (float) (0x100B)
+; CHECK: ArgListType: (float) (0x100D)
; CHECK: ThisAdjustment: 0
; CHECK: }
-; CHECK: ArgList (0x100D) {
+; CHECK: ArgList (0x100F) {
; CHECK: TypeLeafKind: LF_ARGLIST (0x1201)
; CHECK: NumArgs: 1
; CHECK: Arguments [
; CHECK: ArgType: int (0x74)
; CHECK: ]
; CHECK: }
-; CHECK: MemberFunction (0x100E) {
+; CHECK: MemberFunction (0x1010) {
; CHECK: TypeLeafKind: LF_MFUNCTION (0x1009)
; CHECK: ReturnType: void (0x3)
-; CHECK: ClassType: B (0x1008)
-; CHECK: ThisType: B* (0x1009)
+; CHECK: ClassType: B (0x100A)
+; CHECK: ThisType: B* (0x100B)
; CHECK: CallingConvention: ThisCall (0xB)
; CHECK: FunctionOptions [ (0x0)
; CHECK: ]
; CHECK: NumParameters: 1
-; CHECK: ArgListType: (int) (0x100D)
+; CHECK: ArgListType: (int) (0x100F)
; CHECK: ThisAdjustment: 0
; CHECK: }
-; CHECK: MethodOverloadList (0x100F) {
+; CHECK: MethodOverloadList (0x1011) {
; CHECK: TypeLeafKind: LF_METHODLIST (0x1206)
; CHECK: Method [
; CHECK: AccessSpecifier: Public (0x3)
-; CHECK: Type: void B::(float) (0x100C)
+; CHECK: Type: void B::(float) (0x100E)
; CHECK: ]
; CHECK: Method [
; CHECK: AccessSpecifier: Public (0x3)
-; CHECK: Type: void B::(int) (0x100E)
+; CHECK: Type: void B::(int) (0x1010)
; CHECK: ]
; CHECK: }
-; CHECK: FieldList (0x1010) {
+; CHECK: FieldList (0x1012) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: OneMethod {
; CHECK: AccessSpecifier: Private (0x1)
-; CHECK: Type: void B::() (0x100A)
+; CHECK: Type: void B::() (0x100C)
; CHECK: Name: B::f_default_private
; CHECK: }
; CHECK: OverloadedMethod {
; CHECK: MethodCount: 0x2
-; CHECK: MethodListIndex: 0x100F
+; CHECK: MethodListIndex: 0x1011
; CHECK: Name: B::f
; CHECK: }
; CHECK: }
-; CHECK: Class (0x1011) {
+; CHECK: Class (0x1013) {
; CHECK: TypeLeafKind: LF_CLASS (0x1504)
; CHECK: MemberCount: 3
; CHECK: Properties [ (0x0)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1010)
+; CHECK: FieldList: <field list> (0x1012)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 1
; CHECK: Name: B
; CHECK: }
+; CHECK: UdtSourceLine (0x1014) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: B (0x1013)
+; CHECK: SourceFile: \t.cpp (0x1008)
+; CHECK: LineNumber: 11
+; CHECK: }
; CHECK: ]
Modified: llvm/trunk/test/DebugInfo/COFF/types-recursive-struct.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/types-recursive-struct.ll?rev=273495&r1=273494&r2=273495&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/COFF/types-recursive-struct.ll (original)
+++ llvm/trunk/test/DebugInfo/COFF/types-recursive-struct.ll Wed Jun 22 16:22:13 2016
@@ -97,7 +97,18 @@
; CHECK: SizeOf: 8
; CHECK: Name: A
; CHECK: }
-; CHECK: FieldList (0x1008) {
+; CHECK: StringId (0x1008) {
+; CHECK: TypeLeafKind: LF_STRING_ID (0x1605)
+; CHECK: Id: 0x0
+; CHECK: StringData: D:\src\llvm\build\t.cpp
+; CHECK: }
+; CHECK: UdtSourceLine (0x1009) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: A (0x1007)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1008)
+; CHECK: LineNumber: 2
+; CHECK: }
+; CHECK: FieldList (0x100A) {
; CHECK: TypeLeafKind: LF_FIELDLIST (0x1203)
; CHECK: DataMember {
; CHECK: AccessSpecifier: Public (0x3)
@@ -106,17 +117,23 @@
; CHECK: Name: a
; CHECK: }
; CHECK: }
-; CHECK: Struct (0x1009) {
+; CHECK: Struct (0x100B) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: MemberCount: 1
; CHECK: Properties [ (0x0)
; CHECK: ]
-; CHECK: FieldList: <field list> (0x1008)
+; CHECK: FieldList: <field list> (0x100A)
; CHECK: DerivedFrom: 0x0
; CHECK: VShape: 0x0
; CHECK: SizeOf: 8
; CHECK: Name: B
; CHECK: }
+; CHECK: UdtSourceLine (0x100C) {
+; CHECK: TypeLeafKind: LF_UDT_SRC_LINE (0x1606)
+; CHECK: UDT: B (0x100B)
+; CHECK: SourceFile: D:\src\llvm\build\t.cpp (0x1008)
+; CHECK: LineNumber: 3
+; CHECK: }
; CHECK: ]
; ModuleID = 't.cpp'
More information about the llvm-commits
mailing list