if (!p) { \
gpr[2] = -1; \
gpr[3] = EFAULT; \
- goto uhi_done; \
+ return; \
} \
} while (0)
if (!p) { \
gpr[2] = -1; \
gpr[3] = EFAULT; \
- goto uhi_done; \
+ return; \
} \
p2 = lock_user_string(addr2); \
if (!p2) { \
unlock_user(p, addr, 0); \
gpr[2] = -1; \
gpr[3] = EFAULT; \
- goto uhi_done; \
+ return; \
} \
} while (0)
if (gpr[4] < 3) {
/* ignore closing stdin/stdout/stderr */
gpr[2] = 0;
- goto uhi_done;
+ return;
}
gpr[2] = close(gpr[4]);
gpr[3] = errno_mips(errno);
gpr[2] = fstat(gpr[4], &sbuf);
gpr[3] = errno_mips(errno);
if (gpr[2]) {
- goto uhi_done;
+ return;
}
gpr[2] = copy_stat_to_target(env, &sbuf, gpr[5]);
gpr[3] = errno_mips(errno);
case UHI_argnlen:
if (gpr[4] >= semihosting_get_argc()) {
gpr[2] = -1;
- goto uhi_done;
+ return;
}
gpr[2] = strlen(semihosting_get_arg(gpr[4]));
break;
case UHI_argn:
if (gpr[4] >= semihosting_get_argc()) {
gpr[2] = -1;
- goto uhi_done;
+ return;
}
gpr[2] = copy_argn_to_target(env, gpr[4], gpr[5]);
break;
fprintf(stderr, "Unknown UHI operation %d\n", op);
abort();
}
-uhi_done:
return;
}