[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
__attribute__ ((__unused__)) vs. g++ 3.2.1
From: |
Robert P. Goddard |
Subject: |
__attribute__ ((__unused__)) vs. g++ 3.2.1 |
Date: |
Mon, 27 Jan 2003 11:40:34 -0800 |
User-agent: |
Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.1) Gecko/20020827 |
Bison maintainer:
I just updated both bison and gcc to the latest versions (1.875 and
3.2.1 respectively). That broke my parser.
Bison 1.875 emits the following:
yyerrlab1:
/* Suppress GCC warning that yyerrlab1 is unused when no action
invokes YYERROR. */
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
__attribute__ ((__unused__))
#endif
goto yyerrlab2;
This is rejected by g++ 3.2.1 with the following message:
ClassDef_parse.cc: In function `int yyparse()':
src/tools/ClassDef_parse.cc:1261: parse error before `goto'
where the line number is that of "goto yyerrlab2;". I was able to work
around this by inserting the following in the declarations section of my
.yy file to disable the __attribute__ mechanism entirely:
// Work around a bug in the relation between bison and GCC 3.x:
#if defined (__GNUC__) && 3 <= __GNUC__
#define __attribute__(arglist)
#endif
I don't know whether the problem is specific to g++ (GNU C++), or
whether it would arise with recent gcc (GNU C) too. I also don't know
precisely how new g++ has to be for the error to arise; I jumped
directly from 2.9.5 to 3.2.1.
--
Robert P. Goddard, Senior Physicist
Applied Physics Laboratory, University of Washington
1013 NE 40th St., Seattle, WA 98105-6698
206-543-1267; FAX 206-543-6785; address@hidden
- __attribute__ ((__unused__)) vs. g++ 3.2.1,
Robert P. Goddard <=