21983 – [3.4/4.0 Regression] multiple diagnostics

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 Andrew Pinski 2005-06-09 14:43:34 UTC

Confirmed, a regression from 3.2.3.

Comment 2 Andrew Pinski 2005-07-22 21:12:46 UTC

Moving to 4.0.2 pre Mark.

Comment 3 CVS Commits 2005-09-22 16:35:26 UTC

Subject: Bug 21983

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	jakub@gcc.gnu.org	2005-09-22 16:34:59

Modified files:
	gcc/cp         : ChangeLog class.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.dg/warn: pr21983.C 

Log message:
	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.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4900&r2=1.4901
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/class.c.diff?cvsroot=gcc&r1=1.732&r2=1.733
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6095&r2=1.6096
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/warn/pr21983.C.diff?cvsroot=gcc&r1=NONE&r2=1.1

Comment 4 Andrew Pinski 2005-09-22 18:36:43 UTC

Fixed for 4.1.0.

Comment 5 CVS Commits 2005-09-29 16:10:13 UTC

Subject: Bug 21983

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	jakub@gcc.gnu.org	2005-09-29 16:09:43

Modified files:
	gcc/cp         : ChangeLog 
	gcc/testsuite  : ChangeLog 
	gcc/cp         : class.c 
Added files:
	gcc/testsuite/g++.dg/warn: pr21983.C 

Log message:
	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.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4648.2.110&r2=1.4648.2.111
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.414&r2=1.5084.2.415
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/class.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.707.2.4&r2=1.707.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/warn/pr21983.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.8.1

Comment 6 Andrew Pinski 2005-09-29 16:18: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.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