https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796
--- Comment #13 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- Everything available with __attribute__ is also available with [[]]; __attribute__((foo)) is [[gnu::foo]]. You *do* need to ensure that the [[gnu::foo]] is placed in the right syntactic position for the entity appertained to, because laxity in positioning only ever applies with __attribute__ syntax, not with [[]] syntax.