Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Mar 1997 17:06:17 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        imp@village.org (Warner Losh)
Cc:        terry@lambert.org, hackers@FreeBSD.org
Subject:   Re: Barb problem, FOUND
Message-ID:  <199703170006.RAA06832@phaeton.artisoft.com>
In-Reply-To: <199703170008.RAA03992@rover.village.org> from "Warner Losh" at Mar 16, 97 05:08:58 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> : OK, then I don't know why it's bitching.  It's perfectly valid to have
> : a virtual destructor inline: the STL library book does it, so it's an
> : OK thing to do.
> 
> It is a valid C++ construct, but it is not always handled well by C++
> compilers.  That's why it is bitching.  Generally, virtual inlines are
> a bad idea for the reasons that I've already gone into.

Those reasons are only valid for bad compiler/object-format/linker
combinations.  Too bad FreeBSD has one of these. 8-|.

The "correct" FreeBSD "workaround" (as long as we are stuck at a.out)
is to duplicate the code statically, per module using the virtual base
class.


> : Personally, I think it's a compiler bug.
> 
> It is.  Quanitifying it is the hard part.

The compiler should "do the right thing".  The "right thing" in the
FreeBSD case is "emit the code and don't bitch about it being a
potentially duplicated code block because of the scoping forced on
it by FreeBSD's use of the antiquated a.out object format".


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703170006.RAA06832>