(root)/
strace-6.5/
m4/
st_warn_cflags.m4
#!/usr/bin/m4
#
# Copyright (c) 2016-2021 The strace developers.
# All rights reserved.
#
# SPDX-License-Identifier: LGPL-2.1-or-later

AC_DEFUN([st_WARN_CFLAGS], [dnl
AC_CACHE_CHECK([whether $[]_AC_CC[] is fresh enough for -Werror],
	       [st_cv_cc_enable_Werror],
               [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if defined __GNUC__ && defined __GNUC_MINOR__
# define GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#else
# define GNUC_PREREQ(maj, min) 0
#endif

#if defined __clang__ && defined __clang_major__ && defined __clang_minor__
# define CLANG_PREREQ(maj, min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
#else
# define CLANG_PREREQ(maj, min) 0
#endif
]],
			       [[int i[GNUC_PREREQ(4, 8) + CLANG_PREREQ(6, 0) > 0 ? 1 : - 1];]])],
			       [st_cv_cc_enable_Werror=yes],
			       [st_cv_cc_enable_Werror=no])])
AC_CACHE_CHECK([whether to try $[]_AC_CC[] with -Werror by default],
	       [st_cv_enable_Werror],
	       [if test "$st_cv_cc_enable_Werror" != yes; then
		  st_cv_enable_Werror='no, the compiler is too old'
		elif test "$arch_enable_Werror" != yes; then
		  st_cv_enable_Werror='no, architecture is not ready'
		else
		  st_cv_enable_Werror=yes
		fi])
gl_WARN_ADD([-Wall])
gl_WARN_ADD([-Wextra])
gl_WARN_ADD([-Wno-missing-field-initializers])
gl_WARN_ADD([-Wno-unused-parameter])

gl_WARN_ADD([-Wdate-time])
gl_WARN_ADD([-Wformat-security])
gl_WARN_ADD([-Wimplicit-fallthrough=5])
gl_WARN_ADD([-Winit-self])
gl_WARN_ADD([-Winitializer-overrides])
gl_WARN_ADD([-Wlogical-op])
gl_WARN_ADD([-Wmissing-prototypes])
gl_WARN_ADD([-Wnested-externs])
gl_WARN_ADD([-Wold-style-definition])
gl_WARN_ADD([-Wtrampolines])
gl_WARN_ADD([-Wundef])
gl_WARN_ADD([-Wwrite-strings])
AC_ARG_ENABLE([gcc-Werror],
	      [AS_HELP_STRING([--enable-gcc-Werror],
			      [turn on gcc's -Werror option])],
	      [case "$enable_gcc_Werror" in
		yes|no|no,*) ;;
		*) AC_MSG_ERROR([bad value $enable_gcc_Werror for gcc-Werror option]) ;;
	       esac],
	      [enable_gcc_Werror="$st_cv_enable_Werror"])
if test "$enable_gcc_Werror" = yes; then
  gl_WARN_ADD([-Werror])
fi
AC_SUBST([WARN_CFLAGS])
])