https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118329
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- INT_N should be IMHO used after it, and will just amend it. __int24 will be a keyword, like e.g. long or __int128 are, one can then use signed __int24, unsigned __int24 or just __int24 (same as signed __int24), similarly how e.g. __int128 behaves. If you want __uint24 to be a built-in type which is the same as unsigned __int24, you'd just register name for the int_n_trees[i].unsigned_type for i for which int_n_trees[i].bitsize == 24.