[gcc r14-3699] ada: Elide the copy in extended returns for nonlimited by-reference types

Marc Poulhi?s dkm@gcc.gnu.org
Tue Sep 5 11:09:32 GMT 2023


https://gcc.gnu.org/g:da4e06d476d55193dad66628160a089e5ec1e737

commit r14-3699-gda4e06d476d55193dad66628160a089e5ec1e737
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Aug 23 15:11:57 2023 +0200

    ada: Elide the copy in extended returns for nonlimited by-reference types
    
    gcc/ada/
    
            * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
            the simple return statement.

Diff:
---
 gcc/ada/gcc-interface/trans.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index 5d93060c6d85..e99fbb4eb5ed 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -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)


More information about the Gcc-cvs mailing list