Cleanup memsize types
authorJanne Blomqvist <jb@gcc.gnu.org>
Tue, 12 Apr 2011 19:27:49 +0000 (22:27 +0300)
committerJanne Blomqvist <jb@gcc.gnu.org>
Tue, 12 Apr 2011 19:27:49 +0000 (22:27 +0300)
From-SVN: r172340

23 files changed:
libgfortran/ChangeLog
libgfortran/config.h.in
libgfortran/configure
libgfortran/configure.ac
libgfortran/generated/cshift0_c10.c
libgfortran/generated/cshift0_c16.c
libgfortran/generated/cshift0_c4.c
libgfortran/generated/cshift0_c8.c
libgfortran/generated/cshift0_i1.c
libgfortran/generated/cshift0_i16.c
libgfortran/generated/cshift0_i2.c
libgfortran/generated/cshift0_i4.c
libgfortran/generated/cshift0_i8.c
libgfortran/generated/cshift0_r10.c
libgfortran/generated/cshift0_r16.c
libgfortran/generated/cshift0_r4.c
libgfortran/generated/cshift0_r8.c
libgfortran/intrinsics/cshift0.c
libgfortran/io/io.h
libgfortran/io/list_read.c
libgfortran/io/write.c
libgfortran/libgfortran.h
libgfortran/m4/cshift0.m4

index c3307b73209a9a8c3e5c6575acbb58f80a7b3a10..82c59bcd04f92d9ce9678dc8e802d91886b762ae 100644 (file)
@@ -1,3 +1,18 @@
+2011-04-12  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * configure.ac: Use AC_TYPE_* to make sure we have (u)intptr_t,
+       check for ptrdiff_t.
+       * libgfortran.h: Remove (u)intptr_t definitions, use ptrdiff_t for
+       index_type, change cshift0* prototypes.
+       * config.h.in: Regenerated.
+       * configure: Regenerated.
+       * intrinsics/cshift0.c (cshift0): Use ptrdiff_t instead of ssize_t.
+       * io/io.h (array_loop_spec): Use index_type instead of ssize_t.
+       * io/list_read.c (nml_parse_qualifier): Likewise.
+       * io/write.c (nml_write_obj): Likewise.
+       * m4/cshift0.c (cshift0_'rtype_code`): Likewise.
+       * generated/cshift0_*.c: Regenerated.
+
 2011-04-12  Janne Blomqvist  <jb@gcc.gnu.org>
 
        * Makefile.am: Remove _GNU_SOURCE from AM_CPPFLAGS.
index a255bdccf30daf442ccf89fcd3a9c430f0bc3581..76f1b2d3d1625063a1fc88b6d7a2551aebf8c47a 100644 (file)
 /* libm includes powl */
 #undef HAVE_POWL
 
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+#undef HAVE_PTRDIFF_T
+
 /* Define to 1 if you have the <pwd.h> header file. */
 #undef HAVE_PWD_H
 
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 #undef _POSIX_SOURCE
 
+/* Define to the type of a signed integer type wide enough to hold a pointer,
+   if such a type exists, and if the system does not define it. */
+#undef intptr_t
+
 /* Define to `long int' if <sys/types.h> does not define. */
 #undef off_t
+
+/* Define to the type of an unsigned integer type wide enough to hold a
+   pointer, if such a type exists, and if the system does not define it. */
+#undef uintptr_t
index 53df412c89b62ead062870fefd7c16483ac402f3..393650ad97e2455971ebfb51c50a8aece411a7ea 100755 (executable)
@@ -15634,6 +15634,8 @@ rm -rf conftest*
   fi
 fi
 
+
+# Types
 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
 if test "x$ac_cv_type_off_t" = x""yes; then :
 
@@ -15643,6 +15645,87 @@ cat >>confdefs.h <<_ACEOF
 #define off_t long int
 _ACEOF
 
+fi
+
+
+  ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_intptr_t" = x""yes; then :
+
+$as_echo "#define HAVE_INTPTR_T 1" >>confdefs.h
+
+else
+  for ac_type in 'int' 'long int' 'long long int'; do
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define intptr_t $ac_type
+_ACEOF
+
+         ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       test -z "$ac_type" && break
+     done
+fi
+
+
+
+  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+
+else
+  for ac_type in 'unsigned int' 'unsigned long int' \
+       'unsigned long long int'; do
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define uintptr_t $ac_type
+_ACEOF
+
+         ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       test -z "$ac_type" && break
+     done
+fi
+
+
+ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTRDIFF_T 1
+_ACEOF
+
+
 fi
 
 
 done
 
 
-# Check for types
-ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_intptr_t" = x""yes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INTPTR_T 1
-_ACEOF
-
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_uintptr_t" = x""yes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_UINTPTR_T 1
-_ACEOF
-
-
-fi
-
-
 # Check libc for getgid, getpid, getuid
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getgid in -lc" >&5
 $as_echo_n "checking for getgid in -lc... " >&6; }
index 588f9997e56758701f63cf70bedf4991a947bc52..8235c8835723fe34d5d55526d691e9316041e175 100644 (file)
@@ -236,7 +236,12 @@ AC_SUBST(extra_ldflags_libgfortran)
 LIBGFOR_WORKING_GFORTRAN
 
 AC_SYS_LARGEFILE
+
+# Types
 AC_TYPE_OFF_T
+AC_TYPE_INTPTR_T
+AC_TYPE_UINTPTR_T
+AC_CHECK_TYPES([ptrdiff_t])
 
 # check header files
 AC_STDC_HEADERS
@@ -264,10 +269,6 @@ AC_CHECK_FUNCS(clock_gettime strftime)
 # Check for glibc backtrace functions
 AC_CHECK_FUNCS(backtrace backtrace_symbols)
 
-# Check for types
-AC_CHECK_TYPES([intptr_t])
-AC_CHECK_TYPES([uintptr_t])
-
 # Check libc for getgid, getpid, getuid
 AC_CHECK_LIB([c],[getgid],[AC_DEFINE([HAVE_GETGID],[1],[libc includes getgid])])
 AC_CHECK_LIB([c],[getpid],[AC_DEFINE([HAVE_GETPID],[1],[libc includes getpid])])
index 16c113deb6055807507a7f3d7fcb536d6d83dc23..ec4bb8a084db1aa4d867b17505c1db33fbd74d28 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_COMPLEX_10)
 
 void
-cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ssize_t shift,
+cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index df83ccb85f4431fa0b21156f013907bf321b77a6..ac7e8b762c7981464c62c8be9aaa498a59c9faa7 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_COMPLEX_16)
 
 void
-cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ssize_t shift,
+cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 52d277f1ce328dda8c64bce1dcfafb6e1841e368..482af77f2a84c436d633bd1452e23d006107e824 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_COMPLEX_4)
 
 void
-cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ssize_t shift,
+cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 9b9c3b2acced65e4b01e88b4bf2845720f0726bd..2b3a69ef4955e6d26294d4bea8aabca23eafece7 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_COMPLEX_8)
 
 void
-cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ssize_t shift,
+cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 7ed44bddb781c9b728e6d65f47c9af532e2b16e1..65173e3cc6a787e27281f6a4e343b6ba465e420d 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_INTEGER_1)
 
 void
-cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ssize_t shift,
+cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 145724b6e81931e57292a4ef90e723fbc7fc4866..4374c45f8206721709cbb4a75ef0727ab870f9fc 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_INTEGER_16)
 
 void
-cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ssize_t shift,
+cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index df3328175574f0d108823474dc39d0952487ad6d..1a39632d21757eacbef61cb087e0903a14bf2c2a 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_INTEGER_2)
 
 void
-cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ssize_t shift,
+cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index a1e118589c55cbabcd8c4525878a9521e2232073..9d223634fcefa80e1dcefd521ab3f977b38e3b0e 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_INTEGER_4)
 
 void
-cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ssize_t shift,
+cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index cbe13f153f34c6f43f6da9287a3dd275f21bfb28..43358aa1224987f28b21fc9298b94d8970489ffa 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_INTEGER_8)
 
 void
-cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ssize_t shift,
+cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 8ba544d2d8e90996c7bcdf53ce46b9ed6b1184dd..bf469fd1a0072ba226a7f405735f36ae4f6d15bb 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_REAL_10)
 
 void
-cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ssize_t shift,
+cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 0725048c2abfe8046a383fbc311a026e2e99772f..b9e19ffb6e98d2178bd899f0880c24bad30c3ae9 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_REAL_16)
 
 void
-cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ssize_t shift,
+cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 515c36b41fca74b9d8ea3be06e11d92f843267b5..9bd02142455cf64057355c43cf686d08af1c45e3 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_REAL_4)
 
 void
-cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ssize_t shift,
+cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 5a721e495897667c961bae7b22b437ec67f3c862..1f99135eb94be0a71945a1a419818e373cdcfb44 100644 (file)
@@ -32,7 +32,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #if defined (HAVE_GFC_REAL_8)
 
 void
-cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ssize_t shift,
+cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -97,7 +97,7 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index 651cd6e1e7c9f47bdd86df9b389f79c78da103a0..00a50d5db7c6fe00de717da3f0d3e2f545f5e40a 100644 (file)
@@ -30,7 +30,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 static void
 cshift0 (gfc_array_char * ret, const gfc_array_char * array,
-        ssize_t shift, int which, index_type size)
+        ptrdiff_t shift, int which, index_type size)
 {
   /* r.* indicates the return array.  */
   index_type rstride[GFC_MAX_DIMENSIONS];
@@ -328,7 +328,7 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;
 
index b48582d97812d34650a8eef50c49c84217e54b7c..37353d742e87d45464c6a6cde0782ffd716cc18a 100644 (file)
@@ -53,22 +53,21 @@ struct gfc_unit;
 #define is_char4_unit(dtp) ((dtp)->u.p.unit_is_internal && (dtp)->common.unit)
 
 /* The array_loop_spec contains the variables for the loops over index ranges
-   that are encountered.  Since the variables can be negative, ssize_t
-   is used.  */
+   that are encountered.  */
 
 typedef struct array_loop_spec
 {
   /* Index counter for this dimension.  */
-  ssize_t idx;
+  index_type idx;
 
   /* Start for the index counter.  */
-  ssize_t start;
+  index_type start;
 
   /* End for the index counter.  */
-  ssize_t end;
+  index_type end;
 
   /* Step for the index counter.  */
-  ssize_t step;
+  index_type step;
 }
 array_loop_spec;
 
index 6e1cb699ab93885a0a774f0743655589e643b106..39783bf3c61f4e56840408b614705452771fb112 100644 (file)
@@ -2172,7 +2172,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
                }
 
              /* Now read the index.  */
-             if (convert_integer (dtp, sizeof(ssize_t), neg))
+             if (convert_integer (dtp, sizeof(index_type), neg))
                {
                  if (is_char)
                    sprintf (parse_err_msg, "Bad integer substring qualifier");
@@ -2187,11 +2187,11 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
          if (!null_flag)
            {
              if (indx == 0)
-               memcpy (&ls[dim].start, dtp->u.p.value, sizeof(ssize_t));
+               memcpy (&ls[dim].start, dtp->u.p.value, sizeof(index_type));
              if (indx == 1)
-               memcpy (&ls[dim].end, dtp->u.p.value, sizeof(ssize_t));
+               memcpy (&ls[dim].end, dtp->u.p.value, sizeof(index_type));
              if (indx == 2)
-               memcpy (&ls[dim].step, dtp->u.p.value, sizeof(ssize_t));
+               memcpy (&ls[dim].step, dtp->u.p.value, sizeof(index_type));
            }
 
          /* Singlet or doublet indices.  */
@@ -2199,7 +2199,7 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
            {
              if (indx == 0)
                {
-                 memcpy (&ls[dim].start, dtp->u.p.value, sizeof(ssize_t));
+                 memcpy (&ls[dim].start, dtp->u.p.value, sizeof(index_type));
 
                  /*  If -std=f95/2003 or an array section is specified,
                      do not allow excess data to be processed.  */
@@ -2229,10 +2229,10 @@ nml_parse_qualifier (st_parameter_dt *dtp, descriptor_dimension *ad,
        }
 
       /* Check the values of the triplet indices.  */
-      if ((ls[dim].start > (ssize_t) GFC_DIMENSION_UBOUND(ad[dim]))
-          || (ls[dim].start < (ssize_t) GFC_DIMENSION_LBOUND(ad[dim]))
-          || (ls[dim].end > (ssize_t) GFC_DIMENSION_UBOUND(ad[dim]))
-          || (ls[dim].end < (ssize_t) GFC_DIMENSION_LBOUND(ad[dim])))
+      if ((ls[dim].start > GFC_DIMENSION_UBOUND(ad[dim]))
+          || (ls[dim].start < GFC_DIMENSION_LBOUND(ad[dim]))
+          || (ls[dim].end > GFC_DIMENSION_UBOUND(ad[dim]))
+          || (ls[dim].end < GFC_DIMENSION_LBOUND(ad[dim])))
        {
          if (is_char)
            sprintf (parse_err_msg, "Substring out of range");
index 987c3cd88a6ecc820c1973d43ecb4ddc1e229cea..4733d51e8822b140eba2a9367baf992cc6fcbfbb 100644 (file)
@@ -1932,7 +1932,7 @@ obj_loop:
       {
        obj->ls[dim_i].idx += nml_carry ;
        nml_carry = 0;
-       if (obj->ls[dim_i].idx  > (ssize_t) GFC_DESCRIPTOR_UBOUND(obj,dim_i))
+       if (obj->ls[dim_i].idx  > GFC_DESCRIPTOR_UBOUND(obj,dim_i))
          {
            obj->ls[dim_i].idx = GFC_DESCRIPTOR_LBOUND(obj,dim_i);
            nml_carry = 1;
index c9d3f371eabe9e08921dae8d66e71e0edde32839..7d9aca1cb72dc018d4a7dde98b3d1ab0203ab368 100644 (file)
@@ -106,38 +106,11 @@ typedef off_t gfc_offset;
 #endif
 
 
-/* We use intptr_t and uintptr_t, which may not be always defined in
-   system headers.  */
-
-#ifndef HAVE_INTPTR_T
-#if __SIZEOF_POINTER__ == __SIZEOF_LONG__
-#define intptr_t long
-#elif __SIZEOF_POINTER__ == __SIZEOF_LONG_LONG__
-#define intptr_t long long
-#elif __SIZEOF_POINTER__ == __SIZEOF_INT__
-#define intptr_t int
-#elif __SIZEOF_POINTER__ == __SIZEOF_SHORT__
-#define intptr_t short
-#else
-#error "Pointer type with unexpected size"
-#endif
+/* Make sure we have ptrdiff_t. */
+#ifndef HAVE_PTRDIFF_T
+typedef intptr_t ptrdiff_t;
 #endif
 
-#ifndef HAVE_UINTPTR_T
-#if __SIZEOF_POINTER__ == __SIZEOF_LONG__
-#define uintptr_t unsigned long
-#elif __SIZEOF_POINTER__ == __SIZEOF_LONG_LONG__
-#define uintptr_t unsigned long long
-#elif __SIZEOF_POINTER__ == __SIZEOF_INT__
-#define uintptr_t unsigned int
-#elif __SIZEOF_POINTER__ == __SIZEOF_SHORT__
-#define uintptr_t unsigned short
-#else
-#error "Pointer type with unexpected size"
-#endif
-#endif
-
-
 /* On mingw, work around the buggy Windows snprintf() by using the one
    mingw provides, __mingw_snprintf().  We also provide a prototype for
    __mingw_snprintf(), because the mingw headers currently don't have one.  */
@@ -269,7 +242,7 @@ typedef GFC_INTEGER_4 GFC_IO_INT;
 /* The following two definitions must be consistent with the types used
    by the compiler.  */
 /* The type used of array indices, amongst other things.  */
-typedef ssize_t index_type;
+typedef ptrdiff_t index_type;
 
 /* The type used for the lengths of character variables.  */
 typedef GFC_INTEGER_4 gfc_charlen_type;
@@ -1323,52 +1296,52 @@ internal_proto(count_0);
 
 /* Internal auxiliary functions for cshift */
 
-void cshift0_i1 (gfc_array_i1 *, const gfc_array_i1 *, ssize_t, int);
+void cshift0_i1 (gfc_array_i1 *, const gfc_array_i1 *, ptrdiff_t, int);
 internal_proto(cshift0_i1);
 
-void cshift0_i2 (gfc_array_i2 *, const gfc_array_i2 *, ssize_t, int);
+void cshift0_i2 (gfc_array_i2 *, const gfc_array_i2 *, ptrdiff_t, int);
 internal_proto(cshift0_i2);
 
-void cshift0_i4 (gfc_array_i4 *, const gfc_array_i4 *, ssize_t, int);
+void cshift0_i4 (gfc_array_i4 *, const gfc_array_i4 *, ptrdiff_t, int);
 internal_proto(cshift0_i4);
 
-void cshift0_i8 (gfc_array_i8 *, const gfc_array_i8 *, ssize_t, int);
+void cshift0_i8 (gfc_array_i8 *, const gfc_array_i8 *, ptrdiff_t, int);
 internal_proto(cshift0_i8);
 
 #ifdef HAVE_GFC_INTEGER_16
-void cshift0_i16 (gfc_array_i16 *, const gfc_array_i16 *, ssize_t, int);
+void cshift0_i16 (gfc_array_i16 *, const gfc_array_i16 *, ptrdiff_t, int);
 internal_proto(cshift0_i16);
 #endif
 
-void cshift0_r4 (gfc_array_r4 *, const gfc_array_r4 *, ssize_t, int);
+void cshift0_r4 (gfc_array_r4 *, const gfc_array_r4 *, ptrdiff_t, int);
 internal_proto(cshift0_r4);
 
-void cshift0_r8 (gfc_array_r8 *, const gfc_array_r8 *, ssize_t, int);
+void cshift0_r8 (gfc_array_r8 *, const gfc_array_r8 *, ptrdiff_t, int);
 internal_proto(cshift0_r8);
 
 #ifdef HAVE_GFC_REAL_10
-void cshift0_r10 (gfc_array_r10 *, const gfc_array_r10 *, ssize_t, int);
+void cshift0_r10 (gfc_array_r10 *, const gfc_array_r10 *, ptrdiff_t, int);
 internal_proto(cshift0_r10);
 #endif
 
 #ifdef HAVE_GFC_REAL_16
-void cshift0_r16 (gfc_array_r16 *, const gfc_array_r16 *, ssize_t, int);
+void cshift0_r16 (gfc_array_r16 *, const gfc_array_r16 *, ptrdiff_t, int);
 internal_proto(cshift0_r16);
 #endif
 
-void cshift0_c4 (gfc_array_c4 *, const gfc_array_c4 *, ssize_t, int);
+void cshift0_c4 (gfc_array_c4 *, const gfc_array_c4 *, ptrdiff_t, int);
 internal_proto(cshift0_c4);
 
-void cshift0_c8 (gfc_array_c8 *, const gfc_array_c8 *, ssize_t, int);
+void cshift0_c8 (gfc_array_c8 *, const gfc_array_c8 *, ptrdiff_t, int);
 internal_proto(cshift0_c8);
 
 #ifdef HAVE_GFC_COMPLEX_10
-void cshift0_c10 (gfc_array_c10 *, const gfc_array_c10 *, ssize_t, int);
+void cshift0_c10 (gfc_array_c10 *, const gfc_array_c10 *, ptrdiff_t, int);
 internal_proto(cshift0_c10);
 #endif
 
 #ifdef HAVE_GFC_COMPLEX_16
-void cshift0_c16 (gfc_array_c16 *, const gfc_array_c16 *, ssize_t, int);
+void cshift0_c16 (gfc_array_c16 *, const gfc_array_c16 *, ptrdiff_t, int);
 internal_proto(cshift0_c16);
 #endif
 
index 0c5e0158eec9bcaca45f9d15df0e92e0cc456e57..5c0d22e8191c44958f17fd6b26d60c035728c1b0 100644 (file)
@@ -33,7 +33,7 @@ include(iparm.m4)dnl
 `#if defined (HAVE_'rtype_name`)
 
 void
-cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ssize_t shift,
+cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift,
                     int which)
 {
   /* r.* indicates the return array.  */
@@ -98,7 +98,7 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ssize_t shift,
   rptr = ret->data;
   sptr = array->data;
 
-  shift = len == 0 ? 0 : shift % (ssize_t)len;
+  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
   if (shift < 0)
     shift += len;