]> git.ipfire.org Git - thirdparty/gcc.git/commit
exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
authorBob Duff <duff@adacore.com>
Tue, 31 Oct 2006 17:54:50 +0000 (18:54 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 31 Oct 2006 17:54:50 +0000 (18:54 +0100)
commit9e5ac75fe2ea2e33a9f0cfa512d0567cad12272d
tree739ad4aa947a7e50224a09d6456a53c48457b96d
parent20b5d666e7c8f05951fa54942a24174e600f8884
exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.

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.

From-SVN: r118258
gcc/ada/exp_ch11.adb
gcc/ada/exp_ch5.adb
gcc/ada/exp_ch5.ads
gcc/ada/expander.adb