aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2010-10-25 10:35:07 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-10-25 10:35:07 +0000
commit35a382b82d0c7a65e5974298af5b32a003ea1fcf (patch)
tree8cc3581d1da42f9345f072e15d0748dc2e860814 /gcc/ada/ChangeLog
parent7fa2619a2ff66d8c8100554d33ad1ebb046c295e (diff)
downloadgcc-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/ChangeLog16
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.