On Thu, 22 Aug 2013, Jan Hubicka wrote:
> > On Thu, 22 Aug 2013, Gabriel Dos Reis wrote:
> > > > - I would like to recall issue if we can make NEW_EXPR annotated with
> > > > MALLOC attribute. Without it, it is basically impossible to track
> > > > any dynamically allocated objects in the middle-end
> > >
> > > operator new is replaceable by user program.
> >
> > But so is malloc? As I understand, the reason why "malloc" attribute is not
> > applicable to operator new is "placement new", which returns aliased memory.
>
> placement new is optimized to nothing, so it should not affect anything here.
Which means you cannot annotate NEW_EXPR with attribute malloc when
-fno-inline is in effect, right? Because then placement new is no longer
optimized out. Testcase, compile with -O2 -fno-inline -fno-ipa-sra:
#include <new>
int foo(void *c)
{
return *(new (c) int);
}