tcctest1-3 fail, but this appears to be due to bugs in GCC rather than TCC (from manual inspection of the output).
Showing the changes to include/stdarg.h (1 of 8 files). Show all
Unified · Split
| @@ -19,9 +19,9 @@ void __va_end(va_list ap); · 18 unmodified lines | |||
| 19 | 19 | ||
| 20 | #else /* _WIN64 */ | 20 | #else /* _WIN64 */ |
| 21 | typedef char *va_list; | 21 | typedef char *va_list; |
| 22 | #define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+7)&~7) | 22 | #define va_start(ap,last) __builtin_va_start(ap,last) |
| 23 | #define va_arg(ap,type) (ap += (sizeof(type)+7)&~7, *(type *)(ap - ((sizeof(type)+7)&~7))) | 23 | #define va_arg(ap,type) (ap += 8, sizeof(type)<=8 ? *(type*)ap : **(type**)ap) |
| 24 | #define va_copy(dest, src) (dest) = (src) | 24 | #define va_copy(dest, src) ((dest) = (src)) |
| 25 | #define va_end(ap) | 25 | #define va_end(ap) |
| 26 | #endif | 26 | #endif |
| 27 | 27 | ||