On 01/09/2018 05:57 AM, Prathamesh Kulkarni wrote: > > As Jakub pointed out for the case: > void *f() > { > return __builtin_malloc (0); > } > > The malloc propagation would set f() to malloc. > However AFAIU, malloc(0) returns NULL (?) and the function shouldn't > be marked as malloc ? This seems like a pretty significant concern. Given:
return n ? 0 : __builtin_malloc (n); Is the function malloc-like enough to allow it to be marked? If not, then ISTM we have to be very conservative in what we mark. foo (n, m) { return n ? 0 : __builtin_malloc (m); } Is that malloc-like enough to mark? Jeff