mirror of
https://github.com/golang/go
synced 2024-11-26 05:57:58 -07:00
maps have == so maps are okay as map keys.
alignment issue is fixed. R=ken OCL=31124 CL=31144
This commit is contained in:
parent
84ded32817
commit
75fe1303c1
@ -327,7 +327,7 @@ algtype(Type *t)
|
|||||||
{
|
{
|
||||||
int a;
|
int a;
|
||||||
|
|
||||||
if(issimple[t->etype] || isptr[t->etype] || t->etype == TCHAN || t->etype == TFUNC)
|
if(issimple[t->etype] || isptr[t->etype] || t->etype == TCHAN || t->etype == TFUNC || t->etype == TMAP)
|
||||||
a = AMEM; // just bytes (int, ptr, etc)
|
a = AMEM; // just bytes (int, ptr, etc)
|
||||||
else if(t->etype == TSTRING)
|
else if(t->etype == TSTRING)
|
||||||
a = ASTRING; // string
|
a = ASTRING; // string
|
||||||
|
@ -2111,13 +2111,11 @@ ascompatte(int op, Type **nl, Node **nr, int fp)
|
|||||||
&& structnext(&peekl) != T
|
&& structnext(&peekl) != T
|
||||||
&& listnext(&peekr) == N
|
&& listnext(&peekr) == N
|
||||||
&& eqtypenoname(r->type, *nl)) {
|
&& eqtypenoname(r->type, *nl)) {
|
||||||
// TODO(rsc): clumsy check for differently aligned structs.
|
// clumsy check for differently aligned structs.
|
||||||
// need to handle eventually, but this keeps us
|
// now that output structs are aligned separately
|
||||||
// from inserting bugs
|
// from the input structs, should never happen.
|
||||||
if(r->type->width != (*nl)->width) {
|
if(r->type->width != (*nl)->width)
|
||||||
fprint(2, "oops: %T %d %T %d\n", r->type, r->type->width, (*nl), (*nl)->width);
|
fatal("misaligned multiple return\n\t%T\n\t%T", r->type, *nl);
|
||||||
yyerror("misaligned multiple return (6g's fault)");
|
|
||||||
}
|
|
||||||
a = nodarg(*nl, fp);
|
a = nodarg(*nl, fp);
|
||||||
a->type = r->type;
|
a->type = r->type;
|
||||||
return convas(nod(OAS, a, r));
|
return convas(nod(OAS, a, r));
|
||||||
|
Loading…
Reference in New Issue
Block a user