diff --git a/data/c++.m4 b/data/c++.m4 index 90679345..396d8613 100644 --- a/data/c++.m4 +++ b/data/c++.m4 @@ -296,18 +296,19 @@ m4_define([b4_public_types_define], // basic_symbol. template - ]b4_parser_class_name[::basic_symbol::basic_symbol ()]b4_locations_if([ - : location ()])[ + ]b4_parser_class_name[::basic_symbol::basic_symbol () + : value ()]b4_locations_if([ + , location ()])[ {} template ]b4_parser_class_name[::basic_symbol::basic_symbol (const basic_symbol& other) - : Base (other)]b4_locations_if([ + : Base (other) + , value (]b4_variant_if([], [other.value])[)]b4_locations_if([ , location (other.location)])[ - { - ]b4_variant_if([b4_symbol_variant([other.type_get ()], [value], [copy], - [other.value])], - [value = other.value;])[ + {]b4_variant_if([ + b4_symbol_variant([other.type_get ()], [value], [copy], + [other.value])])[ } template @@ -330,7 +331,8 @@ m4_define([b4_public_types_define], ]b4_parser_class_name[::basic_symbol::basic_symbol (]b4_join( [typename Base::kind_type t], b4_locations_if([const location_type& l]))[) - : Base (t)]b4_locations_if([ + : Base (t) + , value ()]b4_locations_if([ , location (l)])[ {}]])[ diff --git a/data/lalr1.cc b/data/lalr1.cc index 2c99aacf..053875de 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -574,11 +574,10 @@ m4_if(b4_prefix, [yy], [], {} ]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) - : super_type (s]b4_locations_if([, that.location])[) - { - ]b4_variant_if([b4_symbol_variant([that.type_get ()], - [value], [move], [that.value])], - [[value = that.value;]])[ + : super_type (s]b4_variant_if([], [, that.value])[]b4_locations_if([, that.location])[) + {]b4_variant_if([ + b4_symbol_variant([that.type_get ()], + [value], [move], [that.value])])[ // that is emptied. that.type = empty_symbol; } diff --git a/data/variant.hh b/data/variant.hh index 990d14d2..1ffc5b26 100644 --- a/data/variant.hh +++ b/data/variant.hh @@ -94,8 +94,9 @@ m4_define([b4_variant_define], typedef variant self_type; /// Empty construction. - variant ()]b4_parse_assert_if([ - : yytypeid_ (YY_NULLPTR)])[ + variant () + : yybuffer_ ()]b4_parse_assert_if([ + , yytypeid_ (YY_NULLPTR)])[ {} /// Construct and fill.