Home | History | Annotate | Download | only in tests
      1 
      2 /* This is a test program from Lee Kindness which used to fail on V
      3    because gcc implements the nested function mumbo jumbo using self
      4    modifying code on the stack, at least on x86 and amd64.  It now
      5    works transparently because by default V now generates
      6    self-checking translations for translations taken from stack-like
      7    segments.
      8 */
      9 
     10 #include <stdio.h>
     11 
     12  static void call_func(void (*sel)(void))
     13  {
     14     sel();
     15  }
     16 
     17  void test1()
     18  {
     19     void test1_inner()
     20     {
     21        printf( "Inside test1\n" );
     22     }
     23     call_func( test1_inner );
     24  }
     25 
     26  void test2()
     27  {
     28     void test2_inner()
     29     {
     30        printf( "Inside test2\n" );
     31     }
     32     call_func( test2_inner );
     33  }
     34 
     35  int main(int argc, char** argv)
     36  {
     37     test1();
     38     test2();
     39     return( 0 );
     40  }
     41 
     42