aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils2.c
diff options
context:
space:
mode:
authorDoug Rupp <rupp@adacore.com>2008-08-04 11:16:54 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-04 11:16:54 +0200
commit762dffe7bfe92394589f61ab25f176eda510d710 (patch)
tree7a6f521f7346b250d58f1f0f085c091402126576 /gcc/ada/gcc-interface/utils2.c
parentbdc33a55e85d7a895f88f70fb41b258955afd8e0 (diff)
downloadgcc-762dffe7bfe92394589f61ab25f176eda510d710.zip
gcc-762dffe7bfe92394589f61ab25f176eda510d710.tar.gz
gcc-762dffe7bfe92394589f61ab25f176eda510d710.tar.bz2
utils2.c (fill_vms_descriptor): Use long_integer for comparison.
2008-08-04 Doug Rupp <rupp@adacore.com> * utils2.c (fill_vms_descriptor): Use long_integer for comparison. Call add_stmt_with_node to set locus. From-SVN: r138589
Diffstat (limited to 'gcc/ada/gcc-interface/utils2.c')
-rw-r--r--gcc/ada/gcc-interface/utils2.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c
index 8cd6155..44c78f4 100644
--- a/gcc/ada/gcc-interface/utils2.c
+++ b/gcc/ada/gcc-interface/utils2.c
@@ -2173,6 +2173,7 @@ fill_vms_descriptor (tree expr, Entity_Id gnat_formal)
int do_range_check =
strcmp ("MBO",
IDENTIFIER_POINTER (DECL_NAME (TYPE_FIELDS (record_type))));
+ tree malloc64low = build_int_cstu (long_integer_type_node, 0x80000000);
expr = maybe_unconstrained_array (expr);
gnat_mark_addressable (expr);
@@ -2189,14 +2190,14 @@ fill_vms_descriptor (tree expr, Entity_Id gnat_formal)
strcmp (IDENTIFIER_POINTER (DECL_NAME (field)), "POINTER") == 0)
{
tree t = build3 (COND_EXPR, void_type_node,
- build_binary_op (LT_EXPR, integer_type_node,
- convert (integer_type_node,
+ build_binary_op (GE_EXPR, long_integer_type_node,
+ convert (long_integer_type_node,
conexpr),
- integer_zero_node),
+ malloc64low),
build_call_raise (CE_Range_Check_Failed, Empty,
N_Raise_Constraint_Error),
NULL_TREE);
- add_stmt (t);
+ add_stmt_with_node (t, gnat_formal);
}
const_list = tree_cons (field, conexpr, const_list);
}