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

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Author: trippels
Date: Thu Dec  1 14:59:03 2016
New Revision: 243113

URL: https://gcc.gnu.org/viewcvs?rev=243113&root=gcc&view=rev
Log:
Fix PR tree-optimization/78598 - tree-ssa-loop-prefetch.c:835:16: runtime
error: signed integer overflow

Using bootstrap-ubsan gcc to build mplayer shows:

tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow:
288230376151711743 * 64 cannot be represented in type 'long int'

Here signed und unsigned integers are mixed in a division resulting in
bogus values: (-83 + 64ULL -1) / 64ULL) == 288230376151711743

Fixed by casting the unsigned parameter to signed.

        PR tree-optimization/78598
        * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
        overflows.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-ssa-loop-prefetch.c

Reply via email to