https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122466
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by James K. Lowden <[email protected]>: https://gcc.gnu.org/g:7bb846ed7fde99fa4d423e5dfa3b9560191e98a2 commit r17-1594-g7bb846ed7fde99fa4d423e5dfa3b9560191e98a2 Author: James K. Lowden <[email protected]> Date: Tue Jun 16 11:15:46 2026 -0400 cobol: Use cdf namespace in CDF Bison parser output. Fixes PR 119215 LTO error by removing enumerated types and other names from the global namespace, and by deleting use of YYLTYPE. A single location type cbl_loc_t is used by both parsers. Also fixes PR 122466 using conditional compilation for non-POSIX symbols. Require Bison 3.8.2 for C++ output. The generated C++ uses iostreams to format error messages. The cdf.y file includes the iostream header and does not use any GCC header files. gcc/cobol/ChangeLog: * 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. libgcobol/ChangeLog: * posix/shim/open.cc (defined): Honor _GNU_SOURCE and _POSIX_C_SOURCE.
