diff --git a/changes/clang_30_options b/changes/clang_30_options new file mode 100644 index 0000000000..e8e34c8e3e --- /dev/null +++ b/changes/clang_30_options @@ -0,0 +1,5 @@ + o Code simplifications and refactoring: + - During configure, detect when we're building with clang version 3.0 or + lower and disable the -Wnormalized=id and -Woverride-init CFLAGS. + clang doesn't support them yet. + diff --git a/configure.in b/configure.in index 8f70f229d9..b05e935343 100644 --- a/configure.in +++ b/configure.in @@ -1170,10 +1170,10 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy #error #endif])], have_gcc43=yes, have_gcc43=no) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ -#if !defined(__clang__) || (__clang_major__ > 2) || (__clang_major__ == 2 && __clang_minor__ > 9) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ +#if !defined(__clang__) #error -#endif])], have_clang29orlower=yes, have_clang29orlower=no) +#endif])], have_clang=yes, have_clang=no) save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wshorten-64-to-32" @@ -1215,10 +1215,8 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy # We used to use -Wstrict-overflow=5, but that breaks us heavily under 4.3. fi - if test x$have_gcc42 = xyes && test x$have_clang29orlower = xno; then + if test x$have_gcc42 = xyes && test x$have_clang = xno; then # These warnings break gcc 4.0.2 and clang, but work on gcc 4.2 - # We only disable these for clang 2.9 and lower, in case they are - # supported in later versions. CFLAGS="$CFLAGS -Wnormalized=id -Woverride-init" fi