mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
configure: add a few warning flags for gcc and clang to help catch bugs
They concern topics like: - portability; - dangerous constructs; - clearer code for maintainability Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
committed by
Carlos R. Mafra
parent
30e1fad926
commit
149f6b0390
31
configure.ac
31
configure.ac
@@ -111,17 +111,40 @@ AS_IF([test "x$debug" = "xyes"],
|
|||||||
dnl where some options are not supported and we don't want to
|
dnl where some options are not supported and we don't want to
|
||||||
dnl loose all of them.
|
dnl loose all of them.
|
||||||
dnl
|
dnl
|
||||||
|
dnl clang, suggest parenthesis on bit operations that could be
|
||||||
|
dnl misunderstood due to C operator precedence
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wbitwise-op-parentheses])
|
||||||
|
dnl
|
||||||
|
dnl Points at code that gcc thinks is so complicated that gcc
|
||||||
|
dnl gives up trying to optimize, which probably also means it is
|
||||||
|
dnl too complicated to maintain
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wdisabled-optimization])
|
||||||
|
dnl
|
||||||
dnl Floating-point comparison is not a good idea
|
dnl Floating-point comparison is not a good idea
|
||||||
AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
|
AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
|
||||||
dnl
|
dnl
|
||||||
|
dnl clang warns about constants that may have portability issues due
|
||||||
|
dnl to the endianness of the host
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wfour-char-constants])
|
||||||
|
dnl
|
||||||
|
dnl clang warns about constant that may be too big to be portable
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wliteral-range])
|
||||||
|
dnl
|
||||||
dnl Try to report misuses of '&' versus '&&' and similar
|
dnl Try to report misuses of '&' versus '&&' and similar
|
||||||
AX_CFLAGS_GCC_OPTION([-Wlogical-op])
|
AX_CFLAGS_GCC_OPTION([-Wlogical-op])
|
||||||
dnl
|
dnl
|
||||||
|
dnl clang, reports cases where the code assumes everyone is an
|
||||||
|
dnl expert in C operator precedence... which is unlikely!
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wlogical-op-parentheses])
|
||||||
|
dnl
|
||||||
dnl Reports declaration of global things that are done inside
|
dnl Reports declaration of global things that are done inside
|
||||||
dnl a local environment, instead of using the appropriate
|
dnl a local environment, instead of using the appropriate
|
||||||
dnl header
|
dnl header
|
||||||
AX_CFLAGS_GCC_OPTION([-Wnested-externs])
|
AX_CFLAGS_GCC_OPTION([-Wnested-externs])
|
||||||
dnl
|
dnl
|
||||||
|
dnl Warn about constant strings that could pose portability issues
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Woverlength-strings])
|
||||||
|
dnl
|
||||||
dnl Use of 'sizeof()' on inappropriate pointer types
|
dnl Use of 'sizeof()' on inappropriate pointer types
|
||||||
AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
|
AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
|
||||||
dnl
|
dnl
|
||||||
@@ -129,6 +152,11 @@ AS_IF([test "x$debug" = "xyes"],
|
|||||||
dnl more difficult, so try to avoid it
|
dnl more difficult, so try to avoid it
|
||||||
AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
|
AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
|
||||||
dnl
|
dnl
|
||||||
|
dnl clang, detect some misuses of sizeof. We also count in our code
|
||||||
|
dnl on the use of the macro 'wlength' which contains a check if the
|
||||||
|
dnl compiler support C11's static_assert
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wsizeof-array-argument])
|
||||||
|
dnl
|
||||||
dnl Prototype of function must be explicit, no deprecated K&R syntax
|
dnl Prototype of function must be explicit, no deprecated K&R syntax
|
||||||
dnl and no empty argument list which prevents compiler from doing
|
dnl and no empty argument list which prevents compiler from doing
|
||||||
dnl type checking when using the function
|
dnl type checking when using the function
|
||||||
@@ -152,6 +180,9 @@ AS_IF([test "x$debug" = "xyes"],
|
|||||||
dnl GCC provides a couple of checks to detect incorrect macro uses
|
dnl GCC provides a couple of checks to detect incorrect macro uses
|
||||||
AX_CFLAGS_GCC_OPTION([-Wundef])
|
AX_CFLAGS_GCC_OPTION([-Wundef])
|
||||||
WM_CFLAGS_GCC_OPTION_UNUSEDMACROS
|
WM_CFLAGS_GCC_OPTION_UNUSEDMACROS
|
||||||
|
dnl
|
||||||
|
dnl clang reports stuff marked unused but which is actually used
|
||||||
|
AX_CFLAGS_GCC_OPTION([-Wused-but-marked-unused])
|
||||||
], [dnl
|
], [dnl
|
||||||
dnl When debug not enabled, we try to avoid some non-necessary
|
dnl When debug not enabled, we try to avoid some non-necessary
|
||||||
dnl messages from the compiler
|
dnl messages from the compiler
|
||||||
|
|||||||
Reference in New Issue
Block a user