21983 – [3.4/4.0 Regression] multiple diagnostics (original) (raw)
Description Ivan Godard 2005-06-09 14:38:48 UTC
struct base { virtual void foo() = 0; }; struct d1 : public virtual base { virtual void foo() {} }; struct d2 : public virtual base { virtual void foo() {} }; struct der : public d1, public d2 { };
gets you:
~/ootbc/members/src$ g++ foo.cc
foo.cc:4: error: no unique final overrider for virtual void base::foo()' in der'
foo.cc:4: error: no unique final overrider for virtual void base::foo()' in der'
foo.cc:4: error: no unique final overrider for virtual void base::foo()' in der'
foo.cc:4: error: no unique final overrider for virtual void base::foo()' in der'
Comment 1 Drea Pinski 2005-06-09 14:43:34 UTC
Confirmed, a regression from 3.2.3.
Comment 2 Drea Pinski 2005-07-22 21:12:46 UTC
Moving to 4.0.2 pre Mark.
Comment 4 Drea Pinski 2005-09-22 18:36:43 UTC
Fixed for 4.1.0.
Comment 6 Drea Pinski 2005-09-29 16🔞26 UTC
Fixed.
Comment 7 Jakub Jelinek 2005-11-23 13:53:21 UTC
Subject: Bug 21983
Author: jakub Date: Wed Nov 23 13:53:15 2005 New Revision: 107420
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107420 Log: PR c++/21983 * class.c (find_final_overrider): Move diagnostic about no unique final overrider to... (update_vtable_entry_for_fn): ... here.
* g++.dg/warn/[pr21983](show%5Fbug.cgi?id=21983 "RESOLVED FIXED - [3.4/4.0 Regression] multiple diagnostics").C: New test.Added: branches/gcc-3_4-branch/gcc/testsuite/g++.dg/warn/pr21983.C Modified: branches/gcc-3_4-branch/gcc/cp/ChangeLog branches/gcc-3_4-branch/gcc/cp/class.c branches/gcc-3_4-branch/gcc/testsuite/ChangeLog