From c92ff1b0dc0734b64f6a653441c1b306d2782429 Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Sun, 11 Apr 2010 11:49:22 +0000 Subject: * gcc-interface/trans.c (lvalue_required_for_attribute_p): New static function. (lvalue_required_p) : Call it. (gnat_to_gnu) : Prevent build_component_ref from folding the result only if lvalue_required_for_attribute_p is true. * gcc-interface/utils.c (maybe_unconstrained_array): Pass correctly typed constant to build_component_ref. (unchecked_convert): Likewise. * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise. (build_allocator): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158202 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/gcc-interface/utils.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gcc/ada/gcc-interface/utils.c') diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index a59b565b77b..fed723fa929 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -4274,12 +4274,13 @@ maybe_unconstrained_array (tree exp) build_component_ref (new_exp, NULL_TREE, TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (new_exp))), - 0); + false); } else if (TYPE_CONTAINS_TEMPLATE_P (TREE_TYPE (exp))) return build_component_ref (exp, NULL_TREE, - TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (exp))), 0); + TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (exp))), + false); break; default: @@ -4416,7 +4417,7 @@ unchecked_convert (tree type, tree expr, bool notrunc_p) layout_type (rec_type); expr = unchecked_convert (rec_type, expr, notrunc_p); - expr = build_component_ref (expr, NULL_TREE, field, 0); + expr = build_component_ref (expr, NULL_TREE, field, false); } /* Similarly if we are converting from an integral type whose precision -- cgit v1.2.3