From: Ghjuvan Lacambre Date: Wed, 13 Jan 2021 17:03:15 +0000 (+0100) Subject: [Ada] Make Is_OK_Static_Subtype use Is_Static_Subtype X-Git-Tag: basepoints/gcc-13~7764 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1075946d061f01d767cf42f437be99aefe02ea97;p=thirdparty%2Fgcc.git [Ada] Make Is_OK_Static_Subtype use Is_Static_Subtype gcc/ada/ * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype, remove redundant checks. --- diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb index 9b272d258b4b..79310152f642 100644 --- a/gcc/ada/sem_eval.adb +++ b/gcc/ada/sem_eval.adb @@ -5549,23 +5549,16 @@ package body Sem_Eval is return False; end if; - Anc_Subt := Ancestor_Subtype (Typ); - - if Anc_Subt = Empty then - Anc_Subt := Base_T; - end if; + -- Then, check if the subtype is strictly static. This takes care of + -- checking for generics and predicates. - if Is_Generic_Type (Root_Type (Base_T)) - or else Is_Generic_Actual_Type (Base_T) - then - return False; - - elsif Has_Dynamic_Predicate_Aspect (Typ) then + if not Is_Static_Subtype (Typ) then return False; + end if; -- String types - elsif Is_String_Type (Typ) then + if Is_String_Type (Typ) then return Ekind (Typ) = E_String_Literal_Subtype or else @@ -5579,6 +5572,12 @@ package body Sem_Eval is return True; else + Anc_Subt := Ancestor_Subtype (Typ); + + if No (Anc_Subt) then + Anc_Subt := Base_T; + end if; + -- Scalar_Range (Typ) might be an N_Subtype_Indication, so use -- Get_Type_{Low,High}_Bound.