aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch4.adb
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2011-08-02 14:41:13 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 16:41:13 +0200
commit9732e886ede167840b8d8c0302314df336be38e7 (patch)
treeda702c5ed32a3bb7f2b98f32918a110fe1e52652 /gcc/ada/exp_ch4.adb
parente526d0c765b77d4f41ce36ef42eda5a12c275e15 (diff)
downloadgcc-9732e886ede167840b8d8c0302314df336be38e7.zip
gcc-9732e886ede167840b8d8c0302314df336be38e7.tar.gz
gcc-9732e886ede167840b8d8c0302314df336be38e7.tar.bz2
exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data record of all the tagged types declared...
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. From-SVN: r177163
Diffstat (limited to 'gcc/ada/exp_ch4.adb')
-rw-r--r--gcc/ada/exp_ch4.adb11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb
index e92e106..ebf1a38 100644
--- a/gcc/ada/exp_ch4.adb
+++ b/gcc/ada/exp_ch4.adb
@@ -8606,16 +8606,19 @@ package body Exp_Ch4 is
-- Start of processing for Tagged_Conversion
begin
- if Is_Access_Type (Target_Type) then
-
- -- Handle entities from the limited view
+ -- Handle entities from the limited view
+ if Is_Access_Type (Operand_Type) then
Actual_Op_Typ :=
Available_View (Designated_Type (Operand_Type));
+ else
+ Actual_Op_Typ := Operand_Type;
+ end if;
+
+ if Is_Access_Type (Target_Type) then
Actual_Targ_Typ :=
Available_View (Designated_Type (Target_Type));
else
- Actual_Op_Typ := Operand_Type;
Actual_Targ_Typ := Target_Type;
end if;