------- Comment #1 from hjl dot tools at gmail dot com 2008-08-14 21:29 -------
This patch works for me:
Index: cshift0.c
===================================================================
--- cshift0.c (revision 139115)
+++ cshift0.c (working copy)
@@ -120,7 +120,7 @@
#ifdef HAVE_GFC_INTEGER_16
case GFC_DTYPE_LOGICAL_16:
case GFC_DTYPE_INTEGER_16:
- cshift0_i16 ((gfc_array_i8 *)ret, (gfc_array_i16 *) array, shift,
+ cshift0_i16 ((gfc_array_i16 *)ret, (gfc_array_i16 *) array, shift,
which);
return;
#endif
@@ -233,7 +233,7 @@
/* Let's try to use the complex routines. First, a sanity
check that the sizes match; this should be optimized to
a no-op. */
- if (sizeof(GFC_INTGER_16) != sizeof(GFC_COMPLEX_8))
+ if (sizeof(GFC_INTEGER_16) != sizeof(GFC_COMPLEX_8))
break;
if (GFC_UNALIGNED_C8(ret->data) || GFC_UNALIGNED_C8(array->data))
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37123