diff options
author | Martin Jambor <mjambor@suse.cz> | 2014-05-15 16:54:29 +0200 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2014-05-15 16:54:29 +0200 |
commit | 9d2681a399507e4a33e95e3f738e7328b8abcc90 (patch) | |
tree | 1037af05ec7d87e6a879da0df3212d229ba44cc4 /gcc | |
parent | 8fa53379d501bfb9d9c13acb59fa368d7e6f7fc1 (diff) | |
download | gcc-9d2681a399507e4a33e95e3f738e7328b8abcc90.zip gcc-9d2681a399507e4a33e95e3f738e7328b8abcc90.tar.gz gcc-9d2681a399507e4a33e95e3f738e7328b8abcc90.tar.bz2 |
re PR tree-optimization/61090 (ICE in build_ref_for_offset)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr61090.c | 21 | ||||
-rw-r--r-- | gcc/tree-sra.c | 2 |
4 files changed, 33 insertions, 1 deletions
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 <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 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 <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 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) { |