aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2023-06-16 09:16:19 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-07-28 09:28:13 +0200
commit02cda19cc998905dc2319407d7e49a2d48ec9af2 (patch)
treec1f2b857def65cf585b2332fc8d24b0e612e2767 /gcc/ada
parentcb3bed6018acae828f7a4828678c017c95f695f4 (diff)
downloadgcc-02cda19cc998905dc2319407d7e49a2d48ec9af2.zip
gcc-02cda19cc998905dc2319407d7e49a2d48ec9af2.tar.gz
gcc-02cda19cc998905dc2319407d7e49a2d48ec9af2.tar.bz2
ada: Allow calls to Number_Formals when no formals are present
It is much simpler and safer for the routine Number_Formals to accept subprogram entities that have no formals. gcc/ada/ * einfo-utils.adb (Number_Formals): Change types in body. * einfo-utils.ads (Number_Formals): Change type in spec. * einfo.ads (Number_Formals): Change type in comment. * sem_ch13.adb (Is_Property_Function): Fix style in a caller of Number_Formals that was likely to crash because of missing guards.
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/einfo-utils.adb4
-rw-r--r--gcc/ada/einfo-utils.ads2
-rw-r--r--gcc/ada/einfo.ads2
-rw-r--r--gcc/ada/sem_ch13.adb6
4 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ada/einfo-utils.adb b/gcc/ada/einfo-utils.adb
index dad3a65..7fe5171 100644
--- a/gcc/ada/einfo-utils.adb
+++ b/gcc/ada/einfo-utils.adb
@@ -2105,8 +2105,8 @@ package body Einfo.Utils is
-- Number_Formals --
--------------------
- function Number_Formals (Id : E) return Pos is
- N : Int;
+ function Number_Formals (Id : E) return Nat is
+ N : Nat;
Formal : Entity_Id;
begin
diff --git a/gcc/ada/einfo-utils.ads b/gcc/ada/einfo-utils.ads
index fee771c..20ca470 100644
--- a/gcc/ada/einfo-utils.ads
+++ b/gcc/ada/einfo-utils.ads
@@ -227,7 +227,7 @@ package Einfo.Utils is
function Next_Stored_Discriminant (Id : E) return Entity_Id;
function Number_Dimensions (Id : E) return Pos;
function Number_Entries (Id : E) return Nat;
- function Number_Formals (Id : E) return Pos;
+ function Number_Formals (Id : E) return Nat;
function Object_Size_Clause (Id : E) return Node_Id;
function Parameter_Mode (Id : E) return Formal_Kind;
function Partial_Refinement_Constituents (Id : E) return L;
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index b356b76..d7690d9 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -3832,7 +3832,7 @@ package Einfo is
-- Number_Formals (synthesized)
-- Applies to subprograms and subprogram types. Yields the number of
--- formals as a value of type Pos.
+-- formals as a value of type Nat.
-- Object_Size_Clause (synthesized)
-- Applies to entities for types and subtypes. If an object size clause
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index 585c0f3..7cd0800 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -16544,7 +16544,11 @@ package body Sem_Ch13 is
It : Interp;
function Is_Property_Function (E : Entity_Id) return Boolean;
- -- Implements RM 7.3.4 definition of "property function".
+ -- Implements RM 7.3.4 definition of "property function"
+
+ --------------------------
+ -- Is_Property_Function --
+ --------------------------
function Is_Property_Function (E : Entity_Id) return Boolean is
begin