https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117047
--- Comment #36 from Sam James <sjames at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #34) > a simple test is to mark ggc_free as noinline (or noipa) or remove the > ATTRIBUTE_MALLOC usage from ggc.h header file. --- a/gcc/ggc.h +++ b/gcc/ggc.h @@ -127,8 +127,7 @@ extern void gt_pch_save (FILE *f); /* The internal primitive. */ extern void *ggc_internal_alloc (size_t, void (*)(void *), size_t, - size_t CXX_MEM_STAT_INFO) - ATTRIBUTE_MALLOC; + size_t CXX_MEM_STAT_INFO); inline void * ggc_internal_alloc (size_t s CXX_MEM_STAT_INFO) @@ -140,8 +139,7 @@ extern size_t ggc_round_alloc_size (size_t requested_size); /* Allocates cleared memory. */ extern void *ggc_internal_cleared_alloc (size_t, void (*)(void *), - size_t, size_t - CXX_MEM_STAT_INFO) ATTRIBUTE_MALLOC; + size_t, size_t); inline void * ggc_internal_cleared_alloc (size_t s CXX_MEM_STAT_INFO) works