<div dir="ltr">I tend to use a debugger to help with these sort of things too - create an example that involves invoking a default ctor, break in CXXConstructorDecl's ctor, and run the program to see where that's invoked from.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 22, 2019 at 5:17 AM Bruno Ricci via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am not sure I understand the question, but in general one way I found to be<br>
useful to know what piece of code creates which AST node is to grep for <br>
eg: StringLiteral::Create, or StringLiteral and new. In this case what you are<br>
looking for is CXXConstructorDecl::Create, which gives a few matches.<br>
<br>
In particular Sema::DeclareImplicitDefaultConstructor seems to be what you want.<br>
The other matches in SemaDeclCXX are for the other implicitely declared constructors.<br>
<br>
Bruno<br>
<br>
On 22/01/2019 11:48, Gregory Malecha via cfe-dev wrote:<br>
> Hello --<br>
> <br>
> I'm trying to understand how ASTs for constructors are generated when they are referenced. In particular, I'm working on a libtooling tool that will dump the AST to another format on a per-file basis so I need to know the code for any constructors even if they are not called in the file.<br>
> <br>
> Very concretely, if I write the following code:<br>
> <br>
> class P {};<br>
> int main() {<br>
>    P x;<br>
>    return 0;<br>
> }<br>
> <br>
> the result of -ast-dump will contain the implementation of the default constructor (not very interesting in this case). What code generates this?<br>
> <br>
> Thank you.<br>
> <br>
> -- <br>
> gregory malecha<br>
> <a href="http://gmalecha.github.io" rel="noreferrer" target="_blank">gmalecha.github.io</a> <<a href="https://gmalecha.github.io" rel="noreferrer" target="_blank">https://gmalecha.github.io</a>><br>
> <br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
> <br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>