aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Wedgwood <cw@f00f.org>2009-12-03 12:46:34 -0800
committerRuss Cox <rsc@golang.org>2009-12-03 12:46:34 -0800
commit7e7008fa5e96cf0418b71b5b408ea2a69b522221 (patch)
tree14b61b12e39495b75546abe1019ca457b7521e33
parent6db683fe4d1e6f797b3cc6c1f7d1955c1c107826 (diff)
downloadgo-7e7008fa5e96cf0418b71b5b408ea2a69b522221.tar.gz
go-7e7008fa5e96cf0418b71b5b408ea2a69b522221.zip
gc: Allow allow data types up to 1GB
R=rsc https://golang.org/cl/164095
-rw-r--r--src/cmd/gc/gen.c2
-rw-r--r--src/cmd/gc/go.h3
-rw-r--r--src/cmd/gc/subr.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/src/cmd/gc/gen.c b/src/cmd/gc/gen.c
index 475058fa28..56dd752fb7 100644
--- a/src/cmd/gc/gen.c
+++ b/src/cmd/gc/gen.c
@@ -52,7 +52,7 @@ allocparams(void)
continue;
dowidth(n->type);
w = n->type->width;
- if(w >= 100000000)
+ if(w >= MAXWIDTH)
fatal("bad width");
stksize += w;
stksize = rnd(stksize, w);
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index 87362156d3..5df0c5be85 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -53,7 +53,8 @@ enum
AINTER,
ANILINTER,
- BADWIDTH = -1000000000
+ BADWIDTH = -1000000000,
+ MAXWIDTH = 1<<30
};
/*
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index 6b73570e52..407dea023f 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -2431,7 +2431,7 @@ setmaxarg(Type *t)
dowidth(t);
w = t->argwid;
- if(t->argwid >= 100000000)
+ if(t->argwid >= MAXWIDTH)
fatal("bad argwid %T", t);
if(w > maxarg)
maxarg = w;