aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_intr.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2015-05-12 11:17:45 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2015-05-12 11:17:45 +0200
commit7c4d86c9ccbafef2cdfd92f3b6f382aa498a2c83 (patch)
tree9c5f6b35112479602cf10952306f0ad6ef2c3ef9 /gcc/ada/exp_intr.adb
parent0d780006d49eadebc93e0b7ad4cd56a8d0eb3125 (diff)
downloadgcc-7c4d86c9ccbafef2cdfd92f3b6f382aa498a2c83.zip
gcc-7c4d86c9ccbafef2cdfd92f3b6f382aa498a2c83.tar.gz
gcc-7c4d86c9ccbafef2cdfd92f3b6f382aa498a2c83.tar.bz2
[multiple changes]
2015-05-12 Pierre-Marie de Rodat <derodat@adacore.com> * exp_pakd.adb: Make clearer the comment in exp_pakd.adb about ___XP suffixes. 2015-05-12 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sem_util.adb, sem_ch6.adb: Minor reformatting. 2015-05-12 Robert Dewar <dewar@adacore.com> * exp_unst.adb (Visit_Node): Deal with subprogram and package stubs. 2015-05-12 Ed Schonberg <schonberg@adacore.com> * exp_intr.adb (Expand_Dispatching_Constructor_Call): The tag to be retrieved for the generated call is the first entry in the dispatch table for the return type of the instantiated constructor. 2015-05-12 Bob Duff <duff@adacore.com> * exp_ch7.adb, exp_ch7.ads, exp_intr.adb, exp_util.adb, exp_util.ads: Update comments. From-SVN: r223050
Diffstat (limited to 'gcc/ada/exp_intr.adb')
-rw-r--r--gcc/ada/exp_intr.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/exp_intr.adb b/gcc/ada/exp_intr.adb
index 9bda8aa..7e68600 100644
--- a/gcc/ada/exp_intr.adb
+++ b/gcc/ada/exp_intr.adb
@@ -345,6 +345,9 @@ package body Exp_Intr is
begin
pragma Assert (not Is_Interface (Etype (Tag_Arg)));
+ -- The tag is the first entry in the dispatch table of the
+ -- return type of the constructor.
+
Iface_Tag :=
Make_Object_Declaration (Loc,
Defining_Identifier => Make_Temporary (Loc, 'V'),
@@ -357,7 +360,7 @@ package body Exp_Intr is
Relocate_Node (Tag_Arg),
New_Occurrence_Of
(Node (First_Elmt (Access_Disp_Table
- (Etype (Etype (Act_Constr))))),
+ (Etype (Act_Constr)))),
Loc))));
Insert_Action (N, Iface_Tag);
end;