summaryrefslogtreecommitdiff
path: root/libgfortran/m4/transpose.m4
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran/m4/transpose.m4')
-rw-r--r--libgfortran/m4/transpose.m417
1 files changed, 17 insertions, 0 deletions
diff --git a/libgfortran/m4/transpose.m4 b/libgfortran/m4/transpose.m4
index fbc49501097..5fd6acfb228 100644
--- a/libgfortran/m4/transpose.m4
+++ b/libgfortran/m4/transpose.m4
@@ -39,6 +39,23 @@ void
assert (GFC_DESCRIPTOR_RANK (source) == 2);
+ if (ret->data == NULL)
+ {
+ assert (GFC_DESCRIPTOR_RANK (ret) == 2);
+ assert (ret->dtype == source->dtype);
+
+ ret->dim[0].lbound = 0;
+ ret->dim[0].ubound = source->dim[1].ubound - source->dim[1].lbound;
+ ret->dim[0].stride = 1;
+
+ ret->dim[1].lbound = 0;
+ ret->dim[1].ubound = source->dim[0].ubound - source->dim[0].lbound;
+ ret->dim[1].stride = ret->dim[0].ubound+1;
+
+ ret->data = internal_malloc (sizeof (rtype_name) * size0 (ret));
+ ret->base = 0;
+ }
+
if (ret->dim[0].stride == 0)
ret->dim[0].stride = 1;
if (source->dim[0].stride == 0)