[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: %destructor feedback
From: |
Paul Eggert |
Subject: |
Re: %destructor feedback |
Date: |
Thu, 22 Dec 2005 16:16:00 -0800 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
Thanks for doing all that. The example in NEWS was a bit confusing,
since one normally wouldn't want to ignore $3 in 'exp "+" exp', so I
tried to improve it by installing the following patch.
2005-12-22 Paul Eggert <address@hidden>
* NEWS: Improve wording for unused-value warnings.
--- NEWS 22 Dec 2005 11:40:05 -0000 1.137
+++ NEWS 23 Dec 2005 00:13:11 -0000 1.138
@@ -5,21 +5,29 @@ Changes in version 2.1a:
* New warning: unused values
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 "?" exp ":" exp { $$ = $1 ? $1 : $3; }
+ | exp "+" exp
+ ;
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
- warning, let Bison believe the value is used, e.g.
+ second ($1 is copied to $$ by the default rule). This example
+ most likely contains two errors, and should be rewritten as:
- exp: exp "?" exp ":" exp { $$ = $1 + $3; $5; }
- | exp "+" exp { $$ = $1; $3; }
+ exp: exp "?" exp ":" exp { $$ = $1 ? $3 : $5; }
+ | exp "+" exp { $$ = $1 + $3; }
+ ;
+
+ However, if the original actions were really intended, the warnings
+ 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; }
+ ;
- This helps catching lost values and memory leaks: if a value is
- ignored, its associated memory will never be reclaimed.
+ 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.
Destructors are now called when user code invokes YYABORT, YYACCEPT,
- Re: %destructor feedback, (continued)
Re: %destructor feedback, Paul Eggert, 2005/12/21
Re: %destructor feedback, Akim Demaille, 2005/12/22
- Re: %destructor feedback, Joel E. Denny, 2005/12/22
- Re: %destructor feedback, Paul Eggert, 2005/12/22
- Re: %destructor feedback, Akim Demaille, 2005/12/23
- Re: %destructor feedback, Akim Demaille, 2005/12/27
- Re: %destructor feedback, Akim Demaille, 2005/12/27
- Re: %destructor feedback, Paul Eggert, 2005/12/27
Re: %destructor feedback,
Paul Eggert <=
Re: %destructor feedback, SteveBravy, 2005/12/24