/* 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 ); }