OSDN Git Service

2004-09-21 Steven G. Kargl <kargls@comcast.net>
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Sep 2004 12:38:34 +0000 (12:38 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Sep 2004 12:38:34 +0000 (12:38 +0000)
* 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

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

index 2908775..4f282d5 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 b50c1f0..ab596fc 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 463cd60..bbe6824 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 */