summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch11.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-31 17:54:50 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-31 17:54:50 +0000
commit0326143c40c1671c2ace9370e1a79d29db3717c6 (patch)
tree739ad4aa947a7e50224a09d6456a53c48457b96d /gcc/ada/exp_ch11.adb
parente8ccec48cdf6cbcb6e8bcba6da7448401931cf21 (diff)
downloadgcc-0326143c40c1671c2ace9370e1a79d29db3717c6.tar.gz
2006-10-31 Bob Duff <duff@adacore.com>
Robert Dewar <dewar@adacore.com> Gary Dismukes <dismukes@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure. * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range (Expand_N_Assignment_Statement): Call Make_Build_In_Place_Call_In_Assignment if the right-hand side is a build-in-place function call. Currently, this can happen only for assignments that come from aggregates. Add -gnatd.l --Use Ada 95 semantics for limited function returns, in order to alleviate the upward compatibility introduced by AI-318. (Expand_N_Extended_Return_Statement): Add support for handling the return object as a build-in-place result. (Expand_Non_Function_Return): Implement simple return statements nested within an extended return. (Enable_New_Return_Processing): Turn on the new processing of return statements. (Expand_Non_Function_Return): For a return within an extended return, don't raise Program_Error, because Sem_Ch6 now gives a warning. (Expand_N_Extended_Return_Statement): Implement AI-318 (Expand_Simple_Function_Return): Ditto. (Expand_N_If_Statement): Handle new -gnatwt warning (Expand_N_Case_Statement): Handle new -gnatwt warning (Expand_N_Assignment): Handle assignment to the Priority attribute of a protected object. (Expand_N_Assignment_Statement): Implement -gnatVe/E to control validity checking of assignments to elementary record components. (Expand_N_Return_Statement): return Class Wide types on the secondary stack independantly of their controlled status since with HIE runtimes, class wide types are not potentially controlled anymore. * expander.adb (Expand): Add case for new N_Extended_Return_Statement node kind. * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because it expects a block, procedure, or task. The return statement will get turned into a block, and Expand_Cleanup_Actions will happen then. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118258 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch11.adb')
-rw-r--r--gcc/ada/exp_ch11.adb3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch11.adb b/gcc/ada/exp_ch11.adb
index 56c3095b2df..2312f504dd7 100644
--- a/gcc/ada/exp_ch11.adb
+++ b/gcc/ada/exp_ch11.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -485,6 +485,7 @@ package body Exp_Ch11 is
if Nkind (Parent (N)) /= N_Package_Body
and then Nkind (Parent (N)) /= N_Accept_Statement
+ and then Nkind (Parent (N)) /= N_Extended_Return_Statement
and then not Delay_Cleanups (Current_Scope)
then
Expand_Cleanup_Actions (Parent (N));