From c6847e25b997c686563a537de5fb9eaa34568730 Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Tue, 21 Sep 2004 12:38:34 +0000 Subject: [PATCH] libgfortran.h: define gfc_alloca() 2004-09-21 Steven G. Kargl * libgfortran.h: define gfc_alloca() * intrinsics/env.c (getenv, get_environment_variable_i4): Use it. From-SVN: r87801 --- libgfortran/ChangeLog | 5 +++++ libgfortran/intrinsics/env.c | 5 ++--- libgfortran/libgfortran.h | 7 ++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2908775a827..4f282d5c854 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2004-09-21 Steven G. Kargl + + * libgfortran.h: define gfc_alloca() + * intrinsics/env.c (getenv, get_environment_variable_i4): Use it. + 2004-09-21 Bud Davis PR fortran/17286 diff --git a/libgfortran/intrinsics/env.c b/libgfortran/intrinsics/env.c index b50c1f056dc..ab596fce59c 100644 --- a/libgfortran/intrinsics/env.c +++ b/libgfortran/intrinsics/env.c @@ -24,7 +24,6 @@ Boston, MA 02111-1307, USA. */ #include #include #include -#include #include "libgfortran.h" @@ -55,7 +54,7 @@ prefix(getenv) (char * name, name_len--; /* Make a null terminated copy of the string. */ - name_nt = alloca (name_len + 1); + name_nt = gfc_alloca (name_len + 1); memcpy (name_nt, name, name_len); name_nt[name_len] = '\0'; @@ -131,7 +130,7 @@ prefix(get_environment_variable_i4) name_len--; } /* Make a null terminated copy of the name. */ - name_nt = alloca (name_len + 1); + name_nt = gfc_alloca (name_len + 1); memcpy (name_nt, name, name_len); name_nt[name_len] = '\0'; diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index 463cd60348f..bbe68247706 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -1,5 +1,5 @@ /* Common declarations for all of libgfor. - Copyright 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. Contributed by Paul Brook , and Andy Vaught @@ -237,6 +237,11 @@ extern unsigned line; /* Location of the current libray call (optional). */ #define filename prefix(filename) extern char *filename; +/* Avoid conflicting prototypes of alloca() in system headers by using + GCC's builtin alloca(). */ + +#define gfc_alloca(x) __builtin_alloca(x) + /* main.c */