diff --git a/src/cmd/6l/go.c b/src/cmd/6l/go.c index 19984336b3d..4d2f5ec5412 100644 --- a/src/cmd/6l/go.c +++ b/src/cmd/6l/go.c @@ -451,6 +451,8 @@ definetypesigs(void) prog->to.sym = all[i]; } s->value = PtrSize*n; + if(n == 0) + s->value = 1; // must have non-zero size or 6l complains // emit count s = lookup("ngotypesigs", 0); diff --git a/src/runtime/iface.c b/src/runtime/iface.c index 4a394fc888b..07bd325843a 100644 --- a/src/runtime/iface.c +++ b/src/runtime/iface.c @@ -449,14 +449,6 @@ fakesigt(string type) // TODO(rsc): Cache these by type string. Sigt *sigt; - // Must be pointer in order for alg, width to be right. - if(type == nil || type->len == 0 || type->str[0] != '*') { - // TODO(rsc): What to do here? - prints("bad unreflect type: "); - sys·printstring(type); - prints("\n"); - throw("unreflect"); - } sigt = mal(2*sizeof sigt[0]); sigt[0].name = mal(type->len + 1); mcpy(sigt[0].name, type->str, type->len);