* gcc-interface/trans.c (create_temporary): New function taken from...
commit818a5be58e6c3e5ad94ff78e8caf8d37ff52d5c0
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2011 10:04:08 +0000 (23 10:04 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2011 10:04:08 +0000 (23 10:04 +0000)
tree95fb7ad60a335d8a7918afcbb3f27c23c4dc83b2
parentd7b3fc5be61db4472e5ba5b59288cf1fc1ea29fc
* gcc-interface/trans.c (create_temporary): New function taken from...
(create_init_temporary): ...here.  Call it.
(call_to_gnu): Create the temporary for the return value early, if any.
Create it for a function with copy-in/copy-out parameters if there is
no target; in other cases of copy-in/copy-out, use another temporary.
Push the new binding level lazily.  Add and rename local variables.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171345 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/discr26.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/discr26.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/discr26_pkg.ads [new file with mode: 0644]