mirror of
https://github.com/openharmony/third_party_elfutils.git
synced 2026-07-19 19:43:34 -04:00
build: Check for -Wimplicit-fallthrough=5 separately
GCC accepts the =5, which means it doesn't try to parse any comments and only accepts the fallthrough attribute in code. Clang does not ever parse any comments and always wants the fallthrough attribute anyway. Clang also doesn't accept the =n parameter for -Wimplicit-fallthrough. Test for =5 separately and use it if supported and fall back to just -Wimplicit-fallthrough otherwise. Signed-off-by: Timm Bäder <tbaeder@redhat.com>
This commit is contained in:
committed by
Mark Wielaard
parent
5e77688768
commit
d6c85cff9d
@@ -64,8 +64,12 @@ endif
|
||||
if HAVE_IMPLICIT_FALLTHROUGH_WARNING
|
||||
# Use strict fallthrough. Only __attribute__((fallthrough)) will prevent the
|
||||
# warning
|
||||
if HAVE_IMPLICIT_FALLTHROUGH_5_WARNING
|
||||
IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough=5
|
||||
else
|
||||
IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough
|
||||
endif
|
||||
else
|
||||
IMPLICIT_FALLTHROUGH_WARNING=
|
||||
endif
|
||||
|
||||
|
||||
@@ -519,6 +519,18 @@ CFLAGS="$old_CFLAGS"])
|
||||
AM_CONDITIONAL(HAVE_IMPLICIT_FALLTHROUGH_WARNING,
|
||||
[test "x$ac_cv_implicit_fallthrough" != "xno"])
|
||||
|
||||
# Check whether the compiler additionally accepts -Wimplicit-fallthrough=5
|
||||
# GCC accepts this and 5 means "don't parse any fallthrough comments and
|
||||
# only accept the fallthrough attribute"
|
||||
AC_CACHE_CHECK([whether the compiler accepts -Wimplicit-fallthrough=5], ac_cv_implicit_fallthrough_5, [dnl
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Wimplicit-fallthrough=5 -Werror"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
|
||||
ac_cv_implicit_fallthrough_5=yes, ac_cv_implicit_fallthrough_5=no)
|
||||
CFLAGS="$old_CFLAGS"])
|
||||
AM_CONDITIONAL(HAVE_IMPLICIT_FALLTHROUGH_5_WARNING,
|
||||
[test "x$ac_cv_implicit_fallthrough_5" != "xno"])
|
||||
|
||||
# Assume the fallthrough attribute is supported if -Wimplict-fallthrough is supported
|
||||
if test "$ac_cv_implicit_fallthrough" = "yes"; then
|
||||
AC_DEFINE([HAVE_FALLTHROUGH], [1],
|
||||
|
||||
Reference in New Issue
Block a user