aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch6.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/exp_ch6.adb')
-rw-r--r--gcc/ada/exp_ch6.adb17
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 5f60779..90fb73e 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -4186,8 +4186,6 @@ package body Exp_Ch6 is
-- code will have the same semantics.
if Ekind (F) = E_In_Parameter
- and then not Is_Limited_Type (Etype (A))
- and then not Is_Tagged_Type (Etype (A))
and then not Is_By_Reference_Type (Etype (A))
and then
(not Is_Array_Type (Etype (A))
@@ -4197,9 +4195,10 @@ package body Exp_Ch6 is
Decl :=
Make_Object_Declaration (Loc,
Defining_Identifier => Temp,
- Constant_Present => True,
- Object_Definition => New_Occurrence_Of (Temp_Typ, Loc),
- Expression => New_A);
+ Constant_Present => True,
+ Object_Definition => New_Occurrence_Of (Temp_Typ, Loc),
+ Expression => New_A);
+
else
Decl :=
Make_Object_Renaming_Declaration (Loc,
@@ -4217,10 +4216,10 @@ package body Exp_Ch6 is
end loop;
-- Establish target of function call. If context is not assignment or
- -- declaration, create a temporary as a target. The declaration for
- -- the temporary may be subsequently optimized away if the body is a
- -- single expression, or if the left-hand side of the assignment is
- -- simple enough, i.e. an entity or an explicit dereference of one.
+ -- declaration, create a temporary as a target. The declaration for the
+ -- temporary may be subsequently optimized away if the body is a single
+ -- expression, or if the left-hand side of the assignment is simple
+ -- enough, i.e. an entity or an explicit dereference of one.
if Ekind (Subp) = E_Function then
if Nkind (Parent (N)) = N_Assignment_Statement