https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106854
--- Comment #5 from Alejandro Colomar <colomar.6.4.3 at gmail dot com> --- We could also keep the old [[gnu::malloc(...)]] attribute, of course, if a new attribute would be an issue. We would just have to add an extra argument (the third?, or one before the function name?) to mark the position of the initialized object. Either [[gnu::malloc(3, timerfd_close)]] with an optional third argument of 1, or [[gnu::malloc(timerfd_close, 1, 3)]] and force to specify the position in the closer if the position in the initializer needs to be specified. The second form would probably be easier to implement, and the first one might be easier to use (having to specify less things).