This is the mail archive of the
mailing list for the GCC project.
Re: Can realloc be marked as a mallloc-like function?
H.J. Lu wrote:
On Sun, Jul 15, 2007 at 10:17:56AM +0300, Janne Blomqvist wrote:
On 7/14/07, H.J. Lu <firstname.lastname@example.org> wrote:
On Sat, Jul 14, 2007 at 06:03:33PM +0200, Tobias Schlüter wrote:
H.J. Lu wrote:
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__.
There was an absurdely long thread on this topic starting at
<http://gcc.gnu.org/ml/gcc/2004-01/msg00005.html>. I didn't dig through
it to find the answer.
Now, we have a real testcase to show the problem. How do we solve
I assigned the bug to myself, since I caused it. However, as the
regression is not seen on x86, I suppose there is only so much I can
do. HJL, can you confirm that indeed removing only the DECL_IS_MALLOC
of internal_realloc fixes the issue on IA-64?
When I get back home tonight I'll take a look at the trees created by
array_constructor_6 and see if we do something obviously stupid, i.e.
can the frontend be fixed in some other way so that we can still keep
internal_realloc marked with DECL_IS_MALLOC.
You can compare the ia64 alias dumps to see the difference between
before and after the DECL_IS_MALLOC change.
I removed DECL_IS_MALLOC from internal_realloc, committed 126662 as
obvious, and closed PR 32748.