diff --git a/include/wx/cpp.h b/include/wx/cpp.h index 19aa9bea52..5dfe6afccd 100644 --- a/include/wx/cpp.h +++ b/include/wx/cpp.h @@ -128,6 +128,21 @@ #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), for every remaining argument 'x', with 'pos' being its 1-based index in diff --git a/include/wx/testing.h b/include/wx/testing.h index a0961baef5..6dd6794fcb 100644 --- a/include/wx/testing.h +++ b/include/wx/testing.h @@ -357,6 +357,12 @@ private: method. */ #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, ...) \ { \ wxTEST_DIALOG_HOOK_CLASS wx_hook; \