This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/8205: [3.2 regression] using declaration & mulitiple inheritance


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]