They concern topics like:
 - portability;
 - dangerous constructs;
 - clearer code for maintainability

Signed-off-by: Christophe CURIS <christophe.cu...@free.fr>
---
 configure.ac | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/configure.ac b/configure.ac
index d46923e..8fc3bd0 100644
--- a/configure.ac
+++ b/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 loose all of them.
      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
      AX_CFLAGS_GCC_OPTION([-Wfloat-equal])
      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
      AX_CFLAGS_GCC_OPTION([-Wlogical-op])
      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 a local environment, instead of using the appropriate
      dnl header
      AX_CFLAGS_GCC_OPTION([-Wnested-externs])
      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
      AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
      dnl
@@ -129,6 +152,11 @@ AS_IF([test "x$debug" = "xyes"],
      dnl more difficult, so try to avoid it
      AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
      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 and no empty argument list which prevents compiler from doing
      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
      AX_CFLAGS_GCC_OPTION([-Wundef])
      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 When debug not enabled, we try to avoid some non-necessary
      dnl messages from the compiler
-- 
2.1.3


-- 
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to