Trailing-Edge
-
PDP-10 Archives
-
BB-L014E-BM
-
autopatch/cbl12b.d04
There are no other files named cbl12b.d04 in the archive.
EDIT DESCRIPTIONS FOR COBOL-20-V12B
EDIT 40 FOR COBDDT
[SYMPTOM]
On TOPS-20, 12B only, COBDDT does not like subscripting and
qualification unless you type an escape after the dataname.
[DIAGNOSIS]
Break character was specified incorrectly.
[CURE]
Use correct break characters when parsing a dataname.
Install Edit 40 to COBDDT.
********************************************************************************
EDIT 41 FOR COBDDT
[SYMPTOM]
In COBDDT, qualification of a data-name fails.
[DIAGNOSIS]
In the qualification procedure, an AC was not properly
cleared.
[CURE]
Install edit 41 to COBDDT.
********************************************************************************
EDIT 42 FOR COBDDT
[SYMPTOM]
On TOPS-20, 12B only, COBDDT does not like subscripting and
qualification unless you type an escape after the dataname.
[DIAGNOSIS]
Break character was specified incorrectly.
[CURE]
Use correct break characters when parsing a dataname.
Install Edit 40 to COBDDT.
********************************************************************************
EDIT 1300 FOR COBOL
[SYMPTOM]
If a Subprogram has a Redefines data item in its Linkage
Section and the Using clause of the Procedure Division
header or of any Entry statement references only the
Redefines item and does not explicitly reference the
original Redefined item but the original data item is
referenced elsewhere in the Procedure Division code, the
reference to the original data item will be flagged with the
Fatal diagnostic message "Not declared in an ENTRY or PD
USING clause".
[DIAGNOSIS]
In Phase E of the compiler, the routine CMNGEN is not
checking for the existence of the original "brother" of the
Redefines data item.
[CURE]
Install edit 1300 to the compiler to do this checking, and
use the "brother" if available. Note: This is the official
version of this edit. Any other version is to be
disregarded.
********************************************************************************
EDIT 1301 FOR COBOL
[SYMPTOM]
Some cases of optmizing SKIP instructions cause the compiler
to abort with an Illegal Memory Reference at 0 on KI-10s.
[DIAGNOSIS]
AOS instruction incorrectly coded to adjust stuck pointer
instead of current stack entry pointed to.
[CURE]
Install Edit 1301 to the compiler.
********************************************************************************
EDIT 1302 FOR COBOL
[SYMPTOM]
Catastrophe in Phase E of the compiler with a Bad Table Link
with RMS Indexed files in some cases where the Record Key is
not specified in the SELECT statement. These cases involve
the WRITE, REWRITE, and DELETE verbs and the READ verb where
the Record Key clause is missing.
[DIAGNOSIS]
The routine UKADR in the module IOGEN is not checking for a
valid reference address for the Record Key specification for
the verb before calling LKNSET in order to obtain the Record
Key specs. A Fatal diagnostic message should be given if
this address is not available.
[CURE]
Install edit 1302 to the COBOL-74 compiler, which will cause
it to give the Fatal diagnostic.
********************************************************************************
EDIT 1303 FOR COBOL
[SYMPTOM]
Bad code generated for RMS variable length records, so that
the "Depending On" Error return is taken. If the compile
goes to completion the run-time message "Attempt to change
record size on rewrite" may be seen following an attempt to
write a record. In other cases the compile may fail with
the message "Transmission Error .. ?Cannot continue".
[DIAGNOSIS]
In the routine WRTM in IOGEN, the instruction to create the
variable length code sets up the proper value in the AC TE,
and this value is overwritten by other instructions prior to
calling the sizing routine SZDPVA. The instruction should
be moved down three positions so that it is just prior to
the call to the sizing routine.
[CURE]
Install edit 1303 to the COBOL-74 compiler.
********************************************************************************
EDIT 1304 FOR COBOL
[SYMPTOM]
COBOL-68 to COBOL-74 converter cannot convert a program if
the very first word of a copy library is a word that must be
converted to COBOL-74 syntax.
[DIAGNOSIS]
A byte pointer is left pointing to the right of the current
word in the line buffer. When a new library is seen,
initialize two more byte pointers.
[CURE]
Install edit 1304 to the COBOL compiler, and rebuild the
68274 Utility.
********************************************************************************
EDIT 1305 FOR COBOL
[SYMPTOM]
COBOL generates incorrect code for WRITE of variable length
record where there is an ADVANCING data-name clause.
[DIAGNOSIS]
No check is made for a depending variable in this case.
[CURE]
Install edit 1305 to the COBOL compiler to add test.
********************************************************************************
EDIT 1306 FOR COBOL
[SYMPTOM]
Bad table link at 526 214 catastrophe in Phase E.
[DIAGNOSIS]
In scan of data-itmes, AC TA is initialized with garbage
instead of the correct table address in some cases involving
the linkage section.
[CURE]
Install edit 1306 to the compiler.
********************************************************************************
EDIT 1307 FOR COBOL
[SYMPTOM]
MOVE of literal ZEROS to a signed COMP-3 data field does not
produce the same result as a MOVE of another field
containing COMP-3 ZEROS to the field.
[DIAGNOSIS]
The code at C3ZRO. in the module CMNGEN.MAC does not
distinguish between signed and unsigned COMP-3 receiving
operands, and always moves unsigned COMP-3 ZEROS to the
generated literal which is to be the source operand. The
preceding comments indicate that the code assumes the COMP-3
ZEROS are always signed, and then the code always puts in
the unsigned version. Also, the code assumes that if there
is a series of receiving operands they will all be unsigned.
Thus, the code also has to be changed so as to allow each
literal for the source operand to be generated separately.
[CURE]
Install edit 1307 to the compiler and re-build.
********************************************************************************
EDIT 1310 FOR COBOL
[SYMPTOM]
When two or more source copy Libraries are used in a COBOL
compile and each Library is on a different logical device
which in fact represents a different directory, for example:
R COBOL
*=COB:LIB1/L,DSK:LIB2/L PROG
the compiler will lose track of the first one in Phase C and
issue the message "%Library file DSK:LIB1.LIB not found -
continuing".
[DIAGNOSIS]
The word which stores the file extension, or type, has two
uses. The left half contains the file extension and the
right half contains a "dot seen" flag. When this flag is
on, a compare on this word will fail. Thus, we should
compare only the left half of the extension word. Also, we
should allow the null extension to match with .LIB in this
case.
[CURE]
Install edit 1310 to the compiler.
********************************************************************************
EDIT 1311 FOR COBOL
[SYMPTOM]
When a paragraph name appears twice in the same section, and
a reference is made to that paragraph, diagnostic 179 is
generated but placed at the end of the listing, rather than
immediately following the reference.
[DIAGNOSIS]
In some cases, when the diagnostic is generated, TA contains
the CURPRO value rather than the CURFLO value, causing
garbage line count and character position numbers to be
associated with the diagnostic.
[CURE]
When generating the diagnostic, insure that TA contains the
CURFLO value (edit 1311).
********************************************************************************
EDIT 1312 FOR COBOL
[SYMPTOM]
The following conditions:
02 EDIT-ITEM PIC -,---,---.99.
MOVE 200 TO EDIT-ITEM
DISPLAY EDIT-ITEM.
yield the output ", 200.00".
[DIAGNOSIS]
In the above picture clause, there is no room for a
significant digit before the first comma. It is therefore unclear
what to do about the comma.
[CURE]
Add a warning message to PSCAN, the picture scanner, to
notify the user in this situation. This is done by edit 1312 to
COBOL.
********************************************************************************
EDIT 1313 FOR COBOL
[SYMPTOM]
No diagnostic error message is reported in cases where the
conditional clause of an IF statement is followed by a
Carriage-return Line-feed pair and a section name or
paragraph name beginning in A-margin of the following line.
This problem also occurs for the special conditionals, such
as the WHEN clause of the SEARCH verb, the AT END clause of
the READ verb and the INVALID KEY clause of file record
access verbs.
[DIAGNOSIS]
When the syntax processor sees the A-margin flag, it
terminates the preceding conditional statement without
checking to see if a conditional clause was the last clause
being processed. It also forces a GO TO to the first
executable statement of the new paragraph or section as the
"True" object clause of the conditional.
[CURE]
Install edit 1313 to the COBOL compiler to cause a fatal
diagnostic message to be reported for these cases. The
diagnostic to be reported is "FATAL - STATEMENT EXPECTED".
********************************************************************************
EDIT 1314 FOR COBOL
[SYMPTOM]
Database schema contains a record description that includes a
subscripted item. When generating a BIND statement for this record,
if the compiler continues the line after the open parenthesis for the
subscript, a compiler error occurs. For example:
ENTER MACRO BIND USING ..... dataname (
- 1), .....
will cause a fatal error.
[DIAGNOSIS]
The compiler fails to treat the hyphen as a continuation
character, and instead assumes it is part of the subscript value.
[CURE]
Allow the GETWRD routine in GETITM to sense a continuation
character when looking for the first character of a word. This is
done by edit 1314 to COBOL version 12B.
********************************************************************************
EDIT 1315 FOR COBOL
[SYMPTOM]
While compiling a SEARCH statement, an illegal instruction is
encountered.
[DIAGNOSIS]
When saving A and B parameters while compiling the SEARCH,
EFLAGB is not saved, due to a bad ending address in the BLT
instruction. The macro that generates the ending address is using the
offset to the last location in the block, rather than the size of the
block which is one greater.
[CURE]
Increase the BLT ending address to include EFLAGB. This is
done by edit 1315 to COBOL.
********************************************************************************
EDIT 1316 FOR COBOL
[SYMPTOM]
There are three conditions necessary to cause the problem
symptom to appear. First, in a COBOL Library module a *
comment line appears at a point in the module other than at
the first line. Second, it is followed by a paragraph name
on the next line of the module. Third, the paragraph name
is subject to a replacement in the user's COBOL program.
The result is that the replacement paragraph name would be
appended to the * comment line in the output listing file
and it would be flagged with the fatal diagnostic message
"Statement Expected".
Although this problem is very similar to that handled by
edit 1063 to the COBOL compiler, it turned out to be a
different problem. Our investigation showed that edit 1063
handled only the case where the * comment line was the first
line of the Library copy member and was followed immediately
by a paragraph name subject to replacement on the next line
of the member.
[DIAGNOSIS]
The routine in GETITM which processes the characters of the
user's source program text was not recognizing a line-feed
at the end of a * comment line as indicated in the symptom
above as a legitimate end-of-line. In the case of a
replaced paragraph name which followed immediately on the
next line, the result was that it was not recognized as
being in A-Margin and it was appended to the comment line
and flagged with the fatal diagnostic message.
[CURE]
Install edit 1316 to the COBOL compiler to check for this
particular circumstance, and to force it to recognize the
replaced paragraph name as being in A-Margin.
********************************************************************************
EDIT 1317 FOR COBOL
[SYMPTOM]
If statement takes incorrect path when the items being
compared are larger than 2040 characters.
[DIAGNOSIS]
In comparisons larger than 2040 characters, the compiler is
generating multiple comparisons of 2040 characters or less, but not
linking them correctly to accomplish the overall comparison. In a
comparison against spaces, the true path will be taken if the first
2040 characters are spaces, even if there are nonspaces in the rest of
the item. Also, in some cases, the compiler is generating a multipart
comparison when it should be using a single comparison.
[CURE]
Change the linkage between multipart comparisons, and allow
the compiler to use a single part comparison whenever it can. This is
done by edit 1317 to COBOL version 12B.
********************************************************************************
EDIT 1320 FOR COBOL
[SYMPTOM]
COBOL-68 Version 12B does not conform strictly to the
ANSI-68 Standard regarding references to group data items
which contain data items which have the Occurs Depending
clause. Specifically for the arguments of MOVE statements
and conditionals, COBOL-68 uses the current number of Occurs
elements as indicated in the Depending data-name as the
basis of a group reference rather than the maximum length of
the Occurs data item. (See the ANSI-68 Standard, pages
2-109 and 2-110 of Table Handling Level 3. Refer especially
to item (5) at the bottom of page 2-110.)
[DIAGNOSIS]
COBOL-68 Version 12B does conform more closely to the
ANSI-74 Standard in this regard. The last version of
COBOL-68 to adhere to the ANSI-68 Standard was version 11.
Thereafter, it appeared more reasonable to adhere to the
specification of the ANSI-74 Standard in this regard. (See
the ANSI-74 Standard, pages III-2 thru III-4, especially
item (4) on page III-4.)
[CURE]
Install edit 1320 to version 12B of the compiler. Note: it
is strongly recommended that you do not install this edit
for COBOL-68 unless you require this usage. This edit is
supplied merely as a convenience to users who wish to have
continuity for this functionality when going directly from
COBOL-68 Version 11 to COBOL-68 Version 12B.
********************************************************************************
EDIT 1321 FOR COBOL
[SYMPTOM]
USE AFTER STANDARD {EXCEPTION} PROCEDURE
or
USE AFTER STANDARD {ERROR} PROCEDURE
on file-name-1 OPEN, file-name-2 OPEN...
fails after the first OPEN.
[DIAGNOSIS]
Syntax is wrong, it does not expect to see another
file-name.
[CURE]
Fix it.
********************************************************************************
EDIT 1322 FOR COBOL
[SYMPTOM]
If a COBOL program contains a paragraph which is performed
and which ends with a STOP RUN, and if that paragraph is not the last
paragraph in the program, a warning error occurs on compilation. The
same paragraph at the end of the program will not cause a warning.
[DIAGNOSIS]
The compiler fails to perform a check on the last paragraph
in the program to see if it ends with an unconditional transfer. A
warning should be issued whenever a PERFORMed paragraph ends with an
unconditional transfer.
[CURE]
Supplement the PROCEDURE DIVISION scan code executed at the
end of the program source, to check the last paragraph for
unconditional transfer termination. This is done by edit 1322 to
COBOL 12B.
********************************************************************************
EDIT 1323 FOR COBOL
[SYMPTOM]
When a larger alpha-numeric display field is moved to a
smaller edited alpha-numeric field with at least one X in
its picture clause, no truncation warning message is given.
[DIAGNOSIS]
In MOVGEN the code for generating the move to the
alpha-numeric edited field does not check the sizes of the
sending and receiving fields before it falls into the
generalized code for generating a move to an edited field of
either the numeric or alpha-numeric types.
[CURE]
Install edit 1323 to the compiler to do this test while
considering only alpha-numeric edited receiving fields.
********************************************************************************
EDIT 1324 FOR COBOL
[SYMPTOM]
Source data is passed to the .LST file buffer, but will not
be written out to the file if the buffer is full.
Subsequent source data is lost until the proper flags get
reset.
[DIAGNOSIS]
A new flag, DCCFLG, was created to determine if a
DATE-COMPILED statement is being processed. If so, the
comment entry is not supposed to be written out to the .LST
file. This should be overridden if a source line has an "*"
is column 7. Currently, the data is being sent to the print
buffer, but when the buffer is full, the write is not being
done if DCCFLG is on. The scanner continues reading and
processing source, but does no writes to the print file
while this flag is on.
[CURE]
In the module COBOLB, shut off the flag DCCFLG before
continuing to scan source that follows the DATE-COMPILED
comment entry.
********************************************************************************
EDIT 1325 FOR COBOL
[SYMPTON]
Source data is passed to the .LST file buffer, but will not
be written out to the file if the buffer is full.
Subsequent source data is lost until the proper flags get
reset.
[DIAGNOSIS]
A new flag, DCCFLG, was created to determine if a
DATE-COMPILED statement is being processed. If so, the
comment entry is not supposed to be written out to the .LST
file. This should be overridden if a source line has an "*"
in column 7. Currently, the data is being sent to the print
buffer, but when the buffer is full, the write is not being
done if DCCFLG is on. The scanner continues reading and
processing source, but does no writes to the print file
while this is on.
[CURE]
In the module COBOLB, shut off flag DCCFLD before scanning
source that follows the DATE-COMPILED comment entry.
********************************************************************************
EDIT 1326 FOR COBOL
[SYMPTOM]
Installing edit 1322 to COBOL version 12B causes the
cross reference portion of the output listing to be dropped.
[DIAGNOSIS]
The additional checking done on the last paragraph
in a program, after installing edit 1322, includes a call to
the PUTCRF routine. Since the cref file was already closed,
this call has the effect of writing a new null file over the
file that actually has the cref information.
[CURE]
Before executing the code added by edit 1322, turn
off CREFSW, which will cause the call to PUTCRF to return
immediately.
********************************************************************************
EDIT 1327 FOR COBOL
[SYMPTOM]
The IDENTIFICATION DIVISION statement is flagged with a
syntax error stating "Fatal - Must be subscripted".
[DIAGNOSIS]
A RELEASE statement was within an IF statement that was
testing a subscripted field. Since Edit 1126 to SRTGEN
causes RELEASE code to be followed by code to clear the
input buffer, this code was being generated, but without
setting up the new "B" operand. The MOVGEN code was using
the characteristics of the previous "B" operand which
specified that it requires a subscript. This caused the
compiler to expect a subscript.
[CURE]
Edit 1327 to SRTGEN will call the routine SETOPB to set up
the "B" operand before continuing on to the MOVGEN code.
********************************************************************************
EDIT 1330 FOR COBOL
[SYMPTOM]
A warning is printed on the user's console, "%MEMORY SIZE
exceeded in object program", even though the generated
program may not be larger than the declared memory size.
[DIAGNOSIS]
Phase B computes the memory size based on the value
specified in the OBJECT-COMPUTER statement if there is one.
This value is stored in OBJSIZ. Phase G uses this value to
compare it with the size of the resulting program and if the
program is larger, prints the warning on the console. This
message may be erroneous because Phase G is looking at only
the right half of the value of OBJSIZ.
[CURE]
COBOLB has been changed to test on the values generated for
memory size. A warning will be produced if the result is
greater than 777777 words octal and this value will be
assigned as the memory size. This will eliminate an
incorrect warning from being produced later at the end of
the compilation.
********************************************************************************
EDIT 1331 FOR COBOL
[SYMPTOM]
Compiler fails in phase E with an Illegal UUO on TOPS-10 or
an Illegal instruction on TOPS-20.
[DIAGNOSIS]
While generating code to handle the WRITE statement, IOGEN
called SETOPN, which noted the data item associated with the
ADVANCING phrase had been syntaxed. An error flag was set,
and control passed back to the routine WADVGB. This routine
did not check the error flag and continued processing until
the compiler failed.
[CURE]
Edit 1331 to IOGEN will put a test in routine WADVGB and
jump to an error routine to syntax the WRITE statement
before continuing to process.
********************************************************************************
EDIT 1332 FOR COBOL
[SYMPTOM]
An error is given if PROGRAM COLLATING SEQUENCE clause is
present and is not the last clause in the OBJECT-COMPUTER
paragraph.
[DIAGNOSIS]
The PROGRAM COLLATING SEQUENCE clause advances over the
comment and the next token. This does not give an error at
end of the paragraph since all that is removed is the
period. If it is not at the end of the paragraph then the
first token of the next clause is removed thus giving the
error.
[CURE]
Don't advance over the next token.
********************************************************************************
EDIT 1333 FOR COBOL
[SYMPTOM]
Syntax error using "ORGANIZATION IS RELATIVE WITH CHECKPOINT
OUTPUT".
[DIAGNOSIS]
The syntax tree for the above syntax did not allow "with
checkpoint output" for files whose organization is relative
or sequential.
[CURE]
Fix syntax tree to allow "with checkpoint output" for files
whose organization is relative or sequential.
********************************************************************************
EDIT 1334 FOR COBOL
[SYMPTOM]
If a COBOL program contains a paragraph which is
performed and which ends with a STOP RUN, and if that
paragraph is not the last paragraph in the program, a
warning error occurs on compilation. The same paragraph at
the end of the program will not cause a warning.
[DIAGNOSIS]
The compiler fails to perform a check on the last
paragraph in the program to see if it ends with an
unconditional transfer. A warning should be issued whenever
a PERFORMed paragraph ends with an unconditional transfer.
[CURE]
Supplement the PROCEDURE DIVISION scan code executed at
the end of the program source, to check the last paragraph
for unconditional transfer termination. This is done by edit
1334 to COBOL 12B.
********************************************************************************
EDIT 1335 FOR COBOL
[SYMPTOM]
A Report Writer statement specifying a SOURCE field which is
subscripted by an implicitly defined index will be given a
syntax error of "FATAL - CBL251 Improper subscript".
[DIAGNOSIS]
Implicitly defined subscripts are held in HLDTAB until the
entire DATA DIVISION has been scanned, and are then
transferred into DATAB by CLEANC. This is too late for the
Report Writer routines which expected to find the items in
DATAB and declared them as invalid subscripts when they
weren't there.
[CURE]
If REPORT SECTION is scanned, set a flag and call up the
routine in CLEANC to make DATAB entries for all indexes.
Then proceed with the Report Writer routines.
********************************************************************************
EDIT 1336 FOR COBOL
[SYMPTOM]
For moves that are not group to group or elementary to elementary
and use fields with USAGE of either INDEX or COMP-3, incorrect data is
being moved.
[DIAGNOSIS]
When readjusting the modes for a group move, the table indexes
for INDEX and COMP-3 fields are not being converted. The table used
in MOVGEN for usage modes has different values associated with the
modes than the DATAB, therefore the values must be adjusted. INDEX
fields should be converted to have the same table index as COMP
fields. COMP-3 fields are changed to use the slot that would have
been associated with INDEX fields.
[CURE]
Edit 1336 to MOVGEN will adjust the values for the table indexes
for the INDEX and COMP-3 fields.
********************************************************************************
EDIT 1337 FOR COBOL
[SYMPTON]
MOVE literal to EDITED-DATA-FIELD will be syntaxed as "BAD
USAGE - COMPILER ERROR".
[DIAGNOSIS]
The receiving field has an internal length of one. Rather
than store a LITERAL, the mode of the A operand is changed
to a 14 to represent immediate mode, and the MXX. routine
called to generate a half move immediate. This routine
tests on the modes of the operands and finds this value
invalid, so a compiler error is cited and this code
bypassed.
[CURE]
Rather than jump back through MXX., set up the rest of the
parameters and call GMOV.I directly to build the HRRZI
statement to generate the single character literal. Edit
1337 to MOVGEN will accomplish this.
********************************************************************************
EDIT 200 FOR ISAM
[SYMPTOM]
THE PAGE COUNT PRINTED ON A REPORT WRITER PAGE OTHER THAN A PAGE
HEADER IS ONE TOO HIGH
[DIAGNOSIS]
THE PAGE COUNT IS INCREMENTED AFTER THE PAGE HEADING ROUTINE.
AS A RESULT THE PAGE COUNT IS CORRECT WHEN IT IS REFERENCED
IN THE PAGE HEADER LINES, BUT IT IS ONE TOO HIGH ANY OTHER TIME
( SUCH AS ANY DETAIL OR PAGE FOOTER LINES).
[CURE]
1. DURING THE INITIATION OF REPORT SET PAGE COUNT TO ZERO INSTEAD OF ONE
2. INCREMENT PAGE COUNT AT THE BEGINNING OF PAGE HEADING ROUTINE INSTEAD
OF AT THE END OF IT.
THE CODE CHANGE IS IN THE REPORT GENERATOR ROUTINE, RPWGEN
********************************************************************************
EDIT 202 FOR ISAM
[SYMPTOM]
FOR REPORT WRITING THE GENERATE STATEMENT CAUSES RUN TIME ILLEGAL
UUO AT USER PC = 000000. THIS OCCURS IF USER HAS A CONTROL FOOTING.
[DIAGNOSIS]
THE REPORT WRITER GENERATE CODE RPWGEN GENERATES
PUSHJ 17,0 FOR CALL TO CF ROUTINE.
[CURE]
PUT IN PROPER CODE TO GENERATE CF ADDRESS.
***THIS WILL BE INCLUDED IN VERSION 6A RELEASE***
********************************************************************************
EDIT 203 FOR ISAM
[SYMPTON]
If ISAM comes across a duplicate key or keys out of order,
only the first character of the key is displayed with the
appropriate error message, e.g.,
? ISMDPK Two key with equal value = 3
[DIAGNOSIS]
The AC containing the byte-pointer is clobbered after
displaying the first character of the key. This occurs
because the AC being used to set up the byte-pointer is also
used to output to the terminal.
[CURE]
Use another AC to set up the byte-pointer.
********************************************************************************
EDIT 1000 FOR LIBOL
[SYMPTOM]
In COBOL-74 Retain of a Relative File Record by Key fails with a
Memory Protection Violation.
[DIAGNOSIS]
The code for determining the block number to retain for the Relative
File record falls into the code for ISAM file block number.
[CURE]
Install edit 1000 to LIBOL for COBOL-74.
********************************************************************************
EDIT 1001 FOR LIBOL
[SYMPTOM]
In a COPY REPLACING, if there is an "ALL" literal that does
not get replaced then the "ALL" is lost.
[DIAGNOSIS]
The "ALL" seen flag was being lost.
[CURE]
Check for this case and make sure the "ALL" flag is put back
on.
********************************************************************************
EDIT 1002 FOR LIBOL
[SYMPTOM]
A program that has a CALL or ENTER USING with an illegal or
missing data-name gets poor diagnostics out of Phase D and
gets "Wrong number of operands passed from Phase D" message
in Phase E.
[DIAGNOSIS]
The syntax trees do not detect any operands after USING is
seen. If only illegal operands are seen, then it looks like
no operands were seen. Phase E checks for no operands and
gives a catch-all error message.
[CURE]
Detect missing and illegal arguments in DTREE. Then in
Phase E, just return if no arguments have been seen since
DTREE will have given a better error message already.
********************************************************************************
EDIT 1003 FOR LIBOL
[SYMPTOM]
Certain data-names appear twice in the cross-reference table
as being defined on the same line.
[DIAGNOSIS]
This was broken several years ago by edit 373. The
data-name is initially defined and CREFed. If it is then a
lower level number than the previous data-item, it gets sent
back to DA29 where it gets CREFed again. Previously, if the
data-name was already defined it never got CREFed again.
[CURE]
Go back to DA29.0 (which is where it ends up) which bypasses
the second CREFing.
********************************************************************************
EDIT 1004 FOR LIBOL
[SYMPTOM]
With input from a signed integer field and a COMP-1 field a
multiplication which places the result into the signed
integer field produces a strange result in cases where one
of the inputs is negative and the absolute value of the
product is less than 1.
[DIAGNOSIS]
With BIS turned on, such arithmetic is done as double
precision. If the product is negative, the FIX routine is
supposed to extend the sign bit of the first word of the
product to the second word. However, due to a coding error,
it was failing to do this. In cases where the absolute
value of the product is 1 or greater, this error was causing
no problem with the output result.
[CURE]
Install edit 1004 to LIBOL to cause the FIX routine with BIS
turned on to extend the sign properly to the second word of
the operand.
********************************************************************************
EDIT 1005 FOR LIBOL
[SYMPTOM]
In COBOL-68 and COBOL-74 when IF or SEARCH are contained
within the WHEN clause of the SEARCH verb, the COBOL
compiler generates bad executable code.
[DIAGNOSIS]
IF and SEARCH are conditional statements, and the ANSI
standards for COBOL-68 and COBOL-74 explicitly disallow them
from the WHEN clause of the SEARCH verb. Thus, in order to
conform to those versions of the ANSI standard, such
syntactical usage should not be allowed. If the user feels
that he requires such usage, he should investigate the
possibility of utilizing the PERFORM verb within the range
of the WHEN clause.
[CURE]
Install edit C1005 to the COBOL-68 and COBOL-74 compilers,
which will specifically flag such usage as a fatal
compile-time error. Accordingly, any ELSE clause following
such a WHEN clause will be interpreted as terminating the
range of control of the SEARCH verb.
********************************************************************************
EDIT 1006 FOR LIBOL
[SYMPTOM]
Fatal error "Fatal - Conflicts with a use procedure in
section section-name" is printed at end of compile.
[DIAGNOSIS]
If a use procedure was declared for error on file open and
any general error use procedures were also declared, the
compiler would generate a fatal error, even though there was
no conflict.
[CURE]
Eliminate test that declares a conflict exists.
********************************************************************************
EDIT 1007 FOR LIBOL
[SYMPTOM]
`LINE NEXT PAGE' in a report causes a formfeed, but
PAGE-COUNTER is not incremented.
[DIAGNOSIS]
No code to do so is generated.
[CURE]
Have WRIGGO in RPWGEN, which handles `LINE NEXT PAGE',
generate an `AOS PAGE-COUNTER'.
********************************************************************************
EDIT 1010 FOR LIBOL
[SYMPTOM]
When compiling a program with /O using the combination no
REL file and no listing file, AS1.TMP is not deleted.
[DIAGNOSIS]
Channel 12, which is used by NNNAS1.TMP, is also being used
as a secondary channel for NNNAS2.TMP. When AS2.TMP is
finished with channel 12, no one tries to specify channel 12
back to AS1.TMP. Therefore, AS1.TMP is never deleted.
[CURE]
When AS2.TMP is through with its secondary channel (12),
specify the channel back to AS1.TMP.
********************************************************************************
EDIT 1011 FOR LIBOL
[SYMPTOM]
If an FD has a RECORD CONTAINS clause, COBOLC version 12A
believes it must have a DATA RECORD, even if it has a
REPORTS clause.
[DIAGNOSIS]
This case was not considered.
[CURE]
Check for a REPORTS clause. If there is one, do not
complain that there is no DATA RECORD.
********************************************************************************
EDIT 1012 FOR LIBOL
[SYMPTOM]
COBOL-74 was not handling END something where something was
not legal.
[DIAGNOSIS]
Missing syntax causing compiler to loop.
[CURE]
Add extra nodes to solve the problem in DTREE.
********************************************************************************
EDIT 1013 FOR LIBOL
[SYMPTOM]
If the = = delimiting the end of pseudo-text in a COPY
REPLACING is missing then the compiler will loop forever.
[DIAGNOSIS]
The compiler is not recognizing that it has encountered
end-of-file.
[CURE]
Test for end-of-file and give a fatal error message.
********************************************************************************
END OF COBOL-20-V12B