Can realloc be marked as a mallloc-like function?

H.J. Lu hjl@lucon.org
Sun Jul 15 13:08:00 GMT 2007


On Sun, Jul 15, 2007 at 10:17:56AM +0300, Janne Blomqvist wrote:
> On 7/14/07, H.J. Lu <hjl@lucon.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
> >it?
> 
> 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?

Yes.

> 
> 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.


H.J.



More information about the Gcc mailing list