T
trond.norbye
Hi
I am trying to compile a quite large software system with a new
compiler. During that attempt I am facing problems during the link
phase, and I have traced it down to the following construct:
test.cc:
class Foo
{
public:
virtual ~Foo();
};
class Bar : public Foo
{
public:
virtual ~Bar() {};
};
If I compile this unit all of the previous compilers I have tried will
generate _no_ symbols, since I don't actually use anything here. The
new compiler I have tried gives me:
Undefined symbols from test.o:
typeid<Foo>
Foo::~Foo()
Class tables [Vtable] dependent on key function:
"__versioned_type_info::~__versioned_type_info()"
So the question is as simple as: Is this a "bug" in the new compiler I
have used, or is it "allowed" to do this according to the
specification...
(In my "real" program the classes reside in separate header files
included by a lot of different "modules" in my system...)
Trond
I am trying to compile a quite large software system with a new
compiler. During that attempt I am facing problems during the link
phase, and I have traced it down to the following construct:
test.cc:
class Foo
{
public:
virtual ~Foo();
};
class Bar : public Foo
{
public:
virtual ~Bar() {};
};
If I compile this unit all of the previous compilers I have tried will
generate _no_ symbols, since I don't actually use anything here. The
new compiler I have tried gives me:
Undefined symbols from test.o:
typeid<Foo>
Foo::~Foo()
Class tables [Vtable] dependent on key function:
"__versioned_type_info::~__versioned_type_info()"
So the question is as simple as: Is this a "bug" in the new compiler I
have used, or is it "allowed" to do this according to the
specification...
(In my "real" program the classes reside in separate header files
included by a lot of different "modules" in my system...)
Trond