aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch3.ads
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-07-20 15:18:34 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-07-20 15:18:34 +0200
commitff7139c31731ce5c68ee23ad3d3fee52f1b2bb52 (patch)
tree6d0d286c708ed3fff7533ab8f04416f1b91f3d68 /gcc/ada/sem_ch3.ads
parent6fb4cddeee68c3284e62389aadc9e505092c11a9 (diff)
downloadgcc-ff7139c31731ce5c68ee23ad3d3fee52f1b2bb52.zip
gcc-ff7139c31731ce5c68ee23ad3d3fee52f1b2bb52.tar.gz
gcc-ff7139c31731ce5c68ee23ad3d3fee52f1b2bb52.tar.bz2
[multiple changes]
2009-07-20 Vadim Godunko <godunko@adacore.com> * a-coorma.adb: Minor reformatting. 2009-07-20 Ed Schonberg <schonberg@adacore.com> * sem_ch3 (Build_Itype_Reference): Make public, for use on non-null access return types. * sem_ch6.adb (Analyze_Return_Type): If return is a not null subtype, provide an itype reference to gigi to force elaboration of the subtype at the proper point. 2009-07-20 Tristan Gingold <gingold@adacore.com> * g-expect.adb: Avoid closeing already closed handle. 2009-07-20 Robert Dewar <dewar@adacore.com> * sprint.adb (Write_Subprogram_Name): New procedure to output subprogram name with possible preceding $ (replaces Note_Implicit_Run_Time_Call). From-SVN: r149812
Diffstat (limited to 'gcc/ada/sem_ch3.ads')
-rw-r--r--gcc/ada/sem_ch3.ads15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch3.ads b/gcc/ada/sem_ch3.ads
index c8fc885..6c7dbaa 100644
--- a/gcc/ada/sem_ch3.ads
+++ b/gcc/ada/sem_ch3.ads
@@ -79,6 +79,21 @@ package Sem_Ch3 is
procedure Access_Type_Declaration (T : Entity_Id; Def : Node_Id);
-- Process an access type declaration
+ procedure Build_Itype_Reference
+ (Ityp : Entity_Id;
+ Nod : Node_Id);
+ -- Create a reference to an internal type, for use by Gigi. The back-end
+ -- elaborates itypes on demand, i.e. when their first use is seen. This
+ -- can lead to scope anomalies if the first use is within a scope that is
+ -- nested within the scope that contains the point of definition of the
+ -- itype. The Itype_Reference node forces the elaboration of the itype
+ -- in the proper scope. The node is inserted after Nod, which is the
+ -- enclosing declaration that generated Ityp.
+ --
+ -- A related mechanism is used during expansion, for itypes created in
+ -- branches of conditionals. See Ensure_Defined in exp_util.
+ -- Could both mechanisms be merged ???
+
procedure Check_Abstract_Overriding (T : Entity_Id);
-- Check that all abstract subprograms inherited from T's parent type
-- have been overridden as required, and that nonabstract subprograms