diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2006-01-25 14:06:59 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2006-01-25 14:06:59 +0000 |
commit | d516761a88c429fedc4063d8e9f50dbe5a0e449c (patch) | |
tree | 4f8c3410b6d1a780e1dfbe48b0de022c35c6babe /gcc/ada | |
parent | 22d8cae92031dde0cc53a13eb75cab43d05d3000 (diff) |
PR ada/18819
* exp_util.adb (Remove_Side_Effects): Lift enclosing type conversion
nodes for elementary types in all cases.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@110213 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/exp_util.adb | 9 |
2 files changed, 7 insertions, 8 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 69a639a9e55..5d7c353210b 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2006-01-24 Eric Botcazou <ebotcazou@adacore.com> + + PR ada/18819 + * exp_util.adb (Remove_Side_Effects): Lift enclosing type conversion + nodes for elementary types in all cases. + 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> PR ada/24533 diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index c6924e97cb6..906b275a2a9 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -4077,14 +4077,7 @@ package body Exp_Util is -- is a view conversion to a smaller object, where gigi can end up -- creating its own temporary of the wrong size. - -- ??? this transformation is inhibited for elementary types that are - -- not involved in a change of representation because it causes - -- regressions that are not fully understood yet. - - elsif Nkind (Exp) = N_Type_Conversion - and then (not Is_Elementary_Type (Underlying_Type (Exp_Type)) - or else Nkind (Parent (Exp)) = N_Assignment_Statement) - then + elsif Nkind (Exp) = N_Type_Conversion then Remove_Side_Effects (Expression (Exp), Name_Req, Variable_Ref); Scope_Suppress := Svg_Suppress; return; |