This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/9621: const int typedef is rejected
- From: Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 8 Feb 2003 00:46:00 -0000
- Subject: Re: c++/9621: const int typedef is rejected
- Reply-to: Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de>
The following reply was made to PR c++/9621; it has been noted by GNATS.
From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
To: bangerth@dealii.org
Cc: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org,
patrick.rabau@gs.com, gcc-gnats@gcc.gnu.org
Subject: Re: c++/9621: const int typedef is rejected
Date: 08 Feb 2003 01:42:45 +0100
bangerth@dealii.org writes:
> Synopsis: const int typedef is rejected
>
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Sat Feb 8 00:22:54 2003
> State-Changed-Why:
> Fixed in 3.4: it accepts both typedefs.
>
> I'm surprised that this is legal at all. The standard says
> that typedef expressions need to "contain" the typedef
> keyword, but the examples only show it as in the form
> typedef type1 type2;
>
> Can some language lawyer comment on whether and why
> type1 typedef type2;
> is legal syntax?
No, it isn't. typedef is a decl-specifier. They are only allowed as a
sequence at the start of a simple-declaration:
simple-declaration:
decl-specifier-seq[opt] init-declarator-list[opt] ;
IIRC, in C it is legal (typedef is a storage class specifier there;
the use of a storage class specifier not at the start of a declaration
is considered obsolecent, though).
--
Falk