select.c: Moved content to select_inc.c.
[gcc.git] / libgfortran / intrinsics / transpose_generic.c
index 1daae8bb5b786908dbe9328811068310750e1a67..5b1929ca55ddac21e488fec8c5b8d5a901c30a19 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the TRANSPOSE intrinsic
-   Copyright 2003, 2006 Free Software Foundation, Inc.
+   Copyright 2003, 2006, 2007 Free Software Foundation, Inc.
    Contributed by Tobias Schlüter
 
 This file is part of the GNU Fortran 95 runtime library (libgfortran).
@@ -28,11 +28,10 @@ License along with libgfortran; see the file COPYING.  If not,
 write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 Boston, MA 02110-1301, USA.  */
 
-#include "config.h"
+#include "libgfortran.h"
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
-#include "libgfortran.h"
 
 extern void transpose (gfc_array_char *, gfc_array_char *);
 export_proto(transpose);
@@ -95,6 +94,7 @@ transpose_internal (gfc_array_char *ret, gfc_array_char *source,
     }
 }
 
+
 extern void transpose (gfc_array_char *, gfc_array_char *);
 export_proto(transpose);
 
@@ -104,6 +104,7 @@ transpose (gfc_array_char *ret, gfc_array_char *source)
   transpose_internal (ret, source, GFC_DESCRIPTOR_SIZE (source));
 }
 
+
 extern void transpose_char (gfc_array_char *, GFC_INTEGER_4,
                            gfc_array_char *, GFC_INTEGER_4);
 export_proto(transpose_char);
@@ -115,3 +116,16 @@ transpose_char (gfc_array_char *ret,
 {
   transpose_internal (ret, source, source_length);
 }
+
+
+extern void transpose_char4 (gfc_array_char *, GFC_INTEGER_4,
+                            gfc_array_char *, GFC_INTEGER_4);
+export_proto(transpose_char4);
+
+void
+transpose_char4 (gfc_array_char *ret,
+                GFC_INTEGER_4 ret_length __attribute__((unused)),
+                gfc_array_char *source, GFC_INTEGER_4 source_length)
+{
+  transpose_internal (ret, source, source_length * sizeof (gfc_char4_t));
+}