* NEWS: Improve wording for unused-value warnings.

This commit is contained in:
Paul Eggert
2005-12-23 00:13:11 +00:00
parent a0af42fce6
commit 721be13c5b
2 changed files with 23 additions and 11 deletions

View File

@@ -1,3 +1,7 @@
2005-12-22 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Improve wording for unused-value warnings.
2005-12-22 Akim Demaille <akim@epita.fr> 2005-12-22 Akim Demaille <akim@epita.fr>
* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
@@ -8,7 +12,7 @@
2005-12-22 Akim Demaille <akim@epita.fr> 2005-12-22 Akim Demaille <akim@epita.fr>
Warn about unused values. * NEWS: Warn about unused values.
* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
a `used' member. a `used' member.
(symbol_list_n_get, symbol_list_n_used_set): New. (symbol_list_n_get, symbol_list_n_used_set): New.

28
NEWS
View File

@@ -5,21 +5,29 @@ Changes in version 2.1a:
* New warning: unused values * New warning: unused values
Typed right-hand side symbols whose value are not used are reported. Typed right-hand side symbols whose value are not used are reported.
For instance For instance:
exp: exp "?" exp ":" exp { $$ = $1 + $3; } exp: exp "?" exp ":" exp { $$ = $1 ? $1 : $3; }
| exp "+" exp | exp "+" exp
; ;
will trigger a warning about $5 of the first rule, and $3 in the will trigger a warning about $5 of the first rule, and $3 in the
second ($1 is copied to $$ by the default rule). To avoid this second ($1 is copied to $$ by the default rule). This example
warning, let Bison believe the value is used, e.g. most likely contains two errors, and should be rewritten as:
exp: exp "?" exp ":" exp { $$ = $1 + $3; $5; } exp: exp "?" exp ":" exp { $$ = $1 ? $3 : $5; }
| exp "+" exp { $$ = $1; $3; } | exp "+" exp { $$ = $1 + $3; }
;
This helps catching lost values and memory leaks: if a value is However, if the original actions were really intended, the warnings
ignored, its associated memory will never be reclaimed. can be suppressed by letting Bison believe the values are used, e.g.:
exp: exp "?" exp ":" exp { $$ = $1 ? $1 : $3; (void) $5; }
| exp "+" exp { $$ = $1; (void) $3; }
;
The warning is intended to help catching lost values and memory leaks.
If a value is ignored, its associated memory typically is not reclaimed.
* %destructor vs. YYABORT, YYACCEPT, and YYERROR. * %destructor vs. YYABORT, YYACCEPT, and YYERROR.
Destructors are now called when user code invokes YYABORT, YYACCEPT, Destructors are now called when user code invokes YYABORT, YYACCEPT,