cc: fix an out of bounds array access

Alternatively, we could expand the ewidth array
in [568]c/txt.c to have NALLTYPES elements and
give all types above NTYPE a width of -1.

I don't think it's worth it since TDOT and TOLD
are the only two type values above NTYPE that
are passed to typ:

$ /tmp/cctypes
cc/dcl.c:683: 			t->down = typ(TOLD, T);
cc/dcl.c:919: 		return typ(TDOT, T);
$

Fixes #3063.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5694047
This commit is contained in:
Anthony Martin 2012-02-23 14:28:16 -05:00 committed by Russ Cox
parent 28e0e18863
commit 436f297d1e

View file

@ -156,7 +156,10 @@ typ(int et, Type *d)
t->link = d;
t->down = T;
t->sym = S;
t->width = ewidth[et];
if(et < NTYPE)
t->width = ewidth[et];
else
t->width = -1; // for TDOT or TOLD in prototype
t->offset = 0;
t->shift = 0;
t->nbits = 0;