mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 04:43:03 +00:00
C++: fix -Wdeprecated warnings
For instance on test 99:
In file included from @@.cc:56:
@@.hh:409:26: error: definition of implicit copy constructor for
'stack_symbol_type' is deprecated because it
has a user-declared copy assignment operator
[-Werror,-Wdeprecated]
stack_symbol_type& operator= (const stack_symbol_type& that);
^
Reported by Derek Clegg.
https://lists.gnu.org/archive/html/bison-patches/2018-05/msg00036.html
* configure.ac (warn_tests): Add -Wdeprecated.
* data/lalr1.cc (stack_symbol_type): Add an explicit copy ctor.
We cannot rely on the explicit default implementation (`= default`)
as we support C++ 98.
This commit is contained in:
1
THANKS
1
THANKS
@@ -40,6 +40,7 @@ Daniel Hagerty hag@gnu.org
|
||||
David J. MacKenzie djm@gnu.org
|
||||
David Kastrup dak@gnu.org
|
||||
Dennis Clarke dclarke@blastwave.org
|
||||
Derek Clegg derek@me.com
|
||||
Derek M. Jones derek@knosof.co.uk
|
||||
Di-an Jan dianj@freeshell.org
|
||||
Dick Streefland dick.streefland@altium.nl
|
||||
|
||||
@@ -94,7 +94,7 @@ if test "$enable_gcc_warnings" = yes; then
|
||||
# -Wno-keyword-macro: We use the "#define private public" dirty
|
||||
# trick in the test suite to check some private implementation
|
||||
# details for lalr1.cc.
|
||||
warn_tests='-Wundef -pedantic -Wsign-compare -fno-color-diagnostics
|
||||
warn_tests='-Wundef -pedantic -Wdeprecated -Wsign-compare -fno-color-diagnostics
|
||||
-Wno-keyword-macro'
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
|
||||
@@ -314,6 +314,8 @@ b4_location_define])])[
|
||||
typedef basic_symbol<by_state> super_type;
|
||||
/// Construct an empty symbol.
|
||||
stack_symbol_type ();
|
||||
/// Copy construct.
|
||||
stack_symbol_type (const stack_symbol_type& that);
|
||||
/// Steal the contents from \a sym to build this.
|
||||
stack_symbol_type (state_type s, symbol_type& sym);
|
||||
/// Assignment, needed by push_back.
|
||||
@@ -573,6 +575,13 @@ m4_if(b4_prefix, [yy], [],
|
||||
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type ()
|
||||
{}
|
||||
|
||||
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that)
|
||||
: super_type (that.state]b4_locations_if([, that.location])[)
|
||||
{
|
||||
]b4_variant_if([b4_symbol_variant([that.type_get ()],
|
||||
[value], [copy], [that.value])],
|
||||
[[value = that.value;]])[
|
||||
}
|
||||
|
||||
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
|
||||
: super_type (s]b4_locations_if([, that.location])[)
|
||||
|
||||
Reference in New Issue
Block a user