Google
 

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