I sent the following to Olivier, but forgot to CC this list.

Ioannis

------------------------------------------------------------

Hello,

 Well, it depends :)

 Would __builtin_stack_size (F) retrieve information about F's stack frame
 only, or would it also recursively account for every other function that
 F may call ?

 Implementing the former is probably possible, though I'm not sure
exactly how useful it would be.

I agree that the former is probably not very useful. If a function is
set to run as a thread and it calls other functions, the stack required
for those functions should be accounted for. Probably the second option
is much more useful.

I had a look here:

http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Static-Stack-Usage-Analysis.html

I think that the best would be __builtin_stack_size(F) to return what is
described as "dynamic" and "bounded" in the above link. Maybe a return
value of -1 could be used to mean that it was not possible to retrieve
this information. A library could then use a default, bigger stack for
that thread.

Except from recursive functions, what are the other cases where the
above size cannot be computed statically?

Ioannis


Reply via email to