https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116191
--- Comment #5 from ilija.tovilo <ilija.tovilo at me dot com> --- That's true ofc, but if you look at the example: __attribute__((cold)) extern void cold_func(void); Simply removing the cold attribute will cause zend_string_release() to be inlined, so it is indeed involved in inlining heuristics in some way.