From: Martin Jambor Date: Thu, 15 May 2014 14:54:29 +0000 (+0200) Subject: re PR tree-optimization/61090 (ICE in build_ref_for_offset) X-Git-Tag: upstream/12.2.0~63268 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d2681a399507e4a33e95e3f738e7328b8abcc90;p=platform%2Fupstream%2Fgcc.git re PR tree-optimization/61090 (ICE in build_ref_for_offset) 2014-05-15 Martin Jambor PR tree-optimization/61090 * tree-sra.c (sra_modify_expr): Pass the current gsi to build_ref_for_model. testsuite/ * gcc.dg/tree-ssa/pr61090.c: New test. From-SVN: r210476 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b818f4..960927c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-05-15 Martin Jambor + + PR tree-optimization/61090 + * tree-sra.c (sra_modify_expr): Pass the current gsi to + build_ref_for_model. + 2014-05-15 Kyrylo Tkachov * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ae25792..0a43475 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-05-15 Martin Jambor + + PR tree-optimization/61090 + * gcc.dg/tree-ssa/pr61090.c: New test. + 2014-05-15 Jakub Jelinek PR tree-optimization/61158 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr61090.c b/gcc/testsuite/gcc.dg/tree-ssa/pr61090.c new file mode 100644 index 0000000..fff2895 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr61090.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +struct i { + int c; +}; + +static int +p(struct i a) +{ + return 0; +} + +void +h(void) +{ + struct i z[] = {{ 0 }}; + int e[] = {}; + int x; + e[0] = p(z[x]) + z[x].c; +} diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 72c485b..ef6c966 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -2812,7 +2812,7 @@ sra_modify_expr (tree *expr, gimple_stmt_iterator *gsi, bool write) { tree ref; - ref = build_ref_for_model (loc, orig_expr, 0, access, NULL, false); + ref = build_ref_for_model (loc, orig_expr, 0, access, gsi, false); if (write) {