https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117785
--- Comment #11 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #7) > where making the destructor constexpr and thus effectively inline would have > terrible effects, virtual tables of exception and similar classes now > emitted everywhere. Well, everywhere they're needed. That doesn't sound so terrible, lots of other things are COMDAT and it should be backward-compatible. But it would indeed be a change. To avoid it we could use the ancient #pragma interface/implementation, if they still work, or invent a mechanism for this general issue of constexprfication making more things inline. I'm reminded of the C++14 dance of declaring a static const data member outside the class to cause it to be emitted; doing the same for an inline function is ill-formed, but we could allow it as an extension, perhaps along with gnu_inline on the inline definition?