https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62224
--- Comment #10 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- (In reply to Chris Clayton from comment #9) > That seems odd to me, although I'm happy to be told I'm wrong. I base this > on the fact that reverting the code change from r214208 permits a successful > build. MoreOver, in both the failed and sucessful builds, ensureUpdated is > present in cppmodelmanager.o and that is linked into libCppTools.so. Before r214208 the body of "virtual QByteArray CppTools::Internal::CppModelManager::definedMacros()" (and the other two virtual functions) that call ensureUpdated() were removed: _ZN8CppTools8Internal15CppModelManager13definedMacrosEv/6495 (virtual QByteArray CppTools::Internal::CppModelManager::definedMacros()) @0x7f601c207520 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: external public weak comdat comdat_group:_ZN8CppTools8Internal15CppModelManager13definedMacrosEv one_only virtual Now these virtual function bodies are kept: _ZN8CppTools8Internal15CppModelManager13definedMacrosEv/6495 (virtual QByteArray CppTools::Internal::CppModelManager::definedMacros()) @0x7f67c0347520 Type: function definition analyzed Visibility: externally_visible public weak comdat comdat_group:_ZN8CppTools8Internal15CppModelManager13definedMacrosEv one_only virtual previous sharing asm name: 12475 Address is taken. References: Referring: _ZN9CppEditor8Internal27CppCodeModelInspectorDialog7refreshEv/6819 (addr) (speculative) Availability: available First run: 0 Function flags: body Called by: Calls: _ZN8CppTools8Internal15CppModelManager13ensureUpdatedEv/10759 (1.00 per call) (can throw external) And there is nothing wrong with that AFAICS.