]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Tune detection of unconstrained and tagged items in Depends contract
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 5 Mar 2024 11:57:50 +0000 (12:57 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Fri, 17 May 2024 08:20:59 +0000 (10:20 +0200)
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.

gcc/ada/sem_prag.adb

index 2fc46ab0cd240a1219530d1efb5b4b89b4394d38..9dc22e3edc17d283c635473614a60ddb588438b8 100644 (file)
@@ -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;