This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Can realloc be marked as a mallloc-like function?
- From: "H.J. Lu" <hjl at lucon dot org>
- To: gcc at gcc dot gnu dot org
- Cc: fortran at gcc dot gnu dot org, jb at gcc dot gnu dot org, GNU C Library <libc-alpha at sources dot redhat dot com>
- Date: Sat, 14 Jul 2007 09:00:16 -0700
- Subject: Can realloc be marked as a mallloc-like function?
This patch
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00165.html
causes the regression:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32748
The only relevant change is
Index: gcc/fortran/trans-decl.c
===================================================================
--- gcc/fortran/trans-decl.c (revision 126214)
+++ gcc/fortran/trans-decl.c (working copy)
@@ -2276,6 +2276,7 @@ gfc_build_builtin_function_decls (void)
(PREFIX("internal_realloc")),
pvoid_type_node, 2, pvoid_type_node,
gfc_index_int_type_node);
+ DECL_IS_MALLOC (gfor_fndecl_internal_realloc) = 1;
gfor_fndecl_allocate =
gfc_build_library_function_decl (get_identifier (PREFIX("allocate")),
In calls.c, there are comments:
/* The return value from a malloc-like function can not alias
anything else. */
It looks like gcc assumes a functon marked with DECL_IS_MALLOC won't
return an address which can alias something else. But it isn't true
for realloc. Now, the qestions are
1. Can gcc make such an assumption?
2. Can realloc be marked as DECL_IS_MALLOC.
BTW, glibc also marks realloc with __attribute_malloc__.
H.J.