changeset 12:7c8d5d4074b8

cut return1 func
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Sun, 12 Jan 2014 19:18:38 +0900
parents 635eb6d562f0
children 89d24aeb122e
files struct_longjump.c
diffstat 1 files changed, 2 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/struct_longjump.c	Sat Dec 14 18:23:35 2013 +0900
+++ b/struct_longjump.c	Sun Jan 12 19:18:38 2014 +0900
@@ -1,5 +1,3 @@
-int setjmp(int*);
-int longjmp(int*,int);
 int printf(const char*,...);
 
 __code code1(int n,__code(*exit___code)(int,void *),void *exit_env){
@@ -7,34 +5,17 @@
   goto exit___code(n,exit_env);
 }
 
-__code return1 (int n,void* env){
-  printf("return1 : __return entry\n");
-  *(int*)((struct __CbC_env *)(env))->ret_p = n;
-  longjmp((((struct __CbC_env *)env)->env),1);
-}
+double aua;
 
 int main1 (){
-  __return;
-  __code (*___return)();
-  struct __CbC_env ___environment;
-  int i_buf[128];
-  int retval;
-  ___environment.ret_p = &retval;
-  ___environment.env = i_buf;
   printf("main1 : main1 entry\n");
-  if (setjmp(___environment.env)){
-    printf("main1 : main1 return\n");
-    return *((int *)___environment.ret_p);
-  }
-  __CbC_return = return1;
-  goto code1(30,__CbC_return,&___environment);
+  goto code1(30,__return,__environment);
   return 0;
 }
 
 int main (){
   int n;
   n = main1();
-  printf("returned\n");
   printf("return = %d\n",n);
   return 1;
 }