public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/21917] New: Missing warning? (or error?) @ 2005-06-04 22:18 igodard at pacbell dot net 2005-06-04 22:22 ` [Bug c++/21917] " igodard at pacbell dot net ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: igodard at pacbell dot net @ 2005-06-04 22:18 UTC (permalink / raw) To: gcc-bugs 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/21917] Missing warning? (or error?) 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net @ 2005-06-04 22:22 ` igodard at pacbell dot net 2005-06-05 3:03 ` pinskia at gcc dot gnu dot org ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: igodard at pacbell dot net @ 2005-06-04 22:22 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From igodard at pacbell dot net 2005-06-04 22:22 ------- p.s. I suppose that if there is only a single path to the virtual base then explicit construction is meaningful and the explicit construction in the der* classes is not wrong. But in the constructor for "top" the compiler knows that there are multiple derivations from virt (it has to or it couldn't know to call the null constructor), so the warning could be issued in "top". Something like "base constructor virt(int) in der1(int) bypassed, virt() used instead"? Ivan -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/21917] Missing warning? (or error?) 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net 2005-06-04 22:22 ` [Bug c++/21917] " igodard at pacbell dot net @ 2005-06-05 3:03 ` pinskia at gcc dot gnu dot org 2005-06-06 1:24 ` [Bug c++/21917] Missing warning? pinskia at gcc dot gnu dot org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-06-05 3:03 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-05 03:02 ------- This is how C++ is done, maybe a warning can be emitted but it seems like it will emitt too much for valid C++ code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/21917] Missing warning? 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net 2005-06-04 22:22 ` [Bug c++/21917] " igodard at pacbell dot net 2005-06-05 3:03 ` pinskia at gcc dot gnu dot org @ 2005-06-06 1:24 ` pinskia at gcc dot gnu dot org 2005-07-13 13:17 ` pinskia at gcc dot gnu dot org 2005-07-13 13:31 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-06-06 1:24 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Summary|Missing warning? (or error?)|Missing warning? http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/21917] Missing warning? 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net ` (2 preceding siblings ...) 2005-06-06 1:24 ` [Bug c++/21917] Missing warning? pinskia at gcc dot gnu dot org @ 2005-07-13 13:17 ` pinskia at gcc dot gnu dot org 2005-07-13 13:31 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-07-13 13:17 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/21917] Missing warning? 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net ` (3 preceding siblings ...) 2005-07-13 13:17 ` pinskia at gcc dot gnu dot org @ 2005-07-13 13:31 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-07-13 13:31 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21917 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-07-13 13:17 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-06-04 22:18 [Bug c++/21917] New: Missing warning? (or error?) igodard at pacbell dot net 2005-06-04 22:22 ` [Bug c++/21917] " igodard at pacbell dot net 2005-06-05 3:03 ` pinskia at gcc dot gnu dot org 2005-06-06 1:24 ` [Bug c++/21917] Missing warning? pinskia at gcc dot gnu dot org 2005-07-13 13:17 ` pinskia at gcc dot gnu dot org 2005-07-13 13:31 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).