GPRE fails to place an "END-IF" statement in a COBOL program

Abstract: GPRE fails to place an "END-IF" statement in a COBOL program

Problem: Gpre fails to add in a matching "END-IF" for an "IF . . . THEN" command when processing a COBOL program file. Then example .e file is found on jabba:/usr/gds/support/bug_8465 along with a resulting .e.cbl file. The problem was encountered using version HP-V4.0B(2), and was tested using the version HU-V4.5.0.69. The problem reproduced under both of these versions. Gpre was ran with the following command line arguments: /usr/interbase/bin/gpre -co brioux.e The source code looks as follows: IDENTIFICATION DIVISION. PROGRAM-ID. PCOCO. ENVIRONMENTAL DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. DATABASE COCO = FILENAME '/usr/interbase/examples/v3/atlas.gdb' EXEC SQL INCLUDE SQLDA END-EXEC 01 PASS-ACTION PIC X(1). 01 WS-CITY PIC X(20). 01 FILENAME PIC X(40). PROCEDURE DIVISION. MAIN ROUTINE. READY COCO. IF (PASS-ACTION = "a" ) FINISH COCO END-IF STOP RUN. END. The resulting .cbl file looks as follows: * ********** Preprocessed module -- do not edit ************** * ********** Preprocessed module -- do not edit ************** * ********** Preprocessed module -- do not edit ************** * ********** Preprocessed module -- do not edit ************** * ********** Preprocessed module -- do not edit ************** * **************** gpre version HU-V4.5.0.69 ********************* IDENTIFICATION DIVISION. PROGRAM-ID. PCOCO. ENVIRONMENTAL DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. * DATABASE COCO = FILENAME '/usr/interbase/examples/v3/atlas.gdb' * **** GDS Preprocessor Definitions **** 01 isc_blob_null PIC S9(18) USAGE COMP VALUE IS 0. 01 ISC_SQLCODE PIC S9(9) USAGE COMP EXTERNAL. 01 COCO IS GLOBAL PIC S9(9) USAGE COMP VALUE IS 0. 01 isc_1db PIC X(36) VALUE IS "/usr/interbase/examples/v3/atlas.gdb". 01 ISC_TRANS IS GLOBAL PIC S9(9) USAGE COMP VALUE IS 0. 01 ISC_STATUS_VECTOR IS GLOBAL. 03 ISC_STATUS PIC S9(9) USAGE COMP OCCURS 20 TIMES. 01 ISC_STATUS_VECTOR2 IS GLOBAL. 03 ISC_STATUS2 PIC S9(9) USAGE COMP OCCURS 20 TIMES. 01 ISC_ARRAY_LENGTH PIC S9(9) USAGE COMP. 01 SQLCODE IS GLOBAL PIC S9(9) USAGE COMP-5 VALUE IS 0. * **** end of GPRE definitions **** * EXEC SQL INCLUDE SQLDA * END-EXEC 01 PASS-ACTION PIC X(1). 01 WS-CITY PIC X(20). 01 FILENAME PIC X(40). PROCEDURE DIVISION. MAIN ROUTINE. * READY COCO CALL "isc_attach_database" USING BY VALUE 0, BY VALUE 36, - BY REFERENCE isc_1db, BY REFERENCE COCO, BY VALUE 0, BY VALUE 0 IF (PASS-ACTION = "a" ) * FINISH COCO IF ISC_TRANS NOT = 0 THEN CALL "isc_commit_transaction" USING BY VALUE 0, - BY REFERENCE ISC_TRANS END-IF IF COCO NOT = 0 THEN CALL "isc_detach_database" USING BY VALUE 0, BY REFERENCE COCO END-IF STOP RUN. END. Solution: None