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