Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions lib/libcompat.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,20 @@
#define CK_ATTRIBUTE_NORETURN
#endif /* GCC 2.5 */

#if GCC_VERSION_AT_LEAST(4,7,4) && (__STDC_VERSION__ >= 199901L)
/* Operator _Pragma introduced in C99 */
#define CK_DIAGNOSTIC_STRINGIFY(x) #x
#define CK_DIAGNOSTIC_HELPER1(y) CK_DIAGNOSTIC_STRINGIFY(GCC diagnostic ignored y)
#define CK_DIAGNOSTIC_HELPER2(z) CK_DIAGNOSTIC_HELPER1(#z)
#define CK_DIAGNOSTIC_PUSH_IGNORE(w) \
_Pragma("GCC diagnostic push") \
_Pragma(CK_DIAGNOSTIC_HELPER2(w))
#define CK_DIAGNOSTIC_POP(w) _Pragma ("GCC diagnostic pop")
#else
#define CK_DIAGNOSTIC_PUSH_IGNORE(w)
#define CK_DIAGNOSTIC_POP(w)
#endif /* GCC 4.7.4 */

/*
* Used for MSVC to create the export attribute
* CK_DLL_EXP is defined during the compilation of the library
Expand Down
14 changes: 14 additions & 0 deletions src/check.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,20 @@ CK_CPPSTART
#define CK_ATTRIBUTE_NORETURN
#endif /* GCC 2.5 */

#if GCC_VERSION_AT_LEAST(4,7,4) && (__STDC_VERSION__ >= 199901L)
/* Operator _Pragma introduced in C99 */
#define CK_DIAGNOSTIC_STRINGIFY(x) #x
#define CK_DIAGNOSTIC_HELPER1(y) CK_DIAGNOSTIC_STRINGIFY(GCC diagnostic ignored y)
#define CK_DIAGNOSTIC_HELPER2(z) CK_DIAGNOSTIC_HELPER1(#z)
#define CK_DIAGNOSTIC_PUSH_IGNORE(w) \
_Pragma("GCC diagnostic push") \
_Pragma(CK_DIAGNOSTIC_HELPER2(w))
#define CK_DIAGNOSTIC_POP(w) _Pragma ("GCC diagnostic pop")
#else
#define CK_DIAGNOSTIC_PUSH_IGNORE(w)
#define CK_DIAGNOSTIC_POP(w)
#endif /* GCC 4.7.4 */

#undef GCC_VERSION_AT_LEAST

#include <sys/types.h>
Expand Down
Loading