]> git.saurik.com Git - bison.git/commitdiff
lalr1.cc: fix compiler warnings
authorAkim Demaille <akim@lrde.epita.fr>
Mon, 8 Apr 2013 08:54:12 +0000 (10:54 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Mon, 8 Apr 2013 08:59:19 +0000 (10:59 +0200)
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.

NEWS
THANKS
data/lalr1.cc
data/stack.hh

diff --git a/NEWS b/NEWS
index b499cc1359ed315f1a1931e9cbe2d9a2c074c38c..ead8478845940bc7faddacb4352d713c277427a9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,8 @@ GNU Bison NEWS
 
   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
diff --git a/THANKS b/THANKS
index 9b24974f878b8c25dcd503ee836c428ca5b9a160..0244a19e5cc93929b4f7d0991832aa04271dc3de 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -103,6 +103,7 @@ Ralf Wildenhues           Ralf.Wildenhues@gmx.de
 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
index 237b246f5be6490e7393028c86f425d1b57fc4c5..68de8b40fec7a2a85aac72998857acd075287b4b 100644 (file)
@@ -107,6 +107,10 @@ b4_user_stype
 #endif
 
   private:
+    /// 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.
@@ -552,9 +556,9 @@ b4_dollar_popdef])[]dnl
        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);
 
index ab1049c184d4f111513e6bb33ecb00f8b888bab9..8f6286078885aeb5f2da652c61fc07a6d74be51e 100644 (file)
@@ -77,6 +77,12 @@ b4_copyright([Stack handling for Bison parsers in C++],
         seq_.pop_front ();
     }
 
+    void
+    clear ()
+    {
+      seq_.clear ();
+    }
+
     inline
     unsigned int
     height () const
@@ -88,6 +94,8 @@ b4_copyright([Stack handling for Bison parsers in C++],
     inline const_iterator end () const { return seq_.rend (); }
 
   private:
+    stack (const stack&);
+    stack& operator= (const stack&);
     S seq_;
   };