From 7649d8388a697e1cf9ad062ebdc8c85a47f56c5d Mon Sep 17 00:00:00 2001 From: Adrian McCarthy Date: Wed, 6 Jul 2016 15:14:10 +0000 Subject: Revert "Emit CodeView type records for nested classes." This reverts commit 256b29322c827a2d94da56468c936596f5509032. llvm-svn: 274632 --- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | 34 +++++---------------------- 1 file changed, 6 insertions(+), 28 deletions(-) (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp') diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp index fe63b7043c5..bd4df879d5f 100644 --- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp @@ -1414,8 +1414,6 @@ struct llvm::ClassInfo { MemberList Members; // Direct overloaded methods gathered by name. MethodsMap Methods; - - std::vector NestedClasses; }; void CodeViewDebug::clear() { @@ -1468,8 +1466,8 @@ ClassInfo CodeViewDebug::collectClassInfo(const DICompositeType *Ty) { // friends in the past, but modern versions do not. } // FIXME: Get Clang to emit function virtual table here and handle it. - } else if (auto *Composite = dyn_cast(Element)) { - Info.NestedClasses.push_back(Composite); + // FIXME: Get clang to emit nested types here and do something with + // them. } // Skip other unrecognized kinds of elements. } @@ -1498,12 +1496,7 @@ TypeIndex CodeViewDebug::lowerCompleteTypeClass(const DICompositeType *Ty) { TypeIndex FieldTI; TypeIndex VShapeTI; unsigned FieldCount; - bool ContainsNestedClass; - std::tie(FieldTI, VShapeTI, FieldCount, ContainsNestedClass) = - lowerRecordFieldList(Ty); - - if (ContainsNestedClass) - CO |= ClassOptions::ContainsNestedClass; + std::tie(FieldTI, VShapeTI, FieldCount) = lowerRecordFieldList(Ty); std::string FullName = getFullyQualifiedName(Ty); @@ -1539,13 +1532,7 @@ TypeIndex CodeViewDebug::lowerCompleteTypeUnion(const DICompositeType *Ty) { ClassOptions CO = getCommonClassOptions(Ty); TypeIndex FieldTI; unsigned FieldCount; - bool ContainsNestedClass; - std::tie(FieldTI, std::ignore, FieldCount, ContainsNestedClass) = - lowerRecordFieldList(Ty); - - if (ContainsNestedClass) - CO |= ClassOptions::ContainsNestedClass; - + std::tie(FieldTI, std::ignore, FieldCount) = lowerRecordFieldList(Ty); uint64_t SizeInBytes = Ty->getSizeInBits() / 8; std::string FullName = getFullyQualifiedName(Ty); @@ -1563,7 +1550,7 @@ TypeIndex CodeViewDebug::lowerCompleteTypeUnion(const DICompositeType *Ty) { return UnionTI; } -std::tuple +std::tuple CodeViewDebug::lowerRecordFieldList(const DICompositeType *Ty) { // Manually count members. MSVC appears to count everything that generates a // field list record. Each individual overload in a method overload group @@ -1658,17 +1645,8 @@ CodeViewDebug::lowerRecordFieldList(const DICompositeType *Ty) { OverloadedMethodRecord(Methods.size(), MethodList, Name)); } } - - // Create nested classes. - for (const DICompositeType *Nested : Info.NestedClasses) { - NestedTypeRecord R(getTypeIndex(DITypeRef(Nested)), Nested->getName()); - Fields.writeNestedType(R); - MemberCount++; - } - TypeIndex FieldTI = TypeTable.writeFieldList(Fields); - return std::make_tuple(FieldTI, TypeIndex(), MemberCount, - !Info.NestedClasses.empty()); + return std::make_tuple(FieldTI, TypeIndex(), MemberCount); } TypeIndex CodeViewDebug::getVBPTypeIndex() { -- cgit v1.2.3