public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-4290] [Ada] Fix crash on array component with Default_Value
@ 2021-10-11 13:38 Pierre-Marie de Rodat
  0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2021-10-11 13:38 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:07118f4832ab8a2eaa1cb564cf8d852a3c4b175c

commit r12-4290-g07118f4832ab8a2eaa1cb564cf8d852a3c4b175c
Author: Piotr Trojanek <trojanek@adacore.com>
Date:   Mon Sep 27 16:15:39 2021 +0200

    [Ada] Fix crash on array component with Default_Value
    
    gcc/ada/
    
            * exp_util.adb (Inside_Init_Proc): Simplify.
            * sem_aggr.adb (Resolve_Record_Aggregate): Fix style.
            * sem_util.adb (Compile_Time_Constraint_Error): Guard against
            calling Corresponding_Concurrent_Type with an array type entity.

Diff:
---
 gcc/ada/exp_util.adb |  4 +---
 gcc/ada/sem_aggr.adb |  4 ++--
 gcc/ada/sem_util.adb | 13 +++++++++----
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index cb180967d67..11499e155fc 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -7994,10 +7994,8 @@ package body Exp_Util is
    ----------------------
 
    function Inside_Init_Proc return Boolean is
-      Proc : constant Entity_Id := Enclosing_Init_Proc;
-
    begin
-      return Proc /= Empty;
+      return Present (Enclosing_Init_Proc);
    end Inside_Init_Proc;
 
    ----------------------
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb
index 9ae5ff61617..b51a3d0c17b 100644
--- a/gcc/ada/sem_aggr.adb
+++ b/gcc/ada/sem_aggr.adb
@@ -5307,8 +5307,8 @@ package body Sem_Aggr is
 
                   Add_Association
                    (Component      => Component,
-                    Expr       => Empty,
-                    Assoc_List => New_Assoc_List,
+                    Expr           => Empty,
+                    Assoc_List     => New_Assoc_List,
                     Is_Box_Present => True);
 
                elsif Present (Parent (Component))
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index b5f3d4cce03..20e4395e4f3 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -6589,11 +6589,16 @@ package body Sem_Util is
 
                if Inside_Init_Proc then
                   declare
+                     Init_Proc_Type : constant Entity_Id :=
+                       Entity (Parameter_Type (First
+                                 (Parameter_Specifications
+                                    (Parent (Current_Scope_No_Loops)))));
+
                      Conc_Typ : constant Entity_Id :=
-                                  Corresponding_Concurrent_Type
-                                    (Entity (Parameter_Type (First
-                                      (Parameter_Specifications
-                                        (Parent (Current_Scope))))));
+                       (if Present (Init_Proc_Type)
+                          and then Init_Proc_Type in E_Record_Type_Id
+                        then Corresponding_Concurrent_Type (Init_Proc_Type)
+                        else Empty);
 
                   begin
                      --  Don't complain if the corresponding concurrent type


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-10-11 13:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-11 13:38 [gcc r12-4290] [Ada] Fix crash on array component with Default_Value Pierre-Marie de Rodat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).