From ff7abbdf3b2a55c2d5200d964c291f473ad6e7fe Mon Sep 17 00:00:00 2001
From: "James K. Lowden" <jklowden@symas.com>
Date: Tue, 28 Jan 2025 15:07:51 -0500
Subject: [PATCH] nist SM passes

---
 gcc/cobol/cdf-copy.cc | 2 +-
 gcc/cobol/copybook.h  | 6 ++++--
 gcc/cobol/lexio.cc    | 4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/gcc/cobol/cdf-copy.cc b/gcc/cobol/cdf-copy.cc
index 974f281b8f71..a7c95e1db75e 100644
--- a/gcc/cobol/cdf-copy.cc
+++ b/gcc/cobol/cdf-copy.cc
@@ -323,7 +323,7 @@ copybook_elem_t::open_file( const char directory[], bool literally ) {
       yywarn("COPY file search: read error");
       break;
     case GLOB_NOMATCH:
-      dbgmsg("COPY '%s': no files match %s", this->source, pattern);
+      dbgmsg("COPY '%s': no files match %s", this->source.name, pattern);
     default:
       break; // caller says no file found
     }
diff --git a/gcc/cobol/copybook.h b/gcc/cobol/copybook.h
index 8f02bc47ffca..b86dd435d6ff 100644
--- a/gcc/cobol/copybook.h
+++ b/gcc/cobol/copybook.h
@@ -182,9 +182,11 @@ class copybook_t {
     this->source(loc, name);
 
     for( auto dir : directories ) {
-      if( false ) {
+      if( true ) {
         dbgmsg("copybook_t::open( '%s' OF '%s' %s",
-	       book.source, dir, book.literally.source? ", literally" : "" );
+	       book.source.name,
+	       dir? dir: ".",
+	       book.literally.source? ", literally" : "" );
       }
       if( (fd = book.open_file(dir, book.literally.source)) != -1 ) break;
     }
diff --git a/gcc/cobol/lexio.cc b/gcc/cobol/lexio.cc
index 03fc6ae0ae0d..1e71a9fa85e5 100644
--- a/gcc/cobol/lexio.cc
+++ b/gcc/cobol/lexio.cc
@@ -951,8 +951,8 @@ parse_copy_directive( filespan_t& mfile ) {
     YYLTYPE loc = location_in( mfile, copybook_name );
     outcome.fd = copybook.open( loc, xstrndup(copybook_name.first,
 					      copybook_name.length()) );
-    if( outcome.fd == -1 ) { 
-      error_msg(loc, "copybook '%s' not found", copybook.source());
+    if( outcome.fd == -1 ) { // let parser report missing copybook
+      dbgmsg("%s:%d: (no copybook '%s' found)", __func__, __LINE__, copybook.source());
       return outcome;
     }
 
-- 
GitLab