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

Reply via email to