diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 0b4134c23ead51f1b82d5cb1f928f31f21933ab2..2a6ecf6828192d20d9e3e0534a82f99e6bca0367 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,11 @@ +2004-12-05 Steven G. Kargl <kargls@comcast.net> + + PR libfortran/18966 + * gfortran.h: typedef GFC_INTEGER_1 and GFC_INTEGER_2 + * intrinsics/cshift0.c (cshift0_1,cshift0_2): New functions. + * intrinsics/eoshift0.c (eoshift0_1,eoshift0_2): New functions. + * intrinsics/eoshift2.c (eoshift2_1,eoshift2_2): New functions. + 2004-12-13 David Edelsohn <edelsohn@gnu.org> * io/transfer.c (read_sf): Change bitwise "and" to logical "and". diff --git a/libgfortran/intrinsics/cshift0.c b/libgfortran/intrinsics/cshift0.c index 4783eda7c61e3ab5ac24e91f8e5c26eec5f107c6..f712629d5df96f53be46d35c5181c8a2932a0c89 100644 --- a/libgfortran/intrinsics/cshift0.c +++ b/libgfortran/intrinsics/cshift0.c @@ -238,6 +238,30 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array, } +extern void cshift0_1 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_1 *, const GFC_INTEGER_1 *); +export_proto(cshift0_1); + +void +cshift0_1 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_1 *pshift, const GFC_INTEGER_1 *pdim) +{ + cshift0 (ret, array, *pshift, pdim ? *pdim : 1); +} + + +extern void cshift0_2 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_2 *, const GFC_INTEGER_2 *); +export_proto(cshift0_2); + +void +cshift0_2 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_2 *pshift, const GFC_INTEGER_2 *pdim) +{ + cshift0 (ret, array, *pshift, pdim ? *pdim : 1); +} + + extern void cshift0_4 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_4 *, const GFC_INTEGER_4 *); export_proto(cshift0_4); @@ -249,6 +273,7 @@ cshift0_4 (gfc_array_char *ret, const gfc_array_char *array, cshift0 (ret, array, *pshift, pdim ? *pdim : 1); } + extern void cshift0_8 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_8 *, const GFC_INTEGER_8 *); export_proto(cshift0_8); @@ -259,3 +284,4 @@ cshift0_8 (gfc_array_char *ret, const gfc_array_char *array, { cshift0 (ret, array, *pshift, pdim ? *pdim : 1); } + diff --git a/libgfortran/intrinsics/eoshift0.c b/libgfortran/intrinsics/eoshift0.c index 66f0ab1f6eaf27b828accbf8b32615e7442f7cf8..efe880deb7c5b7a96185cb5345a3dac3e0ef36d6 100644 --- a/libgfortran/intrinsics/eoshift0.c +++ b/libgfortran/intrinsics/eoshift0.c @@ -187,6 +187,35 @@ eoshift0 (gfc_array_char * ret, const gfc_array_char * array, } } + +extern void eoshift0_1 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_1 *, const char *, + const GFC_INTEGER_1 *); +export_proto(eoshift0_1); + +void +eoshift0_1 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_1 *pshift, const char *pbound, + const GFC_INTEGER_1 *pdim) +{ + eoshift0 (ret, array, *pshift, pbound, pdim ? *pdim : 1); +} + + +extern void eoshift0_2 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_2 *, const char *, + const GFC_INTEGER_2 *); +export_proto(eoshift0_2); + +void +eoshift0_2 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_2 *pshift, const char *pbound, + const GFC_INTEGER_2 *pdim) +{ + eoshift0 (ret, array, *pshift, pbound, pdim ? *pdim : 1); +} + + extern void eoshift0_4 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_4 *, const char *, const GFC_INTEGER_4 *); @@ -200,6 +229,7 @@ eoshift0_4 (gfc_array_char *ret, const gfc_array_char *array, eoshift0 (ret, array, *pshift, pbound, pdim ? *pdim : 1); } + extern void eoshift0_8 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_8 *, const char *, const GFC_INTEGER_8 *); @@ -212,3 +242,4 @@ eoshift0_8 (gfc_array_char *ret, const gfc_array_char *array, { eoshift0 (ret, array, *pshift, pbound, pdim ? *pdim : 1); } + diff --git a/libgfortran/intrinsics/eoshift2.c b/libgfortran/intrinsics/eoshift2.c index e7409e6704998088f627890e38d9e189a86a31a0..67ca7d2b89c62c409d4119428d33b901e18e8e21 100644 --- a/libgfortran/intrinsics/eoshift2.c +++ b/libgfortran/intrinsics/eoshift2.c @@ -203,6 +203,35 @@ eoshift2 (gfc_array_char *ret, const gfc_array_char *array, } } + +extern void eoshift2_1 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_1 *, const gfc_array_char *, + const GFC_INTEGER_1 *); +export_proto(eoshift2_1); + +void +eoshift2_1 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_1 *pshift, const gfc_array_char *bound, + const GFC_INTEGER_1 *pdim) +{ + eoshift2 (ret, array, *pshift, bound, pdim ? *pdim : 1); +} + + +extern void eoshift2_2 (gfc_array_char *, const gfc_array_char *, + const GFC_INTEGER_2 *, const gfc_array_char *, + const GFC_INTEGER_2 *); +export_proto(eoshift2_2); + +void +eoshift2_2 (gfc_array_char *ret, const gfc_array_char *array, + const GFC_INTEGER_2 *pshift, const gfc_array_char *bound, + const GFC_INTEGER_2 *pdim) +{ + eoshift2 (ret, array, *pshift, bound, pdim ? *pdim : 1); +} + + extern void eoshift2_4 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_4 *, const gfc_array_char *, const GFC_INTEGER_4 *); @@ -216,6 +245,7 @@ eoshift2_4 (gfc_array_char *ret, const gfc_array_char *array, eoshift2 (ret, array, *pshift, bound, pdim ? *pdim : 1); } + extern void eoshift2_8 (gfc_array_char *, const gfc_array_char *, const GFC_INTEGER_8 *, const gfc_array_char *, const GFC_INTEGER_8 *); @@ -228,3 +258,4 @@ eoshift2_8 (gfc_array_char *ret, const gfc_array_char *array, { eoshift2 (ret, array, *pshift, bound, pdim ? *pdim : 1); } + diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index c259e5655669b262f193da7840e31313d7727299..ca8beb2fc9493500cee8fd3565301f85a7482222 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -185,6 +185,8 @@ isfinite (double x) #define IMAGPART(z) (__imag__(z)) #define COMPLEX_ASSIGN(z_, r_, i_) {__real__(z_) = (r_); __imag__(z_) = (i_);} +typedef int8_t GFC_INTEGER_1; +typedef int16_t GFC_INTEGER_2; typedef int32_t GFC_INTEGER_4; typedef int64_t GFC_INTEGER_8; typedef uint32_t GFC_UINTEGER_4;