With -std=cobol2014 or -std=cobol2002, cobc rejects the plural form of the FD's REPORT clause, REPORTS ARE.
rpt1.cob (attached, free format):
IDENTIFICATION DIVISION.
PROGRAM-ID. RPT1.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RPTF ASSIGN TO "rpt1.out".
DATA DIVISION.
FILE SECTION.
FD RPTF
REPORTS ARE R1 R2.
REPORT SECTION.
RD R1 PAGE LIMIT 10.
01 D1 TYPE DETAIL LINE 1.
05 COLUMN 1 PIC X(3) VALUE "ONE".
RD R2 PAGE LIMIT 10.
01 D2 TYPE DETAIL LINE 1.
05 COLUMN 1 PIC X(3) VALUE "TWO".
PROCEDURE DIVISION.
OPEN OUTPUT RPTF
INITIATE R1
GENERATE D1
TERMINATE R1
CLOSE RPTF
DISPLAY "DONE"
STOP RUN.
cobc -x -free -std=cobol2014 -o rpt1 rpt1.cob
3.2.0 and 3.3-dev r5751 both stop with
rpt1.cob:10: error: syntax error, unexpected Identifier, expecting EXTERNAL or GLOBAL
and three follow-on errors. The program compiles if line 10 says REPORT IS R1 R2., and also without -std or with -std=cobol85.
The REPORT clause is REPORT IS or REPORTS ARE, followed by report-names, and REPORTS is a reserved word (ISO/IEC 1989:2023 13.18.46.2 and 8.9; the same in 2002 and in the 2014 FCD).
This looks like a typo in the word lists: config/cobol2014.words (lines 403-404) and config/cobol2002.words (lines 401-402) list REPORT twice and leave out REPORTS, so REPORTS is not reserved under those dialects. The other dialect lists have REPORT, REPORTING, REPORTS.
The attached reports-are-words.patch (against 3.3-dev r5751) replaces the duplicate REPORT line with REPORTS in both files, after REPORTING as in cobol85.words, and adds a testsuite case, "REPORTS ARE in the FD with -std", to syn_reportwriter.at, with ChangeLog entries. With it the program compiles and runs under both dialects. make check: 1373 expected, 9 skipped, 0 failed (1372 unpatched); the new test fails without the patch.
bugs #1270, case 6, is another typo in cobol2014.words; the two patches apply together.
GnuCOBOL 3.2.0 (Ubuntu gnucobol3 3.2-4build1) and 3.3-dev r5751 (CI snapshot 3.3-dev.138 of 2026-10-29), x86_64 Linux, both run 2026-11-04.