public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: dbaron@dbaron.org
To: gcc-gnats@gcc.gnu.org
Subject: c++/10152: members of nested class granted special access to enclosing class
Date: Wed, 19 Mar 2003 16:06:00 -0000	[thread overview]
Message-ID: <20030319155708.7024.qmail@sources.redhat.com> (raw)


>Number:         10152
>Category:       c++
>Synopsis:       members of nested class granted special access to enclosing class
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          accepts-illegal
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 19 16:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     dbaron@dbaron.org
>Release:        gcc 3.2.2
>Organization:
>Environment:

>Description:
Contrary to the C++ standard, section 11.8, clause 1, gcc grants nested classes special access privileges to members of their enclosing class.

This bug is present both in gcc 3.2.2 and in the gcc 3.3 branch from February 10.  Based on a different testcase (in Mozilla source), I believe the bug is also present in egcs, gcc 2.95, etc.

The following is a simplified variant of the example given in C++ 11.8 clause 1, which compiles with "g++ -ansi -pedantic" even though it contains an error:


----------
/*
 * This is a reduced form of the example in C++ 11.8, 
 * clause 1, which says that "The members of a nested
 * class have no special access to members of an
 * enclosing class.
 */
 
class E {
    class B {};
 
    class I {
        B b; // error: E::B is private
    };
};
 
int main()
{
    return 1;
}
----------
>How-To-Repeat:
Compile above example with "g++ -ansi -pedantic".
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


             reply	other threads:[~2003-03-19 16:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-19 16:06 dbaron [this message]
2003-03-19 20:56 Gabriel Dos Reis
2003-03-20  2:13 bangerth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030319155708.7024.qmail@sources.redhat.com \
    --to=dbaron@dbaron.org \
    --cc=gcc-gnats@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).