https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119323

--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robert Dubner <rdub...@gcc.gnu.org>:

https://gcc.gnu.org/g:54e4f75b7d57e02bba79cd67332bbfdc37d1b321

commit r16-1111-g54e4f75b7d57e02bba79cd67332bbfdc37d1b321
Author: Robert Dubner <rdub...@symas.com>
Date:   Mon Jun 2 18:40:28 2025 -0400

    cobol: Eliminate cppcheck warnings for libgcobol [PR119323]

    I configured and ran cppcheck-2.17.0 with this config file:

    <?xml version="1.0"?>
    <def format="2">
      <define name="HOST_SIZE_T_PRINT_UNSIGNED" value="&quot;%ld&quot;"/>
      <define name="GCC_PRISZ" value="&quot;z&quot;"/>
      <define name="YYLTYPE" value="struct {int first_line; int first_column;
int last_line; int last_column;}"/>
      <define name="__FLT128_MANT_DIG__" value="113"/>
      <define name="__FLT128_MIN_EXP__" value="-16381"/>
    </def>

    and this command line

    cppcheck --inline-suppr --enable=all --force --language=c++ --library=$CFG
\
    --check-level=exhaustive \
    --disable=unusedFunction \
    --disable=missingInclude \
    $(cat $FILES) > $RESULT 2>&1

    $FILES was all of the .cc files in libgcobol.

    The result was many hundreds of warnings.  The vast bulk of them were
    recommendations for declaring variables as const, recommendations for
    changing C-style casts to C++ casts, cheery notes about shadowed
    variables, and complaints that malloc() results weren't being checked
    for errors.

    Two and a half days of applied OCD on my part has reduced the number of
    warnings down to zero.

    libgcobol/ChangeLog:

            PR cobol/119323
            * charmaps.cc (__gg__raw_to_ascii):  Eliminate cppcheck warnings.
            (__gg__raw_to_ebcdic): Likewise.
            (__gg__ebcdic_to_console): Likewise.
            (__gg__console_to_ascii): Likewise.
            (__gg__console_to_ebcdic): Likewise.
            * common-defs.h (struct cbl_declarative_t): Likewise.
            * gfileio.cc (get_filename): Likewise.
            (max_value): Likewise.
            (relative_file_delete_varying): Likewise.
            (relative_file_delete): Likewise.
            (read_an_indexed_record): Likewise.
            (position_state_restore): Likewise.
            (indexed_file_delete): Likewise.
            (indexed_file_start): Likewise.
            (sequential_file_rewrite): Likewise.
            (relative_file_write_varying): Likewise.
            (relative_file_write): Likewise.
            (sequential_file_write): Likewise.
            (indexed_file_write): Likewise.
            (__io__file_write): Likewise.
            (line_sequential_file_read): Likewise.
            (indexed_file_read): Likewise.
            (file_indexed_open): Likewise.
            (__gg__file_reopen): Likewise.
            * gmath.cc (conditional_stash): Likewise.
            (__gg__pow): Likewise.
            (multiply_int256_by_int64): Likewise.
            (add_int256_to_int256): Likewise.
            (divide_int256_by_int64): Likewise.
            (squeeze_int256): Likewise.
            (get_int256_from_qualified_field): Likewise.
            (__gg__add_fixed_phase1): Likewise.
            (__gg__addf1_fixed_phase2): Likewise.
            (__gg__fixed_phase2_assign_to_c): Likewise.
            (__gg__add_float_phase1): Likewise.
            (__gg__addf1_float_phase2): Likewise.
            (__gg__float_phase2_assign_to_c): Likewise.
            (__gg__addf3): Likewise.
            (__gg__subtractf1_fixed_phase2): Likewise.
            (__gg__subtractf2_fixed_phase1): Likewise.
            (__gg__subtractf1_float_phase2): Likewise.
            (__gg__subtractf2_float_phase1): Likewise.
            (__gg__subtractf3): Likewise.
            (__gg__multiplyf1_phase1): Likewise.
            (multiply_int128_by_int128): Likewise.
            (__gg__multiplyf1_phase2): Likewise.
            (__gg__multiplyf2): Likewise.
            (shift_in_place128): Likewise.
            (divide_int128_by_int128): Likewise.
            (__gg__dividef1_phase2): Likewise.
            (__gg__dividef23): Likewise.
            (__gg__dividef45): Likewise.
            * intrinsic.cc (struct input_state): Likewise.
            (get_value_as_double_from_qualified_field): Likewise.
            (kahan_summation): Likewise.
            (variance): Likewise.
            (get_all_time): Likewise.
            (populate_ctm_from_date): Likewise.
            (populate_ctm_from_time): Likewise.
            (ftime_replace): Likewise.
            (__gg__abs): Likewise.
            (__gg__acos): Likewise.
            (__gg__annuity): Likewise.
            (__gg__asin): Likewise.
            (__gg__atan): Likewise.
            (__gg__byte_length): Likewise.
            (__gg__char): Likewise.
            (__gg__combined_datetime): Likewise.
            (__gg__cos): Likewise.
            (__gg__date_of_integer): Likewise.
            (__gg__date_to_yyyymmdd): Likewise.
            (__gg__day_of_integer): Likewise.
            (__gg__day_to_yyyyddd): Likewise.
            (__gg__exp): Likewise.
            (__gg__exp10): Likewise.
            (__gg__factorial): Likewise.
            (__gg__formatted_current_date): Likewise.
            (__gg__formatted_date): Likewise.
            (__gg__formatted_datetime): Likewise.
            (__gg__formatted_time): Likewise.
            (__gg__integer): Likewise.
            (__gg__integer_of_date): Likewise.
            (__gg__integer_of_day): Likewise.
            (__gg__integer_part): Likewise.
            (__gg__fraction_part): Likewise.
            (__gg__log): Likewise.
            (__gg__log10): Likewise.
            (__gg__max): Likewise.
            (__gg__lower_case): Likewise.
            (__gg__median): Likewise.
            (__gg__min): Likewise.
            (numval): Likewise.
            (numval_c): Likewise.
            (__gg__numval): Likewise.
            (__gg__test_numval): Likewise.
            (__gg__numval_c): Likewise.
            (__gg__test_numval_c): Likewise.
            (__gg__ord): Likewise.
            (__gg__rem): Likewise.
            (__gg__trim): Likewise.
            (__gg__random): Likewise.
            (__gg__reverse): Likewise.
            (__gg__sign): Likewise.
            (__gg__sin): Likewise.
            (__gg__sqrt): Likewise.
            (__gg__tan): Likewise.
            (__gg__test_date_yyyymmdd): Likewise.
            (__gg__test_day_yyyyddd): Likewise.
            (__gg__upper_case): Likewise.
            (__gg__year_to_yyyy): Likewise.
            (gets_int): Likewise.
            (gets_year): Likewise.
            (gets_month): Likewise.
            (gets_day): Likewise.
            (gets_day_of_week): Likewise.
            (gets_day_of_year): Likewise.
            (gets_week): Likewise.
            (gets_hours): Likewise.
            (gets_minutes): Likewise.
            (gets_seconds): Likewise.
            (gets_nanoseconds): Likewise.
            (fill_cobol_tm): Likewise.
            (__gg__test_formatted_datetime): Likewise.
            (__gg__integer_of_formatted_date): Likewise.
            (__gg__seconds_from_formatted_time): Likewise.
            (__gg__hex_of): Likewise.
            (__gg__highest_algebraic): Likewise.
            (__gg__lowest_algebraic): Likewise.
            (floating_format_tester): Likewise.
            (__gg__numval_f): Likewise.
            (__gg__test_numval_f): Likewise.
            (ismatch): Likewise.
            (iscasematch): Likewise.
            (strstr): Likewise.
            (strcasestr): Likewise.
            (strlaststr): Likewise.
            (strcaselaststr): Likewise.
            (__gg__substitute): Likewise.
            (__gg__locale_compare): Likewise.
            (__gg__locale_date): Likewise.
            (__gg__locale_time): Likewise.
            (__gg__locale_time_from_seconds): Likewise.
            * libgcobol.cc (class ec_status_t): Likewise.
            (__gg__set_truncation_mode): Likewise.
            (malloc): Likewise.
            (__gg__mabort): Likewise.
            (__gg__resize_int_p): Likewise.
            (__gg__resize_treeplet): Likewise.
            (var_is_refmod): Likewise.
            (value_is_too_big): Likewise.
            (__gg__string_to_alpha_edited_ascii): Likewise.
            (int128_to_field): Likewise.
            (edited_to_binary): Likewise.
            (get_binary_value_local): Likewise.
            (__gg__get_date_yymmdd): Likewise.
            (__gg__get_date_yyyymmdd): Likewise.
            (__gg__get_date_yyddd): Likewise.
            (__gg__get_yyyyddd): Likewise.
            (__gg__get_date_dow): Likewise.
            (get_scaled_rdigits): Likewise.
            (format_for_display_internal): Likewise.
            (compare_88): Likewise.
            (get_float128): Likewise.
            (compare_field_class): Likewise.
            (compare_strings): Likewise.
            (__gg__compare_2): Likewise.
            (__gg__sort_table): Likewise.
            (init_var_both): Likewise.
            (alpha_to_alpha_move_from_location): Likewise.
            (alpha_to_alpha_move): Likewise.
            (__gg__move): Likewise.
            (__gg__move_literala): Likewise.
            (__gg__sort_workfile): Likewise.
            (__gg__merge_files): Likewise.
            (normalize_id): Likewise.
            (inspect_backward_format_1): Likewise.
            (__gg__inspect_format_1): Likewise.
            (inspect_backward_format_2): Likewise.
            (__gg__inspect_format_2): Likewise.
            (__gg__inspect_format_4): Likewise.
            (move_string): Likewise.
            (__gg__string): Likewise.
            (display_both): Likewise.
            (__gg__display_string): Likewise.
            (__gg__accept): Likewise.
            (__gg__binary_value_from_qualified_field): Likewise.
            (__gg__float128_from_qualified_field): Likewise.
            (float128_to_int128): Likewise.
            (float128_to_location): Likewise.
            (__gg__set_initial_switch_value): Likewise.
            (is_numeric_display_numeric): Likewise.
            (is_packed_numeric): Likewise.
            (is_alpha_a_number): Likewise.
            (__gg__classify): Likewise.
            (__gg__accept_envar): Likewise.
            (__gg__set_envar): Likewise.
            (command_line_plan_b): Likewise.
            (__gg__get_command_line): Likewise.
            (__gg__set_pointer): Likewise.
            (__gg__ascii_to_internal_field): Likewise.
            (__gg__internal_to_console_in_place): Likewise.
            (__gg__routine_to_call): Likewise.
            (__gg__fetch_call_by_value_value): Likewise.
            (__gg__assign_value_from_stack): Likewise.
            (__gg__literaln_alpha_compare): Likewise.
            (string_in): Likewise.
            (__gg__unstring): Likewise.
            (local_ec_type_of): Likewise.
            (struct exception_descr_t): Likewise.
            (struct cbl_exception_t): Likewise.
            (cbl_enabled_exception_t: Likewise.: Likewise.dump): Likewise.
            (__gg__match_exception): Likewise.
            (__gg__float128_from_location): Likewise.
            (__gg__integer_from_float128): Likewise.
            (__gg__set_exception_file): Likewise.
            (__gg__func_exception_file): Likewise.
            (__gg__set_exception_code): Likewise.
            (__gg__is_float_infinite): Likewise.
            (__gg__float32_from_128): Likewise.
            (__gg__float32_from_64): Likewise.
            (__gg__float64_from_128): Likewise.
            (__gg__copy_as_big_endian): Likewise.
            (__gg__get_figconst_data): Likewise.
            (find_in_dirs): Likewise.
            (__gg__function_handle_from_cobpath): Likewise.
            (__gg__just_mangle_name): Likewise.
            (__gg__function_handle_from_literal): Likewise.
            (__gg__function_handle_from_name): Likewise.
            (__gg__mirror_range): Likewise.
            (__gg__deallocate): Likewise.
            (__gg__allocate): Likewise.
            (__gg__module_name): Likewise.
            (__gg__set_env_name): Likewise.
            (__gg__set_env_value): Likewise.
            * libgcobol.h (__gg__mabort): Likewise.
            (massert): Likewise.
            (PTRCAST): Likewise.
            (__gg__float128_from_location): Likewise.
            (__gg__set_exception_file): Likewise.
            (__gg__binary_value_from_qualified_field): Likewise.
            (__gg__float128_from_qualified_field): Likewise.
            * valconv.cc (__gg__realloc_if_necessary): Likewise.
            (__gg__alphabet_create): Likewise.
            (__gg__string_to_numeric_edited): Likewise.
            (__gg__string_to_alpha_edited): Likewise.
            * valconv.h: Likewise.

Reply via email to