https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61214
--- Comment #3 from Pierre Bourdon <delr...@dolphin-emu.org> --- I'm more wondering why Foo::clone is not being instantiated by the code that calls it. Does C++ specify that virtual inline functions are guaranteed to be instantiated in the compilation unit that contains the vtable? It looks like this is the assumption made by GCC at the moment. FYI, a more "real" testcase: if you build wxWidgets 3.0 with -fvisibility=hidden -fvisibility-inlines-hidden (the default, afaict), the following will work on gcc 4.8 but not 4.9: $ cat >testcase.cpp <<EOF #include <wx/event.h> int main() { wxEvent* evt = new wxNotifyEvent(); evt->Clone(); return 0; } EOF $ g++ -std=c++11 -O3 $(wx-config --cxxflags --libs) testcase.cpp