The framework for dealing with artificial methods is in place in AddMethodToCXXRecordType(...) but was gated by an early exit at some point.
This was due to implicit methods being emitted in some translations units but not others and then sometimes during import via the ASTImporter this would fail since they would no longer be structurally equivalent.
We have not been able to come up with a reproducer for the original issue and after fixing D79251 which was accidentally working the test suite passes with this change and we have cases that are broken without this change.
Just for my own education, how would this fail without the patch? During expression evaluation, we would synthesize a call to the default constructor of ClassForSideEffect, instead of the one taking int=100? Or is it something else?