From 01b739fa0634870fff529a1e8f1e951925b528cd Mon Sep 17 00:00:00 2001 From: Yutaro Sakamoto Date: Sun, 26 May 2024 13:46:10 +0900 Subject: [PATCH] [Feat]: add a comman line option `-Wimplicit-define` --- cobj/warning-help.def | 3 +++ tests/Makefile.am | 3 ++- tests/Makefile.in | 3 ++- tests/command-line-options.at | 1 + .../Wimplicit-define.at | 24 +++++++++++++++++++ 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 tests/command-line-options.src/Wimplicit-define.at diff --git a/cobj/warning-help.def b/cobj/warning-help.def index 4c43404c..f5f24664 100644 --- a/cobj/warning-help.def +++ b/cobj/warning-help.def @@ -45,6 +45,9 @@ CB_WARNDEF (cb_warn_parentheses, "parentheses", 1, CB_WARNDEF (cb_warn_strict_typing, "strict-typing", 1, N_("Warn type mismatch strictly")) +CB_WARNDEF (cb_warn_implicit_define, "implicit-define", 1, + N_("Warn implicitly defined data items")) + CB_WARNDEF (cb_warn_call_params, "call-params", 0, N_("Warn non 01/77 items for CALL params")) diff --git a/tests/Makefile.am b/tests/Makefile.am index 702e48b5..42383d0f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -175,7 +175,8 @@ command_line_options_DEPENDENCIES = \ command-line-options.src/debug.at \ command-line-options.src/jar.at \ command-line-options.src/std.at \ - command-line-options.src/conf.at + command-line-options.src/conf.at \ + command-line-options.src/Wimplicit-define.at cobj_idx_DEPENDENCIES = \ cobj-idx.at \ diff --git a/tests/Makefile.in b/tests/Makefile.in index b468e88f..32e1c9c4 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -716,7 +716,8 @@ command_line_options_DEPENDENCIES = \ command-line-options.src/debug.at \ command-line-options.src/jar.at \ command-line-options.src/std.at \ - command-line-options.src/conf.at + command-line-options.src/conf.at \ + command-line-options.src/Wimplicit-define.at cobj_idx_DEPENDENCIES = \ cobj-idx.at \ diff --git a/tests/command-line-options.at b/tests/command-line-options.at index f07cab5c..4442524d 100644 --- a/tests/command-line-options.at +++ b/tests/command-line-options.at @@ -33,5 +33,6 @@ m4_include([debug.at]) m4_include([jar.at]) m4_include([std.at]) m4_include([conf.at]) +m4_include([Wimplicit-define.at]) # m4_include([edit-code-command.at]) diff --git a/tests/command-line-options.src/Wimplicit-define.at b/tests/command-line-options.src/Wimplicit-define.at new file mode 100644 index 00000000..c581e2bc --- /dev/null +++ b/tests/command-line-options.src/Wimplicit-define.at @@ -0,0 +1,24 @@ +AT_SETUP([-Wimplicit-define]) + +AT_DATA([prog.cbl], +[ IDENTIFICATION DIVISION. + PROGRAM-ID. prog. + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT TEST-FILE ASSIGN TEST-FILE-PATH. + DATA DIVISION. + FILE SECTION. + FD TEST-FILE RECORD CONTAINS 8. + 01 TEST-REC PIC X(7). + PROCEDURE DIVISION. + STOP RUN. +]) + +AT_CHECK([${COBJ} -Wimplicit-define prog.cbl], [0], [], +[prog.cbl:11: Warning: 'TEST-FILE-PATH' will be implicitly defined +]) + +AT_CHECK([${COBJ} --help | grep '\-Wimplicit-define' > /dev/null]) + +AT_CLEANUP