[Ada] Remove obsolete workaround regarding array returns
authorBob Duff <duff@adacore.com>
Wed, 24 Jun 2020 20:26:50 +0000 (16:26 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Fri, 16 Oct 2020 07:31:33 +0000 (03:31 -0400)
gcc/ada/

* exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
comment and code.

gcc/ada/exp_ch6.adb

index 1059459df45889e04e5ef9308741d2f3046c3766..ab237f980752867f9193ba411c21e808f9d1bbc6 100644 (file)
@@ -7545,16 +7545,9 @@ package body Exp_Ch6 is
          --  processing is required except to set the By_Ref flag to ensure
          --  that gigi does not attempt an extra unnecessary copy. (Actually
          --  not just unnecessary but wrong in the case of a controlled type,
-         --  where gigi does not know how to do a copy.) To make up for a gcc
-         --  2.8.1 deficiency (???), we perform the copy for array types if the
-         --  constrained status of the target type is different from that of
-         --  the expression.
+         --  where gigi does not know how to do a copy.)
 
          if Requires_Transient_Scope (Exp_Typ)
-           and then
-              (not Is_Array_Type (Exp_Typ)
-                or else Is_Constrained (Exp_Typ) = Is_Constrained (R_Type)
-                or else CW_Or_Has_Controlled_Part (Utyp))
            and then Exp_Is_Function_Call
          then
             Set_By_Ref (N);