Lines 1-20
Link Here
|
1 |
--- ./src/lib/libast/string/tokscan.c.orig 2013-12-28 22:16:20.000000000 +0100 |
1 |
--- src/lib/libast/string/tokscan.c.orig 2006-11-07 UTC |
2 |
+++ ./src/lib/libast/string/tokscan.c 2013-12-28 22:43:28.000000000 +0100 |
2 |
+++ src/lib/libast/string/tokscan.c |
3 |
@@ -188,6 +188,7 @@ |
3 |
@@ -233,7 +233,16 @@ tokscan(register char* s, char** nxt, co |
4 |
char** p_string; |
|
|
5 |
char* prv_f = 0; |
6 |
va_list prv_ap; |
7 |
+ va_listarg tmpval; |
8 |
|
9 |
va_start(ap, fmt); |
10 |
if (!*s || *s == '\n') |
11 |
@@ -233,7 +234,8 @@ |
12 |
prv_f = f; |
4 |
prv_f = f; |
13 |
f = va_arg(ap, char*); |
5 |
f = va_arg(ap, char*); |
14 |
va_copy(prv_ap, ap); |
6 |
va_copy(prv_ap, ap); |
15 |
- va_copy(ap, va_listval(va_arg(ap, va_listarg))); |
7 |
+#if __clang__ && __SIZEOF_POINTER__ == 4 |
16 |
+ tmpval = va_listval(va_arg(ap, va_listarg)); |
8 |
+ { |
17 |
+ va_copy(ap, tmpval); |
9 |
+ va_list np; |
|
|
10 |
+ |
11 |
+ np = va_listval(va_arg(ap, va_listarg)); |
12 |
+ va_copy(ap, np); |
13 |
+ } |
14 |
+#else |
15 |
va_copy(ap, va_listval(va_arg(ap, va_listarg))); |
16 |
+#endif |
18 |
continue; |
17 |
continue; |
19 |
case 'c': |
18 |
case 'c': |
20 |
p_char = va_arg(ap, char*); |
19 |
p_char = va_arg(ap, char*); |