]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/none/tests/nestedfns.c
Inital import
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / none / tests / nestedfns.c
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