From 563be3ee1db9e0fb1f37e13b02cff6651e934bee Mon Sep 17 00:00:00 2001 From: Gary Dismukes Date: Fri, 13 Dec 2019 09:03:40 +0000 Subject: [PATCH] [Ada] Up-level addressing problems with private tasks and selective accept procs 2019-12-13 Gary Dismukes gcc/ada/ * sem_util.adb (Scope_Within): For the case of checking for a task type procedure, check the Implementation_Base_Type of Curr. (Scope_Within_Or_Same): For the case of checking for a task type procedure, check the Implementation_Base_Type of Curr. From-SVN: r279344 --- gcc/ada/ChangeLog | 7 +++++++ gcc/ada/sem_util.adb | 10 ++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index aabc2d42d37..4cd789f33fa 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,10 @@ +2019-12-13 Gary Dismukes + + * sem_util.adb (Scope_Within): For the case of checking for a + task type procedure, check the Implementation_Base_Type of Curr. + (Scope_Within_Or_Same): For the case of checking for a task type + procedure, check the Implementation_Base_Type of Curr. + 2019-12-13 Arnaud Charlet * impunit.adb (Non_Imp_File_Names_12): Add diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 91137ad808b..ea87a3a3352 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -24721,8 +24721,9 @@ package body Sem_Util is -- A selective accept body appears within a task type, but the -- enclosing subprogram is the procedure of the task body. - elsif Ekind (Curr) = E_Task_Type - and then Outer = Task_Body_Procedure (Curr) + elsif Ekind (Implementation_Base_Type (Curr)) = E_Task_Type + and then + Outer = Task_Body_Procedure (Implementation_Base_Type (Curr)) then return True; @@ -24763,8 +24764,9 @@ package body Sem_Util is if Curr = Outer then return True; - elsif Ekind (Curr) = E_Task_Type - and then Outer = Task_Body_Procedure (Curr) + elsif Ekind (Implementation_Base_Type (Curr)) = E_Task_Type + and then + Outer = Task_Body_Procedure (Implementation_Base_Type (Curr)) then return True; -- 2.30.2