https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note here is a testcase which fails even with C++98 (basically changing the default assignment in the class to the ctor): ``` struct Widget { Widget(); int i; int a[4]; }; Widget *global = 0; Widget::Widget() : i(1) { global = this; } Widget make() __attribute__((noinline)); Widget make() { return Widget(); } void g() { global->i = 42; } int main() { Widget w = make(); int i = w.i; g(); if (i == w.i) __builtin_abort(); // Does this need to be reloaded and // compared? or is it obviously true? return 0; } ```