Annotation of researchv9/cmd/cfront/CC/stdargs.h, revision 1.1

1.1     ! root        1: 
        !             2: /* stdarg.h */
        !             3: /*
        !             4:        USAGE:
        !             5:                f( arg-declarations ... ) {
        !             6:                        va_list ap;
        !             7:                        va_start(ap, parmN);    // parmN == last named arg
        !             8:                        // ...
        !             9:                        type arg = va_arg(ap, type);
        !            10:                        // ...
        !            11:                        va_end(ap);
        !            12:                }
        !            13: */
        !            14: 
        !            15: #ifndef va_start
        !            16: 
        !            17: typedef char *va_list;
        !            18: #define va_end(ap)
        !            19: #ifdef u370
        !            20: #define va_start(ap, parmN) ap =\
        !            21:        (char *) ((int)&parmN + 2*sizeof(parmN) - 1 & -sizeof(parmN))
        !            22: #define va_arg(ap, mode) ((mode *)(ap = \
        !            23:        (char *) ((int)ap + 2*sizeof(mode) - 1 & -sizeof(mode))))[-1]
        !            24: #else
        !            25: #define va_start(ap, parmN) ap = (char *)( &parmN+1 )
        !            26: #define va_arg(ap, mode) ((mode *)(ap += sizeof(mode)))[-1]
        !            27: #endif
        !            28: 
        !            29: #endif
        !            30: 
        !            31: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.