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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Sanitizer detects undefined |Sanitizer detects undefined
                   |behaviour in rtlanal.c      |behaviour in rtlanal.c
                   |compiling ada               |

--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Nothing specific to Ada, it's

(mult:DI (reg:DI 87 [ _9 ])
    (reg:DI 87 [ _9 ]))

with (reg:DI 87) equal to LONG_MIN so low0 = low1 = 63.

Clearly a pair of tests against HOST_BITS_PER_WIDE_INT is missing in:

        if (result_width < mode_width)
          nonzero &= (HOST_WIDE_INT_1U << result_width) - 1;

        if (result_low > 0)
          nonzero &= ~((HOST_WIDE_INT_1U << result_low) - 1);

Reply via email to