From 3d0ebdc439039f1e01ee5fa0f75b1de1a12c12f1 Mon Sep 17 00:00:00 2001 From: spew Date: Mon, 28 May 2018 19:38:33 -0400 Subject: [PATCH] 6c, 8c: Fix nocast cast bug which prevents address arithmetic from being computed at compile time --- sys/src/cmd/6c/sgen.c | 3 ++- sys/src/cmd/8c/sgen.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/src/cmd/6c/sgen.c b/sys/src/cmd/6c/sgen.c index 14e5f3c7e..fa5df6634 100644 --- a/sys/src/cmd/6c/sgen.c +++ b/sys/src/cmd/6c/sgen.c @@ -105,7 +105,8 @@ xcom(Node *n) case OADD: xcom(l); xcom(r); - if(n->type->etype != TIND) + if(n->type->etype != TIND && + !(l->type->etype == TIND && r->type->etype == TIND)) break; switch(r->addable) { diff --git a/sys/src/cmd/8c/sgen.c b/sys/src/cmd/8c/sgen.c index 6fc0ffba7..1c9527b17 100644 --- a/sys/src/cmd/8c/sgen.c +++ b/sys/src/cmd/8c/sgen.c @@ -112,7 +112,8 @@ xcom(Node *n) case OADD: xcom(l); xcom(r); - if(n->type->etype != TIND) + if(n->type->etype != TIND && + !(l->type->etype == TIND && r->type->etype == TIND)) break; switch(r->addable) { -- 2.44.0