[llvm] r174103 - Add -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning

Duncan Sands baldrick at free.fr
Tue Feb 5 21:04:03 PST 2013


Hi Richard,

On 31/01/13 23:19, Richard Smith wrote:
> Author: rsmith
> Date: Thu Jan 31 16:19:12 2013
> New Revision: 174103
>
> URL: http://llvm.org/viewvc/llvm-project?rev=174103&view=rev
> Log:
> Add -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning
> catches uses of an extremely minor and widely-available C++ extension (which
> every C++ compiler I could find supports, but EDG and Clang reject in strict
> mode).

this broke some build bots, for example

http://lab.llvm.org:8011/builders/dragonegg-x86_64-linux-gcc-4.6-test/builds/1249/steps/compile.llvm/logs/stdio

At global scope:
cc1plus: error: unrecognized command line option "-Wno-nested-anon-types"
make[3]: *** 
[/home/baldrick/osuosl/slave/dragonegg-x86_64-linux-gcc-4.6-test/llvm.obj/lib/Transforms/InstCombine/Release+Debug+Asserts/InstCombineCalls.o] 
Error 1

This is: gcc version 4.3.2 (Debian 4.3.2-1.1)

Best wishes, Duncan.

>
> The diagnosed code pattern looks like this:
>
> struct X {
>    union {
>      struct {
>        int a;
>        int b;
>      } S;
>    };
> };
>
> Modified:
>      llvm/trunk/Makefile.config.in
>      llvm/trunk/Makefile.rules
>      llvm/trunk/autoconf/configure.ac
>      llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
>      llvm/trunk/configure
>
> Modified: llvm/trunk/Makefile.config.in
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.config.in?rev=174103&r1=174102&r2=174103&view=diff
> ==============================================================================
> --- llvm/trunk/Makefile.config.in (original)
> +++ llvm/trunk/Makefile.config.in Thu Jan 31 16:19:12 2013
> @@ -366,6 +366,8 @@ COVERED_SWITCH_DEFAULT = @COVERED_SWITCH
>   NO_UNINITIALIZED = @NO_UNINITIALIZED@
>   # -Wno-maybe-uninitialized
>   NO_MAYBE_UNINITIALIZED = @NO_MAYBE_UNINITIALIZED@
> +# -Wno-nested-anon-types
> +NO_NESTED_ANON_TYPES = @NO_NESTED_ANON_TYPES@
>
>   # Was polly found in tools/polly?
>   LLVM_HAS_POLLY = @LLVM_HAS_POLLY@
>
> Modified: llvm/trunk/Makefile.rules
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=174103&r1=174102&r2=174103&view=diff
> ==============================================================================
> --- llvm/trunk/Makefile.rules (original)
> +++ llvm/trunk/Makefile.rules Thu Jan 31 16:19:12 2013
> @@ -665,7 +665,7 @@ LD.Flags += $(EXTRA_LD_OPTIONS)
>   endif
>
>   ifndef NO_PEDANTIC
> -CompileCommonOpts += -pedantic -Wno-long-long
> +CompileCommonOpts += -pedantic -Wno-long-long $(NO_NESTED_ANON_TYPES)
>   endif
>   CompileCommonOpts += -Wall -W -Wno-unused-parameter -Wwrite-strings \
>                        $(EXTRA_OPTIONS) $(COVERED_SWITCH_DEFAULT) \
>
> Modified: llvm/trunk/autoconf/configure.ac
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/autoconf/configure.ac?rev=174103&r1=174102&r2=174103&view=diff
> ==============================================================================
> --- llvm/trunk/autoconf/configure.ac (original)
> +++ llvm/trunk/autoconf/configure.ac Thu Jan 31 16:19:12 2013
> @@ -1264,6 +1264,7 @@ dnl Check optional compiler flags.
>   AC_MSG_CHECKING([optional compiler flags])
>   CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros])
>   CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers])
> +CXX_FLAG_CHECK(NO_NESTED_ANON_TYPES, [-Wno-nested-anon-types])
>   CXX_FLAG_CHECK(COVERED_SWITCH_DEFAULT, [-Wcovered-switch-default])
>   dnl GCC's potential uninitialized use analysis is weak and presents lots of
>   dnl false positives, so disable it.
> @@ -1299,7 +1300,7 @@ else
>     NO_UNINITIALIZED=
>     NO_MAYBE_UNINITIALIZED=
>   fi
> -AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED])
> +AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $NO_NESTED_ANON_TYPES $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED])
>
>   AC_ARG_WITH([python],
>               [AS_HELP_STRING([--with-python], [path to python])],
>
> Modified: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake?rev=174103&r1=174102&r2=174103&view=diff
> ==============================================================================
> --- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (original)
> +++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake Thu Jan 31 16:19:12 2013
> @@ -193,6 +193,10 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE
>
>       if (LLVM_ENABLE_PEDANTIC)
>         add_llvm_definitions( -pedantic -Wno-long-long )
> +      check_cxx_compiler_flag("-Werror -Wnested-anon-types" CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)
> +      if( CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG )
> +        set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types" )
> +      endif()
>       endif (LLVM_ENABLE_PEDANTIC)
>       check_cxx_compiler_flag("-Werror -Wcovered-switch-default" CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
>       if( CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG )
>
> Modified: llvm/trunk/configure
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/configure?rev=174103&r1=174102&r2=174103&view=diff
> ==============================================================================
> --- llvm/trunk/configure (original)
> +++ llvm/trunk/configure Thu Jan 31 16:19:12 2013
> @@ -766,6 +766,7 @@ CONVENIENCE_LTDL_FALSE
>   LIBADD_DL
>   NO_VARIADIC_MACROS
>   NO_MISSING_FIELD_INITIALIZERS
> +NO_NESTED_ANON_TYPES
>   COVERED_SWITCH_DEFAULT
>   NO_MAYBE_UNINITIALIZED
>   NO_UNINITIALIZED
> @@ -12260,6 +12261,8 @@ NO_VARIADIC_MACROS=`$CXX -Werror -Wno-va
>
>   NO_MISSING_FIELD_INITIALIZERS=`$CXX -Werror -Wno-missing-field-initializers -fsyntax-only -xc /dev/null 2>/dev/null && echo -Wno-missing-field-initializers`
>
> +NO_NESTED_ANON_TYPES=`$CXX -Werror -Wno-nested-anon-types -fsyntax-only -xc /dev/null 2>/dev/null && echo -Wno-nested-anon-types`
> +
>   COVERED_SWITCH_DEFAULT=`$CXX -Werror -Wcovered-switch-default -fsyntax-only -xc /dev/null 2>/dev/null && echo -Wcovered-switch-default`
>
>   if test "$GXX" = "yes"
> @@ -12289,8 +12292,8 @@ else
>     NO_UNINITIALIZED=
>     NO_MAYBE_UNINITIALIZED=
>   fi
> -{ echo "$as_me:$LINENO: result: $NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED" >&5
> -echo "${ECHO_T}$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED" >&6; }
> +{ echo "$as_me:$LINENO: result: $NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $NO_NESTED_ANON_TYPES $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED" >&5
> +echo "${ECHO_T}$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS $NO_NESTED_ANON_TYPES $COVERED_SWITCH_DEFAULT $NO_UNINITIALIZED $NO_MAYBE_UNINITIALIZED" >&6; }
>
>
>   # Check whether --with-python was given.
> @@ -22478,6 +22481,7 @@ CONVENIENCE_LTDL_FALSE!$CONVENIENCE_LTDL
>   LIBADD_DL!$LIBADD_DL$ac_delim
>   NO_VARIADIC_MACROS!$NO_VARIADIC_MACROS$ac_delim
>   NO_MISSING_FIELD_INITIALIZERS!$NO_MISSING_FIELD_INITIALIZERS$ac_delim
> +NO_NESTED_ANON_TYPES!$NO_NESTED_ANON_TYPES$ac_delim
>   COVERED_SWITCH_DEFAULT!$COVERED_SWITCH_DEFAULT$ac_delim
>   NO_MAYBE_UNINITIALIZED!$NO_MAYBE_UNINITIALIZED$ac_delim
>   NO_UNINITIALIZED!$NO_UNINITIALIZED$ac_delim
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list