https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Pedro Alves from comment #16) > I ran into this, and thought that: > > typedef unsigned int __attribute__ ((__mode__(__byte__))) byte; > > or: > > typedef unsigned int __attribute__ ((__mode__(QI))) byte; > > might be syntax that already worked for creating an 8-bit type that doesn't > alias. Alas, it does not work. Maybe it should. The reason it does not work is that we handle it by querying the frontend for a type corresponding to that mode so it returns unsigned char.