From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5570 invoked by alias); 23 Dec 2002 17:46:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 5493 invoked by uid 71); 23 Dec 2002 17:46:03 -0000 Date: Mon, 23 Dec 2002 09:46:00 -0000 Message-ID: <20021223174603.5490.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Janis Johnson Subject: Re: c++/8205: [3.2 regression] using declaration & mulitiple inheritance Reply-To: Janis Johnson X-SW-Source: 2002-12/txt/msg01243.txt.bz2 List-Id: The following reply was made to PR c++/8205; it has been noted by GNATS. From: Janis Johnson To: hou_zhenyu@hotmail.com, gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, chicares@mindspring.com, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: c++/8205: [3.2 regression] using declaration & mulitiple inheritance Date: Mon, 23 Dec 2002 09:44:31 -0800 The regression reported in PR c++/8205 still exists on the 3.2 branch. The patch that caused the bug to show up, and the patch that caused it to go away on the mainline, are shown here. They are both very large so it's quite likely that this information isn't very useful. Here's the patch that caused the regression to show up: 2001-11-25 Nathan Sidwell PR g++/3145 * class.c * cp-tree.h * call.c * cvt.c * init.c * rtti.c * search.c * typeck.c * typeck2.c Here's the patch that caused it to go away on the mainline: 2002-08-07 Mark Mitchell Rework build_component_ref. * call.c * class.c * cp-tree.def * cp-tree.h * decl.c * decl2 * error.c * except.c * init.c * method.c * parse.y * pt.c * search.c * semantics.c * spew.c * tree.c * typeck.c * typeck2.c Here's a small test case that causes the compiler to complain about valid code on i686-linux with the 3.2 branch cc1plus: ------------------- class A { public: int i; }; class B {}; class E : A, B { public: using A::i; }; int main() { E e; e.i; // "`A' is an inaccessible base of `E'" } ------------------- Output from the 3.2 branch compiler: 8205.C: In function `int main()': 8205.C:7: `A' is an inaccessible base of `E' http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8205