From 363e01ccc9a7c4d930617e9e2dcaee8f4f317361 Mon Sep 17 00:00:00 2001 From: Martin Jambor Date: Thu, 9 Dec 2010 16:11:26 +0100 Subject: re PR middle-end/46734 (ICE in create_tmp_var, at gimplify.c:505) 2010-12-09 Martin Jambor PR middle-end/46734 * tree-sra.c (splice_param_accesses): Check that there are not multiple ADDRESSABLE types. * testsuite/g++.dg/tree-ssa/pr46734.C: New test. From-SVN: r167639 --- gcc/tree-sra.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gcc/tree-sra.c') diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index c06ca8e..4330a17 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -3587,7 +3587,10 @@ splice_param_accesses (tree parm, bool *ro_grp) else if (ac2->size != access->size) return NULL; - if (access_precludes_ipa_sra_p (ac2)) + if (access_precludes_ipa_sra_p (ac2) + || (ac2->type != access->type + && (TREE_ADDRESSABLE (ac2->type) + || TREE_ADDRESSABLE (access->type)))) return NULL; modification |= ac2->write; -- cgit v1.1