re PR c++/7584 (Erroneous ambiguous base error on using declaration)

PR c++/7584
	* class.c (handle_using_decl): Allow the declaration used to be
	from an ambiguous base.

	PR c++/7584
	* g++.dg/inherit/using3.C: New test.

From-SVN: r58262
This commit is contained in:
Mark Mitchell 2002-10-17 22:35:49 +00:00 committed by Mark Mitchell
parent 2d05cd9641
commit 982216be8c
4 changed files with 33 additions and 2 deletions

View File

@ -1,5 +1,9 @@
2002-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/7584
* class.c (handle_using_decl): Allow the declaration used to be
from an ambiguous base.
* pt.c (convert_template_argument): Revert this change:
2002-10-16 Mark Mitchell <mark@codesourcery.com>
* pt.c (convert_template_argument): Do not fold non-type

View File

@ -1155,9 +1155,12 @@ handle_using_decl (using_decl, t)
tree flist = NULL_TREE;
tree old_value;
binfo = binfo_or_else (ctype, t);
binfo = lookup_base (t, ctype, ba_any, NULL);
if (! binfo)
return;
{
error_not_base_type (t, ctype);
return;
}
if (constructor_name_p (name, ctype))
{

View File

@ -1,3 +1,8 @@
2002-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/7584
* g++.dg/inherit/using3.C: New test.
Thu Oct 17 19:12:58 CEST 2002 Jan Hubicka <jh@suse.cz>
* gcc.dg/20021017-2.c: New test.

View File

@ -0,0 +1,19 @@
class A
{
public:
typedef int T;
int a;
};
class B : virtual private A
{
};
class C : virtual private A, public B
{
public:
using A::a;
using A::T;
};
C::T x;