comp.lang.ada
 help / color / mirror / Atom feed
* Implementation or LRM driven
@ 1992-12-22 12:42 Brandon
  0 siblings, 0 replies; only message in thread
From: Brandon @ 1992-12-22 12:42 UTC (permalink / raw)


I have been trying to determine any rules either in AI's, LRM or other sources
in how a compiler is permitted to allocate/deallocate return values for functio
ns.

When the information is returned from a function some space must be allocated, 
and placed on the call stack.  In the case of a function returning a non-scalar
when MUST that space be deallocated (or can an implemenation lose it).  I've
seen many cases and can not find a specific rule.

As a second question, in this example:
	subtype MYSTR is STRING(1..50);
	function Str(X: in INTEGER) return MYSTR;

	X: BUFFER(1..200);
	X := Str(1) & Str(2) & Str(3) & Str(4);    <---- here

	During the "&" operations being called is the memory being
	used 50+50+100+50+150+50+200 = 650 allowably, unavoidable, or
	completely implementation dependent.

Any references would be appreciated

-- 
Office Automation, n.:
	The use of computers to improve efficiency by removing anyone
	you would want to talk with over coffee.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1992-12-22 12:42 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1992-12-22 12:42 Implementation or LRM driven Brandon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox