[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: __attribute__((__unused__)) problem
From: |
victor khomenko |
Subject: |
RE: __attribute__((__unused__)) problem |
Date: |
Mon, 8 Apr 2013 16:49:18 +0000 |
Dear Akim,
Many thanks for a quick reaction!
I'll try to check the tarball later today, though it will require some time (I
need to figure out how to build it on a windows machine).
Also, I did have a few warnings in the bison-generated parsers, and will report
those too.
Best regards,
Victor.
> -----Original Message-----
> From: Akim Demaille [mailto:address@hidden
> Sent: Monday, April 08, 2013 10:59 AM
> To: victor khomenko
> Cc: 'address@hidden'
> Subject: Re: __attribute__((__unused__)) problem
>
>
> Le 8 avr. 2013 à 10:28, Akim Demaille <address@hidden> a écrit :
>
> > Hi Victor,
> >
> > You are right, this is a serious issue :( I will prepare a 2.7.1
> > asap. Could you please help me making sure it works properly with
> > Microsoft compilers? Actually, it would be nice if you could also
> > help me kill some compiler warnings. Please, have a look at the
> > following message.
> >
> > http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html
>
> I will install this is {maint}. Could you please confirm
> that the following tarball addresses your issue? Thanks in
> advance!
>
> http://www.lrde.epita.fr/~akim/download/bison-2.7.7-a565f.tar.gz
>
> commit 80a2826e69b201f9a64c3f18825afe879472efb4
> Author: Akim Demaille <address@hidden>
> Date: Mon Apr 8 10:39:48 2013 +0200
>
> yacc.c: do not use __attribute__ unprotected
>
> Reported by Victor Khomenko.
> http://lists.gnu.org/archive/html/bug-bison/2013-04/msg00001.html
>
> * data/glr.c (YYUSE, __attribute__): Fuse their definition into...
> * data/c.m4 (b4_attribute_define): this new macro.
> * data/yacc.c, data/glr.c: Use it.
>
> diff --git a/NEWS b/NEWS
> index 8da9cf9..b499cc1 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -2,6 +2,11 @@ GNU Bison NEWS
>
> * Noteworthy changes in release ?.? (????-??-??) [?]
>
> +** Bug fixes
> +
> +*** Fix compiler attribute portability (yacc.c)
> +
> + With locations enabled, __attribute__ was used unprotected.
>
> * Noteworthy changes in release 2.7 (2012-12-12) [stable]
>
> diff --git a/THANKS b/THANKS
> index ed978d3..9b24974 100644
> --- a/THANKS
> +++ b/THANKS
> @@ -121,6 +121,7 @@ Tom Tromey address@hidden
> Tommy Nordgren address@hidden
> Troy A. Johnson address@hidden
> Tys Lefering address@hidden
> +Victor Khomenko address@hidden
> Vin Shelton address@hidden
> W.C.A. Wijngaards address@hidden
> Wayne Green address@hidden
> diff --git a/data/c.m4 b/data/c.m4
> index dc3d303..a1dc2c5 100644
> --- a/data/c.m4
> +++ b/data/c.m4
> @@ -187,9 +187,29 @@ m4_define([b4_table_value_equals],
> [(!!(($2) == ($3)))])])
>
>
> -## ---------##
> -## Values. ##
> -## ---------##
> +## ----------------- ##
> +## Compiler issues. ##
> +## ----------------- ##
> +
> +# b4_attribute_define
> +# -------------------
> +# Provide portability for __attribute__.
> +m4_define([b4_attribute_define],
> +[#ifndef __attribute__
> +/* This feature is available in gcc versions 2.5 and later. */
> +# if (! defined __GNUC__ || __GNUC__ < 2 \
> + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
> +# define __attribute__(Spec) /* empty */
> +# endif
> +#endif
> +
> +/* Suppress unused-variable warnings by "using" E. */
> +#if ! defined lint || defined __GNUC__
> +# define YYUSE(E) ((void) (E))
> +#else
> +# define YYUSE(E) /* empty */
> +#endif
> +])
>
>
> # b4_null_define
> @@ -405,7 +425,7 @@ m4_define([b4_c_arg],
> ## ----------- ##
>
> # b4_sync_start(LINE, FILE)
> -# -----------------------
> +# -------------------------
> m4_define([b4_sync_start], [[#]line $1 $2])
>
>
> diff --git a/data/glr.c b/data/glr.c
> index 02a76c2..958b040 100644
> --- a/data/glr.c
> +++ b/data/glr.c
> @@ -246,13 +246,6 @@ b4_percent_code_get[]dnl
> # endif
> #endif
>
> -/* Suppress unused-variable warnings by "using" E. */
> -#if ! defined lint || defined __GNUC__
> -# define YYUSE(E) ((void) (E))
> -#else
> -# define YYUSE(E) /* empty */
> -#endif
> -
> /* Identity function, used to suppress warnings about constant conditions.
> */
> #ifndef lint
> # define YYID(N) (N)
> @@ -291,17 +284,7 @@ b4_percent_code_get[]dnl
> # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
> #endif
>
> -/*-----------------.
> -| GCC extensions. |
> -`-----------------*/
> -
> -#ifndef __attribute__
> -/* This feature is available in gcc versions 2.5 and later. */
> -# if (! defined __GNUC__ || __GNUC__ < 2 \
> - || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
> -# define __attribute__(Spec) /* empty */
> -# endif
> -#endif
> +]b4_attribute_define[
>
> #ifndef YYASSERT
> # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
> diff --git a/data/yacc.c b/data/yacc.c
> index b34549f..abc949b 100644
> --- a/data/yacc.c
> +++ b/data/yacc.c
> @@ -447,12 +447,7 @@ typedef short int yytype_int16;
> # endif
> #endif
>
> -/* Suppress unused-variable warnings by "using" E. */
> -#if ! defined lint || defined __GNUC__
> -# define YYUSE(E) ((void) (E))
> -#else
> -# define YYUSE(E) /* empty */
> -#endif
> +]b4_attribute_define[
>
> /* Identity function, used to suppress warnings about constant conditions.
> */
> #ifndef lint
- __attribute__((__unused__)) problem, victor khomenko, 2013/04/06
- Re: __attribute__((__unused__)) problem, Akim Demaille, 2013/04/08
- Re: __attribute__((__unused__)) problem, Akim Demaille, 2013/04/08
- RE: __attribute__((__unused__)) problem,
victor khomenko <=
- RE: __attribute__((__unused__)) problem, victor khomenko, 2013/04/08
- RE: __attribute__((__unused__)) problem, victor khomenko, 2013/04/08
- RE: __attribute__((__unused__)) problem, victor khomenko, 2013/04/08
- Re: __attribute__((__unused__)) problem, Akim Demaille, 2013/04/10
- Re: __attribute__((__unused__)) problem, John Horigan, 2013/04/10
- RE: __attribute__((__unused__)) problem, victor khomenko, 2013/04/10
- Re: __attribute__((__unused__)) problem, Frank Heckenbach, 2013/04/11
- Re: __attribute__((__unused__)) problem, John Horigan, 2013/04/11
- Re: __attribute__((__unused__)) problem, Akim Demaille, 2013/04/11
- RE: __attribute__((__unused__)) problem, victor khomenko, 2013/04/12