From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: How do typical Ada calling conventions work ? Date: Mon, 31 Aug 2015 18:01:26 -0500 Organization: JSA Research & Innovation Message-ID: References: <2a592336-034f-4483-9aed-b5a1d997f902@googlegroups.com> <2541f7b7-b728-421b-96cf-e0d656e984a2@googlegroups.com> <55dbfddd$0$20676$862e30e2@ngroups.net> NNTP-Posting-Host: rrsoftware.com X-Trace: loke.gir.dk 1441062086 8458 24.196.82.226 (31 Aug 2015 23:01:26 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Mon, 31 Aug 2015 23:01:26 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: news.eternal-september.org comp.lang.ada:27654 Date: 2015-08-31T18:01:26-05:00 List-Id: "Per Sandberg" wrote in message news:55dbfddd$0$20676$862e30e2@ngroups.net... ... > If you want to use a function "returning" large or limited objects you > could always use the "extended return" where the returned object will be > created in place. > > type large_or_limited is ....; > function my_function return large_or_limited is > begin > return ret : large_or_limited do > do_what_you_need; > end return; > end my_function; As noted by Christophe, the syntax of a return statement has no effect on how objects are returned. The compiler might use build-in-place semantics for all returns or none; it's only required for inherently limited objects. It's highly unlikely that a compiler would act differently for extended returns rather than simple returns, because that would make calls dependent on the contents of the body. Randy.