This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/21917] New: Missing warning? (or error?)
- From: "igodard at pacbell dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Jun 2005 22:18:05 -0000
- Subject: [Bug c++/21917] New: Missing warning? (or error?)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
struct virt { virt() : i(2) {} virt(int i) : i(i){} int i; };
struct der1 : public virtual virt { der1(int i) : virt(i) {} };
struct der2 : public virtual virt { der2(int i) : virt(i) {} };
struct top : public der1, public der2 {
top () : der1(0), der2(1) {} };
int main() { top t; }
Compiles without comment. However, the null constructor for "virt" is called
rather than the explicit constructor that is indicated by the constructor chain
from top. In fact, the der* constructors say " : virt(i)" but that
sub-constructor will never be called because virt is a virtual base class.
I don't know if it is actually an error to try to explicitly construct a virtual
base, but is sure is misleading and I think deserves at least a warning.
--
Summary: Missing warning? (or error?)
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: igodard at pacbell dot net
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917