[gcc r15-620] ada: Remove outdated workaround in aggregate expansion

Marc Poulhi?s dkm@gcc.gnu.org
Fri May 17 08:27:12 GMT 2024


https://gcc.gnu.org/g:167462f1977e7ed52a0d0aec8508b45bfe78c54b

commit r15-620-g167462f1977e7ed52a0d0aec8508b45bfe78c54b
Author: Ronan Desplanques <desplanques@adacore.com>
Date:   Mon Mar 18 09:58:00 2024 +0100

    ada: Remove outdated workaround in aggregate expansion
    
    Before this patch, the compiler refrained from rewriting aggregates
    into purely positional form in some cases of one-component aggregates.
    As explained in comments, this was because the back end could not
    handle positional aggregates in those situations.
    
    As the back end seems to have grown more capable, this patch removes
    the workaround. It also extends the comments describing a warning that
    is emitted in the same configuration with aggregates.
    
    gcc/ada/
    
            * exp_aggr.adb (Aggr_Size_OK): Remove workaround and extend
            comment.

Diff:
---
 gcc/ada/exp_aggr.adb | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index 9c5944a917d0..892f47ceb050 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -711,9 +711,10 @@ package body Exp_Aggr is
             return True;
          end if;
 
-         --  One-component aggregates are suspicious, and if the context type
-         --  is an object declaration with nonstatic bounds it will trip gcc;
-         --  such an aggregate must be expanded into a single assignment.
+         --  One-component named aggregates where the index constraint is not
+         --  known at compile time are suspicious as the user might have
+         --  intended to write a subtype name but wrote the name of an object
+         --  instead. We emit a warning if we're in such a case.
 
          if Hiv = Lov and then Nkind (Parent (N)) = N_Object_Declaration then
             declare
@@ -741,8 +742,6 @@ package body Exp_Aggr is
                         Error_Msg_N ("\maybe subtype name was meant??", Indx);
                      end if;
                   end if;
-
-                  return False;
                end if;
             end;
          end if;


More information about the Gcc-cvs mailing list