aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/m4
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2017-05-10 15:45:52 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2017-05-10 15:45:52 +0000
commit8e5f30dca07ebd8c2b2c335a61124931d9c9da10 (patch)
treec52d4c2267ca1cc79cde1031424c102b1329a417 /libgfortran/m4
parenta997fff52886be8c59f886376003539634e4781a (diff)
re PR target/80687 (VLA usage in libgfortran; nvptx target: "sorry, unimplemented: target cannot support alloca")
2017-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/80687 PR fortran/80696 * m4/matmul_internal.m4: 'matmul_name`: Always use malloc/free to allocate t1. * generated/matmul_c10.c: Regenerated. * generated/matmul_c16.c: Regenerated. * generated/matmul_c4.c: Regenerated. * generated/matmul_c8.c: Regenerated. * generated/matmul_i1.c: Regenerated. * generated/matmul_i16.c: Regenerated. * generated/matmul_i2.c: Regenerated. * generated/matmul_i4.c: Regenerated. * generated/matmul_i8.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/matmul_r8.c: Regenerated. From-SVN: r247839
Diffstat (limited to 'libgfortran/m4')
-rw-r--r--libgfortran/m4/matmul_internal.m47
1 files changed, 3 insertions, 4 deletions
diff --git a/libgfortran/m4/matmul_internal.m4 b/libgfortran/m4/matmul_internal.m4
index 37839567168..5682b78ffe9 100644
--- a/libgfortran/m4/matmul_internal.m4
+++ b/libgfortran/m4/matmul_internal.m4
@@ -206,6 +206,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
f13, f14, f23, f24, f33, f34, f43, f44;
index_type i, j, l, ii, jj, ll;
index_type isec, jsec, lsec, uisec, ujsec, ulsec;
+ 'rtype_name` *t1;
a = abase;
b = bbase;
@@ -232,10 +233,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
if (t1_dim > 65536)
t1_dim = 65536;
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wvla"
- 'rtype_name` t1[t1_dim]; /* was [256][256] */
-#pragma GCC diagnostic pop
+ t1 = malloc (t1_dim * sizeof('rtype_name`));
/* Empty c first. */
for (j=1; j<=n; j++)
@@ -451,6 +449,7 @@ sinclude(`matmul_asm_'rtype_code`.m4')dnl
}
}
}
+ free(t1);
return;
}
else if (rxstride == 1 && aystride == 1 && bxstride == 1)