From: Francois-Xavier Coudert Date: Mon, 19 Dec 2016 16:03:53 +0000 (+0000) Subject: Makefile.am: Remove ISO_C_BINDING runtime functions. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=adc905cd6cfbf26589a4b3a5ee7fd56d6f88903f;p=gcc.git Makefile.am: Remove ISO_C_BINDING runtime functions. * 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 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index d66876ff789..114b006b409 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,12 @@ +2016-12-19 Francois-Xavier Coudert + + * 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 * Makefile.am: Remove intrinsics/bit_intrinsics.c. 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 -. */ - - -/* Implement the functions and subroutines provided by the intrinsic - iso_c_binding module. */ - -#include "libgfortran.h" -#include "iso_c_binding.h" - -#include - - -/* 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 -. */ - - -/* 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 -. */ - - -#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