ref: e988d56a2f6b87531a12559a336b5de4471605b4
parent: d9fec3c70aebe9e9139429235b881bf5b32dbe41
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Wed Aug 28 17:01:16 EDT 2019
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
--- a/sys/src/cmd/6l/pass.c
+++ b/sys/src/cmd/6l/pass.c
@@ -233,7 +233,7 @@
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;
--- a/sys/src/cmd/8l/pass.c
+++ b/sys/src/cmd/8l/pass.c
@@ -217,7 +217,7 @@
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;