Getting the error in a few bits of Macro, for example:
$ macro FIND_SIZE.MAR
LLVM ERROR: non-zero initializer found in section 'FINDMAP$$VSI$$'
and of course no object produced.
I didn't get this under V9.2-2
Coe in question is:
Code: Select all
.TITLE FIND_SIZE
; F I N D _ S I Z E
; -----------------
;
; THIS ROUTINE RETURNS THE NUMBER OF BLOCKS ALLOCATED TO
; THE SPECIFIED FILE.
; IF ANY ERROR OCCURS OPENING THE FILE THIS ROUTINE RETURNS -1.
;
;--------------------------------------------------------------------
.PSECT FINDMAP,LONG,PIC,OVR,GBL,SHR,NOEXE
FILE_FAB: ; FILE ACCESS BLOCK FOR
$FAB ; GETTING ATTRIBUTES
.PSECT $CODE,NOWRT,PIC,SHR,LONG
.ENTRY FIND_SIZE,^M<R2,R3,R4> ; SAVE REGISTERS 2,3 AND 4
FIND_SIZE_FILE = 4 ; POSITION IN PARAMERER LIST
; OF FILE NAME STRING
MOVL #-1,R3 ; ASSUME ERROR
MOVAL @FIND_SIZE_FILE(AP),R2 ; MOVE ADDRESS OF STRING DESCRIPTOR
MOVAL @4(R2),R4 ; NOW MOVE THE ADDRESS OF THE TEXT
$FAB_STORE - ; MOVE VALUES INTO FAB
FAB=FILE_FAB, - ; SPECIFY FAB ADDRESS
FNA=(R4), - ; FILESPEC STRING ADDRESS
FNS=(R2) ; FILESPEC STRING SIZE
$OPEN FAB=FILE_FAB ; OPEN THE FILE TO GET THE ATRIBUTES
BLBC R0,TIDY_UP ; WATCH OUT FOR ERRORS
MOVL FILE_FAB+FAB$L_ALQ,R3 ; GET ALLOCATED SIZE INTO R3
BRB TIDY_UP ; CLOSE FILE BEFORE EXIT
TIDY_UP:
$CLOSE FAB=FILE_FAB ; CLOSE THE FILE AFTERWARDS
MOVL R3,R0 ; AND RETURN THE SIZE OR -1 IF ERROR
RET
.END
Anybody any the wiser?