Makefile.am: Remove ISO_C_BINDING runtime functions.
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 19 Dec 2016 16:03:53 +0000 (16:03 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Mon, 19 Dec 2016 16:03:53 +0000 (16:03 +0000)
* Makefile.am: Remove ISO_C_BINDING runtime functions.
* Makefile.in: Regenerate.
* gfortran.map: Remove all __iso_c_binding_c_f_pointer_* symbols.
* intrinsics/iso_c_binding.h: Remove.
* intrinsics/iso_c_binding.c: Remove.
* intrinsics/iso_c_generated_procs.c: Remove.

From-SVN: r243801

libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/gfortran.map
libgfortran/intrinsics/iso_c_binding.c [deleted file]
libgfortran/intrinsics/iso_c_binding.h [deleted file]
libgfortran/intrinsics/iso_c_generated_procs.c [deleted file]

index d66876ff78908ad5451f4fde6343f4fc81a8548d..114b006b4099f5ba66b7ea34feaf863658035aa5 100644 (file)
@@ -1,3 +1,12 @@
+2016-12-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * Makefile.am: Remove ISO_C_BINDING runtime functions.
+       * Makefile.in: Regenerate.
+       * gfortran.map: Remove all __iso_c_binding_c_f_pointer_* symbols.
+       * intrinsics/iso_c_binding.h: Remove.
+       * intrinsics/iso_c_binding.c: Remove.
+       * intrinsics/iso_c_generated_procs.c: Remove.
+
 2016-12-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        * Makefile.am: Remove intrinsics/bit_intrinsics.c.
index 64ee4dcf3bab9d80b0918ff07a05972804fa46e5..fed875e1493e62afa5c48e44d6bb0f17c9e29b5d 100644 (file)
@@ -122,8 +122,6 @@ intrinsics/extends_type_of.c \
 intrinsics/fnum.c \
 intrinsics/ierrno.c \
 intrinsics/ishftc.c \
-intrinsics/iso_c_generated_procs.c \
-intrinsics/iso_c_binding.c \
 intrinsics/mvbits.c \
 intrinsics/move_alloc.c \
 intrinsics/pack_generic.c \
index caa010f844d97ea4eecb03222697c22f91543e08..80cf29ad8431519555af209fb654fc4aeac77978 100644 (file)
@@ -966,27 +966,6 @@ GFORTRAN_1.0 {
     _gfortran_unpack0_char;
     _gfortran_unpack1;
     _gfortran_unpack1_char;
-    __iso_c_binding_c_f_pointer;
-    __iso_c_binding_c_f_pointer_d0;
-    __iso_c_binding_c_f_pointer_i1;
-    __iso_c_binding_c_f_pointer_i2;
-    __iso_c_binding_c_f_pointer_i4;
-    __iso_c_binding_c_f_pointer_i8;
-    __iso_c_binding_c_f_pointer_i16;
-    __iso_c_binding_c_f_pointer_r4;
-    __iso_c_binding_c_f_pointer_r8;
-    __iso_c_binding_c_f_pointer_r10;
-    __iso_c_binding_c_f_pointer_r16;
-    __iso_c_binding_c_f_pointer_c4;
-    __iso_c_binding_c_f_pointer_c8;
-    __iso_c_binding_c_f_pointer_c10;
-    __iso_c_binding_c_f_pointer_c16;
-    __iso_c_binding_c_f_pointer_s0;
-    __iso_c_binding_c_f_pointer_l1;
-    __iso_c_binding_c_f_pointer_l2;
-    __iso_c_binding_c_f_pointer_l4;
-    __iso_c_binding_c_f_pointer_l8;
-    __iso_c_binding_c_f_pointer_u0;
   local:
     *;
 };
diff --git a/libgfortran/intrinsics/iso_c_binding.c b/libgfortran/intrinsics/iso_c_binding.c
deleted file mode 100644 (file)
index bd80f3d..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Implementation of the ISO_C_BINDING library helper functions.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either
-version 3 of the License, or (at your option) any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-/* Implement the functions and subroutines provided by the intrinsic
-   iso_c_binding module.  */
-
-#include "libgfortran.h"
-#include "iso_c_binding.h"
-
-#include <stdlib.h>
-
-
-/* Set the fields of a Fortran pointer descriptor to point to the
-   given C address.  It uses c_f_pointer_u0 for the common
-   fields, and will set up the information necessary if this C address
-   is to an array (i.e., offset, type, element size).  The parameter
-   c_ptr_in represents the C address to have Fortran point to.  The
-   parameter f_ptr_out is the Fortran pointer to associate with the C
-   address.  The parameter shape is a one-dimensional array of integers
-   specifying the upper bound(s) of the array pointed to by the given C
-   address, if applicable.  The shape parameter is optional in Fortran,
-   which will cause it to come in here as NULL.  The parameter type is
-   the type of the data being pointed to (i.e.,libgfortran.h). The
-   elem_size parameter is the size, in bytes, of the data element being
-   pointed to.  If the address is for an array, then the size needs to
-   be the size of a single element (i.e., for an array of doubles, it
-   needs to be the number of bytes for the size of one double).  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer) (void *c_ptr_in,
-                                    gfc_array_void *f_ptr_out,
-                                    const array_t *shape,
-                                    int type, int elemSize)
-{
-  if (shape != NULL)
-    {
-      f_ptr_out->offset = 0;
-
-      /* Set the necessary dtype field for all pointers.  */
-      f_ptr_out->dtype = 0;
-
-      /* Put in the element size.  */
-      f_ptr_out->dtype = f_ptr_out->dtype | (elemSize << GFC_DTYPE_SIZE_SHIFT);
-
-      /* Set the data type (e.g., BT_INTEGER).  */
-      f_ptr_out->dtype = f_ptr_out->dtype | (type << GFC_DTYPE_TYPE_SHIFT);
-    }
-  
-  /* Use the generic version of c_f_pointer to set common fields.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer_u0) (c_ptr_in, f_ptr_out, shape);
-}
-
-
-/* A generic function to set the common fields of all descriptors, no
-   matter whether it's to a scalar or an array.  Access is via the array
-   descrptor macros. Parameter shape is a rank 1 array of integers
-   containing the upper bound of each dimension of what f_ptr_out
-   points to.  The length of this array must be EXACTLY the rank of
-   what f_ptr_out points to, as required by the draft (J3/04-007).  If
-   f_ptr_out points to a scalar, then this parameter will be NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  int i = 0;
-  int shapeSize = 0;
-
-  GFC_DESCRIPTOR_DATA (f_ptr_out) = c_ptr_in;
-
-  if (shape != NULL)
-    {
-      index_type source_stride, size;
-      index_type str = 1;
-      char *p;
-
-      f_ptr_out->offset = str;
-      shapeSize = 0;
-      p = shape->base_addr;
-      size = GFC_DESCRIPTOR_SIZE(shape);
-
-      source_stride = GFC_DESCRIPTOR_STRIDE_BYTES(shape,0);
-
-      /* shape's length (rank of the output array) */
-      shapeSize = GFC_DESCRIPTOR_EXTENT(shape,0);
-      for (i = 0; i < shapeSize; i++)
-        {
-         index_type ub;
-
-          /* Have to allow for the SHAPE array to be any valid kind for
-             an INTEGER type.  */
-         switch (size)
-           {
-#ifdef HAVE_GFC_INTEGER_1
-             case 1:
-               ub = *((GFC_INTEGER_1 *) p);
-               break;
-#endif
-#ifdef HAVE_GFC_INTEGER_2
-             case 2:
-               ub = *((GFC_INTEGER_2 *) p);
-               break;
-#endif
-#ifdef HAVE_GFC_INTEGER_4
-             case 4:
-               ub = *((GFC_INTEGER_4 *) p);
-               break;
-#endif
-#ifdef HAVE_GFC_INTEGER_8
-             case 8:
-               ub = *((GFC_INTEGER_8 *) p);
-               break;
-#endif
-#ifdef HAVE_GFC_INTEGER_16
-             case 16:
-               ub = *((GFC_INTEGER_16 *) p);
-               break;
-#endif
-             default:
-               internal_error (NULL, "c_f_pointer_u0: Invalid size");
-           }
-         p += source_stride;
-
-         if (i != 0)
-           {
-             str = str * GFC_DESCRIPTOR_EXTENT(f_ptr_out,i-1);
-             f_ptr_out->offset += str;
-           }
-
-          /* Lower bound is 1, as specified by the draft.  */
-         GFC_DIMENSION_SET(f_ptr_out->dim[i], 1, ub, str);
-        }
-
-      f_ptr_out->offset *= -1;
-
-      /* All we know is the rank, so set it, leaving the rest alone.
-         Make NO assumptions about the state of dtype coming in!  If we
-         shift right by TYPE_SHIFT bits we'll throw away the existing
-         rank.  Then, shift left by the same number to shift in zeros
-         and or with the new rank.  */
-      f_ptr_out->dtype = ((f_ptr_out->dtype >> GFC_DTYPE_TYPE_SHIFT)
-                           << GFC_DTYPE_TYPE_SHIFT) | shapeSize;
-    }
-}
-
-
-/* Sets the descriptor fields for a Fortran pointer to a derived type,
-   using c_f_pointer_u0 for the majority of the work.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Set the common fields.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer_u0) (c_ptr_in, f_ptr_out, shape);
-
-  /* Preserve the size and rank bits, but reset the type.  */
-  if (shape != NULL)
-    {
-      f_ptr_out->dtype = f_ptr_out->dtype & (~GFC_DTYPE_TYPE_MASK);
-      f_ptr_out->dtype = f_ptr_out->dtype
-                        | (BT_DERIVED << GFC_DTYPE_TYPE_SHIFT);
-    }
-}
diff --git a/libgfortran/intrinsics/iso_c_binding.h b/libgfortran/intrinsics/iso_c_binding.h
deleted file mode 100644 (file)
index a5e1767..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran 95 runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-/* Declarations for ISO_C_BINDING library helper functions.  */
-
-#ifndef GFOR_ISO_C_BINDING_H
-#define GFOR_ISO_C_BINDING_H
-
-#include "libgfortran.h"
-
-typedef struct c_ptr
-{
-  void *c_address;
-}
-c_ptr_t;
-
-typedef struct c_funptr
-{
-  void *c_address;
-}
-c_funptr_t;
-
-#define ISO_C_BINDING_PREFIX(a) __iso_c_binding_##a
-
-void ISO_C_BINDING_PREFIX(c_f_pointer)(void *, gfc_array_void *,
-                                      const array_t *, int, int);
-
-void ISO_C_BINDING_PREFIX(c_f_pointer_u0) (void *, gfc_array_void *,
-                                          const array_t *);
-void ISO_C_BINDING_PREFIX(c_f_pointer_d0) (void *, gfc_array_void *,
-                                          const array_t *);
-
-#endif
diff --git a/libgfortran/intrinsics/iso_c_generated_procs.c b/libgfortran/intrinsics/iso_c_generated_procs.c
deleted file mode 100644 (file)
index 9c2ea63..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/* Implementation of the ISO_C_BINDING library helper generated functions.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
-   Contributed by Christopher Rickett.
-
-This file is part of the GNU Fortran 95 runtime library (libgfortran).
-
-Libgfortran is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public
-License as published by the Free Software Foundation; either
-version 3 of the License, or (at your option) any later version.
-
-Libgfortran is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-
-#include "libgfortran.h"
-#include "iso_c_binding.h"
-
-
-/* TODO: This file needs to be finished so that a function is provided
-   for all possible type/kind combinations!  */
-
-#ifdef HAVE_GFC_INTEGER_1
-void ISO_C_BINDING_PREFIX (c_f_pointer_i1) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_2
-void ISO_C_BINDING_PREFIX (c_f_pointer_i2) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_i4) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_i8) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_INTEGER_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_i16) (void *, gfc_array_void *,
-                                            const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_r4) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_r8) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_10
-void ISO_C_BINDING_PREFIX (c_f_pointer_r10) (void *, gfc_array_void *,
-                                            const array_t *);
-#endif
-
-#ifdef HAVE_GFC_REAL_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *, gfc_array_void *,
-                                            const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_c4) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_c8) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_10
-void ISO_C_BINDING_PREFIX (c_f_pointer_c10) (void *, gfc_array_void *,
-                                            const array_t *);
-#endif
-
-#ifdef HAVE_GFC_COMPLEX_16
-void ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *, gfc_array_void *,
-                                            const array_t *);
-#endif
-
-#ifdef GFC_DEFAULT_CHAR
-void ISO_C_BINDING_PREFIX (c_f_pointer_s0) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_1
-void ISO_C_BINDING_PREFIX (c_f_pointer_l1) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_2
-void ISO_C_BINDING_PREFIX (c_f_pointer_l2) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_4
-void ISO_C_BINDING_PREFIX (c_f_pointer_l4) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-#ifdef HAVE_GFC_LOGICAL_8
-void ISO_C_BINDING_PREFIX (c_f_pointer_l8) (void *, gfc_array_void *,
-                                           const array_t *);
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_1
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=1.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i1) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an integer(kind=1).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_INTEGER,
-                                     (int) sizeof (GFC_INTEGER_1));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_2
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=2.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i2) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an integer(kind=2).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_INTEGER,
-                                     (int) sizeof (GFC_INTEGER_2));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type integer and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i4) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an integer(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_INTEGER,
-                                     (int) sizeof (GFC_INTEGER_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type integer and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i8) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an integer(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_INTEGER,
-                                     (int) sizeof (GFC_INTEGER_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_INTEGER_16
-/* Set the given Fortran pointer, 'f_ptr_out', to point to the given C
-   address, 'c_ptr_in'.  The Fortran pointer is of type integer and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  shape is a one-dimensional array of integers
-   specifying the upper bounds of the array pointed to by the given C
-   address, if applicable.  'shape' is an optional parameter in
-   Fortran, so if the user does not provide it, it will come in here
-   as NULL.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_i16) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Here we have an integer(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_INTEGER,
-                                     (int) sizeof (GFC_INTEGER_16));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r4) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an real(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_REAL,
-                                     (int) sizeof (GFC_REAL_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r8) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an real(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_REAL,
-                                     (int) sizeof (GFC_REAL_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_10
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=10.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r10) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Here we have an real(kind=10).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_REAL,
-                                     (int) sizeof (GFC_REAL_10));
-}
-#endif
-
-
-#ifdef HAVE_GFC_REAL_16
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type real and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Here we have an real(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_REAL,
-                                     (int) sizeof (GFC_REAL_16));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=4.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c4) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an complex(kind=4).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_COMPLEX,
-                                     (int) sizeof (GFC_COMPLEX_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=8.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c8) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have an complex(kind=8).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_COMPLEX,
-                                     (int) sizeof (GFC_COMPLEX_8));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_10
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=10.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c10) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Here we have an complex(kind=10).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_COMPLEX,
-                                     (int) sizeof (GFC_COMPLEX_10));
-}
-#endif
-
-
-#ifdef HAVE_GFC_COMPLEX_16
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type complex and
-   kind=16.  The function c_f_pointer is used to set up the pointer
-   descriptor.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_c16) (void *c_ptr_in,
-                                       gfc_array_void *f_ptr_out,
-                                       const array_t *shape)
-{
-  /* Here we have an complex(kind=16).  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_COMPLEX,
-                                     (int) sizeof (GFC_COMPLEX_16));
-}
-#endif
-
-
-#ifdef GFC_DEFAULT_CHAR
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type character.  */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_s0) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have a character string of len=1.  */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_CHARACTER,
-                                     (int) sizeof (char));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_1
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=1. */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l1) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have a logical of kind=1. */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_LOGICAL,
-                                     (int) sizeof (GFC_LOGICAL_1));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_2
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=2. */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l2) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have a logical of kind=2. */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_LOGICAL,
-                                     (int) sizeof (GFC_LOGICAL_2));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_4
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=4. */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l4) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have a logical of kind=4. */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_LOGICAL,
-                                     (int) sizeof (GFC_LOGICAL_4));
-}
-#endif
-
-
-#ifdef HAVE_GFC_LOGICAL_8
-/* Set the given Fortran pointer, f_ptr_out, to point to the given C
-   address, c_ptr_in.  The Fortran pointer is of type logical, kind=8. */
-
-void
-ISO_C_BINDING_PREFIX (c_f_pointer_l8) (void *c_ptr_in,
-                                      gfc_array_void *f_ptr_out,
-                                      const array_t *shape)
-{
-  /* Here we have a logical of kind=8. */
-  ISO_C_BINDING_PREFIX (c_f_pointer) (c_ptr_in, f_ptr_out, shape,
-                                     (int) BT_LOGICAL,
-                                     (int) sizeof (GFC_LOGICAL_8));
-}
-#endif