From 5269aa0aba818a00e70cc5b1f43e7a2b0bf3d22b Mon Sep 17 00:00:00 2001
From: Bob Dubner <rdubner@symas.com>
Date: Fri, 3 Jan 2025 16:57:11 -0500
Subject: [PATCH] Fixed erroneous use of assert() in symfind.cc

---
 gcc/cobol/ChangeLog  |  2 ++
 gcc/cobol/genapi.cc  |  2 ++
 gcc/cobol/symfind.cc | 12 ++++++++----
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gcc/cobol/ChangeLog b/gcc/cobol/ChangeLog
index e5a404f1d119..f2c8b008a6e5 100644
--- a/gcc/cobol/ChangeLog
+++ b/gcc/cobol/ChangeLog
@@ -89,4 +89,6 @@
 2025-01-03  Robert Dubner <rdubner@symas.com>
 	* Eliminate old "#if 0" code
 	* Modify line directives to skip over paragraph/section labels:
+	* Unwrapped asprintf calls in assert(), because it was a stupid error.
+
 
diff --git a/gcc/cobol/genapi.cc b/gcc/cobol/genapi.cc
index 1f4f6d165da7..00b3bf505c0b 100644
--- a/gcc/cobol/genapi.cc
+++ b/gcc/cobol/genapi.cc
@@ -2346,6 +2346,7 @@ section_label(struct cbl_proc_t *procedure)
     SHOW_PARSE_END
     }
   assembler_label(secname);
+  gg_assign(var_decl_nop, build_int_cst_type(INT, 108));
   }
 
 static void
@@ -2398,6 +2399,7 @@ paragraph_label(struct cbl_proc_t *procedure)
           "_para.%s",
           combined_name(procedure->label));
   assembler_label(ach);
+  gg_assign(var_decl_nop, build_int_cst_type(INT, 109));
   }
 
 static void
diff --git a/gcc/cobol/symfind.cc b/gcc/cobol/symfind.cc
index 40e19a6d6f86..2c2bada2c268 100644
--- a/gcc/cobol/symfind.cc
+++ b/gcc/cobol/symfind.cc
@@ -139,7 +139,8 @@ dump_symbol_map2( const field_key_t& key, const std::list<size_t>& candidates )
   for( auto candidate : candidates ) {
     char *tmp = fields;
     // Use assert to silence compiler warning about unused return value
-    assert(asprintf(&fields, "%s%s %3zu", tmp? tmp : "", sep, candidate));
+    int asret = asprintf(&fields, "%s%s %3zu", tmp? tmp : "", sep, candidate);
+    assert(asret);
     sep[0] = ',';
     assert(fields);
     free(tmp);
@@ -172,7 +173,8 @@ dump_symbol_map_value( const char name[], const symbol_map_t::value_type& value
 
   for( ; p != value.second.end(); p++ ) {
     char *tmp = ancestry;
-    assert(asprintf(&ancestry, "%s%s %3zu", tmp? tmp : "", sep, *p));
+    int asret = asprintf(&ancestry, "%s%s %3zu", tmp? tmp : "", sep, *p);
+    assert(asret);
     sep[0] = ',';
     assert(ancestry);
     free(tmp);
@@ -475,7 +477,8 @@ symbol_match2( size_t program,
     const char *sep = "";
     for( auto name : names ) {
       char *partial = ancestry;
-      assert(asprintf(&ancestry, "%s%s%s", partial? partial : "", sep, name));
+      int asret = asprintf(&ancestry, "%s%s%s", partial? partial : "", sep, name);
+      assert(asret);
       sep = " -> ";
       assert(ancestry);
       free(partial);
@@ -489,7 +492,8 @@ symbol_match2( size_t program,
       sep = "";
       for( auto field : fields ) {
         char *partial = fieldstr;
-        assert(asprintf(&fieldstr, "%s%s%zu", partial? partial : "", sep, field));
+        int asret = asprintf(&fieldstr, "%s%s%zu", partial? partial : "", sep, field);
+        assert(asret);
         sep = ", ";
         assert(fieldstr);
         free(partial);
-- 
GitLab