summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ginclude/va-mips.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ginclude/va-mips.h b/gcc/ginclude/va-mips.h
index 33774dcff62..02152bfc972 100644
--- a/gcc/ginclude/va-mips.h
+++ b/gcc/ginclude/va-mips.h
@@ -66,11 +66,11 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */
#if __mips==3
#ifdef __MIPSEB__
#define va_arg(__AP, __type) \
- ((__type *) (void *) (__AP = (char *) ((((int)__AP + 8 - 1) & -8) \
+ ((__type *) (void *) (__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
+ __va_rounded_size (__type))))[-1]
#else
#define va_arg(__AP, __type) \
- ((__AP = (char *) ((((int)__AP + 8 - 1) & -8) \
+ ((__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
+ __va_rounded_size (__type))), \
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
#endif