https://gcc.gnu.org/g:b87148fa43dfa2d8324cac4625a2b41ffda6bac9
commit r15-593-gb87148fa43dfa2d8324cac4625a2b41ffda6bac9 Author: Piotr Trojanek <troja...@adacore.com> Date: Tue Mar 5 12:57:50 2024 +0100 ada: Tune detection of unconstrained and tagged items in Depends contract The Tagged/Array/Record/Private types are mutually exclusive, so they can be examined like with a case statement (except for records with private extensions, but their handling is not affected by this change). gcc/ada/ * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated testing of type kinds. Diff: --- gcc/ada/sem_prag.adb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 2fc46ab0cd24..9dc22e3edc17 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -32970,14 +32970,14 @@ package body Sem_Prag is if Is_Tagged_Type (Typ) then return True; - elsif Is_Array_Type (Typ) and then not Is_Constrained (Typ) then - return True; + elsif Is_Array_Type (Typ) then + return not Is_Constrained (Typ); elsif Is_Record_Type (Typ) then return Has_Discriminants (Typ) and then not Is_Constrained (Typ); - elsif Is_Private_Type (Typ) and then Has_Discriminants (Typ) then - return True; + elsif Is_Private_Type (Typ) then + return Has_Discriminants (Typ); else return False;