Fix build with g++ 3.4 with -pedantic[-errors] option.
The use of variadic macros results in a warning/error if -pedantic[-errors] is used when compiling C++98 code as they are only formally part of C99 (or C++11). With g++ 4 and later, this can be avoided by using -Wno-variadic-macros option, but it doesn't exist in g++ 3, so a nasty workaround in the header itself is required: mark it as system header in order to fix compilation. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
39da0824d3
commit
91b7aab4c2
@ -128,6 +128,21 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_VARIADIC_MACROS
|
#ifdef HAVE_VARIADIC_MACROS
|
||||||
|
|
||||||
|
/*
|
||||||
|
This is a hack to make it possible to use variadic macros with g++ 3.x even
|
||||||
|
when using -pedantic[-errors] option: without this, it would complain that
|
||||||
|
|
||||||
|
"anonymous variadic macros were introduced in C99"
|
||||||
|
|
||||||
|
and the option disabling this warning (-Wno-variadic-macros) is only
|
||||||
|
available in gcc 4.0 and later, so until then this hack is the only thing we
|
||||||
|
can do.
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && __GNUC__ == 3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif /* gcc-3.x */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
wxCALL_FOR_EACH(what, ...) calls the macro from its first argument, what(pos, x),
|
wxCALL_FOR_EACH(what, ...) calls the macro from its first argument, what(pos, x),
|
||||||
for every remaining argument 'x', with 'pos' being its 1-based index in
|
for every remaining argument 'x', with 'pos' being its 1-based index in
|
||||||
|
@ -357,6 +357,12 @@ private:
|
|||||||
method.
|
method.
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_VARIADIC_MACROS
|
#ifdef HAVE_VARIADIC_MACROS
|
||||||
|
|
||||||
|
// See wx/cpp.h for the explanations of this hack.
|
||||||
|
#if defined(__GNUC__) && __GNUC__ == 3
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif /* gcc-3.x */
|
||||||
|
|
||||||
#define wxTEST_DIALOG(codeToRun, ...) \
|
#define wxTEST_DIALOG(codeToRun, ...) \
|
||||||
{ \
|
{ \
|
||||||
wxTEST_DIALOG_HOOK_CLASS wx_hook; \
|
wxTEST_DIALOG_HOOK_CLASS wx_hook; \
|
||||||
|
Loading…
Reference in New Issue
Block a user