| 2026-11-04 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (establish_using): A run-time check for a NULL pointer | |
| prevents adding a small number to it. | |
| (actually_create_the_static_field): Use modified expand_expanded(). | |
| (parser_symbol_add): Use original_without_capacity(). | |
| * symbols.cc (expand_picture): Use std::string for retval instead of | |
| allocated memory. | |
| (expand_expanded): Return char* instead of modifying the caller. | |
| * symbols.h (expand_expanded): Changed the declaration. | |
| * util.cc (cbl_field_t::encode_numeric): Use modified | |
| expand_expanded(). | |
| 2026-10-28 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Enable parallel computing for "make check-cobol"/ | |
| * genapi.cc (parser_enter_file): Initialize WHEN-COMPILED. | |
| (parser_intrinsic_call_0): Likewise. | |
| (parser_symbol_add): Likewise. | |
| 2026-10-26 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (enter_program_common): Save currency state on entry. | |
| (initialize_the_data): Likewise. | |
| (save_debug_field_binding): Associate field contents with a frame. | |
| (save_debug_linkage_bindings): Likewise. | |
| (establish_using): Bug fix of subordinate local storare field | |
| offsets during recursion. | |
| (parser_division): Initial currency state. | |
| (parser_set_pointers): Save debug linkage bindings. | |
| (parser_local_add): Rebase linkage offset during recursion. | |
| * gengen.h (struct gg_function_t): Linkage binding for data and | |
| capacity. | |
| * lexio.cc (cdftext::lex_open): Remove comment; adjust source | |
| format. | |
| * symbols.cc (symbol_program_callables): Make sure a recursive | |
| program can call itself. | |
| 2026-10-23 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Require PICTURE for PACKED-DECIMAL. | |
| * parse_ante.h (struct arith_t): Allow +/- for INDEX type. | |
| (valid_operands): Remove function. | |
| (parser_move_carefully): Refine diagnostic. | |
| * scan_ante.h (typed_name): Set is_float member. | |
| * symbols.cc (symbol_program_add): Return NULL only if program exists. | |
| * util.cc (valid_move): Reject fractional MOVE to alphanumeric. | |
| 2026-10-20 Robert Dubner <rdubner@symas.com> | |
| * gcobolspec.cc (lang_specific_driver): Set need_libposix to false | |
| when there are no input files. | |
| 2026-10-19 Robert Dubner <rdubner@symas.com> | |
| * gcobolspec.cc (lang_specific_driver): Adjust the generation of | |
| libgcobol.spec. | |
| (lang_specific_pre_link): Likewise. | |
| 2026-10-19 James K. Lowden <jklowden@cobolworx.com> | |
| * cobol1.cc (cobol_langhook_handle_option): Use ParErrno for Werrno. | |
| * lexio.cc (parse_replace_pairs): Whitespace. | |
| (parse_copy_directive): Same. | |
| (inode_of): Same. | |
| (cdftext::lex_open): Use new cmd_line::source_format. | |
| (valid_sequence_area): Whitespace | |
| (cdftext::free_form_reference_format): Use new cmd_line::source_format. | |
| (output_segment): Whitespace. | |
| (cdftext::process_file): Same. | |
| * lexio.h (struct bytespan_t): Same. | |
| (struct filespan_t): Same. | |
| (class cdftext): Remove command_line_indicator_column. | |
| * parse.y: Associate messasge with Werror. | |
| * scan.l: Support DEFLIT directive. | |
| 2026-10-19 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: For SEQUENTIAL, default to AFTER ADVANCING 1 LINE. | |
| 2026-10-19 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (cobol_set_decl_assembler_name): Support full name. | |
| * genapi.cc (create_cblc_string_variable): Likewise. | |
| (parser_call_target_update): Likewise. | |
| (parser_enter_program): Likewise. | |
| (parser_call_exception_end): Formatting. | |
| (create_and_call): Support full name. | |
| (parser_program_hierarchy): Likewise. | |
| * gengen.cc (gg_build_fn_decl): Likewise. | |
| 2026-10-14 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (dirty_to_binary): Formatting. | |
| (psa_FldLiteralN): Change name of data area for GDB-COBOL. | |
| (psa_FldLiteralA): Make LEVEL78 variables static with function scope | |
| for GDB-COBOL. | |
| (parser_symbol_add): Put data.original into cblc_field_t::initial for | |
| FldLiteralN variables; needed for GDB-COBOL. | |
| * move.cc (mh_numeric_display): Bug fix: Pass refmodded numeric- | |
| display moves on to __gg__move(). | |
| 2026-10-07 Robert Dubner <rdubner@symas.com> | |
| * genapi.h (parser_add): Formatting. | |
| (parser_divide): Remove unused declaration. | |
| (parser_intrinsic_convert): Remove whitespace. | |
| (parser_trim): Likewise. | |
| * genmath.cc (fast_add): Support faster COMPUTE. | |
| (fast_subtract): Support faster COMPUTE. | |
| (add_case_1): Whitespace. | |
| (parser_as_two): New function detects when faster is possible. | |
| (parser_compute): Use parser_as_two(). | |
| 2026-10-01 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * lexio.cc (cdftext::lex_open): Split objects for included files and | |
| main source file. | |
| 2026-10-01 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * lexio.cc (cdftext::lex_open): Add explicit_format condition. | |
| (cobol_set_indicator_column): Use cdftext::explicit_format. | |
| * lexio.h (class cdftext): Add cdftext::explicit_format. | |
| 2026-09-30 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * symbols.cc (calculate_capacity): Exclude 78-level entries. | |
| (symbol_field_parent_set): Likewise. | |
| 2026-09-30 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Define ParErrno. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Werrno. | |
| * lang-specs.h: Accept Werrno. | |
| * lang.opt: Define Werrno. | |
| * messages.cc (struct cbl_diag_t): Add Werrno to warning table. | |
| (kind_of): Whitespace. | |
| (cobol_warning): Same. | |
| (option_of): Same. | |
| (cbl_message): Same. | |
| (dialect_ok): Same. | |
| * parse.y: Issue Werrno diagnostic, and handle end-of-program EC. | |
| 2026-09-30 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (propogate_linkage_offsets): Spelling fixed. | |
| (collect_linkage_offsets): Use tables of offsets into COBOL | |
| hierarchical variables. | |
| (propagate_linkage_offsets): Likewise. | |
| (establish_using): Use corrected spelling. | |
| (parser_set_pointers): Likewise. | |
| * gengen.cc (struct gg_init_batch_stats): Batch adjacent clean | |
| initializations without moving them across executable statements. | |
| (gg_init_batch_candidate): Likewise. | |
| (gg_init_batch_static_decl): Likewise. | |
| (gg_init_batch_call): Likewise. | |
| (gg_batch_initializations): Likewise. | |
| (gg_finalize_function): Likewise. | |
| * move.cc (mh_alpha_to_alpha): Use runtime memset() instead of using | |
| build_string_literal on strings of spaces. | |
| 2026-09-29 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobolspec.cc (lang_specific_driver): Disable lib{compat,posix} | |
| if requested. | |
| 2026-09-29 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobolspec.cc (lang_specific_driver): Init need_libposix to true. | |
| 2026-09-29 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * genapi.cc (parser_call): Proper handling of the ON EXCEPTION | |
| clause. | |
| * parse.y: Handle missing target when the CALL is the final | |
| statement of the source code module. | |
| * parse_ante.h: Likewise. | |
| 2026-09-29 Robert Dubner <rdubner@symas.com> | |
| * picture.cc (is_valid_picture): Appease cppcheck. | |
| (process_line): Likewise. | |
| (process_file): Likewise. | |
| (main): Likewise. Likewise. | |
| * semantic_token.h (struct lex_picture_t): Likewise. | |
| * symbols.cc (expand_picture): Remove obsolete PICTURE workaround. | |
| * util.cc (cbl_field_t::encode_numeric): Likewise. | |
| 2026-09-29 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (struct refer_list_t): Whitespace. | |
| (update_prior_invalid_field): Move to symbols.cc. | |
| (field_add): Whitespace. | |
| * scan_post.h (run_cdf): Better debug messages. | |
| (next_token): Same. | |
| (prelex): Same. | |
| (yylex): Whitespace. | |
| * symbols.cc (update_prior_invalid_field): Define with external linkage. | |
| (name_queue_t::dump): Tidy up logic. | |
| * symbols.h (update_prior_invalid_field): Declare function. | |
| * util.cc (cdf_field_add): Use update_prior_invalid_field. | |
| 2026-09-28 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (current_call_convention): Whitespace. | |
| (struct cbl_loc_t): Same. | |
| (enum cbl_diag_id_t): Define MfValueClause, and sort. | |
| * cobol1.cc (cobol_warning_suppress): Whitespace. | |
| (cobol_langhook_handle_option): Handle new option. | |
| * gcobol.1: Document new option. | |
| * lang-specs.h: Accept new option. | |
| * lang.opt: Define new option. | |
| * messages.cc: Add new option to dialects. | |
| * picture.cc: Remove structures that no longer support picture validation. | |
| * symbols.cc (cbl_field_t::encode): Use new option. | |
| 2026-09-28 James K. Lowden <jklowden@cobolworx.com> | |
| * cdf.y: Synchronize token values. | |
| * parse.y: Remove alphanumeric-edited and numeric-edited nonterminals. | |
| * picture.cc (picsym_settable): Allow only numeric with 'S' in PICTURE. | |
| * scan.l: Remove lexing for alphanumeric-edited and numeric-edited. | |
| * token_names.h: Regenerate. | |
| 2026-09-28 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobc: Add -export-dynamic. | |
| 2026-09-28 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobc: Fix -v command-line option. | |
| 2026-09-28 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobc: Fix --various command-line options. | |
| 2026-09-28 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobc: Add stored-char-length.cpy via -include. | |
| 2026-09-28 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * lexio.cc (is_p): Rename function, support 'F'. | |
| (is_pf): Likewise. | |
| (is_program_id): Support FUNCTION-ID. | |
| (valid_sequence_area): Likewise. | |
| 2026-09-28 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * compare.cc (numeric_alpha_compare): Numeric-edited handling. | |
| * genapi.cc (parser_setop): Likewise. | |
| * genapi.h (parser_setop): Likewise. | |
| * parse.y: Likewise. | |
| * picture.cc (class picture_t): Validate PICTURE. | |
| (is_valid_picture): Likewise. | |
| (process_file): Likewise. | |
| (main): Formatting | |
| * scan_ante.h (level_needed): Likewise. | |
| (class enter_leave_t): Likewise. | |
| (trim_location): Likewise. | |
| (binary_integer_usage): Likewise. | |
| (level_of): Likewise. | |
| (ndigit): Likewise. | |
| (symbol_exists): Likewise. | |
| (typed_name): Likewise. | |
| (yyunput): Likewise. | |
| (unquote): Likewise. | |
| * symbols.cc (symbols_update): Likewise. | |
| (struct symbol_elem_t): Likewise. | |
| (symbol_file): Likewise. | |
| (expand_picture): Numeric-edited handling. | |
| (expand_expanded): Likewise. | |
| (cbl_file_t::filename_of): Formatting. | |
| 2026-09-27 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (struct cbl_loc_t): Add operators to increment first_column. | |
| (repeat_count): Declare function. | |
| (parse_error_count): Same. | |
| (cobol_location): Remove obsolete comment. | |
| * cdf.y: Update token values. | |
| * parse.y: Introduce PICTURE token. | |
| (keyword_tok): Exclude CDF tokens to prevent false positives. | |
| * parse_ante.h (struct arith_t): Better diagnositic. | |
| (valid_operands): New function. | |
| (parser_move_carefully): Reject invalid operands. | |
| (parser_move2): Whitespace. | |
| (parser_index): Same. | |
| * picture.cc (picture_rules): Revise automaton. | |
| (is_allowed): Add PICTURE constraints. | |
| (seek_paren): Add debug messages. | |
| (is_valid_picture): Rewrote function. | |
| (class picture_t): Capture PICTURE state to report to lexer. | |
| * scan.l: Use is_valid_token for complex pictures. | |
| * scan_ante.h (repeat_count): Use uint32_t, consistent with cbl_field_t. | |
| * semantic_token.h: New file representing lex_picture_t. | |
| * symbols.cc (parse_error_count): Remove declaration. | |
| * symbols.h: Use std::array. | |
| * symfind.cc (struct funcname): Whitespace. | |
| (symbol_match): Use diagnositic quotes. | |
| * token_names.h: Regenerate. | |
| * util.cc (named_constant): Return type of constant. | |
| (repeat_count): Accept location and return uint32_t. | |
| (parse_error_count): Remove declaration. | |
| * util.h (repeat_count): Same. | |
| 2026-09-27 James K. Lowden <jklowden@cobolworx.com> | |
| * words/cdf.h: New file. | |
| * words/intrinsic.h: New file. | |
| * words/reserved.h: New file. | |
| 2026-09-27 James K. Lowden <jklowden@cobolworx.com> | |
| * picture.cc (symbol_currency): Remove test harness mock-up. | |
| (cbl_internal_error): Same. | |
| (yy_flex_debug): Undefine, per usual. | |
| (seek_paren): Use ISALNUM. | |
| (is_valid_picture): Use repeat_count to resolve size. | |
| * scan_ante.h (repeat_count): Remove declaration. | |
| * util.cc (cbl_prototype_ok): Whitespace. | |
| (cdf_file): Same. | |
| (repeat_count): Same. | |
| (cbl_field_t::encode_numeric): Same. | |
| (cbl_field_t::report_invalid_initial_value): Same. | |
| (literal_subscript_oob): Same. | |
| (valid_move): Same. | |
| (hex2numstr): Same. | |
| (cobol_filename): Same. | |
| (gcc_location_set): Same. | |
| (parse_file): Same. | |
| (iso_cobol_word): Same. | |
| * util.h (repeat_count): Declare function. | |
| 2026-09-27 James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: Add gcc/cobol/picture.cc. | |
| * scan.l: Replace validate_picture with is_valid_picture. | |
| * scan_ante.h: Delete code that was commented out. | |
| * picture.cc: New file. | |
| 2026-09-25 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (use_static_call): Change name of global function to | |
| set_use_static_call. | |
| (set_use_static_call): Likewise. | |
| (cobol_langhook_handle_option): Use 'value' parameter rather than | |
| 'arg' parameter. | |
| * genapi.cc (use_static_call): Change name. | |
| (set_use_static_call): Likewise. | |
| (create_and_call): Call push/pop_program_state in the correct order. | |
| (literal_call_descriptor_type): Use common structure definition in | |
| both compile-time and run-time code. | |
| (GCOBOL_CALL_FIELD_NAME): Likewise. | |
| (GCOBOL_CALL_FIELD_TYPE): Likewise. | |
| (literal_call_descriptor): Likewise. | |
| (GCOBOL_CALL_FIELD_VALUE): Likewise. | |
| (function_pointer_for_literal_call): Consolidate several calls to | |
| libgcobol. | |
| (parser_call): Likewise. | |
| * lang.opt: Modify definition of -fstatic-call. | |
| 2026-09-23 Robert Dubner <rdubner@symas.com> | |
| * gcobol.1: Document the changes. | |
| * genapi.cc (function_pointer_from_name): Honor the | |
| >>CALL-CONVENTION. | |
| (parser_set_pointers): Repair the ZEROES bug. | |
| 2026-09-22 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (update_prior_invalid_field): Use is_figconst. | |
| (field_add): Always call update_prior_invalid_field. | |
| 2026-09-21 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (actually_create_the_static_field): Use the | |
| new expand_expanded routine. | |
| * symbols.cc (expand_picture): Add space to accommodate the six | |
| additional pre-processing characters. | |
| (expand_expanded): Append compile-time data to the end of numeric- | |
| edited PICTURE strings. | |
| * symbols.h (redefined_token): Formatting. | |
| (class current_tokens_t): Formatting. | |
| (expand_expanded): New declaration. | |
| * util.cc (cbl_field_t::encode_numeric): Use expand_expanded(). | |
| 2026-09-21 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Remove unused function. | |
| 2026-09-21 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobc: Remove stale logic. | |
| 2026-09-19 Robert Dubner <rdubner@symas.com> | |
| * parse.y: Comment out unused passby_str() function. | |
| 2026-09-18 Robert Dubner <rdubner@symas.com> | |
| * gcobol.1: Documentation for the .so search. | |
| * move.cc: Fix typo. | |
| * parse.y: Data capacity test. | |
| * symbols.cc (expand_picture): Fix off-by-one error; handle corner | |
| case where 'B' is the final character of a numeric-edited PICTURE | |
| string. | |
| * symbols.h: Remove unnecessary test. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * cobol1.cc (libcompat_copybook): Remove "udf" from the search list. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * cdf-copy.cc (copybook_elem_t::open_file): Do not error out on failure. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Reapply. | |
| * symbols.h: Likewise. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Replace redundant passby_str with cbl_ffi_crv_str. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Accept arbitrarily-sized PIC X for ANY LENGTH. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Set loc for numeric literals BY VALUE. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Show location for invalid arg in CALL. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Set loc also for numeric literals BY REFERENCE. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Fix undefined loc for CALL args. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse_ante.h (by_content_ok): Use temporary symbol location. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * cdf-copy.cc (copybook_elem_t::open_file): Use %qs. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * cdf-copy.cc (copybook_elem_t::open_file): Use fstat(2). | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Fix wrong diagnostic on numeric literals. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Print passing method on error. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| PR cobol/127074 | |
| * scan_post.h (datetime_format_of): Remove trailing pipe. | |
| 2026-09-18 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * parse.y: Revert. | |
| * symbols.h: Likewise. | |
| 2026-09-17 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (actually_create_the_static_field): Use expanded PICTURE | |
| string. | |
| * lang-specs.h: Updated cc1_options formatting string. | |
| * move.cc (mh_source_is_literalN): Use new numeric-edited routine. | |
| (mh_to_numeric_edited): Likewise. | |
| (move_helper): Likewise. | |
| * parse.y: Formatting. | |
| * symbols.cc (symbol_file): Mollify cppcheck. | |
| (expand_picture): Modified for numeric-editing. | |
| * symbols.h (cbl_dialect_str): Formatting. | |
| (enum dspc_t): Formatting. | |
| (MAXIMUM_ALPHA_LENGTH): Formatting. | |
| (is_elementary): Formatting. | |
| (struct cbl_field_t): Formatting. | |
| (struct cbl_refer_t): Formatting. | |
| (struct parameter_t): Formatting. | |
| (struct cbl_label_t): Formatting. | |
| (class temporaries_t): Formatting. | |
| (struct cbl_locale_t): Formatting. | |
| (hex2numstr): Formatting. | |
| (struct cbl_file_key_t): Formatting. | |
| (struct cbl_file_t): Formatting. | |
| (struct symbol_elem_t): Formatting. | |
| (redefine_field): Formatting. | |
| (is_prototypical): Formatting. | |
| (struct cbl_prog_hier_t): Formatting. | |
| (keyword_alias_add): Formatting. | |
| (class current_tokens_t): Formatting. | |
| (expand_picture): Formatting. | |
| * util.cc (cbl_prototype_ok): Formatting. | |
| (cdf_file): Formatting. | |
| (repeat_count): Formatting. | |
| (cbl_field_t::encode_numeric): Formatting; use new numeric-edited | |
| routine. | |
| (cbl_field_t::report_invalid_initial_value): Formatting. | |
| (valid_move): Formatting. | |
| (cobol_filename): Formatting. | |
| (gcc_location_set): Formatting. | |
| (parse_file): Formatting. | |
| 2026-09-14 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Emit diagnostic if symbol_currency_add fails. | |
| * parse_ante.h (update_prior_invalid_field): New function. | |
| (field_add): Use update_prior_invalid_field to validate prior field. | |
| * scan.l: Document currency-symbol domain. | |
| * symbols.cc (symbols_update): Quell redundant diagnostic. | |
| (symbol_currency_symbol_ok): Validate currency symbol. | |
| (symbol_currency_add): Use symbol_currency_symbol_ok. | |
| 2026-09-11 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Add wordop_t to each element. | |
| 2026-09-11 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (redefined_token): Add token parameter. | |
| * scan.l: Do not use redefined_token in the scanner. | |
| * scan_ante.h (typed_name): Same. | |
| * scan_post.h (next_token): Use redefined_token in the lexer wrapper. | |
| * symbols.h (redefined_token): Declaration matches definition. | |
| (class current_tokens_t): Document, and use enumerated constants. | |
| 2026-09-11 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Construct arith_t by value. | |
| * parse_ante.h (struct arith_t): Use const reference for constructor. | |
| (struct refer_list_t): Prefer initialization to std::copy. | |
| 2026-09-11 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Introduce MfHexNumeric. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Whex-numeric. | |
| * gcobol.1: Document Whex-numeric. | |
| * lang-specs.h: Add Whex-numeric to spec string. | |
| * lang.opt: Define Whex-numeric. | |
| * messages.cc: Add Whex-numeric to mf and gnu dialects. | |
| Make Wcontent-expr available in all dialects outside ISO. | |
| Finer distinctions remain to be drawn. | |
| * parse.y: (dialect_words_set): New function for per-dialect keywords. | |
| * scan.l: New rule for hexadecimal numeric notation. | |
| * symbols.cc (dimensions): Rewrite for REDEFINES table. | |
| * symbols.h (hex2numstr): Declare new function. | |
| (class current_tokens_t): Refine to recognize COBOL-WORDS. | |
| * util.cc (literal_subscript_oob): Rewrite to avoid UB. | |
| (hex2numstr): New function. | |
| 2026-09-11 James K. Lowden <jklowden@cobolworx.com> | |
| * genapi.cc (parser_file_write): Use RETURN_IF_PARSE_ONLY. | |
| * parse.y: Diagnose ADD CORRESPONDING operand count. | |
| 2026-09-10 Robert Dubner <rdubner@symas.com> | |
| * compare.cc (digiter): Spelling in comment. | |
| * genmath.cc (fast_add): Fix aliasing problem. | |
| (get_fbinary_value): New function for converting fixed-format to | |
| floating point, with rdigit scaling. | |
| (add_floats): Stop using library routines in favor of GENERIC. | |
| (add_format_3): Likewise. | |
| (subtract_floats): Likewise. | |
| (subtract_format_3): Likewise. | |
| 2026-09-09 Robert Dubner <rdubner@symas.com> | |
| * genmath.cc (all_results_integer): Formatting. | |
| (determine_excess_rdigits): New function: determines scaling factor for | |
| two or more additive terms. | |
| (add_phase_1): New function for efficient addition. | |
| (ordinary_add_format_1): Use add_phase_1(). | |
| (ordinary_subtract_format_1): Likewise. | |
| (add_litN_to_numdisp): Formatting. | |
| (add_format_2): Use add_phase_1(). | |
| (subtract_format_2): Likewise. | |
| * parse_ante.h (yylocation_print): Formatting. | |
| (struct arith_t): Likewise. | |
| (struct ast_op_t): Likewise. | |
| (cbl_field_t::blank_initial): Switch to charmap_t::memset to fill | |
| initialized memory. | |
| (parser_move_carefully): Formatting. | |
| (ast_enter_exit_section): Likewise. | |
| * symbols.cc (symbol_file): Mollify cppcheck. | |
| 2026-09-08 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (by_content_ok): Add test for literal. | |
| 2026-09-08 James K. Lowden <jklowden@cobolworx.com> | |
| * gcobol.1: Update description of BY CONTENT and Intrinsics. | |
| 2026-09-08 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (source_format_t::indicated): Return pointer to TAB if found. | |
| (cdftext::free_form_reference_format): Drop unnecessary TOUPPER. | |
| * lexio.h (TAB): Define symbol. | |
| * scan.l: Ignore text in comment_entries start condition. | |
| * scan_ante.h (symbol_exists): Use single-name lookup as fallback. | |
| * symbols.cc (field_str): Print partially-defined FldSwitch. | |
| 2026-09-08 James K. Lowden <jklowden@cobolworx.com> | |
| * cdf-copy.cc (copybook_elem_t::open_file): | |
| Correct Wcopybook-found diagnostic. | |
| * lexio.cc (cdftext::open_input): Same. | |
| (output_segment): New function with defeated tab-expansion. | |
| (cdftext::process_file): Use new output_segment function. | |
| * parse.y: Support Wredefines-table and EXIT RETURNING. | |
| Use diagnostic quotes. | |
| * scan.l: Support PIC 9(2)9(3) and PIC 9(name). | |
| Remove BLANK_OEOL pattern. | |
| * scan_ante.h (repeat_count): Return uninterpreted input. | |
| (ndigit): Interpret more than one count. | |
| (picset): Accept optional length. | |
| (symbol_lower_name): Remove function. | |
| (symbol_exists): Use map-supported symbol_find(). | |
| (scanner_cache_update): Remove function. | |
| (typed_name): Return UDF token, not name, if found. | |
| (continue_string): New function for string concatenation. | |
| * symbols.cc (symbol_function_impl): Use new symbols.functions map. | |
| (symbol_file_add): Add file to symbol-table map. | |
| (symbol_file): Remove scan, add search for GLOBAL FD. | |
| * symbols.h (symbol_find): Quell diagnostic when called from lexer. | |
| (class name_queue_t): Return empty list when queue is empty. | |
| * symfind.cc (symbol_match): Accept quell parameter. | |
| (symbol_find): Same. | |
| (symbol_find_of): Supply quell parameter. | |
| * util.cc (cdf_field_add): Use symbol_field_add. | |
| (named_constant): New function. | |
| (repeat_count): Declare to match new return type. | |
| 2026-09-06 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (inspect_replacing): Use SBC version. | |
| (parser_inspect_conv): Likewise. | |
| 2026-09-06 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (parser_symbol_add): Add ease-of-debugging feature. | |
| * symbols.cc (numeric_group_attrs): Inherit only from FldGroup. | |
| 2026-09-02 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (perform_inline_until): Create testA.label. | |
| (perform_inline_testafter_varying): Update comment. | |
| * gengen.cc (gg_append_statement): Update comments. | |
| 2026-09-02 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (program_end_stuff): Eliminate VAR_DECL, use save_expr() | |
| instead. Use proper type conversion. | |
| (create_and_call): Likewise. | |
| (parser_call): Use proper type conversion. | |
| * move.cc (mh_source_is_literalN): Eliminate a VAR_DECL. | |
| (copy_native_into_place): Likewise. | |
| 2026-08-30 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (create_our_type_nodes_init): New type node. | |
| * compare.cc (digiter): Change comment. | |
| (total_digits): Change how two variables are compared when | |
| total precision exceeds 37 digits. | |
| (type_based_on_digits): Comment. | |
| (numeric_compare): Change how two variables are compared when | |
| total precision exceeds 37 digits. | |
| (alpha_compare_figconst): Correct encoding conversions; eliminate | |
| a VAR_DECL. | |
| (alpha_compare): Avoid VAR_DECL creation. | |
| (numeric_alpha_compare): Correct encoding conversions; avoid | |
| VAR_DECL creation. | |
| (addr_of_compare): Use cleaner tree-fetching routines; avoid | |
| VAR_DECL creation with logical expressions. | |
| (float_compare): Avoid VAR_DECL creation. | |
| (compare_class): Likewise. | |
| * genapi.cc (COBOL_FUNCTION_RETURN_TYPE): Eliminate. | |
| (COBOL_FUNCTION_RETURN_64): Create. | |
| (COBOL_FUNCTION_RETURN_128): Create. | |
| (build_main_that_calls_something): Normalize return value | |
| processing. | |
| (get_field_p): Fix cbl_internal_error() string formatting. | |
| (get_level_88_domain): Correct memory allocation calculation. | |
| (get_class_condition_string): Fix cbl_internal_error() string. | |
| (parser_call_target_update): Correct return value type. | |
| (function_pointer_from_name): Return value processing; avoid | |
| VAR_DECL. | |
| (parser_initialize_programs): Return value processing. | |
| (store_location_stuff): Likewise. | |
| (depending_on_value): Eliminate VAR_DECLs. | |
| (tree_type_from_field_type): Return value processing. | |
| (get_interfunction_type): Likewise. | |
| (parser_goto): Use improved get_binary_value(). | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (SET_VAR_DECL): Likewise. | |
| (enter_program_common): Return value processing. | |
| (parser_accept): Eliminate VAR_DECL; use logical expressions. | |
| (parser_accept_command_line): Likewise. | |
| (parser_accept_envar): Likewise. | |
| (parser_display_internal): Fix file_descriptor blunder. | |
| (parser_display): Eliminate VAR_DECL. | |
| (parser_exhibit): Likewise. | |
| (parser_initialize_table): Likewise. | |
| (program_end_stuff): Return value processing; eliminate VAR_DECLs. | |
| (parser_xml_parse): Eliminate VAR_DECLS. | |
| (establish_using): Likewise. | |
| (parser_division): Return value processing; eliminate VAR_DECLs. | |
| (parser_relop_long): Simplify logic. | |
| (parser_see_stop_run): Use improved get_binary_value(). | |
| (parser_perform_inline_times): Likewise. | |
| (parser_file_open): Eliminate VAR_DECL; improve error reports. | |
| (parser_file_write): Likewise. | |
| (parser_file_delete): Likewise. | |
| (parser_file_delete_file): Likewise. | |
| (parser_file_rewrite): Likewise. | |
| (parser_file_start): Likewise. | |
| (inspect_tally): Likewise. | |
| (inspect_replacing): Likewise. | |
| (parser_intrinsic_call_1): Likewise. | |
| (handle_gg_trim): Likewise. | |
| (parser_trim): Likewise. | |
| (field_increment): Likewise. | |
| (parser_lsearch_start): Likewise. | |
| (parser_bsearch_start): Likewise. | |
| (parser_sort): Likewise. | |
| (parser_file_sort): Likewise. | |
| (parser_file_merge): Likewise. | |
| (parser_string): Likewise. | |
| (parser_call_exception_end): Formatting. | |
| (create_and_call): Return value processing. | |
| (parser_call): Likewise. | |
| (parser_set_pointers): Likewise. | |
| (parser_program_hierarchy): Fixed a blunder populating a std::set. | |
| (parser_match_exception): Use improved get_binary_value. | |
| (hijack_for_development): Return value processing. | |
| * gengen.cc (gg_build_translation_unit): Improve BLOCK chaining. | |
| (gg_chain_onto_block_vars): Likewise. | |
| (gg_append_var_decl): Improve map population. | |
| (gg_show_type): Expand capability. | |
| (gg_assign): Improved error reporting when types don't match. | |
| (gg_structure_type_constructor): Type checking and error reporting. | |
| (gg_find_field_in_struct): Improved error reporting. | |
| (gg_declare_variable): Improved "saw this before" error reporting; | |
| improved handling of WEAK and COMMON VAR_DECLs. | |
| (class DECL_COUNTER): Debug counter of VAR_DECL creation. | |
| (gg_define_from_declaration): Likewise. | |
| (gg_define_variable): Likewise. | |
| (gg_get_address_of): Improved use of TREE_ADDRESSABLE. | |
| (gg_increment2): New function for avoiding VAR_DECL. | |
| (gg_decrement2): Likewise. | |
| (gg_get_larger_type): Renamed. | |
| (get_larger_type): Fix messed up implementation. | |
| (gg_add): Use new get_larger_type(). | |
| (gg_subtract): Likewise. | |
| (gg_multiply): Likewise. | |
| (gg_real_divide): Likewise. | |
| (gg_divide): Likewise. | |
| (gg_mod): Likewise. | |
| (gg_bitwise_or): Likewise. | |
| (gg_bitwise_xor): Likewise. | |
| (gg_bitwise_and): Likewise. | |
| (gg_bswap): Renamed format parameter for clarity. | |
| (gg_logical_eq): New function for creating logical expressions. | |
| (gg_logical_ne): Likewise. | |
| (gg_logical_lt): Likewise. | |
| (gg_logical_gt): Likewise. | |
| (gg_logical_le): Likewise. | |
| (gg_logical_ge): Likewise. | |
| (gg_logical_and): Likewise. | |
| (gg_logical_or): Likewise. | |
| (gg_logical_xor): Likewise. | |
| (gg_logical_not): Likewise. | |
| (if_condition): New function that creates COND_EXPR. | |
| (LOGICAL_OKAY): Test for proper logical expression. | |
| (gg_build_logical_expression): Use LOGICAL_OKAY. | |
| (gg_create_goto_pair): Set proper attributes on a LABEL_DECL. | |
| (gg_while): Use LOOP_EXPR instead of a VAR_DECL counter. | |
| (gg_create_true_false_statement_lists): Fix COND_EXPR construction. | |
| (gg_printf): Eliminate VAR_DECL; improve parameter handling for call | |
| to printf(). | |
| (gg_fprintf): Likewise. | |
| (gg_memdup): Eliminate unused functions. | |
| (gg_return): Return value processing. | |
| (chain_parameter_to_function): Formatting; improved error detection | |
| and formatting. | |
| (function_decl_key): Eliminate. | |
| (gg_peek_fn_decl): Eliminate. | |
| (gg_build_fn_decl): Change function map; improved error reporting. | |
| (gg_define_function): Likewise; improve label handling in | |
| function_decl. | |
| (gg_get_function_decl): Eliminate unused function. | |
| (gg_finalize_function): Comment; error message. | |
| (gg_push_context): It wasn't correct. I think it is, now. | |
| (gg_pop_context): Error detection and reporting. | |
| (gg_call_expr): Change narg error report. | |
| (gg_call): Likewise. | |
| (gg_create_bind_expr): Use alloc_stmt_list(). | |
| (gg_sizeof): Improve size calculation. | |
| (gg_array_of_bytes): Simplified. | |
| (gg_string_literal): Likewise. | |
| (gg_insert_into_assembler): Add ASM_BASIC and ASM_VOLATILE. | |
| * gengen.h (IF_CONDITION): New convenience macro. | |
| (VOID): Formatting. | |
| (BOOL): Likewise. | |
| (CHAR): Likewise. | |
| (SCHAR): Likewise. | |
| (SCHAR_P): Likewise. | |
| (UCHAR): Likewise. | |
| (SHORT): Likewise. | |
| (SHORT_P): Likewise. | |
| (USHORT): Likewise. | |
| (WCHAR): Likewise. | |
| (INT): Likewise. | |
| (INT_P): Likewise. | |
| (UINT): Likewise. | |
| (LONG): Likewise. | |
| (ULONG): Likewise. | |
| (LONGLONG): Likewise. | |
| (UINT64): Likewise. | |
| (SIZE_T): Likewise. | |
| (SIZE_T_P): Likewise. | |
| (SSIZE_T): Likewise. | |
| (INT128): Likewise. | |
| (UINT128): Likewise. | |
| (FLOAT): Likewise. | |
| (DOUBLE): Likewise. | |
| (LONGDOUBLE): Likewise. | |
| (FLOAT128): Likewise. | |
| (VOID_P): Likewise. | |
| (VOID_P_P): Likewise. | |
| (CHAR_P): Likewise. | |
| (UCHAR_P): Likewise. | |
| (WCHAR_P): Likewise. | |
| (FILE_P): Likewise. | |
| (CONST_CHAR_P): Likewise. | |
| (struct gg_function_t): Eliminate current_block; add | |
| block_var_tails. | |
| (GTY): Add const_char_ptr_type_node to the list. | |
| (gg_increment2): New declaration. | |
| (gg_decrement2): Likewise. | |
| (gg_logical_eq): Likewise. | |
| (gg_logical_ne): Likewise. | |
| (gg_logical_lt): Likewise. | |
| (gg_logical_gt): Likewise. | |
| (gg_logical_le): Likewise. | |
| (gg_logical_ge): Likewise. | |
| (gg_logical_and): Likewise. | |
| (gg_logical_or): Likewise. | |
| (gg_logical_xor): Likewise. | |
| (gg_logical_not): Likewise. | |
| (if_condition): Likewise. | |
| (gg_memdup): Eliminate. | |
| (gg_peek_fn_decl): Likewise. | |
| (gg_array_of_bytes): Change formal parameter list. | |
| * genmath.cc (arithmetic_operation): Fix uninititalized byte. | |
| (all_results_integer): Fast route only handles trunction_e. | |
| (largest_binary_term): Improve logic. | |
| (struct binary_term_properties): New structure. | |
| (inspect_binary_terms): Improve logic. | |
| (fast_add): Use new get_binary_value; use safe_store. | |
| (fast_subtract): Likewise. | |
| (fast_multiply): Likewise. | |
| (fast_divide): Likewise. | |
| (add_litN_to_numdisp): Likewise. | |
| (subtract_floats): Likewise. | |
| * genutil.cc (giv_helper): Eliminate VAR_DECLs. | |
| (get_integer_value): Likewise. | |
| (get_and_check_refstart_and_reflen): Likewise. | |
| (get_depending_on_value_from_odo): Likewise. | |
| (get_depending_on_value): Likewise. | |
| (get_data_offset): Likewise. | |
| (get_data_address): Likewise. | |
| (get_power_of_two): Fix off-by-one error in array size. | |
| (scale_by_power_of_ten_N): AVoid need for VAR_DECL. | |
| (scale_by_power_of_ten): Likewise. | |
| (build_array_of_size_t): Switch to temporary array, rather than | |
| malloc. | |
| (get_literal_string): Eliminate. | |
| (refer_is_super_clean): Add FldLiteralN to logic. | |
| (refer_refmod_length): Eliminate VAR_DECLs. | |
| (refer_fill_depends): Likewise. | |
| (refer_offset): Initialize referenced parameter. | |
| (refer_size_source): Eliminate VAR_DECL. | |
| (safe_load): Simplified helper; safe for random byte alignment. | |
| (safe_store): Likewise. | |
| (safe_cast): Uses safe_load(). | |
| (binary_from_FldNumericBin5): Uses safe_cast(). | |
| (binary_from_FldLiteralN): Likewise. | |
| (binary_from_FldNumericBinary): Eliminate VAR_DECL. | |
| (d_and_q_num_disp): Likewise. | |
| (binary_from_numdisp): Eliminate VAR_DECLs; use conditional logic. | |
| (binary_from_FldNumericDisplay): Eliminate VAR_DECL. | |
| (d_and_q_packed): Likewise. | |
| (b_from_c3): Likewise. | |
| (binary_from_comp_3): Likewise. | |
| (binary_from_comp_6): Likewise. | |
| (binary_from_FldFloat): Use safe_cast(). | |
| (get_binary_value): Eliminate VAR_DECL. | |
| (get_location): Likewise. | |
| (safe_assign): Use new get_binary_value(). | |
| (get_length): Return tree instead of modifying a reference. | |
| (treeplet_fill_source): Properly establish offset. | |
| (data_decl_type_for): Return SCHAR instead of CHAR for one-byte | |
| value. | |
| (round_this_value): Avoid VAR_DECL; simplify logic. | |
| * genutil.h (scale_by_power_of_ten_N): Update declaration. | |
| (get_literal_string): Likewise. | |
| (get_depending_on_value_from_odo): Likewise. | |
| (get_binary_value): Likewise. | |
| (get_location): Likewise. | |
| (safe_cast): Likewise. | |
| (get_length): Likewise. | |
| (safe_load): Likewise. | |
| (safe_store): Likewise. | |
| * move.cc (conditional_abs): Eliminate. | |
| (get_binary_value_from_float): Eliminate a VAR_DECL. | |
| (mh_identical): Eliminate use of VAR_DECLs. | |
| (mh_source_is_literalN): Likewise. | |
| (mh_dest_is_float): Use safe_store(). | |
| (clear_negative_zero): Formatting. | |
| (mh_numeric_display): Don't call clear_negative_zero() when it is | |
| not needed. | |
| (mh_binary_to_numdisp): Avoid use of VAR_DECLs. | |
| (mh_binary_to_packed): Likewise. | |
| (copy_native_into_place): Avoid VAR_DECLs; improve logic; use | |
| safe_store(). | |
| (mh_to_binary): Use new get_binary_value(). | |
| (mh_source_is_literalA): Repair character encoding logic; avoid | |
| VAR_DECL. | |
| (mh_numdisp_to_packed): Repair character encoding logic; repair | |
| figurative constant handling. | |
| (mh_packed_to_packed): Eliminate VAR_DECLs. | |
| (mh_packed_to_numdisp): Eliminate VAR_DECLs; improve logic. | |
| (move_helper): Put stashed value storage into libgcobol. | |
| * symbols.cc (new_temporary_clone): Clone sign attribute bit. | |
| 2026-08-28 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126612 | |
| PR cobol/126614 | |
| * cdf.y: Add TRACE syntax. | |
| * parse.y: Add ACCEPT ... WITH grammar. | |
| * scan_post.h (is_cdf_token): Add trace tokens. | |
| 2026-08-28 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add MfRedefinesTable. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Wredefines-table. | |
| * gcobol.1: Document Wredefines-table. | |
| * lang-specs.h: Add Wredefines-table to spec string. | |
| * lang.opt: Define Wredefines-table. | |
| * messages.cc: Add Wredefines-table to -dialect mf. | |
| * parse_ante.h (valid_redefine): Honor new diagnostic. | |
| 2026-08-28 James K. Lowden <jklowden@cobolworx.com> | |
| * scan.l: Add VALUE to fd_state Start Condition. | |
| 2026-08-28 James K. Lowden <jklowden@cobolworx.com> | |
| * scan.l: Ubiquitous LENGTH OF patterns. | |
| 2026-08-28 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Introduce MfDisplayScreen. | |
| * cdf.y: Renumber tokens. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Wdisplay_screen. | |
| * gcobol.1: Document option. | |
| * lang-specs.h: Add option to spec string. | |
| * lang.opt: Define Wdisplay_screen. | |
| * messages.cc: Add Wdisplay_screen to -dialect mf. | |
| * parse.y: Rename implementation tokens. Extend DISPLAY | |
| grammar and revise COBOL-WORDS grammar to accept lists. | |
| * parse_ante.h (with_gnu_stuff): Ignore DISPLAY keywords. | |
| (with_gnu_names): Same. | |
| (with_gnu_color): Same. | |
| * scan.l: Use new token names and revise COBOL-WORDS lexing. | |
| * scan_ante.h (bcomputable): Use new token names. | |
| (binary_integer_usage_of): Same. | |
| * scan_post.h (prelex): Whitespace. | |
| * symbols.h (keyword_alias_add): Return bool, too. | |
| (class current_tokens_t): Use diagnostic quotes. | |
| * token_names.h: Regenerate. | |
| 2026-08-26 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126611 | |
| * parse.y: Modify COBOL WORDS grammar. | |
| * scan.l: Add support for $DISPLAY. | |
| * util.cc: Add Boolean bit-operators to reserved-word list. | |
| 2026-08-26 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126611 | |
| * cdf.y: Renumber tokens. | |
| * parse.y: Add tokens from ISO CDF reserved word list. | |
| * scan.l: Same, and reposition. | |
| * token_names.h: Regenerate. | |
| 2026-08-25 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add ParDynamicCall. | |
| * cdf-copy.cc (verify_bounds): Use diagnostic quotes. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle new option. | |
| * gcobol.1: Document new option. | |
| * lang-specs.h: Add new option to spec string. | |
| * lang.opt: Add Wdynamic-call option. | |
| * messages.cc (cbl_diagnostic_kind): Same. | |
| (cobol_warning): Use diagnostics::kind::note for option. | |
| * parse.y: Use new option. | |
| 2026-08-25 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (find_filter): Remove verbose_file_reader. | |
| (cdftext::open_input): Remove reliance on GCOBOL_TEMPDIR. | |
| * messages.cc (cobol_warning): Use diagnostics::kind::note. | |
| 2026-08-25 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126492 | |
| * cobol1.cc (enable_exceptions): Use diagnostic quotes. | |
| (complain): New function honors EcUnknownW. | |
| * exceptg.h (class exception_turn_t): Remove unconditional diagnostic. | |
| * parse_ante.h (procedure_division_ready): Whitespace. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/123890 | |
| * Make-lang.in: Remove unneeded message suppression for scan.l. | |
| * parse.y: SORT uses tableish, not tableref. | |
| * scan.l: Use usual Procedure Division name recognition for SORT. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * gcobol.1: Add new section. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Supply locations to arith_t object. | |
| * parse_ante.h (struct arith_t): Add and use numeric_ok and | |
| helper functions. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * genapi.cc (parser_sleep): Use RETURN_IF_PARSE_ONLY. | |
| * genmath.cc (parser_compute): Same. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (cbl_diagnostic_ignored): Declare function. | |
| * lexio.cc (cdftext::free_form_reference_format): | |
| Honor -Wno-stray-indicator. | |
| * messages.cc (cbl_diagnostic_ignored): New function. | |
| * parse.y: Persist in the face of lexio errors. | |
| * parse_ante.h (parser_move_carefully): Use cbl_field_type_name. | |
| * scan_post.h (start_condition_str): Add fd_state. | |
| * util.cc (cbl_field_type_str): Report name as "???" if confused. | |
| (valid_move): Allow MOVE literal to numeric-edited. | |
| (ERROR_MSG_BODY): Remove macro. | |
| (error_msg): Use old macro body directly in function. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Accept device name as filename in SELECT. | |
| * scan.l: Remove CR exclusion and rename STRING to STRING2. | |
| 2026-08-24 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add IbmContentExpr. | |
| * cobol1.cc (cobol_langhook_handle_option): Process OPT_Wcontent_expr. | |
| * gcobol.1: Document Wno-content-expr and recent Wno-redefines-grow. | |
| * genapi.cc (create_and_call): Remove unqualified diagnostic. | |
| * lang-specs.h: Add option to spec string. | |
| * lang.opt: Define Wno-content-expr. | |
| * messages.cc: Add IbmContentExpr to ibm dialect. | |
| * parse.y: Verify BY CONTENT with by_content_ok(). | |
| * parse_ante.h (by_content_ok): New function. | |
| * scan.l: Reduce overambitious TITLE scan. | |
| * symbols.h (struct cbl_ffi_arg_t): Add by_content() for convenience. | |
| 2026-08-21 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Define IsoRedefinesGrow. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Wredefines-grow. | |
| * lang-specs.h: Same. | |
| * lang.opt: Same. | |
| * lexio.cc (preprocess_filter_add): Use xstrdup, not std::vector. | |
| * messages.cc: Quell Wredefines-grow with -dialect ibm. | |
| * parse_ante.h (valid_redefine): Conditional message. | |
| 2026-08-19 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (in_procedure_division): Position alphabetically. | |
| (in_identification_division): New function. | |
| (in_file_section): Remove void argument declaration. | |
| * scan.l: Add TITLE pattern and accept as NAME outside ID Division. | |
| * scan_ante.h (in_procedure_division): Remove void argument declaration. | |
| (in_environment_division): Same. | |
| (in_identification_division): Declare new function. | |
| 2026-08-19 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * cdf.y: Revise debug message and token numbers. Remove USED_TOKEN | |
| macro, introduce SAVE_LOOKAHEAD. | |
| * gengen.cc (class DECL_COUNTER): Add VAR_DECL creation counter. | |
| (gg_define_from_declaration): Likewise. | |
| * parse.y: Move named XML tokens to first token list and recognize | |
| FILLER. | |
| * scan.l: Eliminate scan used for debug message. | |
| * scan_ante.h (level_found): Remove function. | |
| (PUSH_CDF_STATE): Push cdf_state SC at most once. | |
| (trim_location): Less verbose debug message. | |
| (symbol_lower_name): New function. | |
| (symbol_exists): Use symbol_lower_name and accept override parameter. | |
| (scanner_cache_update): New function. | |
| (unquote): New function for string literals. | |
| * scan_post.h (start_condition_str): Update with new SC names. | |
| (run_cdf): Do not pop from cdf_state unconditionally. | |
| (RECENT): Remove macro. | |
| (same_end): Remove function. | |
| (same_token): Same. | |
| (next_token): Same. | |
| (prelex): Use cdf::last_lexed and cdf::had_lookahead(). | |
| (yylex): Remove one early return. | |
| * symbols.cc (symbol_program): Use new map of programs. | |
| (symbol_function_impl): Use new map of functions. | |
| (symbol_temporaries): Use new list of alphanumerics. | |
| (symbol_temporary_alphanumerics): New class to house alphanumerics | |
| list. | |
| (symbol_program_add): Populate new maps. | |
| * token_names.h: Regenerate. | |
| * util.cc (cdf_field_add): Use scanner_cache_update. | |
| 2026-08-17 Robert Dubner <rdubner@symas.com> | |
| * cdf.y: Revert changes. | |
| * lexio.cc (skip_quoted_literal): Likewise. | |
| (remove_inline_comment): Likewise. | |
| * parse.y: Likewise. | |
| * scan.l: Likewise. | |
| * scan_ante.h (skip_string): Likewise. | |
| (yyinput): Likewise. | |
| (yyunput): Likewise. | |
| (is_refmod): Likewise. | |
| * token_names.h: Likewise. | |
| 2026-08-14 Robert Dubner <rdubner@symas.com> | |
| * move.cc (mh_binary_to_numdisp): Pass intermediates to __gg__move. | |
| (mh_binary_to_packed): Likewise. | |
| (mh_to_binary): Likewise. | |
| (copy_intermediate_into_place): Eliminate. | |
| 2026-08-12 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (get_level_88_domain): Expanded comment. | |
| (create_and_call): Handle CALL USING BY VALUE ZERO. | |
| * structs.cc: Updated comment. | |
| * util.cc: Prevent segfault when the procedures_t(size_t) | |
| constructor is invoked with exactly 512 symbols. | |
| 2026-08-10 Robert Dubner <rdubner@symas.com> | |
| * gcobol.1: Documentation | |
| * genapi.cc (create_cblc_string_variable): Use new vs_global enum | |
| instead of old vs_external. | |
| (SET_VAR_DECL): Use new vs_extern instead of vs_external_reference. | |
| (parser_division): Likewise. | |
| (parser_file_add): Use vs_weak instead of vs_external. | |
| (psa_global): Likewise. | |
| (psa_new_var_decl): Likewise; Use new naming convention. | |
| (parser_symbol_add): Use vs_common instead of vs_external. | |
| * gengen.cc (gg_declare_variable): Clean up VAR_DECL attibute | |
| assignments; use new variable_scope constants. | |
| * gengen.h (enum gg_variable_scope_t): Update the enum constants. | |
| 2026-08-07 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * genapi.cc (gg_array_of_field_pointers): Modified to return a | |
| pointer to the first element of the array. | |
| (gg_array_of_uchar_p): Formatting. | |
| (parser_sort): Use updated gg_array_of_field_pointers(). | |
| (parser_file_sort): Likewise. | |
| (parser_file_merge): Likewise. | |
| * genapi.h (parser_compute): New declarations. | |
| * gengen.h (gg_array_of_field_pointers): Modified declaration. | |
| * genmath.cc (parser_compute): New declarations. | |
| * genutil.h (gg_array_of_uchar_p): New declaration. | |
| * move.cc (mh_binary_to_numdisp): Use new __gg__prohibited() | |
| routine. | |
| (parser_move): Formatting. | |
| (parser_move_multi): Formatting. | |
| * parse.y: RPN support. | |
| * parse_ante.h (ast_op): Likewise. | |
| (ast_relop): Likewise. | |
| (struct ast_op_t): Likewise. | |
| (struct refer_list_t): Likewise. | |
| (struct vargs_t): Likewise. | |
| * symbols.h (struct rpn_t): Likewise. | |
| (struct expr_t): Likewise. | |
| 2026-08-07 Robert Dubner <rdubner@symas.com> | |
| * cdf.y: Changes in support of CDF parsing. | |
| * compare.cc (total_digits_tree): Use gg_define_variable(). | |
| (alpha_compare_figconst): Likewise. | |
| (alpha_compare): Likewise. | |
| (numeric_alpha_compare): Likewise. | |
| (addr_of_compare): Likewise. | |
| (compare_class): Likewise. | |
| * genapi.cc (create_cblc_string_variable): Formatting. | |
| (initialize_variable_internal): Use gg_define_variable(). | |
| (enter_program_common): Likewise. | |
| (parser_accept): Likewise. | |
| (parser_display): Likewise. | |
| (parser_exhibit): Likewise. | |
| (parser_assign): Likewise. | |
| (parser_xml_parse): Likewise. | |
| (establish_using): Likewise. | |
| (parser_division): Likewise. | |
| (parser_file_open): Likewise. | |
| (parser_file_delete_file): Likewise. | |
| (inspect_tally): Likewise. | |
| (inspect_replacing): Likewise. | |
| (parser_unstring): Likewise. | |
| (parser_string): Likewise. | |
| (create_and_call): Likewise. | |
| (hijack_for_development): Likewise. | |
| * gengen.cc (gg_declare_variable): Clean up comments. Early return | |
| when "already_defined". Clean up VAR_DECL attributes. | |
| (gg_define_variable): Clean up how gg_declare_variable is used. | |
| (gg_define_volatile_variable): Eliminate. | |
| (gg_define_bool): Eliminate. | |
| (gg_define_char): Eliminate. | |
| (gg_define_uchar): Eliminate. | |
| (gg_define_int): Eliminate. | |
| (gg_define_size_t): Eliminate. | |
| (gg_define_int128): Eliminate. | |
| (gg_define_char_star): Eliminate. | |
| (gg_define_uchar_star): Eliminate. | |
| (gg_define_void_star): Eliminate. | |
| (gg_define_longdouble): Eliminate. | |
| (gg_fprintf): Use gg_define_variable(). | |
| (gg_read): Likewise. | |
| (gg_memdup): Likewise. | |
| * gengen.h (enum gg_variable_scope_t): Eliminate vs_file. | |
| (gg_define_variable): New overloaded declaration. | |
| (gg_define_volatile_variable): Eliminate. | |
| (gg_define_bool): Eliminate. | |
| (gg_define_char): Eliminate. | |
| (gg_define_uchar): Eliminate. | |
| (gg_define_int): Eliminate. | |
| (gg_define_size_t): Eliminate. | |
| (gg_define_int128): Eliminate. | |
| (gg_define_longdouble): Eliminate. | |
| (gg_define_void_star): Eliminate. | |
| (gg_define_char_star): Eliminate. | |
| (gg_define_uchar_star): Eliminate. | |
| (gg_get_address_of): Formatting. | |
| * genmath.cc (set_up_compute_error_label): Use gg_define_variable(). | |
| (add_litN_to_numdisp): Likewise. | |
| * lexio.cc (skip_quoted_literal): Eliminate. | |
| (remove_inline_comment): Change the algorithm. | |
| * parse.y: CDF processing changes. | |
| * scan.l: Likewise. | |
| * scan_ante.h (yyinput): Likewise. | |
| (yyunput): Likewise. | |
| (skip_string): Likewise. | |
| (is_refmod): Likewise. | |
| * show_parse.h (TRACE1_INDENT): Use gg_define_variable(). | |
| * structs.cc: Change comment. | |
| * token_names.h: Updated for CDF changes. | |
| 2026-08-04 Jakub Jelinek <jakub@redhat.com> | |
| * parse.y (selected_name): Use %<-dialect ibm%> instead of just | |
| -dialect ibm. | |
| 2026-08-03 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (skip_quoted_literal): New function. | |
| (remove_inline_comment): Use new function. | |
| 2026-08-03 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Add OTHER as assign target. | |
| 2026-08-03 James K. Lowden <jklowden@cobolworx.com> | |
| * cdf.y: Update tokens. | |
| * parse.y: Remove TITLE token. | |
| * scan.l: Remove scanning for TITLE. | |
| * token_names.h: Remove TITLE from token set. | |
| 2026-08-03 James K. Lowden <jklowden@cobolworx.com> | |
| * scan.l: Remove pattern that potentially matches until EOF. | |
| * scan_ante.h (skip_string): Recast in terms of input/unput. | |
| (yyinput): Declare function. | |
| (yyunput): Declare function. | |
| (is_refmod): Recast in terms of input/unput. | |
| 2026-08-03 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119461 | |
| * genapi.cc (array_of_long_long): Renamed array_of_uint64(). | |
| (array_of_uint64): Likewise. | |
| (parser_compile_ecs): Use array_of_uint64(). | |
| (parser_compile_dcls): Likewise. | |
| (parser_file_add): Likewise. | |
| (gg_array_of_file_pointers): Use new cblc_file_pp_type_node; | |
| * gengen.cc (gg_get_structure_type_decl): Moved to structs.cc and | |
| renamed. | |
| * gengen.h (ULONGLONG): #define removed and replaced with UINT64. | |
| (UINT64): Likewise. | |
| (gg_get_structure_type_decl): Declaration removed. | |
| * structs.cc (create_structure_type): New function. | |
| (get_structure_type_decl): Renamed version of | |
| gg_get_structure_type_decl(). | |
| (create_cblc_field_t): Cleaned up structure creation. | |
| (create_referlet_t): Likewise. | |
| (create_refer_t): Likewise. | |
| (create_our_type_nodes): Likewise. | |
| * structs.h (GTY): New declaration for cblc_file_pp_type_node; | |
| * symbols.h (enum cbl_ctype_t): Removed. | |
| 2026-08-02 Robert Dubner <rdubner@symas.com> | |
| PR cobol/126391 | |
| * move.cc (move_helper): static tree stash has file-static scope. | |
| 2026-08-01 Robert Dubner <rdubner@symas.com> | |
| * compare.cc (numeric_compare): Change comment. | |
| * genutil.cc (get_power_of_ten): Likewise. | |
| 2026-08-01 Robert Dubner <rdubner@symas.com> | |
| * copybook.h (_COPYBOOK_H): #include <sys/types.h> for macOS. | |
| * lexio.h (struct filespan_t): Mollify cppcheck with a const variable. | |
| * parse.y: Adjust a dbgmsg() call. | |
| * util.cc (cobol_filename): Likewise. | |
| 2026-07-31 James K. Lowden <jklowden@cobolworx.com> | |
| * scan.l: Add value pattern. | |
| 2026-07-30 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y (dialect_ok): Enable messages without a quoted tagline. | |
| * scan.l: Add SECTION pattern so it is not handled by general NAME pattern. | |
| 2026-07-30 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120804 | |
| * cbldiag.h (enum cbl_diag_id_t): Add MfRedefinesFirst. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle option. | |
| * gcobol.1: Document option. | |
| * lang-specs.h: Add -Wredefines-first to spec string. | |
| * lang.opt: Add option. | |
| * messages.cc: Add option to dialect map. | |
| * parse.y: Error message depends on option value. | |
| 2026-07-30 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126495 | |
| PR cobol/126496 | |
| * gcobol.1: Update manual to reflect new syntax. | |
| * parse.y: Allow void sentence and increment s/r expected count to 7. | |
| * scan.l: Lex $END-IF, optionally, as $END. | |
| 2026-07-30 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126393 | |
| * symbols.cc (symbol_redefines_root): Describe purpose in comment. | |
| (symbol_explicitly_redefines): Remove function. | |
| (symbols_update): Remove over-constrained validation. | |
| 2026-07-29 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (parser_move_carefully): Use ordinary %s in message. | |
| 2026-07-29 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add MfSetNumeric and sort alphabetically. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle OPT_Wset_numeric. | |
| * gcobol.1: Document Wset-numeric option. | |
| * lang-specs.h: Add Wset-numeric to specs string. | |
| * lang.opt: Add Wset-numeric option. | |
| * messages.cc: Add MfSetNumeric to mf and gnu dialects, and sort alphabetically. | |
| * parse_ante.h (parser_move_carefully): Report diagnotic per dialect. | |
| 2026-07-29 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Report LPAREN token as '(', not ')'. | |
| * scan.l: Remove newline exclusion from LPAREN pattern. | |
| * scan_ante.h (rsearch): Helper function to ensure c++11 compatibility. | |
| (trim_location): Use rsearch function. | |
| (is_quote): New inline function to test quotiness. | |
| (skip_string): New function to find end of string literal. | |
| (is_refmod): Stay in bounds. | |
| * util.cc (gcc_location_set): Decrease debug message verbosity. | |
| 2026-07-28 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (set_real_from_capacity): Use symbol_field_capacity_set(). | |
| * symbols.cc (calculate_capacity): Whitespace. | |
| (symbol_field_capacity_set): New function. | |
| * symbols.h (symbol_field_capacity_set): Declare function. | |
| 2026-07-28 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Remove value78 nonterminal, introduce | |
| level_constant nonterminal for all constants. Move validation | |
| to level_constant. Remove other special handling for Level 78. | |
| * scan_post.h (prelex): Correct Level 78/88 typo. | |
| 2026-07-28 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (location_dump): Only declare function. | |
| * parse.y: Update numeric PICTURE parse, and better diagnostic. | |
| * scan.l: Rewrite numeric and numeric-edited PICTURE scan. | |
| * scan_ante.h (myless): Use "unique" local variable name. | |
| (length_upto): New function. | |
| (is_name_char): New function. | |
| (length_of_name): New function. | |
| (trim_location): Set location endpoint by addition, not subtraction. | |
| (ndigit): Allow 'V' at beginning or end of PICTURE string. | |
| * util.cc (gcc_location_set): Indentation, and more verbose debugging. | |
| (yy_flex_debug): Undefine tree.h symbol. | |
| (location_dump): Define function in .cc file, now public. | |
| 2026-07-28 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (cdftext::free_form_reference_format): Assign from char(0x8D). | |
| 2026-07-27 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (cdftext::free_form_reference_format): Use new sanitize_nul function. | |
| * lexio.h (struct filespan_t): Define sanitize_nul(). | |
| 2026-07-27 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (cdf_push_source_format): Remove declaration. | |
| (cdf_pop_source_format): Same. | |
| * cdf-copy.cc (is_fixed_format): Same. | |
| (is_reference_format): Same. | |
| (esc): Pass new format parameter and use new 0x8D Debug indicator. | |
| * cdf.y: Ignore SOURCE FORMAT directive (handled in lexio.cc). | |
| * lexio.cc (cdf_source_format): Delete function definition. | |
| (source_format_t::infer): Same. | |
| (is_fixed_format): Same. | |
| (is_reference_format): Same. | |
| (left_margin): Same. | |
| (right_margin): Same. | |
| (include_debug): Assume fixed format. | |
| (set_debug): Same. | |
| (continues_at): Remove unused function. | |
| (indicated): Move function to source_format_t class. | |
| (source_format_t::indicated): Replace ::indicated(). | |
| (filespan_t::tab_check): Delete function. | |
| (check_push_pop_directive): Add format stack parameter. | |
| (check_source_format_directive): Same. | |
| (esc): Add format parameter and use 0x8D indicator. | |
| (parse_replace_pairs): Add format parameter. | |
| (parse_copy_directive): Same. | |
| (parse_replace_text): Same. | |
| (parse_replace_directive): Same. | |
| (cdftext::lex_open): Instantiate and pass format stack. | |
| (cdftext::free_form_reference_format): Add format stack parameter and 0x8D indicator. | |
| (cobol_set_indicator_column): Stash command-line option. | |
| (cdftext::process_file): Add format stack parameter. | |
| * lexio.h (struct filespan_t): Remove tab_check() function. | |
| (class source_format_t): Lift into header file to share with cdf-copy.cc. | |
| (class cdftext): Add several functions, formerly file-scope. | |
| (free_form_reference_format): Move to source_format_t. | |
| * parse.y: Slightly simplify parse of WITH DEBUGGING MODE. | |
| * scan.l: Recognize new 0x8D indicator. | |
| * scan_ante.h (cobol_set_indicator_column): Remove declaration. | |
| * util.cc (class cdf_directives_t): Remove source format support. | |
| (cobol_set_indicator_column): Move function to lexio.cc. | |
| (cdf_source_format): Delete function. | |
| (cdf_push_source_format): Same. | |
| (cdf_pop_source_format): Same. | |
| * util.h (class source_format_t): Move to lexio.h. | |
| 2026-07-27 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (array_of_long_long): Improved creation. | |
| (gg_array_of_size_t): Likewise. | |
| (gg_array_of_field_pointers): Likewise. | |
| (gg_array_of_uchar_p): Likewise. | |
| (parser_sort): Use modified routine. | |
| (parser_file_sort): Likewise. | |
| (parser_file_merge): Likewise. | |
| * gengen.cc (gg_array_of_size_t): Improved creation. | |
| * gengen.h (gg_array_of_field_pointers): Likewise. | |
| (gg_array_of_size_t): Likewise. | |
| 2026-07-25 Jakub Jelinek <jakub@redhat.com> | |
| * symbols.cc (symbols_dump): Use HOST_SIZE_T_PRINT_UNSIGNED instead | |
| of "%zu" and add cast to fmt_size_t. | |
| 2026-07-25 Robert Dubner <rdubner@symas.com> | |
| * cbldiag.h (struct cbl_loc_t): Mollify cppcheck. | |
| * gcobol.1: Documentation. | |
| * genapi.cc (parser_accept_date_yymmdd): Changes to ACCEPT. | |
| (parser_accept_date_yyyymmdd): Likewise. | |
| (parser_accept_date_yyddd): Likewise. | |
| (parser_accept_date_yyyyddd): Likewise. | |
| (parser_accept_date_dow): Likewise. | |
| (parser_accept_date_hhmmssff): Likewise. | |
| (walk_initialization): Propagate based_e attribute to child variables. | |
| (parser_file_open): SELECT ASSIGN TO DEVICE changes. | |
| (parser_call): Include function name in error message when the | |
| function name cannot be found. | |
| * genapi.h (parser_accept_date_yymmdd): Changes to ACCEPT. | |
| (parser_accept_date_yyyymmdd): Likewise. | |
| (parser_accept_date_yyddd): Likewise. | |
| (parser_accept_date_yyyyddd): Likewise. | |
| (parser_accept_date_dow): Likewise. | |
| (parser_accept_date_hhmmssff): Likewise. | |
| * genutil.cc (FIXED_WIDE_INT): Potential improvement to MOVE | |
| statements involving intermediate_e variables. | |
| (get_power_of_two): Likewise. | |
| * genutil.h (FIXED_WIDE_INT): Likewise. | |
| * lexio.h (struct filespan_t): Mollify cppcheck. | |
| * move.cc (mh_identical): Improve MOVE execution speed. | |
| (copy_native_into_place): Likewise. | |
| (copy_intermediate_into_place): Likewise. | |
| (mh_to_binary): Likewise. | |
| (move_helper): Likewise. | |
| * parse.y: Changes to ACCEPT. | |
| * symbols.cc (symbol_table_init): Add external_e attribute to | |
| DEBUG-ITEM and children. | |
| (new_temporary_impl): Mollify cppcheck. | |
| * symfind.cc (struct funcname): Likewise. | |
| * util.cc (determine_intermediate_type): Set output.data.digits to | |
| zero. | |
| 2026-07-23 James K. Lowden <jklowden@cobolworx.com> | |
| * gcobc: Consolidate warning cases and update comments. | |
| 2026-07-23 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Add value_clause_e to bitmask for test. | |
| * symbols.cc (symbols_update): Improve diagnostic message. | |
| 2026-07-22 James K. Lowden <jklowden@cobolworx.com> | |
| * scan.l: Make PARAMETER and friends unspecial outside CDF. | |
| 2026-07-22 James K. Lowden <jklowden@cobolworx.com> | |
| * cdf.y (cdf::location): New function. | |
| * scan_post.h (same_end): New function to match token ending | |
| locations. | |
| (same_token): New function to match two tokens. | |
| 2026-07-22 James K. Lowden <jklowden@cobolworx.com> | |
| * cobol1.cc (enable_exceptions): Remove redundant message. | |
| * lang-specs.h: Provide both forms of every warning. | |
| * parse.y: Remove deleterious comment. | |
| 2026-07-22 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): New warnings. | |
| * cobol1.cc (cobol_langhook_handle_option): Process warnings. | |
| * gcobol.1: Document warnings and devices. | |
| * lang-specs.h: Accept warngings. | |
| * lang.opt: Define warnings. | |
| * messages.cc: Associate warnings with dialects. | |
| * parse.y: Parse new syntax. | |
| 2026-07-21 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (struct cbl_loc_t): Assert is_trivially_copyable. | |
| * parse.y: Define YYLTYPE_IS_TRIVIAL. | |
| 2026-07-20 Robert Dubner <rdubner@symas.com> | |
| * copybook.h (_COPYBOOK_H): Remove #include <sys/types.h>. | |
| * gcobol.1: Documentation. | |
| * parse.y: Use int_size_in_bytes. | |
| * util.cc (cobol_filename): Change dbgmsg formatting. | |
| 2026-07-17 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/122466 | |
| * copybook.h: Include sys/types.h | |
| * parse.y: Cast size for printf %lu parameter. | |
| * util.cc (cobol_filename): Same. | |
| 2026-07-17 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/122916 | |
| * gcobol.1: Remove blank line and escape characters in width arguments. | |
| 2026-07-17 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (parser_file_open): New filename-as-device feature | |
| awaiting implementation. | |
| * lexio.h (struct filespan_t): Variable name change. | |
| * parse.y: Filename-as-device. | |
| * parse_ante.h (field_find): Likewise. | |
| (data_division_ready): _literally_zero and _literally_one global | |
| constants. | |
| * scan.l: Require separate space after '<', '>' and '=' comparison | |
| operators. | |
| * scan_ante.h (update_location): Change debug message text. | |
| * symbols.cc (constq): Eliminate #define in favor of explicit | |
| (constant_e | quoted_e). | |
| (label_cmp): Formatting: eliminate trailing space. | |
| (symbol_elem_cmp): Filename-as-device. | |
| (enum protoreq_t): Formatting: eliminate trailing space. | |
| (cbl_field_t::clear_attr): Likewise. | |
| (symbols_dump): Likewise. | |
| (cbl_field_t::attr_str): Likewise. | |
| (field_str): Likewise. | |
| (symbols_update): Use _literally_zero and _literally_one. | |
| (endian_bit): Compact access to cobol_target_big_endian(). | |
| (symbol_table_init): Normalize initialization of "special | |
| registers". | |
| (symbol_registers_add): Likewise. | |
| (cbl_perform_tgt_t::recurses): Formatting: eliminate trailing space. | |
| (symbol_literalA): Replace constq. | |
| (cbl_alphabet_t::reencode): Eliminate trailing space. | |
| (symbol_temporary_alphanumerics): Likewise. | |
| (new_literal_add): Likewise. | |
| (new_temporary_clone): Ensure FldLiteralBin5 has the endian attribute of | |
| the target architecture. | |
| (iconv_cd): Formatting: eliminate trailing space. | |
| (cbl_field_t::encode): Likewise. | |
| (cbl_field_t::set_capacity): Formatting: eliminate trailing space. | |
| (cbl_label_t::str): Likewise. | |
| (cbl_file_t::special_index): New function supporting | |
| filename-as-device. | |
| (cbl_file_t::filename_of): Likewise. | |
| * symbols.h (struct cbl_special_name_t): Support filename as device. | |
| (struct cbl_file_t): Likewise. | |
| (symbol_typedef): Likewise. | |
| (symbol_special_index): Likewise. | |
| 2026-07-16 Robert Dubner <rdubner@symas.com> | |
| PR cobol/126277 | |
| * move.cc (mh_identical): Handle externals that have parents. | |
| (mh_binary_to_packed): Eliminate trailing whitespace. | |
| * symbols.cc (symbol_table_init): Correct attributes of DEBUG-CONTENTS. | |
| 2026-07-16 James K. Lowden <jklowden@cobolworx.com> | |
| * gcobolspec.cc (lang_specific_driver): New text for OPT__help. | |
| 2026-07-16 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: New diagnostic messages regarding invalid device | |
| name use. | |
| * scan.l: Add right paren as lexical terminator for simple | |
| condition. | |
| 2026-07-15 James K. Lowden <jklowden@cobolworx.com> | |
| * parse_ante.h (procedure_division_ready): Test field with is_typedef(). | |
| 2026-07-15 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Add debug messages during parameter validation. | |
| * symbols.h: (cbl_ffi_arg_t::capacity_ok): New function. | |
| 2026-07-12 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add IbmCallFd. | |
| * cobol1.cc (cobol_langhook_handle_option): Handle Wcall-fd. | |
| * gcobol.1: Document Wcall-fd. | |
| * lang-specs.h: Add Wcall-fd. | |
| * lang.opt: Same | |
| * messages.cc: Add Wcall-fd as IBM dialect option. | |
| * parse.y: Use was_fd_name() to prevent misuse. | |
| * parse_ante.h (field_find): Add incompatible semantics warning. | |
| (parser_move_carefully): Same. | |
| * symbols.cc (symbols_update): Add FD name to symbol map. | |
| * symbols.h (update_symbol_map2): Declare overload for file. | |
| (was_fd_name): Declare function. | |
| * symfind.cc (struct funcname): Define to minimize __PRETTY_FUNCTION__. | |
| (__funcsig__): Define function-name macro. | |
| (class sym_name_t): Redefine public members as const. | |
| (class symbol_file_names_t) Define maps for FD names. | |
| (update_symbol_map2): Define overload for file. | |
| (was_fd_name): Define. | |
| (symbol_find): Use new symbol_file_names class. | |
| 2026-07-11 Robert Dubner <rdubner@symas.com> | |
| * copybook.h (class copybook_t): Mollify cppcheck. | |
| * lexio.h (struct filespan_t): Likewise. | |
| * symbols.h (symbol_typedef): Add declaration. | |
| 2026-07-10 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Copy charmaps.cc and valconv.cc without using SED to | |
| alter their contents. | |
| * cbldiag.h (struct cbl_loc_t): Mollify cppcheck. | |
| * compare.cc (alpha_compare_figconst): Endianness. | |
| (alpha_compare): Endianness. | |
| * genapi.cc (get_class_condition_string): Endianness. | |
| (parser_statement_end): Fix initialization. | |
| (initialize_variable_internal): Likewise. | |
| (leave_section_internal): Likewise. | |
| (parser_init_list): Likewise. | |
| (parser_alphabet): Pass "cbl_alphabet_t *" instead of | |
| "cbl_alphabet_t &" | |
| (parser_alphabet_use): Likewise. | |
| (program_end_stuff): Endianness. | |
| (establish_using): Endianness; use out-of-band metadata to handle | |
| passing intermediate_e variables BY VALUE. | |
| (parser_trim): Endianness. | |
| (parser_sort): Change call to parser_alphabet_use(). | |
| (parser_file_sort): Likewise. | |
| (parser_file_merge): Likewise. | |
| (create_and_call): Change handling of BY VALUE; handle RETURN-CODE | |
| properly for dialects IBM, MF, and GNU. | |
| (actually_create_the_static_field): Endianness. | |
| (parser_symbol_add): Endianness. | |
| * genapi.h (parser_alphabet): Change declaration. | |
| (parser_alphabet_use): Likewise. | |
| (parser_file_merge): Make a couple of formal parameters "const". | |
| * genmath.cc: Incorporate cobol-endian.h. | |
| * genutil.cc (binary_from_numdisp): Endianness. | |
| (get_binary_value): Endianness. | |
| (safe_cast): Prevent aliasing. | |
| (safe_assign): New routine that extracts the binary value from a | |
| numeric source, and assigns it to the target, converting as | |
| necessary based on the target's TREE_TYPE. | |
| * genutil.h (safe_assign): New declaration. | |
| * messages.cc: Incorporate cobol-endian.h. | |
| * move.cc (mh_source_is_literalN): Use streamlined, endian-safe | |
| routines. | |
| * parse.y: Incorporate cobol-endian.h; set big_endian_e for | |
| FldNumericBin5 when the target machine is big-endian. | |
| * parse_ante.h (mode_syntax_only): Formatting. | |
| (struct prototype_type_t): Likewise. | |
| (is_allowed_name): Likewise. | |
| (prototype_args): Likewise. | |
| (verify_args): Likewise. | |
| (valid_pointer_relop): Likewise. | |
| (blankit): Eliminate. | |
| (cbl_field_t::blank_initial): Handle multi-byte characters. | |
| (cbl_field_t::set_initial): Formatting. | |
| (data_division_ready): Likewise. | |
| (field_binary_usage): Likewise. | |
| (ast_end_program): Likewise. | |
| * parse_util.h (intrinsic_invalid_parameter): Eliminate FldIndex as | |
| an invalid parameter type. | |
| * symbols.cc (symbols_alphabet_set): Remove FldIndex from list of | |
| invalid types. | |
| (cbl_alphabet_t::reencode): Handle big-endian multi-byte charsets. | |
| (iconv_cd): Use helpful_iconv_open(). | |
| (symbol_label_add): Eliminate overwritten assignment. | |
| * util.cc (cbl_field_t::encode_numeric): Handle big-endian | |
| numeric-display values. | |
| 2026-07-10 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.h (parse_error_inc): Declare function. | |
| (struct filespan_t::next_line): Detect and remove NUL, | |
| 2026-07-09 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126105 | |
| * parse.y: Remove unnecessary test and improve diagnostic message. | |
| * parse_ante.h (yylocation_print): New function. | |
| (YYLOCATION_PRINT): Define, because user-defined cbl_loc_t location. | |
| * symbols.cc (symbol_typedef): Exclude current field from type search. | |
| * symbols.h (symbol_typedef): Delete unused overload. | |
| 2026-07-09 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/126106 | |
| * parse.y: Report error instead of crashing. | |
| 2026-07-08 James K. Lowden <jklowden@cobolworx.com> | |
| * genapi.cc (parser_call_targets_dump): Remove function. | |
| * genapi.h (parser_call_targets_dump): Same. | |
| * parse.y: Instantiate forward labels consistently. | |
| (label_add) Capture forward references for efficiency. | |
| (paragraph_reference) Use forward reference. | |
| (label_add_once): New function. | |
| * parse_ante.h (label_add_once): Declare function. | |
| (label_instantiate): New function. | |
| (ast_enter_exit_section): Improve debug message. | |
| * symbols.cc (label_cmp): Allow forward reference to have a parent. | |
| (cbl_label_ref_t): Remove class. | |
| (symbol_label): Whitespace. | |
| (symbols_dump): Add information to output. | |
| (symbol_add): Remove program label symbol-assignment to symbol_label_add. | |
| (cbl_label_t::str): Add information to output. | |
| (symbol_label_add): Assign id to program label. | |
| * symbols.h (class cbl_label_ref_t): Remove. | |
| (struct symbol_elem_t): Remove struct keyword. | |
| (struct cbl_label_t): Same. | |
| (struct cbl_special_name_t): Same. | |
| (struct cbl_field_t): Same. | |
| (symbol_typedef): Same. | |
| (symbol_field): Same. | |
| (symbol_label): Same. | |
| (symbol_function): Same. | |
| (symbol_function_any): Same. | |
| (symbol_program): Same. | |
| (symbol_literalA): Same. | |
| (symbol_special): Same. | |
| (symbol_locale): Same. | |
| (symbol_alphabet): Same. | |
| (symbol_file): Same. | |
| (symbol_file_record): Same. | |
| (struct cbl_section_t): Same. | |
| (symbol_section): Same. | |
| (parent_of): Same. | |
| * util.cc: (match_proc::find) Use only section and paragraph names. | |
| 2026-07-08 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y (literal_refmod_valid): Do not deference NULL pointer. | |
| 2026-07-06 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (struct cbl_loc_t): Add as_first_line() function. | |
| (location_dump): Shorten diagnostic message. | |
| * cdf-copy.cc (copybook_elem_t::open_file): Same. | |
| * copybook.h (class copybook_t): Remove debug message. | |
| * lexio.cc (parse_copy_directive): Clarify comment. | |
| (cdftext::lex_open): Set please_push_filename boolean for open_input. | |
| (cdftext::open_input): Issue push directive where COPY appeared. | |
| (cdftext::output_push_directive): New function. | |
| (cdftext::process_file): Relocate PUSH/POP directives. | |
| * lexio.h (class cdftext): Add please_push_filename and output_push_directive(). | |
| * parse.y: Improve PERFORM diagnostics. | |
| * parse_ante.h (ast_enter_exit_section): Correct paragraph section ancestor. | |
| * scan.l: Update gcc location for PUSH directive. | |
| * symbols.cc (cbl_perform_tgt_t::recurses): New validation function. | |
| * symbols.h (struct cbl_perform_tgt_t): Same. | |
| * util.cc (cobol_filename): Clarify diagnostic message. | |
| (gcc_location_set_impl): Remove function. | |
| (gcc_location_set): Implement directly. | |
| (gcc_location_dump): Add newline to output. | |
| 2026-06-30 Robert Dubner <rdubner@symas.com> | |
| * compare.cc (alpha_compare_figconst): Make the code endian-agnostic. | |
| (alpha_compare): Likewise. | |
| (numeric_alpha_compare): Likewise. | |
| (float_compare): Force proper data comparisons. | |
| * genapi.cc (parser_goto): Use improved get_binary_value() routine. | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (parser_display_internal): Set formal parameter to const. | |
| (program_end_stuff): Use get_binary_value(). | |
| (parser_relop_long): Likewise. | |
| (parser_see_stop_run): Likewise. | |
| (parser_perform): Set formal parameter to const. | |
| (parser_perform_inline_times): Use new get_binary_value(). | |
| (parser_file_write): Likewise. | |
| (parser_file_start): Likewise. | |
| (handle_gg_trim): Endian. | |
| (parser_trim): Likewise. | |
| (field_increment): Use new get_binary_value(). | |
| (parser_lsearch_start): Likewise. | |
| (parser_release): Set formal parameter to const. | |
| (parser_match_exception): Use new get_binary_value(). | |
| (parser_field_attr_set): Set formal parameter to const. | |
| * genapi.h (parser_display_internal): Likewise. | |
| (parser_perform_times): Likewise. | |
| (parser_perform): Likewise. | |
| (parser_goto): Likewise. | |
| (parser_field_attr_set): Likewise. | |
| (parser_file_start): Likewise. | |
| (parser_release): Likewise. | |
| * gengen.cc (gg_assign): Comment. | |
| * genmath.cc (fast_add): New get_binary_value; address aliasing. | |
| (fast_subtract): Likewise. | |
| (fast_multiply): Likewise. | |
| (fast_divide): Likewise. | |
| * genutil.cc (get_scaled_rdigits): Set formal parameter to const. | |
| (get_scaled_digits): Set formal parameter to const. | |
| (get_integer_value): Improved data conversion; make local static. | |
| (CHECK_FOR_FRACTIONAL_DIGITS): Moved here from genutil.h. | |
| (giv_helper): New get_integer_value helper routine. | |
| (get_and_check_refstart_and_reflen): get_binary_value and aliasing. | |
| (get_depending_on_value_from_odo): Set some variables to const. | |
| (get_data_offset): Use new get_integer_value() routine. | |
| (digit): Eliminate as part of improved get_binary_value() conversion. | |
| (num_disp_dive): Likewise. | |
| (pd_dive): Likewise. | |
| (get_pd_value): Likewise. | |
| (get_binary_value_tree): Likewise. | |
| (get_binary_value): New binary conversion routines. | |
| (field_is_super_clean): Likewise. | |
| (refer_is_working_storage): Likewise. | |
| (is_working_storage): Likewise. | |
| (refer_refmod_length): Likewise. | |
| (binary_from_FldNumericBin5): Likewise. | |
| (binary_from_FldLiteralN): Likewise. | |
| (binary_from_FldNumericBinary): Likewise. | |
| (binary_from_FldNumericDisplay): Likewise. | |
| (binary_from_numdisp): Likewise. | |
| (binary_from_comp_3): Likewise. | |
| (b_from_c3): Likewise. | |
| (binary_from_comp_6): Likewise. | |
| (binary_from_FldPacked): Likewise. | |
| (binary_from_FldFloat): Likewise. | |
| (get_location): Avoid aliasing. | |
| (safe_cast): Likewise. | |
| (attribute_bit_clear): Set formal parameter to const. | |
| (attribute_bit_get): Likewise. | |
| (attribute_bit_set): Likewise. | |
| (round_this_value): New routine for COBOL rounding. | |
| * genutil.h (get_scaled_rdigits): Set formal parameter to const. | |
| (get_scaled_digits): Set formal parameter to const. | |
| (get_binary_value): Modified declaration. | |
| (get_binary_value_tree): Eliminate. | |
| (CHECK_FOR_FRACTIONAL_DIGITS): Move to genutil.cc. | |
| (get_integer_value): Eliminated declaration. | |
| (field_is_super_clean): New declaration. | |
| (refer_is_working_storage): Changed to is_working_storage(). | |
| (is_working_storage): Eliminated. | |
| (get_location): New declaration for field_t * overload. | |
| (safe_cast): New declaration. | |
| (attribute_bit_clear): Set formal parameter to const. | |
| (attribute_bit_get): Likewise. | |
| (attribute_bit_set): Likewise. | |
| * move.cc (copy_little_endian_into_place): Changed to | |
| copy_native_into_place(). | |
| (copy_native_into_place): Endian awareness. | |
| (mh_little_endian): Change name to mh_to_binary. | |
| (mh_to_binary): Endian awareness. | |
| (move_helper): Use mh_to_binary. | |
| * parse.y: Comment out code pending a bug fix. | |
| * parse_ante.h (cbl_field_t::blank_initial): Endian awareness. | |
| * show_parse.h: Make a variable const. | |
| * structs.cc (member): Set formal parameter to const. | |
| * structs.h (member): Likewise. | |
| * util.cc (binary_initial): Endian awareness. | |
| (cbl_field_t::encode_numeric): Endian and aliasing awareness. | |
| 2026-06-25 Robert Dubner <rdubner@symas.com> | |
| * gengen.cc (gg_abs): Use fold_build1(). | |
| * genutil.cc (scale_and_round): Remove function. | |
| (round_this_value): New function for rounding. | |
| * genutil.h (scale_and_round): Remove function. | |
| (round_this_value): New declaration. | |
| * move.cc (cobol_wider_type_with_x_signedness): New function. | |
| (mh_binary_to_numdisp): Faster routine. | |
| (mh_binary_to_packed): Faster routine. | |
| (move_helper): Use the faster routines. | |
| 2026-06-24 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Modify grammar to accept list of intrinic function tokens. | |
| * parse_ante.h (in_procedure_division): Remove C-syntax (void). | |
| (in_environment_division): Declare function. | |
| * scan_ante.h (in_procedure_division): Whitespace. | |
| (in_environment_division): Define function. | |
| (typed_name): Return intrinsic function token in environment division. | |
| * scan_post.h (in_procedure_division): Remove duplicate declaration. | |
| 2026-06-24 James K. Lowden <jklowden@cobolworx.com> | |
| * lexio.cc (valid_sequence_area): Each character may be | |
| ISDIGIT or ISBLANK. | |
| 2026-06-24 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Introduce ast_relop to apply validation. | |
| * parse_ante.h (ast_relop): Declare. | |
| (class eval_subject_t): Use ast_relop. | |
| 2026-06-23 James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (enum cbl_diag_id_t): Add IbmCdf. | |
| * cdf.y: Renumber tokens. | |
| * cobol1.cc (cobol_langhook_handle_option): Accept -Wibm-cdf. | |
| * gcobol.1: Document Wibm-cdf | |
| * lang-specs.h: Add Wno-ibm-cdf to spec string. | |
| * lang.opt: Add Wibm-cdf. | |
| * messages.cc (cobol_warning_suppress): Add IbmCdf to cbl_diagnostics. | |
| * parse.y: Handle PROCESS token. | |
| * scan.l: Return PROCESS token. | |
| * token_names.h: Update. | |
| 2026-06-23 James K. Lowden <jklowden@cobolworx.com> | |
| * parse.y: Restrict Program-ID as name to top-level. | |
| * scan.l: Elevate keyword priority in lexer. | |
| 2026-06-22 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * gcobol.1: Document -B. | |
| * lang-specs.h: Remove %I spec. | |
| * lang.opt: Remove options injected by %I. | |
| * lang.opt.urls: Likewise. | |
| 2026-06-20 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (parser_enter_file): Establish a var_decl for the | |
| common packed-decimal to binary conversion table. | |
| * genutil.cc (digit): Divide-and conquer numeric-display converter. | |
| (num_disp_dive): Likewise. | |
| (pd_dive): Divide-and-conqure packed-decimal converter. | |
| (get_pd_value): Likewise. | |
| (get_binary_value_tree): Use the new routines. | |
| (binary_from_FldNumericBinary): Divide-and conquer numeric-display | |
| converter. | |
| * genutil.h: Declaration for var_decl_dp2bin. | |
| * move.cc (mh_little_endian): Allow FldPacked as a source. | |
| 2026-06-18 Robert Dubner <rdubner@symas.com> | |
| * cbldiag.h (current_program_index): Suppress cppcheck warning. | |
| (struct cbl_loc_t): Likewise. | |
| * genutil.cc (get_depending_on_value_from_odo): Check subscript | |
| against occurs-depending-on value. | |
| (get_data_offset): Likewise. | |
| (digit): Fast string-to-binary routine. | |
| (num_disp_dive): Likewise. | |
| (get_binary_value_tree): Likewise. | |
| (copy_little_endian_into_place): Move the function to move.cc. | |
| (get_location): Normalize use of "data" pointer versus using the | |
| address of a known variable. | |
| * genutil.h (copy_little_endian_into_place): Remove declarations. | |
| * move.cc (get_reference_to_data): Eliminate function. | |
| (mh_identical): Simplify the logic that uses get_location. | |
| (copy_little_endian_into_place): Use the routine for both little- | |
| and big-endian targets. Take absolute value of signed inputs when | |
| the target is unsigned. | |
| (mh_little_endian): Handle both little- and big-endian targets. | |
| * symbols.cc (cbl_alphabet_t::cbl_alphabet_t): Suppress | |
| cppcheck warning. | |
| 2026-06-16 Robert Dubner <rdubner@symas.com> | |
| * compare.cc (numeric_alpha_compare): Use tree_type_from_refer(). | |
| * genapi.cc (file_static_variable): Eliminate function. | |
| (psa_FldLiteralN): Use tree_type_from_field. | |
| (parser_accept_command_line): Eliminate file-static variables. | |
| (parser_accept_envar): Likewise. | |
| (parser_assign): Likewise. | |
| (parser_initialize_table): Likewise. | |
| (parser_see_stop_run): Likewise. | |
| (parser_file_write): Likewise. | |
| (parser_file_start): Likewise. | |
| (inspect_tally): Likewise. | |
| (inspect_replacing): Likewise. | |
| (field_increment): Likewise. | |
| (parser_match_exception): Likewise. | |
| * genapi.h (file_static_variable): Eliminate function. | |
| * genmath.cc (largest_binary_term): Use tree_type_from_refer(). | |
| (fast_add): Likewise. | |
| (fast_subtract): Likewise. | |
| (fast_multiply): Likewise. | |
| (fast_divide): Likewise. | |
| (parser_divide): Likewise. | |
| * genutil.cc (tree_type_from_digits): Eliminate function. | |
| (get_integer_value): Eliminate file-static variables. | |
| (get_data_offset): Eliminate file-static variables. | |
| (get_binary_value_tree): Eliminate file-static variables. | |
| (tree_type_from_field): Updated function. | |
| (tree_type_from_refer): New function. | |
| (scale_by_power_of_ten): Eliminate file-static variables. | |
| (tree_type_from_size): Eliminate function. | |
| (copy_little_endian_into_place): Improve logic. | |
| (build_array_of_size_t): Eliminate file-static variables. | |
| (refer_refmod_length): Likewise. | |
| (refer_fill_depends): Likewise. | |
| (refer_size): Likewise. | |
| (refer_size_source): Likewise. | |
| * genutil.h (tree_type_from_digits): Eliminate function. | |
| (tree_type_from_size): Eliminate function. | |
| (tree_type_from_refer): New function. | |
| * lang.opt: Updated documentation. | |
| * lang.opt.urls: Updated documentation. | |
| * move.cc (digits_to_bytes): Eliminate function. | |
| (get_bytes_needed): Likewise. | |
| (mh_source_is_literalN): Eliminate file-static variables; use | |
| tree_type_from_refer(). | |
| (mh_numeric_display): Likewise. | |
| (mh_little_endian): tree_type_from_refer(). | |
| (mh_numdisp_to_packed): Use get_location() function. | |
| (mh_packed_to_packed): Likewise. | |
| (mh_packed_to_numdisp): Likewise. | |
| (move_helper): Likewise. | |
| 2026-06-16 James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: Report Bison version. | |
| * cbldiag.h (defined): Define possibly missing macros. | |
| (ATTRIBUTE_GCOBOL_DIAG): Define if missing. | |
| (ATTRIBUTE_PRINTF_1): Same. | |
| (ATTRIBUTE_PRINTF_3): Same. | |
| (yyerror): Remove. | |
| (struct YYLTYPE): Remove. | |
| (enum cbl_gcobol_feature_t): Relocate from symbols.h. | |
| (YYLTYPE_IS_DECLARED): Remove. | |
| (YYLTYPE_IS_TRIVIAL): Remove. | |
| (cobol_location): Relocate. | |
| (cobol_gcobol_feature_set): Declare. | |
| (struct YDFLTYPE): Remove. | |
| (enum cbl_call_convention_t): Relocate from symbols.h. | |
| (YDFLTYPE_IS_DECLARED): Remove. | |
| (YDFLTYPE_IS_TRIVIAL): Remove. | |
| (current_call_convention): Declare. | |
| (cdf_push): Declare. | |
| (cdf_push_call_convention): Declare. | |
| (cdf_push_current_tokens): Declare. | |
| (cdf_push_dictionary): Declare. | |
| (cdf_push_enabled_exceptions): Declare. | |
| (cdf_push_source_format): Declare. | |
| (cdf_pop): Declare. | |
| (cdf_pop_call_convention): Declare. | |
| (cdf_pop_current_tokens): Declare. | |
| (cdf_pop_dictionary): Declare. | |
| (cdf_pop_source_format): Declare. | |
| (cdf_pop_enabled_exceptions): Declare. | |
| (current_program_index): Declare. | |
| (struct cbl_loc_t): Derive from cbl_loc_base_t. | |
| (struct cbl_loc_base_t): Define. | |
| (cbl_err): Declare. | |
| (cbl_errx): Declare. | |
| (error_msg): Use cbl_loc_t. | |
| (warn_msg): Same. | |
| (cbl_unimplemented_at): Same. | |
| (gcc_location_set): Same. | |
| * cdf.y: Require Bison 3.8.2 and generate C++ in cdf namespace. | |
| * cdfval.h (struct YDFLTYPE): Remove. | |
| (struct cbl_loc_t): Forward declaration. | |
| (struct cdfval_base_t): User-defined conversion from derived. | |
| * copybook.h (gcc_assert): Use assert(3) within cdf.y. | |
| (gcc_unreachable): Declare within cdf.y. | |
| (class copybook_elem_t): Use cbl_loc_t. | |
| (CTOUPPER): Use toupper(3) in uppername_t helper. | |
| (TOUPPER): Same. | |
| (class copybook_t): Use cbl_loc_t. | |
| * exceptg.h (struct cbl_label_t): Declare cbl_label_t. | |
| * gcobc: Support -fno-ec. | |
| * gcobol.1: Reword -fsyntax-only slightly. | |
| * genapi.cc (parser_label_label): Use cobol_location(). | |
| * lang.opt: Add comment in re lang.opt.urls. | |
| * lexio.cc (struct replacing_term_t): Use cbl_loc_t. | |
| (location_in): Same. | |
| (parse_copy_directive): Same. | |
| * lexio.h (struct filespan_t): Same. | |
| * messages.cc (cbl_message): Same. | |
| * parse.y: Same, and propagate location variously. | |
| * parse_ante.h (current_data_section_set): Use cbl_loc_t. | |
| (namcpy): Same. | |
| (reject_refmod): Same. | |
| (require_pointer): Same. | |
| (require_integer): Same. | |
| (ast_op): Same. | |
| (perform_tgt_set): Same. | |
| (label_add): Same. | |
| (paragraph_reference): Same. | |
| (tee_up_name): Same. | |
| (ast_inspect): Same. | |
| (ast_enter_section): Same. | |
| (ast_enter_paragraph): Same. | |
| (prototype_add): Same. | |
| (verify_args): Same. | |
| (subscript_dimension_error): Same. | |
| (literal_subscripts_valid): Same. | |
| (literal_refmod_valid): Same. | |
| (struct cbl_fieldloc_t): Remove. | |
| (intrinsic_call_1): Use cbl_loc_t. | |
| (symbol_find): Same. | |
| (valid_redefine): Same. | |
| (field_add): Same. | |
| (field_type_update): Same. | |
| (field_capacity_error): Same. | |
| (field_alloc): Same. | |
| (file_add): Same. | |
| (alphabet_add): Same. | |
| (set_real_from_capacity): Same. | |
| (procedure_division_ready): Same. | |
| (file_section_fd_set): Same. | |
| (ast_call): Same. | |
| (field_binary_usage): Same. | |
| (ast_end_program): Same. | |
| (cobol_location): Same. | |
| (location_set): Same. | |
| (statement_begin): Same. | |
| (ast_first_statement): Same. | |
| * scan.l: Qualify tokens with new cdf namespace. | |
| * scan_ante.h (ydfparse): Now static. | |
| (cdf_context): Declare. | |
| (ydfltype_of): Remove. | |
| (update_location): Use cbl_loc_t. | |
| (reset_location): Same. | |
| (YY_USER_INIT): Same. | |
| (class picture_t): Same. | |
| * scan_post.h (ydfparse): Wrapper for cdf_parser::parse() method. | |
| (ydfchar): Lookahead helper. | |
| (ydfdebug): Same. | |
| (run_cdf): Clearer debug messages. | |
| (struct pending_token_t): Renamed to recent_token_t. | |
| (struct recent_token_t): As above. | |
| (PENDING): Renames to RECENT. | |
| (RECENT): As above. | |
| (next_token): Removed. | |
| (recent_tokens_t): Capture abandoned lookahead tokens. | |
| (prelex): Use recent_tokens queue. | |
| (yylex): Drop normal parsing idea. | |
| * symbols.cc (symbol_field_location): Use cbl_loc_t. | |
| (symbol_alphabet): Same. | |
| (cbl_alphabet_t::cbl_alphabet_t): Same. | |
| (cbl_alphabet_t::assign): Same. | |
| (cbl_alphabet_t::also): Same. | |
| (symbol_temporary_location): Same. | |
| (cbl_field_t::encode): Same. | |
| * symbols.h (enum cbl_gcobol_feature_t): Remove. | |
| (cobol_gcobol_feature_set): Remove. | |
| (struct cbl_field_t): Use cbl_loc_t. | |
| (struct cbl_refer_t): Same. | |
| (struct cbl_alphabet_t): Same. | |
| (struct cbl_perform_tgt_t): Same. | |
| (struct cbl_nameloc_t): Same. | |
| (class name_queue_t): Same. | |
| (tee_up_name): Same. | |
| (symbol_field_location): Same. | |
| (enum cbl_call_convention_t): Remove | |
| (class current_tokens_t): Use cbl_loc_t. | |
| (current_call_convention): Same. | |
| (gcc_location_set): Same. | |
| * util.cc (class cdf_directives_t): Use cbl_loc_t. | |
| (cdf_unreachable): Define as gcc_unreachable. | |
| (cdf_literalize): Do not handle location. | |
| (cdf_file): New function. | |
| (cdf_file_index): Same. | |
| (cdf_file_name): Same. | |
| (cdf_add_field): Same. | |
| (cbl_field_t::encode_numeric): Remove unused parameter. | |
| (cbl_field_t::report_invalid_initial_value): Use cbl_loc_t. | |
| (match_proc): Namespace for local prototype-verification functions. | |
| (DUMP_PROCEDURE_CALLS): Guard macro for debug function. | |
| (procedure_calls_dump): New function to show uses of PERFORM. | |
| (gcc_location_set_impl): Use cbl_loc_t. | |
| (gcc_location_set): Same. | |
| (class temp_loc_t): Same. | |
| (error_msg): Same. | |
| (warn_msg): Same. | |
| (ydfdebug): Same. | |
| (cobol_set_debugging): Same. | |
| (cbl_unimplemented_at): Same. | |
| * util.h (cbl_err): Remove declaration. | |
| (cbl_errx): Same. | |
| (cdf_push): Same. | |
| (cdf_push_call_convention): Same. | |
| (cdf_push_current_tokens): Same. | |
| (cdf_push_dictionary): Same. | |
| (cdf_push_enabled_exceptions): Same. | |
| (cdf_push_source_format): Same. | |
| (cdf_pop): Same. | |
| (cdf_pop_call_convention): Same. | |
| (cdf_pop_current_tokens): Same. | |
| (cdf_pop_dictionary): Same. | |
| (cdf_pop_source_format): Same. | |
| (cdf_pop_enabled_exceptions): Same. | |
| 2026-06-14 Robert Dubner <rdubner@symas.com> | |
| * move.cc (hex_of): Move the routine. | |
| (hex_msg): Likewise. | |
| (clear_negative_zero): New routine for clearing "negative zero" | |
| after certain MOVEs. | |
| (mh_numeric_display): Use clear_negative_zero(). | |
| (mh_packed_to_packed): Check for SIZE-ERROR; use | |
| clear_negative_zero(). | |
| (mh_packed_to_numdisp): New routine. | |
| (move_helper): Use mh_packed_to_numdisp(). | |
| (parser_move): Move the parser_move routine. | |
| (parser_move_multi): Likewise. | |
| (mh_numdisp_to_packed): Move routine; use clear_negative_zero; | |
| * parse.y: Set separate_e for COMP-6 variables. | |
| 2026-06-11 Robert Dubner <rdubner@symas.com> | |
| * move.cc (mh_packed_to_packed): Moved. | |
| (mh_numdisp_to_packed): New function. | |
| (move_helper): Use mh_numdisp_to_packed(). | |
| (hex_msg): New debugging function. | |
| * parse.y: Enable __gg__char_national(). | |
| 2026-06-10 Robert Dubner <rdubner@symas.com> | |
| * move.cc (parser_move): Don't compile hex_of function. | |
| (hex_of): Likewise. | |
| (mh_packed_to_packed): Eliminated commented-out calls to hex_of. | |
| 2026-06-09 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Incorporate new move.cc file. | |
| * genapi.cc (gg_attribute_bit_get): Removed. | |
| (treeplet_fill_source): Moved. | |
| (file_static_variable): Likewise. | |
| (move_helper): Likewise. | |
| (parser_initialize_programs): Use pointer without converting to | |
| size_t. | |
| (get_binary_value_from_float): Moved. | |
| (gg_attribute_bit_clear): Removed. | |
| (gg_attribute_bit_set): Removed. | |
| (digits_to_bytes): Moved. | |
| (get_bytes_needed): Moved. | |
| (data_decl_type_for): Moved. | |
| (parser_display_internal): Forward reference to move_helper. | |
| (get_literalN_value): Moved. | |
| (is_figconst_t): Moved. | |
| (parser_initialize_table): Moved. | |
| (is_figconst): Moved. | |
| (parser_move): Moved. | |
| (parser_move_multi): Moved. | |
| (parser_division): Use function_address as pointer in call to | |
| __gg__is_canceled. | |
| (conditional_abs): Moved. | |
| (get_reference_to_data): Moved. | |
| (mh_identical): Moved. | |
| (mh_source_is_literalN): Moved. | |
| (float_type_of): Moved. | |
| (mh_dest_is_float): Moved. | |
| (picky_memset): Moved. | |
| (picky_memcpy): Moved. | |
| (mh_numeric_display): Moved. | |
| (mh_little_endian): Moved. | |
| (mh_source_is_group): Moved. | |
| (mh_source_is_literalA): Moved. | |
| (have_common_parent): Moved. | |
| (mh_alpha_to_alpha): Moved. | |
| * genapi.h (move_helper): New declaration. | |
| * gengen.cc (gg_cast): Changes to someday detect aliasing | |
| conditions. | |
| (gg_show_type): Expand types. | |
| (gg_indirect_i): Take a size_t parameter. | |
| (gg_array_value): Use gg_cast() wrapper instead of fold_convert(). | |
| (gg_memchr): Likewise. | |
| (gg_strcmp): Likewise. | |
| (gg_strncmp): Likewise. | |
| (gg_strlen): Likewise. | |
| (gg_strdup): Likewise. | |
| (gg_malloc): Likewise. | |
| (gg_realloc): Moved. | |
| * gengen.h (gg_indirect_i): New declaration. | |
| * genutil.cc (get_location): Starting to look for aliasing. | |
| (treeplet_fill_source): Moved. | |
| (data_decl_type_for): Moved. | |
| (attribute_bit_clear): Moved. | |
| (attribute_bit_get): Moved. | |
| (attribute_bit_set): Moved. | |
| * genutil.h (treeplet_fill_source): New declaration. | |
| (data_decl_type_for): Likewise. | |
| (attribute_bit_clear): Likewise. | |
| (attribute_bit_get): Likewise. | |
| (attribute_bit_set): Likewise. | |
| * move.cc: New file. | |
| 2026-06-05 Robert Dubner <rdubner@symas.com> | |
| PR cobol/125616 | |
| * lang.opt.urls: Regenerated. | |
| 2026-06-05 Robert Dubner <rdubner@symas.com> | |
| PR cobol/125616 | |
| * genapi.cc (parser_enter_file): New __gg__dialects variable. | |
| (parser_division): Likewise. | |
| * genutil.cc: Likewise. | |
| * genutil.h: Likewise. | |
| * lang.opt.urls: Updated. | |
| * symbols.h (enum cbl_dialect_t): Move this enum to common-defs.h. | |
| 2026-06-04 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * lang.opt.urls: Regenerate | |
| 2026-06-04 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (handle_gg_trim): Provide an array of characters to the | |
| library function. | |
| (parser_trim): New function that handles the optional trim chars. | |
| (parser_intrinsic_call_2): Remove __gg__handling from this routine. | |
| * genapi.h (parser_trim): New declaration. | |
| * parse.y: Calls parser_trim() with the list of trim chars. | |
| 2026-06-04 Xavier Del Campo Romero <xdelcampo@symas.com> | |
| * Make-lang.in: Make $(libsubdir) available to cobol1.o. | |
| * cobol1.cc (struct GTY): Add dir_separator. | |
| (libcompat_copybook): New function. | |
| (libposix_copybook): New function. | |
| (append_copybook_prefix): New function. | |
| (cobol_langhook_handle_option): New function. | |
| (cobol_langhook_post_options): New function. | |
| (LANG_HOOKS_POST_OPTIONS): New function. | |
| * gcobolspec.cc (lang_specific_driver): Remove path searches. | |
| * lang-specs.h: Honor %{B*} and %I. | |
| * lang.opt: Support -B and -idirafter. | |
| 2026-06-02 Robert Dubner <rdubner@symas.com> | |
| * compare.cc (cobol_compare_relop): Rename the cobol_compare_relop | |
| function. | |
| (cobol_compare): Likewise. | |
| * compare.h (cobol_compare_relop): Likewise. | |
| (cobol_compare): Likewise. | |
| * genapi.cc (parser_display): Refine the use of SYSPUNCH_e for | |
| inserting debugging comments into the assembly language. | |
| (parser_relop): Use "cobol_compare". | |
| (handle_gg_trim): Break out SBC TRIM logic. | |
| (parser_intrinsic_call_2): Likewise. | |
| (parser_bsearch_when): Use "cobol_compare" | |
| * genutil.cc (refer_is_super_clean): FldLiteralN is always "super | |
| clean". | |
| (is_pure_integer): Make binary_from_FldNumericBin5 "static bool". | |
| (binary_from_FldLiteralN): New function. | |
| (get_binary_value): Use the new function. | |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> | |
| * compare.cc (alpha_compare): Fix typos. | |
| * Make-lang.in: Fix typos. | |
| * except.cc (cbl_enabled_exceptions_t::turn_on_off): Likewise. | |
| * genapi.cc (MAX_AFTERS): Likewise. | |
| (cobol_compare): Likewise. | |
| (enter_program_common): Likewise. | |
| (parser_bsearch_end): Likewise. | |
| (parser_set_pointers): Likewise. | |
| * gengen.cc (chain_parameter_to_function): Likewise. | |
| * gengen.h (gg_return): Likewise. | |
| * genutil.cc (refer_is_clean): Likewise. | |
| * lexio.cc (right_margin): Likewise. | |
| (maybe_add_space): Likewise. | |
| * messages.cc: Likewise. | |
| * parse_ante.h (procedure_division_ready): Likewise. | |
| * structs.cc (create_cblc_field_t): Likewise. | |
| * symbols.cc (special_pair_cmp): Likewise. | |
| (symbol_table_init): Likewise. | |
| (symbol_label_add): Likewise. | |
| * symbols.h: Likewise. | |
| * util.cc (date_time_fmt): Likewise. | |
| (cobol_lineno): Likewise. | |
| 2026-05-29 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| Xavier Del Campo <xdelcampo@symas.com> | |
| * Make-lang.in: Include gcobc script. | |
| * cdf.y: Change formal parameters of cdf_literalize(). | |
| * cobol1.cc (cobol_langhook_handle_option): Add OPT_ftrunc option. | |
| * compare.cc (total_digits_tree): Remove debugging statements. | |
| (float_compare): Likewise. | |
| * copybook.h (class copybook_elem_t): Update conditional close(). | |
| * dts.h: Change copyright notice. | |
| * gcobc: Likewise. | |
| * gcobol.1: Likewise. | |
| * gcobol.3: Likewise. | |
| * gcobolspec.cc (COMPAT_LIBRARY): POSIX compatibility. | |
| (POSIX_LIBRARY): Likewise. | |
| (lang_specific_driver): Likewise. | |
| * genapi.cc (section_label): Missing LABEL_EXPR detection. | |
| (paragraph_label): Likewise. | |
| (internal_perform_through): Likewise. | |
| (enter_program_common): Add comment. | |
| (parser_enter_program): Change current_program_index() handling. | |
| (build_alter_switch): Missing LABEL_EXPR detection. | |
| (parser_display_internal): Handle REFER_T_ADDRESS_OF flag. | |
| (create_and_call): ADDRESS OF is passed BY VALUE. | |
| * gengen.cc (LOOK_FOR_MISSING_LABELS_not): Missing LABEL_EXPR | |
| detection. | |
| (dump_missing_labels): Likewise. | |
| (gg_append_statement): Likewise. | |
| (gg_struct_field_ref): Likewise. | |
| (LABEL_ROOT): Likewise. | |
| (gg_create_goto_pair): Likewise. | |
| (scm_dump_generic_nodes): Forward declaration. | |
| (gg_leaving_the_source_code_file): Missing LABEL_EXPR detection. | |
| (label_decl_text_from_expr): New function. | |
| * gengen.h (gg_create_assembler_name): New declaration. | |
| (label_decl_text_from_expr): New declaration. | |
| * genmath.cc (uchar_f_node): Fast ADD N TO NUMERIC-DISPLAY. | |
| (uchar_ten_node): Likewise. | |
| (fast_add): Likewise. | |
| (fast_subtract): Likewise. | |
| (parser_add): Likewise. | |
| (add_floats): Likewise. | |
| (ordinary_add_format_1): Likewise. | |
| (ordinary_subtract_format_1): Likewise. | |
| (add_case_1): Likewise. | |
| (add_case_2): Likewise. | |
| (add_case_3): Likewise. | |
| (parser_multiply): Likewise. | |
| (add_case_4): Likewise. | |
| (add_litN_to_numdisp): Likewise. | |
| (add_format_1): Likewise. | |
| (add_format_2): Likewise. | |
| (add_format_3): Likewise. | |
| (subtract_floats): Likewise. | |
| (subtract_format_1): Likewise. | |
| (subtract_format_2): Likewise. | |
| (subtract_format_3): Likewise. | |
| (parser_subtract): Likewise. | |
| * genutil.cc (refer_has_depends): False when type == FldIndex. | |
| * lang-specs.h: Add fdefaultbyte, fstatic-call, ftrunc. | |
| * lang.opt: Add ftrunc. | |
| * lexio.cc (cdftext::open_input): Improved error message. | |
| * parse.y: CDF support, POSIX support. | |
| * parse_ante.h (cbl_division_t): Different enum. | |
| (mode_syntax_only): New implementation of syntax_only. | |
| (parse_error_inc): Likewise. | |
| (resume_parsing): Likewise. | |
| (successful_parse): Likewise. | |
| (name_of): Formal parameter is now const. | |
| (nice_name_of): Likewise. | |
| (ast_op): Chanage formal parameters. | |
| (prototype_ok): COBOL function prototypes. | |
| (struct prototype_type_t): Likewise. | |
| (is_allowed_name): Likewise. | |
| (prototype_add): Likewise. | |
| (prototype_args): Likewise. | |
| (verify_args): Likewise. | |
| (valid_pointer_relop): New function. | |
| (field_value_all): Eliminate. | |
| (current_field): COBOL function prototypes. | |
| (ast_enter_exit_section): Improved error messages. | |
| (data_division_ready): Improved mode_syntax_only. | |
| (file_section_fd_set): Change "return false" to "return 0". | |
| (ast_end_program): Improved mode_syntax_only. | |
| * scan_ante.h (symbol_function_token): Use symbol_function_any(). | |
| (symbol_exists): Change for() loop termination. | |
| (typed_name): COBOL function prototypes. | |
| * structs.cc: Support for buffered FILE READ. | |
| * symbols.cc (symbol_field_location): Use field_locs[] map. | |
| (symbol_table_extend): Likewise. | |
| (is_prototypical): COBOL function prototypes. | |
| (symbol_elem_cmp): Likewise. | |
| (symbol_program): Likewise. | |
| (struct symbol_elem_t): Likewise. | |
| (symbol_function): Likewise. | |
| (enum protoreq_t): Likewise. | |
| (symbol_function_impl): Likewise. | |
| (struct cbl_label_t): Likewise. | |
| (symbol_function_any): Likewise. | |
| (symbols_dump): Likewise. | |
| (cbl_field_t::attr_str): Likewise. | |
| (field_str): Likewise. | |
| (symbols_update): Likewise. | |
| (symbol_field_add): Likewise. | |
| (symbol_field_same_as): Likewise. | |
| (cbl_alphabet_t::reencode): Detect iconv() errors. | |
| (symbol_program_add): COBOL function prototypes. | |
| * symbols.h (enum dspc_t): Enum for Division, Section, Paragraph, | |
| Clause. | |
| (cbl_prototype_ok): COBOL function prototypes. | |
| (valid_move): Handle strong typing. | |
| (struct parameter_t): Improved function parameter handling. | |
| (struct cbl_ffi_arg_t): Likewise. | |
| (struct cbl_label_t): COBOL function prototypes. | |
| (struct function_descr_t): Likewise. | |
| (struct cbl_alphabet_t): Detect iconv() errors. | |
| (struct cbl_file_t): Support for LINAGE and the like. | |
| (prototype_args):COBOL function prototypes. | |
| (is_prototypical):COBOL function prototypes. | |
| (is_numeric): Refmods are not numeric. | |
| (struct symbol_elem_t): Additional declarations. | |
| * symfind.cc (update_symbol_map2): Use symbols map. | |
| * token_names.h: New comment. | |
| * util.cc (cbl_prototype_ok): COBOL function prototypes. | |
| (cdf_literalize): New formal parameters. | |
| (effective_type): New function. | |
| (valid_move): Handle strong typing. | |
| (cobol_trunc_binary): Handle new ftrunc option. | |
| (parse_error_reset): Forward declaration. | |
| (parse_file): Formatting. | |
| * util.h (cobol_trunc_binary): New declaration. | |
| 2026-05-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR cobol/125404 | |
| * symfind.cc (symbol_find): Add assertion that ancestors vector | |
| is not empty. | |
| 2026-05-12 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Incorporate new gcc/cobol/compare.cc file. | |
| * cobol1.cc (ATTR_CONST_NOTHROW_LEAF): Incorporate __builtin_swap16, | |
| __builtin_swap32, __builtin_swap64, and __builtin_swap128. | |
| (cobol_langhook_init): Likewise. | |
| * genapi.cc (treeplet_fill_source): Improve speed. | |
| (get_binary_value_from_float): Spelling. | |
| (normal_normal_compare): Eliminate. | |
| (compare_binary_binary): Eliminate. | |
| (DEBUG_COMPARE): Eliminate. | |
| (cobol_compare): Eliminate. | |
| (parser_enter_file): Eliminate obsolete variables. | |
| (data_decl_type_for): New function. | |
| (parser_alphabet_use): Flag altered alphabets for speed. | |
| (parser_display): Environment switch for putting comments into | |
| the assembly language. | |
| (program_end_stuff): Change "hijack" to "hijack_h". | |
| (parser_division): Repair RETURN-CODE logic. | |
| (parser_logop): Improve GENERIC for logical operations. | |
| (parser_relop): Use new cobol_compare_relop() routine. | |
| (parser_relop_long): Elminate unnecessary static variable. | |
| (inspect_tally): Improve parameter passing to library routine. | |
| (inspect_replacing): Likewise. | |
| (parser_intrinsic_subst): Likewise. | |
| (parser_intrinsic_callv): Likewise. | |
| (parser_intrinsic_call_1): Likewise. | |
| (parser_bsearch_start): Likewise. | |
| (parser_bsearch_when): Use new comparison routine; simplify logic. | |
| (parser_unstring): Improve parameter passing to library routine. | |
| (parser_string): Likewise. | |
| (create_and_call): Repair RETURN-CODE logic. | |
| (parser_call): Adjust exception processing when the target cannot be | |
| found. | |
| (build_temporaryN): Constructor for cblc_field_t::data. | |
| (hijack_for_development): Change hijacking name to "dubner_h". | |
| (hijacker): Change hijacking name to "hijack_h". | |
| (get_reference_to_data): New function. | |
| (mh_identical): Improve speed when sender and receiver have the same | |
| structure. | |
| (mh_source_is_literalN): Eliminate leading plus/minus when moving a | |
| numeric to an alphanumeric. | |
| (move_helper): Adjust logic for mh_identical and mh_source_is_group. | |
| (actually_create_the_static_field): Use constructor for data member. | |
| (psa_new_var_decl): Typo in comment. | |
| (parser_symbol_add): Make the generated data type more consistent | |
| with the COBOL variable type. | |
| * genapi.h (parser_bsearch_when): Change declaration. | |
| (parser_bsearch_start): Formatting. | |
| (parser_sort): Formatting. | |
| * gengen.cc (gg_show_type): Expand for ARRAY_TYPE and ARRAY_REF. | |
| (gg_define_from_declaration): Use void type for DECL_EXPR. | |
| (gg_define_volatile_variable): New function. | |
| (gg_get_address): New function. | |
| (gg_array_value): Use fold_convert(). | |
| (gg_bswap): New function. | |
| (gg_memcmp): New function. | |
| * gengen.h (SCHAR_P): New and changed declarations. | |
| (struct gg_function_t): Add alphabet_in_use flag. | |
| (gg_define_volatile_variable): New declaration. | |
| (gg_get_address_of): Comment. | |
| (gg_pointer_to_array): Comment. | |
| (gg_get_address): New declaration. | |
| (gg_bswap): New declaration. | |
| (gg_memcmp): New declaration. | |
| (gg_insert_into_assemblerf): Formatting. | |
| * genmath.cc (arithmetic_operation): Improved handling of | |
| parameters. | |
| (fast_add): Improved handling of locations. | |
| (parser_add): Formatting. | |
| * genutil.cc (tree_type_from_digits): Correct parameter. | |
| (get_data_offset): Correct exception handling. | |
| (get_binary_value_tree): Improve location handling. | |
| (tree_type_from_field): Correct logic. | |
| (tree_type_from_size): Correct signs for returned type. | |
| (build_array_of_treeplets): Eliminated. | |
| (build_array_of_referlets): New function. | |
| (build_array_of_fourplets): Eliminated. | |
| (build_array_of_refers): New function. | |
| (refer_is_clean): Improved logic. | |
| (refer_is_super_clean): New function. | |
| (refer_is_working_storage): New function. | |
| (refer_offset): Formatting. | |
| (binary_from_FldNumericBin5): New function. | |
| (binary_from_FldNumericBinary): New function. | |
| (d_and_q_num_disp): New function. | |
| (binary_from_FldNumericDisplay): New function. | |
| (make_dp2bin_decl): New function. | |
| (d_and_q_packed): New function. | |
| (binary_from_comp_3): New function. | |
| (binary_from_comp_6): New function. | |
| (binary_from_FldPacked): New function. | |
| (binary_from_FldFloat): New function. | |
| (get_binary_value): New function. | |
| (get_location): New function. | |
| (get_length): New function. | |
| * genutil.h (tree_type_from_digits): New declaration. | |
| (tree_type_from_size): Changed declaration. | |
| (refer_is_super_clean): New declaration. | |
| (refer_is_working_storage): New declaration. | |
| (refer_offset): Changed declaration. | |
| (build_array_of_treeplets): Remove declaration. | |
| (build_array_of_referlets): New declaration. | |
| (build_array_of_fourplets): Remove declaration. | |
| (build_array_of_refers): New declaration. | |
| (tree_type_from_field): New declaration. | |
| (get_binary_value): New declaration. | |
| (get_location): New declaration. | |
| (get_length): New declaration. | |
| * parse.y: Mysterious changes. All changes to YACC rules are | |
| mysterious. | |
| * parse_ante.h (class log_expr_t): Changes to logop() invocation. | |
| * scan_post.h (yylex): Remove unnecessary trailing semicolon. | |
| * structs.cc (create_cblc_file_t): Change cblc_file_t declaration. | |
| (create_referlet_t): New function. | |
| (create_refer_t): New function. | |
| (create_our_type_nodes): Add cblc_referlet_type_node and | |
| cblc_refer_type_node. | |
| * structs.h (member2): New declaration. | |
| (GTY): Type for cblc_referlet_type_node and cblc_refer_type_node. | |
| * symbols.cc (temporaries_t::add): Remove unnecessary trailing | |
| semicolon. | |
| * symbols.h (struct cbl_bsearch_t): Remove obsolete member. | |
| (ENABLE_HIJACKING): Compilation switch for enabling dubner_h and | |
| hijack_h code-generation hijacking. | |
| * util.cc (symbol_field_type_update): Comment. | |
| * compare.cc: New file. | |
| * compare.h: New file. | |
| 2026-04-02 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (cobol_langhook_handle_option): Handle OPT_Wrecording_mode. | |
| * gcobol.1: Documentation of pre-program registers. | |
| * genapi.cc (hijacker): Define new function hijacked code generation. | |
| (RETURN_WHEN_HIJACKED): Macro for wrapping if(hijacked)return; | |
| (hijacked): Either a boolean or false depending on ENABLE_HIJACKING. | |
| (set_exception_environment): Use gg_pointer_to_array instead of | |
| gg_get_address_of. | |
| (parser_statement_end): Formatting. | |
| (section_label): Change ALTER STATEMENT processing. | |
| (pseudo_return_push): Expand TRACE1 message. | |
| (pseudo_return_pop): Expand TRACE1 message; improved PERFORM processing. | |
| (find_procedure): Change how cbl_proc_t is allocated; improved PERFORM | |
| processing. | |
| (parser_enter_section): Changed ALTER statement processing. | |
| (parser_enter_paragraph): Likewise. | |
| (parser_goto): Use SWITCH_EXPR instead of indirect jump. | |
| (parser_perform): Likewise. | |
| (internal_perform_through): Likewise. | |
| (parser_enter_file): Use SWITCH_EXPR for implementing ENTRY statement. | |
| (parser_leave_file): Build table of values for the SWITCH_EXPR. | |
| (enter_program_common): Remove unused JMP *ptr. | |
| (parser_enter_program): Code to hijack code generation for a function | |
| "dubner" when ENABLE_HIJACKING is defined. | |
| (build_dispatch_switch): Generalize builder of SWITCH_EXPR. | |
| (build_alter_switch): Uses build_dispatch_switch. | |
| (build_entry_switch): Likewise. | |
| (build_perform_dispatcher): Likewise. | |
| (parser_end_program): Wrap build_perform_dispatcher() in if(!hijacked). | |
| (parser_init_list): Use RETURN_WHEN_HIJACKED; use gg_pointer_to_array() | |
| instead of gg_get_address_of(). | |
| (psa_FldLiteralN): Set TREE_READONLY(var_decl) = 1. | |
| (parser_alphabet): use gg_pointer_to_array() instead of | |
| gg_get_address_of(). | |
| (parser_assign): Formatting. | |
| (program_end_stuff): Call hijacking() when ENABLE_HIJACKING and the | |
| program-id is "hijack"; use gg_pointer_to_array(). | |
| (parser_exit): Handle if(hijacked); | |
| (register_find): New static function to find XML-* COBOL variables. | |
| (parser_xml_parse): Updated XML PARSE statement handling. | |
| (initialize_the_data): Use RETURN_WHEN_HIJACKED. | |
| (establish_using): Change first-time-through processing. | |
| (parser_division): Change ENTRY statement processing. | |
| (parser_see_stop_run): Changed RETURN-CODE per-function variable | |
| processing. | |
| (parser_label_label): Use RETURN_WHEN_HIJACKED. | |
| (parser_label_goto): Likewise. | |
| (parser_perform_inline_times): Honor cbl_field_t offset for the count | |
| parameter. | |
| (inspect_tally): Use __gg__inspect_format_1_sbc() for SBC characters. | |
| (create_and_call): Use per-function RETURN-CODE. | |
| (parser_entry_activate): Eliminate static tree variables. | |
| (parser_entry): Use automatic tree variables. | |
| (parser_program_hierarchy): Use RETURN_WHEN_HIJACKED and | |
| gg_pointer_to_array(). | |
| (build_temporaryN): New function compiled when ENABLE_HIJACKING. | |
| (hijack_for_development): Changed to generate minimal GENERIC. | |
| (actually_create_the_static_field): Use gg_structure_type_constructor | |
| to create the constructor for the static cblc_field_t VAR_DECL. | |
| (psa_FldLiteralA): Move where TREE attributes are established. | |
| (parser_local_add): Use gg_pointer_to_array(). | |
| (parser_symbol_add): Use RETURN_WHEN_HIJACKED(); use gg_pointer_to_array(). | |
| * gengen.cc (gg_append_statement): #if 0 around some debugging code. | |
| (gg_show_type): Expanded to display "static" and "readonly". | |
| (gg_find_field_in_struct): Moved and rewritten. | |
| (gg_get_structure_type_decl): New function. | |
| (gg_start_building_a_union): Eliminated. | |
| (gg_start_building_a_struct): Eliminated. | |
| (gg_add_field_to_structure): Eliminated. | |
| (gg_structure_type_constructor): New function. | |
| (gg_get_struct_type_decl): Eliminated. | |
| (gg_get_union_type_decl): Eliminated. | |
| (gg_get_local_struct_type_decl): Eliminated. | |
| (gg_get_filelevel_struct_type_decl): Eliminated. | |
| (gg_get_filelevel_union_type_decl): Eliminated. | |
| (gg_define_local_struct): Eliminated. | |
| (gg_assign_to_structure): Eliminated. | |
| (gg_define_array): Formatting. | |
| (gg_pointer_to_array): Returns ADDR_EXPR for &array[0]; | |
| (gg_goto): Comment reflecting why we aren't using it. | |
| * gengen.h (SHORT_P): Alias for build_pointer_type(short_integer_type_node); | |
| (struct gg_function_t): Changes mostly in support of SWITCH_EXPR. | |
| (gg_get_local_struct_type_decl): Eliminated declaration. | |
| (gg_get_filelevel_struct_type_decl): Likewise. | |
| (gg_get_filelevel_union_type_decl): Likewise. | |
| (gg_define_local_struct): Likewise. | |
| (gg_get_structure_type_decl): New declaration. | |
| (gg_structure_type_constructor): New declaration. | |
| (gg_assign_to_structure): Eliminated declaration. | |
| (gg_define_uchar_star): Changed declaration. | |
| (gg_pointer_to_array): New declaration. | |
| * genutil.cc: Removed unused globals; added var_decl_entry_index. | |
| * genutil.h: Likewise. | |
| * parse.y: Change program-id and REDEFINES handling. | |
| * parse_ante.h: Likewise. | |
| * scan_ante.h (is_refmod): Rewrite. | |
| * structs.cc (create_cblc_field_t): Use gg_get_structure_type_decl(). | |
| * symbols.cc (return_code_register): Use per-program COBOL registers. | |
| (symbol_redefines_root): New function. | |
| (symbols_update): Use per-program COBOL registers. | |
| (symbol_table_init): Implement per-program registers. | |
| (symbol_registers_add): Likewise. | |
| (cbl_field_t::encode): Loosen COBOL level requirement. | |
| * symbols.h (struct cbl_proc_t): SWITCH_EXPR-based PERFORM returns. | |
| (symbol_redefines_root): New declaration. | |
| (symbol_registers_add): New declaration. | |
| (new_alphanumeric): New comment. | |
| * util.cc (FOR_JIM): Remove some unused demonstration code. | |
| (cbl_field_t::encode_numeric): Likewise. | |
| 2026-03-02 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119456 | |
| * genapi.cc (mh_source_is_literalA): Don't set refmod_e attribute | |
| unless it is necessary. | |
| (have_common_parent): Helper routine that determines whether two | |
| COBOL variables are members of the same data description. | |
| (mh_alpha_to_alpha): Modified for greater efficiency when table | |
| subscripts and reference modification parameters are numeric | |
| literals. | |
| * genutil.cc (get_data_offset): Recognizes when table subscripts | |
| and refmod offsets are numeric literals. | |
| (refer_size): Recognizes when refmod offsets are numeric literals. | |
| (refer_size_source): Recognizes when table subscripts are numeric | |
| literals. | |
| 2026-02-27 Richard Biener <rguenther@suse.de> | |
| PR cobol/123238 | |
| * lexio.cc: Remove <iostream> include. | |
| (cdftext::process_file): Remove if (false) gated use of | |
| iostream code. | |
| 2026-02-26 Robert Dubner <rdubner@symas.com> | |
| * parse.y: BASECONVERT and TRIM take their type from their first | |
| parameter. | |
| * parse_util.h (intrinsic_return_field): The function_descrs[] is | |
| adjusted so that a number of functions take their return type from | |
| their first calling parameter. intrinsic_return_field() has been | |
| refined. | |
| * symbols.cc (new_alphanumeric): Use set_explicit() instead of | |
| set() in support of refined intrinsic function return type. | |
| 2026-02-24 Robert Dubner <rdubner@symas.com> | |
| * gcobc: Adjust how -fPIC is applied, and other refinements. | |
| * gcobol.1: Documentation. | |
| * genapi.cc (parser_statement_end): New function. Deallocates | |
| temp char strings from the heap. | |
| (initialize_variable_internal): Ignore temp char strings. | |
| (compare_binary_binary): Formatting. | |
| (parser_end_program): Formatting. | |
| (parser_init_list): Formatting. | |
| (parser_exit_program): Formatting. | |
| (program_end_stuff): Formatting. | |
| (parser_exit): Formatting. | |
| (parser_perform_conditional): Formatting. | |
| (perform_outofline_before_until): Formatting. | |
| (parser_file_add): Formatting. | |
| (mh_source_is_literalA): Formatting. | |
| (psa_new_var_decl): Make cblc_field_t for intermediate_e | |
| alphanumerics program-static. | |
| (parser_symbol_add): Eliminate unnecessary code when | |
| type!=FldConditional; change handling of intermediate_e for | |
| FldAlphanumerics. | |
| * genapi.h (parser_end_program): New declaration. | |
| (parser_exit): Formatting. | |
| (parser_exit_program): Formatting. | |
| (parser_statement_end): New declaration. | |
| * lexio.cc (parse_replace_pairs): Change CDF handling. | |
| (cdftext::lex_open): Likewise. | |
| (cdftext::process_file): Likewise. | |
| * parse.y: Changes to MAXIMUM_ALPHA_LENGTH; refine return value | |
| types for various intrinsic functions; some CDF handling. | |
| * parse_ante.h (MAXLENGTH_FORMATTED_DATE): Eliminate constant. | |
| (MAXLENGTH_FORMATTED_TIME): Likewise. | |
| (MAXLENGTH_CALENDAR_DATE): Likewise. | |
| (MAXLENGTH_FORMATTED_DATETIME): Likewise. | |
| (new_alphanumeric): No longer takes a capacity. | |
| (intrinsic_return_field): New declaration. | |
| (struct ffi_args_t): Changed debug message. | |
| (is_among): New declaration. | |
| * parse_util.h (intrinsic_return_field): New function. Works with | |
| the modified function_descrs[] table. | |
| * scan.l: Modified scanning. | |
| * scan_ante.h (class input_file_status_t): Likewise. | |
| (verify_ws): Likewise. | |
| (is_refmod): Likewise. | |
| * symbols.cc (symbols_update): Improved comment about a debug | |
| message. | |
| (symbol_temporaries): New function for temporaries on the heap that | |
| will have to be deallocated. | |
| (symbol_temporary_alphanumerics): Likewise. | |
| (new_temporary_impl): Eliminate MAXIMUM_ALPHA_LENGTH from template. | |
| (new_alphanumeric): Eliminate capacity as a parameter. | |
| * symbols.h (cbl_dialect_str): Formatting. | |
| (MAXIMUM_ALPHA_LENGTH): Change comment and value. | |
| (IBM_MAXIMUM_ALPHA_LENGTH): Put parentheses around "size_t(1)<<31". | |
| (symbol_temporaries): New declaration. | |
| (symbol_temporary_alphanumerics): New declaration. | |
| (struct function_descr_t): New comment on ret_type. | |
| (new_alphanumeric): New declaration. | |
| * util.cc (class cdf_directives_t): CDF processing. | |
| (cobol_set_indicator_column): Likewise. | |
| (cdf_push_source_format): Likewise. | |
| (cdf_pop_source_format): Likewise. | |
| (parent_names): Likewise. | |
| (cobol_filename): Likewise. | |
| (cobol_lineno): Likewise. | |
| (cobol_filename_restore): Likewise. | |
| 2026-02-19 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (tree_type_from_field_type): Move static code. | |
| (compare_binary_binary): Identify little-endian compares. | |
| (psa_FldLiteralN): Eliminate obsolete development code; make the | |
| initialized variables TREE_CONSTANT. | |
| (parser_symbol_add): Adjust for modified FldLiteralN. | |
| * genmath.cc (all_results_binary): Renamed. Modified for fastness. | |
| (all_results_integer): Likewise. | |
| (all_refers_integer): Likewise. | |
| (largest_binary_term): Likewise. | |
| (fast_add): Expand conditions. Use get_binary_value_tree. | |
| (fast_subtract): Likewise. | |
| (fast_multiply): Expand conditions. | |
| (fast_divide): Expand conditions. | |
| (parser_add): Avoid fast_add when error or not-error are specified. | |
| (parser_multiply): Likewise. | |
| (parser_divide): Likewise. | |
| (parser_subtract): Likewise. | |
| * genutil.cc (tree_type_from_field): Disable; flagged for removal. | |
| (get_binary_value): Use get_binary_value_tree. | |
| (get_binary_value_tree): Avoid intermediate variables when possible. | |
| (refer_is_clean): Formatting. | |
| (is_pure_integer): Refine test for little-endian binary. | |
| * genutil.h (get_binary_value_tree): New declaration. | |
| (is_pure_integer): New declaration. | |
| * symbols.cc (symbol_table_init): Explanatory ZEROS comment. | |
| 2026-02-13 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119455 | |
| * genapi.cc (mh_source_is_group): Formatting. | |
| (mh_source_is_literalA): Implement accelerated move. | |
| (mh_alpha_to_alpha): New function; implements accelerated move. | |
| (move_helper): Calls new mh_alpha_to_alpha. | |
| 2026-02-12 Robert Dubner <rdubner@symas.com> | |
| * cbldiag.h: Copyright updated to 2026. | |
| * cdf-copy.cc: Likewise. | |
| * cdf.y: Likewise. | |
| * cdfval.h: Likewise. | |
| * cobol-system.h: Likewise. | |
| * convert.cc: Likewise. | |
| * copybook.h: Likewise. | |
| * except.cc: Likewise. | |
| * exceptg.h: Likewise. | |
| * genapi.cc: Likewise. | |
| * genapi.h: Likewise. | |
| * gengen.cc: Likewise. | |
| * gengen.h: Likewise. | |
| * genmath.cc: Likewise. | |
| * genmath.h: Likewise. | |
| * genutil.cc: Likewise. | |
| * genutil.h: Likewise. | |
| * inspect.h: Likewise. | |
| * lang-specs.h: Likewise. | |
| * lexio.cc: Likewise. | |
| * lexio.h: Likewise. | |
| * messages.cc: Likewise. | |
| * parse.y: Likewise. | |
| * parse_ante.h: Likewise. | |
| * parse_util.h: Likewise. | |
| * scan.l: Likewise. | |
| * scan_ante.h: Likewise. | |
| * scan_post.h: Likewise. | |
| * show_parse.h: Likewise. | |
| * structs.cc: Likewise. | |
| * structs.h: Likewise. | |
| * symbols.cc: Likewise. | |
| * symbols.h: Likewise. | |
| * symfind.cc: Likewise. | |
| * util.cc: Likewise. | |
| * util.h: Likewise. | |
| 2026-02-12 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (establish_using): Use a 128-bit type for | |
| float-extended; handle numeric-edited values of different sizes | |
| and signs correctly. | |
| (create_and_call): Use a 128-bit type for float-extended. | |
| 2026-02-06 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119332 | |
| * gcobolspec.cc (lang_specific_driver): Add -dumpspecs, | |
| -dumpversion, -dumpmachine to the no_files_error=false cases. | |
| 2026-02-05 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (DEFAULT_LINE_NUMBER): Remove unused #define. | |
| (parser_statement_begin): Implement perform_is_armed logic. | |
| (initialize_variable_internal): Handle both real and int types in | |
| SHOW_PARSE tracing. | |
| (section_label): Comment a renumbered insert_nop() for gdb-cobol | |
| logic. | |
| (paragraph_label): Likewise. | |
| (leave_procedure): Eliminate call to gg_insert_into_assembler(). | |
| (parser_enter_section): Renumber insert_nop(). | |
| (parser_perform): Eliminate call to gg_insert_into_assembler(). | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (parser_leave_file): Create the static _perform_line_pairs table. | |
| (parser_sleep): Renumber insert_nop(). | |
| (parser_division): Remove calls to initialize_the_data(). | |
| (parser_perform_start): New call to insert_nop(). | |
| (parser_perform_conditional): Likewise. | |
| (perform_outofline_before_until): Expanded comment. | |
| (perform_outofline_after_until): Eliminate call to | |
| gg_insert_into_assembler(). | |
| (perform_outofline_testafter_varying): Likewise. | |
| (perform_outofline_before_varying): Likewise. | |
| (perform_inline_testbefore_varying): New call to insert_nop(). | |
| (create_and_call): Change a comment. | |
| * gengen.cc (gg_create_goto_pair): Change characteristics of a | |
| label. | |
| * parse.y: Change how data are initialized. | |
| * parse_ante.h (field_type_update): Likewise. | |
| * symbols.cc (cbl_field_t::set_signable): Likewise. | |
| (cbl_field_t::encode): Likewise. | |
| * symbols.h (struct cbl_field_t): Likewise. | |
| * util.cc (symbol_field_type_update): Likewise. | |
| (cbl_field_t::encode_numeric): Likewise. | |
| 2026-01-20 Jakub Jelinek <jakub@redhat.com> | |
| * lang.opt (fexec-national-charset=): Add dot at the end of the | |
| description. | |
| 2026-01-20 Jakub Jelinek <jakub@redhat.com> | |
| * lang.opt (Wmove-index): Add missing dot at the end of description. | |
| 2026-01-17 Jakub Jelinek <jakub@redhat.com> | |
| * lang.opt.urls: Regenerate. | |
| 2026-01-17 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * cbldiag.h (struct cbl_loc_t): Diagnostics. | |
| (enum cbl_diag_id_t): Diagnostics. | |
| * cdf.y: Includes. | |
| * cobol1.cc (cobol_warning_suppress): Diagnostics. | |
| (cobol_langhook_handle_option): Implement -fexec-charset. Expand | |
| the use of diagnostics. | |
| * gcobc: Expand options and warnings. | |
| * gcobol.1: Documentation. | |
| * genapi.cc (level_88_helper): Charsets. | |
| (get_level_88_domain): Charsets. | |
| (get_class_condition_string): Charsets. | |
| (function_pointer_from_name): Charsets. | |
| (initialize_variable_internal): Charsets. | |
| (parser_initialize): Charsets. | |
| (get_binary_value_from_float): Charsets. | |
| (get_bytes_needed): Charsets. | |
| (cobol_compare): Charsets. | |
| (move_tree): Eliminate function. | |
| (move_tree_to_field): Eliminate function. | |
| (get_string_from): Eliminate function. | |
| (parser_init_list): Charsets. | |
| (psa_FldLiteralN): Charsets. | |
| (parser_accept_date_yymmdd): Charsets. | |
| (parser_accept_date_yyyymmdd): Charsets. | |
| (parser_accept_date_yyddd): Charsets. | |
| (parser_accept_date_yyyyddd): Charsets. | |
| (parser_accept_date_dow): Charsets. | |
| (parser_accept_date_hhmmssff): Charsets. | |
| (parser_alphabet): Charsets. | |
| (parser_alphabet_use): Charsets. | |
| (parser_display_internal): Charsets. | |
| (get_literalN_value): Charsets. | |
| (tree_type_from_field_type): Charsets. | |
| (program_end_stuff): Charsets. | |
| (walk_initialization): Charsets. | |
| (parser_xml_parse): Charsets. | |
| (initialize_the_data): Charsets. | |
| (establish_using): Charsets. | |
| (parser_setop): Charsets. | |
| (parser_set_conditional88): Charsets. | |
| (parser_file_add): Charsets. | |
| (get_the_filename): Eliminate function. | |
| (parser_file_open): Charsets. | |
| (parser_file_delete_file): Charsets. | |
| (parser_file_start): Charsets. | |
| (parser_module_name): Charsets. | |
| (parser_intrinsic_find_string): New function. | |
| (parser_intrinsic_numval_c): Charsets. | |
| (parser_intrinsic_convert): New function. | |
| (parser_intrinsic_call_1): Charsets. | |
| (create_and_call): Charsets. | |
| (mh_identical): Charsets. | |
| (mh_source_is_literalN): Charsets. | |
| (float_type_of): Charsets. | |
| (mh_dest_is_float): Charsets. | |
| (mh_numeric_display): Charsets. | |
| (mh_little_endian): Charsets. | |
| (mh_source_is_group): Charsets. | |
| (mh_source_is_literalA): Charsets. | |
| (move_helper): Charsets. | |
| (binary_initial): Eliminate function. | |
| (digits_from_int128): Eliminate function. | |
| (digits_from_float128): Eliminate function. | |
| (initial_from_initial): Eliminate function. | |
| (convert_data_initial): New function. | |
| (actually_create_the_static_field): Charsets. | |
| (psa_new_var_decl): Charsets. | |
| (psa_FldLiteralA): Charsets. | |
| (parser_local_add): Charsets. | |
| (parser_symbol_add): Charsets. | |
| * genapi.h (parser_intrinsic_convert): New function. | |
| (parser_intrinsic_find_string): New function. | |
| * genmath.cc (arithmetic_operation): Charsets. | |
| (largest_binary_term): Charsets. | |
| (fast_add): Charsets. | |
| (fast_subtract): Charsets. | |
| (fast_multiply): Charsets. | |
| (fast_divide): Charsets. | |
| (parser_subtract): Fix subtract float from float. | |
| * genutil.cc (get_any_capacity): Charsets. | |
| (get_and_check_refstart_and_reflen): Charsets. | |
| (get_data_offset): Charsets. | |
| (get_binary_value): Charsets. | |
| (tree_type_from_field): Charsets. | |
| (copy_little_endian_into_place): Charsets. | |
| (get_literal_string): Charsets. | |
| (refer_is_clean): Charsets. | |
| (refer_fill_depends): Charsets. | |
| (refer_size_source): Comment. | |
| * lang-specs.h: Charsets. | |
| * lang.opt: Charsets. | |
| * lexio.cc (parse_copy_directive): Diagnostics. | |
| * messages.cc (cbl_diagnostic_kind): Diagnostics. | |
| (cobol_warning_suppress): Diagnostics. | |
| * parse.y: Many changes for charsets and diagnostics. | |
| * parse_ante.h (MAXLENGTH_FORMATTED_DATE): Charsets. | |
| (MAXLENGTH_FORMATTED_TIME): Charsets. | |
| (MAXLENGTH_CALENDAR_DATE): Charsets. | |
| (MAXLENGTH_FORMATTED_DATETIME): Charsets. | |
| (consistent_encoding_check): Charsets. | |
| (enum data_clause_t): Charsets. | |
| (new_alphanumeric): Charsets. | |
| (name_of): Charsets. | |
| (class eval_subject_t): Charsets. | |
| (struct domain_t): Charsets. | |
| (struct file_list_t): Charsets. | |
| (current_encoding): Charsets. | |
| (new_tempnumeric): Charsets. | |
| (is_integer_literal): Charsets. | |
| (new_literal): Charsets. | |
| (new_constant): Charsets. | |
| (conditional_set): Charsets. | |
| (field_find): Charsets. | |
| (valid_redefine): Charsets. | |
| (field_value_all): Charsets. | |
| (parent_has_picture): Charsets. | |
| (parent_has_value): Charsets. | |
| (blank_pad_initial): Charsets. | |
| (blankit): Charsets. | |
| (cbl_field_t::blank_initial): Charsets. | |
| (value_encoding_check): Charsets. | |
| (cbl_field_t::set_initial): Charsets. | |
| (field_alloc): Charsets. | |
| (parser_move_carefully): Charsets. | |
| (data_division_ready): Charsets. | |
| (anybody_redefines): Charsets. | |
| (procedure_division_ready): Charsets. | |
| (file_section_parent_set): Charsets. | |
| (field_binary_usage): Charsets. | |
| (goodnight_gracie): Formatting. | |
| * scan.l: Charsets. | |
| * scan_ante.h (numstr_of): Charsets. | |
| (typed_name): Charsets. | |
| * show_parse.h: Charsets. | |
| * structs.cc (create_cblc_file_t): Charsets. | |
| * symbols.cc (symbol_table_extend): Charsets. | |
| (WARNING_FIELD): Diagnostics. | |
| (constq): Charsets. | |
| (elementize): Charsets. | |
| (field_size): Charsets. | |
| (cbl_field_t::set_attr): Eliminate run-time component. | |
| (cbl_field_t::clear_attr): Eliminate run-time component. | |
| (field_memsize): Charsets. | |
| (cbl_encoding_str): Charsets. | |
| (symbols_dump): Charsets. | |
| (is_variable_length): Formatting. | |
| (field_str): Charsets. | |
| (extend_66_capacity): Charsets. | |
| (operator<<): Charsets. | |
| (symbols_update): Charsets. | |
| (symbol_field_parent_set): Charsets. | |
| (symbol_table_init): Charsets. | |
| (numeric_group_attrs): Charsets. | |
| (symbol_field_add): Charsets. | |
| (symbol_field_alias): Charsets. | |
| (fd_record_size_cmp): Charsets. | |
| (symbol_file_record_sizes): Charsets. | |
| (cbl_alphabet_t::reencode): Charsets. | |
| (symbol_temporary_location): Charsets. | |
| (new_literal_2): Charsets. | |
| (new_alphanumeric): Charsets. | |
| (standard_internal): Charsets. | |
| (cbl_field_t::codeset_t::stride): Charsets. | |
| (cobol_alpha_encoding): Charsets. | |
| (cobol_national_encoding): Charsets. | |
| (new_temporary): Charsets. | |
| (new_literal_float): Charsets. | |
| (cbl_field_t::is_ascii): Charsets. | |
| (cbl_field_t::internalize): Eliminate function. | |
| (cbl_field_t::source_code_check): Charsets. | |
| (iconv_cd): Charsets. | |
| (cbl_field_t::encode): New function for charsets. | |
| (cbl_field_t::set_capacity): Charsets. | |
| (cbl_field_t::add_capacity): Charsets. | |
| (cbl_field_t::char_capacity): Charsets. | |
| (symbol_label_section_exists): Charsets. | |
| (size): Charsets. | |
| (validate_numeric_edited): Charsets. | |
| * symbols.h (cobol_alpha_encoding): Charsets. | |
| (cobol_national_encoding): Charsets. | |
| (consistent_encoding_check): Charsets. | |
| (class cbl_domain_elem_t): Charsets. | |
| (struct cbl_domain_t): Charsets. | |
| (struct cbl_field_data_t): Charsets. | |
| (class cbl_field_data_t): Charsets. | |
| (struct cbl_subtable_t): Charsets. | |
| (struct cbl_field_t): Charsets. | |
| (new_literal_float): Charsets. | |
| (new_temporary): Charsets. | |
| (new_literal_2): Charsets. | |
| (symbol_temporary_location): Charsets. | |
| (class temporaries_t): Charsets. | |
| (struct symbol_elem_t): Charsets. | |
| (symbol_elem_of): Charsets. | |
| (symbol_unique_index): Charsets. | |
| (cbl_field_type_name): Charsets. | |
| (validate_numeric_edited): Charsets. | |
| * token_names.h: Charsets. | |
| * util.cc (cdf_literalize): Charsets. | |
| (cbl_field_type_name): Charsets. | |
| (determine_intermediate_type): Charsets. | |
| (is_alpha_edited): Charsets. | |
| (cbl_field_data_t::is_alpha_edited): Charsets. | |
| (symbol_field_type_update): Charsets. | |
| (redefine_field): Charsets. | |
| (FIXED_WIDE_INT): Charsets. | |
| (dirty_to_binary): Charsets. | |
| (digits_from_int128): Charsets. | |
| (binary_initial): Charsets. | |
| (cbl_field_t::encode_numeric): Charsets. | |
| (FOR_JIM): Temporary conditional demonstration code. | |
| (parse_error_inc): Diagnostics. | |
| (parse_error_count): Diagnostics. | |
| (cbl_field_t::report_invalid_initial_value): Diagnostics. | |
| (valid_move): Diagnostics. | |
| (type_capacity): Charsets. | |
| (symbol_unique_index): New function. | |
| (cbl_unimplementedw): Formatting. | |
| 2025-12-19 Jakub Jelinek <jakub@redhat.com> | |
| * lexio.cc (parse_replace_pairs): Fix comment typo, statment | |
| -> statement. | |
| (cdftext::free_form_reference_format): Likewise. | |
| 2025-12-11 Jakub Jelinek <jakub@redhat.com> | |
| * util.cc (class temp_loc_t): Fix comment typo, paramters | |
| -> parameters. | |
| * lexio.cc (valid_sequence_area): Fix comment typo, begining | |
| -> beginning. | |
| 2025-12-03 Jakub Jelinek <jakub@redhat.com> | |
| * lang.opt: Make sure all option descriptions are terminated with | |
| a dot. | |
| (preprocess): Capitalize first letter of option description. | |
| 2025-12-01 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/119329 | |
| PR cobol/119331 | |
| PR cobol/120786 | |
| * Make-lang.in: Add cobol/messages.o to cobol1 sources. | |
| * cbldiag.h (yywarn): Remove function. | |
| (struct cbl_loc_t): Introduce new location type independent of Bison. | |
| (enum cbl_diag_id_t): Enumerate diagnostic messages. | |
| (cbl_message): New function. | |
| (dialect_ok): Test for dialect, emit standard message. | |
| (dialect_not_ok): Emit standard message if syntax excluded by dialect. | |
| (dialect_error): Remove function. | |
| (cbl_unimplementedw): Use cbl_diag_id_t. | |
| (cbl_unimplemented): Whitespace. | |
| * cdf.y: Update token values. | |
| * cobol1.cc (enable_exceptions): Use cbl_message. | |
| (cobol_warning): Declare function. | |
| (cobol_langhook_handle_option): Add 44 new warning options. | |
| (cobol_langhook_type_for_mode): Remove function. | |
| * except.cc (cbl_enabled_exception_t::dump): Remove function. | |
| * exceptg.h (class exception_turn_t): Use cbl_diag_id_t. | |
| * gcobol.1: Document dialect syntax and new warning options. | |
| * genapi.cc (parser_label_label): Remove unused warning. | |
| * gengen.cc (gg_find_field_in_struct): Use cbl_internal_error. | |
| (gg_printf): Same. | |
| (gg_fprintf): Same. | |
| (gg_define_function): Same. | |
| (gg_get_function_decl): Same. | |
| (gg_call_expr): Same. | |
| (gg_call): Same. | |
| * lang-specs.h: Add warning options. | |
| * lang.opt: Add ISO dialect and options. | |
| * lexio.cc (parse_replacing_term): Use cbl_message. | |
| (parse_replacing_pair): Same. | |
| (preprocess_filter_add): Same. | |
| (cdftext::echo_input): Same. | |
| (cdftext::lex_open): Same. | |
| (cdftext::open_input): Same. | |
| * messages.cc: New file implements cbl_message. | |
| * parse.y: Use cbl_message. | |
| * parse_ante.h (dialect_proscribed): Remove function. | |
| (parser_move_carefully): Use dialect_ok. | |
| (goodnight_gracie): Convert warning to debug message. | |
| * scan.l: Use dialect_ok. | |
| * scan_ante.h (scanner_parsing): Use cbl_diag_id_t. | |
| (scanner_parsing_toggle): Same. | |
| (scanner_parsing_pop): Same. | |
| (verify_ws): Same. | |
| (level_of): Same. | |
| (typed_name): Same. | |
| (integer_of): Same. | |
| * scan_post.h (datetime_format_of): Use cbl_internal_error. | |
| (prelex): Emit only debug messages. | |
| * show_parse.h: Use cbl_internal_error. | |
| * symbols.cc (symbols_update): Remove dialect test because parser's problem. | |
| (cbl_field_t::internalize): Use cbl_message. | |
| * symbols.h (enum cbl_dialect_t): Add ISO to cbl_dialect_t. | |
| (cbl_dialect_str): Recognize ISO dialect. | |
| (dialect_has): New function. | |
| (cbl_diagnostic_kind): New function. | |
| (cbl_dialect_kind): New function. | |
| (struct cbl_alphabet_t): Emit only debug message. | |
| * token_names.h: Regenerate. | |
| * util.cc (gb4): Emit only debug message. | |
| (current_token_location): Add overload to set token_location. | |
| (yywarn): Remove function. | |
| (cobol_fileline_set): Use cbl_message. | |
| (cobol_parse_files): Same. | |
| (cbl_message): New diagnostic message function uses cbl_diag_id_t. | |
| (cbl_diagnostic_kind): New function. | |
| (cbl_diagnostic_option): New function. | |
| (cbl_unimplementedw): Use cbl_diag_id_t. | |
| (dialect_error): Remove function. | |
| * util.h (cbl_message): Remove obsolete prototype for cbl_message. | |
| 2025-11-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> | |
| * lang.opt.urls: Regenerate. | |
| 2025-11-17 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/122702 | |
| * Make-lang.in: Move stored-char-length.cbl to libgcobol. | |
| 2025-11-17 Jakub Jelinek <jakub@redhat.com> | |
| * symbols.cc (symbol_table_init): Avoid arithmetics or | |
| bitwise operations between enumerators from different enums. | |
| 2025-11-15 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/122691 | |
| * lexio.cc (parse_replace_pairs): Replace parsed.stmt.p with | |
| parsed.stmt.size() ? parsed.stmt.p : "" in the last argument to | |
| dbgmsg. | |
| 2025-11-13 James K. Lowden <jklowden@cobolworx.com> | |
| * cdf.y: Install literals in symbol table. | |
| * genapi.cc (parser_alphabet): Use std::string for currency. | |
| (initialize_the_data): Rely on constructor. | |
| (parser_file_add): Better #pragma message. | |
| (parser_exception_file): Return early if not generating code. | |
| * parse.y: Allow library programs to act as functions. | |
| * parse_ante.h (dialect_proscribed): Standardize message. | |
| (intrinsic_call_2): Correct s/fund/func/ misspelling. | |
| * scan.l: Comment. | |
| * symbols.cc (symbols_update): Add unreachable assertion. | |
| (symbol_field_parent_set): Reduce error to debug message. | |
| (cdf_literalize): Declare. | |
| (symbol_table_init): Insert CDF constants as literals. | |
| * symbols.h (cbl_dialect_str): Provide string values for enum. | |
| (is_working_storage): Remove function. | |
| (struct cbl_field_data_t): Add manhandle_initial for Numeric Edited. | |
| (struct cbl_field_t): Initialize name to zeros. | |
| (struct cbl_section_t): Delete unused attr() function. | |
| (symbol_unique_index): Declare. | |
| * token_names.h: Regenerate. | |
| * util.cc (cdf_literalize): Construct a cbl_field_t from a CDF literal. | |
| (symbol_unique_index): Supply "globally" unique number for a program. | |
| 2025-11-10 Sandra Loosemore <sloosemore@baylibre.com> | |
| PR other/122243 | |
| * lang.opt.urls: Regenerated. | |
| 2025-11-06 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: Repair documentation generation. | |
| * cdf.y: Changes to tokens. | |
| * cobol1.cc (cobol_langhook_handle_option): Add comment. | |
| * genapi.cc (function_pointer_from_name): Use data.original() for | |
| function name. | |
| (parser_initialize_programs): Likewise. | |
| (cobol_compare): Make sure encodings of comparands are the same. | |
| (move_tree): Change name of DEFAULT_SOURCE_ENCODING macro. | |
| (parser_enter_program): Typo. | |
| (psa_FldLiteralN): Break out dirty_to_binary() support routine. | |
| (dirty_to_binary): Likewise. | |
| (parser_alphabet): Rename 'alphabet' to 'collation_sequence'. | |
| (parser_allocate): Change wsclear() to be uint32_t instead of char. | |
| (parser_label_label): Formatting. | |
| (parser_label_goto): Likewise. | |
| (get_the_filename): Breakout get_the_filename(), which handles | |
| encoding. | |
| (parser_file_open): Likewise. | |
| (set_up_delete_file_label): Implement DELETE FILE (Format 2). | |
| (parser_file_delete_file): Likewise. | |
| (parser_file_delete_on_exception): Likewise. | |
| (parser_file_delete_not_exception): Likewise. | |
| (parser_file_delete_end): Likewise. | |
| (parser_call): Use data.original(). | |
| (parser_entry): Use data.original(). | |
| (mh_source_is_literalN): Convert from | |
| sourceref.field->codeset.encoding. | |
| (binary_initial_from_float128): Change to "binary_initial". | |
| (binary_initial): Calculate in FIXED_WIDE_INT(128) instead of | |
| REAL_VALUE_TYPE. | |
| (digits_from_int128): New routine uses binary_initial. | |
| (digits_from_float128): Removed. Kept as comment for reference. | |
| (initial_from_initial): Use binary_initial. | |
| (actually_create_the_static_field): Use correct encoding. | |
| (parser_symbol_add): Likewise. | |
| * genapi.h (parser_file_delete_file): Implement FILE DELETE. | |
| (parser_file_delete_on_exception): Implement FILE DELETE. | |
| (parser_file_delete_not_exception): Implement FILE DELETE. | |
| (parser_file_delete_end): Implement FILE DELETE. | |
| * genmath.cc: Include charmaps.h. | |
| * genutil.cc (get_literal_string): Change name of | |
| DEFAULT_SOURCE_ENCODING macro. | |
| * parse.y: Token changes; numerous changes in support of encoding; | |
| support for DELETE FILE. | |
| * parse_ante.h (name_of): Use data.original(). | |
| (class prog_descr_t): Support of locales. | |
| (current_options): Formatting. | |
| (current_encoding): Formatting. | |
| (current_program_index): Formatting. | |
| (current_section): Formatting. | |
| (current_paragraph): Formatting. | |
| (is_integer_literal): Use correct encoding. | |
| (value_encoding_check): Handle encoding changes. | |
| (alphabet_add): Likewise. | |
| (data_division_ready): Likewise. | |
| * scan.l: Use data.original(). | |
| * show_parse.h: Use correct encoding. | |
| * symbols.cc (elementize): Likewise. | |
| (symbol_elem_cmp): Handle locale. | |
| (struct symbol_elem_t): Likewise. | |
| (symbol_locale): Likewise. | |
| (field_str): Change DEFAULT_SOURCE_ENCODING macro name. | |
| (symbols_alphabet_set): Formatting. | |
| (symbols_update): Modify consistency checks. | |
| (symbol_locale_add): Locale support. | |
| (cbl_locale_t::cbl_locale_t): Locale support. | |
| (cbl_alphabet_t::cbl_alphabet_t): New structure. | |
| (cbl_alphabet_t::reencode): Formatting. | |
| (cbl_alphabet_t::assign): Change name of collation_sequence. | |
| (cbl_alphabet_t::also): Likewise. | |
| (new_literal_add): Anticipate the need for four-byte characters. | |
| (guess_encoding): Eliminate. | |
| (cbl_field_t::internalize): Refine conversion of data.initial to | |
| specified encoding. | |
| * symbols.h (enum symbol_type_t): Add SymLocale. | |
| (struct cbl_field_data_t): Incorporate data.orig. | |
| (struct cbl_field_t): Likewise. | |
| (struct cbl_delete_file_t): New structure. | |
| (struct cbl_label_t): Incorporate cbl_delete_file_t. | |
| (struct cbl_locale_t): Support for locale. | |
| (hex_decode): Comment. | |
| (struct cbl_alphabet_t): Incorporate locale; change variable name | |
| to collation_sequence. | |
| (struct symbol_elem_t): Incorporate locale. | |
| (cbl_locale_of): Likewise. | |
| (cbl_alphabet_of): Likewise. | |
| (symbol_locale_add): Likewise. | |
| (wsclear): Type is now uint32_t instead of char. | |
| * util.cc (symbol_type_str): Incorporate locale. | |
| (cbl_field_t::report_invalid_initial_value): Change test so that | |
| pure PIC A() variables are limited to [a-zA-Z] and space. | |
| (valid_move): Use DEFAULT_SOURCE_ENCODING macro. | |
| (cobol_filename): Formatting. | |
| 2025-10-26 Eric Botcazou <ebotcazou@adacore.com> | |
| * Make-lang.in ($(srcdir)/cobol/token_names.h): Silence recipe. | |
| 2025-10-23 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (parser_alphabet): Alphabet encoding. | |
| (parser_alphabet_use): Likewise. | |
| (parser_xml_parse): Use correct debugging macro; encoding. | |
| (parser_xml_on_exception): Likewise. | |
| (parser_xml_not_exception): Likewise. | |
| (parser_xml_end): Likewise. | |
| (initialize_the_data): Encoding. | |
| (parser_label_label): Debugging macros. | |
| (parser_label_goto): Likewise. | |
| (parser_file_add): Encoding. | |
| (parser_intrinsic_call_1): Special handling for __gg__char. | |
| (parser_intrinsic_call_2): Formatting. | |
| * parse.y: Response from FUNCTION ORD is flagged "unsigned". | |
| * symbols.cc (cbl_alphabet_t::reencode): Establish | |
| low_char & high_char. | |
| * symbols.h (struct cbl_alphabet_t): Likewise. | |
| 2025-10-23 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: Incorporate new token_names.h file. | |
| * cdf.y: Modify tokens. | |
| * gcobol.1: Document XML PARSE statement | |
| * genapi.cc (parser_enter_program): Verify that every goto has a | |
| matching label. | |
| (parser_end_program): Likewise. | |
| (parser_alphabet): Refine handling codeset encodings. | |
| (parser_alphabet_use): Likewise. | |
| (label_fetch): Moved from later in the source code. | |
| (parser_xml_parse): New routine for XML PARSE. | |
| (parser_xml_on_exception): Likewise. | |
| (parser_xml_not_exception): Likewise. | |
| (parser_xml_end): Likewise. | |
| (parser_label_label): Verify goto/label matching. | |
| (parser_label_goto): Likewise. | |
| (parser_entry): Minor change to SHOW_PARSE report. | |
| * genapi.h (parser_alphabet): Set parameter to const. | |
| (parser_xml_parse): Declare new function. | |
| (parser_xml_on_exception): Likewise. | |
| (parser_xml_not_exception): Likewise. | |
| (parser_xml_end): Likewise. | |
| (parser_label_addr): Likewise. | |
| * parse.y: label_pair_t structure; locale processing; new token | |
| processing for alphabets and XML PARSE. | |
| * parse_ante.h (name_of): Return field->name when initial is NULL. | |
| (new_tempnumeric): Make signable_e optional. | |
| (ast_save_locale): New function. | |
| (data_division_ready): Warning for "no alphabet". | |
| * scan.l: Repair interpretation of BINARY, COMP, COMP-4, and | |
| COMP-5. | |
| * scan_ante.h (struct bint_t): Likewise. | |
| * scan_post.h (current_tokens_t::tokenset_t::tokenset_t): | |
| Include token_names.h. | |
| * symbols.cc (symbols_alphabet_set): Revert to prior alphabet | |
| determination. | |
| (symbol_table_init): New XML special registers. | |
| (new_temporary): Make signable_e controllable, not fixed. | |
| * symbols.h (__gg__encoding_iconv_valid): New declaration. | |
| (enum cbl_label_type_t): New LblXml label type. | |
| (struct cbl_xml_parse_t): | |
| (struct cbl_label_t): Implement XML PARSE. | |
| (new_temporary): Incorporate boolean for signable_e. | |
| (symbol_elem_of): Change label field type handling. | |
| (cbl_section_of): Likewise. | |
| (cbl_field_of): Likewise. | |
| (cbl_label_of): Likewise. | |
| (cbl_special_name_of): Likewise. | |
| (cbl_alphabet_of): Likewise. | |
| (cbl_file_of): Likewise. | |
| * token_names.h: New file. | |
| * util.cc (gcc_location_set_impl): Improve location_t calculations | |
| when entering and leaving COPYBOOKs. | |
| 2025-10-19 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (move_tree): Formatting. | |
| (parser_enter_file): Incorporate global __gg__entry_label. | |
| (enter_program_common): Remove calls to alphabet overrides. | |
| (parser_alphabet): Change cbl_alphabet_e handling. | |
| (parser_alphabet_use): Likewise. | |
| (initialize_the_data): Likewise. | |
| (establish_using): Process passed parameters in a subroutine. | |
| (parser_division): Remove in-line parameter processing; | |
| call establish_using() instead. Check for __gg__entry_label. | |
| (parser_file_add): Temporary workaround for charset encoding. | |
| (parser_file_open): Likewise. | |
| (create_and_call): Push/pop program state around call to external. | |
| (parser_entry): Implement new ENTRY statement feature. | |
| (mh_source_is_literalN): Formatting. | |
| * genapi.h (parser_entry): New ENTRY statement. | |
| * gengen.cc (gg_create_goto_pair): Formatting. | |
| (gg_goto_label_decl): Remove. | |
| * gengen.h (gg_goto_label_decl): Remove. | |
| * genutil.cc (internal_codeset_is_ebcdic): Remove. | |
| * genutil.h (internal_codeset_is_ebcdic): Remove. | |
| * symbols.cc (symbols_alphabet_set): Restrict alphabet scan to | |
| program. | |
| * symbols.h (is_elementary): Use defined constants instead of | |
| explicit 'A'and 'N' | |
| 2025-10-10 Robert Dubner <rdubner@symas.com> | |
| * cdf.y: In support of the described changes. | |
| * gcobol.1: Likewise. | |
| * genapi.cc (level_88_helper): Likewise. | |
| (get_level_88_domain): Likewise. | |
| (get_class_condition_string): Likewise. | |
| (initialize_variable_internal): Likewise. | |
| (gg_default_qualification): Likewise. | |
| (cobol_compare): Likewise. | |
| (move_tree): Likewise. | |
| (move_tree_to_field): Likewise. | |
| (psa_FldBlob): Likewise. | |
| (parser_accept_date_yymmdd): Likewise. | |
| (parser_accept_date_yyyymmdd): Likewise. | |
| (parser_accept_date_yyddd): Likewise. | |
| (parser_accept_date_yyyyddd): Likewise. | |
| (parser_accept_date_dow): Likewise. | |
| (parser_accept_date_hhmmssff): Likewise. | |
| (parser_alphabet): Likewise. | |
| (parser_alphabet_use): Likewise. | |
| (parser_display_internal): Likewise. | |
| (parser_display): Likewise. | |
| (is_valuable): Likewise. | |
| (parser_division): Likewise. | |
| (parser_relop_long): Likewise. | |
| (parser_setop): Likewise. | |
| (parser_set_conditional88): Likewise. | |
| (parser_file_add): Likewise. | |
| (parser_file_open): Likewise. | |
| (create_and_call): Likewise. | |
| (parser_call): Likewise. | |
| (mh_identical): Likewise. | |
| (mh_source_is_literalN): Likewise. | |
| (picky_memcpy): Likewise. | |
| (mh_numeric_display): Likewise. | |
| (mh_source_is_group): Likewise. | |
| (mh_source_is_literalA): Likewise. | |
| (move_helper): Likewise. | |
| (initial_from_initial): Likewise. | |
| (actually_create_the_static_field): Likewise. | |
| (psa_FldLiteralA): Likewise. | |
| (parser_symbol_add): Likewise. | |
| * genmath.cc (arithmetic_operation): Likewise. | |
| * genutil.cc (get_binary_value): Likewise. | |
| (get_literal_string): Likewise. | |
| * genutil.h (EBCDIC_MINUS): Likewise. | |
| (EBCDIC_PLUS): Likewise. | |
| (EBCDIC_ZERO): Likewise. | |
| (EBCDIC_NINE): Likewise. | |
| * parse.y: Likewise. | |
| * parse_ante.h (name_of): Likewise. | |
| (class prog_descr_t): Likewise. | |
| (current_encoding): Likewise. | |
| (needs_picture): Likewise. | |
| (is_callable): Likewise. | |
| (field_attr_str): Likewise. | |
| (value_encoding_check): Likewise. | |
| (field_alloc): Likewise. | |
| (file_add): Likewise. | |
| * scan.l: Likewise. | |
| * structs.cc (create_cblc_field_t): Likewise. | |
| * symbols.cc (elementize): Likewise. | |
| (cbl_field_attr_str): Likewise. | |
| (is_variable_length): Likewise. | |
| (field_str): Likewise. | |
| (extend_66_capacity): Likewise. | |
| (assert): Likewise. | |
| (symbols_update): Likewise. | |
| (symbol_field_parent_set): Likewise. | |
| (add_token): Likewise. | |
| (symbol_table_init): Likewise. | |
| (symbol_field_add): Likewise. | |
| (symbol_field_forward_add): Likewise. | |
| (symbol_field_same_as): Likewise. | |
| (cbl_alphabet_t::reencode): Likewise. | |
| (new_temporary_impl): Likewise. | |
| (parser_symbol_add2): Likewise. | |
| (new_literal_add): Likewise. | |
| (temporaries_t::literal): Likewise. | |
| (new_literal): Likewise. | |
| (standard_internal): Likewise. | |
| (new_temporary): Likewise. | |
| (cbl_field_t::holds_ascii): Likewise. | |
| (cbl_field_t::is_ascii): Likewise. | |
| (cbl_field_t::internalize): Likewise. | |
| (symbol_label_add): Likewise. | |
| (symbol_label_section_exists): Likewise. | |
| (cbl_occurs_t::subscript_ok): Likewise. | |
| (cbl_file_t::deforward): Likewise. | |
| (has_value): Likewise. | |
| * symbols.h (is_numeric): Likewise. | |
| (__gg__encoding_iconv_name): Likewise. | |
| (current_encoding): Likewise. | |
| (struct cbl_field_t): Likewise. | |
| (new_literal): Likewise. | |
| (class temporaries_t): Likewise. | |
| (struct function_descr_t): Likewise. | |
| (hex_decode): Likewise. | |
| (struct cbl_alphabet_t): Likewise. | |
| (struct cbl_file_t): Likewise. | |
| * symfind.cc (field_structure): Likewise. | |
| (erase_symbol_map_fwds): Likewise. | |
| (symbol_find): Likewise. | |
| * token_names.h: Likewise. | |
| * util.cc (cbl_field_type_str): Likewise. | |
| (is_elementary): Likewise. | |
| (symbol_field_type_update): Likewise. | |
| (cbl_field_t::report_invalid_initial_value): Likewise. | |
| (valid_move): Likewise. | |
| (valid_picture): Likewise. | |
| (type_capacity): Likewise. | |
| (gcc_location_set_impl): Likewise. | |
| (cbl_unimplementedw): Likewise. | |
| 2025-09-05 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (trace1_init): Prepend two internal variables with | |
| underscore. | |
| (initialize_variable_internal): Use new register_e attribute. | |
| (psa_global): Use "__ggsr__" prefix to identify special registers | |
| (parser_symbol_add): Use new register_e attribute. | |
| * symbols.cc (cbl_field_attr_str): Likewise. | |
| (symbol_table_init): Likewise. | |
| (is_register_field): Eliminated in favor of (attr & register_e). | |
| * symbols.h (is_register_field): Likewise. | |
| 2025-08-20 Robert Dubner <rdubner@symas.com> | |
| * genutil.cc (get_binary_value): Fix a comment. | |
| * parse.y: udf_args_valid(): Fix loc calculation. | |
| * symbols.cc (assert): extend_66_capacity(): Avoid assert(e < e2) in | |
| -O0 build until symbol_table expansion is fixed. | |
| 2025-08-15 Robert Dubner <rdubner@symas.com> | |
| * genapi.h (parser_call_exception_end): Remove obsolete comment. | |
| * structs.cc (create_cbl_enabled_exception_t): | |
| Remove cbl_enabled_exception_type_node; | |
| remove create_cbl_enabled_exception_t(). | |
| (create_our_type_nodes): Likewise. | |
| * structs.h (GTY): Likewise. | |
| 2025-08-13 Robert Dubner <rdubner@symas.com> | |
| * genutil.cc (get_binary_value): Use the new routine. | |
| 2025-08-13 Robert Dubner <rdubner@symas.com> | |
| * genutil.cc (get_binary_value): Use the new routine. | |
| 2025-08-12 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (compare_binary_binary): Formatting. | |
| (cobol_compare): Formatting. | |
| (mh_numeric_display): Rewrite "move ND to ND" algorithm. | |
| (initial_from_initial): Proper initialization of EBCDIC ND variables. | |
| * genmath.cc (fast_add): Delete comment. | |
| * genutil.cc (get_binary_value): Modify for updated EBCDIC. | |
| 2025-08-07 Robert Dubner <rdubner@symas.com> | |
| * cbldiag.h (location_dump): Source code formatting. | |
| * parse.y: error_msg formatting. | |
| * scan.l: Remove UTF-8 character from regex pattern. | |
| * scan_ante.h (numstr_of): error_msg formatting. | |
| * show_parse.h (class ANALYZE): Suppress cppcheck error. | |
| * util.cc (cbl_field_t::report_invalid_initial_value): | |
| error_msg formatting. | |
| 2025-08-02 Jakub Jelinek <jakub@redhat.com> | |
| * parse.y (intrinsic): Use %td format specifier with no cast on | |
| argument instead of %ld with cast to long. | |
| * scan_ante.h (numstr_of): Likewise. | |
| * util.cc (cbl_field_t::report_invalid_initial_value): Likewise. | |
| 2025-08-01 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119324 | |
| * cbldiag.h (location_dump): Inline suppression of knownConditionTrueFalse. | |
| * genapi.cc (parser_statement_begin): Combine two if() statements. | |
| * genutil.cc (get_binary_value): File-level suppression of duplicateBreak. | |
| * symbols.cc (symbol_elem_cmp): File-level suppression of duplicateBreak. | |
| 2025-07-31 Robert Dubner <rdubner@symas.com> | |
| PR cobol/120244 | |
| * genapi.cc (get_level_88_domain): Increase array size for final byte. | |
| (psa_FldLiteralA): Use correct length in build_string_literal call. | |
| * scan.l: Use a loop instead of std:transform to avoid EOF overrun. | |
| * scan_ante.h (binary_integer_usage): Use a variable-length buffer. | |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> | |
| * util.cc: Update for diagnostic_t becoming | |
| enum class diagnostics::kind. | |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> | |
| * util.cc: Update for renaming of diagnostic_option_id to | |
| diagnostics::option_id. | |
| 2025-07-25 David Malcolm <dmalcolm@redhat.com> | |
| * util.cc: Remove redundant #includes | |
| 2025-07-24 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119231 | |
| * gcobolspec.cc: (lang_specific_driver): Pass OPT_static through. | |
| Handle -static and -static-libgcobol properly. | |
| 2025-07-23 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc (leave_procedure): Adjust location_t for PERFORM. | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (perform_outofline_before_until): Likewise. | |
| (perform_outofline_after_until): Likewise. | |
| (perform_outofline_testafter_varying): Likewise. | |
| (perform_outofline_before_varying): Likewise. | |
| 2025-07-21 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120402 | |
| * Make-lang.in: Elminate commented-out scripting. | |
| * cbldiag.h (_CBLDIAG_H): Change #if 0 to #if GCOBOL_GETENV | |
| (warn_msg): Add printf attributes. | |
| (location_dump): Add debugging message. | |
| * cdf.y: Improved linemap tracking. | |
| * genapi.cc (treeplet_fill_source): const attribute for formal parameter. | |
| (insert_nop): Created to consolidate var_decl_nop writes. | |
| (build_main_that_calls_something): Move generation to the end of executable. | |
| (level_88_helper): Formatting. | |
| (parser_call_targets_dump): Formatting. | |
| (function_pointer_from_name): const attribute for formal parameter. | |
| (parser_initialize_programs): const attribute for formal parameter. | |
| (parser_statement_begin): Improved linemap handling. | |
| (section_label): Improved linemap handling. | |
| (paragraph_label): Improved linemap handling. | |
| (pseudo_return_pop): Improved linemap handling. | |
| (leave_procedure): Formatting. | |
| (parser_enter_section): Improved linemap handling. | |
| (parser_enter_paragraph): Improved linemap handling. | |
| (parser_perform): Formatting. | |
| (parser_leave_file): Move creation of main() to this routine. | |
| (parser_enter_program): Move creation of main from here to leave_file. | |
| (parser_accept): Formatting. const attribute for formal parameter. | |
| (parser_accept_command_line): const attribute for formal parameter. | |
| (parser_accept_command_line_count): const attribute for formal parameter. | |
| (parser_accept_envar): Likewise. | |
| (parser_set_envar): Likewise. | |
| (parser_display): Likewise. | |
| (get_exhibit_name): Implement EXHIBIT verb. | |
| (parser_exhibit): Likewise. | |
| (parser_sleep): const attribute for formal parameter. | |
| (parser_division): Improved linemap handling. | |
| (parser_classify): const attribute for formal parameter. | |
| (create_iline_address_pairs): Improved linemap handling. | |
| (parser_perform_start): Likewise. | |
| (perform_inline_until): Likewise. | |
| (perform_inline_testbefore_varying): Likewise. | |
| (parser_perform_until): Likewise. | |
| (parser_perform_inline_times): Likewise. | |
| (parser_intrinsic_subst): const attribute for formal parameter. | |
| (parser_file_merge): Formatting. | |
| (create_and_call): Improved linemap handling. | |
| (mh_identical): const attribute for formal parameter. | |
| (mh_numeric_display): const attribute for formal parameter. | |
| (mh_little_endian): Likewise. | |
| (mh_source_is_group): Likewise. | |
| (psa_FldLiteralA): Formatting. | |
| * genapi.h (parser_accept): const attribute for formal parameter. | |
| (parser_accept_envar): Likewise. | |
| (parser_set_envar): Likewise. | |
| (parser_accept_command_line): Likewise. | |
| (parser_accept_command_line_count): Likewise. | |
| (parser_add): Likewise. | |
| (parser_classify): Likewise. | |
| (parser_sleep): Likewise. | |
| (parser_exhibit): Likewise. | |
| (parser_display): Likewise. | |
| (parser_initialize_programs): Likewise. | |
| (parser_intrinsic_subst): Likewise. | |
| * gengen.cc (gg_assign): Improved linemap handling. | |
| (gg_add_field_to_structure): Likewise. | |
| (gg_define_from_declaration): Likewise. | |
| (gg_build_relational_expression): Likewise. | |
| (gg_goto_label_decl): Likewise. | |
| (gg_goto): Likewise. | |
| (gg_printf): Likewise. | |
| (gg_fprintf): Likewise. | |
| (gg_memset): Likewise. | |
| (gg_memchr): Likewise. | |
| (gg_memcpy): Likewise. | |
| (gg_memmove): Likewise. | |
| (gg_strcpy): Likewise. | |
| (gg_strcmp): Likewise. | |
| (gg_strncmp): Likewise. | |
| (gg_return): Likewise. | |
| (chain_parameter_to_function): Likewise. | |
| (gg_define_function): Likewise. | |
| (gg_get_function_decl): Likewise. | |
| (gg_call_expr): Likewise. | |
| (gg_call): Likewise. | |
| (gg_call_expr_list): Likewise. | |
| (gg_exit): Likewise. | |
| (gg_abort): Likewise. | |
| (gg_strlen): Likewise. | |
| (gg_strdup): Likewise. | |
| (gg_malloc): Likewise. | |
| (gg_realloc): Likewise. | |
| (gg_free): Likewise. | |
| (gg_set_current_line_number): Likewise. | |
| (gg_get_current_line_number): Likewise. | |
| (gg_insert_into_assembler): Likewise. | |
| (token_location_override): Likewise. | |
| (gg_token_location): Likewise. | |
| * gengen.h (location_from_lineno): Likewise. | |
| (gg_set_current_line_number): Likewise. | |
| (gg_get_current_line_number): Likewise. | |
| (gg_token_location): Likewise. | |
| (current_token_location): Likewise. | |
| (current_location_minus_one): Likewise. | |
| (current_location_minus_one_clear): Likewise. | |
| (token_location_override): Likewise. | |
| * genmath.cc (fast_divide): const attribute for formal parameter. | |
| * genutil.cc (get_and_check_refstart_and_reflen): Likewise. | |
| (get_data_offset): Likewise. | |
| (refer_refmod_length): Likewise. | |
| (refer_offset): Likewise. | |
| (refer_size): Likewise. | |
| (refer_size_dest): Likewise. | |
| (refer_size_source): Likewise. | |
| (qualified_data_location): Likewise. | |
| * genutil.h (refer_offset): Likewise. | |
| (refer_size_source): Likewise. | |
| (refer_size_dest): Likewise. | |
| (qualified_data_location): Likewise. | |
| * parse.y: EVALUATE token; Implement EXHIBIT verb; | |
| Improved linemap handling. | |
| * parse_ante.h (input_file_status_notify): Improved linemap handling. | |
| (location_set): Likewise. | |
| * scan.l: PICTURE string validation. | |
| * scan_ante.h (class picture_t): PICTURE string validation. | |
| (validate_picture): Likewise. | |
| * symbols.cc (symbol_currency): Revised default currency handling. | |
| * symbols.h (symbol_currency): Likewise. | |
| * util.cc (location_from_lineno): Improved linemap handling. | |
| (current_token_location): Improved linemap handling. | |
| (current_location_minus_one): Improved linemap handling. | |
| (current_location_minus_one_clear): Improved linemap handling. | |
| (gcc_location_set_impl): Improved linemap handling. | |
| (warn_msg): Improved linemap handling. | |
| * util.h (cobol_lineno): Improved linemap handling. | |
| 2025-07-15 Jakub Jelinek <jakub@redhat.com> | |
| Jason Merrill <jason@redhat.com> | |
| PR c/44677 | |
| * gcobolspec.cc (lang_specific_driver): Remove unused but set variable | |
| n_cobol_files. | |
| 2025-07-14 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (cobol_langhook_handle_option): Eliminate cppcheck warnings. | |
| * dts.h: Likewise. | |
| * except.cc (cbl_enabled_exceptions_t::dump): Likewise. | |
| * gcobolspec.cc (lang_specific_driver): Likewise. | |
| * genapi.cc (parser_file_merge): Likewise. | |
| * gengen.cc (gg_unique_in_function): Likewise. | |
| (gg_declare_variable): Likewise. | |
| (gg_peek_fn_decl): Likewise. | |
| (gg_define_function): Likewise. | |
| * genmath.cc (set_up_on_exception_label): Likewise. | |
| (set_up_compute_error_label): Likewise. | |
| (arithmetic_operation): Likewise. | |
| (fast_divide): Likewise. | |
| * genutil.cc (get_and_check_refstart_and_reflen): Likewise. | |
| (get_depending_on_value_from_odo): Likewise. | |
| (get_data_offset): Likewise. | |
| (get_binary_value): Likewise. | |
| (process_this_exception): Likewise. | |
| (copy_little_endian_into_place): Likewise. | |
| (refer_is_clean): Likewise. | |
| (refer_fill_depends): Likewise. | |
| * genutil.h (process_this_exception): Likewise. | |
| (copy_little_endian_into_place): Likewise. | |
| (refer_is_clean): Likewise. | |
| * lexio.cc (check_push_pop_directive): Likewise. | |
| (check_source_format_directive): Likewise. | |
| (location_in): Likewise. | |
| (lexer_input): Likewise. | |
| (cdftext::lex_open): Likewise. | |
| (lexio_dialect_mf): Likewise. | |
| (valid_sequence_area): Likewise. | |
| (cdftext::free_form_reference_format): Likewise. | |
| (cdftext::segment_line): Likewise. | |
| * lexio.h (struct span_t): Likewise. | |
| * scan_ante.h (trim_location): Likewise. | |
| * symbols.cc (symbol_elem_cmp): Likewise. | |
| (symbol_alphabet): Likewise. | |
| (end_of_group): Likewise. | |
| (cbl_field_t::attr_str): Likewise. | |
| (symbols_update): Likewise. | |
| (symbol_typedef_add): Likewise. | |
| (symbol_field_add): Likewise. | |
| (new_temporary_impl): Likewise. | |
| (symbol_label_section_exists): Likewise. | |
| (symbol_program_callables): Likewise. | |
| (file_status_status_of): Likewise. | |
| * symfind.cc (is_data_field): Likewise. | |
| (finalize_symbol_map2): Likewise. | |
| (class in_scope): Likewise. | |
| (symbol_match2): Likewise. | |
| * util.cc (get_current_dir_name): Likewise. | |
| (gb4): Likewise. | |
| (class cdf_directives_t): Likewise. | |
| (cbl_field_t::report_invalid_initial_value): Likewise. | |
| (literal_subscript_oob): Likewise. | |
| (cbl_refer_t::str): Likewise. | |
| (date_time_fmt): Likewise. | |
| (class unique_stack): Likewise. | |
| (cobol_set_pp_option): Likewise. | |
| (cobol_filename): Likewise. | |
| (cobol_filename_restore): Likewise. | |
| (gcc_location_set_impl): Likewise. | |
| (ydferror): Likewise. | |
| (error_msg_direct): Likewise. | |
| (yyerror): Likewise. | |
| (cbl_unimplemented_at): Likewise. | |
| 2025-07-13 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Eliminate the .cc.o override. | |
| * genapi.cc (level_88_helper): Eliminate cppcheck warning. | |
| (get_level_88_domain): Likewise. | |
| (get_class_condition_string): Likewise. | |
| (parser_call_targets_dump): Likewise. | |
| (parser_compile_ecs): Likewise. | |
| (initialize_variable_internal): Likewise. | |
| (move_tree): Likewise. | |
| (combined_name): Likewise. | |
| (assembler_label): Likewise. | |
| (find_procedure): Likewise. | |
| (parser_perform): Likewise. | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (psa_FldLiteralN): Likewise. | |
| (psa_FldBlob): Likewise. | |
| (parser_accept): Likewise. | |
| (parser_accept_exception): Likewise. | |
| (parser_accept_exception_end): Likewise. | |
| (parser_accept_command_line): Likewise. | |
| (parser_accept_envar): Likewise. | |
| (parser_display_internal): Likewise. | |
| (parser_display): Likewise. | |
| (parser_assign): Likewise. | |
| (parser_initialize_table): Likewise. | |
| (parser_arith_error): Likewise. | |
| (parser_arith_error_end): Likewise. | |
| (parser_division): Likewise. | |
| (label_fetch): Likewise. | |
| (parser_label_label): Likewise. | |
| (parser_label_goto): Likewise. | |
| (parser_perform_start): Likewise. | |
| (parser_perform_conditional): Likewise. | |
| (parser_perform_conditional_end): Likewise. | |
| (parser_perform_until): Likewise. | |
| (parser_file_delete): Likewise. | |
| (parser_intrinsic_subst): Likewise. | |
| (create_lsearch_address_pairs): Likewise. | |
| (parser_bsearch_start): Likewise. | |
| (is_ascending_key): Likewise. | |
| (parser_sort): Likewise. | |
| (parser_file_sort): Likewise. | |
| (parser_return_start): Likewise. | |
| (parser_file_merge): Likewise. | |
| (parser_string_overflow): Likewise. | |
| (parser_unstring): Likewise. | |
| (parser_string): Likewise. | |
| (parser_call_exception): Likewise. | |
| (create_and_call): Likewise. | |
| (mh_identical): Likewise. | |
| (move_helper): Likewise. | |
| (binary_initial_from_float128): Likewise. | |
| (initial_from_initial): Likewise. | |
| (psa_FldLiteralA): Likewise. | |
| (parser_local_add): Likewise. | |
| (parser_symbol_add): Likewise. | |
| * genapi.h (parser_display): Likewise. | |
| * gengen.cc (gg_call_expr): Explict check for NULL_TREE. | |
| (gg_call): Likewise. | |
| * show_parse.h (SHOW_PARSE_LABEL_OK): Likewise. | |
| (TRACE1_FIELD_VALUE): Likewise. | |
| (CHECK_FIELD): Likewise. | |
| (CHECK_FIELD2): Likewise. | |
| (CHECK_LABEL): Likewise. | |
| * util.cc (cbl_internal_error): Apply [[noreturn]] attribute. | |
| * util.h (cbl_internal_error): Likewise. | |
| 2025-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR cobol/120621 | |
| * lexio.cc (parse_replace_pairs): Cast mfile.lineno() to fmt_size_t. | |
| * parse.y (intrinsic): Print ptrdiff_t using %ld, cast arg to long. | |
| * scan_ante.h (numstr_of): Print nx using %ld, cast arg to long. | |
| * util.cc (cbl_field_t::report_invalid_initial_value): Print | |
| ptrdiff_t using %ld, cast arg to long. | |
| 2025-07-10 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120765 | |
| * cdf.y: Extend grammar for new CDF syntax, relocate dictionary. | |
| * cdfval.h (cdf_dictionary): Use new CDF dictionary. | |
| * dts.h: Remove useless assignment, note incorrect behavior. | |
| * except.cc: Remove obsolete EC state. | |
| * gcobol.1: Document CDF in its own section. | |
| * genapi.cc (parser_statement_begin): Use new EC state function. | |
| (parser_file_merge): Same. | |
| (parser_check_fatal_exception): Same. | |
| * genutil.cc (get_and_check_refstart_and_reflen): Same. | |
| (get_depending_on_value_from_odo): Same. | |
| (get_data_offset): Same. | |
| (process_this_exception): Same. | |
| * lexio.cc (check_push_pop_directive): New function. | |
| (check_source_format_directive): Restrict regex search to 1 line. | |
| (cdftext::free_form_reference_format): Use new function. | |
| * parse.y: Define new CDF tokens, use new CDF state. | |
| * parse_ante.h (cdf_tokens): Use new CDF state. | |
| (redefined_token): Same. | |
| (class prog_descr_t): Remove obsolete CDF state. | |
| (class program_stack_t): Same. | |
| (current_call_convention): Same. | |
| * scan.l: Recognize new CDF tokens. | |
| * scan_post.h (is_cdf_token): Same. | |
| * symbols.h (cdf_current_tokens): Change current_call_convention to return void. | |
| * token_names.h: Regenerate. | |
| * udf/stored-char-length.cbl: Use new PUSH/POP CDF functionality. | |
| * util.cc (class cdf_directives_t): Define cdf_directives_t. | |
| (current_call_convention): Same. | |
| (cdf_current_tokens): Same. | |
| (cdf_dictionary): Same. | |
| (cdf_enabled_exceptions): Same. | |
| (cdf_push): Same. | |
| (cdf_push_call_convention): Same. | |
| (cdf_push_current_tokens): Same. | |
| (cdf_push_dictionary): Same. | |
| (cdf_push_enabled_exceptions): Same. | |
| (cdf_push_source_format): Same. | |
| (cdf_pop): Same. | |
| (cdf_pop_call_convention): Same. | |
| (cdf_pop_current_tokens): Same. | |
| (cdf_pop_dictionary): Same. | |
| (cdf_pop_enabled_exceptions): Same. | |
| (cdf_pop_source_format): Same. | |
| * util.h (cdf_push): Declare cdf_directives_t. | |
| (cdf_push_call_convention): Same. | |
| (cdf_push_current_tokens): Same. | |
| (cdf_push_dictionary): Same. | |
| (cdf_push_enabled_exceptions): Same. | |
| (cdf_push_source_format): Same. | |
| (cdf_pop): Same. | |
| (cdf_pop_call_convention): Same. | |
| (cdf_pop_current_tokens): Same. | |
| (cdf_pop_dictionary): Same. | |
| (cdf_pop_source_format): Same. | |
| (cdf_pop_enabled_exceptions): Same. | |
| 2025-07-09 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120765 | |
| PR cobol/119337 | |
| PR cobol/120794 | |
| * Make-lang.in: Take control of the .cc.o rule. | |
| * cbldiag.h (error_msg_direct): New declaration. | |
| (gcc_location_dump): Forward declaration. | |
| (location_dump): Use gcc_location_dump. | |
| * cdf.y: Change some tokens. | |
| * gcobc: Change dialect handling. | |
| * genapi.cc (parser_call_targets_dump): Temporarily remove from service. | |
| (parser_compile_dcls): Combine temporary arrays. | |
| (get_binary_value_from_float): Apply const to one parameter. | |
| (depending_on_value): Localize a boolean variable. | |
| (normal_normal_compare): Likewise. | |
| (cobol_compare): Eliminate cppcheck warning. | |
| (combined_name): Apply const to an input parameter. | |
| (parser_perform): Apply const to a variable. | |
| (parser_accept): Improve handling of special_name_t parameter and | |
| the exception conditions. | |
| (parser_display): Improve handling of speciat_name_t parameter; use the | |
| os_filename[] string when appropriate. | |
| (program_end_stuff): Rename shadowing variable. | |
| (parser_division): Consolidate temporary char[] arrays. | |
| (parser_file_start): Apply const to a parameter. | |
| (inspect_replacing): Likewise. | |
| (parser_program_hierarchy): Rename shadowing variable. | |
| (mh_identical): Apply const to parameters. | |
| (float_type_of): Likewise. | |
| (picky_memcpy): Likewise. | |
| (mh_numeric_display): Likewise. | |
| (mh_little_endian): Likewise. | |
| (mh_source_is_group): Apply static to a variable it. | |
| (move_helper): Quiet a cppcheck warning. | |
| * genapi.h (parser_accept): Add exceptions to declaration. | |
| (parser_accept_under_discussion): Add declaration. | |
| (parser_display): Change to std::vector; add exceptions to declaration. | |
| * lexio.cc (cdf_source_format): Improve source code location handling. | |
| (source_format_t::infer): Likewise. | |
| (is_fixed_format): Likewise. | |
| (is_reference_format): Likewise. | |
| (left_margin): Likewise. | |
| (right_margin): Likewise. | |
| (cobol_set_indicator_column): Likewise. | |
| (include_debug): Likewise. | |
| (continues_at): Likewise. | |
| (indicated): Likewise. | |
| (check_source_format_directive): Likewise. | |
| (cdftext::free_form_reference_format): Likewise. | |
| * parse.y: Tokens; program and function names; DISPLAY and ACCEPT | |
| handling. | |
| * parse_ante.h (class tokenset_t): Removed. | |
| (class current_tokens_t): Removed. | |
| (field_of): Removed. | |
| * scan.l: Token handling. | |
| * scan_ante.h (level_found): Comment. | |
| * scan_post.h (start_condition_str): Remove cast author_state:. | |
| * symbols.cc (symbols_update): Change error message. | |
| (symbol_table_init): Correct and reorder entries. | |
| (symbol_unresolved_file_key): New function definition. | |
| (cbl_file_key_t::deforward): Change error message. | |
| * symbols.h (symbol_unresolved_file_key): New declaration. | |
| (keyword_tok): New function. | |
| (redefined_token): New function. | |
| (class current_tokens_t): New class. | |
| * symfind.cc (symbol_match): Revise error message. | |
| * token_names.h: Reorder and change numbers in comments. | |
| * util.cc (class cdf_directives_t): New class. | |
| (cobol_set_indicator_column): New function. | |
| (cdf_source_format): New function. | |
| (gcc_location_set_impl): Improve column handling in token_location. | |
| (gcc_location_dump): New function. | |
| (class temp_loc_t): Modify constructor. | |
| (error_msg_direct): New function. | |
| * util.h (class source_format_t): New class. | |
| 2025-07-01 James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: Use && instead of semicolon between commands. | |
| 2025-07-01 Robert Dubner <rdubner@symas.com> | |
| * parse.y: printf() of size_t is %zu, not %ld. | |
| 2025-06-30 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120772 | |
| PR cobol/120779 | |
| PR cobol/120790 | |
| PR cobol/120791 | |
| PR cobol/120794 | |
| * gcobc: Supply -fPIC for shared objects. | |
| * genapi.cc (linemap_add): Delete empty macro. | |
| (parser_enter_file): Do not call linemap_add. | |
| (parser_leave_file): Same. | |
| * gengen.cc (location_from_lineno): Remove function. | |
| * lexio.cc (parse_replacing_term): Allow empty term. | |
| (cdftext::process_file): Always append to output. | |
| (cdftext::segment_line): Output #line directives. | |
| * lexio.h (struct span_t): Count lines in span. | |
| * parse.y: Revamp REPOSITORY, and minor syntax extensions. | |
| * parse_ante.h (input_file_status_notify): Update linemap filename before location. | |
| (intrinsic_token_of): Declare. | |
| (parser_move_carefully): Support MOVE pointer. | |
| * parse_util.h (intrinsic_token_of): New function. | |
| * scan.l: New EOF logic, accept NOT=, own yylloc and yylineno. | |
| * scan_ante.h (class enter_leave_t): Do not store newline count. | |
| (cdf_location_set): Remove declaration. | |
| (ydfltype_of): New function. | |
| (update_location): Accept location parameter. | |
| (reset_location): New function. | |
| (YY_USER_ACTION): Use update_location(). | |
| (YY_USER_INIT): Update CDF location. | |
| (verify_ws): New function. | |
| (wait_for_the_child): Removed. | |
| * symbols.h (cobol_fileline_set): return line number. | |
| * util.cc (valid_move): Use range-based for loop. | |
| (struct input_file_t): Remove line_map pointer. | |
| (class unique_stack): New peek() member function. | |
| (cobol_lineno_save): Rename to overload cobol_lineno(). | |
| (cobol_lineno): Replaces cobol_lineno_save(). | |
| (cobol_filename): Return void. | |
| (location_from_lineno): New function used by genapi.cc. | |
| (cdf_location_set): Remove. | |
| (matched_length): No change. | |
| (cobol_fileline_set): Return line number. | |
| (fisspace): Remove extra semicolon. | |
| (fisprint): Same. | |
| * util.h (cobol_filename_restore): Return void. | |
| (cobol_lineno_save): Remove declaration. | |
| (cobol_lineno): Declare. | |
| 2025-06-29 Robert Dubner <rdubner@symas.com> | |
| * Make-lang.in: Incorporate gcobol.clean. | |
| * except.cc (cbl_enabled_exceptions_t::dump): Update debug message. | |
| * genapi.cc (gg_attribute_bit_get): Formatting. | |
| (file_static_variable): Formatting. | |
| (trace1_init): Formatting. | |
| (build_main_that_calls_something): Normalize function_decl use. | |
| (parser_call_target): Likewise. | |
| (set_call_convention): Likewise. | |
| (parser_call_target_convention): Likewise. | |
| (parser_call_targets_dump): Likewise. | |
| (function_handle_from_name): Likewise. | |
| (function_pointer_from_name): Likewise. | |
| (parser_initialize_programs): Likewise. | |
| (parser_statement_begin): Formatting. | |
| (parser_leave_file): Use function_decl FIFO. | |
| (enter_program_common): Normalize function_decl use. | |
| (parser_enter_program): Normalize function_decl use. | |
| (tree_type_from_field_type): Normalize function_decl use. | |
| (is_valuable): Comment. | |
| (pe_stuff): Change name to program_end_stuff. | |
| (program_end_stuff): Likewise. | |
| (parser_exit): Likewise. | |
| (parser_division): Normalize function_decl use. | |
| (create_and_call): Normalize function_decl use. | |
| (parser_call): Normalize function_decl use. | |
| (parser_set_pointers): Normalize function_decl use. | |
| (parser_program_hierarchy): Normalize function_decl use. | |
| (psa_FldLiteralA): Defeat attempt to re-use literals. (Fails on some aarch64). | |
| (parser_symbol_add): Error message formatting. | |
| * genapi.h: Formatting. | |
| * gengen.cc (struct cbl_translation_unit_t): Add function_decl FIFO. | |
| (show_type): Rename to gg_show_type. | |
| (gg_show_type): Correct an error message. | |
| (gg_assign): Formatting; change error handling. | |
| (gg_modify_function_type): Normalize function_decl use. | |
| (gg_define_function_with_no_parameters): Fold into gg_defint_function(). | |
| (function_decl_key): Normalize function_decl use. | |
| (gg_peek_fn_decl): Normalize function_decl use. | |
| (gg_build_fn_decl): Normalize function_decl use. | |
| (gg_define_function): Normalize function_decl use. | |
| (gg_tack_on_function_parameters): Remove. | |
| (gg_finalize_function): Normalize function_decl use. | |
| (gg_leaving_the_source_code_file): Normalize function_decl use. | |
| (gg_call_expr_list): Normalize function_decl use. | |
| (gg_trans_unit_var_decl): Normalize function_decl use. | |
| (gg_insert_into_assemblerf): New function; formatting. | |
| * gengen.h (struct gg_function_t): Eliminate "is_truly_nested" flag. | |
| (gg_assign): Incorporate return value. | |
| (gg_define_function): Normalize function_decl use. | |
| (gg_define_function_with_no_parameters): Eliminate. | |
| (gg_build_fn_decl): Normalize function_decl use. | |
| (gg_peek_fn_decl): Normalize function_decl use. | |
| (gg_modify_function_type): Normalize function_decl use. | |
| (gg_call_expr_list): Normalize function_decl use. | |
| (gg_get_function_decl): Normalize function_decl use. | |
| (location_from_lineno): Prefix with "extern". | |
| (gg_open): Likewise. | |
| (gg_close): Likewise. | |
| (gg_get_indirect_reference): Likewise. | |
| (gg_insert_into_assembler): Likewise. | |
| (gg_insert_into_assemblerf): Likewise. | |
| (gg_show_type): New declaration. | |
| (gg_leaving_the_source_code_file): New declaration. | |
| * parse.y: Format debugging message. | |
| * parse_ante.h: Normalize function_decl use. | |
| 2025-06-20 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120621 | |
| * genapi.cc (parser_compile_ecs): Cast argument to unsigned long. | |
| (parser_compile_dcls): Same. | |
| (parser_division): RAII. | |
| (inspect_tally): Cast argument to unsigned long. | |
| * lexio.cc (cdftext::lex_open): Cast pid_t to long. | |
| * parse.y: hard-code values for old versions of Bison, and message format. | |
| * scan_ante.h (wait_for_the_child): Cast pid_t to long. | |
| 2025-06-18 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120621 | |
| * cbldiag.h (yyerror): Add diagnostic attributes. | |
| (yywarn): Same. | |
| (error_msg): Same. | |
| (yyerrorvl): Same. | |
| (cbl_unimplementedw): Same. | |
| (cbl_unimplemented): Same. | |
| (cbl_unimplemented_at): Same. | |
| * cdf-copy.cc (copybook_elem_t::open_file): Supply string argument. | |
| * cdf.y: Use %<%>. | |
| * cobol-system.h (if): Check GCC_VERSION. | |
| (ATTRIBUTE_GCOBOL_DIAG): Define. | |
| * except.cc (cbl_enabled_exception_t::dump): Remove extra %s. | |
| * genapi.cc (get_class_condition_string): Use acceptable message. | |
| (get_bytes_needed): Same. | |
| (move_tree): Same. | |
| (get_string_from): Same. | |
| (internal_perform_through): Same. | |
| (tree_type_from_field_type): Same. | |
| (is_valuable): Same. | |
| (parser_logop): Same. | |
| (parser_relop): Same. | |
| (parser_relop_long): Same. | |
| (parser_if): Same. | |
| (parser_setop): Same. | |
| (parser_perform_conditional): Same. | |
| (parser_file_add): Same. | |
| (parser_file_open): Same. | |
| (parser_file_close): Same. | |
| (parser_file_read): Same. | |
| (parser_file_write): Same. | |
| (inspect_replacing): Same. | |
| (parser_sort): Same. | |
| (parser_file_sort): Same. | |
| (parser_file_merge): Same. | |
| (create_and_call): Same. | |
| (parser_bitop): Same. | |
| (parser_bitwise_op): Same. | |
| (hijack_for_development): Same. | |
| (mh_source_is_literalN): Same. | |
| (mh_dest_is_float): Same. | |
| (parser_symbol_add): Same. | |
| * gengen.cc (show_type): Use acceptable message. | |
| (gg_find_field_in_struct): Same. | |
| (gg_declare_variable): Same. | |
| (gg_printf): Same. | |
| (gg_fprintf): Same. | |
| (gg_tack_on_function_parameters): Same. | |
| (gg_define_function): Same. | |
| (gg_get_function_decl): Same. | |
| (gg_finalize_function): Same. | |
| (gg_call_expr): Same. | |
| (gg_call): Same. | |
| (gg_insert_into_assembler): Define new function. | |
| (gg_insert_into_assemblerf): Use gg_insert_into_assembler(). | |
| * gengen.h (gg_insert_into_assembler): Simpler function declaration. | |
| (gg_insert_into_assemblerf): Declare new function. | |
| * genmath.cc (parser_op): Use acceptable message. | |
| * genutil.cc (get_binary_value): Use acceptable message. | |
| * lexio.cc (parse_replacing_pair): Correct diagnostic arguments. | |
| (preprocess_filter_add): Same. | |
| (cdftext::open_input): Same. | |
| * parse.y: Use acceptable messages. | |
| * parse_ante.h (struct evaluate_elem_t): Use %<%>. | |
| (is_callable): Same. | |
| * parse_util.h (intrinsic_invalid_parameter): Use %qs. | |
| * scan.l: Use dialect_error(). | |
| * scan_ante.h (numstr_of): Use %qs. | |
| (scanner_token): Quote COBOL tokens in messages. | |
| (scanner_parsing): Correct diagnostic message. | |
| (scanner_parsing_toggle): Quote COBOL tokens in messages. | |
| (scanner_parsing_pop): Same. | |
| (typed_name): Use %qs. | |
| * scan_post.h (prelex): Quote COBOL tokens in message. | |
| * show_parse.h (CHECK_FIELD): Use acceptable message format. | |
| (CHECK_LABEL): Same. | |
| * symbols.cc (symbol_field_same_as): Remove extra spaces. | |
| (cbl_alphabet_t::assign): Use %<%>. | |
| (cbl_field_t::internalize): Quote library name in message. | |
| * symbols.h (struct os_locale_t): Constify codeset. | |
| (class temporaries_t): Add copy constructor. | |
| (struct cbl_alphabet_t): Use acceptable message. | |
| * util.cc (symbol_type_str): Use cbl_internal_error. | |
| (cbl_field_type_str): Same. | |
| (is_elementary): Same. | |
| (cbl_field_t::report_invalid_initial_value): Use %qs. | |
| (class unique_stack): Avoid %m. | |
| (ydferror): Declare function with attributes. | |
| (error_msg): Same. | |
| (cobol_fileline_set): Use %<%>. | |
| (os_locale_t): Remove use of xstrdup. | |
| (cobol_parse_files): Quote C names in message. | |
| (dialect_error): Use %<%>. | |
| * util.h (cbl_message): Add attributes. | |
| (cbl_internal_error): Same. | |
| (cbl_err): Same. | |
| (cbl_errx): Same. | |
| 2025-06-16 James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120621 | |
| * Make-lang.in: Use STRICT_WARN. | |
| * cbldiag.h (location_dump): suppress shadowVariable. | |
| * cdf-copy.cc (esc): Fix shadowVariable. | |
| (copybook_elem_t::open_file): Do not use %m. | |
| * cdf.y: suppress invalidPrintfArgType for target format. | |
| * cdfval.h (struct cdfval_t): Suppress noExplicitConstructor. | |
| * cobol1.cc (cobol_name_mangler): Use C++ cast. | |
| * copybook.h (class copybook_elem_t): Same. | |
| * dts.h: Fixes and suppressions due to cppcheck. | |
| * except.cc (cbl_enabled_exceptions_t::status): Suppress useStlAlgorithm. | |
| (cbl_enabled_exceptions_t::turn_on_off): Const parameter. | |
| (class choose_declarative): Removed. | |
| * genapi.cc (struct called_tree_t): Explicit constructor. | |
| (parser_compile_ecs): Cast to void * for %p. | |
| (parser_compile_dcls): Same. | |
| (parser_statement_begin): Same. | |
| (initialize_variable_internal): Use std::vector for subscripts. | |
| (parser_initialize): Constification. | |
| (get_string_from): Same. | |
| (combined_name): Same. | |
| (parser_perform): Same. | |
| (psa_FldLiteralN): Same. | |
| (is_figconst): Const parameter. | |
| (is_figconst_t): Same. | |
| (parser_exit): Same. | |
| (parser_division): Const pointer. | |
| (parser_perform_conditional): Whitespace. | |
| (parser_set_conditional88): Const parameter. | |
| (inspect_tally): Use std::vector. | |
| (inspect_replacing): Same. | |
| (parser_inspect): Same. | |
| (parser_intrinsic_subst): Use std::vector (constuct elements). | |
| (parser_intrinsic_call_1): Use std::vector for subscripts. | |
| (is_ascending_key): Const pointer. | |
| (parser_sort): Use std::vector. | |
| (parser_file_sort): Same. | |
| (parser_file_merge): Same. | |
| (parser_unstring): Same. | |
| (parser_string): Same. | |
| (parser_call): Const pointer. | |
| (parser_program_hierarchy): Use std::vector. | |
| (conditional_abs): Const paraemeter. | |
| (float_type_of): Same. | |
| (initial_from_initial): Set value, quoted or not. | |
| (parser_symbol_add): Remove redundant nested test. | |
| * genapi.h (parser_add): Const parameters. | |
| (parser_subtract): Same. | |
| (parser_multiply): Same. | |
| (parser_divide): Same. | |
| (parser_perform): Same. | |
| (parser_exit): Same. | |
| (parser_initialize): Same. | |
| (parser_set_conditional88): Same. | |
| (parser_sort): Same. | |
| (parser_file_sort): Same. | |
| (parser_file_merge): Same. | |
| (parser_string): Same. | |
| (is_ascending_key): Same. | |
| * genmath.cc (arithmetic_operation): Use std::vector. | |
| (is_somebody_float): Const parameter. | |
| (all_results_binary): Const parameter. | |
| (fast_multiply): Remove redundant nested test. | |
| (parser_add): Const parameter. | |
| (parser_multiply): Remove redundant nested test. | |
| (parser_divide): Const parameter. | |
| (parser_subtract): Same. | |
| * genutil.cc (get_depending_on_value): Use std::vector. | |
| (get_data_offset): Same. | |
| (tree_type_from_field): Const parameter. | |
| (refer_has_depends): Const pointers. | |
| (get_literal_string): RAII. | |
| (refer_is_clean): Use std::vector. | |
| (get_time_nanoseconds): Newline at EOF. | |
| * genutil.h (tree_type_from_field): Remove declaration. | |
| * inspect.h (struct cbx_inspect_qual_t): Use std::vector. | |
| (struct cbl_inspect_qual_t): Same. | |
| (struct cbx_inspect_match_t): Same. | |
| (class cbl_inspect_match_t): Same. | |
| (struct cbx_inspect_replace_t): Same. | |
| (struct cbl_inspect_replace_t): Same. | |
| (struct cbx_inspect_oper_t): Same. | |
| (struct cbl_inspect_oper_t): Same. | |
| (struct cbx_inspect_t): Same. | |
| (struct cbl_inspect_t): Same. | |
| (parser_inspect): Same. | |
| * lexio.cc (indicated): Const pointer. | |
| (remove_inline_comment): Scope reduction. | |
| (maybe_add_space): Const pointer. | |
| (recognize_replacements): C++ cast. | |
| (check_source_format_directive): Same. | |
| (struct replacing_term_t): Explicit constructor. | |
| (parse_replace_pairs): Const reference. | |
| (location_in): Const reference. | |
| (parse_copy_directive): C++ cast. | |
| (parse_replace_last_off): Const parameter. | |
| (parse_replace_text): Const reference. | |
| (parse_replace_directive): C++ cast. | |
| (cdftext::lex_open): Const reference. | |
| (cdftext::open_output): Scope reduction. | |
| (cdftext::free_form_reference_format): Remove unused variable. | |
| (cdftext::process_file): Simplify. | |
| * lexio.h (struct bytespan_t): Use nullptr. | |
| (struct filespan_t): Initialize icol in constructor. | |
| (struct span_t): Suppress confused operatorEqRetRefThis. | |
| (struct replace_t): Eliminate single-value constructor. | |
| * parse.y: Many const cppcheck reports, and portable bit-shift. | |
| * parse_ante.h (reject_refmod): Const parameter. | |
| (require_pointer): Same. | |
| (require_integer): Same. | |
| (struct evaluate_elem_t): Explicit constructor. | |
| (struct arith_t): Use std::vector. | |
| (class eval_subject_t): Const parameter. | |
| (dump_inspect_match): Declare. | |
| (struct perform_t): Explicit constructor. | |
| (list_add): Const parameter. | |
| (class tokenset_t): Avoid negative array index. | |
| (struct file_list_t): Explicit constructor. | |
| (struct field_list_t): Same. | |
| (struct refer_list_t): Same. | |
| (struct refer_marked_list_t): Const parameter. | |
| (struct refer_collection_t): Explicit constructor. | |
| (struct ast_inspect_oper_t): Remove class. | |
| (ast_inspect_oper_t): Same. | |
| (struct ast_inspect_t): Same. | |
| (struct ast_inspect_list_t): Same. | |
| (ast_inspect): Add location. | |
| (struct elem_list_t): Explicit constructor. | |
| (struct unstring_tgt_t): Same. | |
| (struct unstring_tgt_list_t): Same. | |
| (struct unstring_into_t): Same. | |
| (struct ffi_args_t): Same. | |
| (struct file_sort_io_t): Same. | |
| (merge_t): Same. | |
| (struct vargs_t): Same. | |
| (class prog_descr_t): Eliminate single-value constructor. | |
| (class program_stack_t): Suppress useStlAlgorithm. | |
| (struct rel_part_t): Eliminate single-value constructor. | |
| (class log_expr_t): Explicit constructor. | |
| (add_debugging_declarative): Rename local variable. | |
| (intrinsic_call_2): Const parameter. | |
| (invalid_key): Use std::find_if. | |
| (parser_add2): Const parameter. | |
| (parser_subtract2): Same. | |
| (stringify): Same. | |
| (unstringify): Same. | |
| (anybody_redefines): Same. | |
| (ast_call): Same. | |
| * parse_util.h (class cname_cmp): Explicit constructor. | |
| (intrinsic_inconsistent_parameter): Same. | |
| * scan_ante.h (struct cdf_status_t): Eliminate single-value constructor. | |
| (class enter_leave_t): Explicit constructor. | |
| (update_location): Const pointer, explicit constructor. | |
| (symbol_function_token): Const pointer. | |
| (typed_name): Same. | |
| * scan_post.h (datetime_format_of): Scope reduction. | |
| * show_parse.h (class ANALYZE): Use std::vector, explicit consstructor. | |
| * symbols.cc (symbol_table_extend): Scope reduction. | |
| (cbl_ffi_arg_t::cbl_ffi_arg_t): Define default constructor. | |
| (end_of_group): Const pointer. | |
| (symbol_find_odo): Const parameter. | |
| (rename_not_ok): Same. | |
| (field_str): Use %u instead of %d. | |
| (struct capacity_of): Const pointer. | |
| (symbols_update): Same. | |
| (symbol_field_parent_set): Same. | |
| (symbol_file_add): Same. | |
| (symbol_typedef_add): Same. | |
| (symbol_field_add): Use new operator=(). | |
| (symbol_field): Suppress CastIntegerToAddressAtReturn. | |
| (symbol_register): Same. | |
| (symbol_file): Suppress knownConditionTrueFalse. | |
| (next_program): Const parameter. | |
| (symbol_file_record): Same. | |
| (class is_section): Explicit constructor. | |
| (cbl_file_t::no_key): Remove. | |
| (cbl_prog_hier_t::cbl_prog_hier_t): Use std::vector. | |
| (symbol_label_add): Assert pointer is not NULL. | |
| (symbol_label_section_exists): Const reference in lambda. | |
| (expand_picture): Use C++ cast. | |
| (symbol_program_callables): Const pointer. | |
| (symbol_currency_add): Suppress nullPointerRedundantCheck. | |
| (cbl_key_t): Use std::vector. | |
| (cbl_occurs_t::field_add): Const parameter. | |
| (cbl_occurs_t::index_add): Explicit constructor. | |
| (class is_field_at): Same. | |
| (cbl_file_key_t::deforward): Scope reduction. | |
| (cbl_file_t::keys_str): Use allocated memory only. | |
| (file_status_status_of): Const pointer. | |
| (is_register_field): Const parameter. | |
| * symbols.h (struct cbl_field_data_t): Eliminate single-value constructor. | |
| (struct cbl_occurs_bounds_t): Same. | |
| (struct cbl_refer_t): Use std::vector. | |
| (valid_move): Const parameter. | |
| (is_register_field): Same. | |
| (struct cbl_key_t): Use std::vector. | |
| (struct cbl_substitute_t): Eliminate single-value constructor. | |
| (refer_of): Return const reference | |
| (struct cbl_ffi_arg_t): Eliminate single-value constructor. | |
| (class temporaries_t): Same. | |
| (struct cbl_file_key_t): Define default constructor. | |
| (struct cbl_file_lock_t): Define copy constructor and operator=(). | |
| (struct cbl_file_t): Complete default constructor. | |
| (struct symbol_elem_t): Explicit constructor. | |
| (symbol_elem_of): Suppress cstyleCast. | |
| (symbol_redefines): Const parameter. | |
| (struct cbl_field_t): Same. | |
| (cbl_section_of): Test for NULL pointer. | |
| (cbl_field_of): Same. | |
| (cbl_label_of): Same. | |
| (cbl_special_name_of): Same. | |
| (cbl_alphabet_of): Same. | |
| (cbl_file_of): Same. | |
| (is_figconst): Delete extra "struct" keyword. | |
| (is_figconst_low): Same. | |
| (is_figconst_zero): Same. | |
| (is_figconst_space): Same. | |
| (is_figconst_quote): Same. | |
| (is_figconst_high): Same. | |
| (is_space_value): Same. | |
| (is_quoted): Same. | |
| (symbol_index): Const parameter. | |
| (struct cbl_prog_hier_t): Suppress noExplicitConstructor. | |
| (struct cbl_perform_vary_t): Eliminate single-value constructor. | |
| (is_signable): Const parameter. | |
| (is_temporary): Same. | |
| (rename_not_ok): Same. | |
| (field_at): Test for NULL pointer. | |
| (class procref_base_t): Eliminate single-value constructor. | |
| * symfind.cc (is_data_field): Const pointer. | |
| (finalize_symbol_map2): Same. | |
| (class in_scope): Same. | |
| (symbol_match2): Same. | |
| * token_names.h: Suppress useInitializationList. | |
| * util.cc (normalize_picture): Whitespace and remove extra "continue". | |
| (redefine_field): Const pointer. | |
| (cbl_field_t::report_invalid_initial_value): Same. | |
| (literal_subscript_oob): Rename shadow variable. | |
| (cbl_refer_t::subscripts_set): Use std::vector. | |
| (cbl_refer_t::str): Same. | |
| (cbl_refer_t::deref_str): Same. | |
| (locally_unique): Use explicit constructor. | |
| (ambiguous_reference): Same. | |
| (class unique_stack): Use const reference. | |
| (cobol_filename): Const pointer. | |
| (verify_format): Scope reduction. | |
| (class temp_loc_t): Do not derive from YYLTYPE. | |
| (cobol_parse_files): Const pointer. | |
| * util.h (as_voidp): Define convenient converter. | |
| 2025-06-10 James K. Lowden <jklowden@cobolworx.com> | |
| * Make-lang.in: cobol.clean does not remove libgcobol files. | |
| * cdf.y: Suppress 1 cppcheck false positive. | |
| * cdfval.h (scanner_parsing): Partial via cppcheck for PR119324. | |
| * gcobol.1: Fix groff errors. | |
| * gcobolspec.cc (append_arg): Const parameter. | |
| * parse_ante.h (intrinsic_call_2): Avoid NULL dereference. | |
| 2025-06-06 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/120328 | |
| PR cobol/119695 | |
| * Make-lang.in: Success with non-English locale. | |
| * cbldiag.h (cbl_unimplemented_at): Comment: | |
| * cdf-copy.cc (copybook_elem_t::open_file): Indentation. | |
| * cdf.y: YYABORT on certain errors. | |
| * cdfval.h (cdf_value): Const parameter. | |
| * copybook.h (class copybook_elem_t): Initialization. | |
| (class uppername_t): Explicit constructor. | |
| * except.cc (ec_type_descr): Remove %04s. | |
| (cbl_enabled_exceptions_t::dump): Remove %zu. | |
| * exceptg.h (class exception_turn_t): Explicit constructor. | |
| * genapi.cc (parser_perform_conditional): Remove %zu. | |
| (set_exception_environment): Formatting. | |
| (parser_statement_begin): Exception overhead. | |
| (parser_perform_conditional): Formatting: | |
| (parser_perform_conditional_end): Eliminate size_t. | |
| (parser_check_fatal_exception): Exception overhead. | |
| (parser_perform_conditional_end): Remove %zu. | |
| * inspect.h (struct cbx_inspect_match_t): Const reference. | |
| (struct cbx_inspect_t): Const parameter. | |
| * lexio.cc (cdftext::process_file): Remove %zu. | |
| * lexio.h (struct YYLTYPE): Remove unneeded struct. | |
| (YYLTYPE_IS_DECLARED): Likewise. | |
| (YYLTYPE_IS_TRIVIAL): Likewise. | |
| * parse.y: Comment; change DOT. | |
| * scan.l: Scan function names without swallowing whitespace. | |
| * scan_ante.h (scanner_parsing): Remove %zu. | |
| (scanner_parsing_pop): Remove %zu. | |
| (binary_integer_usage): Remove %zu. | |
| * scan_post.h (prelex): Correct post-CDF resumption. | |
| (yylex): Clearer message. | |
| * symbols.cc (symbol_table_extend): Explicit constructor. | |
| (elementize): Const parameter. | |
| (is_variable_length): Correct always-false. | |
| (symbols_update): Remove unnecessary shadow variable. | |
| (struct symbol_elem_t): Const parameter. | |
| (symbol_alphabet_add): Const parameter. | |
| (new_literal_add): Initialization. | |
| * symbols.h (class cbl_domain_elem_t): Correct assignment. | |
| (struct cbl_span_t): Improve constructor. | |
| (struct cbl_refer_t): Initialization. | |
| (struct cbl_alphabet_t): Rename shadow variable. | |
| (struct cbl_file_key_t): Remove unused constructor. | |
| (struct symbol_elem_t): Initialization. | |
| (struct cbl_until_addresses_t): Use unsigned int, for messages. | |
| (struct cbl_prog_hier_t): Initialization. | |
| (struct cbl_perform_tgt_t): Repair constructor. | |
| (struct cbl_label_t): Const parameter. | |
| (symbol_typedef_add): Const parameter. | |
| (symbol_field_add): Explicit constructor. | |
| (symbol_label_add): Explicit constructor. | |
| (symbol_program_add): Remove C-style "struct" use. | |
| (symbol_special_add): Remove C-style "struct" use. | |
| (symbol_alphabet_add): Const parameter. | |
| (symbol_file_add): Remove C-style "struct" use. | |
| (symbol_section_add): Remove C-style "struct" use. | |
| * symfind.cc: Const parameter. | |
| * util.cc (gb4): New function. | |
| * util.h (gb4): New function. | |
| * TODO: New file. | |
| 2025-06-05 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119975 | |
| * genapi.cc (parser_intrinsic_call_0): Use get_time_nanoseconds(). | |
| * genutil.cc (get_time_64): Rename to get_time_nanoseconds(). | |
| (get_time_nanoseconds): Likewise. | |
| * genutil.h (get_time_64): Likewise. | |
| (get_time_nanoseconds): Likewise. | |
| * util.cc (class cbl_timespec): Timing routine uses | |
| get_time_nanoseconds(). | |
| (operator-): Likewise. | |
| (parse_file): Likewise. | |
| 2025-06-02 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119975 | |
| * genapi.cc (parser_intrinsic_call_0): Use get_time_64() function. | |
| * genutil.cc (get_time_64): Definition created. | |
| * genutil.h (get_time_64): Declaration created. | |
| 2025-06-01 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119524 | |
| * gengen.cc (gg_printf): Use the new __gg__fprintf_stderr() function | |
| instead of generating a call to fprintf(). | |
| 2025-05-20 Robert Dubner <rdubner@symas.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| PR cobol/119770 | |
| PR cobol/119772 | |
| PR cobol/119790 | |
| PR cobol/119771 | |
| PR cobol/119810 | |
| PR cobol/119335 | |
| PR cobol/119632 | |
| * cdf-copy.cc (GLOB_BRACE): Eliminate <glob.h>. | |
| * cdfval.h (_CDF_VAL_H_): Switch to C++ headers. | |
| * copybook.h (class copybook_elem_t): Eliminate <glob.h>. | |
| (class copybook_t): Likewise. | |
| * gcobc: Numerous changes to improve utility. | |
| * gcobol.1: Correct names in the list of functions. | |
| * genapi.cc (compare_binary_binary): Use has_attr() function. | |
| * lexio.cc (cdftext::lex_open): Typo; filename logic. | |
| (cdftext::process_file): Filename logic. | |
| * parse.y: Numerous parsing changes. | |
| * parse_ante.h (new_alphanumeric): C++ includes; changes to temporaries. | |
| (new_tempnumeric): Likewise. | |
| (new_tempnumeric_float): Likewise. | |
| (set_real_from_capacity): Created. | |
| * scan.l: Use yy_pop_state(). | |
| * scan_ante.h (typed_name): Find figconst from data.initial. | |
| * symbols.cc (symbol_valid_udf_args): Eliminate. | |
| (symbols_update): figconst processing. | |
| (new_temporary_impl): For functions, set .initial to function name. | |
| (temporaries_t::acquire): Likewise. | |
| (new_alphanumeric): Likewise. | |
| (new_temporary): Likewise. | |
| * symbols.h (_SYMBOLS_H_): Use C++ includes. | |
| (cbl_figconst_tok): Change handling of figconst. | |
| (cbl_figconst_field_of): Change handling of figconst. | |
| (symbol_valid_udf_args): Eliminate. | |
| * symfind.cc (symbol_match2): Change declaration. | |
| (symbol_match): Change declaration. | |
| 2025-05-18 Mark Wielaard <mark@klomp.org> | |
| * lang.opt.urls: Regenerated. | |
| 2025-05-16 Robert Dubner <rdubner@symas.com> | |
| * cobol1.cc (cobol_langhook_handle_option): Eliminate OPT_M. | |
| * except.cc (cbl_enabled_exception_t::dump): Formatting. | |
| (symbol_declaratives_add): Remove. | |
| (declarative_runtime_match): Change to no-blob processing. | |
| * exceptg.h (declarative_runtime_match): Change declaration. | |
| (symbol_declaratives_add): Remove declaration. | |
| * gcobc: Dialect handling. | |
| * genapi.cc (parser_compile_ecs): Formatting; add SHOW_IF_PARSE. | |
| (parser_compile_dcls): Likewise. | |
| (parser_statement_begin): Avoid unnecessary store_location_stuff() call. | |
| (gg_get_depending_on_value): Streamline get_depending_on_value_from_odo(). | |
| (depending_on_value): Likewise. | |
| (parser_display_field): Formatting. | |
| (parser_display): Handle case ENV_NAME_e. | |
| (parser_file_open): Avoid unnecessary store_location_stuff. | |
| (parser_file_close): Likewise. | |
| (parser_file_read): Likewise. | |
| (parser_file_write): Likewise. | |
| (parser_file_delete): Likewise. | |
| (parser_file_rewrite): Likewise. | |
| (parser_file_start): Likewise. | |
| (parser_intrinsic_subst): Streamline get_depending_on_value_from_odo(). | |
| (parser_intrinsic_call_1): Likewise. | |
| (parser_lsearch_start): Likewise. | |
| (parser_bsearch_start): Likewise. | |
| (parser_sort): Likewise. | |
| (store_location_stuff): Avoid unnecessary assignments. | |
| (parser_pop_exception): Formatting. | |
| * genmath.cc (parser_add): Avoid var_decl_default_compute_error assignment | |
| when doing fast_add(). | |
| (parser_subtract): Likewise. | |
| * genutil.cc (REFER): Macro for analyzing code generation. | |
| (get_integer_value): Use data_decl_node for integer value from FldLiteralN. | |
| (get_data_offset): Streamline exception code processing. | |
| (get_and_check_refstart_and_reflen): Likewise. | |
| (get_depending_on_value_from_odo): Likewise. | |
| (get_depending_on_value): Likewise. | |
| (refer_is_clean): Formatting. | |
| (refer_refmod_length): Streamline exception code processing. | |
| (refer_fill_depends): Likewise. | |
| (refer_offset): Likewise. | |
| (refer_size_dest): Likewise. | |
| (refer_size_source): Likewise. | |
| * genutil.h (get_depending_on_value_from_odo): Likewise. | |
| * lang-specs.h: Options definition. | |
| * lang.opt: -M as in c.opt. | |
| * lexio.h: Formatting. | |
| * parse.y: Expand -dialect suggestions; SECTION SEGMENT messages. | |
| * parse_ante.h (declarative_runtime_match): Dialect handling. | |
| (labels_dump): Likewise. | |
| (class current_tokens_t): Likewise. | |
| (class prog_descr_t): Make program_index size_t to prevent padding bytes. | |
| * scan.l: POP_FILE directive. | |
| * scan_ante.h (class enter_leave_t): Better handle line number when | |
| processing COPY statements. | |
| * symbols.cc (symbol_elem_cmp): Eliminate SymFunction. | |
| (symbols_dump): Likewise. | |
| (symbol_label_section_exists): Likewise. | |
| * symbols.h (NAME_MAX): Eliminate. (Was part of SymFunction). | |
| (dialect_is): Improve dialect handling. | |
| (dialect_gcc): Likewise. | |
| (dialect_ibm): Likewise. | |
| (dialect_gnu): Likewise. | |
| (enum symbol_type_t): Eliminate SymFunction. | |
| * util.cc (symbol_type_str): Likewise. | |
| (class unique_stack): Option -M handling. | |
| (cobol_set_pp_option): Likewise. | |
| (parse_file): Likewise. | |
| * util.h (cobol_set_pp_option): Likewise. | |
| 2025-05-10 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119337 | |
| * Make-lang.in: Change how $(FLEX) is invoked. | |
| * cdf.y: Change parser tokens. | |
| * gcobc: Changed how name is inferred for PR119337 | |
| * gcobol.1: Documentation for SOURCE format heuristic | |
| * genapi.cc: Eliminate __gg__odo_violation. | |
| (parser_display_field): Change comment. | |
| * genutil.cc:Eliminate __gg__odo_violation. | |
| (REFER): New macro for analyzing subscript/refmod calculations. | |
| (get_integer_value): Likewise. | |
| (get_data_offset): Eliminate __gg__odo_violation. | |
| (scale_by_power_of_ten_N): Eliminate unnecessary var_decl_rdigits operation. | |
| (refer_is_clean): Check for FldLiteralN. | |
| (REFER_CHECK): Eliminate. | |
| (refer_refmod_length): Streamline var_decl_rdigits processing. | |
| (refer_fill_depends): Likewise. | |
| (refer_offset): Streamline processing when FldLiteralN. | |
| (refer_size): Tag with REFER macro. | |
| (refer_size_dest): Likewise. | |
| (refer_size_source): Likewise. | |
| * genutil.h (get_integer_value): Delete declaration for odo_violation; | |
| change comment for get_integer_value | |
| (REFER_CHECK): Delete declaration. | |
| (refer_check): Delete #define. | |
| * lexio.cc (is_fixed_format): Changes for source format auto-detect. | |
| (is_reference_format): Likewise. | |
| (check_source_format_directive): Likewise. | |
| (valid_sequence_area): Likewise. | |
| (is_p): Likewise. | |
| (is_program_id): Likewise. | |
| (likely_nist_file): Likewise. | |
| (infer_reference_format): Likewise. | |
| (cdftext::free_form_reference_format): Likewise. | |
| * parse.y: Token changes. | |
| * parse_ante.h (class tokenset_t): Likewise. | |
| (class current_tokens_t): Likewise. | |
| (cmd_or_env_special_of): Likewise. | |
| * scan.l: Likewise. | |
| * scan_ante.h (bcomputable): Likewise. | |
| (keyword_alias_add): Likewise. | |
| (struct bint_t): Likewise. | |
| (binary_integer_usage): Likewise. | |
| (binary_integer_usage_of): Likewise. | |
| * scan_post.h (start_condition_str): Likewise. | |
| * symbols.cc (symbol_table_init): Formatting. | |
| * symbols.h (struct cbl_field_data_t): Add "input" method to field_data_t. | |
| (keyword_alias_add): Add forward declaration. | |
| (binary_integer_usage_of): Likewise. | |
| * token_names.h: Change list of tokens. | |
| * util.cc (iso_cobol_word): Change list of COBOL reserved words. | |
| 2025-05-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR cobol/119217 | |
| * symbols.h (NAME_MAX): Define fallback. | |
| 2025-05-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR cobol/119217 | |
| * dts.h (csub_match): Initialize rm_so, rm_eo fields explicitly. | |
| 2025-05-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR cobol/119217 | |
| * cdf-copy.cc (GLOB_BRACE): Define fallback. | |
| (GLOB_TILDE): Likewise. | |
| 2025-05-05 Robert Dubner <rdubner@symas.com> | |
| * cdf.y: Exceptions. | |
| * except.cc (cbl_enabled_exception_t::dump): Likewise. | |
| (cbl_enabled_exceptions_t::dump): Likewise. | |
| (cbl_enabled_exceptions_t::status): Likewise. | |
| (cbl_enabled_exceptions_t::encode): Likewise. | |
| (cbl_enabled_exceptions_t::turn_on_off): Likewise. | |
| (cbl_enabled_exceptions_t::match): Likewise. | |
| (declarative_runtime_match): Likewise. Likewise. | |
| * exceptg.h (struct cbl_exception_files_t): Likewise. | |
| (class exception_turn_t): Likewise. | |
| (apply_cdf_turn): Likewise. | |
| * genapi.cc (treeplet_fill_source): Use refer_offset(). | |
| (function_handle_from_name): Likewise. | |
| (parser_initialize_programs): Likewise. | |
| (parser_statement_begin): Likewise. | |
| (array_of_long_long): Exceptions. | |
| (parser_compile_ecs): Exceptions. | |
| (parser_compile_dcls): Exceptions. | |
| (store_location_stuff): Exceptions. | |
| (initialize_variable_internal): Use refer_offset(). | |
| (compare_binary_binary): Use refer_offset(). | |
| (cobol_compare): Use refer_offset(). | |
| (paragraph_label): Formatting. | |
| (parser_goto): Use refer_offset(). | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (parser_enter_file): Exceptions. | |
| (psa_FldLiteralN): Add comment. | |
| (parser_accept): Use refer_offset(). | |
| (parser_accept_command_line): Likewise. | |
| (parser_accept_command_line_count): Likewise. | |
| (parser_accept_envar): Likewise. | |
| (parser_set_envar): Likewise. | |
| (parser_display_internal): Likewise. | |
| (parser_initialize_table): Likewise. | |
| (parser_sleep): Likewise. | |
| (parser_allocate): Likewise. | |
| (parser_free): Likewise. | |
| (parser_division): Likewise. | |
| (parser_relop_long): Likewise. | |
| (parser_see_stop_run): Likewise. | |
| (parser_classify): Likewise. | |
| (parser_file_add): Include symbol_table_index in __gg__file_init(). | |
| (parser_file_open): Use refer_offset(). | |
| (parser_file_write): Move forward declaration of store_location_stuff(). | |
| (parser_file_start): Use refer_offset(). | |
| (parser_inspect_conv): Likewise: | |
| (parser_intrinsic_numval_c): Likewise: | |
| (parser_intrinsic_subst): Likewise: | |
| (parser_intrinsic_call_1): Likewise: | |
| (parser_intrinsic_call_2): Likewise: | |
| (parser_intrinsic_call_3): Likewise: | |
| (parser_intrinsic_call_4): Likewise: | |
| (parser_sort): Likewise: | |
| (parser_return_start): Exceptions. | |
| (parser_unstring): Use refer_offset(). | |
| (create_and_call): Likewise. | |
| (parser_set_pointers): Use refer_offset(). | |
| (parser_program_hierarchy): Comment. | |
| (parser_set_handled): Exceptions; removed. | |
| (parser_set_file_number): Exceptions; removed. | |
| (stash_exceptions): Exceptions; removed. | |
| (parser_exception_prepare): Exceptions; removed. | |
| (parser_match_exception): Exceptions; eliminate blob. | |
| (parser_check_fatal_exception): Exceptions. | |
| (parser_push_exception): Create. | |
| (parser_pop_exception): Create. | |
| (mh_identical): Use refer_offset(). | |
| (mh_source_is_literalN): Likewise. | |
| (mh_dest_is_float): Likewise. | |
| (mh_numeric_display): Likewise. | |
| (mh_little_endian): Likewise. | |
| (mh_source_is_group): Likewise. | |
| (move_helper): Likewise. | |
| (binary_initial_from_float128): Formatting; change error message. | |
| (initial_from_float128): Change name to "initial_from_initial" | |
| (initial_from_initial): Add one byte to allocation for figconsts. | |
| (parser_symbol_add): Use initial_from_initial(). | |
| (parser_symbol_add): Eliminate unneeded logic around actually_create... | |
| * genapi.h: Exceptions. | |
| * genmath.cc (fast_add): Use refer_offset(). | |
| (fast_subtract): Likewise. | |
| (fast_multiply): Likewise. | |
| (fast_divide): Likewise. | |
| * genutil.cc: Exceptions; various global definitions. | |
| (get_integer_value): Comment. | |
| (get_data_offset_dest): Eliminate. | |
| (get_data_offset_source): Rename to get_data_offset(). | |
| (get_data_offset): Use refer_offset(). | |
| (get_binary_value): Likewise; eliminate use of literal_decl_node. | |
| (build_array_of_treeplets): Likewise. | |
| (build_array_of_fourplets): Likewise. | |
| (REFER_CHECK): Comment: | |
| (refer_refmod_length): Use get_any_capacity(); use refer_offset; | |
| set reflen to integer_one_node. | |
| (refer_offset_dest): Change name to refer_offset. | |
| (refer_offset): Use get_data_offset(). | |
| (refer_size_dest): Change name to refer_size(). | |
| (refer_size): Use get_any_capacity(). | |
| (refer_offset_source): Use refer_offset(). | |
| (refer_size_source): Likewise. | |
| (qualified_data_source): Likewise. | |
| (qualified_data_dest): Likewise. | |
| (qualified_data_location): Likewise. | |
| * genutil.h: Exceptions; changes to global declarations. | |
| * lexio.cc (likely_nist_file): Added to detect NIST file format. | |
| (cdftext::free_form_reference_format): Handle NIST file format. | |
| * parse.y: (strip_trailing_zeroes): Added. | |
| Changes for exceptions. | |
| * parse_ante.h (parse_error_inc): Likewise. | |
| (YYLLOC_DEFAULT): Likewise. | |
| (static_cast): Likewise. | |
| (is_cobol_word): Change to is_cobol_charset. | |
| (is_cobol_charset): Refine allowed characters. | |
| (require_numeric): Change to require integer. | |
| (require_integer): Likewise. | |
| (current_enabled_ecs): Exceptions. | |
| (is_integer_literal): Change interpretation. | |
| (procedure_division_ready): Exceptions. | |
| (statement_epilog): Likewise. | |
| (statement_begin): Likewise. | |
| * show_parse.h: Changes to GCOBOL_SHOW handling. | |
| * structs.cc: Add symbol_index to cblc_file_t structure. | |
| * symbols.cc (field_str): Repair .initial handling in FldLiteralN. | |
| * symbols.h (struct cbl_field_t): Eliminate literal_decl_node. | |
| (current_enabled_ecs): Exceptions. | |
| * util.cc (cbl_message): Add final newline to error message. | |
| (ftoupper): Added. | |
| (iso_cobol_word): Add list of ISO reserved words. | |
| * util.h (ftoupper): Added. | |
| 2025-05-02 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119364 | |
| * structs.h (cbl_enabled_exception_type_node): New variable | |
| declaration. | |
| * structs.cc (cbl_enabled_exception_type_node): New variable. | |
| (create_cbl_enabled_exception_t): New function. | |
| (create_our_type_nodes): Initialize cbl_enabled_exception_type_node | |
| using it. | |
| * genapi.cc (stash_exceptions): Don't compare padding bits to | |
| determine if the exceptions are the same as last time. Use | |
| cbl_enabled_exception_type_node for target size and field offsets | |
| and native_encode_expr to write each field into byte sequence. | |
| 2025-05-02 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119364 | |
| * util.cc (is_numeric_edited): Use HOST_SIZE_T_PRINT_UNSIGNED | |
| instead of "%zu" and cast corresponding argument to fmt_size_t. | |
| (normalize_picture): Use GCC_PRISZ instead of "z" and pass address | |
| of fmt_size_t var to sscanf and copy afterwards. | |
| (cbl_refer_t::str): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" and cast corresponding argument | |
| to fmt_size_t. | |
| (struct move_corresponding_field): Likewise. | |
| (valid_move): Likewise. | |
| (ambiguous_reference): Likewise. | |
| (parent_names): Likewise. | |
| (find_corresponding::find_corresponding): Likewise. | |
| (corresponding_fields): Likewise. | |
| (unique_stack::push): Likewise. | |
| (cobol_filename): Likewise. | |
| * lexio.cc: Include config.h first. | |
| (recognize_replacements): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" and cast corresponding argument | |
| to fmt_size_t. | |
| (check_source_format_directive): Likewise. | |
| (parse_replacing_pair): Use size_t(0) instead of 0UL in span_t | |
| construction. | |
| (parse_replace_pairs): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (parse_copy_directive): Likewise. | |
| (parse_replace_last_off): Likewise. | |
| (parse_replace_text): Likewise. | |
| (bytespan_t::append): Likewise. | |
| (cdftext::map_file): Likewise. | |
| (cdftext::process_file): Likewise. | |
| * symfind.cc (dump_symbol_map2): Likewise. | |
| (dump_symbol_map_value): Likewise. | |
| (build_symbol_map): Likewise. | |
| (is_name::dump_key): Likewise. | |
| (symbol_match2): Likewise. | |
| (symbol_find): Likewise. | |
| (symbol_find_of): Likewise. | |
| * cdf.y: Likewise. | |
| * symbols.cc: Include config.h first. | |
| (cbl_field_t::set_attr): Return uint64_t rather than size_t | |
| and replace size_t(attr) with uint64_t(attr). | |
| (cbl_field_t::clear_attr): Likewise. | |
| (symbol_field_capacity): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (symbol_find_odo_debug): Likewise. | |
| (symbols_dump): Likewise. | |
| (calculate_capacity): Likewise. | |
| (field_str): Likewise. | |
| (symbols_update): Likewise. | |
| (symbol_field_forward): Likewise. | |
| (numeric_group_attrs): Return uint64_t rather than size_t and | |
| change inherit variable to from size_t to uint64_t. | |
| (new_literal_add): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (temporaries_t::dump): Likewise. | |
| (cbl_label_t::str): Likewise. | |
| (symbol_label_add): Likewise. | |
| (symbol_program_add): Likewise. | |
| (symbol_forward_names): Likewise. | |
| (symbol_forward_to): Likewise. | |
| (cbl_file_key_t::deforward): Likewise. | |
| (cbl_file_key_t::str): Likewise. | |
| * gengen.cc (show_type): Use PRId64 instead of "ld". | |
| (gg_unique_in_function): Use HOST_SIZE_T_PRINT_DEC instead of | |
| %ld and cast corresponding argument to fmt_size_t. | |
| * scan.l: Add %top section with #include "config.h". | |
| * genmath.cc (parser_add): Use HOST_SIZE_T_PRINT_DEC instead of | |
| %ld and cast corresponding argument to fmt_size_t. | |
| (parser_subtract): Likewise. | |
| * parse.y: Include "config.h" before <fstream>. Use | |
| HOST_SIZE_T_PRINT_UNSIGNED instead of "%zu" and cast corresponding | |
| argument to fmt_size_t. Change type of sign_attrs, group_sign and | |
| type_implies from size_t to uint64_t. | |
| (perform_t::ec_labels_t::new_label): Use HOST_SIZE_T_PRINT_UNSIGNED | |
| instead of "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC | |
| instead of "%zd" and cast corresponding argument to fmt_size_t. | |
| (stringify_src_t::dump): Likewise. | |
| (lang_check_failed): Likewise. | |
| (numstr2i): Use GCC_PRISZ instead of "z" and pass address of temporary | |
| with fmt_size_t type to sscanf and then copy it over. | |
| (initialize_statement): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (dump_inspect_oper): Likewise. | |
| (new_literal): Likewise. | |
| (literal_subscripts_valid): Likewise. | |
| (eval_subject_t::label): Likewise. | |
| * genapi.cc (level_88_helper): Likewise. | |
| (parser_call_targets_dump): Likewise. | |
| (combined_name): Use HOST_SIZE_T_PRINT_DEC instead of "%ld" | |
| and cast corresponding argument to fmt_size_t. | |
| (section_label): Likewise. | |
| (paragraph_label): Likewise. | |
| (leave_procedure): Likewise. | |
| (parser_perform): Likewise. | |
| (parser_perform_times): Likewise. | |
| (internal_perform_through): Likewise. | |
| (internal_perform_through_times): Likewise. | |
| (parser_enter_program): Likewise. | |
| (parser_init_list_size): Likewise. | |
| (parser_init_list): Likewise. | |
| (psa_FldLiteralN): Likewise. | |
| (psa_FldBlob): Likewise. | |
| (parser_assign): Likewise. | |
| (parser_free): Pass p->field->name to dbgmsg. | |
| (parser_division): Use HOST_SIZE_T_PRINT_DEC instead of "%ld" | |
| and cast corresponding argument to fmt_size_t. | |
| (perform_outofline_before_until): Likewise. | |
| (perform_outofline_after_until): Likewise. | |
| (perform_outofline_testafter_varying): Likewise. | |
| (perform_outofline_before_varying): Likewise. | |
| (perform_inline_testbefore_varying): Likewise. | |
| (parser_inspect): Change n_operations parameter type from | |
| unsigned long to size_t. | |
| (parser_intrinsic_callv): Use HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (parser_bitop): Use HOST_SIZE_T_PRINT_HEX_PURE instead of | |
| "%lx" and cast corresponding argument to fmt_size_t. | |
| (parser_bitwise_op): Likewise. | |
| (parser_program_hierarchy): Use HOST_SIZE_T_PRINT_DEC instead of "%ld" | |
| and cast corresponding argument to fmt_size_t. | |
| (parser_set_handled): Use HOST_SIZE_T_PRINT_HEX_PURE instead of | |
| "%lx" and cast corresponding argument to fmt_size_t. | |
| (parser_set_numeric): Use HOST_SIZE_T_PRINT_DEC instead of "%ld" | |
| and cast corresponding argument to fmt_size_t. | |
| (psa_new_var_decl): Use HOST_SIZE_T_PRINT_DEC instead of "%ld" | |
| and cast corresponding argument to fmt_size_t. | |
| (parser_symbol_add): Use HOST_SIZE_T_PRINT_DEC instead of "%zd" | |
| or HOST_SIZE_T_PRINT_HEX_PURE instead of "%lx" and cast corresponding | |
| argument to fmt_size_t. | |
| * cdf-copy.cc: Include "config.h" first. | |
| * scan_ante.h (trim_location): Use HOST_SIZE_T_PRINT_UNSIGNED instead | |
| of "%zu" or "%d" and cast corresponding argument to fmt_size_t. | |
| * structs.cc (create_cblc_field_t): Use ULONGLONG instead of SIZE | |
| for "attr". | |
| * cbldiag.h (dbgmsg): Add ATTRIBUTE_PRINTF_1. | |
| * gcobolspec.cc (lang_specific_driver): Use HOST_SIZE_T_PRINT_DEC | |
| instead of "%ld" and cast corresponding argument to fmt_size_t. | |
| * parse_ante.h (literal_of): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (evaluate_elem_t::dump): Likewise. | |
| (arith_t::another_pair): Likewise. | |
| (current_t::end_program): Likewise. | |
| (file_add): Likewise. | |
| (implicit_paragraph): Likewise. | |
| (implicit_section): Likewise. | |
| (data_division_ready): Use HOST_SIZE_T_PRINT_DEC instead of "%d" | |
| and cast corresponding argument to fmt_size_t. | |
| * symbols.h (struct cbl_field_t): Change attr member type from size_t | |
| to uint64_t. | |
| (cbl_field_t::set_attr): Change return type from size_t to uint64_t. | |
| (cbl_field_t::clear_attr): Likewise. | |
| (function_descr_t::init): Use HOST_SIZE_T_PRINT_UNSIGNED instead of | |
| "%zu" or GCC_PRISZ instead of "z" or HOST_SIZE_T_PRINT_DEC instead | |
| of "%zd" and cast corresponding argument to fmt_size_t. | |
| (cbl_perform_tgt_t::dump): Likewise. | |
| (numeric_group_attrs): Change return type from size_t to uint64_t. | |
| 2025-04-24 Robert Dubner <rdubner@symas.com> | |
| * genapi.cc: (initialize_variable_internal): Change TRACE1 formatting. | |
| (create_and_call): Repair RETURN-CODE processing. | |
| (mh_source_is_group): Repair run-time IF type comparison. | |
| (psa_FldLiteralA): Change TRACE1 formatting. | |
| (parser_symbol_add): Eliminate unnecessary code. | |
| * genutil.cc: Eliminate SET_EXCEPTION_CODE macro. | |
| (get_data_offset_dest): Repair set_exception_code logic. | |
| (get_data_offset_source): Likewise. | |
| (get_binary_value): Likewise. | |
| (refer_refmod_length): Likewise. | |
| (refer_fill_depends): Likewise. | |
| (refer_offset_dest): Likewise. | |
| (refer_size_dest): Likewise. | |
| (refer_offset_source): Likewise. | |
| 2025-04-16 Bob Dubner <rdubner@symas.com> | |
| PR cobol/119759 | |
| * LICENSE: Deleted. | |
| 2025-04-15 Richard Biener <rguenther@suse.de> | |
| PR cobol/119302 | |
| * Make-lang.in (GCOBOLIO_INSTALL_NAME): Define. | |
| Use $(GCOBOLIO_INSTALL_NAME) for gcobol.3 manpage source | |
| upon install. | |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119776 | |
| * lang.opt (fmax-errors): Remove. | |
| * lang.opt.urls: Regenerate. | |
| * cobol1.cc (cobol_langhook_handle_option) <case OPT_fmax_errors>: | |
| Remove. | |
| * gcobol.1: Document -fmax-errors=nerror rather than | |
| -fmax-errors nerror. | |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119777 | |
| * lang.opt (include): Remove Var(cobol_include). | |
| * cobol1.cc (cobol_langhook_handle_option) <case OPT_include>: Use | |
| arg instead of cobol_include. | |
| 2025-04-14 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119777 | |
| * lang.opt (fsyntax-only): Remove. | |
| * lang.opt.urls: Regenerate. | |
| 2025-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| Simon Sobisch <simonsobisch@gnu.org> | |
| PR cobol/119217 | |
| * parse.y: Rename OVERFLOW to OVERFLOW_kw. | |
| Specify type name in %token directive. | |
| * scan.l: Likewise. | |
| * token_names.h: Regenerate. | |
| 2025-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR cobol/119217 | |
| * util.cc (class timespec_t): Rename to cbl_timespec. | |
| 2025-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| * genapi.cc: Include target.h. | |
| (section_label): Use ASM_COMMENT_START. | |
| (paragraph_label): Likewise. | |
| (parser_perform): Likewise. | |
| (internal_perform_through): Likewise. | |
| (hijack_for_development): Likewise. | |
| 2025-04-12 Bob Dubner <rdubner@symas.com> | |
| PR cobol/119694 | |
| * cbldiag.h: Eliminate getenv() calls. | |
| * cdf.y: Likewise. | |
| * cobol1.cc: Likewise. | |
| * except.cc: Likewise. | |
| * genapi.cc: Likewise. | |
| * lexio.cc: Likewise. | |
| * parse.y: Likewise. | |
| * scan_ante.h: Likewise. | |
| * show_parse.h: Likewise. | |
| * symbols.cc: Likewise. | |
| * symfind.cc: Likewise. | |
| * util.cc: Likewise. | |
| 2025-04-09 Bob Dubner <rdubner@symas.com> | |
| PR cobol/119682 | |
| * genapi.cc: (cobol_compare): Change the call to __gg__compare(). | |
| 2025-04-08 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119364 | |
| * genapi.cc (function_handle_from_name): Use sizeof_pointer. | |
| (parser_file_add): Use int_size_in_bytes(VOID_P) and | |
| int_size_in_bytes(int). | |
| (inspect_tally): Use int_size_in_bytes(VOID_P). | |
| (inspect_replacing): Likewise. | |
| (gg_array_of_field_pointers): Likewise. | |
| (gg_array_of_file_pointers): Likewise. | |
| (parser_set_pointers): Use sizeof_pointer. | |
| * cobol1.cc (create_our_type_nodes_init): Use | |
| int_size_in_bytes(SIZE_T) and int_size_in_bytes(VOID_P). | |
| * gengen.cc (gg_array_of_size_t): Use int_size_in_bytes(SIZE_T). | |
| (gg_array_of_bytes): Just use N, don't multiply it by | |
| sizeof(unsigned char). | |
| * parse.y: Include tree.h. Use int_size_in_bytes(ptr_type_node). | |
| 2025-04-07 Iain Sandoe <iain@sandoe.co.uk> | |
| * symbols.cc : Remove trailing // on standard_internal. | |
| (cbl_field_t::internalize): Print a warning if we fail to | |
| initialise iconv. | |
| 2025-04-07 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in (cobol/charmaps.cc, cobol/valconv.cc): Use a BRE | |
| only sed regex. | |
| 2025-04-07 Jakub Jelinek <jakub@redhat.com> | |
| PR web/119227 | |
| * Make-lang.in (GCOBOL_HTML_FILES): New variable. | |
| (cobol.install-html, cobol.html, cobol.srchtml): Use | |
| $(GCOBOL_HTML_FILES) instead of gcobol.html gcobol-io.html. | |
| (gcobol.html): Rename goal to ... | |
| ($(build_htmldir)/gcobol/gcobol.html): ... this. Run mkinstalldirs. | |
| (gcobol-io.html): Rename goal to ... | |
| ($(build_htmldir)/gcobol/gcobol-io.html): ... this. Run mkinstalldirs. | |
| 2025-04-06 Iain Sandoe <iain@sandoe.co.uk> | |
| PR cobol/119414 | |
| * gcobolspec.cc (append_rdynamic, | |
| append_allow_multiple_definition, append_fpic): Remove. | |
| (lang_specific_driver): Remove platform-specific command | |
| line option handling. | |
| 2025-04-05 Iain Sandoe <iain@sandoe.co.uk> | |
| * gcobolspec.cc (SPEC_FILE): New. | |
| (lang_specific_driver): Make the 'need libgcobol' flag global | |
| so that the prelink callback can use it. Libm use is now handled | |
| via the library spec. | |
| (lang_specific_pre_link): Include libgcobol.spec where needed. | |
| 2025-04-04 Bob Dubner <rdubner@symas.com> | |
| * cobol1.cc: Eliminate cobol_langhook_post_options. | |
| * symbols.cc: Definition of RETURN-CODE special register sets | |
| ::attr member to signable_e. | |
| 2025-04-04 Bob Dubner <rdubner@symas.com> | |
| * cobol1.cc: (cobol_langhook_post_options): Implemented in order to set | |
| flag_strict_aliasing to zero. | |
| * genapi.cc: (set_user_status): Add comment. | |
| (parser_intrinsic_subst): Expand SHOW_PARSE information. | |
| (psa_global): Change names of return-code and upsi globals, | |
| (psa_FldLiteralA): Set DECL_PRESERVE_P for FldLiteralA. | |
| * gengen.cc: (show_type): Add POINTER type. | |
| (gg_define_function_with_no_parameters): Set DECL_PRESERVE_P for COBOL- | |
| style nested programs. (gg_array_of_bytes): Fix bad cast. | |
| 2025-04-03 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119242 | |
| * genapi.cc (binary_initial_from_float128): Use | |
| native_encode_wide_int. | |
| 2025-04-02 Bob Dubner <rdubner@symas.com> | |
| PR cobol/119521 | |
| * genapi.cc: (parser_division): Change comment. | |
| (parser_symbol_add): Change intermediate_t handling. | |
| * parse.y: Multiple changes to new_alphanumeric() calls. | |
| * parse_ante.h: Establish named constant for date function | |
| calls. Change declaration of new_alphanumeric() function. | |
| * symbols.cc: (new_temporary_impl): Use named constant | |
| for default size of temporary alphanumerics. | |
| * symbols.h: Establish MAXIMUM_ALPHA_LENGTH constant. | |
| 2025-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * symfind.cc (finalize_symbol_map2): Use std::list::remove_if | |
| instead of std::remove_if. | |
| 2025-04-01 Bob Dubner <rdubner@symas.com> | |
| * genapi.cc: (section_label): Use xasprintf() instead of sprintf(). | |
| (paragraph_label): Likewise. (leave_procedure): Likewise. | |
| (find_procedure): Likewise. (parser_goto): Likewise. | |
| (parser_enter_file): Likewise. | |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in (cobol/charmaps.cc, cobol/valconv.cc): Used sed -e | |
| instead of cp and multiple sed -i commands. Always prefix libgcobol | |
| header names in #include directives with ../../libgcobol/ rather than | |
| something depending on $(LIB_SOURCE). | |
| 2025-03-28 Bob Dubner <rdubner@symas.com> | |
| * Make-lang.in: Eliminate libgcobol.h from gcc/cobol files. | |
| * genapi.cc: Eliminate "#include libgcobol.h". | |
| (parser_display_internal): Change comment. | |
| * genmath.cc: Eliminate "#include libgcobol.h". | |
| * genutil.cc: Likewise. | |
| (get_power_of_ten): Change comment. | |
| * structs.cc: Eliminate cblc_int128_type_node. | |
| * structs.h: Likewise. | |
| * symbols.h: Receive comment from libgcobol.h | |
| 2025-03-28 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in (cobol.srcextra): Use sed to turn | |
| .../gcc/cobol/*.{y,l,h,cc} and cobol/*.{y,l,h,cc} in #line directives | |
| into just *.{y,l,h,cc}. | |
| 2025-03-28 Richard Biener <rguenther@suse.de> | |
| PR bootstrap/119513 | |
| * Make-lang.in (cobol.srcextra): Use cp instead of ln, ignore | |
| errors. | |
| 2025-03-28 Bob Dubner <rdubner@symas.com> | |
| * genapi.cc: (create_and_call): cast unsigned char to int | |
| 2025-03-28 Richard Biener <rguenther@suse.de> | |
| * genapi.cc (initial_from_float128): Use native_encode_real. | |
| 2025-03-28 Iain Sandoe <iain@sandoe.co.uk> | |
| * cobol-system.h: Remove <cmath>. | |
| 2025-03-26 Jonathan Wakely <jwakely@redhat.com> | |
| * except.cc (cbl_enabled_exceptions_t::turn_on_off): Replace | |
| quadratic loop with a single pass. | |
| 2025-03-26 Bob Dubner <rdubner@symas.com> | |
| * genapi.cc: (parser_display_internal): Adjust for E vs e exponent notation. | |
| * parse.y: (literal_refmod_valid): Display correct value in error message. | |
| 2025-03-26 Jakub Jelinek <jakub@redhat.com> | |
| PR cobol/119242 | |
| * genutil.h (get_power_of_ten): Remove #pragma GCC diagnostic | |
| around declaration. | |
| * genapi.cc (psa_FldLiteralN): Change type of value from | |
| __int128 to FIXED_WIDE_INT(128). Remove #pragma GCC diagnostic | |
| around the declaration. Use wi::min_precision to determine | |
| minimum unsigned precision of the value. Use wi::neg_p instead | |
| of value < 0 tests and wi::set_bit_in_zero<FIXED_WIDE_INT(128)> | |
| to build sign bit. Handle field->data.capacity == 16 like | |
| 1, 2, 4 and 8, use wide_int_to_tree instead of build_int_cst. | |
| (mh_source_is_literalN): Remove #pragma GCC diagnostic around | |
| the definition. | |
| (binary_initial_from_float128): Likewise. | |
| * genutil.cc (get_power_of_ten): Remove #pragma GCC diagnostic | |
| before the definition. | |
| 2025-03-25 Bob Dubner <rdubner@symas.com> | |
| Richard Biener <rguenth@suse.de> | |
| Jakub Jelinek <jakub@redhat.com> | |
| James K. Lowden <jklowden@cobolworx.com> | |
| Robert Dubner <rdubher@symas.com> | |
| PR cobol/119241 | |
| * cdf.y: (cdfval_base_t::operator()): Return const. | |
| * cdfval.h: (struct cdfval_base_t): Add const cdfval_base_t& | |
| operator(). | |
| (struct cdfval_t): Add cdfval_t constructor. Change cdf_value | |
| definitions. | |
| * gcobolspec.cc (lang_specific_driver): Formatting fix. | |
| * genapi.cc: Include fold-const.h and realmpfr.h. | |
| (initialize_variable_internal): Use real_to_decimal instead of | |
| strfromf128. | |
| (get_binary_value_from_float): Use wide_int_to_tree instead of | |
| build_int_cst_type. | |
| (psa_FldLiteralN): Use fold_convert instead of strfromf128, | |
| real_from_string and build_real. | |
| (parser_display_internal): Rewritten to work on REAL_VALUE_TYPE | |
| rather than _Float128. | |
| (mh_source_is_literalN): Use FIXED_WIDE_INT(128) rather than | |
| __int128, wide_int_to_tree rather than build_int_cst_type, | |
| fold_convert rather than build_string_literal. | |
| (real_powi10): New function. | |
| (binary_initial_from_float128): Change type of last argument from | |
| _Float128 to REAL_VALUE_TYPE, process it using real.cc and mpfr | |
| APIs. | |
| (digits_from_float128): Likewise. | |
| (initial_from_float128): Make static. Remove value argument, add | |
| local REAL_VALUE_TYPE value variable instead, process it using | |
| real.cc and native_encode_expr APIs. | |
| (parser_symbol_add): Adjust initial_from_float128 caller. | |
| * genapi.h (initial_from_float128): Remove declaration. | |
| * genutil.cc (get_power_of_ten): Change return type from __int128 | |
| to FIXED_WIDE_INT(128), ditto for retval type, change type of pos | |
| from __int128 to unsigned long long. | |
| (scale_by_power_of_ten_N): Use wide_int_to_tree instead of | |
| build_int_cst_type. Use FIXED_WIDE_INT(128) instead of __int128 | |
| as power_of_ten variable type. | |
| (copy_little_endian_into_place): Likewise. | |
| * genutil.h (get_power_of_ten): Change return type from __int128 | |
| to FIXED_WIDE_INT(128). | |
| * parse.y (%union): Change type of float128 from _Float128 to | |
| REAL_VALUE_TYPE. | |
| (string_of): Change argument type from _Float128 to | |
| const REAL_VALUE_TYPE &, use real_to_decimal rather than | |
| strfromf128. Add another overload with tree argument type. | |
| (field: cdf): Use real_zerop rather than comparison against 0.0. | |
| (occurs_clause, const_value): Use real_to_integer. | |
| (value78): Use build_real and real_to_integer. | |
| (data_descr1): Use real_to_integer. | |
| (count): Use real_to_integer, real_from_integer and real_identical | |
| instead of direct comparison. | |
| (value_clause): Use real_from_string3 instead of num_str2i. Use | |
| real_identical instead of direct comparison. Use build_real. | |
| (allocate): Use real_isneg and real_iszero instead of <= 0 comparison. | |
| (move_tgt): Use real_to_integer, real_value_truncate, | |
| real_from_integer and real_identical instead of comparison of casts. | |
| (cce_expr): Use real_arithmetic and real_convert or real_value_negate | |
| instead of direct arithmetics on _Float128. | |
| (cce_factor): Use real_from_string3 instead of numstr2i. | |
| (literal_refmod_valid): Use real_to_integer. | |
| * symbols.cc (symbol_table_t::registers_t::registers_t): Formatting | |
| fix. | |
| (ERROR_FIELD): Likewise. | |
| (extend_66_capacity): Likewise. | |
| (cbl_occurs_t::subscript_ok): Use real_to_integer, real_from_integer | |
| and real_identical. | |
| * symbols.h (cbl_field_data_t::etc_t::value): Change type from | |
| _Float128 to tree. | |
| (cbl_field_data_t::etc_t::etc_t): Adjust defaulted argument value. | |
| (cbl_field_data_t::cbl_field_data_t): Formatting fix. Use etc() | |
| rather than etc(0). | |
| (cbl_field_data_t::value_of): Change return type from _Float128 to | |
| tree. | |
| (cbl_field_data_t::operator=): Change return and argument type from | |
| _Float128 to tree. | |
| (cbl_field_data_t::valify): Use real_from_string, real_value_truncate | |
| and build_real. | |
| (cbl_field_t::same_as): Use build_zero_cst instead of _Float128(0.0). | |
| 2025-03-24 Iain Sandoe <iain@sandoe.co.uk> | |
| * cdf-copy.cc: Move host include before system.h | |
| 2025-03-24 Andreas Schwab <schwab@suse.de> | |
| PR cobol/119390 | |
| * gcobolspec.cc (lang_specific_driver): Use pointer instead of | |
| copying into fixed array. | |
| 2025-03-21 Iain Sandoe <iain@sandoe.co.uk> | |
| * gcobolspec.cc (lang_specific_driver): Add libstdc++ | |
| for any link line. | |
| 2025-03-21 Iain Sandoe <iain@sandoe.co.uk> | |
| * gcobolspec.cc (add_arg_lib): Fix typo. | |
| (lang_specific_driver): Arrange to append both -lgcobol | |
| and -static-libgcobol for targets without | |
| HAVE_LD_STATIC_DYNAMIC. | |
| 2025-03-21 Jakub Jelinek <jakub@redhat.com> | |
| * parse.y: Rename COB_BLOCK to BLOCK_kw, COB_SIGNED to SIGNED_kw and | |
| COB_UNSIGNED to UNSIGNED_kw. | |
| * scan.l: Likewise. | |
| * token_names.h: Regenerate. | |
| 2025-03-21 Richard Biener <rguenther@suse.de> | |
| * symbols.cc (empty_float, empty_comp5, empty_literal, | |
| empty_conditional, debug_registers, special_registers): Move | |
| global cbl_field_t typed data to ... | |
| (symbol_table_init): ... local scope here. | |
| 2025-03-21 Richard Biener <rguenther@suse.de> | |
| PR cobol/119241 | |
| * symbols.h: Do not typedef tree. | |
| * cdf.y: Include coretypes.h and tree.h. | |
| * symbols.cc: Likewise. | |
| * symfind.cc: Likewise. | |
| * util.cc: Likewise. | |
| * parse.y: Include coretypes.h and tree.h where appropriate. | |
| Rename BLOCK to COB_BLOCK, SIGNED to COB_SIGNED, UNSIGNED | |
| to COB_UNSIGNED. | |
| * scan.l: Likewise. | |
| * token_names.h: Likewise. | |
| * cobol1.cc: Do not define HOWEVER_GCC_DEFINES_TREE. | |
| * except.cc: Likewise. | |
| * genapi.cc: Likewise. | |
| * gengen.cc: Likewise. | |
| * genmath.cc: Likewise. | |
| * genutil.cc: Likewise. | |
| * structs.cc: Likewise. | |
| 2025-03-20 Iain Sandoe <iain@sandoe.co.uk> | |
| * cdfval.h (struct cdfval_t): Overload long instead of int64_t. | |
| 2025-03-18 Iain Sandoe <iain@sandoe.co.uk> | |
| * gcobolspec.cc (append_rpath): Remove. | |
| (lang_specific_driver): Remove hard-wired rpath and library | |
| names. | |
| 2025-03-18 Iain Sandoe <iain@sandoe.co.uk> | |
| PR cobol/119301 | |
| * util.cc: Check for the availability of get_current_dir_name | |
| snf fall back to getcwd() if it is not present on the host. | |
| 2025-03-18 Richard Biener <rguenther@suse.de> | |
| * gengen.cc (gg_finalize_function): Dump to TDI_original. | |
| 2025-03-18 Bob Dubner <rdubner@symas.com> | |
| * cdf.y: Make compatible with C++14. | |
| * copybook.h: Likewise. | |
| * dts.h: Likewise. | |
| * except.cc: Likewise. | |
| * genapi.cc: Likewise. | |
| * genutil.cc: Likewise. | |
| * genutil.h: Likewise. | |
| * lexio.cc: Likewise. | |
| * parse.y: Likewise. | |
| * parse_ante.h: Likewise. | |
| * show_parse.h: Likewise. | |
| * symbols.cc: Likewise. | |
| * symbols.h: Likewise. | |
| * util.cc: Likewise. | |
| 2025-03-18 Matthias Klose <doko@ubuntu.com> | |
| * Make-lang.in (GCOBC_TARGET_INSTALL_NAME, gcobol-cross): New. | |
| (cobol.all.cross): Depend on gcobol-cross. | |
| (cobol.install-common): Adjust install for the cross build. | |
| (cobol.uninstall): Use *_INSTALL_NAME for uninstall. | |
| 2025-03-18 Iain Sandoe <iain@sandoe.co.uk> | |
| * util.cc (cbl_field_t::report_invalid_initial_value): Avoid | |
| auto here and specify const char *. | |
| 2025-03-18 Jose E. Marchesi <jose.marchesi@oracle.com> | |
| * cdf-copy.cc (copybook_elem_t::open_file): Use ldirname rather | |
| than dirname. | |
| 2025-03-18 Iain Sandoe <iain@sandoe.co.uk> | |
| * parse.y: Remove c++ header includes appearing after | |
| system.h. | |
| 2025-03-17 Bob Dubner <rdubner@symas.com> | |
| PR cobol/119213 | |
| * Make-lang.in: Eliminate CPPFLAGS= assignment. | |
| * cdf.y: Modify #includes that reference libgcobol. | |
| * cobol1.cc: Modify #includes that reference libgcobol. | |
| * except.cc: Modify #includes that reference libgcobol. | |
| * gcobolspec.cc: Modify #includes that reference libgcobol. | |
| * genapi.cc: Modify #includes that reference libgcobol. | |
| * gengen.cc: Modify #includes that reference libgcobol. | |
| * genmath.cc: Modify #includes that reference libgcobol. | |
| * genutil.cc: Modify #includes that reference libgcobol. | |
| * parse.y: Modify #includes that reference libgcobol. | |
| * scan.l: Modify #includes that reference libgcobol. | |
| * structs.cc: Modify #includes that reference libgcobol. | |
| * symbols.cc: Modify #includes that reference libgcobol. | |
| * symfind.cc: Modify #includes that reference libgcobol. | |
| * util.cc: Modify #includes that reference libgcobol. | |
| 2025-03-14 Robert Dubner <rdubner@symas.com> | |
| PR cobol/119214 | |
| * gengen.cc: applies if( !optimize ) test | |
| 2025-03-13 Matthias Klose <doko@ubuntu.com> | |
| * Make-lang.in (cobol.install-common, cobol.install-man): Honor | |
| GCOBOL_INSTALL_NAME. | |
| 2025-03-13 Richard Biener <rguenther@suse.de> | |
| PR cobol/119229 | |
| * gengen.cc (gg_declare_variable): Use DECL_EXTERNAL and | |
| drop TREE_STATIC for vs_external_reference. | |
| 2025-03-12 Mark Wielaard <mark@klomp.org> | |
| * lang.opt.urls: Regenerated. | |
| 2025-03-12 Simon Martin <simon@nasilyan.com> | |
| * Make-lang.in: Remove unnecessary CPPFLAGS update. | |
| 2025-03-12 Richard Biener <rguenther@suse.de> | |
| * Make-lang.in (lang_checks): Add check-cobol. | |
| 2025-03-11 Richard Biener <rguenther@suse.de> | |
| * gcobolspec.cc (lang_specific_driver): For OPT_print_* do | |
| not error on no input files. | |
| 2025-03-11 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in: Remove .exe extension from comments. | |
| (cobol.serial): Set to cobol1$(exeext). | |
| (cobol1$(exeext)): Depend on $(cobol.prev). Add | |
| LINK_PROGRESS calls before/after the link command. | |
| 2025-03-11 Jakub Jelinek <jakub@redhat.com> | |
| * Make-lang.in (cobol/parse.c, cobol/cdf.c, cobol/scan.c): Remove. | |
| (cobol/parse.cc, cobol/cdf.cc, cobol/scan.cc): New goals. | |
| (cobol/cdf.o): Depend on cobol/cdf.cc rather than cobol/cdf.c. | |
| (cobol/parse.o): Depend on cobol/parse.cc rather than cobol/parse.c. | |
| (cobol/scan.o): Depend on cobol/scan.cc rather than cobol/scan.c, | |
| on cobol/cdf.cc rather than cobol/cdf.c and on cobol/parse.cc rather | |
| than cobol/parse.c. | |
| (cobol.srcextra): Depend on cobol/parse.cc cobol/cdf.cc cobol/scan.cc | |
| rather than cobol/parse.c cobol/cdf.c cobol/scan.c. | |
| 2025-03-11 James K. Lowden <jklowden@symas.com> | |
| * LICENSE: New file. | |
| * Make-lang.in: New file. | |
| * config-lang.in: New file. | |
| * lang.opt: New file. | |
| * lang.opt.urls: New file. | |
| * cbldiag.h: New file. | |
| * cdfval.h: New file. | |
| * cobol-system.h: New file. | |
| * copybook.h: New file. | |
| * dts.h: New file. | |
| * exceptg.h: New file. | |
| * gengen.h: New file. | |
| * genmath.h: New file. | |
| * genutil.h: New file. | |
| * inspect.h: New file. | |
| * lang-specs.h: New file. | |
| * lexio.h: New file. | |
| * parse_ante.h: New file. | |
| * parse_util.h: New file. | |
| * scan_ante.h: New file. | |
| * scan_post.h: New file. | |
| * show_parse.h: New file. | |
| * structs.h: New file. | |
| * symbols.h: New file. | |
| * token_names.h: New file. | |
| * util.h: New file. | |
| * cdf-copy.cc: New file. | |
| * lexio.cc: New file. | |
| * scan.l: New file. | |
| * parse.y: New file. | |
| * genapi.cc: New file. | |
| * genapi.h: New file. | |
| * gengen.cc: New file. | |
| * genmath.cc: New file. | |
| * genutil.cc: New file. | |
| * cdf.y: New file. | |
| * cobol1.cc: New file. | |
| * convert.cc: New file. | |
| * except.cc: New file. | |
| * gcobolspec.cc: New file. | |
| * structs.cc: New file. | |
| * symbols.cc: New file. | |
| * symfind.cc: New file. | |
| * util.cc: New file. | |
| * gcobc: New file. | |
| * gcobol.1: New file. | |
| * gcobol.3: New file. | |
| * help.gen: New file. | |
| * udf/stored-char-length.cbl: New file. | |
| Copyright (C) 2025-2026 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |