summaryrefslogtreecommitdiff
path: root/gcc/ada/expander.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/expander.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/expander.adb')
-rw-r--r--gcc/ada/expander.adb3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ada/expander.adb b/gcc/ada/expander.adb
index 1c732ce1398..91191941b16 100644
--- a/gcc/ada/expander.adb
+++ b/gcc/ada/expander.adb
@@ -204,6 +204,9 @@ package body Expander is
when N_Explicit_Dereference =>
Expand_N_Explicit_Dereference (N);
+ when N_Extended_Return_Statement =>
+ Expand_N_Extended_Return_Statement (N);
+
when N_Extension_Aggregate =>
Expand_N_Extension_Aggregate (N);