diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-05-12 11:17:45 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-05-12 11:17:45 +0200 |
commit | 7c4d86c9ccbafef2cdfd92f3b6f382aa498a2c83 (patch) | |
tree | 9c5f6b35112479602cf10952306f0ad6ef2c3ef9 /gcc/ada/exp_intr.adb | |
parent | 0d780006d49eadebc93e0b7ad4cd56a8d0eb3125 (diff) | |
download | gcc-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.adb | 5 |
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; |