diff options
author | aiju <devnull@localhost> | 2018-04-24 12:20:07 +0100 |
---|---|---|
committer | aiju <devnull@localhost> | 2018-04-24 12:20:07 +0100 |
commit | 29f03ba4e74ec58b87e3e6470aadfb58ee804f48 (patch) | |
tree | df596c512fd8add63ae327c5fd12b1f4f766eb36 /sys/src/libsat | |
parent | 8666ec6b555ec21e8c81089148527913febc7e53 (diff) |
libsat, forp: fix va_list hack on amd64
Diffstat (limited to 'sys/src/libsat')
-rw-r--r-- | sys/src/libsat/satadd.c | 16 | ||||
-rw-r--r-- | sys/src/libsat/satrange.c | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/src/libsat/satadd.c b/sys/src/libsat/satadd.c index 3a0cf0c3a..e10dd8346 100644 --- a/sys/src/libsat/satadd.c +++ b/sys/src/libsat/satadd.c @@ -217,6 +217,21 @@ satadd1(SATSolve *s, int *a, int n) return s; } +void +satvafix(va_list va) +{ + int *d; + uintptr *s; + + if(sizeof(int)==sizeof(uintptr)) return; + d = (int *) va; + s = (uintptr *) va; + do + *d++ = *s; + while((int)*s++ != 0); + +} + SATSolve * sataddv(SATSolve *s, ...) { @@ -224,6 +239,7 @@ sataddv(SATSolve *s, ...) va_start(va, s); /* horrible hack */ + satvafix(va); s = satadd1(s, (int*)va, -1); va_end(va); return s; diff --git a/sys/src/libsat/satrange.c b/sys/src/libsat/satrange.c index 76caa5713..c202a8fc1 100644 --- a/sys/src/libsat/satrange.c +++ b/sys/src/libsat/satrange.c @@ -62,6 +62,7 @@ satrangev(SATSolve *s, int min, int max, ...) va_start(va, max); /* horrible hack */ + satvafix(va); s = satrange1(s, (int*)va, -1, min, max); va_end(va); return s; |