[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 24 08:55:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #7)
>     case FMT_LEN_z:
>       dirtype = sign ? signed_type_for (size_type_node) : size_type_node;
>       break;
> 
>     case FMT_LEN_t:
>       dirtype = sign ? ptrdiff_type_node : unsigned_type_for
> (ptrdiff_type_node);
>       break;

Or maybe even better:
        dirtype = signed_or_unsigned_type_for (!sign, size_type_node);
and
        dirtype = igned_or_unsigned_type_for (!sign, ptrdiff_type_node);
sizeof (size_t) == sizeof (ptrdiff_t) can't be assumed.
E.g. vms uses always 32-bit size_t, but either 32-bit or 64-bit ptrdiff_t.


More information about the Gcc-bugs mailing list