[gcc(refs/users/giulianob/heads/autopar_rebase2)] [Ada] Fix small fallout of previous change for allocator

Giuliano Belinassi giulianob@gcc.gnu.org
Tue Aug 18 00:02:46 GMT 2020


https://gcc.gnu.org/g:480e0e25299977d7355a08e321d861fb0489533f

commit 480e0e25299977d7355a08e321d861fb0489533f
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sat May 2 11:35:42 2020 +0200

    [Ada] Fix small fallout of previous change for allocator
    
    2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
    
    gcc/ada/
    
            * sem_res.adb (Resolve_Qualified_Expression): Do not override the
            type of the node when it is unconstrained if it is for an allocator.

Diff:
---
 gcc/ada/sem_res.adb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index e4c0c072ab9..46f140932b8 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -10161,10 +10161,12 @@ package body Sem_Res is
 
       --  If the target type is unconstrained, then we reset the type of the
       --  result from the type of the expression. For other cases, the actual
-      --  subtype of the expression is the target type.
+      --  subtype of the expression is the target type. But we avoid doing it
+      --  for an allocator since this is not needed and might be problematic.
 
       if Is_Composite_Type (Target_Typ)
         and then not Is_Constrained (Target_Typ)
+        and then Nkind (Parent (N)) /= N_Allocator
       then
          Set_Etype (N, Etype (Expr));
       end if;


More information about the Gcc-cvs mailing list