aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-08-01 12:11:16 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2014-08-01 12:11:16 +0200
commit798595680bb04dc570d2d6a46322c35c0de3e482 (patch)
treeb1cfe6c1959226b884c158d9f1557fc69342eefc /gcc/ada
parent3fe5ceadbbeb824a498db96fc7ee40faed0b45f3 (diff)
downloadgcc-798595680bb04dc570d2d6a46322c35c0de3e482.zip
gcc-798595680bb04dc570d2d6a46322c35c0de3e482.tar.gz
gcc-798595680bb04dc570d2d6a46322c35c0de3e482.tar.bz2
[multiple changes]
2014-08-01 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the assertion check as the attribute is defined for all entities. (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion check as the attribute is defined for all entities. * einfo.ads Update the documentation of attribute Is_Hidden_Non_Overridden_Subprogram. * sem_ch7.adb (Install_Package_Entity): No need to check the entity kind of the Id. * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on usage. Ensure that the homographs are of the same entity kind and not fully conformant. (Hide_Non_Overridden_Subprograms): Update the comment on usage. 2014-08-01 Robert Dewar <dewar@adacore.com> * inline.adb: Minor code reorganization. * sem_ch12.adb, s-tasdeb.ads: Minor reformatting. From-SVN: r213445
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog20
-rw-r--r--gcc/ada/einfo.adb2
-rw-r--r--gcc/ada/einfo.ads6
-rw-r--r--gcc/ada/inline.adb9
-rw-r--r--gcc/ada/s-tasdeb.ads8
-rw-r--r--gcc/ada/sem_ch12.adb9
-rw-r--r--gcc/ada/sem_ch13.adb20
-rw-r--r--gcc/ada/sem_ch7.adb4
8 files changed, 47 insertions, 31 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index cd23166..444d4f7 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,23 @@
+2014-08-01 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the
+ assertion check as the attribute is defined for all entities.
+ (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion
+ check as the attribute is defined for all entities.
+ * einfo.ads Update the documentation of attribute
+ Is_Hidden_Non_Overridden_Subprogram.
+ * sem_ch7.adb (Install_Package_Entity): No need to check the
+ entity kind of the Id.
+ * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on
+ usage. Ensure that the homographs are of the same entity kind
+ and not fully conformant.
+ (Hide_Non_Overridden_Subprograms): Update the comment on usage.
+
+2014-08-01 Robert Dewar <dewar@adacore.com>
+
+ * inline.adb: Minor code reorganization.
+ * sem_ch12.adb, s-tasdeb.ads: Minor reformatting.
+
2014-08-01 Robert Dewar <dewar@adacore.com>
* inline.adb, s-os_lib.ads: Minor reformatting.
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index 7e0eaaa..3b5219b 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -2068,7 +2068,6 @@ package body Einfo is
function Is_Hidden_Non_Overridden_Subprogram (Id : E) return B is
begin
- pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
return Flag2 (Id);
end Is_Hidden_Non_Overridden_Subprogram;
@@ -4850,7 +4849,6 @@ package body Einfo is
procedure Set_Is_Hidden_Non_Overridden_Subprogram (Id : E; V : B := True) is
begin
- pragma Assert (Ekind_In (Id, E_Function, E_Procedure));
Set_Flag2 (Id, V);
end Set_Is_Hidden_Non_Overridden_Subprogram;
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index 11f6122..18de39f 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -2423,9 +2423,9 @@ package Einfo is
-- Private_Declaration in sem_ch7).
-- Is_Hidden_Non_Overridden_Subprogram (Flag2)
--- Defined in all entities. Set for implicitly declared non-generic
--- subprograms that require overriding or are null procedures, and are
--- hidden by a non-conformant homograph with the same characteristics
+-- Defined in all entities. Set for implicitly declared subprograms
+-- that require overriding or are null procedures, and are hidden by
+-- a non-fully conformant homograph with the same characteristics
-- (Ada RM 8.3 12.3/2).
-- Is_Hidden_Open_Scope (Flag171)
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index 36631c2..c2865ea 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -1239,11 +1239,10 @@ package body Inline is
and then Msg (Msg'First .. Msg'First + 12) = "cannot inline"
then
declare
- Len1 : constant Positive := 13;
- -- Length of "cannot inline"
-
- Len2 : constant Positive := 31;
- -- Length of "info: no contextual analysis of"
+ Len1 : constant Positive :=
+ String (String'("cannot inline"))'Length;
+ Len2 : constant Positive :=
+ String (String'("info: no contextual analysis of"))'Length;
New_Msg : String (1 .. Msg'Length + Len2 - Len1);
diff --git a/gcc/ada/s-tasdeb.ads b/gcc/ada/s-tasdeb.ads
index 4302fde..e0bd0c1 100644
--- a/gcc/ada/s-tasdeb.ads
+++ b/gcc/ada/s-tasdeb.ads
@@ -153,13 +153,13 @@ package System.Tasking.Debug is
(Dependent : Task_Id;
Parent : Task_Id;
Master_Level : Integer);
- -- Indicate to Valgrind/Helgrind that the master of Dependent
- -- is Parent + Master_Level.
+ -- Indicate to Valgrind/Helgrind that the master of Dependent is
+ -- Parent + Master_Level.
procedure Master_Completed_Hook
(Self_ID : Task_Id;
Master_Level : Integer);
- -- Indicate to Valgrind/Helgrind that Self_ID has completed
- -- the master Master_Level.
+ -- Indicate to Valgrind/Helgrind that Self_ID has completed the master
+ -- Master_Level.
end System.Tasking.Debug;
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index 3c78376..6bcc3a1 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -1674,10 +1674,9 @@ package body Sem_Ch12 is
Present
(Get_First_Parent_With_Ext_Axioms_For_Entity
(Defining_Entity (Analyzed_Formal)))
- and then Ekind (Defining_Entity (Analyzed_Formal))
- = E_Function
+ and then Ekind (Defining_Entity (Analyzed_Formal)) =
+ E_Function
then
-
-- If actual is an entity (function or operator),
-- build wrapper for it.
@@ -1700,8 +1699,8 @@ package body Sem_Ch12 is
-- Ditto if formal is an operator with a default.
elsif Box_Present (Formal)
- and then Nkind (Defining_Entity (Analyzed_Formal))
- = N_Defining_Operator_Symbol
+ and then Nkind (Defining_Entity (Analyzed_Formal)) =
+ N_Defining_Operator_Symbol
then
Append_To (Assoc,
Build_Wrapper
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index e0222b7..06d5752 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -9936,7 +9936,8 @@ package body Sem_Ch13 is
procedure Freeze_Entity_Checks (N : Node_Id) is
procedure Hide_Non_Overridden_Subprograms (Typ : Entity_Id);
-- Inspect the primitive operations of type Typ and hide all pairs of
- -- implicitly declared non-overridden homographs (Ada RM 8.3 12.3/2).
+ -- implicitly declared non-overridden non-fully conformant homographs
+ -- (Ada RM 8.3 12.3/2).
-------------------------------------
-- Hide_Non_Overridden_Subprograms --
@@ -9947,9 +9948,9 @@ package body Sem_Ch13 is
(Subp_Id : Entity_Id;
Start_Elmt : Elmt_Id);
-- Inspect a list of primitive operations starting with Start_Elmt
- -- and find matching implicitly declared non-overridden homographs
- -- of Subp_Id. If found, all matches along with Subp_Id are hidden
- -- from all visibility.
+ -- and find matching implicitly declared non-overridden non-fully
+ -- conformant homographs of Subp_Id. If found, all matches along
+ -- with Subp_Id are hidden from all visibility.
function Is_Non_Overridden_Or_Null_Procedure
(Subp_Id : Entity_Id) return Boolean;
@@ -9973,11 +9974,12 @@ package body Sem_Ch13 is
Prim := Node (Prim_Elmt);
-- The current primitive is implicitly declared non-overridden
- -- homograph of Subp_Id. Hide both subprograms from visibility.
+ -- non-fully conformant homograph of Subp_Id. Both subprograms
+ -- must be hidden from visibility.
if Chars (Prim) = Chars (Subp_Id)
- and then Ekind (Prim) = Ekind (Subp_Id)
and then Is_Non_Overridden_Or_Null_Procedure (Prim)
+ and then not Fully_Conformant (Prim, Subp_Id)
then
Set_Is_Hidden_Non_Overridden_Subprogram (Prim);
Set_Is_Immediately_Visible (Prim, False);
@@ -10034,8 +10036,8 @@ package body Sem_Ch13 is
-- Start of processing for Hide_Non_Overridden_Subprograms
begin
- -- Inspect the list of primitives looking for a non-overriding
- -- inherited null procedure.
+ -- Inspect the list of primitives looking for non-overridden
+ -- subprograms.
if Present (Prim_Ops) then
Prim_Elmt := First_Elmt (Prim_Ops);
@@ -10106,7 +10108,7 @@ package body Sem_Ch13 is
-- abstract subprograms, null procedures and subprograms that require
-- overriding. If this set contains fully conformat homographs, then one
-- is chosen arbitrarily (already done during resolution), otherwise all
- -- remaining non-conformant homographs must be hidden from visibility
+ -- remaining non-fully conformant homographs are hidden from visibility
-- (Ada RM 8.3 12.3/2).
if Is_Tagged_Type (E) then
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index 28a8516a..5f110ec 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -1986,9 +1986,7 @@ package body Sem_Ch7 is
-- a tagged type back into visibility if they have non-conformant
-- homographs (Ada RM 8.3 12.3/2).
- elsif Ekind_In (Id, E_Function, E_Procedure)
- and then Is_Hidden_Non_Overridden_Subprogram (Id)
- then
+ elsif Is_Hidden_Non_Overridden_Subprogram (Id) then
null;
else