mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Print the names of more opaque types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9598 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
daf2a492a7
commit
88c1738064
@ -111,7 +111,8 @@ static void fillTypeNameTable(const Module *M,
|
||||
//
|
||||
const Type *Ty = cast<Type>(I->second);
|
||||
if (!isa<PointerType>(Ty) ||
|
||||
!cast<PointerType>(Ty)->getElementType()->isPrimitiveType())
|
||||
!cast<PointerType>(Ty)->getElementType()->isPrimitiveType() ||
|
||||
isa<OpaqueType>(cast<PointerType>(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<const Type *> &TypeStack,
|
||||
std::map<const Type *, std::string> &TypeNames){
|
||||
if (Ty->isPrimitiveType()) return Ty->getDescription(); // Base case
|
||||
if (Ty->isPrimitiveType() && !isa<OpaqueType>(Ty))
|
||||
return Ty->getDescription(); // Base case
|
||||
|
||||
// Check to see if the type is named.
|
||||
std::map<const Type *, std::string>::iterator I = TypeNames.find(Ty);
|
||||
if (I != TypeNames.end()) return I->second;
|
||||
|
||||
if (isa<OpaqueType>(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<const Type *, std::string>::iterator I = TypeNames.find(Ty);
|
||||
if (I != TypeNames.end()) return Out << I->second;
|
||||
|
||||
if (isa<OpaqueType>(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.
|
||||
|
Loading…
Reference in New Issue
Block a user