From 6631bdd2963339d73c43bf537960143fac974593 Mon Sep 17 00:00:00 2001 From: tsh-hashimoto Date: Thu, 7 Nov 2024 07:21:09 +0000 Subject: [PATCH 1/3] Update codegen.c to cast occurs_depending --- cobj/codegen.c | 1 + 1 file changed, 1 insertion(+) diff --git a/cobj/codegen.c b/cobj/codegen.c index 615ea2ed..8260beb2 100644 --- a/cobj/codegen.c +++ b/cobj/codegen.c @@ -2667,6 +2667,7 @@ static void joutput_search_all(cb_tree table, cb_tree stmt, cb_tree cond, joutput_prefix(); joutput("int tail = "); if (p->occurs_depending) { + joutput("(int)"); joutput_integer(p->occurs_depending); joutput(" + 1;\n"); } else { From 36360be38f8309abf80b4802d0014edba5ba4374 Mon Sep 17 00:00:00 2001 From: tsh-hashimoto Date: Thu, 7 Nov 2024 08:09:17 +0000 Subject: [PATCH 2/3] Add a new test --- tests/Makefile.am | 3 ++- tests/Makefile.in | 3 ++- tests/misc.at | 1 + tests/misc.src/search-occurs-depending.at | 32 +++++++++++++++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 tests/misc.src/search-occurs-depending.at diff --git a/tests/Makefile.am b/tests/Makefile.am index 9841b799..ca20b85b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -220,7 +220,8 @@ misc_DEPENDENCIES = \ misc.src/japanese-char-section-var.at \ misc.src/evaluate-switch.at \ misc.src/fserial-variable.at \ - misc.src/file-handler-japanese.at + misc.src/file-handler-japanese.at \ + misc.src/search-occurs-depending.at EXTRA_DIST = $(srcdir)/package.m4 \ $(TESTS) \ diff --git a/tests/Makefile.in b/tests/Makefile.in index dad91307..a667fc27 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -759,7 +759,8 @@ misc_DEPENDENCIES = \ misc.src/japanese-char-section-var.at \ misc.src/evaluate-switch.at \ misc.src/fserial-variable.at \ - misc.src/file-handler-japanese.at + misc.src/file-handler-japanese.at \ + misc.src/search-occurs-depending.at EXTRA_DIST = $(srcdir)/package.m4 \ $(TESTS) \ diff --git a/tests/misc.at b/tests/misc.at index 7f8a6157..dc8e58fc 100644 --- a/tests/misc.at +++ b/tests/misc.at @@ -50,3 +50,4 @@ m4_include([japanese-char-section-var.at]) m4_include([evaluate-switch.at]) m4_include([fserial-variable.at]) m4_include([file-handler-japanese.at]) +m4_include([search-occurs-depending.at]) diff --git a/tests/misc.src/search-occurs-depending.at b/tests/misc.src/search-occurs-depending.at new file mode 100644 index 00000000..d14d273d --- /dev/null +++ b/tests/misc.src/search-occurs-depending.at @@ -0,0 +1,32 @@ +AT_SETUP([SEARCH OCCURS DEPENDING]) + +AT_DATA([prog.cbl], [ + IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 AAA. + 02 AAA1 PIC X(04) VALUE "HOGE". + 02 FILLER PIC X(18) VALUE SPACE. + 02 AAA2 PIC S9(4) COMP. + 01 BBB. + 02 AAA-1 OCCURS 1 TO 11 DEPENDING ON AAA2 + ASCENDING KEY KEY-A INDEXED BY K1. + 03 KEY-A PIC X(05). + 03 BBB1 PIC X(05). + 03 FILLER PIC X(02). + 01 CCC PIC X(05). + PROCEDURE DIVISION. + SEARCH ALL AAA-1 + AT END + MOVE "ERROR" TO CCC + WHEN KEY-A (K1) = "00001" + MOVE BBB1 (K1) TO CCC + END-SEARCH. + DISPLAY CCC. + STOP RUN. +]) + +AT_CHECK([${COBJ} prog.cbl], [0]) + +AT_CLEANUP From 6d1a9f8828f0c6fd13ab9e424627ed3dbdcf075e Mon Sep 17 00:00:00 2001 From: tsh-hashimoto Date: Thu, 7 Nov 2024 08:48:08 +0000 Subject: [PATCH 3/3] When merged dev branch, I removed it. I recovered. --- cobj/pplex.c | 6 +++--- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/misc.at | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cobj/pplex.c b/cobj/pplex.c index 3be62fbb..bffa4e5a 100644 --- a/cobj/pplex.c +++ b/cobj/pplex.c @@ -379,7 +379,7 @@ typedef unsigned int flex_uint32_t; * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ -#define YY_START (((yy_start)-1) / 2) +#define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) @@ -2632,8 +2632,8 @@ YY_DECL { default: YY_FATAL_ERROR("fatal flex scanner internal error--no action found"); } /* end of action switch */ - } /* end of scanning one token */ - } /* end of user's declarations */ + } /* end of scanning one token */ + } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer diff --git a/tests/Makefile.am b/tests/Makefile.am index ca20b85b..d175cf00 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -221,6 +221,7 @@ misc_DEPENDENCIES = \ misc.src/evaluate-switch.at \ misc.src/fserial-variable.at \ misc.src/file-handler-japanese.at \ + misc.src/perform-until-div.at \ misc.src/search-occurs-depending.at EXTRA_DIST = $(srcdir)/package.m4 \ diff --git a/tests/Makefile.in b/tests/Makefile.in index a667fc27..c8d0c140 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -760,6 +760,7 @@ misc_DEPENDENCIES = \ misc.src/evaluate-switch.at \ misc.src/fserial-variable.at \ misc.src/file-handler-japanese.at \ + misc.src/perform-until-div.at \ misc.src/search-occurs-depending.at EXTRA_DIST = $(srcdir)/package.m4 \ diff --git a/tests/misc.at b/tests/misc.at index dc8e58fc..d3a4da6e 100644 --- a/tests/misc.at +++ b/tests/misc.at @@ -50,4 +50,5 @@ m4_include([japanese-char-section-var.at]) m4_include([evaluate-switch.at]) m4_include([fserial-variable.at]) m4_include([file-handler-japanese.at]) +m4_include([perform-until-div.at]) m4_include([search-occurs-depending.at])