aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargls@comcast.net>2004-12-14 10:43:36 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-12-14 10:43:36 +0000
commit985791f6feb0274ab67f192ab913628428cead91 (patch)
treea962594796d219a5d0f1ef5a80d214357231d6b3
parent803140430a36062b98f1d9b3dced6e2a23a80e50 (diff)
downloadgcc-985791f6feb0274ab67f192ab913628428cead91.zip
gcc-985791f6feb0274ab67f192ab913628428cead91.tar.gz
gcc-985791f6feb0274ab67f192ab913628428cead91.tar.bz2
re PR libfortran/18966 (cshift etc. not implemented for kind=1 and kind=2 actual arguments)
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. From-SVN: r92132
-rw-r--r--libgfortran/ChangeLog8
-rw-r--r--libgfortran/intrinsics/cshift0.c26
-rw-r--r--libgfortran/intrinsics/eoshift0.c31
-rw-r--r--libgfortran/intrinsics/eoshift2.c31
-rw-r--r--libgfortran/libgfortran.h2
5 files changed, 98 insertions, 0 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 0b4134c..2a6ecf6 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 4783eda..f712629 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 66f0ab1..efe880d 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 e7409e6..67ca7d2 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 c259e56..ca8beb2 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;