aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_util.adb9
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;