1 #include <stdio.h>
2 #include <stdlib.h>
3 
4 void* ycf_debug_global_stack_top_ptr = NULL;
ycf_debug_get_stack_start()5 void* ycf_debug_get_stack_start(){
6     return ycf_debug_global_stack_top_ptr;
7 }
8 
9 #define YCF_YIELD()
10 
fun()11 int fun(){
12   int array[1];
13   int* ptr;
14   array[0] = 1;
15   ptr = &array[0];
16   (void)ptr;
17   YCF_YIELD();
18   array[0] = 1;
19   return array[0];
20 }
21 
allocator(size_t size,void * context)22 void* allocator(size_t size, void* context){
23   (void)context;
24   return malloc(size);
25 }
26 
freer(void * data,void * context)27 void freer(void* data, void* context){
28   (void)context;
29   free(data);
30 }
31 
main(int argc,const char * argv[])32 int main( int argc, const char* argv[] )
33 {
34 #ifdef YCF_YIELD_CODE_GENERATED
35   void* wb = NULL;
36   long nr_of_reductions = 1;
37 #endif
38   int ret = 0;
39 #ifdef YCF_YIELD_CODE_GENERATED
40   do{
41     ret = fun_ycf_gen_yielding(&nr_of_reductions,&wb,NULL,allocator,freer,NULL,0,NULL);
42     if(wb != NULL){
43       printf("TRAPPED\n");
44     }
45   }while(wb != NULL);
46   if(wb != NULL){
47     free(wb);
48   }
49 #else
50   fun();
51 #endif
52   printf("RETURNED %d\n", ret);
53   if(ret != 1){
54     return 1;
55   }else{
56     return 0;
57   }
58 }
59 
60