Compiler is crashing when instantiated default argument marked as not.
What is the MS extension that makes this necessary? Why does the normal inherited default arg not do anything here?
Can you better explain in the commit message what you think is wrong here? Why would this happen only with dll_export, and not the other mechanisms for making 'foo' be emitted?
Can MD BE a method-decl and have a parent that isn't a record? That seems the second condition there is ALWAYS true.
These seem overly constraining. It also seems like you'd want to check the CXXCtorType of the constructor, to make sure you're dealing with the closure, right?
Can this problem happen in an implicit specialization?
@hans is the resident dllexport expert at this moment.
My really surface-level feedback would be to try to find a way to do this with as few conditions as humanly possible. My mental model is that every added boolean check charges interest, and there are quite a few here, and it's hard for me to understand why they are all needed.
Starting this June, I won't be available for reviews until fall, as a heads up.