From 94f8be0021334a1258a137c0e9611d78125ac092 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 27 Jan 2010 13:36:32 +0000 Subject: [PATCH] define INFINITY and NAN if they don't exist (#2929) --- includes/Stg.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/includes/Stg.h b/includes/Stg.h index 81a034a..cae4a3a 100644 --- a/includes/Stg.h +++ b/includes/Stg.h @@ -61,6 +61,27 @@ that depend on config info, such as __USE_FILE_OFFSET64 */ #include +// On Solaris, we don't get the INFINITY and NAN constants unless we +// #define _STDC_C99, and we can't do that unless we also use -std=c99, +// because _STDC_C99 causes the headers to use C99 syntax (e.g. restrict). +// We aren't ready for -std=c99 yet, so define INFINITY/NAN by hand using +// the gcc builtins. +#if !defined(INFINITY) +#if defined(__GNUC__) +#define INFINITY __builtin_inf() +#else +#error No definition for INFINITY +#endif +#endif + +#if !defined(NAN) +#if defined(__GNUC__) +#define NAN __builtin_nan("") +#else +#error No definition for NAN +#endif +#endif + /* ----------------------------------------------------------------------------- Useful definitions -------------------------------------------------------------------------- */ -- 1.7.10.4