mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
c++: fixes for old compilers
On the CI with GCC 6:
examples/c++/calc++/parser.cc:845:5: error: 'ptrdiff_t' was not declared in this scope
ptrdiff_t yycount = 0;
^~~~~~~~~
examples/c++/calc++/parser.cc:845:5: note: suggested alternatives:
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:202:28: note: 'std::ptrdiff_t'
typedef __PTRDIFF_TYPE__ ptrdiff_t;
^~~~~~~~~
* data/skeletons/lalr1.cc: Qualify ptrdiff_t and size_t with std::.
This commit is contained in:
@@ -1155,7 +1155,7 @@ b4_dollar_popdef])[]dnl
|
||||
#if ]b4_api_PREFIX[DEBUG
|
||||
YYCDEBUG << "LAC: checking lookahead " << yytname_[yytoken] << ':';
|
||||
#endif
|
||||
ptrdiff_t lac_top = 0;
|
||||
std::ptrdiff_t lac_top = 0;
|
||||
while (true)
|
||||
{
|
||||
state_type top_state = (yylac_stack_.empty ()
|
||||
@@ -1194,12 +1194,12 @@ b4_dollar_popdef])[]dnl
|
||||
YYCDEBUG << " R" << yyrule - 1;
|
||||
// Pop the corresponding number of values from the stack.
|
||||
{
|
||||
ptrdiff_t yylen = yyr2_[yyrule];
|
||||
std::ptrdiff_t yylen = yyr2_[yyrule];
|
||||
// First pop from the LAC stack as many tokens as possible.
|
||||
ptrdiff_t lac_size = (ptrdiff_t) yylac_stack_.size ();
|
||||
std::ptrdiff_t lac_size = (std::ptrdiff_t) yylac_stack_.size ();
|
||||
if (yylen < lac_size)
|
||||
{
|
||||
yylac_stack_.resize ((size_t) (lac_size - yylen));
|
||||
yylac_stack_.resize ((std::size_t) (lac_size - yylen));
|
||||
yylen = 0;
|
||||
}
|
||||
else if (lac_size)
|
||||
@@ -1292,7 +1292,7 @@ b4_error_verbose_if([state_type yystate, const symbol_type& yyla],
|
||||
{]b4_error_verbose_if([[
|
||||
// Number of reported tokens (one for the "unexpected", one per
|
||||
// "expected").
|
||||
ptrdiff_t yycount = 0;
|
||||
std::ptrdiff_t yycount = 0;
|
||||
// Its maximum.
|
||||
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
|
||||
// Arguments of yyformat.
|
||||
@@ -1387,7 +1387,7 @@ b4_error_verbose_if([state_type yystate, const symbol_type& yyla],
|
||||
|
||||
std::string yyres;
|
||||
// Argument number.
|
||||
ptrdiff_t yyi = 0;
|
||||
std::ptrdiff_t yyi = 0;
|
||||
for (char const* yyp = yyformat; *yyp; ++yyp)
|
||||
if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ m4_define([b4_stack_define],
|
||||
return seq_[size () - 1 - i];
|
||||
}
|
||||
T&
|
||||
operator[] (ptrdiff_t i)
|
||||
operator[] (std::ptrdiff_t i)
|
||||
{
|
||||
return operator[] (size_type (i));
|
||||
}
|
||||
@@ -68,7 +68,7 @@ m4_define([b4_stack_define],
|
||||
return seq_[size () - 1 - i];
|
||||
}
|
||||
const T&
|
||||
operator[] (ptrdiff_t i) const
|
||||
operator[] (std::ptrdiff_t i) const
|
||||
{
|
||||
return operator[] (size_type (i));
|
||||
}
|
||||
@@ -90,7 +90,7 @@ m4_define([b4_stack_define],
|
||||
|
||||
/// Pop elements from the stack.
|
||||
void
|
||||
pop (ptrdiff_t n = 1) YY_NOEXCEPT
|
||||
pop (std::ptrdiff_t n = 1) YY_NOEXCEPT
|
||||
{
|
||||
for (; 0 < n; --n)
|
||||
seq_.pop_back ();
|
||||
@@ -109,10 +109,10 @@ m4_define([b4_stack_define],
|
||||
{
|
||||
return seq_.size ();
|
||||
}
|
||||
ptrdiff_t
|
||||
std::ptrdiff_t
|
||||
ssize () const YY_NOEXCEPT
|
||||
{
|
||||
return (ptrdiff_t) size ();
|
||||
return (std::ptrdiff_t) size ();
|
||||
}
|
||||
|
||||
/// Iterator on top of the stack (going downwards).
|
||||
@@ -133,20 +133,20 @@ m4_define([b4_stack_define],
|
||||
class slice
|
||||
{
|
||||
public:
|
||||
slice (const stack& stack, ptrdiff_t range)
|
||||
slice (const stack& stack, std::ptrdiff_t range)
|
||||
: stack_ (stack)
|
||||
, range_ (range)
|
||||
{}
|
||||
|
||||
const T&
|
||||
operator[] (ptrdiff_t i) const
|
||||
operator[] (std::ptrdiff_t i) const
|
||||
{
|
||||
return stack_[range_ - i];
|
||||
}
|
||||
|
||||
private:
|
||||
const stack& stack_;
|
||||
ptrdiff_t range_;
|
||||
std::ptrdiff_t range_;
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user