[gcc r13-7909] ada: Fix wrong optimization of extended return for discriminated record type

Eric Botcazou ebotcazou@gcc.gnu.org
Wed Sep 27 08:28:47 GMT 2023


https://gcc.gnu.org/g:1c135ab169fd6924292258ab107732b565ee1ee3

commit r13-7909-g1c135ab169fd6924292258ab107732b565ee1ee3
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Sep 7 16:44:36 2023 +0200

    ada: Fix wrong optimization of extended return for discriminated record type
    
    This happens when the discriminants of the record type have default values.
    
    gcc/ada/ChangeLog:
    
            * inline.adb (Expand_Inlined_Call): In the case of a function call
            that returns an unconstrained type and initializes an object, set
            the No_Initialization flag on the new declaration of the object.

Diff:
---
 gcc/ada/inline.adb | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index c3911cf70e8..598668b0e55 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -4105,6 +4105,7 @@ package body Inline is
               Object_Definition   =>
                 New_Copy_Tree (Object_Definition (Parent (Targ1))));
          Replace_Formals (Decl);
+         Set_No_Initialization (Decl);
          Rewrite (Parent (N), Decl);
          Analyze (Parent (N));


More information about the Gcc-cvs mailing list