The following program (errno.c) reports errno=2 when run using "tcc -run errno.c" #include <errno.h> #include <stdio.h> int main(void) { printf("errno=%d\n", errno); return 0; }
Unified · Split
| @@ -127,6 +127,7 @@ LIBTCCAPI int tcc_run(TCCState *s1, int argc, char **argv) · 126 unmodified lines | |||
| 127 | for (i=0; i<argc; ++i) | 127 | for (i=0; i<argc; ++i) |
| 128 | bound_new_region(argv[i], strlen(argv[i])); | 128 | bound_new_region(argv[i], strlen(argv[i])); |
| 129 | 129 | ||
| 130 | errno = 0; /* clean errno value */ | ||
| 130 | ret = (*prog_main)(argc, argv); | 131 | ret = (*prog_main)(argc, argv); |
| 131 | 132 | ||
| 132 | /* unmark argv area */ | 133 | /* unmark argv area */ |
| @@ -137,7 +138,10 @@ LIBTCCAPI int tcc_run(TCCState *s1, int argc, char **argv) · 4 unmodified lines | |||
| 137 | bound_exit(); | 138 | bound_exit(); |
| 138 | } else | 139 | } else |
| 139 | #endif | 140 | #endif |
| 141 | { | ||
| 142 | errno = 0; /* clean errno value */ | ||
| 140 | ret = (*prog_main)(argc, argv); | 143 | ret = (*prog_main)(argc, argv); |
| 144 | } | ||
| 141 | return ret; | 145 | return ret; |
| 142 | } | 146 | } |
| 143 | 147 | ||