OSDN Git Service

* calls.c (special_function_p): Remove `realloc' and add `strdup'
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Nov 1999 23:55:26 +0000 (23:55 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Nov 1999 23:55:26 +0000 (23:55 +0000)
        to the list of functions which have attribute malloc by default.

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

gcc/ChangeLog
gcc/calls.c

index e0a454b..598369f 100644 (file)
@@ -1,5 +1,10 @@
 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
+       * calls.c (special_function_p): Remove `realloc' and add `strdup'
+       to the list of functions which have attribute malloc by default.
+
+1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
        * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
        integer constant does not match the traditional type, limit the
        warnings to cases where the base of the type is ten.
index d880595..361c8b7 100644 (file)
@@ -607,10 +607,12 @@ special_function_p (name, fndecl, returns_twice, is_longjmp,
               && ! strcmp (tname, "longjmp"))
        *is_longjmp = 1;
       /* Do not add any more malloc-like functions to this list,
-        instead mark as malloc functions using the malloc attribute.  */
+         instead mark them as malloc functions using the malloc attribute.
+         Note, realloc is not suitable for attribute malloc since
+         it may return the same address across multiple calls. */
       else if (! strcmp (tname, "malloc")
               || ! strcmp (tname, "calloc")
-              || ! strcmp (tname, "realloc")
+              || ! strcmp (tname, "strdup")
               /* Note use of NAME rather than TNAME here.  These functions
                  are only reserved when preceded with __.  */
               || ! strcmp (name, "__vn")       /* mangled __builtin_vec_new */