libgfortran.h: define gfc_alloca()
authorSteven G. Kargl <kargls@comcast.net>
Tue, 21 Sep 2004 12:38:34 +0000 (12:38 +0000)
committerTobias Schlüter <tobi@gcc.gnu.org>
Tue, 21 Sep 2004 12:38:34 +0000 (14:38 +0200)
2004-09-21  Steven G. Kargl  <kargls@comcast.net>

* libgfortran.h: define gfc_alloca()
* intrinsics/env.c (getenv, get_environment_variable_i4): Use it.

From-SVN: r87801

libgfortran/ChangeLog
libgfortran/intrinsics/env.c
libgfortran/libgfortran.h

index 2908775a827ca4b96252eda1527c7bc2f87e9cd8..4f282d5c854db162ede693d9706ee80c3d737414 100644 (file)
@@ -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
index b50c1f056dc077fbee813d425c4564d8f782838d..ab596fce59c038994fe25276022a03a5d3f63f37 100644 (file)
@@ -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'; 
   
index 463cd60348f1841e673743d5e5bd5a8a7e6474d9..bbe6824770675e34619b74bed6c7bcaba729a887 100644 (file)
@@ -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 */