[Bug c++/108099] ICE when parsing signed __int128_t typedef

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 14 12:23:54 GMT 2022


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.


More information about the Gcc-bugs mailing list