From: Javier Miranda Date: Mon, 16 Jul 2018 14:10:08 +0000 (+0000) Subject: [Ada] Fix expansion of 'Count in protected types X-Git-Tag: upstream/12.2.0~30393 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=97710dc73178bb3a45712d69c9dcefc66bc3fb5f;p=platform%2Fupstream%2Fgcc.git [Ada] Fix expansion of 'Count in protected types 2018-07-16 Javier Miranda gcc/ada/ * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not transform 'Count into a function call if the current scope has been eliminated. From-SVN: r262703 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index bcf2262..5e2ae1f 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,11 @@ 2018-07-16 Javier Miranda + * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not + transform 'Count into a function call if the current scope has been + eliminated. + +2018-07-16 Javier Miranda + * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the public part of this package. diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb index 30d6605..45c12bf 100644 --- a/gcc/ada/exp_attr.adb +++ b/gcc/ada/exp_attr.adb @@ -3049,6 +3049,16 @@ package body Exp_Attr is -- Protected case if Is_Protected_Type (Conctyp) then + + -- No need to transform 'Count into a function call if the current + -- scope has been eliminated. In this case such transformation is + -- also not viable because the enclosing protected object is not + -- available. + + if Is_Eliminated (Current_Scope) then + return; + end if; + case Corresponding_Runtime_Package (Conctyp) is when System_Tasking_Protected_Objects_Entries => Name := New_Occurrence_Of (RTE (RE_Protected_Count), Loc);