[cfe-dev] Implicitly defined special member functions

Martin Vejnár avakar at ratatanek.cz
Sun Sep 19 00:52:01 PDT 2010


On 9/17/2010 8:46 PM, Douglas Gregor wrote:
> On Sep 17, 2010, at 4:55 AM, Martin Vejnár wrote:
>> I'm trying to use clang as a front end to a static analysis tool (Stanse,
>> http://stanse.fi.muni.cz/). For that purpose, I'd like to get special
>> member functions defined even if they are not used. Can I somehow achieve
>> that? (Note that I'm consuming the AST in HandleTranslationUnit of my
>> custom ASTConsumer.)
>
> You'll need to ask the Sema object for the constructors, destructors,
> and assignment operator, so that it will generate them.

Thanks, I've found the function Sema::MarkDeclarationReferenced, I'm 
calling it on all methods of all CXXRecordDecls, and it seems to work 
perfectly.

>> Furthermore, it seems that fn->isThisDeclarationADefinition() returns
>> false for default constructors and destructors even when the function is
>> used (and therefore implicitly defined). Is that correct? Shouldn't these
>> functions receive an empty CompoundStatement as their bodies?
>
> Yes, that would make sense. Care to submit a patch?

Attached.
-- 
Martin
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: smf_bodies.patch
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20100919/8bab213f/attachment.ksh>


More information about the cfe-dev mailing list