mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-22 17:41:55 +00:00
[libc] Use __builtin_va_list et al in stdarg.h
The home-grown versions don't work properly for static variadic functions, when gcc can choose to use a non-standard calling convention.
This commit is contained in:
parent
23e077666b
commit
dbf8a02e8f
@ -1,22 +0,0 @@
|
||||
#ifndef _STDARG_H
|
||||
#define _STDARG_H
|
||||
|
||||
typedef void * va_list;
|
||||
|
||||
#define va_start( ap, last ) do { \
|
||||
ap = ( &last + 1 ); \
|
||||
} while ( 0 )
|
||||
|
||||
#define va_arg( ap, type ) ({ \
|
||||
type *_this = ap; \
|
||||
ap = ( _this + 1 ); \
|
||||
*(_this); \
|
||||
})
|
||||
|
||||
#define va_end( ap ) do { } while ( 0 )
|
||||
|
||||
#define va_copy( dest, src ) do { \
|
||||
dest = src; \
|
||||
} while ( 0 )
|
||||
|
||||
#endif /* _STDARG_H */
|
10
src/include/stdarg.h
Normal file
10
src/include/stdarg.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef _STDARG_H
|
||||
#define _STDARG_H
|
||||
|
||||
typedef __builtin_va_list va_list;
|
||||
#define va_start( ap, last ) __builtin_va_start ( ap, last )
|
||||
#define va_arg( ap, type ) __builtin_va_arg ( ap, type )
|
||||
#define va_end( ap ) __builtin_va_end ( ap )
|
||||
#define va_copy( dest, src ) __builtin_va_copy ( dest, src )
|
||||
|
||||
#endif /* _STDARG_H */
|
Loading…
Reference in New Issue
Block a user