In <stdlib.h> from glibc, there are

/* Re-allocate the previously allocated block
   in PTR, making the new block SIZE bytes long.  */
extern void *realloc (void *__ptr, size_t __size)
     __THROW __attribute_malloc__ __attribute_warn_unused_result__;

However, when a function is marked as mallloc-like, gcc assumes it will
return an address which can alias something else. In case like

#include <stdlib.h>

int *p;
p = malloc (4);
*p = 0;
p = realloc (p, 4);
*p = 1;

will have VOPs that do not prevent re-ordering of the two stores.
fixincludes should remove __attribute_malloc__ from realloc.


-- 
           Summary: Fixincludes should fix realloc in <stdlib.h> in glibc
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32771

Reply via email to