mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 02:03: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 J. MacKenzie djm@gnu.org
|
||||||
David Kastrup dak@gnu.org
|
David Kastrup dak@gnu.org
|
||||||
Dennis Clarke dclarke@blastwave.org
|
Dennis Clarke dclarke@blastwave.org
|
||||||
|
Derek Clegg derek@me.com
|
||||||
Derek M. Jones derek@knosof.co.uk
|
Derek M. Jones derek@knosof.co.uk
|
||||||
Di-an Jan dianj@freeshell.org
|
Di-an Jan dianj@freeshell.org
|
||||||
Dick Streefland dick.streefland@altium.nl
|
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
|
# -Wno-keyword-macro: We use the "#define private public" dirty
|
||||||
# trick in the test suite to check some private implementation
|
# trick in the test suite to check some private implementation
|
||||||
# details for lalr1.cc.
|
# 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'
|
-Wno-keyword-macro'
|
||||||
|
|
||||||
AC_LANG_PUSH([C])
|
AC_LANG_PUSH([C])
|
||||||
|
|||||||
@@ -314,6 +314,8 @@ b4_location_define])])[
|
|||||||
typedef basic_symbol<by_state> super_type;
|
typedef basic_symbol<by_state> super_type;
|
||||||
/// Construct an empty symbol.
|
/// Construct an empty symbol.
|
||||||
stack_symbol_type ();
|
stack_symbol_type ();
|
||||||
|
/// Copy construct.
|
||||||
|
stack_symbol_type (const stack_symbol_type& that);
|
||||||
/// Steal the contents from \a sym to build this.
|
/// Steal the contents from \a sym to build this.
|
||||||
stack_symbol_type (state_type s, symbol_type& sym);
|
stack_symbol_type (state_type s, symbol_type& sym);
|
||||||
/// Assignment, needed by push_back.
|
/// 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 ()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
]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)
|
]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that)
|
||||||
: super_type (s]b4_locations_if([, that.location])[)
|
: super_type (s]b4_locations_if([, that.location])[)
|
||||||
|
|||||||
Reference in New Issue
Block a user