[comp.os.vms] Wierd problem with MACRO

LAFOLLETTE@temple.CSNET.UUCP (04/28/87)

We have encountered some peculiar behaviour with the VMS MACRO assembler,
and would be curious to know whether anybody on the list can explain it.

If the following MACRO program is saved in the file
TRY.MAR, the assembler bombs with an access violation (see below).
This is an assembly time problem, not a run time problem.

	.macro sum a=r0, b=r2
	movl a, b
	.endm 
	.entry go,0
	sum  r3, r4
	$exit_s
	.end go


However, any of the following changes will allow it to assemble without
problems:

1)  Changing the name of the macro from sum to ssum.  Indeed, any three
    character macro name seems to cause the problem and any four character
    name seems to work ok.

2)  Removing the default values from the macro definition line makes it
    work ok.

3)  (Twilight zone effect)  Renaming the source file to any name of
    nine characters or longer makes it work ok.  For instance,
    if the source file is named MMM.MAR, it bombs.  If it is named
    TRYTRYTR.MAR it bombs.  If it is named TRYTRYTRY.MAR it works
    fine.

We will SPR this thing, but we are most curious as to what is going
on, and would appreciate any insight any of you might have.
For reference, this behaviour was observed on a VAX 780, and several
microVAX-II's, all running VMS version 4.4.


$ mac try

%SYSTEM-F-ACCVIO, access violation, reason mask=01, virtual address=F0500006, PC=0000CAF5, PSL=03C00008

  Improperly handled condition, image exit forced.

	Signal arguments	      Stack contents

	Number = 00000005		 00006BFC
	Name   = 0000000C		 0004F042
		 00000001		 00000001
		 F0500006		 000001C5
		 0000CAF5		 0004F055
		 03C00008		 00009249
					 0004F052
					 00000000
					 00000000
					 21C00000

	Register dump

	R0 = 00000004  R1 = 00008056  R2 = 00000004  R3 = 0004F03F
	R4 = 00006BFC  R5 = F0500002  R6 = 0004F042  R7 = 00008056
	R8 = 00000004  R9 = 0004DC46  R10= 00000020  R11= 000077A8
	AP = 7FF48110  FP = 7FF480D0  SP = 7FF4814C  PC = 0000CAF5
	PSL= 03C00008

Paul LaFollette LAFOLLETTE@TEMPLE.CSNET
David Weiner    WEINER@TEMPLE.CSNET
Robert Stafford STAFFORD@TEMPLE.CSNET

Dept. of Computer and Information Science
Temple University
Philadelphia, Pa. 19119