aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/utils2.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 7bc0828..6ea3282 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * utils2.c (build_allocator): Use build_int_cst for negative
+ size types.
+
2004-08-18 Richard Henderson <rth@redhat.com>
* misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c
index 726c9f2..60de87d 100644
--- a/gcc/ada/utils2.c
+++ b/gcc/ada/utils2.c
@@ -1799,7 +1799,7 @@ build_allocator (tree type, tree init, tree result_type, Entity_Id gnat_proc,
/* If the size overflows, pass -1 so the allocator will raise
storage error. */
if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
- size = ssize_int (-1);
+ size = build_int_cst (ssizetype, -1, -1);
storage = build_call_alloc_dealloc (NULL_TREE, size,
TYPE_ALIGN (storage_type),
@@ -1872,7 +1872,7 @@ build_allocator (tree type, tree init, tree result_type, Entity_Id gnat_proc,
/* If the size overflows, pass -1 so the allocator will raise
storage error. */
if (TREE_CODE (size) == INTEGER_CST && TREE_OVERFLOW (size))
- size = ssize_int (-1);
+ size = build_int_cst (ssizetype, -1, -1);
/* If this is a type whose alignment is larger than the
biggest we support in normal alignment and this is in