Annotation of GNUtools/cc/va-pa.h, revision 1.1

1.1     ! root        1: 
        !             2: /* Define __gnuc_va_list. */
        !             3: 
        !             4: #ifndef __GNUC_VA_LIST
        !             5: #define __GNUC_VA_LIST
        !             6: 
        !             7: #ifdef NeXT
        !             8: #define _ANSI_STDARG_H_
        !             9: #endif
        !            10: 
        !            11: typedef double *__gnuc_va_list;
        !            12: #endif /* not __GNUC_VA_LIST */
        !            13: 
        !            14: /* If this is for internal libc use, don't define anything but
        !            15:    __gnuc_va_list.  */
        !            16: #if defined (_STDARG_H) || defined (_VARARGS_H)
        !            17: #if __GNUC__ > 1
        !            18: #define __va_ellipsis ...
        !            19: #define __gnuc_va_start(AP) ((AP) = (va_list)__builtin_saveregs())
        !            20: #else
        !            21: #define va_alist __va_a__, __va_b__, __va_c__, __va_d__
        !            22: #define __va_ellipsis 
        !            23: #define __gnuc_va_start(AP)\
        !            24:   (AP) = (double *) &__va_a__, &__va_b__, &__va_c__, &__va_d__, \
        !            25:   (AP) = (double *)((char *)(AP) + 4)
        !            26: #endif /* __GNUC__ > 1 */
        !            27: 
        !            28: #ifdef _STDARG_H
        !            29: #define va_start(AP,LASTARG) __gnuc_va_start (AP)
        !            30: #else
        !            31: /* The ... causes current_function_varargs to be set in cc1.  */
        !            32: #define va_dcl long va_alist; __va_ellipsis
        !            33: #define va_start(AP) __gnuc_va_start (AP)
        !            34: #endif
        !            35: 
        !            36: #define va_arg(AP,TYPE)                                                \
        !            37:   (sizeof(TYPE) > 8 ?                                          \
        !            38:    ((AP = (__gnuc_va_list) ((char *)AP - sizeof (int))),       \
        !            39:     (*((TYPE *) (void *) (*((int *) (AP))))))                  \
        !            40:    :((AP =                                                     \
        !            41:       (__gnuc_va_list) ((long)((char *)AP - sizeof (TYPE))     \
        !            42:                        & (sizeof(TYPE) > 4 ? ~0x7 : ~0x3))),   \
        !            43:      (*((TYPE *) (void *) ((char *)AP + ((8 - sizeof(TYPE)) % 4))))))
        !            44: 
        !            45: #ifndef va_end
        !            46: void va_end (__gnuc_va_list);          /* Defined in libgcc.a */
        !            47: #endif
        !            48: #define va_end(AP)
        !            49: 
        !            50: #endif /* defined (_STDARG_H) || defined (_VARARGS_H) */

unix.superglobalmegacorp.com

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