re PR tree-optimization/71328 (ice in verify_jump_thread)
PR tree-optimization/71328 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one error when checking for a jump back onto the copied path. */ PR tree-optimization/71328 * gcc.c-torture/compile/pr71328.c: New test. From-SVN: r237052
This commit is contained in:
parent
e96e5f4611
commit
47b8392308
|
@ -1,3 +1,9 @@
|
||||||
|
2016-06-02 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/71328
|
||||||
|
* tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
|
||||||
|
error when checking for a jump back onto the copied path. */
|
||||||
|
|
||||||
2016-06-02 David Malcolm <dmalcolm@redhat.com>
|
2016-06-02 David Malcolm <dmalcolm@redhat.com>
|
||||||
|
|
||||||
* config/microblaze/microblaze.c (get_branch_target): Add return
|
* config/microblaze/microblaze.c (get_branch_target): Add return
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2016-06-02 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/71328
|
||||||
|
* gcc.c-torture/compile/pr71328.c: New test.
|
||||||
|
|
||||||
2016-06-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2016-06-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/52393
|
PR fortran/52393
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
|
||||||
|
int a, b, c;
|
||||||
|
void fn1() {
|
||||||
|
unsigned char d = 3;
|
||||||
|
if (d > 11)
|
||||||
|
lbl_596:
|
||||||
|
c = 0;
|
||||||
|
while (!d)
|
||||||
|
b = b;
|
||||||
|
unsigned char e = e || d;
|
||||||
|
d = e;
|
||||||
|
if (a)
|
||||||
|
d = d || a;
|
||||||
|
goto lbl_596;
|
||||||
|
}
|
|
@ -2298,11 +2298,11 @@ duplicate_thread_path (edge entry, edge exit,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Special case the last block on the path: make sure that it does not
|
/* Special case the last block on the path: make sure that it does not
|
||||||
jump back on the copied path. */
|
jump back on the copied path, including back to itself. */
|
||||||
if (i + 1 == n_region)
|
if (i + 1 == n_region)
|
||||||
{
|
{
|
||||||
FOR_EACH_EDGE (e, ei, bb->succs)
|
FOR_EACH_EDGE (e, ei, bb->succs)
|
||||||
if (bb_in_bbs (e->dest, region_copy, n_region - 1))
|
if (bb_in_bbs (e->dest, region_copy, n_region))
|
||||||
{
|
{
|
||||||
basic_block orig = get_bb_original (e->dest);
|
basic_block orig = get_bb_original (e->dest);
|
||||||
if (orig)
|
if (orig)
|
||||||
|
|
Loading…
Reference in New Issue