re PR middle-end/67338 (fold-const sanitizer runtime error in roundup_loc)
PR c/67338 * fold-const.c (round_up_loc): Negate divisor in unsigned type to avoid UB. * gcc.dg/pr67338.c: New test. From-SVN: r246305
This commit is contained in:
parent
9da12bea7d
commit
9f30dff0ee
|
@ -1,3 +1,9 @@
|
|||
2017-03-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/67338
|
||||
* fold-const.c (round_up_loc): Negate divisor in unsigned type to
|
||||
avoid UB.
|
||||
|
||||
2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
PR rtl-optimization/79910
|
||||
|
|
|
@ -14250,7 +14250,7 @@ round_up_loc (location_t loc, tree value, unsigned int divisor)
|
|||
|
||||
overflow_p = TREE_OVERFLOW (value);
|
||||
val += divisor - 1;
|
||||
val &= - (int) divisor;
|
||||
val &= (int) -divisor;
|
||||
if (val == 0)
|
||||
overflow_p = true;
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
2017-03-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c/67338
|
||||
* gcc.dg/pr67338.c: New test.
|
||||
|
||||
PR c++/35878
|
||||
* g++.dg/init/pr35878_1.C: Rewrite directives to scan optimized
|
||||
dump instead of assembler.
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
/* PR c/67338 */
|
||||
/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
|
||||
|
||||
struct S { __attribute__((aligned (1 << 28))) double a; };
|
Loading…
Reference in New Issue