diff options
author | James E Wilson <wilson@specifixinc.com> | 2005-11-03 22:13:03 +0000 |
---|---|---|
committer | Laurent Guerby <guerby@gcc.gnu.org> | 2005-11-03 22:13:03 +0000 |
commit | 720981287ad1de4e5763c2787220cbf788c22eaa (patch) | |
tree | 4f2019b171e1a4b825fa2f3f83eaeee2ee9835bb /gcc | |
parent | f2bd1eb944f85f1bc930791445213f4ce8fae773 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/trans.c | 4 |
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))) |