diff --git a/gcc/cobol/UAT/failsuite.src/syn_definition.at b/gcc/cobol/UAT/failsuite.src/syn_definition.at index 88282ffb9cc957af1afc3f90018262286eb686d8..a93e341ea734687d277d39ceb2f1f0186a47498e 100644 --- a/gcc/cobol/UAT/failsuite.src/syn_definition.at +++ b/gcc/cobol/UAT/failsuite.src/syn_definition.at @@ -68,26 +68,6 @@ AT_CHECK([./a.out], [0], [134 ], []) AT_CLEANUP -AT_SETUP([Screen section starts with 78-level]) -AT_KEYWORDS([screen definition]) -AT_XFAIL_IF([test "SCREEN" != "implemented"]) - -AT_DATA([prog.cob], [ - IDENTIFICATION DIVISION. - PROGRAM-ID. prog. - - DATA DIVISION. - SCREEN SECTION. - 78 const VALUE "x". -]) - -AT_CHECK([$COMPILE_ONLY prog.cob], [0], [], -[prog.cob:6: syntax error at 'SCREEN' -]) -AT_CLEANUP - - - AT_SETUP([PROCEDURE DIVISION RETURNING item (1)]) AT_KEYWORDS([definition runmisc]) AT_DATA([prog.cob], [ diff --git a/gcc/cobol/UAT/failsuite.src/syn_file.at b/gcc/cobol/UAT/failsuite.src/syn_file.at index 4de11b110bb05d691166b9095f7b56b793327dba..e1744463edfcb2b594cfbcb8d165ea85ce091cdb 100644 --- a/gcc/cobol/UAT/failsuite.src/syn_file.at +++ b/gcc/cobol/UAT/failsuite.src/syn_file.at @@ -22,7 +22,6 @@ AT_SETUP([DECLARATIVES invalid procedure reference (2)]) AT_KEYWORDS([file]) -AT_SKIP_IF([test declaratives != goto]) AT_DATA([prog.cob], [ IDENTIFICATION DIVISION. PROGRAM-ID. prog. @@ -47,47 +46,14 @@ AT_DATA([prog.cob], [ PP02. OPEN INPUT TEST-FILE. CLOSE TEST-FILE. + *> P02 should be inaccessible at this point PERFORM P02. GO TO P02. STOP RUN. ]) - AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], [prog.cob: in section 'PP01': prog.cob: in paragraph 'PP02': prog.cob:26: error: invalid reference to 'P02' (in DECLARATIVES) ]) - AT_CLEANUP - - -AT_SETUP([RECORDING MODE]) -AT_KEYWORDS([file extensions]) -AT_XFAIL_IF([test "$COB_DIALECT" != "ibm"]) - -AT_DATA([prog.cob], [ - IDENTIFICATION DIVISION. - PROGRAM-ID. prog. - - ENVIRONMENT DIVISION. - INPUT-OUTPUT SECTION. - FILE-CONTROL. - SELECT f ASSIGN "f.dat" LINE SEQUENTIAL. - - DATA DIVISION. - FILE SECTION. - FD f RECORDING MODE IS U. - 01 x PIC X. - - PROCEDURE DIVISION. - OPEN INPUT f - CLOSE f - . -]) - -AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], -[cobol1: warning: RECORDING MODE ignored, not defined by ISO 2023 -]) -AT_CLEANUP - - diff --git a/gcc/cobol/UAT/failsuite.src/syn_misc.at b/gcc/cobol/UAT/failsuite.src/syn_misc.at index 9c4e1cd40b66be8af979fa6e2c7593ba5146f12c..a2fc97bcb66ccdcf2d40d5be9ddb4b8eddb90de6 100644 --- a/gcc/cobol/UAT/failsuite.src/syn_misc.at +++ b/gcc/cobol/UAT/failsuite.src/syn_misc.at @@ -20,83 +20,6 @@ ### GnuCOBOL Test Suite -AT_SETUP([NX literals]) -AT_KEYWORDS([misc]) -AT_XFAIL_IF(test national_hex != implmented) -AT_DATA([prog.cob], [ - IDENTIFICATION DIVISION. - PROGRAM-ID. prog. - PROCEDURE DIVISION. - *> Valid form - DISPLAY NX"265E" - DISPLAY NX"0123456789ABCDEF" - - *> invalid form - DISPLAY NX"GH" - NX"1". -]) -# Technically, this test fails because of doubled double-quote in the -# stderr text, which serves the syntax highlighting in emacs -# autotest-mode. As a matter of ISO Cobol, it is expected to fail -# because NX is unimplmeented. -AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], -[prog.cob:6: syntax error: National not implemented at '265E' -prog.cob:7: syntax error: National not implemented at '0123456789ABCDEF' -prog.cob:10: syntax error: symbol 'NX' not found at '""' -prog.cob:11: syntax error: hex literal '1' has an odd number (1) of characters at '1' -cobol1: error: failed compiling prog.cob -]) -AT_CLEANUP - - -AT_SETUP([binary literals]) -AT_KEYWORDS([misc extensions ]) -AT_XFAIL_IF(test binary_literals != implmented) -AT_DATA([prog.cob], [ - IDENTIFICATION DIVISION. - PROGRAM-ID. prog. - PROCEDURE DIVISION. - DISPLAY B"101010" - DISPLAY B"111111111111111111111111111111111111111111111111111 - - "1111111111111" *> " Syntax highlighting hack - - DISPLAY B"23" - DISPLAY B"111111111111111111111111111111111111111111111111111 - - "111111111111111111111111111111111111111111111111111 - - "11111111111111111111111111111111111111111111111111" - STOP RUN. -]) - -AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], -[cobol1: warning: Boolean literals are not expected to work correctly -prog.cob:9: syntax error: symbol 'B' not found at '""' -prog.cob:10: error: input inconceivably long at '11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' -cobol1: error: failed compiling prog.cob -]) -AT_CLEANUP - - -# cobc says this is a valid program. Maybe, but it is pointless. -# The only utility for a program with a global declarative but no procedure body -# is if it has a contained program that could invoke its declaratives. -AT_SETUP([DECLARATIVES, but no program]) -AT_KEYWORDS([misc parsing]) -AT_XFAIL_IF([test "$COB_DIALECT" != "gnu"]) - -AT_DATA([prog.cob], [ - IDENTIFICATION DIVISION. - PROGRAM-ID. prog. - PROCEDURE DIVISION. - DECLARATIVES. - GLOBAL-SECTION SECTION. - USE ERROR OUTPUT. - END DECLARATIVES. - *> This should not generate a parsing error - END PROGRAM prog. -]) -AT_CHECK([$COMPILE prog.cob], [0], [], []) -AT_CHECK([./a.out], [0], [], []) -AT_CLEANUP AT_SETUP([X literals]) AT_KEYWORDS([misc]) @@ -113,7 +36,7 @@ AT_DATA([prog.cob], [ X"1" END-DISPLAY. ]) -AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], []) +AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], [Needs better error messages]) AT_CLEANUP diff --git a/gcc/cobol/UAT/skipsuite.src/run_file.at b/gcc/cobol/UAT/skipsuite.src/run_file.at index 107d0bbc367c9704e1400d52778dfa8cd8fc5c9c..bdd8ddf768228b872b7a07a164499b9e2867bbb5 100644 --- a/gcc/cobol/UAT/skipsuite.src/run_file.at +++ b/gcc/cobol/UAT/skipsuite.src/run_file.at @@ -5419,3 +5419,28 @@ libcob: prog.cob:61: warning: implicit CLOSE of g ('out.txt') AT_CLEANUP + + +AT_SETUP([RECORDING MODE (IBM QSAM)]) +AT_KEYWORDS([file extensions]) +AT_XFAIL_IF([test "$COB_DIALECT" != "ibm"]) +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT f ASSIGN "f.dat" LINE SEQUENTIAL. + DATA DIVISION. + FILE SECTION. + FD f RECORDING MODE IS U. + 01 x PIC X. + PROCEDURE DIVISION. + OPEN INPUT f + CLOSE f + . +]) +AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], +[cobol1: warning: RECORDING MODE ignored, not defined by ISO 2023 +]) +AT_CLEANUP diff --git a/gcc/cobol/UAT/skipsuite.src/syn_definition.at b/gcc/cobol/UAT/skipsuite.src/syn_definition.at index 1037a93d2935b0c3d383ef1a37ff91785df5c62e..5f3a717cbafbe330085d3fa30181fd3d287ef1fa 100644 --- a/gcc/cobol/UAT/skipsuite.src/syn_definition.at +++ b/gcc/cobol/UAT/skipsuite.src/syn_definition.at @@ -1023,3 +1023,21 @@ prog.cob:29: error: 'SOME-DATA' not level 01 or 77 AT_CLEANUP +AT_SETUP([Screen section starts with 78-level]) +AT_KEYWORDS([screen definition]) +AT_XFAIL_IF([test "SCREEN" != "implemented"]) +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + + DATA DIVISION. + SCREEN SECTION. + 78 const VALUE "x". +]) +AT_CHECK([$COMPILE_ONLY prog.cob], [0], [], +[prog.cob:6: syntax error at 'SCREEN' +]) +AT_CLEANUP + + + diff --git a/gcc/cobol/UAT/skipsuite.src/syn_misc.at b/gcc/cobol/UAT/skipsuite.src/syn_misc.at index 7613b1b7b2fea7f092a7496cfb18221a4883c728..b12e105a3241288e186fba7b2168da80436426c6 100644 --- a/gcc/cobol/UAT/skipsuite.src/syn_misc.at +++ b/gcc/cobol/UAT/skipsuite.src/syn_misc.at @@ -5385,3 +5385,80 @@ correct X > Y AT_CLEANUP +AT_SETUP([NX literals]) +AT_KEYWORDS([misc]) +AT_XFAIL_IF(test national_hex != implmented) +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + PROCEDURE DIVISION. + *> Valid form + DISPLAY NX"265E" + DISPLAY NX"0123456789ABCDEF" + + *> invalid form + DISPLAY NX"GH" + NX"1". +]) +# Technically, this test fails because of doubled double-quote in the +# stderr text, which serves the syntax highlighting in emacs +# autotest-mode. As a matter of ISO Cobol, it is expected to fail +# because NX is unimplmeented. +AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], +[prog.cob:6: syntax error: National not implemented at '265E' +prog.cob:7: syntax error: National not implemented at '0123456789ABCDEF' +prog.cob:10: syntax error: symbol 'NX' not found at '""' +prog.cob:11: syntax error: hex literal '1' has an odd number (1) of characters at '1' +cobol1: error: failed compiling prog.cob +]) +AT_CLEANUP + + +AT_SETUP([binary literals]) +AT_KEYWORDS([misc extensions ]) +AT_XFAIL_IF(test binary_literals != implmented) +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + PROCEDURE DIVISION. + DISPLAY B"101010" + DISPLAY B"111111111111111111111111111111111111111111111111111 + - "1111111111111" *> " Syntax highlighting hack + + DISPLAY B"23" + DISPLAY B"111111111111111111111111111111111111111111111111111 + - "111111111111111111111111111111111111111111111111111 + - "11111111111111111111111111111111111111111111111111" + STOP RUN. +]) + +AT_CHECK([$COMPILE_ONLY prog.cob], [1], [], +[cobol1: warning: Boolean literals are not expected to work correctly +prog.cob:9: syntax error: symbol 'B' not found at '""' +prog.cob:10: error: input inconceivably long at '11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' +cobol1: error: failed compiling prog.cob +]) +AT_CLEANUP + + +# cobc says this is a valid program. Maybe, but it is pointless. +# The only utility for a program with a global declarative but no procedure body +# is if it has a contained program that could invoke its declaratives. +AT_SETUP([DECLARATIVES, but no program]) +AT_KEYWORDS([misc parsing]) +AT_XFAIL_IF([test "$COB_DIALECT" != "gnu"]) + +AT_DATA([prog.cob], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + PROCEDURE DIVISION. + DECLARATIVES. + GLOBAL-SECTION SECTION. + USE ERROR OUTPUT. + END DECLARATIVES. + *> This should not generate a parsing error + END PROGRAM prog. +]) +AT_CHECK([$COMPILE prog.cob], [0], [], []) +AT_CHECK([./a.out], [0], [], []) +AT_CLEANUP