What code generates default constructors?

I am not sure I understand the question, but in general one way I found to be
useful to know what piece of code creates which AST node is to grep for
eg: StringLiteral::Create, or StringLiteral and new. In this case what you are
looking for is CXXConstructorDecl::Create, which gives a few matches.

In particular Sema::DeclareImplicitDefaultConstructor seems to be what you want.
The other matches in SemaDeclCXX are for the other implicitely declared constructors.


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.