diff options
Diffstat (limited to 'ext/digest/defs.h')
| -rw-r--r-- | ext/digest/defs.h | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/ext/digest/defs.h b/ext/digest/defs.h index 5cfc77dd24..9b11f4eca9 100644 --- a/ext/digest/defs.h +++ b/ext/digest/defs.h @@ -16,22 +16,26 @@ # define __END_DECLS #endif -#if defined(HAVE_INTTYPES_H) -# include <inttypes.h> -#elif !defined __CYGWIN__ || !defined __uint8_t_defined - typedef unsigned char uint8_t; - typedef unsigned int uint32_t; -# if SIZEOF_LONG == 8 - typedef unsigned long uint64_t; -# elif defined(__GNUC__) - typedef unsigned long long uint64_t; -# elif defined(_MSC_VER) - typedef unsigned _int64 uint64_t; -# elif defined(__BORLANDC__) - typedef unsigned __int64 uint64_t; -# else -# define NO_UINT64_T -# endif +#define RB_DIGEST_DIAGNOSTIC(compiler, op, flag) _Pragma(STRINGIZE(compiler diagnostic op flag)) +#ifdef RBIMPL_WARNING_IGNORED +# define RB_DIGEST_WARNING_IGNORED(flag) RBIMPL_WARNING_IGNORED(flag) +# define RB_DIGEST_WARNING_PUSH() RBIMPL_WARNING_PUSH() +# define RB_DIGEST_WARNING_POP() RBIMPL_WARNING_POP() +#elif defined(__clang__) +# define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(clang, ignored, #flag) +# define RB_DIGEST_WARNING_PUSH() _Pragma("clang diagnostic push") +# define RB_DIGEST_WARNING_POP() _Pragma("clang diagnostic pop") +#else /* __GNUC__ */ +# define RB_DIGEST_WARNING_IGNORED(flag) RB_DIGEST_DIAGNOSTIC(GCC, ignored, #flag) +# define RB_DIGEST_WARNING_PUSH() _Pragma("GCC diagnostic push") +# define RB_DIGEST_WARNING_POP() _Pragma("GCC diagnostic pop") +#endif +#ifdef RBIMPL_HAS_WARNING +# define RB_DIGEST_HAS_WARNING(_) RBIMPL_HAS_WARNING(_) +#elif defined(__has_warning) +# define RB_DIGEST_HAS_WARNING(_) __has_warning(_) +#else +# define RB_DIGEST_HAS_WARNING(_) 0 #endif #endif /* DEFS_H */ |
