]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Elide the copy in extended returns for nonlimited by-reference types
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 23 Aug 2023 13:11:57 +0000 (15:11 +0200)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 5 Sep 2023 11:05:17 +0000 (13:05 +0200)
gcc/ada/

* gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
the simple return statement.

gcc/ada/gcc-interface/trans.cc

index 5d93060c6d85e79f3c59f980af5524693ee2691e..e99fbb4eb5ed8e6bf81278585be1519f5c9ddba6 100644 (file)
@@ -8519,7 +8519,7 @@ gnat_to_gnu (Node_Id gnat_node)
           && ((Nkind (Parent (gnat_node)) == N_Attribute_Reference
                && lvalue_required_for_attribute_p (Parent (gnat_node)))
               || (Nkind (Parent (gnat_node)) == N_Simple_Return_Statement
-                  && No (Storage_Pool (gnat_node)))))
+                  && No (Storage_Pool (Parent (gnat_node))))))
     ;
 
   else if (TREE_TYPE (gnu_result) != gnu_result_type)