diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2007-06-07 23:38:49 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2007-06-07 23:38:49 +0000 |
commit | 4f91e226633cc9c849e96832505215de2f529e6b (patch) | |
tree | 7583e2793475962f39106686694b11b095083730 | |
parent | 7a7235ef4d8a66b1cbb57c214792ebba39d785e6 (diff) |
2007-06-07 Steven G. Kargl <kargl@gcc.gnu.org>
* libgfortran/intrinsics/iso_c_generated_procs.c: Whitespace.
Reformat comments. Remove "return;" in void functions. Remove
symbols in prototypes.
* libgfortran/intrinsics/iso_c_binding.c: Ditto.
* libgfortran/intrinsics/iso_c_binding.h: Whitespace. Remove
symbols in prototypes.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/fortran-experiments@125545 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog.isocbinding | 9 | ||||
-rw-r--r-- | libgfortran/intrinsics/iso_c_binding.c | 52 | ||||
-rw-r--r-- | libgfortran/intrinsics/iso_c_binding.h | 35 | ||||
-rw-r--r-- | libgfortran/intrinsics/iso_c_generated_procs.c | 144 |
4 files changed, 114 insertions, 126 deletions
diff --git a/gcc/fortran/ChangeLog.isocbinding b/gcc/fortran/ChangeLog.isocbinding index dea3fc30450..b386de8d22c 100644 --- a/gcc/fortran/ChangeLog.isocbinding +++ b/gcc/fortran/ChangeLog.isocbinding @@ -3,6 +3,15 @@ Welcome to the ISO_C_BINDING sandbox! Please comment here the changes you make to the code, dated with every commit to the branch, so that we don't get lost. +2007-06-07 Steven G. Kargl <kargl@gcc.gnu.org> + + * libgfortran/intrinsics/iso_c_generated_procs.c: Whitespace. + Reformat comments. Remove "return;" in void functions. Remove + symbols in prototypes. + * libgfortran/intrinsics/iso_c_binding.c: Ditto. + * libgfortran/intrinsics/iso_c_binding.h: Whitespace. Remove + symbols in prototypes. + 2007-06-07 Tobias Schlüter <tobi@gcc.gnu.org> * gfortran.dg/bind_c_vars_driver.c: Don't include header, diff --git a/libgfortran/intrinsics/iso_c_binding.c b/libgfortran/intrinsics/iso_c_binding.c index 43901ec5e24..33575475aa6 100644 --- a/libgfortran/intrinsics/iso_c_binding.c +++ b/libgfortran/intrinsics/iso_c_binding.c @@ -29,11 +29,8 @@ write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -/** - * Implement the functions and subroutines provided by the intrinsic - * iso_c_binding module. - * --Rickett, 12.13.05 - */ +/* Implement the functions and subroutines provided by the intrinsic + iso_c_binding module. */ #include <stdlib.h> @@ -58,7 +55,7 @@ Boston, MA 02110-1301, USA. */ 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, +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) @@ -66,19 +63,19 @@ ISO_C_BINDING_PREFIX (c_f_pointer) (void * c_ptr_in, 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); + f_ptr_out->dtype = f_ptr_out->dtype | (elemSize << GFC_DTYPE_SIZE_SHIFT); + /* Set the data type (e.g., GFC_DTYPE_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); - - return; } @@ -92,7 +89,7 @@ ISO_C_BINDING_PREFIX (c_f_pointer) (void * c_ptr_in, 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, +ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void *c_ptr_in, gfc_array_void *f_ptr_out, const array_t *shape) { @@ -112,11 +109,11 @@ ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void * c_ptr_in, { /* Lower bound is 1, as specified by the draft. */ f_ptr_out->dim[i].lbound = 1; - f_ptr_out->dim[i].ubound = ((int *)(shape->data))[i]; + f_ptr_out->dim[i].ubound = ((int *) (shape->data))[i]; } - /* Set the offset and strides. */ - /* offset is (sum of (dim[i].lbound * dim[i].stride) for all + /* Set the offset and strides. + offset is (sum of (dim[i].lbound * dim[i].stride) for all dims) the -1 means we'll back the data pointer up that much perhaps we could just realign the data pointer and not change the offset? */ @@ -124,7 +121,7 @@ ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void * c_ptr_in, f_ptr_out->offset = f_ptr_out->dim[0].lbound * f_ptr_out->dim[0].stride; for (i = 1; i < shapeSize; i++) { - f_ptr_out->dim[i].stride = (f_ptr_out->dim[i-1].ubound+1) + f_ptr_out->dim[i].stride = (f_ptr_out->dim[i-1].ubound + 1) - f_ptr_out->dim[i-1].lbound; f_ptr_out->offset += f_ptr_out->dim[i].lbound * f_ptr_out->dim[i].stride; @@ -138,10 +135,8 @@ ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void * c_ptr_in, 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; + << GFC_DTYPE_TYPE_SHIFT) | shapeSize; } - - return; } @@ -149,7 +144,7 @@ ISO_C_BINDING_PREFIX (c_f_pointer_u0) (void * c_ptr_in, using c_f_pointer_u0 for the majority of the work. */ void -ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void * c_ptr_in, +ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void *c_ptr_in, gfc_array_void *f_ptr_out, const array_t *shape) { @@ -160,11 +155,9 @@ ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void * c_ptr_in, if (shape != NULL) { f_ptr_out->dtype = f_ptr_out->dtype & (~GFC_DTYPE_TYPE_MASK); - f_ptr_out->dtype = f_ptr_out->dtype | - (GFC_DTYPE_DERIVED << GFC_DTYPE_TYPE_SHIFT); + f_ptr_out->dtype = f_ptr_out->dtype + | (GFC_DTYPE_DERIVED << GFC_DTYPE_TYPE_SHIFT); } - - return; } @@ -172,12 +165,10 @@ ISO_C_BINDING_PREFIX (c_f_pointer_d0) (void * c_ptr_in, procedure pointer. */ void -ISO_C_BINDING_PREFIX (c_f_procpointer) (void * c_ptr_in, +ISO_C_BINDING_PREFIX (c_f_procpointer) (void *c_ptr_in, gfc_array_void *f_ptr_out) { GFC_DESCRIPTOR_DATA(f_ptr_out) = c_ptr_in; - - return; } @@ -189,7 +180,7 @@ ISO_C_BINDING_PREFIX (c_f_procpointer) (void * c_ptr_in, c_ptr is NULL or not. */ GFC_LOGICAL_4 -ISO_C_BINDING_PREFIX (c_associated_1) (void * c_ptr_in_1) +ISO_C_BINDING_PREFIX (c_associated_1) (void *c_ptr_in_1) { if (c_ptr_in_1 != NULL) return 1; @@ -197,6 +188,7 @@ ISO_C_BINDING_PREFIX (c_associated_1) (void * c_ptr_in_1) return 0; } + /* Test if the two c_ptr arguments are associated with one another. This version of the c_associated function is called if the user supplied two c_ptr args in the Fortran source. According to the @@ -207,7 +199,7 @@ ISO_C_BINDING_PREFIX (c_associated_1) (void * c_ptr_in_1) with each other then. */ GFC_LOGICAL_4 -ISO_C_BINDING_PREFIX (c_associated_2) (void * c_ptr_in_1, void * c_ptr_in_2) +ISO_C_BINDING_PREFIX (c_associated_2) (void *c_ptr_in_1, void *c_ptr_in_2) { /* Since we have the second arg, if it doesn't equal the first, return false; true otherwise. However, if the first one is null, @@ -233,7 +225,7 @@ ISO_C_BINDING_PREFIX (c_loc) (void *f90_obj) abort (); } - /* the "C" address should be the address of the object in Fortran */ + /* The "C" address should be the address of the object in Fortran. */ return f90_obj; } @@ -252,6 +244,6 @@ ISO_C_BINDING_PREFIX (c_funloc) (void *f90_obj) abort (); } - /* the "C" address should be the address of the object in Fortran */ + /* The "C" address should be the address of the object in Fortran. */ return f90_obj; } diff --git a/libgfortran/intrinsics/iso_c_binding.h b/libgfortran/intrinsics/iso_c_binding.h index e72bbc4373b..afd85529e9d 100644 --- a/libgfortran/intrinsics/iso_c_binding.h +++ b/libgfortran/intrinsics/iso_c_binding.h @@ -38,38 +38,33 @@ Boston, MA 02110-1301, USA. */ typedef struct c_ptr { void *c_address; -}c_ptr_t; +} +c_ptr_t; typedef struct c_funptr { void *c_address; -}c_funptr_t; +} +c_funptr_t; #define ISO_C_BINDING_PREFIX(a) __iso_c_binding_##a -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); +void ISO_C_BINDING_PREFIX(c_f_pointer)(void *, gfc_array_void *, + const array_t *, int, int); /* The second param here may change, once procedure pointers are implemented. */ -void ISO_C_BINDING_PREFIX(c_f_procpointer)(void * c_ptr_in, - gfc_array_void *f_ptr_out); +void ISO_C_BINDING_PREFIX(c_f_procpointer) (void *, gfc_array_void *); -GFC_LOGICAL_4 ISO_C_BINDING_PREFIX(c_associated_1)(void * c_ptr_in_1); -GFC_LOGICAL_4 ISO_C_BINDING_PREFIX(c_associated_2)(void * c_ptr_in_1, - void * c_ptr_in_2); +GFC_LOGICAL_4 ISO_C_BINDING_PREFIX(c_associated_1) (void *); +GFC_LOGICAL_4 ISO_C_BINDING_PREFIX(c_associated_2) (void *, void *); -void ISO_C_BINDING_PREFIX(c_f_pointer_u0)(void * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); -void ISO_C_BINDING_PREFIX(c_f_pointer_d0)(void * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); - -void * ISO_C_BINDING_PREFIX(c_loc) (void *f90_obj); -void * ISO_C_BINDING_PREFIX(c_funloc) (void *f90_obj); +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 *); +void *ISO_C_BINDING_PREFIX(c_loc) (void *); +void *ISO_C_BINDING_PREFIX(c_funloc) (void *); #endif diff --git a/libgfortran/intrinsics/iso_c_generated_procs.c b/libgfortran/intrinsics/iso_c_generated_procs.c index 8b85b049638..f60b264dba6 100644 --- a/libgfortran/intrinsics/iso_c_generated_procs.c +++ b/libgfortran/intrinsics/iso_c_generated_procs.c @@ -33,56 +33,51 @@ Boston, MA 02110-1301, USA. */ #include "iso_c_binding.h" -/** - * TODO!! This file needs finished so a function is provided for all - * possible type/kind combinations!! - * - */ +/* 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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +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 * c_ptr_in, - gfc_array_void *f_ptr_out, - const array_t *shape); +void ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void *, gfc_array_void *, + const array_t *); #endif @@ -97,15 +92,14 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_r16) (void * c_ptr_in, 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) +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)GFC_DTYPE_INTEGER, - (int)sizeof(GFC_INTEGER_1)); - return; + (int) GFC_DTYPE_INTEGER, + (int) sizeof (GFC_INTEGER_1)); } #endif @@ -121,15 +115,14 @@ ISO_C_BINDING_PREFIX (c_f_pointer_i1) (void * c_ptr_in, 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) +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)GFC_DTYPE_INTEGER, - (int)sizeof(GFC_INTEGER_2)); - return; + (int) GFC_DTYPE_INTEGER, + (int) sizeof (GFC_INTEGER_2)); } #endif @@ -140,15 +133,15 @@ ISO_C_BINDING_PREFIX (c_f_pointer_i2) (void * c_ptr_in, 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) +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) GFC_DTYPE_INTEGER, (int) sizeof (GFC_INTEGER_4)); - return; } #endif @@ -159,15 +152,15 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_i4) (void * c_ptr_in, 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) +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) GFC_DTYPE_INTEGER, (int) sizeof (GFC_INTEGER_8)); - return; } #endif @@ -183,15 +176,14 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_i8) (void * c_ptr_in, 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) +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)GFC_DTYPE_INTEGER, - (int)sizeof(GFC_INTEGER_16)); - return; + (int) GFC_DTYPE_INTEGER, + (int) sizeof (GFC_INTEGER_16)); } #endif @@ -202,15 +194,15 @@ ISO_C_BINDING_PREFIX (c_f_pointer_i16) (void * c_ptr_in, 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) +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) GFC_DTYPE_REAL, (int) sizeof (GFC_REAL_4)); - return; } #endif @@ -221,15 +213,15 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_r4) (void * c_ptr_in, 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) +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) GFC_DTYPE_REAL, (int) sizeof (GFC_REAL_8)); - return; } #endif @@ -240,15 +232,15 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_r8) (void * c_ptr_in, 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) +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) GFC_DTYPE_REAL, - (int) sizeof(GFC_REAL_10)); - return; + (int) GFC_DTYPE_REAL, + (int) sizeof (GFC_REAL_10)); } #endif @@ -259,14 +251,14 @@ void ISO_C_BINDING_PREFIX (c_f_pointer_r10) (void * c_ptr_in, 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) +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) GFC_DTYPE_REAL, (int) sizeof (GFC_REAL_16)); - return; } #endif |