This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/8205: [3.2 regression] using declaration & mulitiple inheritance
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: hou_zhenyu at hotmail dot com, gcc-gnats at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, chicares at mindspring dot com, gcc-bugs at gcc dot gnu dot org, nobody at gcc dot gnu dot org
- Date: Mon, 23 Dec 2002 09:44:31 -0800
- Subject: Re: c++/8205: [3.2 regression] using declaration & mulitiple inheritance
- Organization: IBM
- Reply-to: janis187 at us dot ibm dot com
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 <nathan@codesourcery.com>
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 <mark@codesourcery.com>
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