aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2005-11-03 22:13:03 +0000
committerLaurent Guerby <guerby@gcc.gnu.org>2005-11-03 22:13:03 +0000
commit720981287ad1de4e5763c2787220cbf788c22eaa (patch)
tree4f2019b171e1a4b825fa2f3f83eaeee2ee9835bb /gcc
parentf2bd1eb944f85f1bc930791445213f4ce8fae773 (diff)
downloadgcc-720981287ad1de4e5763c2787220cbf788c22eaa.zip
gcc-720981287ad1de4e5763c2787220cbf788c22eaa.tar.gz
gcc-720981287ad1de4e5763c2787220cbf788c22eaa.tar.bz2
re PR ada/23427 (latent bug with array type size check)
2005-11-03 James E Wilson <wilson@specifix.com> PR ada/23427 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in TREE_OVERFLOW check. From-SVN: r106452
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/trans.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 31f324a..3239df2 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-03 James E Wilson <wilson@specifix.com>
+
+ PR ada/23427
+ * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
+ TREE_OVERFLOW check.
+
2005-09-21 Olivier Hainque <hainque@adacore.com>
PR ada/22418
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index 0e05b6d..cd91a36 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -3423,8 +3423,8 @@ gnat_to_gnu (Node_Id gnat_node)
/* If the type has a size that overflows, convert this into raise of
Storage_Error: execution shouldn't have gotten here anyway. */
- if (TREE_CODE (TYPE_SIZE (TREE_TYPE (gnu_lhs))) == INTEGER_CST
- && TREE_OVERFLOW (TYPE_SIZE (TREE_TYPE (gnu_lhs))))
+ if (TREE_CODE (TYPE_SIZE_UNIT (TREE_TYPE (gnu_lhs))) == INTEGER_CST
+ && TREE_OVERFLOW (TYPE_SIZE_UNIT (TREE_TYPE (gnu_lhs))))
gnu_result = build_call_raise (SE_Object_Too_Large);
else if (Nkind (Expression (gnat_node)) == N_Function_Call
&& !Do_Range_Check (Expression (gnat_node)))