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++/9621: const int typedef is rejected


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


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