https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120570
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Pavel M from comment #2) > (In reply to Andrew Pinski from comment #1) > > Since __ is the implementation space, we don't error out on purpose. > Then why does "__int128 x;" lead to "warning: ISO C does not support > '__int128' types [-Wpedantic]"? Because that is different. For most attributes it does not change the meaning and you could use do: #define __attribute__(a) Which is why there are two (( around the attribute part :).