From c2d39386f81bc0549b91606eb8aa449c744a8d66 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Thu, 17 Oct 2002 22:37:49 +0000 Subject: [PATCH] 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: r58264 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/class.c | 7 +++++-- gcc/testsuite/ChangeLog | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 48bf9dd942cf..930966887957 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2002-10-17 Mark Mitchell + + PR c++/7584 + * class.c (handle_using_decl): Allow the declaration used to be + from an ambiguous base. + 2002-10-16 Mark Mitchell PR c++/7478 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 2395d794bfc7..9ae0cf144195 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -1150,9 +1150,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 (name == constructor_name (ctype) || name == constructor_name_full (ctype)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7445b2c1127e..7129c2f5d420 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2002-10-17 Mark Mitchell + + PR c++/7584 + * g++.dg/inherit/using3.C: New test. + 2002-10-16 Mark Mitchell PR c++/7478 -- 2.47.2