summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2016-12-19 16:03:53 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2016-12-19 16:03:53 +0000
commitbed6106a42b8eda4cd20c6b758fd9c9cd2ca28f3 (patch)
treeec51d68b0b0b4c68b8b234400fe96c7e66c43351 /libgfortran
parente83e968d5318c5527fd1f016e259c9b2f769e30c (diff)
downloadgcc-bed6106a42b8eda4cd20c6b758fd9c9cd2ca28f3.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243801 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog9
-rw-r--r--libgfortran/Makefile.am2
-rw-r--r--libgfortran/gfortran.map21
-rw-r--r--libgfortran/intrinsics/iso_c_binding.c189
-rw-r--r--libgfortran/intrinsics/iso_c_binding.h55
-rw-r--r--libgfortran/intrinsics/iso_c_generated_procs.c466
6 files changed, 9 insertions, 733 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index d66876ff789..114b006b409 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,5 +1,14 @@
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.
* Makefile.in: Regenerate.
* gfortran.map: Remove _gfortran_clz128 and _gfortran_ctz128.
diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am
index 64ee4dcf3ba..fed875e1493 100644
--- a/libgfortran/Makefile.am
+++ b/libgfortran/Makefile.am
@@ -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 \
diff --git a/libgfortran/gfortran.map b/libgfortran/gfortran.map
index caa010f844d..80cf29ad843 100644
--- a/libgfortran/gfortran.map
+++ b/libgfortran/gfortran.map
@@ -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
index bd80f3ddc54..00000000000
--- a/libgfortran/intrinsics/iso_c_binding.c
+++ /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
index a5e1767be4f..00000000000
--- a/libgfortran/intrinsics/iso_c_binding.h
+++ /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
index 9c2ea63642c..00000000000
--- a/libgfortran/intrinsics/iso_c_generated_procs.c
+++ /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