From d3079c44fc5087b8e6f39379062a4b50e42bf49d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 5 Sep 2007 01:29:58 +0200 Subject: re PR tree-optimization/33017 (tree check fail for legal code) PR tree-optimization/33017 * tree-data-ref.c (split_constant_offset) : Don't recurse for pure or const function calls. * gcc.dg/pr33017.c: New test. From-SVN: r128107 --- gcc/tree-data-ref.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/tree-data-ref.c') diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index 6ad2e96..720c94d 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -574,7 +574,8 @@ split_constant_offset (tree exp, tree *var, tree *off) if (!TREE_SIDE_EFFECTS (def_stmt_rhs) && EXPR_P (def_stmt_rhs) - && !REFERENCE_CLASS_P (def_stmt_rhs)) + && !REFERENCE_CLASS_P (def_stmt_rhs) + && !get_call_expr_in (def_stmt_rhs)) { split_constant_offset (def_stmt_rhs, &var0, &off0); var0 = fold_convert (type, var0); -- cgit v1.1