[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FYI: c++: avoid GCC 8 warnings
From: |
Akim Demaille |
Subject: |
FYI: c++: avoid GCC 8 warnings |
Date: |
Wed, 15 Aug 2018 19:38:37 +0200 |
Installed in maint and master.
commit bd07c76b0abaa8bcd4f34435169cb1d4dbc8abd0
Author: Akim Demaille <address@hidden>
Date: Wed Aug 15 18:35:46 2018 +0200
c++: avoid GCC 8 warnings
GCC 8 issues warnings whose root cause was a bit hard to find.
calc.cc: In member function 'virtual int yy::parser::parse()':
calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used
uninitialized in this function [-Wmaybe-uninitialized]
, location (l)
^
calc.cc: In member function 'void yy::parser::yypush_(const char*,
yy::parser::stack_symbol_type&)':
calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used
uninitialized in this function [-Wmaybe-uninitialized]
, location (l)
^
calc.cc: In member function 'void yy::parser::yypush_(const char*,
yy::parser::state_type, yy::parser::symbol_type&)':
calc.cc:810:18: warning: '*((void*)&<anonymous> +8)' may be used
uninitialized in this function [-Wmaybe-uninitialized]
, location (l)
^
The problem is with locations that don't have a constructor, such as
Span (in calc.cc) which is POD. It is POD on purpose: so that we can
use that structure to test glr.cc which cannot use non POD in its
(C) stacks.
* data/c++.m4 (basic_symbol): Also ensure that 'location' is
initialized.
diff --git a/data/c++.m4 b/data/c++.m4
index 3eca8009..90679345 100644
--- a/data/c++.m4
+++ b/data/c++.m4
@@ -296,7 +296,8 @@ m4_define([b4_public_types_define],
// basic_symbol.
template <typename Base>
- ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol ()
+ ]b4_parser_class_name[::basic_symbol<Base>::basic_symbol ()]b4_locations_if([
+ : location ()])[
{}
template <typename Base>
diff --git a/gnulib b/gnulib
index 8635df0a..dd1a129e 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 8635df0ac89e4b1e77322126ecff67e6bca62bd8
+Subproject commit dd1a129ef62d10b1eeb4b40ad39771b93f368cec
- FYI: c++: avoid GCC 8 warnings,
Akim Demaille <=