[Bug rtl-optimization/67483] combine.c sanitizer detects undefined negative left shift

segher at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 13 23:02:00 GMT 2016


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

--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Author: segher
Date: Fri May 13 23:01:40 2016
New Revision: 236232

URL: https://gcc.gnu.org/viewcvs?rev=236232&root=gcc&view=rev
Log:
combine: Don't call extract_left_shift with count < 0 (PR67483)

If the compiled program does a shift by a negative amount, combine will
happily work with that, but it shouldn't then do an undefined operation
in GCC itself.  This patch fixes the first case mentioned in the bug
report (I haven't been able to reproduce the second case, on trunk at
least).


        PR rtl-optimization/67483
        * combine.c (make_compound_operation): Don't call extract_left_shift
        with negative shift amounts.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/combine.c


More information about the Gcc-bugs mailing list