Annotation of gcc/ginclude/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: typedef double *__gnuc_va_list;
        !             8: #endif /* not __GNUC_VA_LIST */
        !             9: 
        !            10: /* If this is for internal libc use, don't define anything but
        !            11:    __gnuc_va_list.  */
        !            12: #if defined (_STDARG_H) || defined (_VARARGS_H)
        !            13: #if __GNUC__ > 1
        !            14: #define __va_ellipsis ...
        !            15: #define __gnuc_va_start(AP) ((AP) = (va_list)__builtin_saveregs())
        !            16: #else
        !            17: #define va_alist __va_a__, __va_b__, __va_c__, __va_d__
        !            18: #define __va_ellipsis 
        !            19: #define __gnuc_va_start(AP)\
        !            20:   (AP) = (double *) &__va_a__, &__va_b__, &__va_c__, &__va_d__, \
        !            21:   (AP) = (double *)((char *)(AP) + 4)
        !            22: #endif /* __GNUC__ > 1 */
        !            23: 
        !            24: /* Call __builtin_next_arg even though we aren't using its value, so that
        !            25:    we can verify that LASTARG is correct.  */
        !            26: #ifdef _STDARG_H
        !            27: #define va_start(AP,LASTARG) \
        !            28:   (__builtin_next_arg (LASTARG), __gnuc_va_start (AP))
        !            29: #else
        !            30: /* The ... causes current_function_varargs to be set in cc1.  */
        !            31: #define va_dcl long va_alist; __va_ellipsis
        !            32: #define va_start(AP) __gnuc_va_start (AP)
        !            33: #endif
        !            34: 
        !            35: #define va_arg(AP,TYPE)                                                \
        !            36:   (sizeof(TYPE) > 8 ?                                          \
        !            37:    ((AP = (__gnuc_va_list) ((char *)AP - sizeof (int))),       \
        !            38:     (*((TYPE *) (void *) (*((int *) (AP))))))                  \
        !            39:    :((AP =                                                     \
        !            40:       (__gnuc_va_list) ((long)((char *)AP - sizeof (TYPE))     \
        !            41:                        & (sizeof(TYPE) > 4 ? ~0x7 : ~0x3))),   \
        !            42:      (*((TYPE *) (void *) ((char *)AP + ((8 - sizeof(TYPE)) % 4))))))
        !            43: 
        !            44: #ifndef va_end
        !            45: void va_end (__gnuc_va_list);          /* Defined in libgcc.a */
        !            46: #endif
        !            47: #define va_end(AP)
        !            48: 
        !            49: #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.