Hello Martin,
First, thank you for your work on this new ChangeLog workflow. :-)
I’d like to report a “regression”: I can’t push the attached patch:
remote: *** ChangeLog format failed:
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_ch4.adb"
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_ch7.adb"
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_ch8.adb"
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_elab.adb"
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_type.adb"
remote: ERR: changed file not mentioned in a ChangeLog:"gcc/ada/sem_util.adb"
remote:
remote: Please see: https://gcc.gnu.org/codingconventions.html#ChangeLogs
remote:
remote: error: hook declined to update refs/heads/master
It looks like the hook does not accept multi-line ChangeLog entries
affecting multiple files:
* contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
where possible (similarly, reuse Is_Concurrent_Type if it was
possible in the same expressions).
Would it be possible to enhance the hook to support that?
Thanks!
--
Pierre-Marie de Rodat
>From 557b268fffffdeb0980a17411f458eee333f55c6 Mon Sep 17 00:00:00 2001
From: Piotr Trojanek <troja...@adacore.com>
Date: Thu, 12 Dec 2019 11:45:24 +0100
Subject: [PATCH] [Ada] Reuse Is_Package_Or_Generic_Package where possible
2020-05-26 Piotr Trojanek <troja...@adacore.com>
gcc/ada/
* contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
where possible (similarly, reuse Is_Concurrent_Type if it was
possible in the same expressions).
---
gcc/ada/contracts.adb | 2 +-
gcc/ada/einfo.adb | 22 +++++++++++-----------
gcc/ada/exp_ch9.adb | 2 +-
gcc/ada/sem_ch12.adb | 2 +-
gcc/ada/sem_ch4.adb | 2 +-
gcc/ada/sem_ch7.adb | 6 +++---
gcc/ada/sem_ch8.adb | 6 +++---
gcc/ada/sem_elab.adb | 2 +-
gcc/ada/sem_type.adb | 2 +-
gcc/ada/sem_util.adb | 6 +++---
10 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/gcc/ada/contracts.adb b/gcc/ada/contracts.adb
index 981bb91..d58f136 100644
--- a/gcc/ada/contracts.adb
+++ b/gcc/ada/contracts.adb
@@ -213,7 +213,7 @@ package body Contracts is
-- Initializes
-- Part_Of (instantiation only)
- elsif Ekind_In (Id, E_Generic_Package, E_Package) then
+ elsif Is_Package_Or_Generic_Package (Id) then
if Nam_In (Prag_Nam, Name_Abstract_State,
Name_Initial_Condition,
Name_Initializes)
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index 98b508f..1df8ed0 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -713,7 +713,7 @@ package body Einfo is
function Abstract_States (Id : E) return L is
begin
- pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
return Elist25 (Id);
end Abstract_States;
@@ -837,7 +837,7 @@ package body Einfo is
function Body_Entity (Id : E) return E is
begin
- pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
return Node19 (Id);
end Body_Entity;
@@ -1424,8 +1424,8 @@ package body Einfo is
function First_Private_Entity (Id : E) return E is
begin
- pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package)
- or else Ekind (Id) in Concurrent_Kind);
+ pragma Assert (Is_Package_Or_Generic_Package (Id)
+ or else Is_Concurrent_Type (Id));
return Node16 (Id);
end First_Private_Entity;
@@ -3044,7 +3044,7 @@ package body Einfo is
function Package_Instantiation (Id : E) return N is
begin
- pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
return Node26 (Id);
end Package_Instantiation;
@@ -3883,7 +3883,7 @@ package body Einfo is
procedure Set_Abstract_States (Id : E; V : L) is
begin
- pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
Set_Elist25 (Id, V);
end Set_Abstract_States;
@@ -4006,7 +4006,7 @@ package body Einfo is
procedure Set_Body_Entity (Id : E; V : E) is
begin
- pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
Set_Node19 (Id, V);
end Set_Body_Entity;
@@ -4593,8 +4593,8 @@ package body Einfo is
procedure Set_First_Private_Entity (Id : E; V : E) is
begin
- pragma Assert (Ekind_In (Id, E_Package, E_Generic_Package)
- or else Ekind (Id) in Concurrent_Kind);
+ pragma Assert (Is_Package_Or_Generic_Package (Id)
+ or else Is_Concurrent_Type (Id));
Set_Node16 (Id, V);
end Set_First_Private_Entity;
@@ -7827,7 +7827,7 @@ package body Einfo is
function Has_Non_Null_Abstract_State (Id : E) return B is
begin
- pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
return
Present (Abstract_States (Id))
@@ -7863,7 +7863,7 @@ package body Einfo is
-----------------------------
function Has_Null_Abstract_State (Id : E) return B is
- pragma Assert (Ekind_In (Id, E_Generic_Package, E_Package));
+ pragma Assert (Is_Package_Or_Generic_Package (Id));
States : constant Elist_Id := Abstract_States (Id);
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index 64ac353..392a221 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -6167,7 +6167,7 @@ package body Exp_Ch9 is
-- this safe. This is a common (if dubious) idiom.
elsif S = Scope (Prot)
- and then Ekind_In (S, E_Package, E_Generic_Package)
+ and then Is_Package_Or_Generic_Package (S)
and then Nkind (Parent (E)) = N_Object_Declaration
and then Nkind (Parent (Parent (E))) = N_Package_Body
then
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index dc3a3c2..209e060 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -10364,7 +10364,7 @@ package body Sem_Ch12 is
-- such as a parent generic within the body of a generic child.
if not Is_Entity_Name (Actual)
- or else not Ekind_In (Entity (Actual), E_Generic_Package, E_Package)
+ or else not Is_Package_Or_Generic_Package (Entity (Actual))
then
Error_Msg_N
("expect package instance to instantiate formal", Actual);
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb
index 5910112..702f265 100644
--- a/gcc/ada/sem_ch4.adb
+++ b/gcc/ada/sem_ch4.adb
@@ -9480,7 +9480,7 @@ package body Sem_Ch4 is
Type_Scope : constant Entity_Id := Scope (T);
Op_List : Elist_Id := Primitive_Operations (T);
begin
- if Ekind_In (Type_Scope, E_Package, E_Generic_Package)
+ if Is_Package_Or_Generic_Package (Type_Scope)
and then ((In_Package_Body (Type_Scope)
and then In_Open_Scopes (Type_Scope)) or else In_Instance_Body)
then
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index 6d9a1db..f217dfd 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -2428,7 +2428,7 @@ package body Sem_Ch7 is
-- defined in the associated package, subject to at least one Part_Of
-- constituent.
- if Ekind_In (P, E_Generic_Package, E_Package) then
+ if Is_Package_Or_Generic_Package (P) then
declare
States : constant Elist_Id := Abstract_States (P);
State_Elmt : Elmt_Id;
@@ -3322,7 +3322,7 @@ package body Sem_Ch7 is
-- performed if the caller requests this behavior.
if Do_Abstract_States
- and then Ekind_In (Pack_Id, E_Generic_Package, E_Package)
+ and then Is_Package_Or_Generic_Package (Pack_Id)
and then Has_Non_Null_Abstract_State (Pack_Id)
and then Requires_Body
then
@@ -3380,7 +3380,7 @@ package body Sem_Ch7 is
-- provided). If Ignore_Abstract_State is True, we don't do this check
-- (so we can use Unit_Requires_Body to check for some other reason).
- elsif Ekind_In (Pack_Id, E_Generic_Package, E_Package)
+ elsif Is_Package_Or_Generic_Package (Pack_Id)
and then Present (Abstract_States (Pack_Id))
and then not Is_Null_State
(Node (First_Elmt (Abstract_States (Pack_Id))))
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index f083f7c..7f50b40 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -5950,7 +5950,7 @@ package body Sem_Ch8 is
-- Package or generic package is always a simple reference
- if Ekind_In (E, E_Package, E_Generic_Package) then
+ if Is_Package_Or_Generic_Package (E) then
Generate_Reference (E, N, 'r');
-- Else see if we have a left hand side
@@ -8779,7 +8779,7 @@ package body Sem_Ch8 is
-- Set Default_Storage_Pool field of the library unit if necessary
- if Ekind_In (S, E_Package, E_Generic_Package)
+ if Is_Package_Or_Generic_Package (S)
and then
Nkind (Parent (Unit_Declaration_Node (S))) = N_Compilation_Unit
then
@@ -8949,7 +8949,7 @@ package body Sem_Ch8 is
if Is_Child_Unit (S)
and then Present (E)
- and then Ekind_In (E, E_Package, E_Generic_Package)
+ and then Is_Package_Or_Generic_Package (E)
and then
Nkind (Parent (Unit_Declaration_Node (E))) = N_Compilation_Unit
then
diff --git a/gcc/ada/sem_elab.adb b/gcc/ada/sem_elab.adb
index f3cac46..dbf3fac 100644
--- a/gcc/ada/sem_elab.adb
+++ b/gcc/ada/sem_elab.adb
@@ -13826,7 +13826,7 @@ package body Sem_Elab is
-- be on another machine.
if Ekind (Body_Id) = E_Package_Body
- and then Ekind_In (Spec_Id, E_Generic_Package, E_Package)
+ and then Is_Package_Or_Generic_Package (Spec_Id)
and then (Is_Remote_Call_Interface (Spec_Id)
or else Is_Remote_Types (Spec_Id))
then
diff --git a/gcc/ada/sem_type.adb b/gcc/ada/sem_type.adb
index e5d01dd..1868568 100644
--- a/gcc/ada/sem_type.adb
+++ b/gcc/ada/sem_type.adb
@@ -1383,7 +1383,7 @@ package body Sem_Type is
begin
return In_Same_List (Parent (Typ), Op_Decl)
or else
- (Ekind_In (Scop, E_Package, E_Generic_Package)
+ (Is_Package_Or_Generic_Package (Scop)
and then List_Containing (Op_Decl) =
Visible_Declarations (Parent (Scop))
and then List_Containing (Parent (Typ)) =
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index b980b4c..c1b1d9e 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -3407,7 +3407,7 @@ package body Sem_Util is
-- Stop the traversal when a package subject to a null abstract state
-- has been found.
- if Ekind_In (Context, E_Generic_Package, E_Package)
+ if Is_Package_Or_Generic_Package (Context)
and then Has_Null_Abstract_State (Context)
then
exit;
@@ -12978,7 +12978,7 @@ package body Sem_Util is
begin
if Present (Pkg)
- and then Ekind_In (Pkg, E_Generic_Package, E_Package)
+ and then Is_Package_Or_Generic_Package (Pkg)
then
while Nkind (Pkg_Decl) /= N_Package_Specification loop
Pkg_Decl := Parent (Pkg_Decl);
@@ -25283,7 +25283,7 @@ package body Sem_Util is
or else
(Present (Scope (Val))
and then Is_Implementation_Defined (Scope (Val))))
- and then not (Ekind_In (Val, E_Package, E_Generic_Package)
+ and then not (Is_Package_Or_Generic_Package (Val)
and then Is_Library_Level_Entity (Val))
then
Check_Restriction (No_Implementation_Identifiers, Post_Node);
--
2.1.4