diff options
Diffstat (limited to 'src/cmd/gc/typecheck.c')
-rw-r--r-- | src/cmd/gc/typecheck.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c index 4e5b5bbcd..a7ea631e1 100644 --- a/src/cmd/gc/typecheck.c +++ b/src/cmd/gc/typecheck.c @@ -80,8 +80,10 @@ typecheck(Node **np, int top) } } - if(n->typecheck == 2) - fatal("typecheck loop"); + if(n->typecheck == 2) { + yyerror("typechecking loop"); + return n; + } n->typecheck = 2; redo: @@ -355,9 +357,7 @@ reswitch: if(iscmp[n->op]) { n->etype = n->op; n->op = OCMPSTR; - } else if(n->op == OASOP) - n->op = OAPPENDSTR; - else if(n->op == OADD) + } else if(n->op == OADD) n->op = OADDSTR; } if(et == TINTER) { |