summaryrefslogtreecommitdiff
path: root/gcc/ginclude/va-spur.h
diff options
context:
space:
mode:
authormerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1995-04-14 23:44:01 +0000
committermerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1995-04-14 23:44:01 +0000
commit03b9bb66f689376225644d762b62e0164a42fe2b (patch)
treefd05e86dba927fc25e09a1e9670daa9f6f7df6d3 /gcc/ginclude/va-spur.h
parent3e0d8b6992fd78646654a70603b41286ec0a642c (diff)
downloadgcc-03b9bb66f689376225644d762b62e0164a42fe2b.tar.gz
Reorganize va_arg
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9387 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ginclude/va-spur.h')
-rw-r--r--gcc/ginclude/va-spur.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/ginclude/va-spur.h b/gcc/ginclude/va-spur.h
index 09092c1129f..68cbc5ced64 100644
--- a/gcc/ginclude/va-spur.h
+++ b/gcc/ginclude/va-spur.h
@@ -38,24 +38,24 @@ typedef struct {
#define va_arg(pvar,type) \
__extension__ \
- ({ type __va_result; \
+ (*({ type *__va_result; \
if ((pvar).__pnt >= 20) { \
- __va_result = *( (type *) ((pvar).__stack + (pvar).__pnt - 20)); \
+ __va_result = ( (type *) ((pvar).__stack + (pvar).__pnt - 20)); \
(pvar).__pnt += (sizeof(type) + 7) & ~7; \
} \
else if ((pvar).__pnt + sizeof(type) > 20) { \
- __va_result = * (type *) (pvar).__stack; \
+ __va_result = (type *) (pvar).__stack; \
(pvar).__pnt = 20 + ( (sizeof(type) + 7) & ~7); \
} \
else if (sizeof(type) == 8) { \
union {double d; int i[2];} __u; \
__u.i[0] = *(int *) ((pvar).__regs + (pvar).__pnt); \
__u.i[1] = *(int *) ((pvar).__regs + (pvar).__pnt + 4); \
- __va_result = * (type *) &__u; \
+ __va_result = (type *) &__u; \
(pvar).__pnt += 8; \
} \
else { \
- __va_result = * (type *) ((pvar).__regs + (pvar).__pnt); \
+ __va_result = (type *) ((pvar).__regs + (pvar).__pnt); \
(pvar).__pnt += (sizeof(type) + 3) & ~3; \
} \
- __va_result; })
+ __va_result; }))