mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 08:43:03 +00:00
tests: c++: fix a C++03 conformance issue
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.
This commit is contained in:
4
NEWS
4
NEWS
@@ -8,6 +8,10 @@ GNU Bison NEWS
|
|||||||
|
|
||||||
Fix a compiler warning when no %destructor use $$.
|
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]
|
* Noteworthy changes in release 3.0.3 (2015-01-15) [stable]
|
||||||
|
|
||||||
** Bug fixes
|
** Bug fixes
|
||||||
|
|||||||
@@ -1530,10 +1530,13 @@ AT_DATA_GRAMMAR([[input.y]],
|
|||||||
|
|
||||||
]AT_SKEL_CC_IF([[
|
]AT_SKEL_CC_IF([[
|
||||||
# include <iostream>
|
# include <iostream>
|
||||||
static void
|
namespace
|
||||||
report (std::ostream& yyo, int ival, float fval)
|
|
||||||
{
|
{
|
||||||
yyo << "ival: " << ival << ", fval: " << fval;
|
void
|
||||||
|
report (std::ostream& yyo, int ival, float fval)
|
||||||
|
{
|
||||||
|
yyo << "ival: " << ival << ", fval: " << fval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]], [[
|
]], [[
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user