[Bug c++/62224] [4.9 Regression] Possible regression in gcc-4.9-20140820
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 3 06:57:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62224
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #11 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Here's a small testcase:
markus@x4 tmp % cat cppcodemodelinspectordialog.ii
namespace CppTools
{
class A
{
public:
virtual void headerPaths () = 0;
};
namespace Internal
{
class CppModelManager : CppTools::A
{
void
headerPaths ()
{
ensureUpdated ();
}
void ensureUpdated ();
};
}
}
CppTools::A *a;
void
fn1 ()
{
a->headerPaths ();
}
(before r214208)
markus@x4 tmp % g++ -Wl,--no-undefined -shared -fPIC -O2
cppcodemodelinspectordialog.ii
markus@x4 tmp %
(after r214208)
markus@x4 tmp % g++ -Wl,--no-undefined -shared -fPIC -O2
cppcodemodelinspectordialog.ii
/tmp/ccMZQE0g.o:cppcodemodelinspectordialog.ii:function fn1(): error: undefined
reference to 'CppTools::Internal::CppModelManager::ensureUpdated()'
/tmp/ccMZQE0g.o:cppcodemodelinspectordialog.ii:function
CppTools::Internal::CppModelManager::headerPaths(): error: undefined reference
to 'CppTools::Internal::CppModelManager::ensureUpdated()'
collect2: error: ld returned 1 exit status
(one can use -fno-devirtualize-speculatively as a workaround)
markus@x4 tmp % g++ -Wl,--no-undefined -fno-devirtualize-speculatively -shared
-fPIC -O2 cppcodemodelinspectordialog.ii
markus@x4 tmp %
More information about the Gcc-bugs
mailing list