<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>