From e988d56a2f6b87531a12559a336b5de4471605b4 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 28 Aug 2019 21:01:16 +0200 Subject: 8l, 6l: fix "unknown relation: TEXT" xfol() bug (thanks mischief) mischief reports: this assembler input assembles with 6a but makes 6l crash. // 6a l.s // 6l l.6 // _intrr: unknown relation: TEXT in _intrr // 6l 511: suicide: sys: trap: fault write addr=0x18 pc=0x20789c TEXT noteret(SB), 1, $-4 CLI JMP _intrestore // works when commented TEXT _intrr(SB), 1, $-4 _intrestore: RET TEXT _main(SB), 1, $-4 RET --- sys/src/cmd/6l/pass.c | 2 +- sys/src/cmd/8l/pass.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/src/cmd/6l/pass.c b/sys/src/cmd/6l/pass.c index 2062eed5c..a00c52d89 100644 --- a/sys/src/cmd/6l/pass.c +++ b/sys/src/cmd/6l/pass.c @@ -233,7 +233,7 @@ loop: if(a != ACALL) { q = brchain(p->link); if(q != P && q->mark) - if(a != ALOOP) { + if(a != ALOOP && a != ATEXT) { p->as = relinv(a); p->link = p->pcond; p->pcond = q; diff --git a/sys/src/cmd/8l/pass.c b/sys/src/cmd/8l/pass.c index 26cbe30c6..297ccdfc4 100644 --- a/sys/src/cmd/8l/pass.c +++ b/sys/src/cmd/8l/pass.c @@ -217,7 +217,7 @@ loop: if(a != ACALL) { q = brchain(p->link); if(q != P && q->mark) - if(a != ALOOP) { + if(a != ALOOP && a != ATEXT) { p->as = relinv(a); p->link = p->pcond; p->pcond = q; -- cgit v1.2.3