mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 12:00:03 -05:00
ChangeLog: * MAINTAINERS: Rename .c names to .cc. contrib/ChangeLog: * filter-clang-warnings.py: Rename .c names to .cc. * gcc_update: Likewise. * paranoia.cc: Likewise. contrib/header-tools/ChangeLog: * README: Rename .c names to .cc. gcc/ChangeLog: * Makefile.in: Rename .c names to .cc. * alias.h: Likewise. * asan.cc: Likewise. * auto-profile.h: Likewise. * basic-block.h (struct basic_block_d): Likewise. * btfout.cc: Likewise. * builtins.cc (expand_builtin_longjmp): Likewise. (validate_arg): Likewise. (access_ref::offset_bounded): Likewise. * caller-save.cc (reg_restore_code): Likewise. (setup_save_areas): Likewise. * calls.cc (initialize_argument_information): Likewise. (expand_call): Likewise. (emit_library_call_value_1): Likewise. * cfg-flags.def (RTL): Likewise. (SIBCALL): Likewise. (CAN_FALLTHRU): Likewise. * cfganal.cc (post_order_compute): Likewise. * cfgcleanup.cc (try_simplify_condjump): Likewise. (merge_blocks_move_predecessor_nojumps): Likewise. (merge_blocks_move_successor_nojumps): Likewise. (merge_blocks_move): Likewise. (old_insns_match_p): Likewise. (try_crossjump_bb): Likewise. * cfgexpand.cc (expand_gimple_stmt): Likewise. * cfghooks.cc (split_block_before_cond_jump): Likewise. (profile_record_check_consistency): Likewise. * cfghooks.h: Likewise. * cfgrtl.cc (pass_free_cfg::execute): Likewise. (rtl_can_merge_blocks): Likewise. (try_redirect_by_replacing_jump): Likewise. (make_pass_outof_cfg_layout_mode): Likewise. (cfg_layout_can_merge_blocks_p): Likewise. * cgraph.cc (release_function_body): Likewise. (cgraph_node::get_fun): Likewise. * cgraph.h (struct cgraph_node): Likewise. (asmname_hasher::equal): Likewise. (cgraph_inline_failed_type): Likewise. (thunk_adjust): Likewise. (dump_callgraph_transformation): Likewise. (record_references_in_initializer): Likewise. (ipa_discover_variable_flags): Likewise. * cgraphclones.cc (GTY): Likewise. * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise. * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise. * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise. * collect2.cc (maybe_run_lto_and_relink): Likewise. * combine-stack-adj.cc: Likewise. * combine.cc (setup_incoming_promotions): Likewise. (combine_simplify_rtx): Likewise. (count_rtxs): Likewise. * common.opt: Likewise. * common/config/aarch64/aarch64-common.cc: Likewise. * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise. * common/config/avr/avr-common.cc: Likewise. * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise. * conditions.h: Likewise. * config.gcc: Likewise. * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise. * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise. (aarch64_get_extension_string_for_isa_flags): Likewise. * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise. * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise. (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise. (aarch64_option_valid_attribute_p): Likewise. (aarch64_short_vector_p): Likewise. (aarch64_float_const_representable_p): Likewise. * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise. (ASM_OUTPUT_POOL_EPILOGUE): Likewise. (GTY): Likewise. * config/aarch64/cortex-a57-fma-steering.cc: Likewise. * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise. * config/aarch64/t-aarch64: Likewise. * config/aarch64/x-aarch64: Likewise. * config/aarch64/x-darwin: Likewise. * config/alpha/alpha-protos.h: Likewise. * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise. * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise. (enum reg_class): Likewise. * config/alpha/alpha.md: Likewise. * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise. * config/alpha/x-alpha: Likewise. * config/arc/arc-protos.h (arc_eh_uses): Likewise. * config/arc/arc.cc (ARC_OPT): Likewise. (arc_ccfsm_advance): Likewise. (arc_arg_partial_bytes): Likewise. (conditionalize_nonjump): Likewise. * config/arc/arc.md: Likewise. * config/arc/builtins.def: Likewise. * config/arc/t-arc: Likewise. * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise. (arm_pragma_target_parse): Likewise. * config/arm/arm-protos.h (save_restore_target_globals): Likewise. (arm_cpu_cpp_builtins): Likewise. * config/arm/arm.cc (vfp3_const_double_index): Likewise. (shift_op): Likewise. (thumb2_final_prescan_insn): Likewise. (arm_final_prescan_insn): Likewise. (arm_asm_output_labelref): Likewise. (arm_small_register_classes_for_mode_p): Likewise. * config/arm/arm.h: Likewise. * config/arm/arm.md: Likewise. * config/arm/driver-arm.cc: Likewise. * config/arm/symbian.h: Likewise. * config/arm/t-arm: Likewise. * config/arm/thumb1.md: Likewise. * config/arm/x-arm: Likewise. * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise. * config/avr/avr-fixed.md: Likewise. * config/avr/avr-log.cc (avr_log_vadump): Likewise. * config/avr/avr-mcus.def: Likewise. * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise. * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise. * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise. * config/avr/avr.cc (avr_option_override): Likewise. (avr_build_builtin_va_list): Likewise. (avr_mode_dependent_address_p): Likewise. (avr_function_arg_advance): Likewise. (avr_asm_output_aligned_decl_common): Likewise. * config/avr/avr.h (RETURN_ADDR_RTX): Likewise. (SUPPORTS_INIT_PRIORITY): Likewise. * config/avr/avr.md: Likewise. * config/avr/builtins.def: Likewise. * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise. * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise. (main): Likewise. * config/avr/t-avr: Likewise. * config/bfin/bfin.cc (frame_related_constant_load): Likewise. * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise. * config/bpf/bpf.h (enum reg_class): Likewise. * config/bpf/t-bpf: Likewise. * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise. * config/cr16/cr16-protos.h: Likewise. * config/cris/cris.cc (cris_address_cost): Likewise. (cris_side_effect_mode_ok): Likewise. (cris_init_machine_status): Likewise. (cris_emit_movem_store): Likewise. * config/cris/cris.h (INDEX_REG_CLASS): Likewise. (enum reg_class): Likewise. (struct cum_args): Likewise. * config/cris/cris.opt: Likewise. * config/cris/sync.md: Likewise. * config/csky/csky.cc (csky_expand_prologue): Likewise. * config/darwin-c.cc: Likewise. * config/darwin-f.cc: Likewise. * config/darwin-sections.def (zobj_const_section): Likewise. * config/darwin.cc (output_objc_section_asm_op): Likewise. (fprintf): Likewise. * config/darwin.h (GTY): Likewise. * config/elfos.h: Likewise. * config/epiphany/epiphany-sched.md: Likewise. * config/epiphany/epiphany.cc (epiphany_function_value): Likewise. * config/epiphany/epiphany.h (GTY): Likewise. (NO_FUNCTION_CSE): Likewise. * config/epiphany/mode-switch-use.cc: Likewise. * config/epiphany/predicates.md: Likewise. * config/epiphany/t-epiphany: Likewise. * config/fr30/fr30-protos.h: Likewise. * config/frv/frv-protos.h: Likewise. * config/frv/frv.cc (TLS_BIAS): Likewise. * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. * config/ft32/ft32-protos.h: Likewise. * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise. * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise. * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise. * config/gcn/t-gcn-hsa: Likewise. * config/gcn/t-omp-device: Likewise. * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise. (same_cmp_following_p): Likewise. * config/h8300/h8300.cc (F): Likewise. * config/h8300/h8300.h (struct cum_arg): Likewise. (BRANCH_COST): Likewise. * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise. * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise. * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise. * config/i386/driver-i386.cc (detect_caches_intel): Likewise. * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise. * config/i386/i386-c.cc (ix86_target_macros): Likewise. * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise. * config/i386/i386-options.cc (ix86_set_func_type): Likewise. * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise. (ix86_register_pragmas): Likewise. (ix86_d_has_stdcall_convention): Likewise. (i386_pe_seh_init_sections): Likewise. * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise. (ix86_function_value_regno_p): Likewise. (ix86_compute_frame_layout): Likewise. (legitimize_pe_coff_symbol): Likewise. (output_pic_addr_const): Likewise. * config/i386/i386.h (defined): Likewise. (host_detect_local_cpu): Likewise. (CONSTANT_ADDRESS_P): Likewise. (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise. (struct machine_frame_state): Likewise. * config/i386/i386.md: Likewise. * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise. * config/i386/mmx.md: Likewise. * config/i386/sse.md: Likewise. * config/i386/t-cygming: Likewise. * config/i386/t-djgpp: Likewise. * config/i386/t-gnu-property: Likewise. * config/i386/t-i386: Likewise. * config/i386/t-intelmic: Likewise. * config/i386/t-omp-device: Likewise. * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise. (i386_pe_adjust_class_at_definition): Likewise. * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise. (i386_pe_mangle_decl_assembler_name): Likewise. (i386_pe_encode_section_info): Likewise. * config/i386/x-cygwin: Likewise. * config/i386/x-darwin: Likewise. * config/i386/x-i386: Likewise. * config/i386/x-mingw32: Likewise. * config/i386/x86-tune-sched-core.cc: Likewise. * config/i386/x86-tune.def: Likewise. * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise. * config/ia64/freebsd.h: Likewise. * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise. * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise. * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise. (ia64_secondary_reload_class): Likewise. (bundling): Likewise. * config/ia64/ia64.h: Likewise. * config/ia64/ia64.md: Likewise. * config/ia64/predicates.md: Likewise. * config/ia64/sysv4.h: Likewise. * config/ia64/t-ia64: Likewise. * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise. * config/iq2000/iq2000.md: Likewise. * config/linux.h (TARGET_HAS_BIONIC): Likewise. (if): Likewise. * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise. * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise. * config/m32c/t-m32c: Likewise. * config/m32r/m32r-protos.h: Likewise. * config/m32r/m32r.cc (m32r_print_operand): Likewise. * config/m32r/m32r.h: Likewise. * config/m32r/m32r.md: Likewise. * config/m68k/m68k-isas.def: Likewise. * config/m68k/m68k-microarchs.def: Likewise. * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise. (m68k_epilogue_uses): Likewise. * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise. (m68k_sched_adjust_cost): Likewise. (m68k_sched_md_init): Likewise. * config/m68k/m68k.h (__transfer_from_trampoline): Likewise. (enum m68k_function_kind): Likewise. * config/m68k/m68k.md: Likewise. * config/m68k/m68kemb.h: Likewise. * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise. * config/mcore/mcore-protos.h: Likewise. * config/mcore/mcore.cc (mcore_expand_insv): Likewise. (mcore_expand_prolog): Likewise. * config/mcore/mcore.h (TARGET_MCORE): Likewise. * config/mcore/mcore.md: Likewise. * config/microblaze/microblaze-protos.h: Likewise. * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise. (microblaze_function_prologue): Likewise. (microblaze_function_epilogue): Likewise. (microblaze_select_section): Likewise. (microblaze_asm_output_mi_thunk): Likewise. (microblaze_eh_return): Likewise. * config/microblaze/microblaze.h: Likewise. * config/microblaze/microblaze.md: Likewise. * config/microblaze/t-microblaze: Likewise. * config/mips/driver-native.cc: Likewise. * config/mips/loongson2ef.md: Likewise. * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise. * config/mips/mips.cc (mips_rtx_costs): Likewise. (mips_output_filename): Likewise. (mips_output_function_prologue): Likewise. (mips_output_function_epilogue): Likewise. (mips_output_mi_thunk): Likewise. * config/mips/mips.h: Likewise. * config/mips/mips.md: Likewise. * config/mips/t-mips: Likewise. * config/mips/x-native: Likewise. * config/mmix/mmix-protos.h: Likewise. * config/mmix/mmix.cc (mmix_option_override): Likewise. (mmix_dbx_register_number): Likewise. (mmix_expand_prologue): Likewise. * config/mmix/mmix.h: Likewise. * config/mmix/mmix.md: Likewise. * config/mmix/predicates.md: Likewise. * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise. (mn10300_legitimate_pic_operand_p): Likewise. * config/mn10300/mn10300.h (enum reg_class): Likewise. (NO_FUNCTION_CSE): Likewise. * config/moxie/moxie-protos.h: Likewise. * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise. * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise. * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise. (msp430_incoming_return_addr_rtx): Likewise. * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise. * config/msp430/t-msp430: Likewise. * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise. (nds32_rtx_costs_size_prefer): Likewise. (nds32_init_rtx_costs): Likewise. * config/nds32/nds32-doubleword.md: Likewise. * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise. (nds32_builtin_decl): Likewise. * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise. (enum nds32_isr_nested_type): Likewise. (enum reg_class): Likewise. * config/nds32/predicates.md: Likewise. * config/nds32/t-nds32: Likewise. * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise. * config/nvptx/nvptx-protos.h: Likewise. * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise. * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise. * config/nvptx/t-nvptx: Likewise. * config/nvptx/t-omp-device: Likewise. * config/pa/elf.h: Likewise. * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise. * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise. * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise. * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise. (pa_legitimize_reload_address): Likewise. (pa_can_use_return_insn): Likewise. * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise. (som_output_text_section_asm_op): Likewise. * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise. * config/pa/pa.md: Likewise. * config/pa/som.h: Likewise. * config/pa/t-pa: Likewise. * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise. * config/pdp11/pdp11.h: Likewise. * config/pdp11/pdp11.md: Likewise. * config/pdp11/t-pdp11: Likewise. * config/pru/pru.md: Likewise. * config/pru/t-pru: Likewise. * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise. (riscv_gpr_save_operation_p): Likewise. (riscv_d_register_target_info): Likewise. (riscv_init_builtins): Likewise. * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise. * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise. * config/riscv/t-riscv: Likewise. * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise. * config/rl78/t-rl78: Likewise. * config/rs6000/aix.h: Likewise. * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise. * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise. * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise. * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise. * config/rs6000/driver-rs6000.cc: Likewise. * config/rs6000/freebsd.h: Likewise. * config/rs6000/freebsd64.h: Likewise. * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise. * config/rs6000/rbtree.cc: Likewise. * config/rs6000/rbtree.h: Likewise. * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise. * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise. (rs6000_expand_builtin): Likewise. (rs6000_init_builtins): Likewise. * config/rs6000/rs6000-cpus.def: Likewise. * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise. * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise. (quad_address_offset_p): Likewise. * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise. (rs6000_emit_epilogue): Likewise. * config/rs6000/rs6000-overload.def: Likewise. * config/rs6000/rs6000-p8swap.cc: Likewise. * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise. (rs6000_const_f32_to_i32): Likewise. * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise. (rs6000_debug_legitimize_address): Likewise. (rs6000_mode_dependent_address): Likewise. (rs6000_adjust_priority): Likewise. (rs6000_c_mode_for_suffix): Likewise. * config/rs6000/rs6000.h (defined): Likewise. (LONG_DOUBLE_TYPE_SIZE): Likewise. * config/rs6000/rs6000.md: Likewise. * config/rs6000/sysv4.h: Likewise. * config/rs6000/t-linux: Likewise. * config/rs6000/t-linux64: Likewise. * config/rs6000/t-rs6000: Likewise. * config/rs6000/x-darwin: Likewise. * config/rs6000/x-darwin64: Likewise. * config/rs6000/x-rs6000: Likewise. * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise. * config/rx/rx.cc (rx_expand_builtin): Likewise. * config/s390/constraints.md: Likewise. * config/s390/driver-native.cc: Likewise. * config/s390/htmxlintrin.h: Likewise. * config/s390/s390-builtins.def (B_DEF): Likewise. (OB_DEF_VAR): Likewise. * config/s390/s390-builtins.h: Likewise. * config/s390/s390-c.cc: Likewise. * config/s390/s390-opts.h: Likewise. * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise. (s390_register_target_pragmas): Likewise. * config/s390/s390.cc (s390_init_builtins): Likewise. (s390_expand_plus_operand): Likewise. (s390_expand_atomic): Likewise. (s390_valid_target_attribute_inner_p): Likewise. * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise. * config/s390/s390.md: Likewise. * config/s390/t-s390: Likewise. * config/s390/vx-builtins.md: Likewise. * config/s390/x-native: Likewise. * config/sh/divtab-sh4-300.cc (main): Likewise. * config/sh/divtab-sh4.cc (main): Likewise. * config/sh/divtab.cc (main): Likewise. * config/sh/elf.h: Likewise. * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise. * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise. (sh_struct_value_rtx): Likewise. (sh_remove_reg_dead_or_unused_notes): Likewise. * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise. * config/sh/t-sh: Likewise. * config/sol2-protos.h (solaris_override_options): Likewise. * config/sol2.h: Likewise. * config/sparc/driver-sparc.cc: Likewise. * config/sparc/freebsd.h: Likewise. * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise. * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise. (sparc_asan_shadow_offset): Likewise. * config/sparc/sparc.h: Likewise. * config/sparc/sparc.md: Likewise. * config/sparc/t-sparc: Likewise. * config/sparc/x-sparc: Likewise. * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise. * config/t-darwin: Likewise. * config/t-dragonfly: Likewise. * config/t-freebsd: Likewise. * config/t-glibc: Likewise. * config/t-linux: Likewise. * config/t-netbsd: Likewise. * config/t-openbsd: Likewise. * config/t-pnt16-warn: Likewise. * config/t-sol2: Likewise. * config/t-vxworks: Likewise. * config/t-winnt: Likewise. * config/tilegx/t-tilegx: Likewise. * config/tilegx/tilegx-c.cc: Likewise. * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise. * config/tilegx/tilegx.md: Likewise. * config/tilepro/t-tilepro: Likewise. * config/tilepro/tilepro-c.cc: Likewise. * config/v850/t-v850: Likewise. * config/v850/v850-protos.h: Likewise. * config/v850/v850.cc (F): Likewise. * config/v850/v850.h (enum reg_class): Likewise. (SLOW_BYTE_ACCESS): Likewise. * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise. * config/vax/vax.h (enum reg_class): Likewise. * config/vax/vax.md: Likewise. * config/visium/visium.cc (visium_legitimate_address_p): Likewise. * config/visium/visium.h: Likewise. * config/vms/t-vms: Likewise. * config/vms/vms-crtlmap.map: Likewise. * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise. * config/vx-common.h: Likewise. * config/x-darwin: Likewise. * config/x-hpux: Likewise. * config/x-linux: Likewise. * config/x-netbsd: Likewise. * config/x-openbsd: Likewise. * config/x-solaris: Likewise. * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise. * config/xtensa/xtensa.cc (xtensa_option_override): Likewise. * config/xtensa/xtensa.h: Likewise. * configure.ac: Likewise. * context.cc: Likewise. * convert.h: Likewise. * coretypes.h: Likewise. * coverage.cc: Likewise. * coverage.h: Likewise. * cppdefault.h (struct default_include): Likewise. * cprop.cc (local_cprop_pass): Likewise. (one_cprop_pass): Likewise. * cse.cc (hash_rtx_cb): Likewise. (fold_rtx): Likewise. * ctfc.h (ctfc_get_num_vlen_bytes): Likewise. * data-streamer.h (bp_unpack_var_len_int): Likewise. (streamer_write_widest_int): Likewise. * dbgcnt.def: Likewise. * dbxout.cc (dbxout_early_global_decl): Likewise. (dbxout_common_check): Likewise. * dbxout.h: Likewise. * debug.h (struct gcc_debug_hooks): Likewise. (dump_go_spec_init): Likewise. * df-core.cc: Likewise. * df-scan.cc (df_insn_info_delete): Likewise. (df_insn_delete): Likewise. * df.h (debug_df_chain): Likewise. (can_move_insns_across): Likewise. * dfp.cc (decimal_from_binary): Likewise. * diagnostic-color.cc: Likewise. * diagnostic-event-id.h: Likewise. * diagnostic-show-locus.cc (test_one_liner_labels): Likewise. * diagnostic.cc (bt_callback): Likewise. (num_digits): Likewise. * doc/avr-mmcu.texi: Likewise. * doc/cfg.texi: Likewise. * doc/contrib.texi: Likewise. * doc/cppinternals.texi: Likewise. * doc/extend.texi: Likewise. * doc/generic.texi: Likewise. * doc/gimple.texi: Likewise. * doc/gty.texi: Likewise. * doc/invoke.texi: Likewise. * doc/loop.texi: Likewise. * doc/lto.texi: Likewise. * doc/match-and-simplify.texi: Likewise. * doc/md.texi: Likewise. * doc/optinfo.texi: Likewise. * doc/options.texi: Likewise. * doc/passes.texi: Likewise. * doc/plugins.texi: Likewise. * doc/rtl.texi: Likewise. * doc/sourcebuild.texi: Likewise. * doc/tm.texi: Likewise. * doc/tm.texi.in: Likewise. * doc/tree-ssa.texi: Likewise. * dojump.cc (do_jump): Likewise. * dojump.h: Likewise. * dumpfile.cc (test_impl_location): Likewise. (test_capture_of_dump_calls): Likewise. * dumpfile.h (enum dump_kind): Likewise. (class dump_location_t): Likewise. (dump_enabled_p): Likewise. (enable_rtl_dump_file): Likewise. (dump_combine_total_stats): Likewise. * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise. * dwarf2ctf.h (ctf_debug_finish): Likewise. * dwarf2out.cc (dwarf2out_begin_prologue): Likewise. (struct loc_descr_context): Likewise. (rtl_for_decl_location): Likewise. (gen_subprogram_die): Likewise. (gen_label_die): Likewise. (is_trivial_indirect_ref): Likewise. (dwarf2out_late_global_decl): Likewise. (dwarf_file_hasher::hash): Likewise. (dwarf2out_end_source_file): Likewise. (dwarf2out_define): Likewise. (dwarf2out_early_finish): Likewise. * dwarf2out.h (struct dw_fde_node): Likewise. (struct dw_discr_list_node): Likewise. (output_loc_sequence_raw): Likewise. * emit-rtl.cc (gen_raw_REG): Likewise. (maybe_set_max_label_num): Likewise. * emit-rtl.h (struct rtl_data): Likewise. * errors.cc (internal_error): Likewise. (trim_filename): Likewise. * et-forest.cc: Likewise. * except.cc (init_eh_for_function): Likewise. * explow.cc (promote_ssa_mode): Likewise. (get_dynamic_stack_size): Likewise. * explow.h: Likewise. * expmed.h: Likewise. * expr.cc (safe_from_p): Likewise. (expand_expr_real_2): Likewise. (expand_expr_real_1): Likewise. * file-prefix-map.cc (remap_filename): Likewise. * final.cc (app_enable): Likewise. (make_pass_compute_alignments): Likewise. (final_scan_insn_1): Likewise. (final_scan_insn): Likewise. * fixed-value.h (fixed_from_string): Likewise. * flag-types.h (NO_DEBUG): Likewise. (DWARF2_DEBUG): Likewise. (VMS_DEBUG): Likewise. (BTF_DEBUG): Likewise. (enum ctf_debug_info_levels): Likewise. * fold-const.cc (const_binop): Likewise. (fold_binary_loc): Likewise. (fold_checksum_tree): Likewise. * fp-test.cc: Likewise. * function.cc (expand_function_end): Likewise. * function.h (struct function): Likewise. * fwprop.cc (should_replace_address): Likewise. * gcc-main.cc: Likewise. * gcc-rich-location.h (class gcc_rich_location): Likewise. * gcc-symtab.h: Likewise. * gcc.cc (MIN_FATAL_STATUS): Likewise. (driver_handle_option): Likewise. (quote_spec_arg): Likewise. (driver::finalize): Likewise. * gcc.h (set_input): Likewise. * gcov-dump.cc: Likewise. * gcov.cc (solve_flow_graph): Likewise. * gcse-common.cc: Likewise. * gcse.cc (make_pass_rtl_hoist): Likewise. * genattr-common.cc: Likewise. * genattrtab.cc (min_fn): Likewise. (write_const_num_delay_slots): Likewise. * genautomata.cc: Likewise. * genconditions.cc (write_one_condition): Likewise. * genconstants.cc: Likewise. * genemit.cc (gen_exp): Likewise. * generic-match-head.cc: Likewise. * genextract.cc: Likewise. * gengenrtl.cc (always_void_p): Likewise. * gengtype-parse.cc (gtymarker_opt): Likewise. * gengtype-state.cc (state_writer::state_writer): Likewise. (write_state_trailer): Likewise. (equals_type_number): Likewise. (read_state): Likewise. * gengtype.cc (open_base_files): Likewise. (struct file_rule_st): Likewise. (header_dot_h_frul): Likewise. * gengtype.h: Likewise. * genmatch.cc (main): Likewise. * genmddeps.cc: Likewise. * genmodes.cc (emit_mode_inner): Likewise. (emit_mode_unit_size): Likewise. * genpeep.cc (gen_peephole): Likewise. * genpreds.cc (write_tm_preds_h): Likewise. * genrecog.cc (validate_pattern): Likewise. (write_header): Likewise. (main): Likewise. * gensupport.cc (change_subst_attribute): Likewise. (traverse_c_tests): Likewise. (add_predicate): Likewise. (init_predicate_table): Likewise. * gensupport.h (struct optab_pattern): Likewise. (get_num_insn_codes): Likewise. (maybe_eval_c_test): Likewise. (struct pred_data): Likewise. * ggc-internal.h: Likewise. * gimple-fold.cc (maybe_fold_reference): Likewise. (get_range_strlen_tree): Likewise. * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise. * gimple-low.cc: Likewise. * gimple-match-head.cc (directly_supported_p): Likewise. * gimple-pretty-print.h: Likewise. * gimple-ssa-sprintf.cc (format_percent): Likewise. (adjust_range_for_overflow): Likewise. * gimple-streamer.h: Likewise. * gimple.h (struct GTY): Likewise. (is_gimple_resx): Likewise. * gimplify.cc (gimplify_expr): Likewise. (gimplify_init_constructor): Likewise. (omp_construct_selector_matches): Likewise. (gimplify_omp_target_update): Likewise. (gimplify_omp_ordered): Likewise. (gimplify_va_arg_expr): Likewise. * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise. * haifa-sched.cc (increase_insn_priority): Likewise. (try_ready): Likewise. (sched_create_recovery_edges): Likewise. * ifcvt.cc (find_if_case_1): Likewise. (find_if_case_2): Likewise. * inchash.h: Likewise. * incpath.cc (add_env_var_paths): Likewise. * input.cc (dump_location_info): Likewise. (assert_loceq): Likewise. (test_lexer_string_locations_concatenation_1): Likewise. (test_lexer_string_locations_concatenation_2): Likewise. (test_lexer_string_locations_concatenation_3): Likewise. * input.h (BUILTINS_LOCATION): Likewise. (class string_concat_db): Likewise. * internal-fn.cc (expand_MUL_OVERFLOW): Likewise. (expand_LOOP_VECTORIZED): Likewise. * ipa-cp.cc (make_pass_ipa_cp): Likewise. * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise. (ipa_fn_summary_t::duplicate): Likewise. (make_pass_ipa_fn_summary): Likewise. * ipa-fnsummary.h (enum ipa_hints_vals): Likewise. * ipa-free-lang-data.cc (fld_simplified_type): Likewise. (free_lang_data_in_decl): Likewise. * ipa-inline.cc (compute_inlined_call_time): Likewise. (inline_always_inline_functions): Likewise. * ipa-inline.h (free_growth_caches): Likewise. (inline_account_function_p): Likewise. * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise. (modref_eaf_analysis::analyze_ssa_name): Likewise. * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise. (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise. * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise. (unadjusted_ptr_and_unit_offset): Likewise. * ipa-reference.cc (make_pass_ipa_reference): Likewise. * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise. * ipa-split.cc (consider_split): Likewise. * ipa-sra.cc (isra_read_node_info): Likewise. * ipa-utils.h (struct ipa_dfs_info): Likewise. (recursive_call_p): Likewise. (ipa_make_function_pure): Likewise. * ira-build.cc (ira_create_allocno): Likewise. (ira_flattening): Likewise. * ira-color.cc (do_coloring): Likewise. (update_curr_costs): Likewise. * ira-conflicts.cc (process_regs_for_copy): Likewise. * ira-int.h (struct ira_emit_data): Likewise. (ira_prohibited_mode_move_regs): Likewise. (ira_get_dup_out_num): Likewise. (ira_destroy): Likewise. (ira_tune_allocno_costs): Likewise. (ira_implicitly_set_insn_hard_regs): Likewise. (ira_build_conflicts): Likewise. (ira_color): Likewise. * ira-lives.cc (process_bb_node_lives): Likewise. * ira.cc (class ira_spilled_reg_stack_slot): Likewise. (setup_uniform_class_p): Likewise. (def_dominates_uses): Likewise. * ira.h (ira_nullify_asm_goto): Likewise. * langhooks.cc (lhd_post_options): Likewise. * langhooks.h (class substring_loc): Likewise. (struct lang_hooks_for_tree_inlining): Likewise. (struct lang_hooks_for_types): Likewise. (struct lang_hooks): Likewise. * libfuncs.h (synchronize_libfunc): Likewise. * loop-doloop.cc (doloop_condition_get): Likewise. * loop-init.cc (fix_loop_structure): Likewise. * loop-invariant.cc: Likewise. * lower-subreg.h: Likewise. * lra-constraints.cc (curr_insn_transform): Likewise. * lra-int.h (struct lra_insn_reg): Likewise. (lra_undo_inheritance): Likewise. (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise. (lra_split_hard_reg_for): Likewise. (lra_coalesce): Likewise. (lra_final_code_change): Likewise. * lra-spills.cc (lra_final_code_change): Likewise. * lra.cc (lra_process_new_insns): Likewise. * lto-compress.h (struct lto_compression_stream): Likewise. * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise. (write_symbol): Likewise. * lto-streamer.h (enum LTO_tags): Likewise. (lto_value_range_error): Likewise. (lto_append_block): Likewise. (lto_streamer_hooks_init): Likewise. (stream_read_tree_ref): Likewise. (lto_prepare_function_for_streaming): Likewise. (select_what_to_stream): Likewise. (omp_lto_input_declare_variant_alt): Likewise. (cl_optimization_stream_in): Likewise. * lto-wrapper.cc (append_compiler_options): Likewise. * machmode.def: Likewise. * machmode.h (struct int_n_data_t): Likewise. * main.cc (main): Likewise. * match.pd: Likewise. * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise. (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise. * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise. (make_pass_expand_omp_ssa): Likewise. * omp-low.cc (struct omp_context): Likewise. (struct omp_taskcopy_context): Likewise. (lower_omp): Likewise. * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise. (mask_name): Likewise. (omp_sese_dump_pars): Likewise. (worker_single_simple): Likewise. * omp-offload.cc (omp_finish_file): Likewise. (execute_oacc_loop_designation): Likewise. * optabs-query.cc (lshift_cheap_p): Likewise. * optc-gen.awk: Likewise. * optc-save-gen.awk: Likewise. * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise. * opts-common.cc: Likewise. * output.h (app_enable): Likewise. (output_operand_lossage): Likewise. (insn_current_reference_address): Likewise. (get_insn_template): Likewise. (output_quoted_string): Likewise. * pass_manager.h (struct register_pass_info): Likewise. * plugin.cc: Likewise. * plugin.def (PLUGIN_ANALYZER_INIT): Likewise. * plugin.h (invoke_plugin_callbacks): Likewise. * pointer-query.cc (handle_mem_ref): Likewise. * postreload-gcse.cc (alloc_mem): Likewise. * predict.h (enum prediction): Likewise. (add_reg_br_prob_note): Likewise. * prefix.h: Likewise. * profile.h (get_working_sets): Likewise. * read-md.cc: Likewise. * read-md.h (struct mapping): Likewise. (class md_reader): Likewise. (class noop_reader): Likewise. * read-rtl-function.cc (function_reader::create_function): Likewise. (function_reader::extra_parsing_for_operand_code_0): Likewise. * read-rtl.cc (initialize_iterators): Likewise. * real.cc: Likewise. * real.h (struct real_value): Likewise. (format_helper::format_helper): Likewise. (real_hash): Likewise. (real_can_shorten_arithmetic): Likewise. * recog.cc (struct target_recog): Likewise. (offsettable_nonstrict_memref_p): Likewise. (constrain_operands): Likewise. * recog.h (MAX_RECOG_ALTERNATIVES): Likewise. (which_op_alt): Likewise. (struct insn_gen_fn): Likewise. * reg-notes.def (REG_NOTE): Likewise. * reg-stack.cc: Likewise. * regs.h (reg_is_parm_p): Likewise. * regset.h: Likewise. * reload.cc (push_reload): Likewise. (find_reloads): Likewise. (find_reloads_address_1): Likewise. (find_replacement): Likewise. (refers_to_regno_for_reload_p): Likewise. (refers_to_mem_for_reload_p): Likewise. * reload.h (push_reload): Likewise. (deallocate_reload_reg): Likewise. * reload1.cc (emit_input_reload_insns): Likewise. * reorg.cc (relax_delay_slots): Likewise. * rtl.def (UNKNOWN): Likewise. (SEQUENCE): Likewise. (BARRIER): Likewise. (ASM_OPERANDS): Likewise. (EQ_ATTR_ALT): Likewise. * rtl.h (struct GTY): Likewise. (LABEL_NAME): Likewise. (LABEL_ALT_ENTRY_P): Likewise. (SUBREG_BYTE): Likewise. (get_stack_check_protect): Likewise. (dump_rtx_statistics): Likewise. (unwrap_const_vec_duplicate): Likewise. (subreg_promoted_mode): Likewise. (gen_lowpart_common): Likewise. (operand_subword): Likewise. (immed_wide_int_const): Likewise. (decide_function_section): Likewise. (active_insn_p): Likewise. (delete_related_insns): Likewise. (try_split): Likewise. (val_signbit_known_clear_p): Likewise. (simplifiable_subregs): Likewise. (set_insn_deleted): Likewise. (subreg_get_info): Likewise. (remove_free_EXPR_LIST_node): Likewise. (finish_subregs_of_mode): Likewise. (get_mem_attrs): Likewise. (lookup_constant_def): Likewise. (rtx_to_tree_code): Likewise. (hash_rtx): Likewise. (condjump_in_parallel_p): Likewise. (validate_subreg): Likewise. (make_compound_operation): Likewise. (schedule_ebbs): Likewise. (print_inline_rtx): Likewise. (fixup_args_size_notes): Likewise. (expand_dec): Likewise. (prepare_copy_insn): Likewise. (mark_elimination): Likewise. (valid_mode_changes_for_regno): Likewise. (make_debug_expr_from_rtl): Likewise. (delete_vta_debug_insns): Likewise. (simplify_using_condition): Likewise. (set_insn_locations): Likewise. (fatal_insn_not_found): Likewise. (word_register_operation_p): Likewise. * rtlanal.cc (get_call_fndecl): Likewise. (side_effects_p): Likewise. (subreg_nregs): Likewise. (rtx_cost): Likewise. (canonicalize_condition): Likewise. * rtlanal.h (rtx_properties::try_to_add_note): Likewise. * run-rtl-passes.cc (run_rtl_passes): Likewise. * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise. * sched-deps.cc (add_dependence_1): Likewise. * sched-ebb.cc (begin_move_insn): Likewise. (add_deps_for_risky_insns): Likewise. (advance_target_bb): Likewise. * sched-int.h (reemit_notes): Likewise. (struct _haifa_insn_data): Likewise. (HID): Likewise. (DEP_CANCELLED): Likewise. (debug_ds): Likewise. (number_in_ready): Likewise. (schedule_ebbs_finish): Likewise. (find_modifiable_mems): Likewise. * sched-rgn.cc (debug_rgn_dependencies): Likewise. * sel-sched-dump.cc (dump_lv_set): Likewise. * sel-sched-dump.h: Likewise. * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise. (setup_id_reg_sets): Likewise. (has_dependence_p): Likewise. (sel_num_cfg_preds_gt_1): Likewise. (bb_ends_ebb_p): Likewise. * sel-sched-ir.h (struct _list_node): Likewise. (struct idata_def): Likewise. (bb_next_bb): Likewise. * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise. (choose_best_pseudo_reg): Likewise. (verify_target_availability): Likewise. (can_speculate_dep_p): Likewise. (sel_rank_for_schedule): Likewise. * selftest-run-tests.cc (selftest::run_tests): Likewise. * selftest.h (class auto_fix_quotes): Likewise. * shrink-wrap.cc (handle_simple_exit): Likewise. * shrink-wrap.h: Likewise. * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise. (simplify_context::simplify_gen_vec_select): Likewise. * spellcheck-tree.h: Likewise. * spellcheck.h: Likewise. * statistics.h (struct function): Likewise. * stmt.cc (conditional_probability): Likewise. * stmt.h: Likewise. * stor-layout.h: Likewise. * streamer-hooks.h: Likewise. * stringpool.h: Likewise. * symtab.cc (symbol_table::change_decl_assembler_name): Likewise. * target.def (HOOK_VECTOR_END): Likewise. (type.): Likewise. * target.h (union cumulative_args_t): Likewise. (by_pieces_ninsns): Likewise. (class predefined_function_abi): Likewise. * targhooks.cc (default_translate_mode_attribute): Likewise. * timevar.def: Likewise. * timevar.h (class timer): Likewise. * toplev.h (enable_rtl_dump_file): Likewise. * trans-mem.cc (collect_bb2reg): Likewise. * tree-call-cdce.cc (gen_conditions_for_pow): Likewise. * tree-cfg.cc (remove_bb): Likewise. (verify_gimple_debug): Likewise. (remove_edge_and_dominated_blocks): Likewise. (push_fndecl): Likewise. * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise. * tree-complex.cc (expand_complex_multiplication): Likewise. (expand_complex_div_straight): Likewise. * tree-core.h (enum tree_index): Likewise. (enum operand_equal_flag): Likewise. * tree-eh.cc (honor_protect_cleanup_actions): Likewise. * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise. * tree-inline.cc (initialize_inlined_parameters): Likewise. * tree-inline.h (force_value_to_type): Likewise. * tree-nested.cc (get_chain_decl): Likewise. (walk_all_functions): Likewise. * tree-object-size.h: Likewise. * tree-outof-ssa.cc: Likewise. * tree-parloops.cc (create_parallel_loop): Likewise. * tree-pretty-print.cc (print_generic_expr_to_str): Likewise. (dump_generic_node): Likewise. * tree-profile.cc (tree_profiling): Likewise. * tree-sra.cc (maybe_add_sra_candidate): Likewise. * tree-ssa-address.cc: Likewise. * tree-ssa-alias.cc: Likewise. * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise. (dump_alias_stats): Likewise. * tree-ssa-ccp.cc: Likewise. * tree-ssa-coalesce.h: Likewise. * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise. * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise. * tree-ssa-loop-unswitch.cc: Likewise. * tree-ssa-math-opts.cc: Likewise. * tree-ssa-operands.cc (class operands_scanner): Likewise. * tree-ssa-pre.cc: Likewise. * tree-ssa-reassoc.cc (optimize_ops_list): Likewise. (debug_range_entry): Likewise. * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise. * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise. * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise. (equal_mem_array_ref_p): Likewise. * tree-ssa-strlen.cc (is_strlen_related_p): Likewise. * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise. * tree-ssa-tail-merge.cc (stmt_local_def): Likewise. * tree-ssa-ter.h: Likewise. * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise. * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise. * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise. (write_ts_block_tree_pointers): Likewise. * tree-streamer.h (struct streamer_tree_cache_d): Likewise. (streamer_read_tree_bitfields): Likewise. (streamer_write_integer_cst): Likewise. * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise. (vect_synth_mult_by_constant): Likewise. * tree-vect-stmts.cc (vectorizable_operation): Likewise. * tree-vectorizer.cc: Likewise. * tree-vectorizer.h (class auto_purge_vect_location): Likewise. (vect_update_inits_of_drs): Likewise. (vect_get_mask_type_for_stmt): Likewise. (vect_rgroup_iv_might_wrap_p): Likewise. (cse_and_gimplify_to_preheader): Likewise. (vect_free_slp_tree): Likewise. (vect_pattern_recog): Likewise. (vect_stmt_dominates_stmt_p): Likewise. * tree.cc (initialize_tree_contains_struct): Likewise. (need_assembler_name_p): Likewise. (type_with_interoperable_signedness): Likewise. * tree.def (SWITCH_EXPR): Likewise. * tree.h (TYPE_SYMTAB_ADDRESS): Likewise. (poly_int_tree_p): Likewise. (inlined_function_outer_scope_p): Likewise. (tree_code_for_canonical_type_merging): Likewise. * value-prof.cc: Likewise. * value-prof.h (get_nth_most_common_value): Likewise. (find_func_by_profile_id): Likewise. * value-range.cc (vrp_operand_equal_p): Likewise. * value-range.h: Likewise. * var-tracking.cc: Likewise. * varasm.cc (default_function_section): Likewise. (function_section_1): Likewise. (assemble_variable): Likewise. (handle_vtv_comdat_section): Likewise. * vec.h (struct vec_prefix): Likewise. * vmsdbgout.cc (full_name): Likewise. * vtable-verify.cc: Likewise. * vtable-verify.h (struct vtv_graph_node): Likewise. * xcoffout.cc: Likewise. * xcoffout.h (DEBUG_SYMS_TEXT): Likewise. gcc/ada/ChangeLog: * Make-generated.in: Rename .c names to .cc. * adaint.c: Likewise. * ctrl_c.c (dummy_handler): Likewise. * gcc-interface/Makefile.in: Likewise. * gcc-interface/config-lang.in: Likewise. * gcc-interface/decl.cc (concat_name): Likewise. (init_gnat_decl): Likewise. * gcc-interface/gigi.h (concat_name): Likewise. (init_gnat_utils): Likewise. (build_call_raise_range): Likewise. (gnat_mark_addressable): Likewise. (gnat_protect_expr): Likewise. (gnat_rewrite_reference): Likewise. * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Likewise. * gcc-interface/utils.cc (GTY): Likewise. (add_deferred_type_context): Likewise. (init_gnat_utils): Likewise. * gcc-interface/utils2.cc (gnat_stable_expr_p): Likewise. (gnat_protect_expr): Likewise. (gnat_stabilize_reference_1): Likewise. (gnat_rewrite_reference): Likewise. * gsocket.h: Likewise. * init.cc (__gnat_error_handler): Likewise. * libgnarl/s-intman.ads: Likewise. * libgnarl/s-osinte__android.ads: Likewise. * libgnarl/s-osinte__darwin.ads: Likewise. * libgnarl/s-osinte__hpux.ads: Likewise. * libgnarl/s-osinte__linux.ads: Likewise. * libgnarl/s-osinte__qnx.ads: Likewise. * libgnarl/s-taskin.ads: Likewise. * rtfinal.cc: Likewise. * s-oscons-tmplt.c (CND): Likewise. * set_targ.ads: Likewise. gcc/analyzer/ChangeLog: * analyzer.cc (is_special_named_call_p): Rename .c names to .cc. (is_named_call_p): Likewise. * region-model-asm.cc (deterministic_p): Likewise. * region.cc (field_region::get_relative_concrete_offset): Likewise. * sm-malloc.cc (method_p): Likewise. * supergraph.cc (superedge::dump_dot): Likewise. gcc/c-family/ChangeLog: * c-ada-spec.cc: Rename .c names to .cc. * c-ada-spec.h: Likewise. * c-common.cc (c_build_vec_convert): Likewise. (warning_candidate_p): Likewise. * c-common.h (enum rid): Likewise. (build_real_imag_expr): Likewise. (finish_label_address_expr): Likewise. (c_get_substring_location): Likewise. (c_build_bind_expr): Likewise. (conflict_marker_get_final_tok_kind): Likewise. (c_parse_error): Likewise. (check_missing_format_attribute): Likewise. (invalid_array_size_error): Likewise. (warn_for_multistatement_macros): Likewise. (build_attr_access_from_parms): Likewise. * c-cppbuiltin.cc (c_cpp_builtins): Likewise. * c-format.cc: Likewise. * c-gimplify.cc (c_gimplify_expr): Likewise. * c-indentation.h: Likewise. * c-objc.h (objc_prop_attr_kind_for_rid): Likewise. * c-omp.cc (c_omp_predetermined_mapping): Likewise. * c-opts.cc (c_common_post_options): Likewise. (set_std_cxx23): Likewise. * c-pragma.cc (handle_pragma_redefine_extname): Likewise. * c-pretty-print.h: Likewise. gcc/c/ChangeLog: * Make-lang.in: Rename .c names to .cc. * c-convert.cc: Likewise. * c-decl.cc (struct lang_identifier): Likewise. (pop_scope): Likewise. (finish_decl): Likewise. * c-objc-common.h (GCC_C_OBJC_COMMON): Likewise. * c-parser.cc (c_parser_skip_to_end_of_block_or_statement): Likewise. * c-parser.h (GCC_C_PARSER_H): Likewise. * c-tree.h (c_keyword_starts_typename): Likewise. (finish_declspecs): Likewise. (c_get_alias_set): Likewise. (enum c_oracle_request): Likewise. (tag_exists_p): Likewise. (set_c_expr_source_range): Likewise. * c-typeck.cc (c_common_type): Likewise. (c_finish_omp_clauses): Likewise. * config-lang.in: Likewise. gcc/cp/ChangeLog: * Make-lang.in: Rename .c names to .cc. * config-lang.in: Likewise. * constexpr.cc (cxx_eval_constant_expression): Likewise. * coroutines.cc (morph_fn_to_coro): Likewise. * cp-gimplify.cc (cp_gimplify_expr): Likewise. * cp-lang.cc (struct lang_hooks): Likewise. (get_template_argument_pack_elems_folded): Likewise. * cp-objcp-common.cc (cp_tree_size): Likewise. (cp_unit_size_without_reusable_padding): Likewise. (pop_file_scope): Likewise. (cp_pushdecl): Likewise. * cp-objcp-common.h (GCC_CP_OBJCP_COMMON): Likewise. (cxx_simulate_record_decl): Likewise. * cp-tree.h (struct named_label_entry): Likewise. (current_function_return_value): Likewise. (more_aggr_init_expr_args_p): Likewise. (get_function_version_dispatcher): Likewise. (common_enclosing_class): Likewise. (strip_fnptr_conv): Likewise. (current_decl_namespace): Likewise. (do_aggregate_paren_init): Likewise. (cp_check_const_attributes): Likewise. (qualified_name_lookup_error): Likewise. (generic_targs_for): Likewise. (mark_exp_read): Likewise. (is_global_friend): Likewise. (maybe_reject_flexarray_init): Likewise. (module_token_lang): Likewise. (handle_module_option): Likewise. (literal_integer_zerop): Likewise. (build_extra_args): Likewise. (build_if_nonnull): Likewise. (maybe_check_overriding_exception_spec): Likewise. (finish_omp_target_clauses): Likewise. (maybe_warn_zero_as_null_pointer_constant): Likewise. (cxx_print_error_function): Likewise. (decl_in_std_namespace_p): Likewise. (merge_exception_specifiers): Likewise. (mangle_module_global_init): Likewise. (cxx_block_may_fallthru): Likewise. (fold_builtin_source_location): Likewise. (enum cp_oracle_request): Likewise. (subsumes): Likewise. (cp_finish_injected_record_type): Likewise. (vtv_build_vtable_verify_fndecl): Likewise. (cp_tree_c_finish_parsing): Likewise. * cvt.cc (diagnose_ref_binding): Likewise. (convert_to_void): Likewise. (convert_force): Likewise. (type_promotes_to): Likewise. * decl.cc (make_unbound_class_template_raw): Likewise. (cxx_init_decl_processing): Likewise. (check_class_member_definition_namespace): Likewise. (cxx_maybe_build_cleanup): Likewise. * decl2.cc (maybe_emit_vtables): Likewise. * error.cc (dump_function_name): Likewise. * init.cc (is_class_type): Likewise. (build_new_1): Likewise. * lang-specs.h: Likewise. * method.cc (make_alias_for_thunk): Likewise. * module.cc (specialization_add): Likewise. (module_state::read_cluster): Likewise. * name-lookup.cc (check_extern_c_conflict): Likewise. * name-lookup.h (struct cxx_binding): Likewise. * parser.cc (cp_parser_identifier): Likewise. * parser.h (struct cp_parser): Likewise. * pt.cc (has_value_dependent_address): Likewise. (push_tinst_level_loc): Likewise. * semantics.cc (finish_omp_clauses): Likewise. (finish_omp_atomic): Likewise. * tree.cc (cp_save_expr): Likewise. (cp_free_lang_data): Likewise. * typeck.cc (cp_common_type): Likewise. (strip_array_domain): Likewise. (rationalize_conditional_expr): Likewise. (check_return_expr): Likewise. * vtable-class-hierarchy.cc: Likewise. gcc/d/ChangeLog: * d-gimplify.cc: Rename .c names to .cc. * d-incpath.cc: Likewise. * lang-specs.h: Likewise. gcc/fortran/ChangeLog: * check.cc (gfc_check_all_any): Rename .c names to .cc. * class.cc (find_intrinsic_vtab): Likewise. * config-lang.in: Likewise. * cpp.cc (cpp_define_builtins): Likewise. * data.cc (get_array_index): Likewise. * decl.cc (match_clist_expr): Likewise. (get_proc_name): Likewise. (gfc_verify_c_interop_param): Likewise. (gfc_get_pdt_instance): Likewise. (gfc_match_formal_arglist): Likewise. (gfc_get_type_attr_spec): Likewise. * dependency.cc: Likewise. * error.cc (gfc_format_decoder): Likewise. * expr.cc (check_restricted): Likewise. (gfc_build_default_init_expr): Likewise. * f95-lang.cc: Likewise. * gfc-internals.texi: Likewise. * gfortran.h (enum match): Likewise. (enum procedure_type): Likewise. (enum oacc_routine_lop): Likewise. (gfc_get_pdt_instance): Likewise. (gfc_end_source_files): Likewise. (gfc_mpz_set_hwi): Likewise. (gfc_get_option_string): Likewise. (gfc_find_sym_in_expr): Likewise. (gfc_errors_to_warnings): Likewise. (gfc_real_4_kind): Likewise. (gfc_free_finalizer): Likewise. (gfc_sym_get_dummy_args): Likewise. (gfc_check_intrinsic_standard): Likewise. (gfc_free_case_list): Likewise. (gfc_resolve_oacc_routines): Likewise. (gfc_check_vardef_context): Likewise. (gfc_free_association_list): Likewise. (gfc_implicit_pure_function): Likewise. (gfc_ref_dimen_size): Likewise. (gfc_compare_actual_formal): Likewise. (gfc_resolve_wait): Likewise. (gfc_dt_upper_string): Likewise. (gfc_generate_module_code): Likewise. (gfc_delete_bbt): Likewise. (debug): Likewise. (gfc_build_block_ns): Likewise. (gfc_dep_difference): Likewise. (gfc_invalid_null_arg): Likewise. (gfc_is_finalizable): Likewise. (gfc_fix_implicit_pure): Likewise. (gfc_is_size_zero_array): Likewise. (gfc_is_reallocatable_lhs): Likewise. * gfortranspec.cc: Likewise. * interface.cc (compare_actual_expr): Likewise. * intrinsic.cc (add_functions): Likewise. * iresolve.cc (gfc_resolve_matmul): Likewise. (gfc_resolve_alarm_sub): Likewise. * iso-c-binding.def: Likewise. * lang-specs.h: Likewise. * libgfortran.h (GFC_STDERR_UNIT_NUMBER): Likewise. * match.cc (gfc_match_label): Likewise. (gfc_match_symbol): Likewise. (match_derived_type_spec): Likewise. (copy_ts_from_selector_to_associate): Likewise. * match.h (gfc_match_call): Likewise. (gfc_get_common): Likewise. (gfc_match_omp_end_single): Likewise. (gfc_match_volatile): Likewise. (gfc_match_bind_c): Likewise. (gfc_match_literal_constant): Likewise. (gfc_match_init_expr): Likewise. (gfc_match_array_constructor): Likewise. (gfc_match_end_interface): Likewise. (gfc_match_print): Likewise. (gfc_match_expr): Likewise. * matchexp.cc (next_operator): Likewise. * mathbuiltins.def: Likewise. * module.cc (free_true_name): Likewise. * openmp.cc (gfc_resolve_omp_parallel_blocks): Likewise. (gfc_omp_save_and_clear_state): Likewise. * parse.cc (parse_union): Likewise. (set_syms_host_assoc): Likewise. * resolve.cc (resolve_actual_arglist): Likewise. (resolve_elemental_actual): Likewise. (check_host_association): Likewise. (resolve_typebound_function): Likewise. (resolve_typebound_subroutine): Likewise. (gfc_resolve_expr): Likewise. (resolve_assoc_var): Likewise. (resolve_typebound_procedures): Likewise. (resolve_equivalence_derived): Likewise. * simplify.cc (simplify_bound): Likewise. * symbol.cc (gfc_set_default_type): Likewise. (gfc_add_ext_attribute): Likewise. * target-memory.cc (gfc_target_interpret_expr): Likewise. * target-memory.h (gfc_target_interpret_expr): Likewise. * trans-array.cc (gfc_get_cfi_dim_sm): Likewise. (gfc_conv_shift_descriptor_lbound): Likewise. (gfc_could_be_alias): Likewise. (gfc_get_dataptr_offset): Likewise. * trans-const.cc: Likewise. * trans-decl.cc (trans_function_start): Likewise. (gfc_trans_deferred_vars): Likewise. (generate_local_decl): Likewise. (gfc_generate_function_code): Likewise. * trans-expr.cc (gfc_vptr_size_get): Likewise. (gfc_trans_class_array_init_assign): Likewise. (POWI_TABLE_SIZE): Likewise. (gfc_conv_procedure_call): Likewise. (gfc_trans_arrayfunc_assign): Likewise. * trans-intrinsic.cc (gfc_conv_intrinsic_len): Likewise. (gfc_conv_intrinsic_loc): Likewise. (conv_intrinsic_event_query): Likewise. * trans-io.cc (gfc_build_st_parameter): Likewise. * trans-openmp.cc (gfc_omp_check_optional_argument): Likewise. (gfc_omp_unshare_expr_r): Likewise. (gfc_trans_omp_array_section): Likewise. (gfc_trans_omp_clauses): Likewise. * trans-stmt.cc (trans_associate_var): Likewise. (gfc_trans_deallocate): Likewise. * trans-stmt.h (gfc_trans_class_init_assign): Likewise. (gfc_trans_deallocate): Likewise. (gfc_trans_oacc_declare): Likewise. * trans-types.cc: Likewise. * trans-types.h (enum gfc_packed): Likewise. * trans.cc (N_): Likewise. (trans_code): Likewise. * trans.h (gfc_build_compare_string): Likewise. (gfc_conv_expr_type): Likewise. (gfc_trans_deferred_vars): Likewise. (getdecls): Likewise. (gfc_get_array_descr_info): Likewise. (gfc_omp_firstprivatize_type_sizes): Likewise. (GTY): Likewise. gcc/go/ChangeLog: * config-lang.in: Rename .c names to .cc. * go-backend.cc: Likewise. * go-lang.cc: Likewise. * gospec.cc: Likewise. * lang-specs.h: Likewise. gcc/jit/ChangeLog: * config-lang.in: Rename .c names to .cc. * docs/_build/texinfo/libgccjit.texi: Likewise. * docs/internals/index.rst: Likewise. * jit-builtins.cc (builtins_manager::make_builtin_function): Likewise. * jit-playback.cc (fold_const_var): Likewise. (playback::context::~context): Likewise. (new_field): Likewise. (new_bitfield): Likewise. (new_compound_type): Likewise. (playback::compound_type::set_fields): Likewise. (global_set_init_rvalue): Likewise. (load_blob_in_ctor): Likewise. (new_global_initialized): Likewise. (double>): Likewise. (new_string_literal): Likewise. (as_truth_value): Likewise. (build_call): Likewise. (playback::context::build_cast): Likewise. (new_array_access): Likewise. (new_field_access): Likewise. (dereference): Likewise. (postprocess): Likewise. (add_jump): Likewise. (add_switch): Likewise. (build_goto_operands): Likewise. (playback::context::read_dump_file): Likewise. (init_types): Likewise. * jit-recording.cc (recording::context::get_int_type): Likewise. * jit-recording.h: Likewise. * libgccjit.cc (compatible_types): Likewise. (gcc_jit_context_acquire): Likewise. (gcc_jit_context_release): Likewise. (gcc_jit_context_new_child_context): Likewise. (gcc_jit_type_as_object): Likewise. (gcc_jit_context_get_type): Likewise. (gcc_jit_context_get_int_type): Likewise. (gcc_jit_type_get_pointer): Likewise. (gcc_jit_type_get_const): Likewise. (gcc_jit_type_get_volatile): Likewise. (gcc_jit_type_dyncast_array): Likewise. (gcc_jit_type_is_bool): Likewise. (gcc_jit_type_is_pointer): Likewise. (gcc_jit_type_is_integral): Likewise. (gcc_jit_type_dyncast_vector): Likewise. (gcc_jit_type_is_struct): Likewise. (gcc_jit_vector_type_get_num_units): Likewise. (gcc_jit_vector_type_get_element_type): Likewise. (gcc_jit_type_unqualified): Likewise. (gcc_jit_type_dyncast_function_ptr_type): Likewise. (gcc_jit_function_type_get_return_type): Likewise. (gcc_jit_function_type_get_param_count): Likewise. (gcc_jit_function_type_get_param_type): Likewise. (gcc_jit_context_new_array_type): Likewise. (gcc_jit_context_new_field): Likewise. (gcc_jit_field_as_object): Likewise. (gcc_jit_context_new_struct_type): Likewise. (gcc_jit_struct_as_type): Likewise. (gcc_jit_struct_set_fields): Likewise. (gcc_jit_struct_get_field_count): Likewise. (gcc_jit_context_new_union_type): Likewise. (gcc_jit_context_new_function_ptr_type): Likewise. (gcc_jit_param_as_rvalue): Likewise. (gcc_jit_context_new_function): Likewise. (gcc_jit_function_get_return_type): Likewise. (gcc_jit_function_dump_to_dot): Likewise. (gcc_jit_block_get_function): Likewise. (gcc_jit_global_set_initializer_rvalue): Likewise. (gcc_jit_rvalue_get_type): Likewise. (gcc_jit_context_new_rvalue_from_int): Likewise. (gcc_jit_context_one): Likewise. (gcc_jit_context_new_rvalue_from_double): Likewise. (gcc_jit_context_null): Likewise. (gcc_jit_context_new_string_literal): Likewise. (valid_binary_op_p): Likewise. (gcc_jit_context_new_binary_op): Likewise. (gcc_jit_context_new_comparison): Likewise. (gcc_jit_context_new_call): Likewise. (is_valid_cast): Likewise. (gcc_jit_context_new_cast): Likewise. (gcc_jit_object_get_context): Likewise. (gcc_jit_object_get_debug_string): Likewise. (gcc_jit_lvalue_access_field): Likewise. (gcc_jit_rvalue_access_field): Likewise. (gcc_jit_rvalue_dereference_field): Likewise. (gcc_jit_rvalue_dereference): Likewise. (gcc_jit_lvalue_get_address): Likewise. (gcc_jit_lvalue_set_tls_model): Likewise. (gcc_jit_lvalue_set_link_section): Likewise. (gcc_jit_function_new_local): Likewise. (gcc_jit_block_add_eval): Likewise. (gcc_jit_block_add_assignment): Likewise. (is_bool): Likewise. (gcc_jit_block_end_with_conditional): Likewise. (gcc_jit_block_add_comment): Likewise. (gcc_jit_block_end_with_jump): Likewise. (gcc_jit_block_end_with_return): Likewise. (gcc_jit_block_end_with_void_return): Likewise. (case_range_validator::case_range_validator): Likewise. (case_range_validator::validate): Likewise. (case_range_validator::get_wide_int): Likewise. (gcc_jit_block_end_with_switch): Likewise. (gcc_jit_context_set_str_option): Likewise. (gcc_jit_context_set_int_option): Likewise. (gcc_jit_context_set_bool_option): Likewise. (gcc_jit_context_set_bool_allow_unreachable_blocks): Likewise. (gcc_jit_context_set_bool_use_external_driver): Likewise. (gcc_jit_context_add_command_line_option): Likewise. (gcc_jit_context_add_driver_option): Likewise. (gcc_jit_context_enable_dump): Likewise. (gcc_jit_context_compile): Likewise. (gcc_jit_context_compile_to_file): Likewise. (gcc_jit_context_set_logfile): Likewise. (gcc_jit_context_dump_reproducer_to_file): Likewise. (gcc_jit_context_get_first_error): Likewise. (gcc_jit_context_get_last_error): Likewise. (gcc_jit_result_get_code): Likewise. (gcc_jit_result_get_global): Likewise. (gcc_jit_rvalue_set_bool_require_tail_call): Likewise. (gcc_jit_type_get_aligned): Likewise. (gcc_jit_type_get_vector): Likewise. (gcc_jit_function_get_address): Likewise. (gcc_jit_version_patchlevel): Likewise. (gcc_jit_block_add_extended_asm): Likewise. (gcc_jit_extended_asm_as_object): Likewise. (gcc_jit_extended_asm_set_volatile_flag): Likewise. (gcc_jit_extended_asm_set_inline_flag): Likewise. (gcc_jit_extended_asm_add_output_operand): Likewise. (gcc_jit_extended_asm_add_input_operand): Likewise. (gcc_jit_extended_asm_add_clobber): Likewise. * notes.txt: Likewise. gcc/lto/ChangeLog: * config-lang.in: Rename .c names to .cc. * lang-specs.h: Likewise. * lto-common.cc (gimple_register_canonical_type_1): Likewise. * lto-common.h: Likewise. * lto-dump.cc (lto_main): Likewise. * lto-lang.cc (handle_fnspec_attribute): Likewise. (lto_getdecls): Likewise. (lto_init): Likewise. * lto.cc (lto_main): Likewise. * lto.h: Likewise. gcc/objc/ChangeLog: * Make-lang.in: Rename .c names to .cc. * config-lang.in: Likewise. * lang-specs.h: Likewise. * objc-act.cc (objc_build_component_ref): Likewise. (objc_copy_binfo): Likewise. (lookup_method_in_hash_lists): Likewise. (objc_finish_foreach_loop): Likewise. * objc-act.h (objc_common_init_ts): Likewise. * objc-gnu-runtime-abi-01.cc: Likewise. * objc-lang.cc (struct lang_hooks): Likewise. * objc-map.cc: Likewise. * objc-next-runtime-abi-01.cc (generate_objc_symtab_decl): Likewise. * objc-runtime-shared-support.cc: Likewise. * objc-runtime-shared-support.h (build_protocol_initializer): Likewise. gcc/objcp/ChangeLog: * Make-lang.in: Rename .c names to .cc. * config-lang.in: Likewise. * lang-specs.h: Likewise. * objcp-decl.cc (objcp_end_compound_stmt): Likewise. * objcp-lang.cc (struct lang_hooks): Likewise. gcc/po/ChangeLog: * EXCLUDES: Rename .c names to .cc. libcpp/ChangeLog: * Makefile.in: Rename .c names to .cc. * charset.cc (convert_escape): Likewise. * directives.cc (directive_diagnostics): Likewise. (_cpp_handle_directive): Likewise. (lex_macro_node): Likewise. * include/cpplib.h (struct _cpp_file): Likewise. (PURE_ZERO): Likewise. (cpp_defined): Likewise. (cpp_error_at): Likewise. (cpp_forall_identifiers): Likewise. (cpp_compare_macros): Likewise. (cpp_get_converted_source): Likewise. (cpp_read_state): Likewise. (cpp_directive_only_process): Likewise. (struct cpp_decoded_char): Likewise. * include/line-map.h (enum lc_reason): Likewise. (enum location_aspect): Likewise. * include/mkdeps.h: Likewise. * init.cc (cpp_destroy): Likewise. (cpp_finish): Likewise. * internal.h (struct cpp_reader): Likewise. (_cpp_defined_macro_p): Likewise. (_cpp_backup_tokens_direct): Likewise. (_cpp_destroy_hashtable): Likewise. (_cpp_has_header): Likewise. (_cpp_expand_op_stack): Likewise. (_cpp_commit_buff): Likewise. (_cpp_restore_special_builtin): Likewise. (_cpp_bracket_include): Likewise. (_cpp_replacement_text_len): Likewise. (ufputs): Likewise. * line-map.cc (linemap_macro_loc_to_exp_point): Likewise. (linemap_check_files_exited): Likewise. (line_map_new_raw): Likewise. * traditional.cc (enum ls): Likewise.
1568 lines
55 KiB
C++
1568 lines
55 KiB
C++
/* Definitions for CPP library.
|
|
Copyright (C) 1995-2022 Free Software Foundation, Inc.
|
|
Written by Per Bothner, 1994-95.
|
|
|
|
This program is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by the
|
|
Free Software Foundation; either version 3, or (at your option) any
|
|
later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>.
|
|
|
|
In other words, you are welcome to use, share and improve this program.
|
|
You are forbidden to forbid anyone else to use, share and improve
|
|
what you give them. Help stamp out software-hoarding! */
|
|
#ifndef LIBCPP_CPPLIB_H
|
|
#define LIBCPP_CPPLIB_H
|
|
|
|
#include <sys/types.h>
|
|
#include "symtab.h"
|
|
#include "line-map.h"
|
|
|
|
typedef struct cpp_reader cpp_reader;
|
|
typedef struct cpp_buffer cpp_buffer;
|
|
typedef struct cpp_options cpp_options;
|
|
typedef struct cpp_token cpp_token;
|
|
typedef struct cpp_string cpp_string;
|
|
typedef struct cpp_hashnode cpp_hashnode;
|
|
typedef struct cpp_macro cpp_macro;
|
|
typedef struct cpp_callbacks cpp_callbacks;
|
|
typedef struct cpp_dir cpp_dir;
|
|
|
|
struct _cpp_file;
|
|
|
|
/* The first three groups, apart from '=', can appear in preprocessor
|
|
expressions (+= and -= are used to indicate unary + and - resp.).
|
|
This allows a lookup table to be implemented in _cpp_parse_expr.
|
|
|
|
The first group, to CPP_LAST_EQ, can be immediately followed by an
|
|
'='. The lexer needs operators ending in '=', like ">>=", to be in
|
|
the same order as their counterparts without the '=', like ">>".
|
|
|
|
See the cpp_operator table optab in expr.cc if you change the order or
|
|
add or remove anything in the first group. */
|
|
|
|
#define TTYPE_TABLE \
|
|
OP(EQ, "=") \
|
|
OP(NOT, "!") \
|
|
OP(GREATER, ">") /* compare */ \
|
|
OP(LESS, "<") \
|
|
OP(PLUS, "+") /* math */ \
|
|
OP(MINUS, "-") \
|
|
OP(MULT, "*") \
|
|
OP(DIV, "/") \
|
|
OP(MOD, "%") \
|
|
OP(AND, "&") /* bit ops */ \
|
|
OP(OR, "|") \
|
|
OP(XOR, "^") \
|
|
OP(RSHIFT, ">>") \
|
|
OP(LSHIFT, "<<") \
|
|
\
|
|
OP(COMPL, "~") \
|
|
OP(AND_AND, "&&") /* logical */ \
|
|
OP(OR_OR, "||") \
|
|
OP(QUERY, "?") \
|
|
OP(COLON, ":") \
|
|
OP(COMMA, ",") /* grouping */ \
|
|
OP(OPEN_PAREN, "(") \
|
|
OP(CLOSE_PAREN, ")") \
|
|
TK(EOF, NONE) \
|
|
OP(EQ_EQ, "==") /* compare */ \
|
|
OP(NOT_EQ, "!=") \
|
|
OP(GREATER_EQ, ">=") \
|
|
OP(LESS_EQ, "<=") \
|
|
OP(SPACESHIP, "<=>") \
|
|
\
|
|
/* These two are unary + / - in preprocessor expressions. */ \
|
|
OP(PLUS_EQ, "+=") /* math */ \
|
|
OP(MINUS_EQ, "-=") \
|
|
\
|
|
OP(MULT_EQ, "*=") \
|
|
OP(DIV_EQ, "/=") \
|
|
OP(MOD_EQ, "%=") \
|
|
OP(AND_EQ, "&=") /* bit ops */ \
|
|
OP(OR_EQ, "|=") \
|
|
OP(XOR_EQ, "^=") \
|
|
OP(RSHIFT_EQ, ">>=") \
|
|
OP(LSHIFT_EQ, "<<=") \
|
|
/* Digraphs together, beginning with CPP_FIRST_DIGRAPH. */ \
|
|
OP(HASH, "#") /* digraphs */ \
|
|
OP(PASTE, "##") \
|
|
OP(OPEN_SQUARE, "[") \
|
|
OP(CLOSE_SQUARE, "]") \
|
|
OP(OPEN_BRACE, "{") \
|
|
OP(CLOSE_BRACE, "}") \
|
|
/* The remainder of the punctuation. Order is not significant. */ \
|
|
OP(SEMICOLON, ";") /* structure */ \
|
|
OP(ELLIPSIS, "...") \
|
|
OP(PLUS_PLUS, "++") /* increment */ \
|
|
OP(MINUS_MINUS, "--") \
|
|
OP(DEREF, "->") /* accessors */ \
|
|
OP(DOT, ".") \
|
|
OP(SCOPE, "::") \
|
|
OP(DEREF_STAR, "->*") \
|
|
OP(DOT_STAR, ".*") \
|
|
OP(ATSIGN, "@") /* used in Objective-C */ \
|
|
\
|
|
TK(NAME, IDENT) /* word */ \
|
|
TK(AT_NAME, IDENT) /* @word - Objective-C */ \
|
|
TK(NUMBER, LITERAL) /* 34_be+ta */ \
|
|
\
|
|
TK(CHAR, LITERAL) /* 'char' */ \
|
|
TK(WCHAR, LITERAL) /* L'char' */ \
|
|
TK(CHAR16, LITERAL) /* u'char' */ \
|
|
TK(CHAR32, LITERAL) /* U'char' */ \
|
|
TK(UTF8CHAR, LITERAL) /* u8'char' */ \
|
|
TK(OTHER, LITERAL) /* stray punctuation */ \
|
|
\
|
|
TK(STRING, LITERAL) /* "string" */ \
|
|
TK(WSTRING, LITERAL) /* L"string" */ \
|
|
TK(STRING16, LITERAL) /* u"string" */ \
|
|
TK(STRING32, LITERAL) /* U"string" */ \
|
|
TK(UTF8STRING, LITERAL) /* u8"string" */ \
|
|
TK(OBJC_STRING, LITERAL) /* @"string" - Objective-C */ \
|
|
TK(HEADER_NAME, LITERAL) /* <stdio.h> in #include */ \
|
|
\
|
|
TK(CHAR_USERDEF, LITERAL) /* 'char'_suffix - C++-0x */ \
|
|
TK(WCHAR_USERDEF, LITERAL) /* L'char'_suffix - C++-0x */ \
|
|
TK(CHAR16_USERDEF, LITERAL) /* u'char'_suffix - C++-0x */ \
|
|
TK(CHAR32_USERDEF, LITERAL) /* U'char'_suffix - C++-0x */ \
|
|
TK(UTF8CHAR_USERDEF, LITERAL) /* u8'char'_suffix - C++-0x */ \
|
|
TK(STRING_USERDEF, LITERAL) /* "string"_suffix - C++-0x */ \
|
|
TK(WSTRING_USERDEF, LITERAL) /* L"string"_suffix - C++-0x */ \
|
|
TK(STRING16_USERDEF, LITERAL) /* u"string"_suffix - C++-0x */ \
|
|
TK(STRING32_USERDEF, LITERAL) /* U"string"_suffix - C++-0x */ \
|
|
TK(UTF8STRING_USERDEF,LITERAL) /* u8"string"_suffix - C++-0x */ \
|
|
\
|
|
TK(COMMENT, LITERAL) /* Only if output comments. */ \
|
|
/* SPELL_LITERAL happens to DTRT. */ \
|
|
TK(MACRO_ARG, NONE) /* Macro argument. */ \
|
|
TK(PRAGMA, NONE) /* Only for deferred pragmas. */ \
|
|
TK(PRAGMA_EOL, NONE) /* End-of-line for deferred pragmas. */ \
|
|
TK(PADDING, NONE) /* Whitespace for -E. */
|
|
|
|
#define OP(e, s) CPP_ ## e,
|
|
#define TK(e, s) CPP_ ## e,
|
|
enum cpp_ttype
|
|
{
|
|
TTYPE_TABLE
|
|
N_TTYPES,
|
|
|
|
/* A token type for keywords, as opposed to ordinary identifiers. */
|
|
CPP_KEYWORD,
|
|
|
|
/* Positions in the table. */
|
|
CPP_LAST_EQ = CPP_LSHIFT,
|
|
CPP_FIRST_DIGRAPH = CPP_HASH,
|
|
CPP_LAST_PUNCTUATOR= CPP_ATSIGN,
|
|
CPP_LAST_CPP_OP = CPP_LESS_EQ
|
|
};
|
|
#undef OP
|
|
#undef TK
|
|
|
|
/* C language kind, used when calling cpp_create_reader. */
|
|
enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X,
|
|
CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11, CLK_STDC17,
|
|
CLK_STDC2X,
|
|
CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
|
|
CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17,
|
|
CLK_GNUCXX20, CLK_CXX20, CLK_GNUCXX23, CLK_CXX23,
|
|
CLK_ASM};
|
|
|
|
/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
|
|
struct GTY(()) cpp_string {
|
|
unsigned int len;
|
|
const unsigned char *text;
|
|
};
|
|
|
|
/* Flags for the cpp_token structure. */
|
|
#define PREV_WHITE (1 << 0) /* If whitespace before this token. */
|
|
#define DIGRAPH (1 << 1) /* If it was a digraph. */
|
|
#define STRINGIFY_ARG (1 << 2) /* If macro argument to be stringified. */
|
|
#define PASTE_LEFT (1 << 3) /* If on LHS of a ## operator. */
|
|
#define NAMED_OP (1 << 4) /* C++ named operators. */
|
|
#define PREV_FALLTHROUGH (1 << 5) /* On a token preceeded by FALLTHROUGH
|
|
comment. */
|
|
#define BOL (1 << 6) /* Token at beginning of line. */
|
|
#define PURE_ZERO (1 << 7) /* Single 0 digit, used by the C++ frontend,
|
|
set in c-lex.cc. */
|
|
#define SP_DIGRAPH (1 << 8) /* # or ## token was a digraph. */
|
|
#define SP_PREV_WHITE (1 << 9) /* If whitespace before a ##
|
|
operator, or before this token
|
|
after a # operator. */
|
|
#define NO_EXPAND (1 << 10) /* Do not macro-expand this token. */
|
|
#define PRAGMA_OP (1 << 11) /* _Pragma token. */
|
|
|
|
/* Specify which field, if any, of the cpp_token union is used. */
|
|
|
|
enum cpp_token_fld_kind {
|
|
CPP_TOKEN_FLD_NODE,
|
|
CPP_TOKEN_FLD_SOURCE,
|
|
CPP_TOKEN_FLD_STR,
|
|
CPP_TOKEN_FLD_ARG_NO,
|
|
CPP_TOKEN_FLD_TOKEN_NO,
|
|
CPP_TOKEN_FLD_PRAGMA,
|
|
CPP_TOKEN_FLD_NONE
|
|
};
|
|
|
|
/* A macro argument in the cpp_token union. */
|
|
struct GTY(()) cpp_macro_arg {
|
|
/* Argument number. */
|
|
unsigned int arg_no;
|
|
/* The original spelling of the macro argument token. */
|
|
cpp_hashnode *
|
|
GTY ((nested_ptr (union tree_node,
|
|
"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
|
|
"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
|
|
spelling;
|
|
};
|
|
|
|
/* An identifier in the cpp_token union. */
|
|
struct GTY(()) cpp_identifier {
|
|
/* The canonical (UTF-8) spelling of the identifier. */
|
|
cpp_hashnode *
|
|
GTY ((nested_ptr (union tree_node,
|
|
"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
|
|
"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
|
|
node;
|
|
/* The original spelling of the identifier. */
|
|
cpp_hashnode *
|
|
GTY ((nested_ptr (union tree_node,
|
|
"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
|
|
"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
|
|
spelling;
|
|
};
|
|
|
|
/* A preprocessing token. This has been carefully packed and should
|
|
occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
|
|
struct GTY(()) cpp_token {
|
|
|
|
/* Location of first char of token, together with range of full token. */
|
|
location_t src_loc;
|
|
|
|
ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
|
|
unsigned short flags; /* flags - see above */
|
|
|
|
union cpp_token_u
|
|
{
|
|
/* An identifier. */
|
|
struct cpp_identifier GTY ((tag ("CPP_TOKEN_FLD_NODE"))) node;
|
|
|
|
/* Inherit padding from this token. */
|
|
cpp_token * GTY ((tag ("CPP_TOKEN_FLD_SOURCE"))) source;
|
|
|
|
/* A string, or number. */
|
|
struct cpp_string GTY ((tag ("CPP_TOKEN_FLD_STR"))) str;
|
|
|
|
/* Argument no. (and original spelling) for a CPP_MACRO_ARG. */
|
|
struct cpp_macro_arg GTY ((tag ("CPP_TOKEN_FLD_ARG_NO"))) macro_arg;
|
|
|
|
/* Original token no. for a CPP_PASTE (from a sequence of
|
|
consecutive paste tokens in a macro expansion). */
|
|
unsigned int GTY ((tag ("CPP_TOKEN_FLD_TOKEN_NO"))) token_no;
|
|
|
|
/* Caller-supplied identifier for a CPP_PRAGMA. */
|
|
unsigned int GTY ((tag ("CPP_TOKEN_FLD_PRAGMA"))) pragma;
|
|
} GTY ((desc ("cpp_token_val_index (&%1)"))) val;
|
|
};
|
|
|
|
/* Say which field is in use. */
|
|
extern enum cpp_token_fld_kind cpp_token_val_index (const cpp_token *tok);
|
|
|
|
/* A type wide enough to hold any multibyte source character.
|
|
cpplib's character constant interpreter requires an unsigned type.
|
|
Also, a typedef for the signed equivalent.
|
|
The width of this type is capped at 32 bits; there do exist targets
|
|
where wchar_t is 64 bits, but only in a non-default mode, and there
|
|
would be no meaningful interpretation for a wchar_t value greater
|
|
than 2^32 anyway -- the widest wide-character encoding around is
|
|
ISO 10646, which stops at 2^31. */
|
|
#if CHAR_BIT * SIZEOF_INT >= 32
|
|
# define CPPCHAR_SIGNED_T int
|
|
#elif CHAR_BIT * SIZEOF_LONG >= 32
|
|
# define CPPCHAR_SIGNED_T long
|
|
#else
|
|
# error "Cannot find a least-32-bit signed integer type"
|
|
#endif
|
|
typedef unsigned CPPCHAR_SIGNED_T cppchar_t;
|
|
typedef CPPCHAR_SIGNED_T cppchar_signed_t;
|
|
|
|
/* Style of header dependencies to generate. */
|
|
enum cpp_deps_style { DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM };
|
|
|
|
/* The possible normalization levels, from most restrictive to least. */
|
|
enum cpp_normalize_level {
|
|
/* In NFKC. */
|
|
normalized_KC = 0,
|
|
/* In NFC. */
|
|
normalized_C,
|
|
/* In NFC, except for subsequences where being in NFC would make
|
|
the identifier invalid. */
|
|
normalized_identifier_C,
|
|
/* Not normalized at all. */
|
|
normalized_none
|
|
};
|
|
|
|
enum cpp_main_search
|
|
{
|
|
CMS_none, /* A regular source file. */
|
|
CMS_header, /* Is a directly-specified header file (eg PCH or
|
|
header-unit). */
|
|
CMS_user, /* Search the user INCLUDE path. */
|
|
CMS_system, /* Search the system INCLUDE path. */
|
|
};
|
|
|
|
/* The possible bidirectional control characters checking levels, from least
|
|
restrictive to most. */
|
|
enum cpp_bidirectional_level {
|
|
/* No checking. */
|
|
bidirectional_none,
|
|
/* Only detect unpaired uses of bidirectional control characters. */
|
|
bidirectional_unpaired,
|
|
/* Detect any use of bidirectional control characters. */
|
|
bidirectional_any
|
|
};
|
|
|
|
/* This structure is nested inside struct cpp_reader, and
|
|
carries all the options visible to the command line. */
|
|
struct cpp_options
|
|
{
|
|
/* The language we're preprocessing. */
|
|
enum c_lang lang;
|
|
|
|
/* Nonzero means use extra default include directories for C++. */
|
|
unsigned char cplusplus;
|
|
|
|
/* Nonzero means handle cplusplus style comments. */
|
|
unsigned char cplusplus_comments;
|
|
|
|
/* Nonzero means define __OBJC__, treat @ as a special token, use
|
|
the OBJC[PLUS]_INCLUDE_PATH environment variable, and allow
|
|
"#import". */
|
|
unsigned char objc;
|
|
|
|
/* Nonzero means don't copy comments into the output file. */
|
|
unsigned char discard_comments;
|
|
|
|
/* Nonzero means don't copy comments into the output file during
|
|
macro expansion. */
|
|
unsigned char discard_comments_in_macro_exp;
|
|
|
|
/* Nonzero means process the ISO trigraph sequences. */
|
|
unsigned char trigraphs;
|
|
|
|
/* Nonzero means process the ISO digraph sequences. */
|
|
unsigned char digraphs;
|
|
|
|
/* Nonzero means to allow hexadecimal floats and LL suffixes. */
|
|
unsigned char extended_numbers;
|
|
|
|
/* Nonzero means process u/U prefix literals (UTF-16/32). */
|
|
unsigned char uliterals;
|
|
|
|
/* Nonzero means process u8 prefixed character literals (UTF-8). */
|
|
unsigned char utf8_char_literals;
|
|
|
|
/* Nonzero means process r/R raw strings. If this is set, uliterals
|
|
must be set as well. */
|
|
unsigned char rliterals;
|
|
|
|
/* Nonzero means print names of header files (-H). */
|
|
unsigned char print_include_names;
|
|
|
|
/* Nonzero means complain about deprecated features. */
|
|
unsigned char cpp_warn_deprecated;
|
|
|
|
/* Nonzero means warn if slash-star appears in a comment. */
|
|
unsigned char warn_comments;
|
|
|
|
/* Nonzero means to warn about __DATA__, __TIME__ and __TIMESTAMP__ usage. */
|
|
unsigned char warn_date_time;
|
|
|
|
/* Nonzero means warn if a user-supplied include directory does not
|
|
exist. */
|
|
unsigned char warn_missing_include_dirs;
|
|
|
|
/* Nonzero means warn if there are any trigraphs. */
|
|
unsigned char warn_trigraphs;
|
|
|
|
/* Nonzero means warn about multicharacter charconsts. */
|
|
unsigned char warn_multichar;
|
|
|
|
/* Nonzero means warn about various incompatibilities with
|
|
traditional C. */
|
|
unsigned char cpp_warn_traditional;
|
|
|
|
/* Nonzero means warn about long long numeric constants. */
|
|
unsigned char cpp_warn_long_long;
|
|
|
|
/* Nonzero means warn about text after an #endif (or #else). */
|
|
unsigned char warn_endif_labels;
|
|
|
|
/* Nonzero means warn about implicit sign changes owing to integer
|
|
promotions. */
|
|
unsigned char warn_num_sign_change;
|
|
|
|
/* Zero means don't warn about __VA_ARGS__ usage in c89 pedantic mode.
|
|
Presumably the usage is protected by the appropriate #ifdef. */
|
|
unsigned char warn_variadic_macros;
|
|
|
|
/* Nonzero means warn about builtin macros that are redefined or
|
|
explicitly undefined. */
|
|
unsigned char warn_builtin_macro_redefined;
|
|
|
|
/* Different -Wimplicit-fallthrough= levels. */
|
|
unsigned char cpp_warn_implicit_fallthrough;
|
|
|
|
/* Nonzero means we should look for header.gcc files that remap file
|
|
names. */
|
|
unsigned char remap;
|
|
|
|
/* Zero means dollar signs are punctuation. */
|
|
unsigned char dollars_in_ident;
|
|
|
|
/* Nonzero means UCNs are accepted in identifiers. */
|
|
unsigned char extended_identifiers;
|
|
|
|
/* True if we should warn about dollars in identifiers or numbers
|
|
for this translation unit. */
|
|
unsigned char warn_dollars;
|
|
|
|
/* Nonzero means warn if undefined identifiers are evaluated in an #if. */
|
|
unsigned char warn_undef;
|
|
|
|
/* Nonzero means warn if "defined" is encountered in a place other than
|
|
an #if. */
|
|
unsigned char warn_expansion_to_defined;
|
|
|
|
/* Nonzero means warn of unused macros from the main file. */
|
|
unsigned char warn_unused_macros;
|
|
|
|
/* Nonzero for the 1999 C Standard, including corrigenda and amendments. */
|
|
unsigned char c99;
|
|
|
|
/* Nonzero if we are conforming to a specific C or C++ standard. */
|
|
unsigned char std;
|
|
|
|
/* Nonzero means give all the error messages the ANSI standard requires. */
|
|
unsigned char cpp_pedantic;
|
|
|
|
/* Nonzero means we're looking at already preprocessed code, so don't
|
|
bother trying to do macro expansion and whatnot. */
|
|
unsigned char preprocessed;
|
|
|
|
/* Nonzero means we are going to emit debugging logs during
|
|
preprocessing. */
|
|
unsigned char debug;
|
|
|
|
/* Nonzero means we are tracking locations of tokens involved in
|
|
macro expansion. 1 Means we track the location in degraded mode
|
|
where we do not track locations of tokens resulting from the
|
|
expansion of arguments of function-like macro. 2 Means we do
|
|
track all macro expansions. This last option is the one that
|
|
consumes the highest amount of memory. */
|
|
unsigned char track_macro_expansion;
|
|
|
|
/* Nonzero means handle C++ alternate operator names. */
|
|
unsigned char operator_names;
|
|
|
|
/* Nonzero means warn about use of C++ alternate operator names. */
|
|
unsigned char warn_cxx_operator_names;
|
|
|
|
/* True for traditional preprocessing. */
|
|
unsigned char traditional;
|
|
|
|
/* Nonzero for C++ 2011 Standard user-defined literals. */
|
|
unsigned char user_literals;
|
|
|
|
/* Nonzero means warn when a string or character literal is followed by a
|
|
ud-suffix which does not beging with an underscore. */
|
|
unsigned char warn_literal_suffix;
|
|
|
|
/* Nonzero means interpret imaginary, fixed-point, or other gnu extension
|
|
literal number suffixes as user-defined literal number suffixes. */
|
|
unsigned char ext_numeric_literals;
|
|
|
|
/* Nonzero means extended identifiers allow the characters specified
|
|
in C11. */
|
|
unsigned char c11_identifiers;
|
|
|
|
/* Nonzero for C++ 2014 Standard binary constants. */
|
|
unsigned char binary_constants;
|
|
|
|
/* Nonzero for C++ 2014 Standard digit separators. */
|
|
unsigned char digit_separators;
|
|
|
|
/* Nonzero for C2X decimal floating-point constants. */
|
|
unsigned char dfp_constants;
|
|
|
|
/* Nonzero for C++20 __VA_OPT__ feature. */
|
|
unsigned char va_opt;
|
|
|
|
/* Nonzero for the '::' token. */
|
|
unsigned char scope;
|
|
|
|
/* Nonzero for the '#elifdef' and '#elifndef' directives. */
|
|
unsigned char elifdef;
|
|
|
|
/* Nonzero means tokenize C++20 module directives. */
|
|
unsigned char module_directives;
|
|
|
|
/* Nonzero for C++23 size_t literals. */
|
|
unsigned char size_t_literals;
|
|
|
|
/* Holds the name of the target (execution) character set. */
|
|
const char *narrow_charset;
|
|
|
|
/* Holds the name of the target wide character set. */
|
|
const char *wide_charset;
|
|
|
|
/* Holds the name of the input character set. */
|
|
const char *input_charset;
|
|
|
|
/* The minimum permitted level of normalization before a warning
|
|
is generated. See enum cpp_normalize_level. */
|
|
int warn_normalize;
|
|
|
|
/* True to warn about precompiled header files we couldn't use. */
|
|
bool warn_invalid_pch;
|
|
|
|
/* True if dependencies should be restored from a precompiled header. */
|
|
bool restore_pch_deps;
|
|
|
|
/* True if warn about differences between C90 and C99. */
|
|
signed char cpp_warn_c90_c99_compat;
|
|
|
|
/* True if warn about differences between C11 and C2X. */
|
|
signed char cpp_warn_c11_c2x_compat;
|
|
|
|
/* True if warn about differences between C++98 and C++11. */
|
|
bool cpp_warn_cxx11_compat;
|
|
|
|
/* Nonzero if bidirectional control characters checking is on. See enum
|
|
cpp_bidirectional_level. */
|
|
unsigned char cpp_warn_bidirectional;
|
|
|
|
/* Dependency generation. */
|
|
struct
|
|
{
|
|
/* Style of header dependencies to generate. */
|
|
enum cpp_deps_style style;
|
|
|
|
/* Assume missing files are generated files. */
|
|
bool missing_files;
|
|
|
|
/* Generate phony targets for each dependency apart from the first
|
|
one. */
|
|
bool phony_targets;
|
|
|
|
/* Generate dependency info for modules. */
|
|
bool modules;
|
|
|
|
/* If true, no dependency is generated on the main file. */
|
|
bool ignore_main_file;
|
|
|
|
/* If true, intend to use the preprocessor output (e.g., for compilation)
|
|
in addition to the dependency info. */
|
|
bool need_preprocessor_output;
|
|
} deps;
|
|
|
|
/* Target-specific features set by the front end or client. */
|
|
|
|
/* Precision for target CPP arithmetic, target characters, target
|
|
ints and target wide characters, respectively. */
|
|
size_t precision, char_precision, int_precision, wchar_precision;
|
|
|
|
/* True means chars (wide chars) are unsigned. */
|
|
bool unsigned_char, unsigned_wchar;
|
|
|
|
/* True if the most significant byte in a word has the lowest
|
|
address in memory. */
|
|
bool bytes_big_endian;
|
|
|
|
/* Nonzero means __STDC__ should have the value 0 in system headers. */
|
|
unsigned char stdc_0_in_system_headers;
|
|
|
|
/* True disables tokenization outside of preprocessing directives. */
|
|
bool directives_only;
|
|
|
|
/* True enables canonicalization of system header file paths. */
|
|
bool canonical_system_headers;
|
|
|
|
/* The maximum depth of the nested #include. */
|
|
unsigned int max_include_depth;
|
|
|
|
cpp_main_search main_search : 8;
|
|
};
|
|
|
|
/* Diagnostic levels. To get a diagnostic without associating a
|
|
position in the translation unit with it, use cpp_error_with_line
|
|
with a line number of zero. */
|
|
|
|
enum cpp_diagnostic_level {
|
|
/* Warning, an error with -Werror. */
|
|
CPP_DL_WARNING = 0,
|
|
/* Same as CPP_DL_WARNING, except it is not suppressed in system headers. */
|
|
CPP_DL_WARNING_SYSHDR,
|
|
/* Warning, an error with -pedantic-errors or -Werror. */
|
|
CPP_DL_PEDWARN,
|
|
/* An error. */
|
|
CPP_DL_ERROR,
|
|
/* An internal consistency check failed. Prints "internal error: ",
|
|
otherwise the same as CPP_DL_ERROR. */
|
|
CPP_DL_ICE,
|
|
/* An informative note following a warning. */
|
|
CPP_DL_NOTE,
|
|
/* A fatal error. */
|
|
CPP_DL_FATAL
|
|
};
|
|
|
|
/* Warning reason codes. Use a reason code of CPP_W_NONE for unclassified
|
|
warnings and diagnostics that are not warnings. */
|
|
|
|
enum cpp_warning_reason {
|
|
CPP_W_NONE = 0,
|
|
CPP_W_DEPRECATED,
|
|
CPP_W_COMMENTS,
|
|
CPP_W_MISSING_INCLUDE_DIRS,
|
|
CPP_W_TRIGRAPHS,
|
|
CPP_W_MULTICHAR,
|
|
CPP_W_TRADITIONAL,
|
|
CPP_W_LONG_LONG,
|
|
CPP_W_ENDIF_LABELS,
|
|
CPP_W_NUM_SIGN_CHANGE,
|
|
CPP_W_VARIADIC_MACROS,
|
|
CPP_W_BUILTIN_MACRO_REDEFINED,
|
|
CPP_W_DOLLARS,
|
|
CPP_W_UNDEF,
|
|
CPP_W_UNUSED_MACROS,
|
|
CPP_W_CXX_OPERATOR_NAMES,
|
|
CPP_W_NORMALIZE,
|
|
CPP_W_INVALID_PCH,
|
|
CPP_W_WARNING_DIRECTIVE,
|
|
CPP_W_LITERAL_SUFFIX,
|
|
CPP_W_SIZE_T_LITERALS,
|
|
CPP_W_DATE_TIME,
|
|
CPP_W_PEDANTIC,
|
|
CPP_W_C90_C99_COMPAT,
|
|
CPP_W_C11_C2X_COMPAT,
|
|
CPP_W_CXX11_COMPAT,
|
|
CPP_W_EXPANSION_TO_DEFINED,
|
|
CPP_W_BIDIRECTIONAL
|
|
};
|
|
|
|
/* Callback for header lookup for HEADER, which is the name of a
|
|
source file. It is used as a method of last resort to find headers
|
|
that are not otherwise found during the normal include processing.
|
|
The return value is the malloced name of a header to try and open,
|
|
if any, or NULL otherwise. This callback is called only if the
|
|
header is otherwise unfound. */
|
|
typedef const char *(*missing_header_cb)(cpp_reader *, const char *header, cpp_dir **);
|
|
|
|
/* Call backs to cpplib client. */
|
|
struct cpp_callbacks
|
|
{
|
|
/* Called when a new line of preprocessed output is started. */
|
|
void (*line_change) (cpp_reader *, const cpp_token *, int);
|
|
|
|
/* Called when switching to/from a new file.
|
|
The line_map is for the new file. It is NULL if there is no new file.
|
|
(In C this happens when done with <built-in>+<command line> and also
|
|
when done with a main file.) This can be used for resource cleanup. */
|
|
void (*file_change) (cpp_reader *, const line_map_ordinary *);
|
|
|
|
void (*dir_change) (cpp_reader *, const char *);
|
|
void (*include) (cpp_reader *, location_t, const unsigned char *,
|
|
const char *, int, const cpp_token **);
|
|
void (*define) (cpp_reader *, location_t, cpp_hashnode *);
|
|
void (*undef) (cpp_reader *, location_t, cpp_hashnode *);
|
|
void (*ident) (cpp_reader *, location_t, const cpp_string *);
|
|
void (*def_pragma) (cpp_reader *, location_t);
|
|
int (*valid_pch) (cpp_reader *, const char *, int);
|
|
void (*read_pch) (cpp_reader *, const char *, int, const char *);
|
|
missing_header_cb missing_header;
|
|
|
|
/* Context-sensitive macro support. Returns macro (if any) that should
|
|
be expanded. */
|
|
cpp_hashnode * (*macro_to_expand) (cpp_reader *, const cpp_token *);
|
|
|
|
/* Called to emit a diagnostic. This callback receives the
|
|
translated message. */
|
|
bool (*diagnostic) (cpp_reader *,
|
|
enum cpp_diagnostic_level,
|
|
enum cpp_warning_reason,
|
|
rich_location *,
|
|
const char *, va_list *)
|
|
ATTRIBUTE_FPTR_PRINTF(5,0);
|
|
|
|
/* Callbacks for when a macro is expanded, or tested (whether
|
|
defined or not at the time) in #ifdef, #ifndef or "defined". */
|
|
void (*used_define) (cpp_reader *, location_t, cpp_hashnode *);
|
|
void (*used_undef) (cpp_reader *, location_t, cpp_hashnode *);
|
|
/* Called before #define and #undef or other macro definition
|
|
changes are processed. */
|
|
void (*before_define) (cpp_reader *);
|
|
/* Called whenever a macro is expanded or tested.
|
|
Second argument is the location of the start of the current expansion. */
|
|
void (*used) (cpp_reader *, location_t, cpp_hashnode *);
|
|
|
|
/* Callback to identify whether an attribute exists. */
|
|
int (*has_attribute) (cpp_reader *, bool);
|
|
|
|
/* Callback to determine whether a built-in function is recognized. */
|
|
int (*has_builtin) (cpp_reader *);
|
|
|
|
/* Callback that can change a user lazy into normal macro. */
|
|
void (*user_lazy_macro) (cpp_reader *, cpp_macro *, unsigned);
|
|
|
|
/* Callback to handle deferred cpp_macros. */
|
|
cpp_macro *(*user_deferred_macro) (cpp_reader *, location_t, cpp_hashnode *);
|
|
|
|
/* Callback to parse SOURCE_DATE_EPOCH from environment. */
|
|
time_t (*get_source_date_epoch) (cpp_reader *);
|
|
|
|
/* Callback for providing suggestions for misspelled directives. */
|
|
const char *(*get_suggestion) (cpp_reader *, const char *, const char *const *);
|
|
|
|
/* Callback for when a comment is encountered, giving the location
|
|
of the opening slash, a pointer to the content (which is not
|
|
necessarily 0-terminated), and the length of the content.
|
|
The content contains the opening slash-star (or slash-slash),
|
|
and for C-style comments contains the closing star-slash. For
|
|
C++-style comments it does not include the terminating newline. */
|
|
void (*comment) (cpp_reader *, location_t, const unsigned char *,
|
|
size_t);
|
|
|
|
/* Callback for filename remapping in __FILE__ and __BASE_FILE__ macro
|
|
expansions. */
|
|
const char *(*remap_filename) (const char*);
|
|
|
|
/* Maybe translate a #include into something else. Return a
|
|
cpp_buffer containing the translation if translating. */
|
|
char *(*translate_include) (cpp_reader *, line_maps *, location_t,
|
|
const char *path);
|
|
};
|
|
|
|
#ifdef VMS
|
|
#define INO_T_CPP ino_t ino[3]
|
|
#elif defined (_AIX) && SIZEOF_INO_T == 4
|
|
#define INO_T_CPP ino64_t ino
|
|
#else
|
|
#define INO_T_CPP ino_t ino
|
|
#endif
|
|
|
|
#if defined (_AIX) && SIZEOF_DEV_T == 4
|
|
#define DEV_T_CPP dev64_t dev
|
|
#else
|
|
#define DEV_T_CPP dev_t dev
|
|
#endif
|
|
|
|
/* Chain of directories to look for include files in. */
|
|
struct cpp_dir
|
|
{
|
|
/* NULL-terminated singly-linked list. */
|
|
struct cpp_dir *next;
|
|
|
|
/* NAME of the directory, NUL-terminated. */
|
|
char *name;
|
|
unsigned int len;
|
|
|
|
/* One if a system header, two if a system header that has extern
|
|
"C" guards for C++. */
|
|
unsigned char sysp;
|
|
|
|
/* Is this a user-supplied directory? */
|
|
bool user_supplied_p;
|
|
|
|
/* The canonicalized NAME as determined by lrealpath. This field
|
|
is only used by hosts that lack reliable inode numbers. */
|
|
char *canonical_name;
|
|
|
|
/* Mapping of file names for this directory for MS-DOS and related
|
|
platforms. A NULL-terminated array of (from, to) pairs. */
|
|
const char **name_map;
|
|
|
|
/* Routine to construct pathname, given the search path name and the
|
|
HEADER we are trying to find, return a constructed pathname to
|
|
try and open. If this is NULL, the constructed pathname is as
|
|
constructed by append_file_to_dir. */
|
|
char *(*construct) (const char *header, cpp_dir *dir);
|
|
|
|
/* The C front end uses these to recognize duplicated
|
|
directories in the search path. */
|
|
INO_T_CPP;
|
|
DEV_T_CPP;
|
|
};
|
|
|
|
/* The kind of the cpp_macro. */
|
|
enum cpp_macro_kind {
|
|
cmk_macro, /* An ISO macro (token expansion). */
|
|
cmk_assert, /* An assertion. */
|
|
cmk_traditional /* A traditional macro (text expansion). */
|
|
};
|
|
|
|
/* Each macro definition is recorded in a cpp_macro structure.
|
|
Variadic macros cannot occur with traditional cpp. */
|
|
struct GTY(()) cpp_macro {
|
|
union cpp_parm_u
|
|
{
|
|
/* Parameters, if any. If parameter names use extended identifiers,
|
|
the original spelling of those identifiers, not the canonical
|
|
UTF-8 spelling, goes here. */
|
|
cpp_hashnode ** GTY ((tag ("false"),
|
|
nested_ptr (union tree_node,
|
|
"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
|
|
"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
|
|
length ("%1.paramc"))) params;
|
|
|
|
/* If this is an assertion, the next one in the chain. */
|
|
cpp_macro *GTY ((tag ("true"))) next;
|
|
} GTY ((desc ("%1.kind == cmk_assert"))) parm;
|
|
|
|
/* Definition line number. */
|
|
location_t line;
|
|
|
|
/* Number of tokens in body, or bytes for traditional macros. */
|
|
/* Do we really need 2^32-1 range here? */
|
|
unsigned int count;
|
|
|
|
/* Number of parameters. */
|
|
unsigned short paramc;
|
|
|
|
/* Non-zero if this is a user-lazy macro, value provided by user. */
|
|
unsigned char lazy;
|
|
|
|
/* The kind of this macro (ISO, trad or assert) */
|
|
unsigned kind : 2;
|
|
|
|
/* If a function-like macro. */
|
|
unsigned int fun_like : 1;
|
|
|
|
/* If a variadic macro. */
|
|
unsigned int variadic : 1;
|
|
|
|
/* If macro defined in system header. */
|
|
unsigned int syshdr : 1;
|
|
|
|
/* Nonzero if it has been expanded or had its existence tested. */
|
|
unsigned int used : 1;
|
|
|
|
/* Indicate whether the tokens include extra CPP_PASTE tokens at the
|
|
end to track invalid redefinitions with consecutive CPP_PASTE
|
|
tokens. */
|
|
unsigned int extra_tokens : 1;
|
|
|
|
/* Imported C++20 macro (from a header unit). */
|
|
unsigned int imported_p : 1;
|
|
|
|
/* 0 bits spare (32-bit). 32 on 64-bit target. */
|
|
|
|
union cpp_exp_u
|
|
{
|
|
/* Trailing array of replacement tokens (ISO), or assertion body value. */
|
|
cpp_token GTY ((tag ("false"), length ("%1.count"))) tokens[1];
|
|
|
|
/* Pointer to replacement text (traditional). See comment at top
|
|
of cpptrad.c for how traditional function-like macros are
|
|
encoded. */
|
|
const unsigned char *GTY ((tag ("true"))) text;
|
|
} GTY ((desc ("%1.kind == cmk_traditional"))) exp;
|
|
};
|
|
|
|
/* Poisoned identifiers are flagged NODE_POISONED. NODE_OPERATOR (C++
|
|
only) indicates an identifier that behaves like an operator such as
|
|
"xor". NODE_DIAGNOSTIC is for speed in lex_token: it indicates a
|
|
diagnostic may be required for this node. Currently this only
|
|
applies to __VA_ARGS__, poisoned identifiers, and -Wc++-compat
|
|
warnings about NODE_OPERATOR. */
|
|
|
|
/* Hash node flags. */
|
|
#define NODE_OPERATOR (1 << 0) /* C++ named operator. */
|
|
#define NODE_POISONED (1 << 1) /* Poisoned identifier. */
|
|
#define NODE_DIAGNOSTIC (1 << 2) /* Possible diagnostic when lexed. */
|
|
#define NODE_WARN (1 << 3) /* Warn if redefined or undefined. */
|
|
#define NODE_DISABLED (1 << 4) /* A disabled macro. */
|
|
#define NODE_USED (1 << 5) /* Dumped with -dU. */
|
|
#define NODE_CONDITIONAL (1 << 6) /* Conditional macro */
|
|
#define NODE_WARN_OPERATOR (1 << 7) /* Warn about C++ named operator. */
|
|
#define NODE_MODULE (1 << 8) /* C++-20 module-related name. */
|
|
|
|
/* Different flavors of hash node. */
|
|
enum node_type
|
|
{
|
|
NT_VOID = 0, /* Maybe an assert? */
|
|
NT_MACRO_ARG, /* A macro arg. */
|
|
NT_USER_MACRO, /* A user macro. */
|
|
NT_BUILTIN_MACRO, /* A builtin macro. */
|
|
NT_MACRO_MASK = NT_USER_MACRO /* Mask for either macro kind. */
|
|
};
|
|
|
|
/* Different flavors of builtin macro. _Pragma is an operator, but we
|
|
handle it with the builtin code for efficiency reasons. */
|
|
enum cpp_builtin_type
|
|
{
|
|
BT_SPECLINE = 0, /* `__LINE__' */
|
|
BT_DATE, /* `__DATE__' */
|
|
BT_FILE, /* `__FILE__' */
|
|
BT_FILE_NAME, /* `__FILE_NAME__' */
|
|
BT_BASE_FILE, /* `__BASE_FILE__' */
|
|
BT_INCLUDE_LEVEL, /* `__INCLUDE_LEVEL__' */
|
|
BT_TIME, /* `__TIME__' */
|
|
BT_STDC, /* `__STDC__' */
|
|
BT_PRAGMA, /* `_Pragma' operator */
|
|
BT_TIMESTAMP, /* `__TIMESTAMP__' */
|
|
BT_COUNTER, /* `__COUNTER__' */
|
|
BT_HAS_ATTRIBUTE, /* `__has_attribute(x)' */
|
|
BT_HAS_STD_ATTRIBUTE, /* `__has_c_attribute(x)' */
|
|
BT_HAS_BUILTIN, /* `__has_builtin(x)' */
|
|
BT_HAS_INCLUDE, /* `__has_include(x)' */
|
|
BT_HAS_INCLUDE_NEXT /* `__has_include_next(x)' */
|
|
};
|
|
|
|
#define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
|
|
#define HT_NODE(NODE) (&(NODE)->ident)
|
|
#define NODE_LEN(NODE) HT_LEN (HT_NODE (NODE))
|
|
#define NODE_NAME(NODE) HT_STR (HT_NODE (NODE))
|
|
|
|
/* The common part of an identifier node shared amongst all 3 C front
|
|
ends. Also used to store CPP identifiers, which are a superset of
|
|
identifiers in the grammatical sense. */
|
|
|
|
union GTY(()) _cpp_hashnode_value {
|
|
/* Assert (maybe NULL) */
|
|
cpp_macro * GTY((tag ("NT_VOID"))) answers;
|
|
/* Macro (maybe NULL) */
|
|
cpp_macro * GTY((tag ("NT_USER_MACRO"))) macro;
|
|
/* Code for a builtin macro. */
|
|
enum cpp_builtin_type GTY ((tag ("NT_BUILTIN_MACRO"))) builtin;
|
|
/* Macro argument index. */
|
|
unsigned short GTY ((tag ("NT_MACRO_ARG"))) arg_index;
|
|
};
|
|
|
|
struct GTY(()) cpp_hashnode {
|
|
struct ht_identifier ident;
|
|
unsigned int is_directive : 1;
|
|
unsigned int directive_index : 7; /* If is_directive,
|
|
then index into directive table.
|
|
Otherwise, a NODE_OPERATOR. */
|
|
unsigned int rid_code : 8; /* Rid code - for front ends. */
|
|
unsigned int flags : 9; /* CPP flags. */
|
|
ENUM_BITFIELD(node_type) type : 2; /* CPP node type. */
|
|
|
|
/* 5 bits spare. */
|
|
|
|
/* The deferred cookie is applicable to NT_USER_MACRO or NT_VOID.
|
|
The latter for when a macro had a prevailing undef.
|
|
On a 64-bit system there would be 32-bits of padding to the value
|
|
field. So placing the deferred index here is not costly. */
|
|
unsigned deferred; /* Deferred cookie */
|
|
|
|
union _cpp_hashnode_value GTY ((desc ("%1.type"))) value;
|
|
};
|
|
|
|
/* A class for iterating through the source locations within a
|
|
string token (before escapes are interpreted, and before
|
|
concatenation). */
|
|
|
|
class cpp_string_location_reader {
|
|
public:
|
|
cpp_string_location_reader (location_t src_loc,
|
|
line_maps *line_table);
|
|
|
|
source_range get_next ();
|
|
|
|
private:
|
|
location_t m_loc;
|
|
int m_offset_per_column;
|
|
};
|
|
|
|
/* A class for storing the source ranges of all of the characters within
|
|
a string literal, after escapes are interpreted, and after
|
|
concatenation.
|
|
|
|
This is not GTY-marked, as instances are intended to be temporary. */
|
|
|
|
class cpp_substring_ranges
|
|
{
|
|
public:
|
|
cpp_substring_ranges ();
|
|
~cpp_substring_ranges ();
|
|
|
|
int get_num_ranges () const { return m_num_ranges; }
|
|
source_range get_range (int idx) const
|
|
{
|
|
linemap_assert (idx < m_num_ranges);
|
|
return m_ranges[idx];
|
|
}
|
|
|
|
void add_range (source_range range);
|
|
void add_n_ranges (int num, cpp_string_location_reader &loc_reader);
|
|
|
|
private:
|
|
source_range *m_ranges;
|
|
int m_num_ranges;
|
|
int m_alloc_ranges;
|
|
};
|
|
|
|
/* Call this first to get a handle to pass to other functions.
|
|
|
|
If you want cpplib to manage its own hashtable, pass in a NULL
|
|
pointer. Otherwise you should pass in an initialized hash table
|
|
that cpplib will share; this technique is used by the C front
|
|
ends. */
|
|
extern cpp_reader *cpp_create_reader (enum c_lang, struct ht *,
|
|
class line_maps *);
|
|
|
|
/* Reset the cpp_reader's line_map. This is only used after reading a
|
|
PCH file. */
|
|
extern void cpp_set_line_map (cpp_reader *, class line_maps *);
|
|
|
|
/* Call this to change the selected language standard (e.g. because of
|
|
command line options). */
|
|
extern void cpp_set_lang (cpp_reader *, enum c_lang);
|
|
|
|
/* Set the include paths. */
|
|
extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
|
|
|
|
/* Call these to get pointers to the options, callback, and deps
|
|
structures for a given reader. These pointers are good until you
|
|
call cpp_finish on that reader. You can either edit the callbacks
|
|
through the pointer returned from cpp_get_callbacks, or set them
|
|
with cpp_set_callbacks. */
|
|
extern cpp_options *cpp_get_options (cpp_reader *) ATTRIBUTE_PURE;
|
|
extern cpp_callbacks *cpp_get_callbacks (cpp_reader *) ATTRIBUTE_PURE;
|
|
extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);
|
|
extern class mkdeps *cpp_get_deps (cpp_reader *) ATTRIBUTE_PURE;
|
|
|
|
extern const char *cpp_probe_header_unit (cpp_reader *, const char *file,
|
|
bool angle_p, location_t);
|
|
|
|
/* Call these to get name data about the various compile-time
|
|
charsets. */
|
|
extern const char *cpp_get_narrow_charset_name (cpp_reader *) ATTRIBUTE_PURE;
|
|
extern const char *cpp_get_wide_charset_name (cpp_reader *) ATTRIBUTE_PURE;
|
|
|
|
/* This function reads the file, but does not start preprocessing. It
|
|
returns the name of the original file; this is the same as the
|
|
input file, except for preprocessed input. This will generate at
|
|
least one file change callback, and possibly a line change callback
|
|
too. If there was an error opening the file, it returns NULL. */
|
|
extern const char *cpp_read_main_file (cpp_reader *, const char *,
|
|
bool injecting = false);
|
|
extern location_t cpp_main_loc (const cpp_reader *);
|
|
|
|
/* Adjust for the main file to be an include. */
|
|
extern void cpp_retrofit_as_include (cpp_reader *);
|
|
|
|
/* Set up built-ins with special behavior. Use cpp_init_builtins()
|
|
instead unless your know what you are doing. */
|
|
extern void cpp_init_special_builtins (cpp_reader *);
|
|
|
|
/* Set up built-ins like __FILE__. */
|
|
extern void cpp_init_builtins (cpp_reader *, int);
|
|
|
|
/* This is called after options have been parsed, and partially
|
|
processed. */
|
|
extern void cpp_post_options (cpp_reader *);
|
|
|
|
/* Set up translation to the target character set. */
|
|
extern void cpp_init_iconv (cpp_reader *);
|
|
|
|
/* Call this to finish preprocessing. If you requested dependency
|
|
generation, pass an open stream to write the information to,
|
|
otherwise NULL. It is your responsibility to close the stream. */
|
|
extern void cpp_finish (cpp_reader *, FILE *deps_stream);
|
|
|
|
/* Call this to release the handle at the end of preprocessing. Any
|
|
use of the handle after this function returns is invalid. */
|
|
extern void cpp_destroy (cpp_reader *);
|
|
|
|
extern unsigned int cpp_token_len (const cpp_token *);
|
|
extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *);
|
|
extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *,
|
|
unsigned char *, bool);
|
|
extern void cpp_register_pragma (cpp_reader *, const char *, const char *,
|
|
void (*) (cpp_reader *), bool);
|
|
extern void cpp_register_deferred_pragma (cpp_reader *, const char *,
|
|
const char *, unsigned, bool, bool);
|
|
extern int cpp_avoid_paste (cpp_reader *, const cpp_token *,
|
|
const cpp_token *);
|
|
extern const cpp_token *cpp_get_token (cpp_reader *);
|
|
extern const cpp_token *cpp_get_token_with_location (cpp_reader *,
|
|
location_t *);
|
|
inline bool cpp_user_macro_p (const cpp_hashnode *node)
|
|
{
|
|
return node->type == NT_USER_MACRO;
|
|
}
|
|
inline bool cpp_builtin_macro_p (const cpp_hashnode *node)
|
|
{
|
|
return node->type == NT_BUILTIN_MACRO;
|
|
}
|
|
inline bool cpp_macro_p (const cpp_hashnode *node)
|
|
{
|
|
return node->type & NT_MACRO_MASK;
|
|
}
|
|
inline cpp_macro *cpp_set_deferred_macro (cpp_hashnode *node,
|
|
cpp_macro *forced = NULL)
|
|
{
|
|
cpp_macro *old = node->value.macro;
|
|
|
|
node->value.macro = forced;
|
|
node->type = NT_USER_MACRO;
|
|
node->flags &= ~NODE_USED;
|
|
|
|
return old;
|
|
}
|
|
cpp_macro *cpp_get_deferred_macro (cpp_reader *, cpp_hashnode *, location_t);
|
|
|
|
/* Returns true if NODE is a function-like user macro. */
|
|
inline bool cpp_fun_like_macro_p (cpp_hashnode *node)
|
|
{
|
|
return cpp_user_macro_p (node) && node->value.macro->fun_like;
|
|
}
|
|
|
|
extern const unsigned char *cpp_macro_definition (cpp_reader *, cpp_hashnode *);
|
|
extern const unsigned char *cpp_macro_definition (cpp_reader *, cpp_hashnode *,
|
|
const cpp_macro *);
|
|
inline location_t cpp_macro_definition_location (cpp_hashnode *node)
|
|
{
|
|
const cpp_macro *macro = node->value.macro;
|
|
return macro ? macro->line : 0;
|
|
}
|
|
/* Return an idempotent time stamp (possibly from SOURCE_DATE_EPOCH). */
|
|
enum class CPP_time_kind
|
|
{
|
|
FIXED = -1, /* Fixed time via source epoch. */
|
|
DYNAMIC = -2, /* Dynamic via time(2). */
|
|
UNKNOWN = -3 /* Wibbly wobbly, timey wimey. */
|
|
};
|
|
extern CPP_time_kind cpp_get_date (cpp_reader *, time_t *);
|
|
|
|
extern void _cpp_backup_tokens (cpp_reader *, unsigned int);
|
|
extern const cpp_token *cpp_peek_token (cpp_reader *, int);
|
|
|
|
/* Evaluate a CPP_*CHAR* token. */
|
|
extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *,
|
|
unsigned int *, int *);
|
|
/* Evaluate a vector of CPP_*STRING* tokens. */
|
|
extern bool cpp_interpret_string (cpp_reader *,
|
|
const cpp_string *, size_t,
|
|
cpp_string *, enum cpp_ttype);
|
|
extern const char *cpp_interpret_string_ranges (cpp_reader *pfile,
|
|
const cpp_string *from,
|
|
cpp_string_location_reader *,
|
|
size_t count,
|
|
cpp_substring_ranges *out,
|
|
enum cpp_ttype type);
|
|
extern bool cpp_interpret_string_notranslate (cpp_reader *,
|
|
const cpp_string *, size_t,
|
|
cpp_string *, enum cpp_ttype);
|
|
|
|
/* Convert a host character constant to the execution character set. */
|
|
extern cppchar_t cpp_host_to_exec_charset (cpp_reader *, cppchar_t);
|
|
|
|
/* Used to register macros and assertions, perhaps from the command line.
|
|
The text is the same as the command line argument. */
|
|
extern void cpp_define (cpp_reader *, const char *);
|
|
extern void cpp_define_unused (cpp_reader *, const char *);
|
|
extern void cpp_define_formatted (cpp_reader *pfile,
|
|
const char *fmt, ...) ATTRIBUTE_PRINTF_2;
|
|
extern void cpp_define_formatted_unused (cpp_reader *pfile,
|
|
const char *fmt,
|
|
...) ATTRIBUTE_PRINTF_2;
|
|
extern void cpp_assert (cpp_reader *, const char *);
|
|
extern void cpp_undef (cpp_reader *, const char *);
|
|
extern void cpp_unassert (cpp_reader *, const char *);
|
|
|
|
/* Mark a node as a lazily defined macro. */
|
|
extern void cpp_define_lazily (cpp_reader *, cpp_hashnode *node, unsigned N);
|
|
|
|
/* Undefine all macros and assertions. */
|
|
extern void cpp_undef_all (cpp_reader *);
|
|
|
|
extern cpp_buffer *cpp_push_buffer (cpp_reader *, const unsigned char *,
|
|
size_t, int);
|
|
extern int cpp_defined (cpp_reader *, const unsigned char *, int);
|
|
|
|
/* A preprocessing number. Code assumes that any unused high bits of
|
|
the double integer are set to zero. */
|
|
|
|
/* This type has to be equal to unsigned HOST_WIDE_INT, see
|
|
gcc/c-family/c-lex.cc. */
|
|
typedef uint64_t cpp_num_part;
|
|
typedef struct cpp_num cpp_num;
|
|
struct cpp_num
|
|
{
|
|
cpp_num_part high;
|
|
cpp_num_part low;
|
|
bool unsignedp; /* True if value should be treated as unsigned. */
|
|
bool overflow; /* True if the most recent calculation overflowed. */
|
|
};
|
|
|
|
/* cpplib provides two interfaces for interpretation of preprocessing
|
|
numbers.
|
|
|
|
cpp_classify_number categorizes numeric constants according to
|
|
their field (integer, floating point, or invalid), radix (decimal,
|
|
octal, hexadecimal), and type suffixes. */
|
|
|
|
#define CPP_N_CATEGORY 0x000F
|
|
#define CPP_N_INVALID 0x0000
|
|
#define CPP_N_INTEGER 0x0001
|
|
#define CPP_N_FLOATING 0x0002
|
|
|
|
#define CPP_N_WIDTH 0x00F0
|
|
#define CPP_N_SMALL 0x0010 /* int, float, short _Fract/Accum */
|
|
#define CPP_N_MEDIUM 0x0020 /* long, double, long _Fract/_Accum. */
|
|
#define CPP_N_LARGE 0x0040 /* long long, long double,
|
|
long long _Fract/Accum. */
|
|
|
|
#define CPP_N_WIDTH_MD 0xF0000 /* machine defined. */
|
|
#define CPP_N_MD_W 0x10000
|
|
#define CPP_N_MD_Q 0x20000
|
|
|
|
#define CPP_N_RADIX 0x0F00
|
|
#define CPP_N_DECIMAL 0x0100
|
|
#define CPP_N_HEX 0x0200
|
|
#define CPP_N_OCTAL 0x0400
|
|
#define CPP_N_BINARY 0x0800
|
|
|
|
#define CPP_N_UNSIGNED 0x1000 /* Properties. */
|
|
#define CPP_N_IMAGINARY 0x2000
|
|
#define CPP_N_DFLOAT 0x4000
|
|
#define CPP_N_DEFAULT 0x8000
|
|
|
|
#define CPP_N_FRACT 0x100000 /* Fract types. */
|
|
#define CPP_N_ACCUM 0x200000 /* Accum types. */
|
|
#define CPP_N_FLOATN 0x400000 /* _FloatN types. */
|
|
#define CPP_N_FLOATNX 0x800000 /* _FloatNx types. */
|
|
|
|
#define CPP_N_USERDEF 0x1000000 /* C++11 user-defined literal. */
|
|
|
|
#define CPP_N_SIZE_T 0x2000000 /* C++23 size_t literal. */
|
|
|
|
#define CPP_N_WIDTH_FLOATN_NX 0xF0000000 /* _FloatN / _FloatNx value
|
|
of N, divided by 16. */
|
|
#define CPP_FLOATN_SHIFT 24
|
|
#define CPP_FLOATN_MAX 0xF0
|
|
|
|
/* Classify a CPP_NUMBER token. The return value is a combination of
|
|
the flags from the above sets. */
|
|
extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *,
|
|
const char **, location_t);
|
|
|
|
/* Return the classification flags for a float suffix. */
|
|
extern unsigned int cpp_interpret_float_suffix (cpp_reader *, const char *,
|
|
size_t);
|
|
|
|
/* Return the classification flags for an int suffix. */
|
|
extern unsigned int cpp_interpret_int_suffix (cpp_reader *, const char *,
|
|
size_t);
|
|
|
|
/* Evaluate a token classified as category CPP_N_INTEGER. */
|
|
extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *,
|
|
unsigned int);
|
|
|
|
/* Sign extend a number, with PRECISION significant bits and all
|
|
others assumed clear, to fill out a cpp_num structure. */
|
|
cpp_num cpp_num_sign_extend (cpp_num, size_t);
|
|
|
|
/* Output a diagnostic of some kind. */
|
|
extern bool cpp_error (cpp_reader *, enum cpp_diagnostic_level,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_3;
|
|
extern bool cpp_warning (cpp_reader *, enum cpp_warning_reason,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_3;
|
|
extern bool cpp_pedwarning (cpp_reader *, enum cpp_warning_reason,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_3;
|
|
extern bool cpp_warning_syshdr (cpp_reader *, enum cpp_warning_reason reason,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_3;
|
|
|
|
/* As their counterparts above, but use RICHLOC. */
|
|
extern bool cpp_warning_at (cpp_reader *, enum cpp_warning_reason,
|
|
rich_location *richloc, const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_4;
|
|
extern bool cpp_pedwarning_at (cpp_reader *, enum cpp_warning_reason,
|
|
rich_location *richloc, const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_4;
|
|
|
|
/* Output a diagnostic with "MSGID: " preceding the
|
|
error string of errno. No location is printed. */
|
|
extern bool cpp_errno (cpp_reader *, enum cpp_diagnostic_level,
|
|
const char *msgid);
|
|
/* Similarly, but with "FILENAME: " instead of "MSGID: ", where
|
|
the filename is not localized. */
|
|
extern bool cpp_errno_filename (cpp_reader *, enum cpp_diagnostic_level,
|
|
const char *filename, location_t loc);
|
|
|
|
/* Same as cpp_error, except additionally specifies a position as a
|
|
(translation unit) physical line and physical column. If the line is
|
|
zero, then no location is printed. */
|
|
extern bool cpp_error_with_line (cpp_reader *, enum cpp_diagnostic_level,
|
|
location_t, unsigned,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_5;
|
|
extern bool cpp_warning_with_line (cpp_reader *, enum cpp_warning_reason,
|
|
location_t, unsigned,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_5;
|
|
extern bool cpp_pedwarning_with_line (cpp_reader *, enum cpp_warning_reason,
|
|
location_t, unsigned,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_5;
|
|
extern bool cpp_warning_with_line_syshdr (cpp_reader *, enum cpp_warning_reason,
|
|
location_t, unsigned,
|
|
const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_5;
|
|
|
|
extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level,
|
|
location_t src_loc, const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_4;
|
|
|
|
extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level,
|
|
rich_location *richloc, const char *msgid, ...)
|
|
ATTRIBUTE_PRINTF_4;
|
|
|
|
/* In lex.cc */
|
|
extern int cpp_ideq (const cpp_token *, const char *);
|
|
extern void cpp_output_line (cpp_reader *, FILE *);
|
|
extern unsigned char *cpp_output_line_to_string (cpp_reader *,
|
|
const unsigned char *);
|
|
extern const unsigned char *cpp_alloc_token_string
|
|
(cpp_reader *, const unsigned char *, unsigned);
|
|
extern void cpp_output_token (const cpp_token *, FILE *);
|
|
extern const char *cpp_type2name (enum cpp_ttype, unsigned char flags);
|
|
/* Returns the value of an escape sequence, truncated to the correct
|
|
target precision. PSTR points to the input pointer, which is just
|
|
after the backslash. LIMIT is how much text we have. WIDE is true
|
|
if the escape sequence is part of a wide character constant or
|
|
string literal. Handles all relevant diagnostics. */
|
|
extern cppchar_t cpp_parse_escape (cpp_reader *, const unsigned char ** pstr,
|
|
const unsigned char *limit, int wide);
|
|
|
|
/* Structure used to hold a comment block at a given location in the
|
|
source code. */
|
|
|
|
typedef struct
|
|
{
|
|
/* Text of the comment including the terminators. */
|
|
char *comment;
|
|
|
|
/* source location for the given comment. */
|
|
location_t sloc;
|
|
} cpp_comment;
|
|
|
|
/* Structure holding all comments for a given cpp_reader. */
|
|
|
|
typedef struct
|
|
{
|
|
/* table of comment entries. */
|
|
cpp_comment *entries;
|
|
|
|
/* number of actual entries entered in the table. */
|
|
int count;
|
|
|
|
/* number of entries allocated currently. */
|
|
int allocated;
|
|
} cpp_comment_table;
|
|
|
|
/* Returns the table of comments encountered by the preprocessor. This
|
|
table is only populated when pfile->state.save_comments is true. */
|
|
extern cpp_comment_table *cpp_get_comments (cpp_reader *);
|
|
|
|
/* In hash.c */
|
|
|
|
/* Lookup an identifier in the hashtable. Puts the identifier in the
|
|
table if it is not already there. */
|
|
extern cpp_hashnode *cpp_lookup (cpp_reader *, const unsigned char *,
|
|
unsigned int);
|
|
|
|
typedef int (*cpp_cb) (cpp_reader *, cpp_hashnode *, void *);
|
|
extern void cpp_forall_identifiers (cpp_reader *, cpp_cb, void *);
|
|
|
|
/* In macro.cc */
|
|
extern void cpp_scan_nooutput (cpp_reader *);
|
|
extern int cpp_sys_macro_p (cpp_reader *);
|
|
extern unsigned char *cpp_quote_string (unsigned char *, const unsigned char *,
|
|
unsigned int);
|
|
extern bool cpp_compare_macros (const cpp_macro *macro1,
|
|
const cpp_macro *macro2);
|
|
|
|
/* In files.cc */
|
|
extern bool cpp_included (cpp_reader *, const char *);
|
|
extern bool cpp_included_before (cpp_reader *, const char *, location_t);
|
|
extern void cpp_make_system_header (cpp_reader *, int, int);
|
|
extern bool cpp_push_include (cpp_reader *, const char *);
|
|
extern bool cpp_push_default_include (cpp_reader *, const char *);
|
|
extern void cpp_change_file (cpp_reader *, enum lc_reason, const char *);
|
|
extern const char *cpp_get_path (struct _cpp_file *);
|
|
extern cpp_dir *cpp_get_dir (struct _cpp_file *);
|
|
extern cpp_buffer *cpp_get_buffer (cpp_reader *);
|
|
extern struct _cpp_file *cpp_get_file (cpp_buffer *);
|
|
extern cpp_buffer *cpp_get_prev (cpp_buffer *);
|
|
extern void cpp_clear_file_cache (cpp_reader *);
|
|
|
|
/* cpp_get_converted_source returns the contents of the given file, as it exists
|
|
after cpplib has read it and converted it from the input charset to the
|
|
source charset. Return struct will be zero-filled if the data could not be
|
|
read for any reason. The data starts at the DATA pointer, but the TO_FREE
|
|
pointer is what should be passed to free(), as there may be an offset. */
|
|
struct cpp_converted_source
|
|
{
|
|
char *to_free;
|
|
char *data;
|
|
size_t len;
|
|
};
|
|
cpp_converted_source cpp_get_converted_source (const char *fname,
|
|
const char *input_charset);
|
|
|
|
/* In pch.cc */
|
|
struct save_macro_data;
|
|
extern int cpp_save_state (cpp_reader *, FILE *);
|
|
extern int cpp_write_pch_deps (cpp_reader *, FILE *);
|
|
extern int cpp_write_pch_state (cpp_reader *, FILE *);
|
|
extern int cpp_valid_state (cpp_reader *, const char *, int);
|
|
extern void cpp_prepare_state (cpp_reader *, struct save_macro_data **);
|
|
extern int cpp_read_state (cpp_reader *, const char *, FILE *,
|
|
struct save_macro_data *);
|
|
|
|
/* In lex.cc */
|
|
extern void cpp_force_token_locations (cpp_reader *, location_t);
|
|
extern void cpp_stop_forcing_token_locations (cpp_reader *);
|
|
enum CPP_DO_task
|
|
{
|
|
CPP_DO_print,
|
|
CPP_DO_location,
|
|
CPP_DO_token
|
|
};
|
|
|
|
extern void cpp_directive_only_process (cpp_reader *pfile,
|
|
void *data,
|
|
void (*cb) (cpp_reader *,
|
|
CPP_DO_task,
|
|
void *data, ...));
|
|
|
|
/* In expr.cc */
|
|
extern enum cpp_ttype cpp_userdef_string_remove_type
|
|
(enum cpp_ttype type);
|
|
extern enum cpp_ttype cpp_userdef_string_add_type
|
|
(enum cpp_ttype type);
|
|
extern enum cpp_ttype cpp_userdef_char_remove_type
|
|
(enum cpp_ttype type);
|
|
extern enum cpp_ttype cpp_userdef_char_add_type
|
|
(enum cpp_ttype type);
|
|
extern bool cpp_userdef_string_p
|
|
(enum cpp_ttype type);
|
|
extern bool cpp_userdef_char_p
|
|
(enum cpp_ttype type);
|
|
extern const char * cpp_get_userdef_suffix
|
|
(const cpp_token *);
|
|
|
|
/* In charset.cc */
|
|
|
|
/* The result of attempting to decode a run of UTF-8 bytes. */
|
|
|
|
struct cpp_decoded_char
|
|
{
|
|
const char *m_start_byte;
|
|
const char *m_next_byte;
|
|
|
|
bool m_valid_ch;
|
|
cppchar_t m_ch;
|
|
};
|
|
|
|
/* Information for mapping between code points and display columns.
|
|
|
|
This is a tabstop value, along with a callback for getting the
|
|
widths of characters. Normally this callback is cpp_wcwidth, but we
|
|
support other schemes for escaping non-ASCII unicode as a series of
|
|
ASCII chars when printing the user's source code in diagnostic-show-locus.cc
|
|
|
|
For example, consider:
|
|
- the Unicode character U+03C0 "GREEK SMALL LETTER PI" (UTF-8: 0xCF 0x80)
|
|
- the Unicode character U+1F642 "SLIGHTLY SMILING FACE"
|
|
(UTF-8: 0xF0 0x9F 0x99 0x82)
|
|
- the byte 0xBF (a stray trailing byte of a UTF-8 character)
|
|
Normally U+03C0 would occupy one display column, U+1F642
|
|
would occupy two display columns, and the stray byte would be
|
|
printed verbatim as one display column.
|
|
|
|
However when escaping them as unicode code points as "<U+03C0>"
|
|
and "<U+1F642>" they occupy 8 and 9 display columns respectively,
|
|
and when escaping them as bytes as "<CF><80>" and "<F0><9F><99><82>"
|
|
they occupy 8 and 16 display columns respectively. In both cases
|
|
the stray byte is escaped to <BF> as 4 display columns. */
|
|
|
|
struct cpp_char_column_policy
|
|
{
|
|
cpp_char_column_policy (int tabstop,
|
|
int (*width_cb) (cppchar_t c))
|
|
: m_tabstop (tabstop),
|
|
m_undecoded_byte_width (1),
|
|
m_width_cb (width_cb)
|
|
{}
|
|
|
|
int m_tabstop;
|
|
/* Width in display columns of a stray byte that isn't decodable
|
|
as UTF-8. */
|
|
int m_undecoded_byte_width;
|
|
int (*m_width_cb) (cppchar_t c);
|
|
};
|
|
|
|
/* A class to manage the state while converting a UTF-8 sequence to cppchar_t
|
|
and computing the display width one character at a time. */
|
|
class cpp_display_width_computation {
|
|
public:
|
|
cpp_display_width_computation (const char *data, int data_length,
|
|
const cpp_char_column_policy &policy);
|
|
const char *next_byte () const { return m_next; }
|
|
int bytes_processed () const { return m_next - m_begin; }
|
|
int bytes_left () const { return m_bytes_left; }
|
|
bool done () const { return !bytes_left (); }
|
|
int display_cols_processed () const { return m_display_cols; }
|
|
|
|
int process_next_codepoint (cpp_decoded_char *out);
|
|
int advance_display_cols (int n);
|
|
|
|
private:
|
|
const char *const m_begin;
|
|
const char *m_next;
|
|
size_t m_bytes_left;
|
|
const cpp_char_column_policy &m_policy;
|
|
int m_display_cols;
|
|
};
|
|
|
|
/* Convenience functions that are simple use cases for class
|
|
cpp_display_width_computation. Tab characters will be expanded to spaces
|
|
as determined by POLICY.m_tabstop, and non-printable-ASCII characters
|
|
will be escaped as per POLICY. */
|
|
|
|
int cpp_byte_column_to_display_column (const char *data, int data_length,
|
|
int column,
|
|
const cpp_char_column_policy &policy);
|
|
inline int cpp_display_width (const char *data, int data_length,
|
|
const cpp_char_column_policy &policy)
|
|
{
|
|
return cpp_byte_column_to_display_column (data, data_length, data_length,
|
|
policy);
|
|
}
|
|
int cpp_display_column_to_byte_column (const char *data, int data_length,
|
|
int display_col,
|
|
const cpp_char_column_policy &policy);
|
|
int cpp_wcwidth (cppchar_t c);
|
|
|
|
bool cpp_input_conversion_is_trivial (const char *input_charset);
|
|
int cpp_check_utf8_bom (const char *data, size_t data_length);
|
|
|
|
#endif /* ! LIBCPP_CPPLIB_H */
|