diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-10-25 10:35:07 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-10-25 10:35:07 +0000 |
commit | 35a382b82d0c7a65e5974298af5b32a003ea1fcf (patch) | |
tree | 8cc3581d1da42f9345f072e15d0748dc2e860814 /gcc/ada/ChangeLog | |
parent | 7fa2619a2ff66d8c8100554d33ad1ebb046c295e (diff) | |
download | gcc-35a382b82d0c7a65e5974298af5b32a003ea1fcf.zip gcc-35a382b82d0c7a65e5974298af5b32a003ea1fcf.tar.gz gcc-35a382b82d0c7a65e5974298af5b32a003ea1fcf.tar.bz2 |
decl.c (gnat_to_gnu_entity, [...]): Allow In Out/Out parameters for functions.
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow
In Out/Out parameters for functions.
* gcc-interface/trans.c (gnu_return_var_stack): New variable.
(create_init_temporary): New static function.
(Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions.
(call_to_gnu): Likewise. Use create_init_temporary in order to create
temporaries for unaligned parameters and return value. If there is an
unaligned In Out or Out parameter passed by reference, push a binding
level if not already done. If a binding level has been pushed and the
call is returning a value, create the call statement.
(gnat_to_gnu) <N_Return_Statement>: Handle In Out/Out parameters for
functions.
From-SVN: r165914
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r-- | gcc/ada/ChangeLog | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 22b8675..7d3f160 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,19 @@ +2010-10-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow + In Out/Out parameters for functions. + * gcc-interface/trans.c (gnu_return_var_stack): New variable. + (create_init_temporary): New static function. + (Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions. + (call_to_gnu): Likewise. Use create_init_temporary in order to create + temporaries for unaligned parameters and return value. If there is an + unaligned In Out or Out parameter passed by reference, push a binding + level if not already done. If a binding level has been pushed and the + call is returning a value, create the call statement. + (gnat_to_gnu) <N_Return_Statement>: Handle In Out/Out parameters for + functions. + 2010-10-22 Ben Brosgol <brosgol@adacore.com> * gnat_rm.texi: Add chapter on Ada 2012 support. |