Annotation of gcc/va-mips.h, revision 1.1.1.1

1.1       root        1: /* ---------------------------------------- */
                      2: /*           VARARGS  for MIPS/GNU CC       */
                      3: /*                                          */
                      4: /*                                          */
                      5: /*                                          */
                      6: /*                                          */
                      7: /* ---------------------------------------- */
                      8: 
                      9: 
                     10: /* These macros implement traditional (non-ANSI) varargs
                     11:    for GNU C.  */
                     12: 
                     13: /* In GCC version 2, we want an ellipsis at the end of the declaration
                     14:    of the argument list.  GCC version 1 can't parse it.  */
                     15: 
                     16: #if __GNUC__ > 1
                     17: #define __va_ellipsis ...
                     18: #else
                     19: #define __va_ellipsis
                     20: #endif
                     21: 
                     22: #define va_alist  __builtin_va_alist
                     23: #define va_dcl    int __builtin_va_alist; __va_ellipsis
                     24: #ifndef _VA_LIST_
                     25: #define _VA_LIST_
                     26: /* Make this a macro rather than a typedef, so we can undef any other defn.  */
                     27: #define va_list __va___list
                     28: typedef char * __va___list;
                     29: #endif
                     30: 
                     31: #define __va_rounded_size(TYPE)  \
                     32:   (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
                     33: 
                     34: #ifdef _STDARG_H
                     35: #define va_start(AP, LASTARG)                                          \
                     36:  (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
                     37: #else
                     38: #define va_start(AP)  AP = (char *) &__builtin_va_alist
                     39: #endif
                     40: 
                     41: #define va_end(AP)
                     42: 
                     43: #ifdef lint    /* complains about constant in conditional context */
                     44: #define va_arg(list, mode) ((mode *)(list += sizeof(mode)))[-1]
                     45: 
                     46: #else          /* !lint */
                     47: #define va_arg(AP, mode)                                               \
                     48:   ((mode *)(AP = (char *) (__alignof(mode) > 4                         \
                     49:                                ? ((int)AP + 2*8 - 1) & -8              \
                     50:                                : ((int)AP + 2*4 - 1) & -4)))[-1]
                     51: #endif         /* lint */
                     52: 

unix.superglobalmegacorp.com

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