(In reply to Eyal Rozenberg from comment #16)
> The compiler could store information in the compiled object listing the
> virtual members for which no implementation was found, due to which reason
> the vtable was not defined already. In this specific example, storing the
> name of "A::B()" somewhere.

In every file that includes the header defining A?

Consider the case where you include the header in ten files, and define
the virtual functions in one of them. Nine out of ten files do not
contain a definitions of the virtual functions, so they would each
contain the same info naming every virtual function in the class. Then
do that for every polymorphic class in every object file. This is a lot
more info being written out, and most of it will never be used.

You have nine files saying "this function is missing" and one not saying
it. What exactly does the linker do with that information? Why would
that be better than comment 7 here?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/305460

Title:
  [PR42540] c++ error message [vtable undefined] is unhelpful

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/305460/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to