bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FYI: master: c++: fix GCC8 warnings about uninitialized values


From: Akim Demaille
Subject: Re: FYI: master: c++: fix GCC8 warnings about uninitialized values
Date: Sun, 19 Aug 2018 09:37:02 +0200


> Le 18 août 2018 à 19:44, Paul Eggert <address@hidden> a écrit :
> 
> Akim Demaille wrote:
>> You did that for the compilers that do not support the pragma.  ISTR that I 
>> was in favor of always initializing yylval, but you commented that that 
>> would prevent the compiler from reporting the user that she forgot to set 
>> yylval :)
>> Unfortunately it seems that it does not work: if we take the input.y file 
>> from my previous message and_remove_  the definition of yylval in yoles 
>> then… GCC no longer warns!
> 
> That's very strange. Can you send me the C file that GCC is not complaining 
> about, but should complain? Along with the gcc options you're using?

There you are!

--- yylval-is-set.y     2018-08-19 09:32:34.985921138 +0200
+++ yylval-is-not-set.y 2018-08-19 09:33:04.246656396 +0200
@@ -4,7 +4,7 @@
   static int yylex (YYSTYPE *lvalp)
   {
     static char const *input = "aa";
-    *lvalp = 1;
+    //*lvalp = 1;
     return *input++;
   }
   

$ ~/src/gnu/bison/_build/8s/tests/bison yylval-is-set.y -o yylval-is-set.c

$ ~/src/gnu/bison/_build/8s/tests/bison yylval-is-not-set.y -o 
yylval-is-not-set.c

$ g++-mp-8 -O2 -Wmaybe-uninitialized yylval-is-set.c
yylval-is-set.c: In function 'int yyparse()':
yylval-is-set.c:976:9: warning: 'yylval' may be used uninitialized in this 
function [-Wmaybe-uninitialized]
 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
         ^~~~~~

$ g++-mp-8 -O2 -Wmaybe-uninitialized yylval-is-not-set.c
$

$ g++-mp-8 --version
g++-mp-8 (MacPorts gcc8 8.2.0_0) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Attachment: yylval-is-not-set.c
Description: Binary data

Attachment: yylval-is-not-set.y
Description: Binary data

Attachment: yylval-is-set.c
Description: Binary data

Attachment: yylval-is-set.y
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]