From c35a241e4e34d1a0017b0719886a1d415ae3e7c1 Mon Sep 17 00:00:00 2001
From: Bob Dubner <rdubner@symas.com>
Date: Sun, 26 Jan 2025 14:08:14 -0500
Subject: [PATCH] Tweak file_level handling during parser_enter_file

---
 gcc/cobol/genapi.cc | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index dd2a03f1614c..dcd53864d928 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -3309,10 +3309,8 @@ parser_enter_file(const char *filename)
     {
     SHOW_PARSE_HEADER
     char ach[32];
-    sprintf(ach, " level:%d", file_level);
+    sprintf(ach, " entering level:%d %s", file_level+1, filename);
     SHOW_PARSE_TEXT(ach);
-    SHOW_PARSE_TEXT(" ");
-    SHOW_PARSE_TEXT(filename);
     SHOW_PARSE_END
     }
 
@@ -3342,11 +3340,13 @@ parser_enter_file(const char *filename)
     // Build a translation_unit_decl:
     gg_build_translation_unit(filename);
     create_our_type_nodes();
-    // Can't trace here, because we haven't yet entered a function
+    // Can't trace here, because we haven't yet entered a function, so there is
+    // no statement block to which we can add statements.
     }
   else
     {
-    // We can trace here, if we want to.
+    // We can trace here because this is a nested file, which means a statement
+    // block exists.
     TRACE1
       {
       TRACE1_HEADER
@@ -3420,12 +3420,11 @@ void
 parser_leave_file()
   {
   Analyze();
-  file_level -= 1;
   SHOW_PARSE
     {
     SHOW_PARSE_HEADER
     char ach[256];
-    sprintf(ach, "leaving level:%d", file_level);
+    sprintf(ach, "leaving level:%d %s", file_level, current_filename.back().c_str());
     SHOW_PARSE_TEXT(ach)
     SHOW_PARSE_END
     }
@@ -3439,6 +3438,7 @@ parser_leave_file()
       TRACE1_END
       }
     }
+  file_level -= 1;
   current_filename.pop_back();
   }
 
-- 
GitLab