https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102804
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- unsigned int32_t is invalid. You cannot use unsigned (or short or long) with a typedef, only with 'int'. GCC was changed to diagnose that fairly recently, which is probably why the behaviour changed since GCC 7.