The manual differs from the implementation...

at least the one of RSX M+ 4.6.
Inconsistent flags given to .PSECT seem to be simply combined, with
nothing special done after pass 1 when re-reading for 2. The situation
at the end of pass 2 wins.
This commit is contained in:
Olaf Seibert 2015-05-09 15:45:00 +02:00
parent 20f25b9dd9
commit e477f7bd80

View File

@ -974,8 +974,20 @@ static int assemble(
* See page 6-38 of AA-KX10A-TC_PDP-11_MACRO-11_Reference_Manual_May88.pdf .
*/
if (old_flags != ~0 && sect->flags != old_flags) {
/* The manual also says that any different
* flags are ignored, and an error issued.
* Apparently, that isn't true.
* Kermit seems to do this in k11cmd.mac:
* .psect $pdata ,ro,d,lcl,rel,con
* ; k11mac.mac, first pass only
* .psect $pdata ; line 16
* .psect $PDATA ,D ; line 1083
*/
/*
sect->flags = old_flags;
report(stack->top, "Program section flags not identical\n");
*/
}
}