From 88c17380646dbb7c0c5054a392de5a46d17620ba Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 30 Oct 2003 00:22:33 +0000 Subject: [PATCH] Print the names of more opaque types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9598 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/AsmWriter.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index 2cdca502dc6..40e0129db25 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -111,7 +111,8 @@ static void fillTypeNameTable(const Module *M, // const Type *Ty = cast(I->second); if (!isa(Ty) || - !cast(Ty)->getElementType()->isPrimitiveType()) + !cast(Ty)->getElementType()->isPrimitiveType() || + isa(cast(Ty)->getElementType())) TypeNames.insert(std::make_pair(Ty, getLLVMName(I->first))); } } @@ -122,12 +123,16 @@ static void fillTypeNameTable(const Module *M, static std::string calcTypeName(const Type *Ty, std::vector &TypeStack, std::map &TypeNames){ - if (Ty->isPrimitiveType()) return Ty->getDescription(); // Base case + if (Ty->isPrimitiveType() && !isa(Ty)) + return Ty->getDescription(); // Base case // Check to see if the type is named. std::map::iterator I = TypeNames.find(Ty); if (I != TypeNames.end()) return I->second; + if (isa(Ty)) + return "opaque"; + // Check to see if the Type is already on the stack... unsigned Slot = 0, CurSize = TypeStack.size(); while (Slot < CurSize && TypeStack[Slot] != Ty) ++Slot; // Scan for type @@ -210,9 +215,6 @@ static std::ostream &printTypeInt(std::ostream &Out, const Type *Ty, std::map::iterator I = TypeNames.find(Ty); if (I != TypeNames.end()) return Out << I->second; - if (isa(Ty)) - return Out << "opaque"; - // Otherwise we have a type that has not been named but is a derived type. // Carefully recurse the type hierarchy to print out any contained symbolic // names. -- 2.34.1