boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

stdarg-builtin.after (685B)


      1 /* Routed through cc.scm's __builtin_va_* parser-recognized names so
      2  * va_start/va_arg/va_end go through cc/cc.scm cg-va-{start,arg,end}.
      3  * The original mes macros lower as raw C expressions; cc.scm's
      4  * general expression path mishandles them (see cc-libc/05). The
      5  * builtin path is exercised by tests/cc/131-vararg-mixed for the
      6  * printf -> vprintf -> vfprintf two-frame forwarding shape. */
      7 typedef char *va_list;
      8 #define va_start(ap, last) __builtin_va_start((ap), (last))
      9 #define va_arg(ap, type)   __builtin_va_arg((ap), type)
     10 #define va_arg8(ap, type)  __builtin_va_arg((ap), type)
     11 #define va_end(ap)         __builtin_va_end((ap))
     12 #define va_copy(dest, src) (dest) = (src)