From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 878 invoked by alias); 20 Jan 2005 01:51:55 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 391 invoked by uid 48); 20 Jan 2005 01:51:49 -0000 Date: Thu, 20 Jan 2005 01:51:00 -0000 From: "austern at apple dot com" To: gcc-bugs@gcc.gnu.org Message-ID: <20050120015148.19538.austern@apple.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/19538] New: Missing diagnostic for typedef name in elaborated type specifier X-Bugzilla-Reason: CC X-SW-Source: 2005-01/txt/msg02724.txt.bz2 List-Id: Consider the following code sample: struct A { }; typedef struct A A; struct A a; // [1] struct wrapper { struct B { }; typedef struct B B; struct B b; // [2] }; Mainline gives an error for line [2], but not for line [1]. My reading of the standard is that there shouldn't be any difference. In both cases we're using an elaborated type specifier with a name that resolves to a typedef-name. A program that does that is ill formed, so the compiler is required to admit a diagnostic. We're doing that for line [2], but we're failing to do it for line [1]. Relevant passages in the standard: 3.4.4/2, 7.1.3/4, 7.1.5.3/2. -- Summary: Missing diagnostic for typedef name in elaborated type specifier Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: austern at apple dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc-apple-darwin7.7.0 GCC host triplet: powerpc-apple-darwin7.7.0 GCC target triplet: powerpc-apple-darwin7.7.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19538