<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 3, 2015 at 9:31 AM, cedlemo <span dir="ltr"><<a href="mailto:cedlemo@gmx.com" target="_blank">cedlemo@gmx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
Hi,<br>
<br>
with clang 3.5, when I wanted to parse a source file, I created a
compiler instance and a new class that inherit from the class
ASTConsumer like this :<br>
<br>
ci = new clang::CompilerInstance()<br>
ci.createDiagnostics();<br>
ci.createFileManager();<br>
ci.createSourceManager(ci.getFileManager());<br>
std::shared_ptr<clang::TargetOptions> pto =
std::make_shared<clang::TargetOptions>();<br>
pto->Triple = llvm::sys::getDefaultTargetTriple();<br>
clang::TargetInfo *pti =
clang::TargetInfo::CreateTargetInfo(m_ci.getDiagnostics(), pto);<br>
ci.setTarget(pti);<br>
ci.createPreprocessor(clang::TU_Complete);<br>
... <br>
//add source file and the headers paths<br>
...<br>
MyASTConsumer * myASTConsumerClassInstance = new MyASTConsumer;<br>
ci.setASTConsumer(myASTConsumerClassInstance);<br></div></blockquote><div><br>ci.setASTConsumer(llvm::make_unique<MyASTConsumer>()); is the simplest way.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
...<br>
//parse the header file<br>
<br>
with the ASTConsumer :<br>
<br>
class MyASTConsumer : public clang::ASTConsumer<br>
{<br>
MyASTConsumer()<br>
~MyASTConsumer() {};<br>
virtual bool HandleTopLevelDecl( clang::DeclGroupRef d);<br>
virtual void HandleTagDeclDefinition( clang::TagDecl * d);<br>
private:<br>
std::vector<clang::TagDecl *> m_my_tags;<br>
}<br>
<br>
Now with clang 3.6, the CompilerInstance::setASTConsumer methods
asks for a std::unique_ptr<ASTConsumer> as argument. How to
adapt my previous code with the new api.<br>
<br>
Thanks<br>
</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></div>