3 ms·
alloca(0) is used as a way to get the end of the stack. There's a bunch of fallback #ifdefs in the code: on platforms that don't have alloca, it detects the end
by FooBarWidget 15y ago
alloca(0) is used as a way to get the end of the stack. There's a bunch of fallback #ifdefs in the code: on platforms that don't have alloca, it detects the end of the stack by calling a forced-non-inline function which returns the address of its sole local variable, but that assumes that the compiler supports the 'noinline' keyword. In any case, all of versions depend on highly platform-specific behavior. See:
https://github.com/FooBarWidget/rubyenterpriseedition187-330/blob/mbari/gc.c#L567-570 https://github.com/FooBarWidget/rubyenterpriseedition187-330...
https://github.com/FooBarWidget/rubyenterpriseedition187-330/blob/mbari/rubysig.h#L210-269 https://github.com/FooBarWidget/rubyenterpriseedition187-330...