When using clang variadic macro support is now dependent on the C or C++ version system, and not automatically turned on in all situations. This reduces clang warnings.

This commit is contained in:
Edward Diener
2014-08-19 00:30:05 -04:00
parent 9c2ef3ae46
commit f77c8f2c85
2 changed files with 50 additions and 53 deletions

View File

@ -74,11 +74,8 @@
# /* variadic support explicitly disabled for all untested compilers */ # /* variadic support explicitly disabled for all untested compilers */
# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI # if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
# define BOOST_PP_VARIADICS 0 # define BOOST_PP_VARIADICS 0
# /* Clang, all versions */
# elif defined __clang__
# define BOOST_PP_VARIADICS 1
# /* VC++ (C/C++) */ # /* VC++ (C/C++) */
# elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__ # elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__ && !defined __clang__
# define BOOST_PP_VARIADICS 1 # define BOOST_PP_VARIADICS 1
# define BOOST_PP_VARIADICS_MSVC 1 # define BOOST_PP_VARIADICS_MSVC 1
# /* Wave (C/C++), GCC (C++) */ # /* Wave (C/C++), GCC (C++) */

View File

@ -19,22 +19,22 @@ project preprocessor_tests : requirements <warnings>on
test-suite preprocessor test-suite preprocessor
: :
[ compile arithmetic.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile arithmetic.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile array.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile array.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile comparison.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile comparison.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile control.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile control.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile debug.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile debug.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile facilities.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile facilities.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile iteration.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile iteration.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile list.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile list.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile logical.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile logical.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile punctuation.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile punctuation.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile repetition.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile repetition.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile selection.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile selection.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile seq.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile seq.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile slot.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile slot.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile tuple.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile tuple.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile variadic.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile variadic.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
; ;
test-suite preprocessor_nvm test-suite preprocessor_nvm
@ -58,59 +58,59 @@ test-suite preprocessor_nvm
test-suite preprocessor_c test-suite preprocessor_c
: :
[ compile arithmetic.c [ compile arithmetic.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: arithmetic_c : arithmetic_c
] ]
[ compile array.c [ compile array.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: array_c : array_c
] ]
[ compile comparison.c [ compile comparison.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: comparison_c : comparison_c
] ]
[ compile control.c [ compile control.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: control_c : control_c
] ]
[ compile debug.c [ compile debug.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: debug_c : debug_c
] ]
[ compile facilities.c [ compile facilities.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: facilities_c : facilities_c
] ]
[ compile list.c [ compile list.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: list_c : list_c
] ]
[ compile logical.c [ compile logical.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: logical_c : logical_c
] ]
[ compile punctuation.c [ compile punctuation.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: punctuation_c : punctuation_c
] ]
[ compile selection.c [ compile selection.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: selection_c : selection_c
] ]
[ compile seq.c [ compile seq.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: seq_c : seq_c
] ]
[ compile slot.c [ compile slot.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: slot_c : slot_c
] ]
[ compile tuple.c [ compile tuple.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: tuple_c : tuple_c
] ]
[ compile variadic.c [ compile variadic.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: variadic_c : variadic_c
] ]
; ;
@ -119,71 +119,71 @@ test-suite preprocessor_c_nvm
: :
[ compile arithmetic.c [ compile arithmetic.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: arithmetic_c_nvm : arithmetic_c_nvm
] ]
[ compile array.c [ compile array.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: array_c_nvm : array_c_nvm
] ]
[ compile comparison.c [ compile comparison.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: comparison_c_nvm : comparison_c_nvm
] ]
[ compile control.c [ compile control.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: control_c_nvm : control_c_nvm
] ]
[ compile debug.c [ compile debug.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: debug_c_nvm : debug_c_nvm
] ]
[ compile facilities.c [ compile facilities.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: facilities_c_nvm : facilities_c_nvm
] ]
[ compile list.c [ compile list.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: list_c_nvm : list_c_nvm
] ]
[ compile logical.c [ compile logical.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: logical_c_nvm : logical_c_nvm
] ]
[ compile selection.c [ compile selection.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: selection_c_nvm : selection_c_nvm
] ]
[ compile seq.c [ compile seq.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: seq_c_nvm : seq_c_nvm
] ]
[ compile slot.c [ compile slot.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: slot_c_nvm : slot_c_nvm
] ]
[ compile tuple.c [ compile tuple.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: tuple_c_nvm : tuple_c_nvm
] ]
; ;
test-suite preprocessor_isempty test-suite preprocessor_isempty
: :
[ compile isempty.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile isempty.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile-fail isempty_variadic_standard_failure.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile-fail isempty_variadic_standard_failure.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
[ compile-fail isempty_variadic_standard_failure2.cpp : <toolset>gcc:<cxxflags>-std=c++0x ] [ compile-fail isempty_variadic_standard_failure2.cpp : <toolset>gcc:<cxxflags>-std=c++0x <toolset>clang:<cxxflags>-std=c++0x ]
; ;
test-suite preprocessor_isempty_nvm test-suite preprocessor_isempty_nvm
@ -194,15 +194,15 @@ test-suite preprocessor_isempty_nvm
test-suite preprocessor_isempty_c test-suite preprocessor_isempty_c
: :
[ compile isempty.c [ compile isempty.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: isempty_c : isempty_c
] ]
[ compile-fail isempty_variadic_standard_failure.c [ compile-fail isempty_variadic_standard_failure.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: isempty_variadic_standard_failure_c : isempty_variadic_standard_failure_c
] ]
[ compile-fail isempty_variadic_standard_failure2.c [ compile-fail isempty_variadic_standard_failure2.c
: <toolset>gcc:<cflags>-std=c99 : <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: isempty_variadic_standard_failure2_c : isempty_variadic_standard_failure2_c
] ]
; ;
@ -211,7 +211,7 @@ test-suite preprocessor_isempty_c_nvm
: :
[ compile isempty.c [ compile isempty.c
: <define>BOOST_PP_VARIADICS=0 : <define>BOOST_PP_VARIADICS=0
<toolset>gcc:<cflags>-std=c99 <toolset>gcc:<cflags>-std=c99 <toolset>clang:<cflags>-std=c99
: isempty_c_nvm : isempty_c_nvm
] ]
; ;