From: Eric Botcazou Date: Sat, 23 Oct 2004 09:16:46 +0000 (+0200) Subject: re PR middle-end/17793 (Ada bootstrap failure) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=918047526ddf6f2ff5235d232d5bfbb653bd78cd;p=platform%2Fupstream%2Fgcc.git re PR middle-end/17793 (Ada bootstrap failure) PR middle-end/17793 * gimplify.c (gimplify_addr_expr) : Look through the operand if it is a useless type conversion. From-SVN: r89488 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac3c875..fa86a45 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-10-23 Eric Botcazou + + PR middle-end/17793 + * gimplify.c (gimplify_addr_expr) : Look + through the operand if it is a useless type conversion. + 2004-10-23 Ben Elliston * cfg.c (remove_edge): Use VEC_unordered_remove. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 51a123f..3d8ecdf 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -3093,6 +3093,13 @@ gimplify_addr_expr (tree *expr_p, tree *pre_p, tree *post_p) ??? The interactions of VIEW_CONVERT_EXPR and aliasing is not at all clear. The impact of this transformation is even less clear. */ + + /* If the operand is a useless conversion, look through it. Doing so + guarantees that the ADDR_EXPR and its operand will remain of the + same type. */ + if (tree_ssa_useless_type_conversion (TREE_OPERAND (op0, 0))) + op0 = TREE_OPERAND (op0, 0); + *expr_p = fold_convert (TREE_TYPE (expr), build_fold_addr_expr (TREE_OPERAND (op0, 0))); ret = GS_OK;