aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-04-11 11:49:22 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-04-11 11:49:22 +0000
commit3cd64bab882b6bebb364ba7df6da511552124feb (patch)
tree4de7dc724b7c55a6130ca6a06a873f4b2cfaaf7e /gcc/ada/gcc-interface/utils.c
parent87fa3d342b62a632f1e44008c18bc60a9ac90af1 (diff)
downloadgcc-3cd64bab882b6bebb364ba7df6da511552124feb.zip
gcc-3cd64bab882b6bebb364ba7df6da511552124feb.tar.gz
gcc-3cd64bab882b6bebb364ba7df6da511552124feb.tar.bz2
trans.c (lvalue_required_for_attribute_p): New static function.
* gcc-interface/trans.c (lvalue_required_for_attribute_p): New static function. (lvalue_required_p) <N_Attribute_Reference>: Call it. (gnat_to_gnu) <N_Selected_Component>: 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. From-SVN: r158202
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r--gcc/ada/gcc-interface/utils.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index a59b565..fed723f 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