summaryrefslogtreecommitdiff
path: root/perl.h
diff options
context:
space:
mode:
Diffstat (limited to 'perl.h')
-rw-r--r--perl.h29
1 files changed, 27 insertions, 2 deletions
diff --git a/perl.h b/perl.h
index 8928ffd98a..1e4b2e0ec0 100644
--- a/perl.h
+++ b/perl.h
@@ -1024,6 +1024,8 @@ Free_t Perl_mfree (Malloc_t where);
# endif
# define IV_SIZEOF 8
# define UV_SIZEOF 8
+# define IV_IS_QUAD
+# define UV_IS_QUAD
#else
typedef long IV;
typedef unsigned long UV;
@@ -1040,6 +1042,13 @@ Free_t Perl_mfree (Malloc_t where);
# endif
# define UV_SIZEOF LONGSIZE
# define IV_SIZEOF LONGSIZE
+# if LONGSIZE == 8
+# define IV_IS_QUAD
+# define UV_IS_QUAD
+# else
+# undef IV_IS_QUAD
+# undef UV_IS_QUAD
+# endif
#endif
#ifdef USE_LONG_DOUBLE
@@ -1061,7 +1070,6 @@ Free_t Perl_mfree (Malloc_t where);
# define Perl_atan2 atan2l
# define Perl_pow powl
# define Perl_floor floorl
-# define Perl_atof atof
# define Perl_fmod fmodl
#else
typedef double NV;
@@ -1075,10 +1083,15 @@ Free_t Perl_mfree (Malloc_t where);
# define Perl_atan2 atan2
# define Perl_pow pow
# define Perl_floor floor
-# define Perl_atof atof /* At some point there may be an atolf */
# define Perl_fmod fmod
#endif
+#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && defined(HAS_ATOLF)
+# define Perl_atof atolf
+#else
+# define Perl_atof atof
+#endif
+
/* Previously these definitions used hardcoded figures.
* It is hoped these formula are more portable, although
* no data one way or another is presently known to me.
@@ -2978,6 +2991,18 @@ typedef struct am_table_short AMTS;
#endif /* !USE_LOCALE_NUMERIC */
+#if defined(USE_LONG_LONG) && defined(HAS_LONG_LONG) && defined(HAS_ATOLL)
+#define Atol atoll
+#else
+#define Atol atol
+#endif
+
+#if defined(USE_LONG_LONG) && defined(HAS_LONG_LONG) && defined(HAS_STRTOULL)
+#define Strtoul strtoull
+#else
+#define Strtoul strtoul
+#endif
+
#if !defined(PERLIO_IS_STDIO) && defined(HASATTRIBUTE)
/*
* Now we have __attribute__ out of the way