mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 12:53:03 +00:00
warning: avoid warnings about unreachable code
Reported by Uxio Prego. https://lists.gnu.org/archive/html/help-bison/2018-11/msg00031.html We also need to move the unreachable 'goto' to a reachable place, otherwise clang complains about the code being unreachable anyway. See also https://bugs.llvm.org/show_bug.cgi?id=39736. Interestingly, we don't have to apply that trick to `#define YYCDEBUG if (false) std::cerr`, clang does not warn when the code comes from macro expansion. * configure.ac: Use -Wunreachable-code when supported. * data/lalr1.cc, data/yacc.c: Pacify clang's warning about `if (0)` by using a macro. Another possibility was to move this statement to a reachable place. * tests/actions.at, tests/c++.at: Avoid generating unreachable code.
This commit is contained in:
12
configure.ac
12
configure.ac
@@ -113,6 +113,7 @@ if test "$enable_gcc_warnings" = yes; then
|
||||
-fno-color-diagnostics
|
||||
-Wno-keyword-macro'
|
||||
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
# Clang supports many of GCC's -W options, but only issues warnings
|
||||
# on the ones it does not recognize. In that case, gl_WARN_ADD
|
||||
@@ -126,6 +127,11 @@ if test "$enable_gcc_warnings" = yes; then
|
||||
# CFLAGS, and restore CFLAGS after the tests.
|
||||
save_CFLAGS=$CFLAGS
|
||||
gl_WARN_ADD([-Werror=unknown-warning-option], [CFLAGS])
|
||||
# Accept this warning only if it is not too touchy (e.g., clang 3.3
|
||||
# and 3.4).
|
||||
gl_WARN_ADD([-Wunreachable-code], [WARN_CFLAGS],
|
||||
[AC_LANG_PROGRAM([],
|
||||
[[if (sizeof (long) < sizeof (int)) return 1;]])])
|
||||
for i in $warn_common $warn_c;
|
||||
do
|
||||
gl_WARN_ADD([$i], [WARN_CFLAGS])
|
||||
@@ -147,6 +153,7 @@ if test "$enable_gcc_warnings" = yes; then
|
||||
CFLAGS=$save_CFLAGS
|
||||
AC_LANG_POP([C])
|
||||
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
save_CXXFLAGS=$CXXFLAGS
|
||||
gl_WARN_ADD([-Werror=unknown-warning-option], [CXXFLAGS])
|
||||
@@ -154,6 +161,11 @@ if test "$enable_gcc_warnings" = yes; then
|
||||
do
|
||||
gl_WARN_ADD([$i], [WARN_CXXFLAGS])
|
||||
done
|
||||
# Accept this warning only if it is not too touchy (e.g., clang 3.3
|
||||
# and 3.4).
|
||||
gl_WARN_ADD([-Wunreachable-code], [WARN_CXXFLAGS],
|
||||
[AC_LANG_PROGRAM([],
|
||||
[[if (sizeof (long) < sizeof (int)) return 1;]])])
|
||||
gl_WARN_ADD([-Wzero-as-null-pointer-constant], [WARN_CXXFLAGS],
|
||||
[AC_LANG_PROGRAM([], [nullptr])])
|
||||
gl_WARN_ADD([-Werror], [WERROR_CXXFLAGS])
|
||||
|
||||
Reference in New Issue
Block a user