https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118329
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I wouldn't create a new type. Instead: for (int i = 0; i < NUM_INT_N_ENTS; i++) if (int_n_data[i].bitsize == 24) { lang_hooks.types.register_builtin_type (int_n_trees[i].unsigned_type, "__uint24"); break; } or so. But, I haven't really tried it, tested, ... Note, I'm not the author of the INT_N stuff, just reading what I see...