https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109945
--- Comment #11 from Arthur O'Dwyer <arthur.j.odwyer at gmail dot com> --- (In reply to Andrew Pinski from comment #8) > (In reply to Arthur O'Dwyer from comment #7) > > // https://godbolt.org/z/Ea43Y65z4 > > struct Widget { > > int i = 1; > ... > > In this case, Widget has no constructors, > > No, it has a constructor because of the NSDMI. NSDMI causes a non-trivial > constexpr constructor to be created. Fair. I meant Widget has no _program-defined_ constructors (such as would have unknown effects and might invisibly-to-the-compiler escape a copy of `&w`). I might still be using the wrong term. But you found a better example without that wrinkle, anyway. :)