/* This is a test program from Lee Kindness which used to fail on V
because gcc implements the nested function mumbo jumbo using self
modifying code on the stack, at least on x86 and amd64. It now
works transparently because by default V now generates
self-checking translations for translations taken from stack-like
segments.
*/
#include <stdio.h>
static void call_func(void (*sel)(void))
{
sel();
}
void test1()
{
void test1_inner()
{
printf( "Inside test1\n" );
}
call_func( test1_inner );
}
void test2()
{
void test2_inner()
{
printf( "Inside test2\n" );
}
call_func( test2_inner );
}
int main(int argc, char** argv)
{
test1();
test2();
return( 0 );
}