https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66110
--- Comment #12 from Kevin OConnor <kevin at koconnor dot net> --- (In reply to Andreas Schwab from comment #11) > Since typedef does not create a new type the effect of uint8_t is exactly > the same as the type it is defined from. Thus if uint8_t is defined from > unsigned char then uint8_t is a character type. Yes, of course. My point is that gcc does not need to define uint8_t / __UINT8_TYPE__ as 'unsigned char'. Instead it could define it as a new integer type (eg, __gcc_uint8_t) that is an 8-bit integer that does not alias. As before, I understand if the cost of doing this is too high, but it's unfortunate that there currently does not appear to be any way to define a pointer to an 8-bit integer that doesn't alias.