This is the mail archive of the gcc-prs@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


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


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