]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Fix error in GNATprove inlining with array concatenation
authorYannick Moy <moy@adacore.com>
Wed, 24 Jul 2024 15:36:20 +0000 (17:36 +0200)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Tue, 6 Aug 2024 08:54:32 +0000 (10:54 +0200)
Wrong interpretation of the type of the concatenation can lead to a
spurious error in GNATprove when inlining code. Now fixed.

gcc/ada/

* sem_ch4.adb (Analyze_Concatenation_Rest): Do not add a wrong
interpretation of the concatenation, using the type of the operand
already recognized as of the element type.

gcc/ada/sem_ch4.adb

index fc3a2a43c3c9c1e3168e67d82510ff3ec3277a99..9b77a81e43efcb647250e4f5857d2f6bef7c1e7f 100644 (file)
@@ -1995,6 +1995,7 @@ package body Sem_Ch4 is
               (Root_Type (LT) = Standard_String
                  or else Scope (LT) /= Standard_Standard)
               and then Etype (R) = Any_String
+              and then not Is_Component_Left_Opnd (N)
             then
                Add_One_Interp (N, Op_Id, LT);
 
@@ -2002,6 +2003,7 @@ package body Sem_Ch4 is
               (Root_Type (RT) = Standard_String
                  or else Scope (RT) /= Standard_Standard)
               and then Etype (L) = Any_String
+              and then not Is_Component_Right_Opnd (N)
             then
                Add_One_Interp (N, Op_Id, RT);