Bug ID: 86488
           Summary: malloc attribute when pointer is returned as part of a
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot
          Reporter: gonzalobg88 at gmail dot com
  Target Milestone: ---

I am trying to implementing P0901r0 [0] in jemalloc. The signature of the new
memory allocation function looks like this: 

typedef struct {
        void *ptr;
        size_t usize;
} smallocx_return_t;
smallocx_return_t je_smallocx(size_t size, int flags); 

I'd like to set the "malloc" [1] attribute for this function but AFAICT this is
not currently possible for this new function because the pointer
smallocx_return_t::ptr is part of a struct. 


[1]: From

> malloc
> This tells the compiler that a function is malloc-like, i.e., that the 
> pointer P 
> returned by the function cannot alias any other pointer valid when the 
> function 
> returns, and moreover no pointers to valid objects occur in any storage 
> addressed by P.
> Using this attribute can improve optimization. Functions like malloc and 
> calloc 
> have this property because they return a pointer to uninitialized or 
> zeroed-out 
> storage. However, functions like realloc do not have this property, as they 
> can 
> return a pointer to storage containing pointers.

Reply via email to