re PR tree-optimization/61090 (ICE in build_ref_for_offset)
authorMartin Jambor <mjambor@suse.cz>
Thu, 15 May 2014 14:54:29 +0000 (16:54 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 15 May 2014 14:54:29 +0000 (16:54 +0200)
2014-05-15  Martin Jambor  <mjambor@suse.cz>

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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr61090.c [new file with mode: 0644]
gcc/tree-sra.c

index 4b818f4..960927c 100644 (file)
@@ -1,3 +1,9 @@
+2014-05-15  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/61090
+       * tree-sra.c (sra_modify_expr): Pass the current gsi to
+       build_ref_for_model.
+
 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
index ae25792..0a43475 100644 (file)
@@ -1,3 +1,8 @@
+2014-05-15  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/61090
+       * gcc.dg/tree-ssa/pr61090.c: New test.
+
 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
 
        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 (file)
index 0000000..fff2895
--- /dev/null
@@ -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;
+}
index 72c485b..ef6c966 100644 (file)
@@ -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)
            {