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