OSDN Git Service

2007-12-01 Kostik Belousov <kostikbel@ukr.net>
authorsam <sam@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Dec 2007 11:52:42 +0000 (11:52 +0000)
committersam <sam@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Dec 2007 11:52:42 +0000 (11:52 +0000)
    gcc/ada/
PR ada/33722
* env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
and its argument must not be free()ed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130555 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/env.c

index aff5640..b9a6caa 100644 (file)
@@ -1,3 +1,9 @@
+2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
+
+       PR ada/33722
+       * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
+       and its argument must not be free()ed.
+
 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
 
        * decl.c (make_packable_type): Retrieve the real name of the type.
index 808f10b..4d36109 100644 (file)
@@ -177,9 +177,9 @@ __gnat_setenv (char *name, char *value)
 
   sprintf (expression, "%s=%s", name, value);
   putenv (expression);
-#if defined (__FreeBSD__) || defined (__APPLE__) || defined (__MINGW32__) \
-   ||(defined (__vxworks) && ! defined (__RTP__))
-  /* On some systems like FreeBSD, MacOS X and Windows, putenv is making
+#if (defined (__FreeBSD__) && (__FreeBSD__ < 7)) || defined (__APPLE__) \
+   || defined (__MINGW32__) ||(defined (__vxworks) && ! defined (__RTP__))
+  /* On some systems like pre-7 FreeBSD, MacOS X and Windows, putenv is making
      a copy of the expression string so we can free it after the call to
      putenv */
   free (expression);