This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/25860] [4.2 Regression] ice with -g -O2 -fPIC
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Jan 2006 17:03:26 -0000
- Subject: [Bug tree-optimization/25860] [4.2 Regression] ice with -g -O2 -fPIC
- References: <bug-25860-9596@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from pinskia at gcc dot gnu dot org 2006-01-20 17:03 -------
This patch worked though:
Index: tree-ssa-pre.c
===================================================================
--- tree-ssa-pre.c (revision 110017)
+++ tree-ssa-pre.c (working copy)
@@ -1159,7 +1159,7 @@ phi_translate (tree expr, value_set_t se
VEC (tree, gc) * oldvuses = NULL;
VEC (tree, gc) * newvuses = NULL;
- if (TREE_CODE (expr) != INDIRECT_REF)
+ if (TREE_CODE (expr) != INDIRECT_REF && !AGGREGATE_TYPE_P (TREE_TYPE
(expr)))
return NULL;
newop1 = phi_translate (find_leader (set, oldop1),
@@ -1989,7 +1989,7 @@ can_PRE_operation (tree op)
return UNARY_CLASS_P (op)
|| BINARY_CLASS_P (op)
|| COMPARISON_CLASS_P (op)
- || TREE_CODE (op) == INDIRECT_REF
+ || (TREE_CODE (op) == INDIRECT_REF)
|| TREE_CODE (op) == CALL_EXPR;
}
@@ -2650,7 +2650,7 @@ create_value_expr_from (tree expr, basic
/* Recursively value-numberize reference ops. */
- if (REFERENCE_CLASS_P (TREE_VALUE (vexpr)))
+ if (REFERENCE_CLASS_P (TREE_VALUE (vexpr)) && !AGGREGATE_TYPE_P
(TREE_TYPE (TREE_VALUE (vexpr))))
{
tree tempop;
op = TREE_VALUE (vexpr);
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25860