]> git.saurik.com Git - bison.git/blobdiff - NEWS
Warn about unused values.
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index ae7c5c9499d3197ca41350ccdd41529195864ef2..94e9cc17cfe181f07df0734bb9e78a64b3f87273 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,17 +3,29 @@ Bison News
 
 Changes in version 2.1a:
 
+* New warning: unused values
+  Typed right-hand side symbols whose value are not used are reported.
+  For instance
+
+       exp: exp "?" exp ":" exp { $$ = $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.
+
+       exp: exp "?" exp ":" exp { $$ = $1 + $3; $5; }
+          | exp "+" exp         { $$ = $1; $3; }
+
+  This helps catching lost values and memory leaks: if a value is
+  ignored, its associated memory will never be reclaimed.
+
 * %destructor vs. YYABORT, YYACCEPT, and YYERROR.
   Destructors are now called when user code invokes YYABORT, YYACCEPT,
   and YYERROR, for all objects on the stack, other than objects
   corresponding to the right-hand side of the current rule.
 
-* GLR, C++ LALR(1) parsers.
-  These parser skeletons are now distributed with the same special
-  license exception that the C LALR(1) parser skeleton has had since
-  Bison 1.24.  Hence the FSF imposes no copyright restriction on the
-  output of Bison when it is generating such parsers.
-
 * %expect, %expect-rr
   Incorrect numbers of expected conflicts are now actual errors,
   instead of warnings.