Reported by Rob Conde.
http://lists.gnu.org/archive/html/bug-bison/2013-03/msg00003.html
* data/stack.hh (operator=, stack(const stack&)): Make this class
uncopyable, i.e., "undefine" these operators: make them private and
don't implement them.
(clear): New.
* data/lalr1.cc: Use it instead of an assignment.
(parser): Make this class uncopyable.
With locations enabled, __attribute__ was used unprotected.
With locations enabled, __attribute__ was used unprotected.
+*** Fix some compiler warnings (lalr1.cc)
+
* Noteworthy changes in release 2.7 (2012-12-12) [stable]
** Bug fixes
* Noteworthy changes in release 2.7 (2012-12-12) [stable]
** Bug fixes
Richard Stallman rms@gnu.org
Rob Vermaas rob.vermaas@gmail.com
Robert Anisko anisko_r@epita.fr
Richard Stallman rms@gnu.org
Rob Vermaas rob.vermaas@gmail.com
Robert Anisko anisko_r@epita.fr
+Rob Conde rob.conde@ai-solutions.com
Satya Kiran Popuri satyakiran@gmail.com
Sebastian Setzer sebastian.setzer.ext@siemens.com
Sebastien Fricker sebastien.fricker@gmail.com
Satya Kiran Popuri satyakiran@gmail.com
Sebastian Setzer sebastian.setzer.ext@siemens.com
Sebastien Fricker sebastien.fricker@gmail.com
+ /// This class is not copyable.
+ ]b4_parser_class_name[ (const ]b4_parser_class_name[&);
+ ]b4_parser_class_name[& operator= (const ]b4_parser_class_name[&);
+
/// Report a syntax error.
/// \param loc where the syntax error is found.
/// \param msg a description of the syntax error.
/// Report a syntax error.
/// \param loc where the syntax error is found.
/// \param msg a description of the syntax error.
yynewstate, since the latter expects the semantical and the
location values to have been already stored, initialize these
stacks with a primary value. */
yynewstate, since the latter expects the semantical and the
location values to have been already stored, initialize these
stacks with a primary value. */
- yystate_stack_ = state_stack_type (0);
- yysemantic_stack_ = semantic_stack_type (0);
- yylocation_stack_ = location_stack_type (0);
+ yystate_stack_.clear ();
+ yysemantic_stack_.clear ();
+ yylocation_stack_.clear ();
yysemantic_stack_.push (yylval);
yylocation_stack_.push (yylloc);
yysemantic_stack_.push (yylval);
yylocation_stack_.push (yylloc);
+ void
+ clear ()
+ {
+ seq_.clear ();
+ }
+
inline
unsigned int
height () const
inline
unsigned int
height () const
inline const_iterator end () const { return seq_.rend (); }
private:
inline const_iterator end () const { return seq_.rend (); }
private:
+ stack (const stack&);
+ stack& operator= (const stack&);