diff --git a/THANKS b/THANKS index 52298d08..d964c10a 100644 --- a/THANKS +++ b/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 diff --git a/configure.ac b/configure.ac index 5412f6b9..99f6ad43 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/data/lalr1.cc b/data/lalr1.cc index a4feab0a..5ac9d2de 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -314,6 +314,8 @@ b4_location_define])])[ typedef basic_symbol 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])[)