diff options
-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; |