]> git.ipfire.org Git - thirdparty/gcc.git/commit
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 Apr 2012 09:23:01 +0000 (11:23 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 Apr 2012 09:23:01 +0000 (11:23 +0200)
commita429e6b3c30e3d917f1e1145146b18d57607cf58
tree9c441de71e752a3df9cf6bc42e11a24f3e70edda
parente228f7eed275e585d48c92dc87bde3dd0784e4d2
[multiple changes]

2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch7.adb (Process_Declarations): Detect a case where
a source object was initialized by another source object,
but the expression was rewritten as a class-wide conversion
of Ada.Tags.Displace.
* exp_util.adb (Initialized_By_Ctrl_Function): Removed.
(Is_Controlled_Function_Call): New routine.
(Is_Displacement_Of_Ctrl_Function_Result): Removed.
(Is_Displacement_Of_Object_Or_Function_Result): New routine.
(Is_Source_Object): New routine.
(Requires_Cleanup_Actions): Detect a case where a source object was
initialized by another source object, but the expression was rewritten
as a class-wide conversion of Ada.Tags.Displace.
* exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
(Is_Displacement_Of_Object_Or_Function_Result): New routine.

2012-04-02  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Call): A call to an expression function
does not freeze if it appears in a different scope from the
expression function itself. Such calls appear in the generated
bodies of other expression functions, or in pre/postconditions
of subsequent subprograms.

From-SVN: r186071
gcc/ada/ChangeLog
gcc/ada/exp_ch7.adb
gcc/ada/exp_util.adb
gcc/ada/exp_util.ads
gcc/ada/sem_res.adb