https://gcc.gnu.org/g:bfa8e6f2137ba80dcd1ca7106be2cfe967810426

commit r15-6538-gbfa8e6f2137ba80dcd1ca7106be2cfe967810426
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Thu Dec 5 15:14:58 2024 +0100

    ada: Remove guards against empty lists
    
    There is no need to guard against calling First on a No_List, in which case
    the call intentionally returns Empty. Code cleanup; semantics is unaffected.
    
    gcc/ada/ChangeLog:
    
            * contracts.adb (Create_Generic_Contract): Remove calls to Present.
            * sem_util.adb (Normalize_Actuals): Likewise.

Diff:
---
 gcc/ada/contracts.adb | 16 ++++------------
 gcc/ada/sem_util.adb  |  9 ++-------
 2 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb
index 7e66a54b6752..7eb41f7f1073 100644
--- a/gcc/ada/contracts.adb
+++ b/gcc/ada/contracts.adb
@@ -2122,9 +2122,7 @@ package body Contracts is
       if Nkind (Templ) = N_Generic_Package_Declaration then
          Mutate_Ekind (Templ_Id, E_Generic_Package);
 
-         if Present (Visible_Declarations (Specification (Templ))) then
-            Decl := First (Visible_Declarations (Specification (Templ)));
-         end if;
+         Decl := First (Visible_Declarations (Specification (Templ)));
 
       --  A generic package body carries contract-related source pragmas in its
       --  declarations.
@@ -2132,9 +2130,7 @@ package body Contracts is
       elsif Nkind (Templ) = N_Package_Body then
          Mutate_Ekind (Templ_Id, E_Package_Body);
 
-         if Present (Declarations (Templ)) then
-            Decl := First (Declarations (Templ));
-         end if;
+         Decl := First (Declarations (Templ));
 
       --  Generic subprogram declaration
 
@@ -2149,9 +2145,7 @@ package body Contracts is
          --  the Pragmas_After list for contract-related source pragmas.
 
          if Nkind (Context) = N_Compilation_Unit then
-            if Present (Aux_Decls_Node (Context))
-              and then Present (Pragmas_After (Aux_Decls_Node (Context)))
-            then
+            if Present (Aux_Decls_Node (Context)) then
                Decl := First (Pragmas_After (Aux_Decls_Node (Context)));
             end if;
 
@@ -2168,9 +2162,7 @@ package body Contracts is
       elsif Nkind (Templ) = N_Subprogram_Body then
          Mutate_Ekind (Templ_Id, E_Subprogram_Body);
 
-         if Present (Declarations (Templ)) then
-            Decl := First (Declarations (Templ));
-         end if;
+         Decl := First (Declarations (Templ));
       end if;
 
       --  Inspect the relevant declarations looking for contract-related source
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 44a87298c6ea..6bc50c44291d 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -25119,9 +25119,7 @@ package body Sem_Util is
       --  Find if there is a named association, and verify that no positional
       --  associations appear after named ones.
 
-      if Present (Actuals) then
-         Actual := First (Actuals);
-      end if;
+      Actual := First (Actuals);
 
       while Present (Actual)
         and then Nkind (Actual) /= N_Parameter_Association
@@ -25169,10 +25167,7 @@ package body Sem_Util is
          Next (Actual);
       end loop;
 
-      if Present (Actuals) then
-         Actual := First (Actuals);
-      end if;
-
+      Actual := First (Actuals);
       Formal := First_Formal (S);
       while Present (Formal) loop

Reply via email to