https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68184
--- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Will take a look. This is ipa-pure-const bug. We have: {anonymous}::FooBar::_ZThn8_N12_GLOBAL__N_16FooBar3fooEv (_3); (i.e. we now devirtualize to call to thunk) and consequently we mark: Function found to be nothrow: virtual void {anonymous}::FooBar::_ZThn8_N12_GLOBAL__N_16FooBar3fooEv() I suppose ipa-pure-const is confused about same body alias wich is used to call the virtual method.