This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/26950] Error diagnostic not issued for unacceptable result of lookup for a name used in a nested-name-specifier
- From: "widman at gimpel dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Mar 2006 05:36:13 -0000
- Subject: [Bug c++/26950] Error diagnostic not issued for unacceptable result of lookup for a name used in a nested-name-specifier
- References: <bug-26950-10061@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from widman at gimpel dot com 2006-03-31 05:36 -------
Subject: Re: Error diagnostic not issued for unacceptable result of lookup for
a name used in a nested-name-specifier
On Mar 30, 2006, at 11:47 PM, Daveed Vandevoorde wrote:
>
> On Mar 30, 2006, at 4:06 PM, James Widman wrote:
<snip>
>> "enum N" is not an enumerator name; it's an enumeration name (or
>> an /enum-name/ [7.2p1]), so "enum N" cannot be ignored.
>
> Ah, you're right. It turns out that the grammar in this area
> has changed since the 1998 standard (as John Spicer pointed
> out to me). The 1998 version of the standard had
>
> nested-name-specifier:
> class-or-namespace-name :: nested-name-specifieropt
> class-or-namespace-name :: template nested-name-specifier
>
> which meant only classes or namespace names were considered.
> That could be read as meaning that 3.4.3/1 never was reached
> with an enumeration type name, but there is no unanimity on
> that reading.
>
> With the current wording (which was introduced because the
> earlier wording didn't correctly deal with template-dependent
> qualifiers), it's pretty unambiguous that your example is
> ill-formed and we think the standard should not be changed
> in that regard.
>
> I've filed a defect numbered EDGcpfe/7621 to track this.
>
> Cheers,
>
> Daveed Vandevoorde
> Edison Design Group
Thanks; that should help to simplify our lookup routines ever-so-
slightly. (:
For those with a superstitious bent, I'd like to point out that this
week saw a total eclipse of the sun, news of genetically modified
pigs (perhaps with wings next), and now it's been revealed that GCC
and EDG have the same front end bug for a case where *every other C++
front end* appears to get it right.
This is clearly a sign that the end is nigh. It's apocalypse party
time. (:
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26950