]> git.saurik.com Git - bison.git/commitdiff
tests: c++: fix a C++03 conformance issue
authorAkim Demaille <akim@lrde.epita.fr>
Wed, 21 Jan 2015 17:34:01 +0000 (18:34 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Thu, 22 Jan 2015 07:45:44 +0000 (08:45 +0100)
This fixes test 241 on xLC:

"input.y", line 42.11: 1540-0274 (S) The name lookup for "report" did not find a declaration.
"input.y", line 42.11: 1540-1292 (I) Static declarations are not considered for a function call if the function is not qualified.

where report is:

  static void
  report (std::ostream& yyo, int ival, float fval)
  {
    yyo << "ival: " << ival << ", fval: " <<  fval;
  }

and line 42 is:

  %printer { report (yyo, $$,       $<fval>$); } <ival>;

It turns out that indeed this function must not be declared static,
<http://stackoverflow.com/a/17662745/1353549>.  Let's put it into an
anonymous namespace.

Reported by Thomas Jahns.
http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00059.html

* tests/actions.at (Qualified $$ in actions): Don't use "static",
prefer anonymous namespace.

NEWS
tests/actions.at

diff --git a/NEWS b/NEWS
index 2e38038e179df8a37b181e4ceb47876ffadded8d..3bd5d10aa3578fefee05b97d57f17be1e77abb26 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,10 @@ GNU Bison NEWS
 
   Fix a compiler warning when no %destructor use $$.
 
+*** Test suites
+
+  Several portability issues in tests were fixed.
+
 * Noteworthy changes in release 3.0.3 (2015-01-15) [stable]
 
 ** Bug fixes
index 7220b715418b6e35a51efb83ab2459719d9238c6..2671ca5478fb7a58a1c7d3308642b344a4c7cf8f 100644 (file)
@@ -1530,10 +1530,13 @@ AT_DATA_GRAMMAR([[input.y]],
 
 ]AT_SKEL_CC_IF([[
 # include <iostream>
-  static void
-  report (std::ostream& yyo, int ival, float fval)
+  namespace
   {
-    yyo << "ival: " << ival << ", fval: " <<  fval;
+    void
+    report (std::ostream& yyo, int ival, float fval)
+    {
+      yyo << "ival: " << ival << ", fval: " <<  fval;
+    }
   }
 ]], [[
 # include <stdio.h>