diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-31 17:54:50 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-31 17:54:50 +0000 |
commit | 0326143c40c1671c2ace9370e1a79d29db3717c6 (patch) | |
tree | 739ad4aa947a7e50224a09d6456a53c48457b96d /gcc/ada/exp_ch5.ads | |
parent | e8ccec48cdf6cbcb6e8bcba6da7448401931cf21 (diff) | |
download | gcc-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_ch5.ads')
-rw-r--r-- | gcc/ada/exp_ch5.ads | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/gcc/ada/exp_ch5.ads b/gcc/ada/exp_ch5.ads index 04589278e52..a052a84d6fc 100644 --- a/gcc/ada/exp_ch5.ads +++ b/gcc/ada/exp_ch5.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-1999, 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- -- @@ -29,12 +29,13 @@ with Types; use Types; package Exp_Ch5 is - procedure Expand_N_Assignment_Statement (N : Node_Id); - procedure Expand_N_Block_Statement (N : Node_Id); - procedure Expand_N_Case_Statement (N : Node_Id); - procedure Expand_N_Exit_Statement (N : Node_Id); - procedure Expand_N_Goto_Statement (N : Node_Id); - procedure Expand_N_If_Statement (N : Node_Id); - procedure Expand_N_Loop_Statement (N : Node_Id); - procedure Expand_N_Return_Statement (N : Node_Id); + procedure Expand_N_Assignment_Statement (N : Node_Id); + procedure Expand_N_Block_Statement (N : Node_Id); + procedure Expand_N_Case_Statement (N : Node_Id); + procedure Expand_N_Exit_Statement (N : Node_Id); + procedure Expand_N_Extended_Return_Statement (N : Node_Id); + procedure Expand_N_Goto_Statement (N : Node_Id); + procedure Expand_N_If_Statement (N : Node_Id); + procedure Expand_N_Loop_Statement (N : Node_Id); + procedure Expand_N_Return_Statement (N : Node_Id); end Exp_Ch5; |