diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-02 14:41:13 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-02 14:41:13 +0000 |
commit | 87d6f1a47daa6fc5d56bcf76f6d6d7e3e6c08294 (patch) | |
tree | da702c5ed32a3bb7f2b98f32918a110fe1e52652 /gcc/ada/exp_disp.ads | |
parent | 4a473cb984ee38140d0b05541e95a90f6507c95b (diff) | |
download | gcc-87d6f1a47daa6fc5d56bcf76f6d6d7e3e6c08294.tar.gz |
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
record of all the tagged types declared inside library level package
declarations, library level package bodies or library level subprograms.
* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
associated with a given tagged type.
(Build_VM_TSDs): New subprogram.
* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
compilation units that are subprograms.
* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
compilation units that are package bodies.
(Expand_N_Package_Declaration): Generate TSDs of the main compilation
units that are a package declaration or a package instantiation.
* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
reorganization to improve the error generated by the frontend when the
function Ada.Tags.Secondary_Tag is not available.
* rtsfind.ads (RE_Register_TSD): New runtime entity.
* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177163 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_disp.ads')
-rw-r--r-- | gcc/ada/exp_disp.ads | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ada/exp_disp.ads b/gcc/ada/exp_disp.ads index d2dd7760dda..82a9d9abc15 100644 --- a/gcc/ada/exp_disp.ads +++ b/gcc/ada/exp_disp.ads @@ -186,6 +186,11 @@ package Exp_Disp is -- bodies they are added to the end of the list of declarations of the -- package body. + procedure Build_VM_TSDs (N : Entity_Id); + -- N is a library level package declaration, a library level package body + -- or a library level subprogram body. Build the runtime Type Specific + -- Data record of all the tagged types declared inside N. + function Convert_Tag_To_Interface (Typ : Entity_Id; Expr : Node_Id) return Node_Id; pragma Inline (Convert_Tag_To_Interface); |