summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-21 12:38:34 +0000
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>2004-09-21 12:38:34 +0000
commit2b573e698aa85c2c56a05e9657d12eeac27acf69 (patch)
tree15e69fd9c82b5c56916211a2a3e1f19fbaf48919 /libgfortran
parent853bc068dce309877988e3d1031bb61af67045b6 (diff)
downloadgcc-2b573e698aa85c2c56a05e9657d12eeac27acf69.tar.gz
2004-09-21 Steven G. Kargl <kargls@comcast.net>
* libgfortran.h: define gfc_alloca() * intrinsics/env.c (getenv, get_environment_variable_i4): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87801 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/intrinsics/env.c5
-rw-r--r--libgfortran/libgfortran.h7
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 <kargls@comcast.net>
+
+ * libgfortran.h: define gfc_alloca()
+ * intrinsics/env.c (getenv, get_environment_variable_i4): Use it.
+
2004-09-21 Bud Davis <bdavis9659@comcast.net>
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 <sys/types.h>
#include <stdlib.h>
#include <string.h>
-#include <alloca.h>
#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 <paul@nowt.org>, and
Andy Vaught <andy@xena.eas.asu.edu>
@@ -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 */