https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108099
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Keywords| |ice-on-invalid-code Last reconfirmed| |2022-12-14 Status|UNCONFIRMED |NEW --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #1) > __int128_t is already a typedef, so you can't add a signed or unsigned > qualifier to it. i.e. the same reason this doesn't work: using I = int; signed I i = 0; > std::make_signed_t<__int128_t> works because that doesn't just add the > 'signed' keyword to it. i.e. the same reason this works: using I = int; std::make_signed_t<I> i = 0; It shouldn't ICE though.