- for (DebugInfoFinder::iterator I = Finder.type_begin(),
- E = Finder.type_end(); I != E; ++I) {
- O << "Type: ";
- DIType(*I).print(O);
+ for (const DIType *T : Finder.types()) {
+ O << "Type:";
+ if (!T->getName().empty())
+ O << ' ' << T->getName();
+ printFile(O, T->getFilename(), T->getDirectory(), T->getLine());
+ if (auto *BT = dyn_cast<DIBasicType>(T)) {
+ O << " ";
+ if (const char *Encoding =
+ dwarf::AttributeEncodingString(BT->getEncoding()))
+ O << Encoding;
+ else
+ O << "unknown-encoding(" << BT->getEncoding() << ')';
+ } else {
+ O << ' ';
+ if (const char *Tag = dwarf::TagString(T->getTag()))
+ O << Tag;
+ else
+ O << "unknown-tag(" << T->getTag() << ")";
+ }
+ if (auto *CT = dyn_cast<DICompositeType>(T)) {
+ if (auto *S = CT->getRawIdentifier())
+ O << " (identifier: '" << S->getString() << "')";
+ }