summaryrefslogtreecommitdiff
path: root/src/cmd/gc/mparith2.c
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@debian.org>2014-06-19 09:22:53 +0200
committerMichael Stapelberg <stapelberg@debian.org>2014-06-19 09:22:53 +0200
commit8a39ee361feb9bf46d728ff1ba4f07ca1d9610b1 (patch)
tree4449f2036cccf162e8417cc5841a35815b3e7ac5 /src/cmd/gc/mparith2.c
parentc8bf49ef8a92e2337b69c14b9b88396efe498600 (diff)
downloadgolang-upstream/1.3.tar.gz
Imported Upstream version 1.3upstream/1.3
Diffstat (limited to 'src/cmd/gc/mparith2.c')
-rw-r--r--src/cmd/gc/mparith2.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/gc/mparith2.c b/src/cmd/gc/mparith2.c
index 9b2f664f7..5cf98c62c 100644
--- a/src/cmd/gc/mparith2.c
+++ b/src/cmd/gc/mparith2.c
@@ -300,13 +300,21 @@ mpmulfixfix(Mpint *a, Mpint *b)
for(i=0; i<na; i++) {
x = *a1++;
for(j=0; j<Mpscale; j++) {
- if(x & 1)
+ if(x & 1) {
+ if(s.ovf) {
+ q.ovf = 1;
+ goto out;
+ }
mpaddfixfix(&q, &s, 1);
+ if(q.ovf)
+ goto out;
+ }
mplsh(&s, 1);
x >>= 1;
}
}
+out:
q.neg = a->neg ^ b->neg;
mpmovefixfix(a, &q);
if(a->ovf)