diff options
author | Tuncer Ayaz <[email protected]> | 2012-10-11 19:13:46 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2013-01-11 19:57:35 +0100 |
commit | 37fb3503c4b1467d2b28f407b9c27c1de147869e (patch) | |
tree | b85c8f0d8655d23392f2d6f455d0d9dc83976d6c /lib/erl_interface | |
parent | 8df9bc2fc2336245d26bdcf386fee43904d2b34b (diff) | |
download | otp-37fb3503c4b1467d2b28f407b9c27c1de147869e.tar.gz otp-37fb3503c4b1467d2b28f407b9c27c1de147869e.tar.bz2 otp-37fb3503c4b1467d2b28f407b9c27c1de147869e.zip |
If GCC is used, treat -Wreturn-type as error
Diffstat (limited to 'lib/erl_interface')
-rw-r--r-- | lib/erl_interface/aclocal.m4 | 26 | ||||
-rw-r--r-- | lib/erl_interface/configure.in | 4 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/erl_interface/aclocal.m4 b/lib/erl_interface/aclocal.m4 index 9578cd35c4..5d555a5123 100644 --- a/lib/erl_interface/aclocal.m4 +++ b/lib/erl_interface/aclocal.m4 @@ -1849,6 +1849,32 @@ case $erl_gethrvtime in esac ])dnl +dnl ---------------------------------------------------------------------- +dnl +dnl LM_TRY_ENABLE_CFLAG +dnl +dnl +dnl Tries a CFLAG and sees if it can be enabled without compiler errors +dnl $1: textual cflag to add +dnl $2: variable to store the modified CFLAG in +dnl Usage example LM_TRY_ENABLE_CFLAG([-Werror=return-type], [CFLAGS]) +dnl +dnl +AC_DEFUN([LM_TRY_ENABLE_CFLAG], [ + AC_MSG_CHECKING([if we can add $1 to CFLAGS]) + saved_CFLAGS=$CFLAGS; + CFLAGS="$1 $CFLAGS"; + AC_TRY_COMPILE([],[return 0;],can_enable_flag=true,can_enable_flag=false) + CFLAGS=$saved_CFLAGS; + if test "X$can_enable_flag" = "Xtrue"; then + AC_MSG_RESULT([yes]) + AS_VAR_SET($2, "$1 $CFLAGS") + else + AC_MSG_RESULT([no]) + AS_VAR_SET($2, "$CFLAGS") + fi +]) + dnl ERL_TRY_LINK_JAVA(CLASSES, FUNCTION-BODY dnl [ACTION_IF_FOUND [, ACTION-IF-NOT-FOUND]]) dnl Freely inspired by AC_TRY_LINK. (Maybe better to create a diff --git a/lib/erl_interface/configure.in b/lib/erl_interface/configure.in index 97f1cff345..d511f2e240 100644 --- a/lib/erl_interface/configure.in +++ b/lib/erl_interface/configure.in @@ -273,6 +273,8 @@ esac AC_SUBST(WFLAGS) if test "x$GCC" = xyes; then + # Treat certain GCC warnings as errors + LM_TRY_ENABLE_CFLAG([-Werror=return-type], [WERRORFLAGS]) WFLAGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline" # check which GCC version GCC_VERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'` @@ -287,8 +289,10 @@ if test "x$GCC" = xyes; then *) WFLAGS="$WFLAGS -fno-strict-aliasing";; esac + CFLAGS="$WERRORFLAGS $CFLAGS" else WFLAGS="" + WERRORFLAGS="" fi # --------------------------------------------------------------------------- |