summaryrefslogtreecommitdiff
path: root/gcc/ada/sem_disp.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-13 08:47:36 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-13 08:47:36 +0000
commitd56d85256c52cec518357fe0e2eca62267b1d796 (patch)
treee09534cd9d79590d1e339f466ffb1b69ef387d68 /gcc/ada/sem_disp.adb
parenta32d68e2f431d5682415ab5db409bffc70af4833 (diff)
downloadgcc-d56d85256c52cec518357fe0e2eca62267b1d796.tar.gz
2009-07-13 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not attempt to generate stubs for predefined primitives of synchronized interfaces. (Add_Stub_Type): Factor some code from the PCS-specific variants of Build_Stub_Type. 2009-07-13 Ed Schonberg <schonberg@adacore.com> * sem_disp.adb (Override_Dispatching_Operation): Functions inherit the Controlling_Result flag from the operation they override. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149553 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_disp.adb')
-rw-r--r--gcc/ada/sem_disp.adb4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ada/sem_disp.adb b/gcc/ada/sem_disp.adb
index f56fd8a8958..f64df6f9823 100644
--- a/gcc/ada/sem_disp.adb
+++ b/gcc/ada/sem_disp.adb
@@ -1775,10 +1775,12 @@ package body Sem_Disp is
-- even if non-dispatching, and a call from inside calls the
-- overriding operation because it hides the implicit one. To
-- indicate that the body of Prev_Op is never called, set its
- -- dispatch table entity to Empty.
+ -- dispatch table entity to Empty. If the overridden operation
+ -- has a dispatching result, so does the overriding one.
Set_Alias (Prev_Op, New_Op);
Set_DTC_Entity (Prev_Op, Empty);
+ Set_Has_Controlling_Result (New_Op, Has_Controlling_Result (Prev_Op));
return;
end if;
end Override_Dispatching_Operation;