bison-patches
[Top][All Lists]
Advanced

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

[PATCH 2/3] yacc: fix handling of CPP guards when no header is generated


From: Akim Demaille
Subject: [PATCH 2/3] yacc: fix handling of CPP guards when no header is generated
Date: Tue, 25 Sep 2012 10:52:27 +0200

When no header was to be generated, Bison would issue:

  /* In a future release of Bison, this section will be replaced
     by #include "".  */
  #ifndef YY_
  # define YY_

It now properly generates nothing.

* data/c.m4 (b4_cpp_guard_open, b4_cpp_guard_close): Issue nothing when
the file name is empty.
* data/yacc.c: Do not generate the above comment when there is no header
to generate.
* NEWS: Update.
---
 NEWS        | 11 +++++++++++
 data/c.m4   |  8 +++++---
 data/yacc.c |  6 ++++--
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index 7fdbc03..75a11bf 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,17 @@ GNU Bison NEWS
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
+** Bug fixes
+
+  Bugs in the test suite have been fixed.
+
+  Some errors in translations have been addressed, and --help now directs
+  users to the appropriate place to report them.
+
+  Stray Info files shipped by accident are removed.
+
+  Incorrect definitions of YY_, issued by yacc.c when no parser header is
+  generated, are removed.
 
 * Noteworthy changes in release 2.6.2 (2012-08-03) [stable]
 
diff --git a/data/c.m4 b/data/c.m4
index 45468e3..ccb4969 100644
--- a/data/c.m4
+++ b/data/c.m4
@@ -36,13 +36,15 @@ m4_define([b4_cpp_guard],
 # b4_cpp_guard_open(FILE)
 # b4_cpp_guard_close(FILE)
 # ------------------------
-# Open/close CPP inclusion guards for FILE.
+# If FILE does not expand to nothing, open/close CPP inclusion guards for FILE.
 m4_define([b4_cpp_guard_open],
+[m4_ifval(m4_quote($1),
 [#ifndef b4_cpp_guard([$1])
-# define b4_cpp_guard([$1])])
+# define b4_cpp_guard([$1])])])
 
 m4_define([b4_cpp_guard_close],
-[#endif b4_comment([!b4_cpp_guard([$1])])])
+[m4_ifval(m4_quote($1),
+[#endif b4_comment([!b4_cpp_guard([$1])])])])
 
 
 ## ---------------- ##
diff --git a/data/yacc.c b/data/yacc.c
index 2c57f01..7bcbd7c 100644
--- a/data/yacc.c
+++ b/data/yacc.c
@@ -345,9 +345,11 @@ m4_if(b4_api_prefix, [yy], [],
 # define YYERROR_VERBOSE ]b4_error_verbose_flag[
 #endif
 
-/* In a future release of Bison, this section will be replaced
+]m4_ifval(m4_quote(b4_spec_defines_file),
+[[/* In a future release of Bison, this section will be replaced
    by #include "@basename(]b4_spec_defines_file[@)".  */
-]b4_shared_declarations[
+]])dnl
+b4_shared_declarations[
 
 /* Copy the second part of user declarations.  */
 ]b4_user_post_prologue
-- 
1.7.12.1




reply via email to

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