aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2021-10-25 11:08:28 -0700
committerSandra Loosemore <sandra@codesourcery.com>2021-10-26 07:24:31 -0700
commitf9190a1c6d001099d1409298ae3b684499bd1fdd (patch)
treef179f0779ad2e2f0088792deb982b76d1f5a0deb
parenta1516b50f291e132d76e3dc79ea91148f8713deb (diff)
downloadgcc-f9190a1c6d001099d1409298ae3b684499bd1fdd.zip
gcc-f9190a1c6d001099d1409298ae3b684499bd1fdd.tar.gz
gcc-f9190a1c6d001099d1409298ae3b684499bd1fdd.tar.bz2
Fix broken use of alloca in C interoperability testcase
2021-10-25 Sandra Loosemore <sandra@codesourcery.com> gcc/testsuite/ PR testsuite/102910 * gfortran.dg/c-interop/cf-descriptor-5-c.c: Use a static buffer instead of alloca.
-rw-r--r--gcc/testsuite/gfortran.dg/c-interop/cf-descriptor-5-c.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/testsuite/gfortran.dg/c-interop/cf-descriptor-5-c.c b/gcc/testsuite/gfortran.dg/c-interop/cf-descriptor-5-c.c
index 12464b5..320a354 100644
--- a/gcc/testsuite/gfortran.dg/c-interop/cf-descriptor-5-c.c
+++ b/gcc/testsuite/gfortran.dg/c-interop/cf-descriptor-5-c.c
@@ -1,6 +1,5 @@
#include <stdlib.h>
#include <stdio.h>
-#include <alloca.h>
#include <ISO_Fortran_binding.h>
#include "dump-descriptors.h"
@@ -8,12 +7,18 @@
extern void ctest (int n);
extern void ftest (CFI_cdesc_t *a, int n);
+#define BUFSIZE 512
+static char adata[BUFSIZE];
+
void
ctest (int n)
{
CFI_CDESC_T(0) adesc;
CFI_cdesc_t *a = (CFI_cdesc_t *) &adesc;
- char *adata = (char *) alloca (n);
+
+ /* Use a fixed-size static buffer instead of allocating one dynamically. */
+ if (n > BUFSIZE)
+ abort ();
/* Fill in adesc. */
check_CFI_status ("CFI_establish",