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;

Reply via email to