https://gcc.gnu.org/g:7ec7871b363162d154266d2b052a3690ee4c6aa8

commit r17-2630-g7ec7871b363162d154266d2b052a3690ee4c6aa8
Author: James K. Lowden <[email protected]>
Date:   Wed Jul 22 16:19:14 2026 -0400

    cobol: Enable suppression of unimplemented exception conditions.
    
    For each warning, provide both Wx and Wno-x in the specs string, so
    that the driver passes both forms to the driver.  This enables, in
    addition to being able to defeat a default, to override the warning
    status implied by a dialect.
    
    gcc/cobol/ChangeLog:
    
            * cobol1.cc (enable_exceptions): Remove redundant message.
            * lang-specs.h: Provide both forms of every warning.
            * parse.y: Remove deleterious comment.

Diff:
---
 gcc/cobol/cobol1.cc    |   4 --
 gcc/cobol/lang-specs.h | 104 ++++++++++++++++++++++++-------------------------
 gcc/cobol/parse.y      |   4 +-
 3 files changed, 55 insertions(+), 57 deletions(-)

diff --git a/gcc/cobol/cobol1.cc b/gcc/cobol/cobol1.cc
index d6ffac128b7b..fd226b520f63 100644
--- a/gcc/cobol/cobol1.cc
+++ b/gcc/cobol/cobol1.cc
@@ -361,10 +361,6 @@ enable_exceptions( bool enable ) {
       cbl_message(EcUnknownW, "unrecognized exception '%s'", name);
       continue;
     }
-    ec_disposition_t disposition = ec_type_disposition(type);
-    if( disposition != ec_implemented(disposition) ) {
-      cbl_unimplemented("exception '%s'", name);
-    }
     add_cobol_exception(type, enable );
   }
 }
diff --git a/gcc/cobol/lang-specs.h b/gcc/cobol/lang-specs.h
index 5b839a49a149..d64353523e04 100644
--- a/gcc/cobol/lang-specs.h
+++ b/gcc/cobol/lang-specs.h
@@ -47,58 +47,58 @@
         "%{preprocess} "
         "%{dialect} "
         "%{include} "
-       "%{Wno-apply-commit} "
-       "%{Wno-any-length} "
-       "%{Wno-file-code-set} "
-       "%{Wno-high-order-bit} "
-       "%{Wno-bad-line-directive} "
-       "%{Wno-bad-numeric} "
-       "%{Wassign-external} "
-       "%{Wassign-file} "
-       "%{Wno-binary-long-long} "
-       "%{Wno-call-fd} "
-       "%{Wno-call-giving} "
-       "%{Wno-call-literal} "
-       "%{Wno-cdf-dollar} "
-       "%{Wno-cdf-invalid-parameter} "
-       "%{Wno-cdf-name-not-found} "
-       "%{Wno-cobol-eject} "
-       "%{Wno-cobol-resume} "
-       "%{Wno-cobol-volatile} "
-       "%{Wno-comp-6} "
-       "%{Wno-comp-x} "
-       "%{Wno-copybook-found} "
-       "%{Wno-ec-unknown} "
-       "%{Wno-entry-convention} "
-       "%{Wno-ibm-cdf} "
-       "%{Wno-iconv-error} "
-       "%{Wno-include-file-found} "
-       "%{Wno-include-file-not-found} "
-       "%{Wno-inspect-trailing} "
-       "%{Wno-length-of} "
-       "%{Wno-level-1-occurs} "
-       "%{Wno-level-78} "
-       "%{Wno-level-78-defined} "
-       "%{Wno-literal-concat} "
-       "%{Wno-locale-error} "
-       "%{Wno-move-corresponding} "
-       "%{Wno-move-index} "
-       "%{Wno-move-pointer} "
-       "%{Wno-nllanginfo-error} "
-       "%{Wno-operator-space} "
-       "%{Wno-preprocessor-error} "
-       "%{Wno-procedure-not-found} "
-       "%{Wno-procedure-pointer} "
-       "%{Wno-replace-error} "
-       "%{Wno-returning-number} "
-       "%{Wno-segment-error} "
-       "%{Wno-segment-negative} "
-       "%{Wno-stop-number} "
-       "%{Wno-stray-indicator} "
-       "%{Wno-usage-typename} "
-       "%{Wno-recording-mode} "
-       "%{Wno-set-locale-to} "
-       "%{Wno-set-to-locale} "
+       "%{Wapply-commit} %{Wno-apply-commit} "
+       "%{Wany-length} %{Wno-any-length} "
+       "%{Wfile-code-set} %{Wno-file-code-set} "
+       "%{Whigh-order-bit} %{Wno-high-order-bit} "
+       "%{Wbad-line-directive} %{Wno-bad-line-directive} "
+       "%{Wbad-numeric} %{Wno-bad-numeric} "
+       "%{Wassign-external} %{Wno-assign-external} "
+       "%{Wassign-file} %{Wno-assign-file} "
+       "%{Wbinary-long-long} %{Wno-binary-long-long} "
+       "%{Wcall-fd} %{Wno-call-fd} "
+       "%{Wcall-giving} %{Wno-call-giving} "
+       "%{Wcall-literal} %{Wno-call-literal} "
+       "%{Wcdf-dollar} %{Wno-cdf-dollar} "
+       "%{Wcdf-invalid-parameter} %{Wno-cdf-invalid-parameter} "
+       "%{Wcdf-name-not-found} %{Wno-cdf-name-not-found} "
+       "%{Wcobol-eject} %{Wno-cobol-eject} "
+       "%{Wcobol-resume} %{Wno-cobol-resume} "
+       "%{Wcobol-volatile} %{Wno-cobol-volatile} "
+       "%{Wcomp-6} %{Wno-comp-6} "
+       "%{Wcomp-x} %{Wno-comp-x} "
+       "%{Wcopybook-found} %{Wno-copybook-found} "
+       "%{Wec-unknown} %{Wno-ec-unknown} "
+       "%{Wentry-convention} %{Wno-entry-convention} "
+       "%{Wibm-cdf} %{Wno-ibm-cdf} "
+       "%{Wiconv-error} %{Wno-iconv-error} "
+       "%{Winclude-file-found} %{Wno-include-file-found} "
+       "%{Winclude-file-not-found} %{Wno-include-file-not-found} "
+       "%{Winspect-trailing} %{Wno-inspect-trailing} "
+       "%{Wlength-of} %{Wno-length-of} "
+       "%{Wlevel-1-occurs} %{Wno-level-1-occurs} "
+       "%{Wlevel-78} %{Wno-level-78} "
+       "%{Wlevel-78-defined} %{Wno-level-78-defined} "
+       "%{Wliteral-concat} %{Wno-literal-concat} "
+       "%{Wlocale-error} %{Wno-locale-error} "
+       "%{Wmove-corresponding} %{Wno-move-corresponding} "
+       "%{Wmove-index} %{Wno-move-index} "
+       "%{Wmove-pointer} %{Wno-move-pointer} "
+       "%{Wnllanginfo-error} %{Wno-nllanginfo-error} "
+       "%{Woperator-space} %{Wno-operator-space} "
+       "%{Wpreprocessor-error} %{Wno-preprocessor-error} "
+       "%{Wprocedure-not-found} %{Wno-procedure-not-found} "
+       "%{Wprocedure-pointer} %{Wno-procedure-pointer} "
+       "%{Wreplace-error} %{Wno-replace-error} "
+       "%{Wreturning-number} %{Wno-returning-number} "
+       "%{Wsegment-error} %{Wno-segment-error} "
+       "%{Wsegment-negative} %{Wno-segment-negative} "
+       "%{Wstop-number} %{Wno-stop-number} "
+       "%{Wstray-indicator} %{Wno-stray-indicator} "
+       "%{Wusage-typename} %{Wno-usage-typename} "
+       "%{Wrecording-mode} %{Wno-recording-mode} "
+       "%{Wset-locale-to} %{Wno-set-locale-to} "
+       "%{Wset-to-locale} %{Wno-set-to-locale} "
         "%{nomain} "
         "%{!fsyntax-only:%(invoke_as)} "
         , 0, 0, 0},
diff --git a/gcc/cobol/parse.y b/gcc/cobol/parse.y
index 5f7e4ea7a228..06a3cfb5fd58 100644
--- a/gcc/cobol/parse.y
+++ b/gcc/cobol/parse.y
@@ -2391,10 +2391,12 @@ unique_key:     %empty          { $$ = true; }
                  * If the argument to ASSIGN to is a literal, that exact name
                  * will be opened.  ASSIGN to literal cannot be used with 
USING.
                  */
+
 assign_clause:  ASSIGN to selected_name[selected]  {
                   $$.clause = assign_clause_e;
                   $$.file = new cbl_file_t(protofile);
-                  $$.file->filename = field_index($selected);  // of the 
FldLiteralA
+                  $$.file->filename = field_index($selected);
+
                   if( ! is_quoted($selected) ) {
                     dialect_ok(@selected, IsoAssignFile, $selected->name);
                   }

Reply via email to