Applied patch #2762516
[fw/sdcc] / device / include / stdarg.h
index fcb5ed58a1fa51dea5ae4d2da54c4ddab0948775..db0b889ca0dc65497a93b7afaea5567f876a4aa9 100644 (file)
@@ -8,25 +8,25 @@
 #if defined(__z80) || defined(__gbz80) || defined(__hc08)
 
 typedef unsigned char * va_list;
-#define va_start(marker, last)  { marker = (unsigned char *)&last + sizeof(last); }
+#define va_start(marker, last)  { marker = (va_list)&last + sizeof(last); }
 #define va_arg(marker, type)    *((type *)((marker += sizeof(type)) - sizeof(type)))
 
 #elif defined(__ds390) || defined(__ds400)
 
 typedef unsigned char * va_list;
-#define va_start(marker, first) { marker = &first; }
+#define va_start(marker, first) { marker = (va_list)&first; }
 #define va_arg(marker, type)    *((type *)(marker -= sizeof(type)))
 
 #elif defined(SDCC_USE_XSTACK)
 
 typedef unsigned char __pdata * va_list;
-#define va_start(marker, first) { marker = (va_list)((char __pdata *)&first); }
+#define va_start(marker, first) { marker = (va_list)&first; }
 #define va_arg(marker, type)    *((type __pdata *)(marker -= sizeof(type)))
 
 #else
 
 typedef unsigned char __data * va_list;
-#define va_start(marker, first) { marker = (va_list) ((char __data * )&first); }
+#define va_start(marker, first) { marker = (va_list)&first; }
 #define va_arg(marker, type)    *((type __data * )(marker -= sizeof(type)))
 
 #endif