diff --git a/Foundation/include/Poco/Bugcheck.h b/Foundation/include/Poco/Bugcheck.h index 7dab4998e..904200fc2 100644 --- a/Foundation/include/Poco/Bugcheck.h +++ b/Foundation/include/Poco/Bugcheck.h @@ -148,9 +148,7 @@ protected: // -#if defined(POCO_COMPILER_GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 408) && !defined(POCO_ANDROID) - GCC_DIAG_OFF(unused-local-typedefs) // supress numerous gcc warnings -#endif // POCO_COMPILER_GCC && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 408) +GCC_DIAG_OFF(unused-local-typedefs) // supress numerous gcc warnings template diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 45b454c71..9495692b4 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -112,12 +112,6 @@ #endif -#ifndef __GNUC__ - #define GCC_DIAG_OFF(x) - #define GCC_DIAG_ON(x) -#endif - - // // Hardware Architecture and Byte Order // @@ -257,6 +251,41 @@ #endif +// +// GCC diagnostics enable/disable by Patrick Horgan, see +// http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html +// use example: GCC_DIAG_OFF(unused-variable) +// +#ifdef __GNUC__ + #if defined(POCO_COMPILER_GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) && !defined(POCO_NO_GCC_DIAG) + #ifdef GCC_DIAG_OFF + #undef GCC_DIAG_OFF + #endif + #ifdef GCC_DIAG_ON + #undef GCC_DIAG_ON + #endif + #define GCC_DIAG_STR(s) #s + #define GCC_DIAG_JOINSTR(x,y) GCC_DIAG_STR(x ## y) + #define GCC_DIAG_DO_PRAGMA(x) _Pragma (#x) + #define GCC_DIAG_PRAGMA(x) GCC_DIAG_DO_PRAGMA(GCC diagnostic x) + #if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 + #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(push) \ + GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) + #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(pop) + #else + #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) + #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(warning GCC_DIAG_JOINSTR(-W,x)) + #endif + #else + #define GCC_DIAG_OFF(x) + #define GCC_DIAG_ON(x) + #endif +#else + #define GCC_DIAG_OFF(x) + #define GCC_DIAG_ON(x) +#endif // __GNUC__ + + #if !defined(POCO_ARCH) #error "Unknown Hardware Architecture." #endif diff --git a/Foundation/include/Poco/Platform_POSIX.h b/Foundation/include/Poco/Platform_POSIX.h index dc877fbdc..6a9189c15 100644 --- a/Foundation/include/Poco/Platform_POSIX.h +++ b/Foundation/include/Poco/Platform_POSIX.h @@ -44,38 +44,6 @@ #endif -// -// GCC diagnostics enable/disable by Patrick Horgan, see -// http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html -// use example: GCC_DIAG_OFF(unused-variable) -// -#ifdef __GNUC__ - #if defined(POCO_COMPILER_GCC) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 406) && !defined(POCO_NO_GCC_DIAG) - #ifdef GCC_DIAG_OFF - #undef GCC_DIAG_OFF - #endif - #ifdef GCC_DIAG_ON - #undef GCC_DIAG_ON - #endif - #define GCC_DIAG_STR(s) #s - #define GCC_DIAG_JOINSTR(x,y) GCC_DIAG_STR(x ## y) - #define GCC_DIAG_DO_PRAGMA(x) _Pragma (#x) - #define GCC_DIAG_PRAGMA(x) GCC_DIAG_DO_PRAGMA(GCC diagnostic x) - #if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 - #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(push) \ - GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) - #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(pop) - #else - #define GCC_DIAG_OFF(x) GCC_DIAG_PRAGMA(ignored GCC_DIAG_JOINSTR(-W,x)) - #define GCC_DIAG_ON(x) GCC_DIAG_PRAGMA(warning GCC_DIAG_JOINSTR(-W,x)) - #endif - #else - #define GCC_DIAG_OFF(x) - #define GCC_DIAG_ON(x) - #endif -#endif // __GNUC__ - - // // No syslog.h on QNX/BB10 //