summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2020-03-22 17:31:39 -0700
committerOri Bernstein <ori@eigenstate.org>2020-03-22 17:31:39 -0700
commita654b94db8a3574b7a774edfd77b8612c0b642cd (patch)
treec55640ab3d06fe8020c1dcd0ebbf0081c879e7d5
parent7364a96b289c24637db802fca6c57d8024ca2359 (diff)
downloadplan9front-a654b94db8a3574b7a774edfd77b8612c0b642cd.tar.xz
add va_copy macro, conforming to c99 7.15.1.2
-rw-r--r--386/include/ape/stdarg.h2
-rw-r--r--68020/include/ape/stdarg.h1
-rw-r--r--amd64/include/ape/stdarg.h8
-rw-r--r--arm/include/ape/stdarg.h1
-rw-r--r--arm64/include/ape/stdarg.h1
-rw-r--r--mips/include/ape/stdarg.h1
-rw-r--r--power/include/ape/stdarg.h1
-rw-r--r--sparc64/include/ape/stdarg.h1
8 files changed, 13 insertions, 3 deletions
diff --git a/386/include/ape/stdarg.h b/386/include/ape/stdarg.h
index 05d033e4c..295b88b95 100644
--- a/386/include/ape/stdarg.h
+++ b/386/include/ape/stdarg.h
@@ -7,5 +7,5 @@ typedef char *va_list;
(char *)(&(start)+1))
#define va_end(list)
#define va_arg(list, mode) ((mode*)(list += sizeof(mode)))[-1]
-
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/68020/include/ape/stdarg.h b/68020/include/ape/stdarg.h
index b7e2282e6..9a1f08c7e 100644
--- a/68020/include/ape/stdarg.h
+++ b/68020/include/ape/stdarg.h
@@ -7,5 +7,6 @@ typedef char *va_list;
#define va_end(list)
#define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \
sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1])
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/amd64/include/ape/stdarg.h b/amd64/include/ape/stdarg.h
index cf466841f..b687c5a46 100644
--- a/amd64/include/ape/stdarg.h
+++ b/amd64/include/ape/stdarg.h
@@ -3,8 +3,10 @@
typedef char *va_list;
-#define va_start(list, start) list = (sizeof(start)<8 ? (char *)((long long *)&(start)+1) : \
-(char *)(&(start)+1))
+#define va_start(list, start) \
+ (list = (sizeof(start)<8 ? \
+ (char *)((long long *)&(start)+1) : \
+ (char *)(&(start)+1)))
#define va_end(list)
#define va_arg(list, mode)\
((sizeof(mode) == 1)?\
@@ -14,5 +16,7 @@ typedef char *va_list;
(sizeof(mode) == 4)?\
((mode*)(list += 8))[-2]:\
((mode*)(list += sizeof(mode)))[-1])
+#define va_copy(dst, src) \
+ ((dst) = (src))
#endif /* __STDARG */
diff --git a/arm/include/ape/stdarg.h b/arm/include/ape/stdarg.h
index 05d033e4c..eb1c097a7 100644
--- a/arm/include/ape/stdarg.h
+++ b/arm/include/ape/stdarg.h
@@ -7,5 +7,6 @@ typedef char *va_list;
(char *)(&(start)+1))
#define va_end(list)
#define va_arg(list, mode) ((mode*)(list += sizeof(mode)))[-1]
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/arm64/include/ape/stdarg.h b/arm64/include/ape/stdarg.h
index cf466841f..9486c08e5 100644
--- a/arm64/include/ape/stdarg.h
+++ b/arm64/include/ape/stdarg.h
@@ -14,5 +14,6 @@ typedef char *va_list;
(sizeof(mode) == 4)?\
((mode*)(list += 8))[-2]:\
((mode*)(list += sizeof(mode)))[-1])
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/mips/include/ape/stdarg.h b/mips/include/ape/stdarg.h
index b7e2282e6..9a1f08c7e 100644
--- a/mips/include/ape/stdarg.h
+++ b/mips/include/ape/stdarg.h
@@ -7,5 +7,6 @@ typedef char *va_list;
#define va_end(list)
#define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \
sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1])
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/power/include/ape/stdarg.h b/power/include/ape/stdarg.h
index b7e2282e6..9a1f08c7e 100644
--- a/power/include/ape/stdarg.h
+++ b/power/include/ape/stdarg.h
@@ -7,5 +7,6 @@ typedef char *va_list;
#define va_end(list)
#define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \
sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1])
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */
diff --git a/sparc64/include/ape/stdarg.h b/sparc64/include/ape/stdarg.h
index b7e2282e6..9a1f08c7e 100644
--- a/sparc64/include/ape/stdarg.h
+++ b/sparc64/include/ape/stdarg.h
@@ -7,5 +7,6 @@ typedef char *va_list;
#define va_end(list)
#define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \
sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1])
+#define va_copy(dst, src) ((dst) = (src))
#endif /* __STDARG */