<div dir="ltr">Call T->getAsCXXRecordDecl() and see if you get one back. You might not get one if the base is a template parameter. Then you can call RD->getName() for the DeclarationName (which could be none) and try to print it.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 18, 2015 at 2:10 AM, brahim brahim <span dir="ltr"><<a href="mailto:brahimalekhine@gmail.com" target="_blank">brahimalekhine@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hello,<br><br></div>I am trying to implement a plugin for clang that prints all c++ classes and they are base classes.<br></div>I can't find in Doxygen how to access the base class's name.<br></div>Can someone help finish this piece of code(see below)?<br><br></div>Thank<br><br></div>Brahim<br><br><br>class ClassFinderConsumer : public ASTConsumer {<br>public:<br>  virtual bool HandleTopLevelDecl(DeclGroupRef DG) {<br>    for (DeclGroupRef::iterator i = DG.begin(), e = DG.end(); i != e; ++i) {<br>      const Decl *D = *i;<br>      if (const CXXRecordDecl *ND = dyn_cast<CXXRecordDecl>(D)) {<br>        llvm::errs() << "Class: " << ND->getNameAsString() << "\nBase(s): ";<br>        for (const auto& ItBase : ND->bases()) {<br>          const QualType& T = ItBase.getType();<br></div>          // Then...<br><div>          //llvm::errs() << ItBase.getType() << " ";<br>        }<br>        llvm::errs() << "\n";<br>      }<br>    }<br><br>    return true;<br>  }<br>};<br><br></div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>