code cs(code (*ret)(int)) { goto ret(2); } int funcB() { code (*ret)(int); ret = __return; /* do something. */ goto cs(ret); /* never reached. */ return -1; } void funcA() { int t; t = funcB(); printf("t=%d\n", t); /* t should not be -1 but 2. */ }