stdarg-builtin-aliases.after (1028B)
1 typedef va_list __gnuc_va_list; 2 #define _VA_LIST_DEFINED 3 4 /* gcc/clang spelling bridge for the va_list family. cc.scm only 5 * recognizes __builtin_va_list and __builtin_va_start/arg/end/copy as 6 * builtins, so the host-preprocessed flat.c routes va_* through those 7 * names; on amd64/aarch64 stock tcc 0.9.26 has no such frontend 8 * keywords, so the same flat.c won't compile back through tcc without 9 * a bridge. Map __builtin_* onto the va_* macros above, which on 10 * those arches expand to tcc's __va_start / __va_arg intrinsics. The 11 * __riscv branch above already names everything by the gcc spelling, 12 * so gate this block on !__riscv to avoid an infinite-loop expansion 13 * (__builtin_va_arg -> va_arg -> __builtin_va_arg). */ 14 #ifndef __riscv 15 typedef va_list __builtin_va_list; 16 #define __builtin_va_start(ap, last) va_start(ap, last) 17 #define __builtin_va_end(ap) va_end(ap) 18 #define __builtin_va_arg(ap, type) va_arg(ap, type) 19 #define __builtin_va_copy(dst, src) va_copy(dst, src) 20 #endif 21 22 #endif /* _STDARG_H */