HP OpenVMS Systemsask the wizard |
The Question is:
DEC BASIC V1.3-000
Small test program for question submitted about 30 minutes ago.
Recap.
basic/opt=LEVEL=2 testfunc.bas
generates UNINIT INFORMATIONALs referencing the line:
NAMBITS(1)="TEST"
subsequent exe ACCVIOs in BASRTL.
Using /noopt or /opt=LEVEL=1 seems to remove the problem.
More information. Removing the following lines also removes the INFO messages
when /opt is used...
IF GOAT1_MATCHED = "C" THEN
JJ=ANOTHERFUNC(II, NAMBITS(), GOAT1_TITLE, GOAT1_GIVEN,
GOAT1_OTHER, GOAT1_LASTNM, GOAT1_MATCHED )
MATCHED=MATCHED+JJ
END IF
Regards,
Andrew
====== start test function ================
%TITLE "TESTFUNC"
FUNCTION LONG TESTFUNC BY DESC ( &
STRING GOATEE, &
STRING GOAT1_MATCHED, &
STRING GOAT1_TITLE, &
STRING GOAT1_GIVEN, &
STRING GOAT1_OTHER, &
STRING GOAT1_LASTNM &
)
EXTERNAL LONG FUNCTION ANOTHERFUNC ( INTEGER, STRING DIM (), STRING,
STRING, &
STRING, STRING, STRING )
DECLARE INTEGER II
DECLARE INTEGER JJ
DECLARE INTEGER MATCHED
DECLARE STRING NAMBITS(1 TO 6)
DECLARE STRING TMP
NAMBITS(1)="TEST"
TESTFUNC = 0%
MATCHED=0%
TMP=EDIT$(GOATEE,8%+16%+128%)
IF GOAT1_MATCHED = "C" THEN
JJ=ANOTHERFUNC(II, NAMBITS(), GOAT1_TITLE, GOAT1_GIVEN,
GOAT1_OTHER, GOAT1_LASTNM, GOAT1_MATCHED )
MATCHED=MATCHED+JJ
END IF
TESTFUNC = MATCHED
END FUNCTION !
The Answer is : Please upgrade your BASIC compiler to a more current release, and (re)verify the presence of this error. (BASIC V1.3 is over five years old, and two subsequent compiler releases are available as of this writing.) Also please review topic (1661), as that topic contains discussions of common coding errors. Also please see topic (9027), as that appears potentially related to this BASIC error.
|