1 #include <stdio.h>
2 #include <stdlib.h>
3 
4 #define YCF_YIELD()
5 
6 
fun(char x)7 int fun(char x){
8   int y = 10;
9   int i = 0;
10   printf("BEFORE YCF_YIELD()\n");
11   y = y + x;/*y == 11*/
12   for (i = 0; i < 100; i++){
13     printf("ITER %d\n", i);
14     y = y + x;
15     YCF_YIELD();
16   }
17   printf("AFTER YCF_YIELD()\n");/*y == 111*/
18   y = y*3;
19   return y;/*y == 333*/
20 }
21 
main(int argc,const char * argv[])22 int main( int argc, const char* argv[] )
23 {
24 #ifdef YCF_YIELD_CODE_GENERATED
25   void* wb = NULL;
26 #endif
27   int ret = 0;
28 #ifdef YCF_YIELD_CODE_GENERATED
29   do{
30     ret = fun(1,&wb,1);
31     if(wb != NULL){
32       printf("TRAPPED\n");
33     }
34   }while(wb != NULL);
35 #else
36   fun(1);
37 #endif
38   printf("RETURNED %d\n", ret);
39   return 0;
40 }
41 
42 
43