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