https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103490
John McCall <rjmccall at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rjmccall at gmail dot com --- Comment #3 from John McCall <rjmccall at gmail dot com> --- I'm not sure I agree that that's the letter of the law, but even taken that as given, I think I would argue that it's a defect rather than something that has to be followed. The purpose of the key-function optimization is to avoid the overheads of having to redundantly emit and unique v-tables. A lot of uniquing can happen at link time, of course, but not all, and optimizing load times is important. Does GCC ever emit actually v-tables redundantly which would otherwise be unique under the key-function optimization? If not, it's a fixable defect. The sample code here does not count as an observation of the difference, as it's not at all a well-formed program under C++ rules.