Commit graph

38 commits

Author SHA1 Message Date
Jakub Jelinek
b510c53b18 c++: Adjust #embed support for P1967R14
Now that the #embed paper has been voted in, the following patch
removes the pedwarn for C++26 on it (and adjusts pedwarn warning for
older C++ versions) and predefines __cpp_pp_embed FTM.

Also, the patch changes cpp_error to cpp_pedwarning with for C++
-Wc++26-extensions guarding, and for C add -Wc11-c23-compat warning
about #embed.

I believe we otherwise implement everything in the paper already,
except I'm really confused by the
 [Example:

 #embed <data.dat> limit(__has_include("a.h"))

 #if __has_embed(<data.dat> limit(__has_include("a.h")))
 // ill-formed: __has_include [cpp.cond] cannot appear here
 #endif

 — end example]
part.  My reading of both C23 and C++ with the P1967R14 paper in
is that the first case (#embed with __has_include or __has_embed in its
clauses) is what is clearly invalid and so the ill-formed note should be
for #embed.  And the __has_include/__has_embed in __has_embed is actually
questionable.
Both C and C++ have something like
"The identifiers __has_include, __has_embed, and __has_c_attribute
shall not appear in any context not mentioned in this subclause."
or
"The identifiers __has_include and __has_cpp_attribute shall not appear
in any context not mentioned in this subclause."
(into which P1967R14 adds __has_embed) in the conditional inclusion
subclause.  #embed is defined in a different one, so using those in there
is invalid (unless "using the rules specified for conditional inclusion"
wording e.g. in limit clause overrides that).
The reason why I think it is fuzzy for __has_embed is that __has_embed
is actually defined in the Conditional inclusion subclause (so that
would mean one can use __has_include, __has_embed and __has_*attribute
in there) but its clauses are described in a different one.

GCC currently accepts
 #embed __FILE__ limit (__has_include (<stdarg.h>))
 #if __has_embed (__FILE__ limit (__has_include (<stdarg.h>)))
 #endif
 #embed __FILE__ limit (__has_embed (__FILE__))
 #if __has_embed (__FILE__ limit (__has_embed (__FILE__)))
 #endif
Note, it isn't just about limit clause, but also about
prefix/suffix/if_empty, except that in those cases the "using the rules
specified for conditional inclusion" doesn't apply.

In any case, I'd hope that can be dealt with incrementally (and should
be handled the same for both C and C++).

2025-02-28  Jakub Jelinek  <jakub@redhat.com>

libcpp/
	* include/cpplib.h (enum cpp_warning_reason): Add
	CPP_W_CXX26_EXTENSIONS enumerator.
	* init.cc (lang_defaults): Set embed for GNUCXX26 and CXX26.
	* directives.cc (do_embed): Adjust pedwarn wording for embed in C++,
	use cpp_pedwarning instead of cpp_error and add CPP_W_C11_C23_COMPAT
	warning of cpp_pedwarning hasn't diagnosed anything.
gcc/c-family/
	* c.opt (Wc++26-extensions): Add CppReason(CPP_W_CXX26_EXTENSIONS).
	* c-cppbuiltin.cc (c_cpp_builtins): Predefine __cpp_pp_embed=202502
	for C++26.
gcc/testsuite/
	* g++.dg/cpp/embed-1.C: Adjust for pedwarn wording change and don't
	expect any error for C++26.
	* g++.dg/cpp/embed-2.C: Adjust for pedwarn wording change and don't
	expect any warning for C++26.
	* g++.dg/cpp26/feat-cxx26.C: Test __cpp_pp_embed value.
	* gcc.dg/cpp/embed-17.c: New test.
2025-02-28 15:22:08 +01:00
Jakub Jelinek
6441eb6dc0 Update copyright years. 2025-01-02 11:59:57 +01:00
Joseph Myers
f3b5de944a preprocessor: Adjust C rules on UCNs for C23 [PR117162]
As noted in bug 117162, C23 changed some rules on UCNs to match C++
(this was a late change agreed in the resolution to CD2 comment
US-032, implementing changes from N3124), which we need to implement.

Allow UCNs below 0xa0 outside identifiers for C, with a
pedwarn-if-pedantic before C23 (and a warning with -Wc11-c23-compat)
except for the always-allowed cases of UCNs for $ @ `.  Also as part
of that change, do not allow \u0024 in identifiers as equivalent to $
for C23.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

	PR c/117162

libcpp/
	* include/cpplib.h (struct cpp_options): Add low_ucns.
	* init.cc (struct lang_flags, lang_defaults): Add low_ucns.
	(cpp_set_lang): Set low_ucns
	* charset.cc (_cpp_valid_ucn): For C, allow UCNs below 0xa0
	outside identifiers, with a pedwarn if pedantic before C23 or a
	warning with -Wc11-c23-compat.  Do not allow \u0024 in identifiers
	for C23.

gcc/testsuite/
	* gcc.dg/cpp/c17-ucn-1.c, gcc.dg/cpp/c17-ucn-2.c,
	gcc.dg/cpp/c17-ucn-3.c, gcc.dg/cpp/c17-ucn-4.c,
	gcc.dg/cpp/c23-ucn-2.c, gcc.dg/cpp/c23-ucnid-2.c: New tests.
	* c-c++-common/cpp/delimited-escape-seq-3.c,
	c-c++-common/cpp/named-universal-char-escape-3.c,
	gcc.dg/cpp/c23-ucn-1.c, gcc.dg/cpp/c2y-delimited-escape-seq-3.c:
	Update expected messages
	* gcc.dg/cpp/ucs.c: Use -pedantic-errors.  Update expected
	messages.
2024-12-03 13:01:58 +00:00
Jason Merrill
dbfbd3aa2c c-family: add -fsearch-include-path
The C++ modules code has a -fmodule-header (or -x c++-{user,system}-header)
option to specify looking up headers to compile to header units on the usual
include paths.  I'd like to have the same functionality for full C++20
modules such as module std, which I proposed to live on the include path at
bits/std.cc.  But this behavior doesn't seem necessarily connected to
modules, so I'm proposing a general C/C++ option to specify the behavior of
looking in the include path for the input files specified on the command
line.

Other ideas for the name of the option are very welcome.

The libcpp change is to allow -fsearch-include-path{,=user} to find files in
the current working directory, like -include.  This can be handy for a quick
compile of both std.cc and a file that imports it, e.g.

g++ -std=c++20 -fmodules -fsearch-include-path bits/std.cc importer.cc

gcc/ChangeLog:

	* doc/cppopts.texi: Document -fsearch-include-path.
	* doc/invoke.texi: Mention it for modules.

gcc/c-family/ChangeLog:

	* c.opt: Add -fsearch-include-path.
	* c-opts.cc (c_common_post_options): Handle it.

gcc/cp/ChangeLog:

	* module.cc (module_preprocess_options): Don't override it.

libcpp/ChangeLog:

	* internal.h (search_path_head): Declare.
	* files.cc (search_path_head): No longer static.
	* init.cc (cpp_read_main_file): Use it.
2024-11-17 16:23:21 +01:00
Jakub Jelinek
eb45d151fa c: Implement C2Y N3298 - Introduce complex literals [PR117029]
The following patch implements the C2Y N3298 paper Introduce complex literals
by providing different (or no) diagnostics on imaginary constants (except
for integer ones).
For _DecimalN constants we don't support _Complex _DecimalN and error on any
i/j suffixes mixed with DD/DL/DF, so nothing changed there.

2024-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/117029
libcpp/
	* include/cpplib.h (struct cpp_options): Add imaginary_constants
	member.
	* init.cc (struct lang_flags): Add imaginary_constants bitfield.
	(lang_defaults): Add column for imaginary_constants.
	(cpp_set_lang): Copy over imaginary_constants.
	* expr.cc (cpp_classify_number): Diagnose CPP_N_IMAGINARY
	non-CPP_N_FLOATING constants differently for C.
gcc/testsuite/
	* gcc.dg/cpp/pr7263-3.c: Adjust expected diagnostic wording.
	* gcc.dg/c23-imaginary-constants-1.c: New test.
	* gcc.dg/c23-imaginary-constants-2.c: New test.
	* gcc.dg/c23-imaginary-constants-3.c: New test.
	* gcc.dg/c23-imaginary-constants-4.c: New test.
	* gcc.dg/c23-imaginary-constants-5.c: New test.
	* gcc.dg/c23-imaginary-constants-6.c: New test.
	* gcc.dg/c23-imaginary-constants-7.c: New test.
	* gcc.dg/c23-imaginary-constants-8.c: New test.
	* gcc.dg/c23-imaginary-constants-9.c: New test.
	* gcc.dg/c23-imaginary-constants-10.c: New test.
	* gcc.dg/c2y-imaginary-constants-1.c: New test.
	* gcc.dg/c2y-imaginary-constants-2.c: New test.
	* gcc.dg/c2y-imaginary-constants-3.c: New test.
	* gcc.dg/c2y-imaginary-constants-4.c: New test.
	* gcc.dg/c2y-imaginary-constants-5.c: New test.
	* gcc.dg/c2y-imaginary-constants-6.c: New test.
	* gcc.dg/c2y-imaginary-constants-7.c: New test.
	* gcc.dg/c2y-imaginary-constants-8.c: New test.
	* gcc.dg/c2y-imaginary-constants-9.c: New test.
	* gcc.dg/c2y-imaginary-constants-10.c: New test.
	* gcc.dg/c2y-imaginary-constants-11.c: New test.
	* gcc.dg/c2y-imaginary-constants-12.c: New test.
2024-11-13 09:41:41 +01:00
Jakub Jelinek
45ab93d9af non-gcc: Remove trailing whitespace
I've tried to build stage3 with
-Wleading-whitespace=blanks -Wtrailing-whitespace=blank -Wno-error=leading-whitespace=blanks -Wno-error=trailing-whitespace=blank
added to STRICT_WARN and that expectably resulted in about
2744 unique trailing whitespace warnings and 124837 leading whitespace
warnings when excluding *.md files (which obviously is in big part a
generator issue).  Others from that are generator related, I think those
need to be solved later.

The following patch just fixes up the easy case (trailing whitespace),
which could be easily automated:
for i in `find . -name \*.h -o -name \*.cc -o -name \*.c | xargs grep -l '[ 	]$' | grep -v testsuite/`; do sed -i -e 's/[ 	]*$//' $i; done
I've excluded files which I knew are obviously generated or go FE.

Is there anything else we'd want to avoid the changes?

Due to patch size, I've split it between gcc/ part
and rest (include/, libiberty/, libgcc/, libcpp/, libstdc++-v3/;
this part).

2024-10-24  Jakub Jelinek  <jakub@redhat.com>

include/
	* dyn-string.h: Remove trailing whitespace.
	* libiberty.h: Likewise.
	* xregex.h: Likewise.
	* splay-tree.h: Likewise.
	* partition.h: Likewise.
	* plugin-api.h: Likewise.
	* demangle.h: Likewise.
	* vtv-change-permission.h: Likewise.
	* fibheap.h: Likewise.
	* hsa_ext_image.h: Likewise.
	* hashtab.h: Likewise.
	* libcollector.h: Likewise.
	* sort.h: Likewise.
	* symcat.h: Likewise.
	* hsa_ext_amd.h: Likewise.
libcpp/
	* directives.cc: Remove trailing whitespace.
	* mkdeps.cc: Likewise.
	* line-map.cc: Likewise.
	* internal.h: Likewise.
	* files.cc: Likewise.
	* init.cc: Likewise.
	* makeucnid.cc: Likewise.
	* system.h: Likewise.
	* include/line-map.h: Likewise.
	* include/symtab.h: Likewise.
	* include/cpplib.h: Likewise.
	* expr.cc: Likewise.
	* charset.cc: Likewise.
	* macro.cc: Likewise.
	* errors.cc: Likewise.
	* lex.cc: Likewise.
	* traditional.cc: Likewise.
libgcc/
	* crtstuff.c: Remove trailing whitespace.
	* libgcov.h: Likewise.
	* config/alpha/crtfastmath.c: Likewise.
	* config/alpha/vms-gcc_shell_handler.c: Likewise.
	* config/alpha/vms-unwind.h: Likewise.
	* config/pa/linux-atomic.c: Likewise.
	* config/pa/linux-unwind.h: Likewise.
	* config/pa/quadlib.c: Likewise.
	* config/pa/fptr.c: Likewise.
	* config/s390/32/_fixsfdi.c: Likewise.
	* config/s390/32/_fixunssfdi.c: Likewise.
	* config/s390/32/_fixunsdfdi.c: Likewise.
	* config/c6x/pr-support.c: Likewise.
	* config/lm32/_udivsi3.c: Likewise.
	* config/lm32/libgcc_lm32.h: Likewise.
	* config/lm32/_udivmodsi4.c: Likewise.
	* config/lm32/_mulsi3.c: Likewise.
	* config/lm32/_modsi3.c: Likewise.
	* config/lm32/_umodsi3.c: Likewise.
	* config/lm32/_divsi3.c: Likewise.
	* config/darwin-crt3.c: Likewise.
	* config/msp430/mpy.c: Likewise.
	* config/ia64/tf-signs.c: Likewise.
	* config/ia64/fde-vms.c: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/ia64/vms-unwind.h: Likewise.
	* config/ia64/sfp-exceptions.c: Likewise.
	* config/ia64/quadlib.c: Likewise.
	* config/ia64/unwind-ia64.h: Likewise.
	* config/rl78/vregs.h: Likewise.
	* config/arm/bpabi.c: Likewise.
	* config/arm/unwind-arm.c: Likewise.
	* config/arm/pr-support.c: Likewise.
	* config/arm/linux-atomic.c: Likewise.
	* config/arm/bpabi-lib.h: Likewise.
	* config/frv/frvend.c: Likewise.
	* config/frv/cmovw.c: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/cmovd.c: Likewise.
	* config/frv/cmovh.c: Likewise.
	* config/aarch64/cpuinfo.c: Likewise.
	* config/i386/crtfastmath.c: Likewise.
	* config/i386/cygming-crtend.c: Likewise.
	* config/i386/32/tf-signs.c: Likewise.
	* config/i386/crtprec.c: Likewise.
	* config/i386/sfp-exceptions.c: Likewise.
	* config/i386/w32-unwind.h: Likewise.
	* config/m32r/initfini.c: Likewise.
	* config/sparc/crtfastmath.c: Likewise.
	* config/gcn/amdgcn_veclib.h: Likewise.
	* config/nios2/linux-atomic.c: Likewise.
	* config/nios2/linux-unwind.h: Likewise.
	* config/nios2/lib2-mul.c: Likewise.
	* config/nios2/lib2-nios2.h: Likewise.
	* config/xtensa/unwind-dw2-xtensa.c: Likewise.
	* config/rs6000/darwin-fallback.c: Likewise.
	* config/rs6000/ibm-ldouble.c: Likewise.
	* config/rs6000/sfp-machine.h: Likewise.
	* config/rs6000/darwin-asm.h: Likewise.
	* config/rs6000/darwin-crt2.c: Likewise.
	* config/rs6000/aix-unwind.h: Likewise.
	* config/rs6000/sfp-exceptions.c: Likewise.
	* config/gthr-vxworks.c: Likewise.
	* config/riscv/atomic.c: Likewise.
	* config/visium/memcpy.c: Likewise.
	* config/darwin-crt-tm.c: Likewise.
	* config/stormy16/lib2funcs.c: Likewise.
	* config/arc/ieee-754/divtab-arc-sf.c: Likewise.
	* config/arc/ieee-754/divtab-arc-df.c: Likewise.
	* config/arc/initfini.c: Likewise.
	* config/sol2/gmon.c: Likewise.
	* config/microblaze/divsi3_table.c: Likewise.
	* config/m68k/fpgnulib.c: Likewise.
	* libgcov-driver.c: Likewise.
	* unwind-dw2.c: Likewise.
	* fp-bit.c: Likewise.
	* dfp-bit.h: Likewise.
	* dfp-bit.c: Likewise.
	* libgcov-driver-system.c: Likewise.
libgcc/config/libbid/
	* _le_td.c: Remove trailing whitespace.
	* bid128_compare.c: Likewise.
	* bid_div_macros.h: Likewise.
	* bid64_to_bid128.c: Likewise.
	* bid64_to_uint32.c: Likewise.
	* bid128_to_uint64.c: Likewise.
	* bid64_div.c: Likewise.
	* bid128_round_integral.c: Likewise.
	* bid_binarydecimal.c: Likewise.
	* bid128_string.c: Likewise.
	* bid_flag_operations.c: Likewise.
	* bid128_to_int64.c: Likewise.
	* _mul_sd.c: Likewise.
	* bid64_mul.c: Likewise.
	* bid128_noncomp.c: Likewise.
	* _gt_dd.c: Likewise.
	* bid64_add.c: Likewise.
	* bid64_string.c: Likewise.
	* bid_from_int.c: Likewise.
	* bid128.c: Likewise.
	* _ge_dd.c: Likewise.
	* _ne_sd.c: Likewise.
	* _dd_to_td.c: Likewise.
	* _unord_sd.c: Likewise.
	* bid64_to_uint64.c: Likewise.
	* _gt_sd.c: Likewise.
	* _sd_to_td.c: Likewise.
	* _addsub_td.c: Likewise.
	* _ne_td.c: Likewise.
	* bid_dpd.c: Likewise.
	* bid128_add.c: Likewise.
	* bid128_next.c: Likewise.
	* _lt_sd.c: Likewise.
	* bid64_next.c: Likewise.
	* bid128_mul.c: Likewise.
	* _lt_dd.c: Likewise.
	* _ge_td.c: Likewise.
	* _unord_dd.c: Likewise.
	* bid64_sqrt.c: Likewise.
	* bid_sqrt_macros.h: Likewise.
	* bid64_fma.c: Likewise.
	* _sd_to_dd.c: Likewise.
	* bid_conf.h: Likewise.
	* bid64_noncomp.c: Likewise.
	* bid_gcc_intrinsics.h: Likewise.
	* _gt_td.c: Likewise.
	* _ge_sd.c: Likewise.
	* bid128_minmax.c: Likewise.
	* bid128_quantize.c: Likewise.
	* bid32_to_bid64.c: Likewise.
	* bid_round.c: Likewise.
	* _td_to_sd.c: Likewise.
	* bid_inline_add.h: Likewise.
	* bid128_fma.c: Likewise.
	* _eq_td.c: Likewise.
	* bid32_to_bid128.c: Likewise.
	* bid64_rem.c: Likewise.
	* bid128_2_str_tables.c: Likewise.
	* _mul_dd.c: Likewise.
	* _dd_to_sd.c: Likewise.
	* bid128_div.c: Likewise.
	* _lt_td.c: Likewise.
	* bid64_compare.c: Likewise.
	* bid64_to_int32.c: Likewise.
	* _unord_td.c: Likewise.
	* bid128_rem.c: Likewise.
	* bid_internal.h: Likewise.
	* bid64_to_int64.c: Likewise.
	* _eq_dd.c: Likewise.
	* _td_to_dd.c: Likewise.
	* bid128_to_int32.c: Likewise.
	* bid128_to_uint32.c: Likewise.
	* _ne_dd.c: Likewise.
	* bid64_quantize.c: Likewise.
	* _le_dd.c: Likewise.
	* bid64_round_integral.c: Likewise.
	* _le_sd.c: Likewise.
	* bid64_minmax.c: Likewise.
libgcc/config/avr/libf7/
	* f7-renames.h: Remove trailing whitespace.
libstdc++-v3/
	* include/debug/debug.h: Remove trailing whitespace.
	* include/parallel/base.h: Likewise.
	* include/parallel/types.h: Likewise.
	* include/parallel/settings.h: Likewise.
	* include/parallel/multiseq_selection.h: Likewise.
	* include/parallel/partition.h: Likewise.
	* include/parallel/random_number.h: Likewise.
	* include/parallel/find_selectors.h: Likewise.
	* include/parallel/partial_sum.h: Likewise.
	* include/parallel/list_partition.h: Likewise.
	* include/parallel/search.h: Likewise.
	* include/parallel/algorithmfwd.h: Likewise.
	* include/parallel/random_shuffle.h: Likewise.
	* include/parallel/multiway_mergesort.h: Likewise.
	* include/parallel/sort.h: Likewise.
	* include/parallel/algobase.h: Likewise.
	* include/parallel/numericfwd.h: Likewise.
	* include/parallel/multiway_merge.h: Likewise.
	* include/parallel/losertree.h: Likewise.
	* include/bits/basic_ios.h: Likewise.
	* include/bits/stringfwd.h: Likewise.
	* include/bits/ostream_insert.h: Likewise.
	* include/bits/stl_heap.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/hashtable_policy.h: Likewise.
	* include/bits/stl_iterator_base_funcs.h: Likewise.
	* include/bits/valarray_before.h: Likewise.
	* include/bits/regex.h: Likewise.
	* include/bits/postypes.h: Likewise.
	* include/bits/stl_iterator.h: Likewise.
	* include/bits/localefwd.h: Likewise.
	* include/bits/stl_algo.h: Likewise.
	* include/bits/ios_base.h: Likewise.
	* include/bits/stl_function.h: Likewise.
	* include/bits/basic_string.h: Likewise.
	* include/bits/hashtable.h: Likewise.
	* include/bits/valarray_after.h: Likewise.
	* include/bits/char_traits.h: Likewise.
	* include/bits/gslice.h: Likewise.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mask_array.h: Likewise.
	* include/bits/specfun.h: Likewise.
	* include/bits/random.h: Likewise.
	* include/bits/slice_array.h: Likewise.
	* include/bits/valarray_array.h: Likewise.
	* include/tr1/float.h: Likewise.
	* include/tr1/functional_hash.h: Likewise.
	* include/tr1/math.h: Likewise.
	* include/tr1/hashtable_policy.h: Likewise.
	* include/tr1/stdio.h: Likewise.
	* include/tr1/complex.h: Likewise.
	* include/tr1/stdbool.h: Likewise.
	* include/tr1/stdarg.h: Likewise.
	* include/tr1/inttypes.h: Likewise.
	* include/tr1/fenv.h: Likewise.
	* include/tr1/stdlib.h: Likewise.
	* include/tr1/wchar.h: Likewise.
	* include/tr1/tgmath.h: Likewise.
	* include/tr1/limits.h: Likewise.
	* include/tr1/wctype.h: Likewise.
	* include/tr1/stdint.h: Likewise.
	* include/tr1/ctype.h: Likewise.
	* include/tr1/random.h: Likewise.
	* include/tr1/shared_ptr.h: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/sso_string_base.h: Likewise.
	* include/ext/debug_allocator.h: Likewise.
	* include/ext/vstring_fwd.h: Likewise.
	* include/ext/pointer.h: Likewise.
	* include/ext/pod_char_traits.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/type_traits.h: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/codecvt_specializations.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/extptr_allocator.h: Likewise.
	* include/ext/atomicity.h: Likewise.
	* include/ext/concurrence.h: Likewise.
	* include/c_compatibility/wchar.h: Likewise.
	* include/c_compatibility/stdint.h: Likewise.
	* include/backward/hash_fun.h: Likewise.
	* include/backward/binders.h: Likewise.
	* include/backward/hashtable.h: Likewise.
	* include/backward/auto_ptr.h: Likewise.
	* libsupc++/eh_arm.cc: Likewise.
	* libsupc++/unwind-cxx.h: Likewise.
	* libsupc++/si_class_type_info.cc: Likewise.
	* libsupc++/vec.cc: Likewise.
	* libsupc++/class_type_info.cc: Likewise.
	* libsupc++/vmi_class_type_info.cc: Likewise.
	* libsupc++/guard_error.cc: Likewise.
	* libsupc++/bad_typeid.cc: Likewise.
	* libsupc++/eh_personality.cc: Likewise.
	* libsupc++/atexit_arm.cc: Likewise.
	* libsupc++/pmem_type_info.cc: Likewise.
	* libsupc++/vterminate.cc: Likewise.
	* libsupc++/eh_terminate.cc: Likewise.
	* libsupc++/bad_cast.cc: Likewise.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/eh_throw.cc: Likewise.
	* libsupc++/bad_alloc.cc: Likewise.
	* libsupc++/nested_exception.cc: Likewise.
	* libsupc++/pointer_type_info.cc: Likewise.
	* libsupc++/pbase_type_info.cc: Likewise.
	* libsupc++/bad_array_new.cc: Likewise.
	* libsupc++/pure.cc: Likewise.
	* libsupc++/eh_exception.cc: Likewise.
	* libsupc++/bad_array_length.cc: Likewise.
	* libsupc++/cxxabi.h: Likewise.
	* libsupc++/guard.cc: Likewise.
	* libsupc++/eh_catch.cc: Likewise.
	* libsupc++/cxxabi_forced.h: Likewise.
	* libsupc++/tinfo.h: Likewise.
2024-10-25 10:03:17 +02:00
Jakub Jelinek
d4499a232a libcpp: Add -Wleading-whitespace= warning
The following patch on top of the r15-4346 patch adds
-Wleading-whitespace= warning option.
This warning doesn't care how much one actually indents which line
in the source (that is something that can't be easily done in the
preprocessor without doing syntactic analysis), but just simple checks
on what kind of whitespace is used in the indentation.
I think it is still useful to get warnings about such issues early,
while git diagnoses some of it in patches (e.g. the tab after space
case), getting the warnings earlier might help avoiding such issues
sooner.

There are projects which ban use of tabs and require just spaces,
others which require indentation just with horizontal tabs, and finally
projects which want indentation with tabs for multiples of tabstop size
followed by spaces (fewer than tabstop size), like GCC.
For all 3 kinds the warning diagnoses indentation with '\v' or '\f'
characters (unless line contains just whitespace), and for the last one
also cases where a space in the indentation is followed by horizontal
tab or where there are N or more consecutive spaces in the indentation
(for -ftabstop=N).

BTW, for additional testing I've enabled the warnings (without -Werror
for them) in stage3.  There are many warnings (both trailing and leading
whitespace), some of them something that can be easily fixed in the headers
or source files, but others with whitespace issues in generated sources,
so if we enable the warnings, either we'd need to adjust the generators
or disable the warnings in (some of the) generated files.

2024-10-23  Jakub Jelinek  <jakub@redhat.com>

libcpp/
	* include/cpplib.h (struct cpp_options): Add
	cpp_warn_leading_whitespace and cpp_tabstop members.
	(enum cpp_warning_reason): Add CPP_W_LEADING_WHITESPACE.
	* internal.h (struct _cpp_line_note): Document new
	line note kinds.
	* init.cc (cpp_create_reader): Set cpp_tabstop to 8.
	* lex.cc (find_leading_whitespace_issues): New function.
	(_cpp_clean_line): Use it.
	(_cpp_process_line_notes): Handle 'L', 'S' and 'T' line notes.
	(lex_raw_string): Clear type on 'L', 'S' and 'T' line notes
	inside of raw string literals.
gcc/
	* doc/invoke.texi (Wleading-whitespace=): Document.
gcc/c-family/
	* c.opt (Wleading-whitespace=): New option.
	* c-opts.cc (c_common_post_options): Set cpp_opts->cpp_tabstop
	to global_dc->m_tabstop.
gcc/testsuite/
	* c-c++-common/cpp/Wleading-whitespace-1.c: New test.
	* c-c++-common/cpp/Wleading-whitespace-2.c: New test.
	* c-c++-common/cpp/Wleading-whitespace-3.c: New test.
	* c-c++-common/cpp/Wleading-whitespace-4.c: New test.
2024-10-23 09:58:06 +02:00
Jakub Jelinek
e020116db0 c, libcpp: Partially implement C2Y N3353 paper [PR117028]
The following patch partially implements the N3353 paper.
In particular, it adds support for the delimited escape sequences
(\u{123}, \x{123}, \o{123}) which were added already for C++23,
all I had to do is split the delimited escape sequence guarding from
named universal character escape sequence guards
(\N{LATIN CAPITAL LETTER C WITH CARON}), which C++23 has but C2Y doesn't
and emit different diagnostics for C from C++ for the delimited escape
sequences.
And it adds support for the new style of octal literals, 0o137 or 0O1777.
I have so far added that just for C and not C++, because I have no idea
whether C++ will want to handle it similarly.

What the patch doesn't do is any kind of diagnostics for obsoletion of
\137 or 0137, as discussed in the PR, I think it is way too early for that.
Perhaps some non-default warning later on.

2024-10-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/117028
libcpp/
	* include/cpplib.h (struct cpp_options): Add named_uc_escape_seqs,
	octal_constants and cpp_warn_c23_c2y_compat members.
	(enum cpp_warning_reason): Add CPP_W_C23_C2Y_COMPAT enumerator.
	* init.cc (struct lang_flags): Add named_uc_escape_seqs and
	octal_constants bit-fields.
	(lang_defaults): Add initializers for them into the table.
	(cpp_set_lang): Initialize named_uc_escape_seqs and octal_constants.
	(cpp_create_reader): Initialize cpp_warn_c23_c2y_compat to -1.
	* charset.cc (_cpp_valid_ucn): Test
	CPP_OPTION (pfile, named_uc_escape_seqs) rather than
	CPP_OPTION (pfile, delimited_escape_seqs) in \N{} related tests.
	Change wording of C cpp_pedwarning for \u{} and emit
	-Wc23-c2y-compat warning for it too if needed.  Formatting fixes.
	(convert_hex): Change wording of C cpp_pedwarning for \u{} and emit
	-Wc23-c2y-compat warning for it too if needed.
	(convert_oct): Likewise.
	* expr.cc (cpp_classify_number): Handle C2Y 0o or 0O prefixed
	octal constants.
	(cpp_interpret_integer): Likewise.
gcc/c-family/
	* c.opt (Wc23-c2y-compat): Add CPP and CppReason parameters.
	* c-opts.cc (set_std_c2y): Use CLK_STDC2Y or CLK_GNUC2Y rather
	than CLK_STDC23 and CLK_GNUC23.  Formatting fix.
	* c-lex.cc (interpret_integer): Handle C2Y 0o or 0O prefixed
	and wb/WB/uwb/UWB suffixed octal constants.
gcc/testsuite/
	* gcc.dg/bitint-112.c: New test.
	* gcc.dg/c23-digit-separators-1.c: Add _Static_assert for
	valid binary constant with digit separator.
	* gcc.dg/c23-octal-constants-1.c: New test.
	* gcc.dg/c23-octal-constants-2.c: New test.
	* gcc.dg/c2y-digit-separators-1.c: New test.
	* gcc.dg/c2y-digit-separators-2.c: New test.
	* gcc.dg/c2y-octal-constants-1.c: New test.
	* gcc.dg/c2y-octal-constants-2.c: New test.
	* gcc.dg/c2y-octal-constants-3.c: New test.
	* gcc.dg/cpp/c23-delimited-escape-seq-1.c: New test.
	* gcc.dg/cpp/c23-delimited-escape-seq-2.c: New test.
	* gcc.dg/cpp/c2y-delimited-escape-seq-1.c: New test.
	* gcc.dg/cpp/c2y-delimited-escape-seq-2.c: New test.
	* gcc.dg/cpp/c2y-delimited-escape-seq-3.c: New test.
	* gcc.dg/cpp/c2y-delimited-escape-seq-4.c: New test.
	* gcc.dg/octal-constants-1.c: New test.
	* gcc.dg/octal-constants-2.c: New test.
	* gcc.dg/octal-constants-3.c: New test.
	* gcc.dg/octal-constants-4.c: New test.
	* gcc.dg/system-octal-constants-1.c: New test.
	* gcc.dg/system-octal-constants-1.h: New file.
2024-10-17 07:01:44 +02:00
Jakub Jelinek
c397a8c122 libcpp, genmatch: Use gcc_diag instead of printf for libcpp diagnostics
When working on #embed support, or -Wheader-guard or other recent libcpp
changes, I've been annoyed by the libcpp diagnostics being visually
different from normal gcc diagnostics, especially in the area of quoting
stuff in the diagnostic messages.
Normall GCC diagnostics is gcc_diag/gcc_tdiag, one can use
%</%>, %qs etc. in there, while libcpp diagnostics was marked as printf
and in libcpp we've been very creative with quoting stuff, either
no quotes at all, or "something" quoting, or 'something' quoting, or
`something' quoting (but in none of the cases it used colors consistently
with the rest of the compiler).

Now, libcpp diagnostics is always emitted using a callback,
pfile->cb.diagnostic.  On the gcc/ side, this callback is initialized with
genmatch.cc:  cb->diagnostic = diagnostic_cb;
c-family/c-opts.cc:  cb->diagnostic = c_cpp_diagnostic;
fortran/cpp.cc:  cb->diagnostic = cb_cpp_diagnostic;
where the latter two just use diagnostic_report_diagnostic, so actually
support all the gcc_diag stuff, only the genmatch.cc case didn't.

So, the following patch changes genmatch.cc to use pp_format* instead
of vfprintf so that it supports the gcc_diag formatting (pretty-print.o
unfortunately has various dependencies, so had to link genmatch with
libcommon.a libbacktrace.a and tweak Makefile.in so that there are no
circular dependencies) and marks the libcpp diagnostic routines as
gcc_diag rather than printf.  That change resulted in hundreds of
-Wformat-diag new warnings (most of them useful and resulting IMHO in
better diagnostics), so the rest of the patch is changing the format
strings to make -Wformat-diag happy and adjusting the testsuite for
the differences in how is the diagnostic reformatted.

Dunno if some out of GCC tree projects use libcpp, that case would
make it harder because one couldn't use vfprintf in the diagnostic
callback anymore, but there is always David's libdiagnostic which could
be used for that purpose IMHO.

2024-10-12  Jakub Jelinek  <jakub@redhat.com>

libcpp/
	* include/cpplib.h (ATTRIBUTE_CPP_PPDIAG): Define.
	(struct cpp_callbacks): Use ATTRIBUTE_CPP_PPDIAG instead of
	ATTRIBUTE_FPTR_PRINTF on diagnostic callback.
	(cpp_error, cpp_warning, cpp_pedwarning, cpp_warning_syshdr): Use
	ATTRIBUTE_CPP_PPDIAG (3, 4) instead of ATTRIBUTE_PRINTF_3.
	(cpp_warning_at, cpp_pedwarning_at): Use ATTRIBUTE_CPP_PPDIAG (4, 5)
	instead of ATTRIBUTE_PRINTF_4.
	(cpp_error_with_line, cpp_warning_with_line, cpp_pedwarning_with_line,
	cpp_warning_with_line_syshdr): Use ATTRIBUTE_CPP_PPDIAG (5, 6)
	instead of ATTRIBUTE_PRINTF_5.
	(cpp_error_at): Use ATTRIBUTE_CPP_PPDIAG (4, 5) instead of
	ATTRIBUTE_PRINTF_4.
	* Makefile.in (po/$(PACKAGE).pot): Use --language=GCC-source rather
	than --language=c.
	* errors.cc (cpp_diagnostic_at, cpp_diagnostic,
	cpp_diagnostic_with_line): Use ATTRIBUTE_CPP_PPDIAG instead of
	-ATTRIBUTE_FPTR_PRINTF.
	* charset.cc (cpp_host_to_exec_charset, _cpp_valid_ucn, convert_hex,
	convert_oct, convert_escape): Fix up -Wformat-diag warnings.
	(cpp_interpret_string_ranges, count_source_chars): Use
	ATTRIBUTE_CPP_PPDIAG instead of ATTRIBUTE_FPTR_PRINTF.
	(narrow_str_to_charconst): Fix up -Wformat-diag warnings.
	* directives.cc (check_eol_1, directive_diagnostics, lex_macro_node,
	do_undef, glue_header_name, parse_include, do_include_common,
	do_include_next, _cpp_parse_embed_params, do_embed, read_flag,
	do_line, do_linemarker, register_pragma_1, do_pragma_once,
	do_pragma_push_macro, do_pragma_pop_macro, do_pragma_poison,
	do_pragma_system_header, do_pragma_warning_or_error, _cpp_do__Pragma,
	do_else, do_elif, do_endif, parse_answer, do_assert,
	cpp_define_unused): Likewise.
	* expr.cc (cpp_classify_number, parse_defined, eval_token,
	_cpp_parse_expr, reduce, check_promotion): Likewise.
	* files.cc (_cpp_find_file, finish_base64_embed,
	_cpp_pop_file_buffer): Likewise.
	* init.cc (sanity_checks): Likewise.
	* lex.cc (_cpp_process_line_notes, maybe_warn_bidi_on_char,
	_cpp_warn_invalid_utf8, _cpp_skip_block_comment,
	warn_about_normalization, forms_identifier_p, maybe_va_opt_error,
	identifier_diagnostics_on_lex, cpp_maybe_module_directive): Likewise.
	* macro.cc (class vaopt_state, builtin_has_include_1,
	builtin_has_include, builtin_has_embed, _cpp_warn_if_unused_macro,
	_cpp_builtin_macro_text, builtin_macro, stringify_arg,
	_cpp_arguments_ok, collect_args, enter_macro_context,
	_cpp_save_parameter, parse_params, create_iso_definition,
	_cpp_create_definition, check_trad_stringification): Likewise.
	* pch.cc (cpp_valid_state): Likewise.
	* traditional.cc (_cpp_scan_out_logical_line, recursive_macro):
	Likewise.
gcc/
	* Makefile.in (generated_files): Remove {gimple,generic}-match*.
	(generated_match_files): New variable.  Add a dependency of
	$(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) files on those.
	(build/genmatch$(build_exeext)): Depend on and link against
	libcommon.a and $(LIBBACKTRACE).
	* genmatch.cc: Include pretty-print.h and input.h.
	(ggc_internal_cleared_alloc, ggc_free): Remove.
	(fatal): New function.
	(line_table): Remove.
	(linemap_client_expand_location_to_spelling_point): Remove.
	(diagnostic_cb): Use gcc_diag rather than printf format.  Use
	pp_format_verbatim on a temporary pretty_printer instead of
	vfprintf.
	(fatal_at, warning_at): Use gcc_diag rather than printf format.
	(output_line_directive): Rename location_hash to loc_hash.
	(parser::eat_ident, parser::parse_operation, parser::parse_expr,
	parser::parse_pattern, parser::finish_match_operand): Fix up
	-Wformat-diag warnings.
gcc/c-family/
	* c-lex.cc (c_common_has_attribute,
	c_common_lex_availability_macro): Fix up -Wformat-diag warnings.
gcc/testsuite/
	* c-c++-common/cpp/counter-2.c: Adjust expected diagnostics for
	libcpp diagnostic formatting changes.
	* c-c++-common/cpp/embed-3.c: Likewise.
	* c-c++-common/cpp/embed-4.c: Likewise.
	* c-c++-common/cpp/embed-16.c: Likewise.
	* c-c++-common/cpp/embed-18.c: Likewise.
	* c-c++-common/cpp/eof-2.c: Likewise.
	* c-c++-common/cpp/eof-3.c: Likewise.
	* c-c++-common/cpp/fmax-include-depth.c: Likewise.
	* c-c++-common/cpp/has-builtin.c: Likewise.
	* c-c++-common/cpp/line-2.c: Likewise.
	* c-c++-common/cpp/line-3.c: Likewise.
	* c-c++-common/cpp/macro-arg-count-1.c: Likewise.
	* c-c++-common/cpp/macro-arg-count-2.c: Likewise.
	* c-c++-common/cpp/macro-ranges.c: Likewise.
	* c-c++-common/cpp/named-universal-char-escape-4.c: Likewise.
	* c-c++-common/cpp/named-universal-char-escape-5.c: Likewise.
	* c-c++-common/cpp/pr88974.c: Likewise.
	* c-c++-common/cpp/va-opt-error.c: Likewise.
	* c-c++-common/cpp/va-opt-pedantic.c: Likewise.
	* c-c++-common/cpp/Wheader-guard-2.c: Likewise.
	* c-c++-common/cpp/Wheader-guard-3.c: Likewise.
	* c-c++-common/cpp/Winvalid-utf8-1.c: Likewise.
	* c-c++-common/cpp/Winvalid-utf8-2.c: Likewise.
	* c-c++-common/cpp/Winvalid-utf8-3.c: Likewise.
	* c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c:
	Likewise.
	* c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c:
	Likewise.
	* c-c++-common/pr68833-3.c: Likewise.
	* c-c++-common/raw-string-directive-1.c: Likewise.
	* gcc.dg/analyzer/named-constants-Wunused-macros.c: Likewise.
	* gcc.dg/binary-constants-4.c: Likewise.
	* gcc.dg/builtin-redefine.c: Likewise.
	* gcc.dg/cpp/19951025-1.c: Likewise.
	* gcc.dg/cpp/c11-warning-1.c: Likewise.
	* gcc.dg/cpp/c11-warning-2.c: Likewise.
	* gcc.dg/cpp/c11-warning-3.c: Likewise.
	* gcc.dg/cpp/c23-elifdef-2.c: Likewise.
	* gcc.dg/cpp/c23-warning-2.c: Likewise.
	* gcc.dg/cpp/embed-2.c: Likewise.
	* gcc.dg/cpp/embed-3.c: Likewise.
	* gcc.dg/cpp/embed-4.c: Likewise.
	* gcc.dg/cpp/expr.c: Likewise.
	* gcc.dg/cpp/gnu11-elifdef-2.c: Likewise.
	* gcc.dg/cpp/gnu11-elifdef-3.c: Likewise.
	* gcc.dg/cpp/gnu11-elifdef-4.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-1.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-2.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-3.c: Likewise.
	* gcc.dg/cpp/gnu23-warning-2.c: Likewise.
	* gcc.dg/cpp/include6.c: Likewise.
	* gcc.dg/cpp/pr35322.c: Likewise.
	* gcc.dg/cpp/tr-warn6.c: Likewise.
	* gcc.dg/cpp/undef2.c: Likewise.
	* gcc.dg/cpp/warn-comments.c: Likewise.
	* gcc.dg/cpp/warn-comments-2.c: Likewise.
	* gcc.dg/cpp/warn-comments-3.c: Likewise.
	* gcc.dg/cpp/warn-cxx-compat.c: Likewise.
	* gcc.dg/cpp/warn-cxx-compat-2.c: Likewise.
	* gcc.dg/cpp/warn-deprecated.c: Likewise.
	* gcc.dg/cpp/warn-deprecated-2.c: Likewise.
	* gcc.dg/cpp/warn-long-long.c: Likewise.
	* gcc.dg/cpp/warn-long-long-2.c: Likewise.
	* gcc.dg/cpp/warn-normalized-1.c: Likewise.
	* gcc.dg/cpp/warn-normalized-2.c: Likewise.
	* gcc.dg/cpp/warn-normalized-3.c: Likewise.
	* gcc.dg/cpp/warn-normalized-4-bytes.c: Likewise.
	* gcc.dg/cpp/warn-normalized-4-unicode.c: Likewise.
	* gcc.dg/cpp/warn-redefined.c: Likewise.
	* gcc.dg/cpp/warn-redefined-2.c: Likewise.
	* gcc.dg/cpp/warn-traditional.c: Likewise.
	* gcc.dg/cpp/warn-traditional-2.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-1.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-2.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-3.c: Likewise.
	* gcc.dg/cpp/warn-trigraphs-4.c: Likewise.
	* gcc.dg/cpp/warn-undef.c: Likewise.
	* gcc.dg/cpp/warn-undef-2.c: Likewise.
	* gcc.dg/cpp/warn-unused-macros.c: Likewise.
	* gcc.dg/cpp/warn-unused-macros-2.c: Likewise.
	* gcc.dg/pch/counter-2.c: Likewise.
	* g++.dg/cpp0x/udlit-error1.C: Likewise.
	* g++.dg/cpp23/named-universal-char-escape1.C: Likewise.
	* g++.dg/cpp23/named-universal-char-escape2.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-1.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-2.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-3.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-4.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-5.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-6.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-7.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-8.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-9.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-10.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-11.C: Likewise.
	* g++.dg/cpp23/Winvalid-utf8-12.C: Likewise.
	* g++.dg/cpp/elifdef-3.C: Likewise.
	* g++.dg/cpp/elifdef-5.C: Likewise.
	* g++.dg/cpp/elifdef-6.C: Likewise.
	* g++.dg/cpp/elifdef-7.C: Likewise.
	* g++.dg/cpp/embed-1.C: Likewise.
	* g++.dg/cpp/embed-2.C: Likewise.
	* g++.dg/cpp/pedantic-errors.C: Likewise.
	* g++.dg/cpp/warning-1.C: Likewise.
	* g++.dg/cpp/warning-2.C: Likewise.
	* g++.dg/ext/bitint1.C: Likewise.
	* g++.dg/ext/bitint2.C: Likewise.
2024-10-12 10:50:41 +02:00
Jakub Jelinek
e4c0595ec4 libcpp: Use constexpr for _cpp_trigraph_map initialization for C++14
The _cpp_trigraph_map initialization used to be done for C99+ using
designated initializers, but can't be done that way for C++ because
the designated initializer support in C++ as array designators are just
an extension there and don't allow skipping anything nor going backwards.

But, we can get the same effect using C++14 constexpr constructor.
With the following patch we get rid of the runtime initialization
and the array can be in .rodata.

2024-10-07  Jakub Jelinek  <jakub@redhat.com>

	* internal.h (_cpp_trigraph_map_s): New type for C++14 or later.
	(_cpp_trigraph_map_d): New variable for C++14 or later.
	(_cpp_trigraph_map): Define to _cpp_trigraph_map_d.map for C++14 or
	later.
	* init.cc (init_trigraph_map): Define to nothing for C++14 or later.
	(TRIGRAPH_MAP, END, s): Define differently for C++14 or later.
2024-10-07 21:25:22 +02:00
Jakub Jelinek
5943a2fa1b libcpp: Implement clang -Wheader-guard warning [PR96842]
The following patch implements the clang -Wheader-guard warning, which warns
if a valid multiple inclusion header guard's #ifndef/#if !defined directive
is immediately (no other non-line directives nor other (non-comment)
tokens in between) followed by #define directive for some different macro,
which in get_suggestion rules is close enough to the actual header guard
macro (i.e. likely misspelling), the #define is object-like with empty
definition (I've followed what clang implements) and the macro isn't defined
later on (at least not on the final #endif at the end of a header).

In this case it emits a warning, so that
  #ifndef STDIO_H
  #define STDOI_H
  ...
  #endif
or similar misspellings can be caught.

clang enables this warning by default, but I've put it into -Wall instead
as it still seems to be a style warning, nothing more severe; if a header
doesn't survive multiple inclusion because of the misspelling, users will
get different diagnostics.

2024-10-02  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/96842
libcpp/
	* include/cpplib.h (struct cpp_options): Add warn_header_guard member.
	(enum cpp_warning_reason): Add CPP_W_HEADER_GUARD enumerator.
	* internal.h (struct cpp_reader): Add mi_def_cmacro, mi_loc and
	mi_def_loc members.
	(_cpp_defined_macro_p): Constify type pointed by argument type.
	Formatting fix.
	* init.cc (cpp_create_reader): Clear
	CPP_OPTION (pfile, warn_header_guard).
	* directives.cc (struct if_stack): Add def_loc and mi_def_cmacro
	members.
	(DIRECTIVE_TABLE): Add IF_COND flag to define.
	(do_define): Set ifs->mi_def_cmacro on a define immediately following
	#ifndef directive for the guard.  Clear pfile->mi_valid.  Formatting
	fix.
	(do_endif): Copy over pfile->mi_def_cmacro and pfile->mi_def_loc
	if ifs->mi_def_cmacro is set and pfile->mi_cmacro isn't a defined
	macro.
	(push_conditional): Clear mi_def_cmacro and mi_def_loc members.
	* files.cc (_cpp_pop_file_buffer): Emit -Wheader-guard diagnostics.
gcc/
	* doc/invoke.texi (Wheader-guard): Document.
gcc/c-family/
	* c.opt (Wheader-guard): New option.
	* c.opt.urls: Regenerated.
	* c-ppoutput.cc (init_pp_output): Initialize also cb->get_suggestion.
gcc/testsuite/
	* c-c++-common/cpp/Wheader-guard-1.c: New test.
	* c-c++-common/cpp/Wheader-guard-1-1.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-2.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-3.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-4.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-5.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-6.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-7.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-8.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-9.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-10.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-11.h: New test.
	* c-c++-common/cpp/Wheader-guard-1-12.h: New test.
	* c-c++-common/cpp/Wheader-guard-2.c: New test.
	* c-c++-common/cpp/Wheader-guard-2.h: New test.
	* c-c++-common/cpp/Wheader-guard-3.c: New test.
	* c-c++-common/cpp/Wheader-guard-3.h: New test.
2024-10-02 10:53:35 +02:00
Jakub Jelinek
eba6d2aa71 libcpp, c-family: Add (dumb) C23 N3017 #embed support [PR105863]
The following patch implements the C23 N3017 "#embed - a scannable,
tooling-friendly binary resource inclusion mechanism" paper.

The implementation is intentionally dumb, in that it doesn't significantly
speed up compilation of larger initializers and doesn't make it possible
to use huge #embeds (like several gigabytes large, that is compile time
and memory still infeasible).
There are 2 reasons for this.  One is that I think like it is implemented
now in the patch is how we should use it for the smaller #embed sizes,
dunno with which boundary, whether 32 bytes or 64 or something like that,
certainly handling the single byte cases which is something that can appear
anywhere in the source where constant integer literal can appear is
desirable and I think for a few bytes it isn't worth it to come up with
something smarter and users would like to e.g. see it in -E readably as
well (perhaps the slow vs. fast boundary should be determined by command
line option).  And the other one is to be able to more easily find
regressions in behavior caused by the optimizations, so we have something
to get back in git to compare against.
I'm definitely willing to work on the optimizations (likely introduce a new
CPP_* token type to refer to a range of libcpp owned memory (start + size)
and similarly some tree which can do the same, and can be at any time e.g.
split into 2 subparts + say INTEGER_CST in between if needed say for
const unsigned char d[] = {
 #embed "2GB.dat" prefix (0, 0, ) suffix (, [0x40000000] = 42)
}; still without having to copy around huge amounts of data; STRING_CST
owns the memory it points to and can be only 2GB in size), but would
like to do that incrementally.
And would like to first include some extensions also not included in
this patch, like gnu::offset (off) parameter to allow to skip certain
constant amount of bytes at the start of the files, plus
gnu::base64 ("base64_encoded_data") parameter to add something which can
store more efficiently large amounts of the #embed data in preprocessed
source.

I've been cross-checking all the tests also against the LLVM implementation
https://github.com/llvm/llvm-project/pull/68620
which has been for a few hours even committed to LLVM trunk but reverted
afterwards.  LLVM now has the support committed and I admit I haven't
rechecked whether the behavior on the below mentioned spots have been fixed
in it already or not yet.

The patch uses --embed-dir= option that clang plans to add above and doesn't
use other variants on the search directories yet, plus there are no
default directories at least for the time being where to search for embed
files.  So, #embed "..." works if it is found in the same directory (or
relative to the current file's directory) and #embed "/..." or #embed </...>
work always, but relative #embed <...> doesn't unless at least one
--embed-dir= is specified.  There is no reason to differentiate between
system and non-system directories, so we don't need -isystem like
counterpart, perhaps -iquote like counterpart could be useful in the future,
dunno what else.  It has --embed-directory=dir and --embed-directory dir
as aliases.

There are some differences beyond clang ICEs, so I'd like to point them out
to make sure there is agreement on the choices in the patch.  They are also
mentioned in the comments of the llvm pull request.

The most important is that the GCC patch (as well as the original thephd.dev
LLVM branch on godbolt) expands #embed (or acts as if it is expanded) into
a mere sequence of numbers like 123,2,35,26 rather then what clang
effectively treats as (unsigned char)123,(unsigned char)2,(unsigned
char)35,(unsigned char)26 but only does that when using integrated
preprocessor, not when using -save-temps where it acts as GCC.
JeanHeyd as the original author agrees that is how it is currently worded in
C23.

Another difference (not tested in the testsuite, not sure how to check for
effective target /dev/urandom nor am sure it is desirable to check that
during testsuite) is how to treat character devices, named pipes etc.
(block devices are errored on).  The original paper uses /dev/urandom
in various examples and seems to assume that unlike regular files the
devices aren't really cached, so
 #embed </dev/urandom> limit(1) prefix(int a = ) suffix(;)
 #embed </dev/urandom> limit(1) prefix(int b = ) suffix(;)
usually results in a != b.  That is what the godbolt thephd.dev branch
implements too and what this patch does as well, but clang actually seems
to just go from st.st_size == 0, ergo it must be zero-sized resource and
so just copies over if_empty if present.  It is really questionable
what to do about the character devices/named pipes with __has_embed, for
regular files the patch doesn't read anything from them, relies on
st.st_size + limit for whether it is empty or non-empty.  But I don't know
of a way to check if read on say a character device would read anything
or not (the </dev/null> limit (1) vs. </dev/zero> limit (1) cases), and
if we read something, that would be better cached for later because
 #embed later if it reads again could read no further data even when it
first read something.  So, the patch currently for __has_embed just
always returns 2 on the non-regular files, like the thephd.dev
branch does as well and like the clang pull request as well.
A question is also what to do for gnu::offset on the non-regular files
even for #embed, those aren't seekable and do we want to just read and throw
away the offset bytes each time we see it used?

clang also chokes on the
 #if __has_embed (__FILE__ __limit__ (1) __prefix__ () suffix (1 / 0) \
 __if_empty__ ((({{[0[0{0{0(0(0)1)1}1}]]}})))) != __STDC_EMBED_FOUND__
 #error "__has_embed fail"
 #endif
in embed-1.c, but thephd.dev branch accepts it and I don't see why
it shouldn't, (({{[0[0{0{0(0(0)1)1}1}]]}}))) is a balanced token
sequence and the file isn't empty, so it should just be parsed and
discarded.

clang also IMHO mishandles
 const unsigned char w[] = {
 #embed __FILE__ prefix([0] = 42, [15] =) limit(32)
 };
but again only without -save-temps, seems like it
treats it as
[0] = 42, [15] = (99,111,110,115,116,32,117,110,115,105,103,110,101,100,
32,99,104,97,114,32,119,91,93,32,61,32,123,10,35,101,109,98)
rather than
[0] = 42, [15] = 99,111,110,115,116,32,117,110,115,105,103,110,101,100,
32,99,104,97,114,32,119,91,93,32,61,32,123,10,35,101,109,98
and warns on it for -Wunused-value and just compiles it as
[0] = 42, [15] = 98

And also
 void foo (int, int, int, int);
 void bar (void) { foo (
 #embed __FILE__ limit (4) prefix (172 + ) suffix (+ 2)
 ); }
is treated as
172 + (118, 111, 105, 100) + 2
rather than
172 + 118, 111, 105, 100 + 2
which clang -save-temps or GCC treats it like, so results
in just one argument passed rather than 4.

if (!strstr ((const char *) magna_carta, "imprisonétur")) abort ();
in the testcase fails as well, but in that case calling it in gdb succeeds:
p ((char *(*)(char *, char *))__strstr_sse2) (magna_carta, "imprisonétur")
$2 = 0x555555558d3c <magna_carta+11564> "imprisonétur aut disseisiátur"...
so I guess they are just trying to constant evaluate strstr and do it
incorrectly.

They started with making the optimizations together in the initial patch
set, so they don't have the luxury to compare if it is just because of
the optimization they are trying to do or because that is how the
feature works for them.  At least unless they use -save-temps for now.

There is also different behavior between clang and gcc on -M or other
dependency generating options.  Seems clang includes the __has_embed
searched files in dependencies, while my patch doesn't.  But so does
clang for __has_include and GCC doesn't.  Emitting a hard dependency
on some header just because there was __has_include/__has_embed for it
seems wrong to me, because (at least when properly written) the source
likely doesn't mind if the file is missing, it will do something else,
so a hard error from make because of it doesn't seem right.  Does
make have some weaker dependencies, such that if some file can be remade
it is but if it doesn't exist, it isn't fatal?

I wonder whether #embed <non-existent-file> really needs to be fatal
or whether we could simply after diagnosing it pretend the file exists
and is empty.  For #include I think fatal errors make tons of sense,
but perhaps for #embed which is more localized we'd get better error
reporting if we didn't bail out immediately.  Note, both GCC and clang
currently treat those as fatal errors.

clang also added -dE option which with -E instead of preprocessing
the #embed directives keeps them as is, but the preprocessed source
then isn't self-contained.  That option looks more harmful than useful to
me.

Also, it isn't clear to me from C23 whether it is possible to have
__has_include/__has_c_attribute/__has_embed expressions inside of
the limit #embed/__has_embed argument.
6.10.3.2/2 says that defined should not appear there (and the patch
diagnoses it and testsuite tests), but for __has_include/__has_embed
etc. 6.10.1/11 says:
"The identifiers __has_include, __has_embed, and __has_c_attribute
shall not appear in any context not mentioned in this subclause."
If that subclause in that case means 6.10.1, then it presumably shouldn't
appear in #embed in 6.10.3, but __has_embed is in 6.10.1...
But 6.10.3.2/3 says that it should be parsed according to the 6.10.1
rules.  Haven't included tests like
 #if __has_embed (__FILE__ limit (__has_embed (__FILE__ limit (1))))
or
 #embed __FILE__ limit (__has_include (__FILE__))
into the testsuite because of the doubts but I think the patch should
handle those right now.

The reason I've used Magna Carta text in some of the testcases is that
I hope it shouldn't be copyrighted after the centuries and I'd strongly
prefer not to have binary blobs in git after the xz backdoor lesson
and wanted something larger which doesn't change all the time.

Oh, BTW, I see in C23 draft 6.10.3.2 in Example 4
if (f_source == NULL);
  return 1;
(note the spurious semicolon after closing paren), has that been fixed
already?

Like the thephd.dev and clang implementations, the patch always macro
expands the whole #embed and __has_embed directives except for the
embed keyword.  That is most likely not what C23 says, my limited
understanding right now is that in #embed one needs to parse the whole
directive line with macro expansion disabled and check if it satisfies the
grammar, if not, the whole directive is macro expanded, if yes, only
the limit parameter argument is macro expanded and the prefix/suffix/if_empty
arguments are maybe macro expanded when actually used (and not at all if
unused).  And I think __has_embed macro expansion has conflicting rules.

2024-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/105863
libcpp/
	* include/cpplib.h: Implement C23 N3017 #embed - a scannable,
	tooling-friendly binary resource inclusion mechanism paper.
	(struct cpp_options): Add embed member.
	(enum cpp_builtin_type): Add BT_HAS_EMBED.
	(cpp_set_include_chains): Add another cpp_dir * argument to
	the declaration.
	* internal.h (enum include_type): Add IT_EMBED.
	(struct cpp_reader): Add embed_include member.
	(struct cpp_embed_params_tokens): New type.
	(struct cpp_embed_params): New type.
	(_cpp_get_token_no_padding): Declare.
	(enum _cpp_find_file_kind): Add _cpp_FFK_EMBED and _cpp_FFK_HAS_EMBED.
	(_cpp_stack_embed): Declare.
	(_cpp_parse_expr): Change return type to cpp_num_part instead of
	bool, change second argument from bool to const char * and add third
	argument.
	(_cpp_parse_embed_params): Declare.
	* directives.cc (DIRECTIVE_TABLE): Add embed entry.
	(end_directive): Don't call skip_rest_of_line for T_EMBED directive.
	(_cpp_handle_directive): Return 2 rather than 1 for T_EMBED in
	directives-only mode.
	(parse_include): Don't Call check_eol for T_EMBED directive.
	(skip_balanced_token_seq): New function.
	(EMBED_PARAMS): Define.
	(enum embed_param_kind): New type.
	(embed_params): New variable.
	(_cpp_parse_embed_params): New function.
	(do_embed): New function.
	(do_if): Adjust _cpp_parse_expr caller.
	(do_elif): Likewise.
	* expr.cc (parse_defined): Diagnose defined in #embed or __has_embed
	parameters.
	(_cpp_parse_expr): Change return type to cpp_num_part instead of
	bool, change second argument from bool to const char * and add third
	argument.  Adjust function comment.  For #embed/__has_embed parameters
	add an artificial CPP_OPEN_PAREN.  Use the second argument DIR
	directly instead of string literals conditional on IS_IF.
	For #embed/__has_embed parameter, stop on reaching CPP_CLOSE_PAREN
	matching the artificial one.  Diagnose negative or too large embed
	parameter operands.
	(num_binary_op): Use #embed instead of #if for diagnostics if inside
	#embed/__has_embed parameter.
	(num_div_op): Likewise.
	* files.cc (struct _cpp_file): Add limit member and embed bitfield.
	(search_cache): Add IS_EMBED argument, formatting fix.  Skip over
	files with different file->embed from the argument.
	(find_file_in_dir): Don't call pch_open_file if file->embed.
	(_cpp_find_file): Handle _cpp_FFK_EMBED and _cpp_FFK_HAS_EMBED.
	(read_file_guts): Formatting fix.
	(has_unique_contents): Ignore file->embed files.
	(search_path_head): Handle IT_EMBED type.
	(_cpp_stack_embed): New function.
	(_cpp_get_file_stat): Formatting fix.
	(cpp_set_include_chains): Add embed argument, save it to
	pfile->embed_include and compute lens for the chain.
	* init.cc (struct lang_flags): Add embed member.
	(lang_defaults): Add embed initializers.
	(cpp_set_lang): Initialize CPP_OPTION (pfile, embed).
	(builtin_array): Add __has_embed entry.
	(cpp_init_builtins): Predefine __STDC_EMBED_NOT_FOUND__,
	__STDC_EMBED_FOUND__ and __STDC_EMBED_EMPTY__.
	* lex.cc (cpp_directive_only_process): Handle #embed.
	* macro.cc (cpp_get_token_no_padding): Rename to ...
	(_cpp_get_token_no_padding): ... this.  No longer static.
	(builtin_has_include_1): New function.
	(builtin_has_include): Use it.  Use _cpp_get_token_no_padding
	instead of cpp_get_token_no_padding.
	(builtin_has_embed): New function.
	(_cpp_builtin_macro_text): Handle BT_HAS_EMBED.
gcc/
	* doc/cppdiropts.texi (--embed-dir=): Document.
	* doc/cpp.texi (Binary Resource Inclusion): New chapter.
	(__has_embed): Document.
	* doc/invoke.texi (Directory Options): Mention --embed-dir=.
	* gcc.cc (cpp_unique_options): Add %{-embed*}.
	* genmatch.cc (main): Adjust cpp_set_include_chains caller.
	* incpath.h (enum incpath_kind): Add INC_EMBED.
	* incpath.cc (merge_include_chains): Handle INC_EMBED.
	(register_include_chains): Adjust cpp_set_include_chains caller.
gcc/c-family/
	* c.opt (-embed-dir=): New option.
	(-embed-directory): New alias.
	(-embed-directory=): New alias.
	* c-opts.cc (c_common_handle_option): Handle OPT__embed_dir_.
gcc/testsuite/
	* c-c++-common/cpp/embed-1.c: New test.
	* c-c++-common/cpp/embed-2.c: New test.
	* c-c++-common/cpp/embed-3.c: New test.
	* c-c++-common/cpp/embed-4.c: New test.
	* c-c++-common/cpp/embed-5.c: New test.
	* c-c++-common/cpp/embed-6.c: New test.
	* c-c++-common/cpp/embed-7.c: New test.
	* c-c++-common/cpp/embed-8.c: New test.
	* c-c++-common/cpp/embed-9.c: New test.
	* c-c++-common/cpp/embed-10.c: New test.
	* c-c++-common/cpp/embed-11.c: New test.
	* c-c++-common/cpp/embed-12.c: New test.
	* c-c++-common/cpp/embed-13.c: New test.
	* c-c++-common/cpp/embed-14.c: New test.
	* c-c++-common/cpp/embed-25.c: New test.
	* c-c++-common/cpp/embed-26.c: New test.
	* c-c++-common/cpp/embed-dir/embed-1.inc: New test.
	* c-c++-common/cpp/embed-dir/embed-3.c: New test.
	* c-c++-common/cpp/embed-dir/embed-4.c: New test.
	* c-c++-common/cpp/embed-dir/magna-carta.txt: New test.
	* gcc.dg/cpp/embed-1.c: New test.
	* gcc.dg/cpp/embed-2.c: New test.
	* gcc.dg/cpp/embed-3.c: New test.
	* gcc.dg/cpp/embed-4.c: New test.
	* g++.dg/cpp/embed-1.C: New test.
	* g++.dg/cpp/embed-2.C: New test.
	* g++.dg/cpp/embed-3.C: New test.
2024-09-12 11:15:38 +02:00
Jakub Jelinek
447c32c514 libcpp: Adjust lang_defaults
The table over the years turned to be very wide, 147 columns
and any addition would add a couple of new ones.
We need a 28x23 bit matrix right now.

This patch changes the formatting, so that we need just 2 columns
per new feature and so we have some room for expansion.
In addition, the patch changes it to bitfields, which reduces
.rodata by 532 bytes (so 5.75x reduction of the variable) and
on x86_64-linux grows the cpp_set_lang function by 26 bytes (8.4%
growth).

2024-08-20  Jakub Jelinek  <jakub@redhat.com>

	* init.cc (struct lang_flags): Change all members from char
	typed fields to unsigned bit-fields.
	(lang_defaults): Change formatting of the initializer so that it
	fits to 68 columns rather than 147.
2024-08-20 22:33:13 +02:00
Joseph Myers
0cf68222d2 c: Add -std=c2y, -std=gnu2y, -Wc23-c2y-compat, C2Y _Generic with type operand
The first new C2Y feature, _Generic where the controlling operand is a
type name rather than an expression (as defined in N3260), was voted
into C2Y today.  (In particular, this form of _Generic allows
distinguishing qualified and unqualified versions of a type.)  This
feature also includes allowing the generic associations to specify
incomplete and function types.

Add this feature to GCC, along with the -std=c2y, -std=gnu2y and
-Wc23-c2y-compat options to control when and how it is diagnosed.  As
usual, the feature is allowed by default in older standards modes,
subject to diagnosis with -pedantic, -pedantic-errors or
-Wc23-c2y-compat.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/
	* doc/cpp.texi (__STDC_VERSION__): Document C2Y handling.
	* doc/invoke.texi (-Wc23-c2y-compat, -std=c2y, -std=gnu2y):
	Document options.
	(-std=gnu23): Update documentation.
	* doc/standards.texi (C Language): Document C2Y.  Update C23
	description.
	* config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y"
	language name.
	* dwarf2out.cc (highest_c_language, gen_compile_unit_die):
	Likewise.

gcc/c-family/
	* c-common.cc (flag_isoc2y): New.
	(flag_isoc99, flag_isoc11, flag_isoc23): Update comments.
	* c-common.h (flag_isoc2y): New.
	(clk_c, flag_isoc23): Update comments.
	* c-opts.cc (set_std_c2y): New.
	(c_common_handle_option): Handle OPT_std_c2y and OPT_std_gnu2y.
	(set_std_c89, set_std_c99, set_std_c11, set_std_c17, set_std_c23):
	Set flag_isoc2y.
	(set_std_c23): Update comment.
	* c.opt (Wc23-c2y-compat, std=c2y, std=gnu2y): New.
	* c.opt.urls: Regenerate.

gcc/c/
	* c-errors.cc (pedwarn_c23): New.
	* c-parser.cc (disable_extension_diagnostics)
	(restore_extension_diagnostics): Save and restore
	warn_c23_c2y_compat.
	(c_parser_generic_selection): Handle type name as controlling
	operand.  Allow incomplete and function types subject to
	pedwarn_c23 calls.
	* c-tree.h (pedwarn_c23): New.

gcc/testsuite/
	* gcc.dg/c23-generic-1.c, gcc.dg/c23-generic-2.c,
	gcc.dg/c23-generic-3.c, gcc.dg/c23-generic-4.c,
	gcc.dg/c2y-generic-1.c, gcc.dg/c2y-generic-2.c,
	gcc.dg/c2y-generic-3.c, gcc.dg/gnu2y-generic-1.c: New tests.
	* gcc.dg/c23-tag-6.c: Use -pedantic-errors.

libcpp/
	* include/cpplib.h (CLK_GNUC2Y, CLK_STDC2Y): New.
	* init.cc (lang_defaults): Add GNUC2Y and STDC2Y entries.
	(cpp_init_builtins): Define __STDC_VERSION__ to 202500L for GNUC2Y
	and STDC2Y.
2024-06-11 23:00:04 +00:00
Jakub Jelinek
a2452a6891 libcpp: Adjust __STDC_VERSION__ for C23
While the C23 standard isn't officially release yet,
in 2011 we've changed __STDC_VERSION__ value for C11 already
in the month in which the new __STDC_VERSION__ value has been
finalized, so we want to change this now or wait
until we implement all the C23 features?

Note, seems Clang up to 17 also used 202000L for -std=c2x but
Clang 18+ uses 202311L as specified in the latest C23 drafts.

2024-04-30  Jakub Jelinek  <jakub@redhat.com>

	* init.cc (cpp_init_builtins): Change __STDC_VERSION__
	for C23 from 202000L to 202311L.

	* doc/cpp.texi (__STDC_VERSION__): Document 202311L value
	for -std=c23/-std=gnu23.
2024-04-30 08:58:39 +02:00
Jakub Jelinek
a945c346f5 Update copyright years. 2024-01-03 12:19:35 +01:00
Alex Coplan
06280a906c c-family: Implement __has_feature and __has_extension [PR60512]
This patch implements clang's __has_feature and __has_extension in GCC.
Currently the patch aims to implement all documented features (and some
undocumented ones) following the documentation at
https://clang.llvm.org/docs/LanguageExtensions.html with the exception
of the legacy features for C++ type traits.  These are omitted, since as
the clang documentation notes, __has_builtin is the correct "modern" way
to query for these (which GCC already implements).

gcc/c-family/ChangeLog:

	PR c++/60512
	* c-common.cc (struct hf_feature_info): New.
	(c_common_register_feature): New.
	(init_has_feature): New.
	(has_feature_p): New.
	* c-common.h (c_common_has_feature): New.
	(c_family_register_lang_features): New.
	(c_common_register_feature): New.
	(has_feature_p): New.
	* c-lex.cc (init_c_lex): Plumb through has_feature callback.
	(c_common_has_builtin): Generalize and move common part ...
	(c_common_lex_availability_macro): ... here.
	(c_common_has_feature): New.
	* c-ppoutput.cc (init_pp_output): Plumb through has_feature.

gcc/c/ChangeLog:

	PR c++/60512
	* c-lang.cc (c_family_register_lang_features): New.
	* c-objc-common.cc (struct c_feature_info): New.
	(c_register_features): New.
	* c-objc-common.h (c_register_features): New.

gcc/cp/ChangeLog:

	PR c++/60512
	* cp-lang.cc (c_family_register_lang_features): New.
	* cp-objcp-common.cc (struct cp_feature_selector): New.
	(cp_feature_selector::has_feature): New.
	(struct cp_feature_info): New.
	(cp_register_features): New.
	* cp-objcp-common.h (cp_register_features): New.

gcc/ChangeLog:

	PR c++/60512
	* doc/cpp.texi: Document __has_{feature,extension}.

gcc/objc/ChangeLog:

	PR c++/60512
	* objc-act.cc (struct objc_feature_info): New.
	(objc_nonfragile_abi_p): New.
	(objc_common_register_features): New.
	* objc-act.h (objc_common_register_features): New.
	* objc-lang.cc (c_family_register_lang_features): New.

gcc/objcp/ChangeLog:

	PR c++/60512
	* objcp-lang.cc (c_family_register_lang_features): New.

libcpp/ChangeLog:

	PR c++/60512
	* include/cpplib.h (struct cpp_callbacks): Add has_feature.
	(enum cpp_builtin_type): Add BT_HAS_{FEATURE,EXTENSION}.
	* init.cc: Add __has_{feature,extension}.
	* macro.cc (_cpp_builtin_macro_text): Handle
	BT_HAS_{FEATURE,EXTENSION}.

gcc/testsuite/ChangeLog:

	PR c++/60512
	* c-c++-common/has-feature-common.c: New test.
	* c-c++-common/has-feature-pedantic.c: New test.
	* g++.dg/ext/has-feature.C: New test.
	* gcc.dg/asan/has-feature-asan.c: New test.
	* gcc.dg/has-feature.c: New test.
	* gcc.dg/ubsan/has-feature-ubsan.c: New test.
	* obj-c++.dg/has-feature.mm: New test.
	* objc.dg/has-feature.m: New test.

Co-Authored-By: Iain Sandoe <iain@sandoe.co.uk>
2023-11-27 10:42:55 +00:00
Joseph Myers
094a609c69 c: Refer more consistently to C23 not C2X
Continuing the move to refer to C23 in place of C2X throughout the
source tree, update documentation, diagnostics, comments, variable and
function names, etc., to use the C23 name.

Testsuite updates are left for a future patch, except for testcases
that test diagnostics that previously mentioned C2X (but in those
testcases, sometimes other comments are updated, not just the
diagnostic expectations).

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc/
	* builtins.def (DEF_C2X_BUILTIN): Rename to DEF_C23_BUILTIN and
	use flag_isoc23 and function_c23_misc.
	* config/rl78/rl78.cc (rl78_option_override): Compare
	lang_hooks.name with "GNU C23" not "GNU C2X".
	* coretypes.h (function_c2x_misc): Rename to function_c23_misc.
	* doc/cpp.texi (@code{__has_attribute}): Refer to C23 instead of
	C2x.
	* doc/extend.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* dwarf2out.cc (highest_c_language, gen_compile_unit_die): Compare
	against and return "GNU C23" language string instead of "GNU C2X".
	* ginclude/float.h: Refer to C23 instead of C2X in comments.
	* ginclude/stdint-gcc.h: Likewise.
	* glimits.h: Likewise.
	* tree.h: Likewise.

gcc/ada/
	* gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23.

gcc/c-family/
	* c-common.cc (flag_isoc2x): Rename to flag_isoc23.
	(c_common_reswords): Use D_C23 instead of D_C2X.
	* c-common.h: Refer throughout to C23 instead of C2X in comments.
	(D_C2X): Rename to D_C23.
	(flag_isoc2x): Rename to flag_isoc23.
	* c-cppbuiltin.cc (builtin_define_float_constants): Use
	flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of C2x
	in comments.
	* c-format.cc: Use STD_C23 instead of STD_C2X and flag_isoc23
	instead of flag_isoc2x.  Refer to C23 instead of C2X in comments.
	* c-format.h: Use STD_C23 instead of STD_C2X.
	* c-lex.cc: Use warn_c11_c23_compat instead of warn_c11_c2x_compat
	and flag_isoc23 instead of flag_isoc2x.  Refer to C23 instead of
	C2X in diagnostics.
	* c-opts.cc: Use flag_isoc23 instead of flag_isoc2x.  Refer to C23
	instead of C2X in comments.
	(set_std_c2x): Rename to set_std_c23.
	* c.opt (Wc11-c23-compat): Use CPP(cpp_warn_c11_c23_compat)
	CppReason(CPP_W_C11_C23_COMPAT) Var(warn_c11_c23_compat) instead
	of CPP(cpp_warn_c11_c2x_compat) CppReason(CPP_W_C11_C2X_COMPAT)
	Var(warn_c11_c2x_compat).

gcc/c/
	* c-decl.cc: Use flag_isoc23 instead of flag_isoc2x and c23_auto_p
	instead of c2x_auto_p.  Refer to C23 instead of C2X in diagnostics
	and comments.
	* c-errors.cc: Use flag_isoc23 instead of flag_isoc2x and
	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
	instead of C2X in comments.
	* c-parser.cc: Use flag_isoc23 instead of flag_isoc2x,
	warn_c11_c23_compat instead of warn_c11_c2x_compat, c23_auto_p
	instead of c2x_auto_p and D_C23 instead of D_C2X.  Refer to C23
	instead of C2X in diagnostics and comments.
	* c-tree.h: Refer to C23 instead of C2X in comments.
	(struct c_declspecs): Rename c2x_auto_p to c23_auto_p.
	* c-typeck.cc: Use flag_isoc23 instead of flag_isoc2x and
	warn_c11_c23_compat instead of warn_c11_c2x_compat.  Refer to C23
	instead of C2X in diagnostics and comments.

gcc/fortran/
	* gfortran.h (gfc_real_info): Refer to C23 instead of C2X in
	comment.

gcc/lto/
	* lto-lang.cc (flag_isoc2x): Rename to flag_isoc23.

gcc/testsuite/
	* gcc.dg/binary-constants-2.c: Refer to C23 instead of C2X.
	* gcc.dg/binary-constants-3.c: Likewise.
	* gcc.dg/bitint-23.c: Likewise.
	* gcc.dg/bitint-26.c: Likewise.
	* gcc.dg/bitint-27.c: Likewise.
	* gcc.dg/c11-attr-syntax-1.c: Likewise.
	* gcc.dg/c11-attr-syntax-2.c: Likewise.
	* gcc.dg/c11-floatn-1.c: Likewise.
	* gcc.dg/c11-floatn-2.c: Likewise.
	* gcc.dg/c11-floatn-3.c: Likewise.
	* gcc.dg/c11-floatn-4.c: Likewise.
	* gcc.dg/c11-floatn-5.c: Likewise.
	* gcc.dg/c11-floatn-6.c: Likewise.
	* gcc.dg/c11-floatn-7.c: Likewise.
	* gcc.dg/c11-floatn-8.c: Likewise.
	* gcc.dg/c2x-attr-syntax-4.c: Likewise.
	* gcc.dg/c2x-attr-syntax-6.c: Likewise.
	* gcc.dg/c2x-attr-syntax-7.c: Likewise.
	* gcc.dg/c2x-binary-constants-2.c: Likewise.
	* gcc.dg/c2x-floatn-5.c: Likewise.
	* gcc.dg/c2x-floatn-6.c: Likewise.
	* gcc.dg/c2x-floatn-7.c: Likewise.
	* gcc.dg/c2x-floatn-8.c: Likewise.
	* gcc.dg/c2x-nullptr-4.c: Likewise.
	* gcc.dg/c2x-qual-2.c: Likewise.
	* gcc.dg/c2x-qual-3.c: Likewise.
	* gcc.dg/c2x-qual-6.c: Likewise.
	* gcc.dg/cpp/c11-warning-1.c: Likewise.
	* gcc.dg/cpp/c11-warning-2.c: Likewise.
	* gcc.dg/cpp/c11-warning-3.c: Likewise.
	* gcc.dg/cpp/c2x-warning-2.c: Likewise.
	* gcc.dg/cpp/gnu11-elifdef-3.c: Likewise.
	* gcc.dg/cpp/gnu11-elifdef-4.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-1.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-2.c: Likewise.
	* gcc.dg/cpp/gnu11-warning-3.c: Likewise.
	* gcc.dg/cpp/gnu2x-warning-2.c: Likewise.
	* gcc.dg/dfp/c11-constants-1.c: Likewise.
	* gcc.dg/dfp/c11-constants-2.c: Likewise.
	* gcc.dg/dfp/c2x-constants-2.c: Likewise.
	* gcc.dg/dfp/constants-pedantic.c: Likewise.
	* gcc.dg/pr30260.c: Likewise.
	* gcc.dg/system-binary-constants-1.c: Likewise.

libcpp/
	* directives.cc: Refer to C23 instead of C2X in diagnostics and
	comments.
	(STDC2X): Rename to STDC23.
	* expr.cc: Use cpp_warn_c11_c23_compat instead of
	cpp_warn_c11_c2x_compat and CPP_W_C11_C23_COMPAT instead of
	CPP_W_C11_C2X_COMPAT.  Refer to C23 instead of C2X in diagnostics
	and comments.
	* include/cpplib.h: Refer to C23 instead of C2X in diagnostics and
	comments.
	(CLK_GNUC2X): Rename to CLK_GNUC23.
	(CLK_STDC2X): Rename to CLK_STDC23.
	(CPP_W_C11_C2X_COMPAT): Rename to CPP_W_C11_C23_COMPAT.
	* init.cc: Use GNUC23 instead of GNUC2X, STDC23 instead of STDC2X
	and cpp_warn_c11_c23_compat instead of cpp_warn_c11_c2x_compat.
	* lex.cc (maybe_va_opt_error): Refer to C23 instead of C2X in
	diagnostic.
	* macro.cc (_cpp_arguments_ok): Refer to C23 instead of C2X in
	comment.
2023-11-07 14:20:30 +00:00
Lewis Hyatt
cb05acdcea libcpp: Improve the diagnostic for poisoned identifiers [PR36887]
The PR requests an enhancement to the diagnostic issued for the use of a
poisoned identifier. Currently, we show the location of the usage, but not
the location which requested the poisoning, which would be helpful for the
user if the decision to poison an identifier was made externally, such as
in a library header.

In order to output this information, we need to remember a location_t for
each identifier that has been poisoned, and that data needs to be preserved
as well in a PCH. One option would be to add a field to struct cpp_hashnode,
but there is no convenient place to add it without increasing the size of
the struct for all identifiers. Given this facility will be needed rarely,
it seemed better to add a second hash map, which is handled PCH-wise the
same as the current one in gcc/stringpool.cc. This hash map associates a new
struct cpp_hashnode_extra with each identifier that needs one. Currently
that struct only contains the new location_t, but it could be extended in
the future if there is other ancillary data that may be convenient to put
there for other purposes.

libcpp/ChangeLog:

	PR preprocessor/36887
	* directives.cc (do_pragma_poison): Store in the extra hash map the
	location from which an identifier has been poisoned.
	* lex.cc (identifier_diagnostics_on_lex): When issuing a diagnostic
	for the use of a poisoned identifier, also add a note indicating the
	location from which it was poisoned.
	* identifiers.cc (alloc_node): Convert to template function.
	(_cpp_init_hashtable): Handle the new extra hash map.
	(_cpp_destroy_hashtable): Likewise.
	* include/cpplib.h (struct cpp_hashnode_extra): New struct.
	(cpp_create_reader): Update prototype to...
	* init.cc (cpp_create_reader): ...accept an argument for the extra
	hash table and pass it to _cpp_init_hashtable.
	* include/symtab.h (ht_lookup): New overload for convenience.
	* internal.h (struct cpp_reader): Add EXTRA_HASH_TABLE member.
	(_cpp_init_hashtable): Adjust prototype.

gcc/c-family/ChangeLog:

	PR preprocessor/36887
	* c-opts.cc (c_common_init_options): Pass new extra hash map
	argument to cpp_create_reader().

gcc/ChangeLog:

	PR preprocessor/36887
	* toplev.h (ident_hash_extra): Declare...
	* stringpool.cc (ident_hash_extra): ...this new global variable.
	(init_stringpool): Handle ident_hash_extra as well as ident_hash.
	(ggc_mark_stringpool): Likewise.
	(ggc_purge_stringpool): Likewise.
	(struct string_pool_data_extra): New struct.
	(spd2): New GC root variable.
	(gt_pch_save_stringpool): Use spd2 to handle ident_hash_extra,
	analogous to how spd is used to handle ident_hash.
	(gt_pch_restore_stringpool): Likewise.

gcc/testsuite/ChangeLog:

	PR preprocessor/36887
	* c-c++-common/cpp/diagnostic-poison.c: New test.
	* g++.dg/pch/pr36887.C: New test.
	* g++.dg/pch/pr36887.Hs: New test.
2023-10-23 18:35:26 -04:00
David Malcolm
45bae1809c libcpp: eliminate LINEMAPS_{,ORDINARY_,MACRO_}CACHE
It's simpler to use field access than to go through these inline
functions that look as if they are macros.

No functional change intended.

libcpp/ChangeLog:
	* include/line-map.h (maps_info_ordinary::cache): Rename to...
	(maps_info_ordinary::m_cache): ...this.
	(maps_info_macro::cache): Rename to...
	(maps_info_macro::m_cache): ...this.
	(LINEMAPS_CACHE): Delete.
	(LINEMAPS_ORDINARY_CACHE): Delete.
	(LINEMAPS_MACRO_CACHE): Delete.
	* init.cc (read_original_filename): Update for adding "m_" prefix.
	* line-map.cc (linemap_add): Eliminate LINEMAPS_ORDINARY_CACHE in
	favor of a simple field access.
	(linemap_enter_macro): Likewise for LINEMAPS_MACRO_CACHE.
	(linemap_ordinary_map_lookup): Likewise for
	LINEMAPS_ORDINARY_CACHE, twice.
	(linemap_lookup_macro_index): Likewise for LINEMAPS_MACRO_CACHE.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2023-10-08 18:43:17 -04:00
Ben Boeckel
024f135a1e p1689r5: initial support
This patch implements support for [P1689R5][] to communicate to a build
system the C++20 module dependencies to build systems so that they may
build `.gcm` files in the proper order.

Support is communicated through the following three new flags:

- `-fdeps-format=` specifies the format for the output. Currently named
  `p1689r5`.

- `-fdeps-file=` specifies the path to the file to write the format to.

- `-fdeps-target=` specifies the `.o` that will be written for the TU
  that is scanned. This is required so that the build system can
  correlate the dependency output with the actual compilation that will
  occur.

CMake supports this format as of 17 Jun 2022 (to be part of 3.25.0)
using an experimental feature selection (to allow for future usage
evolution without committing to how it works today). While it remains
experimental, docs may be found in CMake's documentation for
experimental features.

Future work may include using this format for Fortran module
dependencies as well, however this is still pending work.

[P1689R5]: https://isocpp.org/files/papers/P1689R5.html
[cmake-experimental]: https://gitlab.kitware.com/cmake/cmake/-/blob/master/Help/dev/experimental.rst

TODO:

- header-unit information fields

Header units (including the standard library headers) are 100%
unsupported right now because the `-E` mechanism wants to import their
BMIs. A new mode (i.e., something more workable than existing `-E`
behavior) that mocks up header units as if they were imported purely
from their path and content would be required.

- non-utf8 paths

The current standard says that paths that are not unambiguously
represented using UTF-8 are not supported (because these cases are rare
and the extra complication is not worth it at this time). Future
versions of the format might have ways of encoding non-UTF-8 paths. For
now, this patch just doesn't support non-UTF-8 paths (ignoring the
"unambiguously representable in UTF-8" case).

- figure out why junk gets placed at the end of the file

Sometimes it seems like the file gets a lot of `NUL` bytes appended to
it. It happens rarely and seems to be the result of some
`ftruncate`-style call which results in extra padding in the contents.
Noting it here as an observation at least.

libcpp/

	* include/cpplib.h: Add cpp_fdeps_format enum.
	(cpp_options): Add fdeps_format field
	(cpp_finish): Add structured dependency fdeps_stream parameter.
	* include/mkdeps.h (deps_add_module_target): Add flag for
	whether a module is exported or not.
	(fdeps_add_target): Add function.
	(deps_write_p1689r5): Add function.
	* init.cc (cpp_finish): Add new preprocessor parameter used for C++
	module tracking.
	* mkdeps.cc (mkdeps): Implement P1689R5 output.

gcc/

	* doc/invoke.texi: Document -fdeps-format=, -fdeps-file=, and
	-fdeps-target= flags.
	* gcc.cc: add defaults for -fdeps-target= and -fdeps-file= when
	only -fdeps-format= is specified.
	* json.h: Add a TODO item to refactor out to share with
	`libcpp/mkdeps.cc`.

gcc/c-family/

	* c-opts.cc (c_common_handle_option): Add fdeps_file variable and
	-fdeps-format=, -fdeps-file=, and -fdeps-target= parsing.
	* c.opt: Add -fdeps-format=, -fdeps-file=, and -fdeps-target=
	flags.

gcc/cp/

	* module.cc (preprocessed_module): Pass whether the module is
	exported to dependency tracking.

gcc/testsuite/

	* g++.dg/modules/depflags-f-MD.C: New test.
	* g++.dg/modules/depflags-f.C: New test.
	* g++.dg/modules/depflags-fi.C: New test.
	* g++.dg/modules/depflags-fj-MD.C: New test.
	* g++.dg/modules/depflags-fj.C: New test.
	* g++.dg/modules/depflags-fjo-MD.C: New test.
	* g++.dg/modules/depflags-fjo.C: New test.
	* g++.dg/modules/depflags-fo-MD.C: New test.
	* g++.dg/modules/depflags-fo.C: New test.
	* g++.dg/modules/depflags-j-MD.C: New test.
	* g++.dg/modules/depflags-j.C: New test.
	* g++.dg/modules/depflags-jo-MD.C: New test.
	* g++.dg/modules/depflags-jo.C: New test.
	* g++.dg/modules/depflags-o-MD.C: New test.
	* g++.dg/modules/depflags-o.C: New test.
	* g++.dg/modules/p1689-1.C: New test.
	* g++.dg/modules/p1689-1.exp.ddi: New test expectation.
	* g++.dg/modules/p1689-2.C: New test.
	* g++.dg/modules/p1689-2.exp.ddi: New test expectation.
	* g++.dg/modules/p1689-3.C: New test.
	* g++.dg/modules/p1689-3.exp.ddi: New test expectation.
	* g++.dg/modules/p1689-4.C: New test.
	* g++.dg/modules/p1689-4.exp.ddi: New test expectation.
	* g++.dg/modules/p1689-5.C: New test.
	* g++.dg/modules/p1689-5.exp.ddi: New test expectation.
	* g++.dg/modules/modules.exp: Load new P1689 library routines.
	* g++.dg/modules/test-p1689.py: New tool for validating P1689 output.
	* lib/modules.exp: Support for validating P1689 outputs.

Signed-off-by: Ben Boeckel <ben.boeckel@kitware.com>
Reviewed-by: Jason Merrill <jason@redhat.com>
2023-09-19 17:32:23 -04:00
Marek Polacek
5388a43f6a c++: Add support for -std={c,gnu}++2{c,6}
It seems prudent to add C++26 now that the first C++26 papers have been
approved.  I followed commit r11-6920 as well as r8-3237.

Since C++23 is essentially finished and its __cplusplus value has
settled to 202302L, I've updated cpp_init_builtins and marked
-std=c++2b Undocumented and made -std=c++23 no longer Undocumented.

As for __cplusplus, I've chosen 202400L:

  $ xg++ -std=c++26 -dM -E -x c++ - < /dev/null | grep cplusplus
  #define __cplusplus 202400L

I've verified the patch with a simple test, exercising the new
directives.  Don't forget to update your GXX_TESTSUITE_STDS!

This patch does not add -Wc++26-extensions.

gcc/c-family/ChangeLog:

	* c-common.h (cxx_dialect): Add cxx26 as a dialect.
	* c-opts.cc (set_std_cxx26): New.
	(c_common_handle_option): Set options when -std={c,gnu}++2{c,6} is
	enabled.
	(c_common_post_options): Adjust comments.
	* c.opt: Add options for -std=c++26, std=c++2c, -std=gnu++26,
	and -std=gnu++2c.
	(std=c++2b): Mark as Undocumented.
	(std=c++23): No longer Undocumented.

gcc/ChangeLog:

	* doc/cpp.texi (__cplusplus): Document value for -std=c++26 and
	-std=gnu++26.  Document that for C++23, its value is 202302L.
	* doc/invoke.texi: Document -std=c++26 and -std=gnu++26.
	* dwarf2out.cc (highest_c_language): Handle GNU C++26.
	(gen_compile_unit_die): Likewise.

libcpp/ChangeLog:

	* include/cpplib.h (c_lang): Add CXX26 and GNUCXX26.
	* init.cc (lang_defaults): Add rows for CXX26 and GNUCXX26.
	(cpp_init_builtins): Set __cplusplus to 202400L for C++26.
	Set __cplusplus to 202302L for C++23.

gcc/testsuite/ChangeLog:

	* lib/target-supports.exp (check_effective_target_c++23): Return
	1 also if check_effective_target_c++26.
	(check_effective_target_c++23_down): New.
	(check_effective_target_c++26_only): New.
	(check_effective_target_c++26): New.
	* g++.dg/cpp23/cplusplus.C: Adjust expected value.
	* g++.dg/cpp26/cplusplus.C: New test.
2023-06-23 16:46:29 -04:00
Jeff Law
33b6b79197 Revert "[PATCH] libcpp: suppress builtin macro redefined warnings for __LINE__"
This reverts commit e7ce7c4905.
2023-04-30 17:12:19 -06:00
Longjun Luo
e7ce7c4905 [PATCH] libcpp: suppress builtin macro redefined warnings for __LINE__
From 0821df518b264e754d698d399f98be1a62945e32 Mon Sep 17 00:00:00 2001
From: Longjun Luo <luolongjuna@gmail.com>
Date: Thu, 12 Jan 2023 23:59:54 +0800
Subject: [PATCH] libcpp: suppress builtin macro redefined warnings for
 __LINE__

As implied in
gcc.gnu.org/legacy-ml/gcc-patches/2008-09/msg00076.html,
gcc provides -Wno-builtin-macro-redefined to suppress warning when
redefining builtin macro. However, at that time, there was no
scenario for __LINE__ macro.

But, when we try to build a live-patch, we compare sections by using
-ffunction-sections. Some same functions are considered changed because
of __LINE__ macro.

At present, to detect such a changed caused by __LINE__ macro, we
have to analyse code and maintain a function list. For example,
in kpatch, check this commit
github.com/dynup/kpatch/commit/0e1b95edeafa36edb7bcf11da6d1c00f76d7e03d.

So, in this scenario, when we try to compared sections, it would
be better to support suppress builtin macro redefined warnings for
__LINE__ macro.

libcpp:
	* init.cc (builtin_array): Do not always warn for a redefinition
	of __LINE__.

gcc/testsuite

	* gcc.dg/builtin-redefine.c: Test for redefintion warnings
	for __LINE__.
	* gcc.dg/builtin-redefine-1.c: New test.
2023-04-30 12:28:06 -06:00
Jakub Jelinek
83ffe9cde7 Update copyright years. 2023-01-16 11:52:17 +01:00
Joseph Myers
ce53cf7b61 preprocessor: Enable __VA_OPT__ for C2x
C2x supports __VA_OPT__, so adjust libcpp not to pedwarn for uses of
it (or of not passing any variable arguments to a variable-arguments
macro) in standard C2x mode.

I didn't try to duplicate existing tests for the details of the
feature, just verified -pedantic-errors handling is as expected.  And
there's a reasonable argument (bug 98859) that __VA_OPT__ shouldn't be
diagnosed in older standard modes at all (as opposed to not passing
any variable arguments to a variable-arguments macro, for which older
versions of the C standard require a diagnostic as a constraint
violation); that argument applies to C as much as to C++, but I
haven't made any changes in that regard.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

libcpp/
	* init.cc (lang_defaults): Enable va_opt for STDC2X.
	* lex.cc (maybe_va_opt_error): Adjust diagnostic message for C.
	* macro.cc (_cpp_arguments_ok): Update comment.

gcc/testsuite/
	* gcc.dg/cpp/c11-vararg-1.c, gcc.dg/cpp/c2x-va-opt-1.c: New tests.
2022-12-07 19:18:06 +00:00
Joseph Myers
36d20fa4a8 preprocessor: C2x identifier rules
C2x has, like C++, adopted rules for identifiers based directly on an
unversioned normative reference to Unicode.  Make libcpp follow those
rules for c2x / gnu2x standards (this involves bringing back a flag
separate from the C++ one for whether to use these identifier rules,
but this time enabled for all C++ language versions since that was the
conclusion adopted for C++ identifier handling).

There is one change here that affects C++.  I believe the new
normative requirement for NFC only applies to identifiers, not to the
use of identifier-continue characters in pp-numbers, where there is no
such requirement and so the diagnostic ought to be a warning not a
pedwarn in pp-numbers, and that this is the case for both C and C++.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

libcpp/
	* charset.cc (ucn_valid_in_identifier): Check xid_identifiers not
	cplusplus to determine whether to use CXX23 and NXX23 flags.
	* include/cpplib.h (struct cpp_options): Add xid_identifiers.
	* init.cc (struct lang_flags, lang_defaults): Add xid_identifiers.
	(cpp_set_lang): Set xid_identifiers.
	* lex.cc (warn_about_normalization): Add parameter identifier.
	Only pedwarn about non-NFC for identifiers, not pp-numbers.
	(_cpp_lex_direct): Update calls to warn_about_normalization.

gcc/testsuite/
	* gcc.dg/cpp/c2x-ucnid-1-utf8.c, gcc.dg/cpp/c2x-ucnid-1.c: New
	tests.
2022-10-14 23:07:50 +00:00
Joseph Myers
0a91bdaf17 c: New C2x keywords
C2x follows C++ in making alignas, alignof, bool, false,
static_assert, thread_local and true keywords; implement this
accordingly.  This implementation makes them normal keywords in C2x
mode just like any other keyword (C2x leaves open the possibility of
implementation using predefined macros instead - thus, there aren't
any testcases asserting that they aren't macros).  As in C++ and
previous versions of C, true and false are handled like signed 1 and 0
in #if (there was an intermediate state in some C2x drafts where they
had different macro expansions that were unsigned in #if).

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

As with the removal of unprototyped functions, this change has a high
risk of breaking some old code and people doing GNU/Linux distribution
builds may wish to see how much is broken in a build with a -std=gnu2x
default.

gcc/
	* ginclude/stdalign.h [defined __STDC_VERSION__ &&
	__STDC_VERSION__ > 201710L]: Disable all content.
	* ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
	> 201710L] (bool, true, false): Do not define.

gcc/c-family/
	* c-common.cc (c_common_reswords): Use D_C2X instead of D_CXXONLY
	for alignas, alignof, bool, false, static_assert, thread_local and
	true.

gcc/c/
	* c-parser.cc (c_parser_static_assert_declaration_no_semi)
	(c_parser_alignas_specifier, c_parser_alignof_expression): Allow
	for C2x spellings of keywords.
	(c_parser_postfix_expression): Handle RID_TRUE and RID_FALSE.

gcc/testsuite/
	* gcc.dg/c11-keywords-1.c, gcc.dg/c2x-align-1.c,
	gcc.dg/c2x-align-6.c, gcc.dg/c2x-bool-2.c,
	gcc.dg/c2x-static-assert-3.c, gcc.dg/c2x-static-assert-4.c,
	gcc.dg/c2x-thread-local-1.c: New tests.
	* gcc.dg/c2x-bool-1.c: Update expectations.

libcpp/
	* include/cpplib.h (struct cpp_options): Add true_false.
	* expr.cc (eval_token): Check true_false not cplusplus to
	determine whether to handle true and false keywords.
	* init.cc (struct lang_flags): Add true_false.
	(lang_defaults): Update.
	(cpp_set_lang): Set true_false.
2022-09-07 13:56:46 +00:00
Jakub Jelinek
572f5e1bc6 libcpp: Named universal character escapes and delimited escape sequence tweaks
On Tue, Aug 30, 2022 at 09:10:37PM +0000, Joseph Myers wrote:
> I'm seeing build failures of glibc for powerpc64, as illustrated by the
> following C code:
>
> #if 0
> \NARG
> #endif
>
> (the actual sysdeps/powerpc/powerpc64/sysdep.h code is inside #ifdef
> __ASSEMBLER__).
>
> This shows some problems with this feature - and with delimited escape
> sequences - as it affects C.  It's fine to accept it as an extension
> inside string and character literals, because \N or \u{...} would be
> invalid in the absence of the feature (i.e. the syntax for such literals
> fails to match, meaning that the rule about undefined behavior for a
> single ' or " as a pp-token applies).  But outside string and character
> literals, the usual lexing rules apply, the \ is a pp-token on its own and
> the code is valid at the preprocessing level, and with expansion of macros
> appearing before or after the \ (e.g. u defined as a macro in the \u{...}
> case) it may be valid code at the language level as well.  I don't know
> what older C++ versions say about this, but for C this means e.g.
>
> #define z(x) 0
> #define a z(
> int x = a\NARG);
>
> needs to be accepted as expanding to "int x = 0;", not interpreted as
> using the \N feature in an identifier and produce an error.

The following patch changes this, so that:
1) outside of string/character literals, \N without following { is never
   treated as an error nor warning, it is silently treated as \ separate
   token followed by whatever is after it
2) \u{123} and \N{LATIN SMALL LETTER A WITH ACUTE} are not handled as
   extension at all outside of string/character literals in the strict
   standard modes (-std=c*) except for -std=c++{23,2b}, only in the
   -std=gnu* modes, because it changes behavior on valid sources, e.g.
   #define z(x) 0
   #define a z(
   int x = a\u{123});
   int y = a\N{LATIN SMALL LETTER A WITH ACUTE});
3) introduces -Wunicode warning (on by default) and warns for cases
   of what looks like invalid delimited escape sequence or named
   universal character escape outside of string/character literals
   and is treated as separate tokens

2022-09-07  Jakub Jelinek  <jakub@redhat.com>

libcpp/
	* include/cpplib.h (struct cpp_options): Add cpp_warn_unicode member.
	(enum cpp_warning_reason): Add CPP_W_UNICODE.
	* init.cc (cpp_create_reader): Initialize cpp_warn_unicode.
	* charset.cc (_cpp_valid_ucn): In possible identifier contexts, don't
	handle \u{ or \N{ specially in -std=c* modes except -std=c++2{3,b}.
	In possible identifier contexts, don't emit an error and punt
	if \N isn't followed by {, or if \N{} surrounds some lower case
	letters or _.  In possible identifier contexts when not C++23, don't
	emit an error but warning about unknown character names and treat as
	separate tokens.  When treating as separate tokens \u{ or \N{, emit
	warnings.
gcc/
	* doc/invoke.texi (-Wno-unicode): Document.
gcc/c-family/
	* c.opt (Winvalid-utf8): Use ObjC instead of objC.  Remove
	" in comments" from description.
	(Wunicode): New option.
gcc/testsuite/
	* c-c++-common/cpp/delimited-escape-seq-4.c: New test.
	* c-c++-common/cpp/delimited-escape-seq-5.c: New test.
	* c-c++-common/cpp/delimited-escape-seq-6.c: New test.
	* c-c++-common/cpp/delimited-escape-seq-7.c: New test.
	* c-c++-common/cpp/named-universal-char-escape-5.c: New test.
	* c-c++-common/cpp/named-universal-char-escape-6.c: New test.
	* c-c++-common/cpp/named-universal-char-escape-7.c: New test.
	* g++.dg/cpp23/named-universal-char-escape1.C: New test.
	* g++.dg/cpp23/named-universal-char-escape2.C: New test.
2022-09-07 08:44:38 +02:00
Joseph Myers
5f38bf14bc preprocessor: Disable trigraphs for C2x
ISO C2x removes trigraphs, so disable them accordingly for -std=c2x
(they can still be enabled using -trigraphs).

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

libcpp/
	* init.cc (lang_defaults): Disable trigraphs for C2x.

gcc/testsuite/
	* gcc.dg/cpp/c11-trigraphs-1.c, gcc.dg/cpp/c2x-trigraphs-1.c,
	gcc.dg/cpp/c2x-trigraphs-2.c: New tests.
2022-09-05 22:05:06 +00:00
Jakub Jelinek
0b8c57ed40 libcpp: Add -Winvalid-utf8 warning [PR106655]
The following patch introduces a new warning - -Winvalid-utf8 similarly
to what clang now has - to diagnose invalid UTF-8 byte sequences in
comments, but not just in those, but also in string/character literals
and outside of them.

The warning is on by default when explicit -finput-charset=UTF-8 is
used and C++23 compilation is requested and if -{,W}pedantic or
-pedantic-errors it is actually a pedwarn.

The reason it is on by default only for -finput-charset=UTF-8 is
that the sources often are UTF-8, but sometimes could be some ASCII
compatible single byte encoding where non-ASCII characters only
appear in comments.  So having the warning off by default
is IMO desirable.  The C++23 pedantic mode for when the source code
is UTF-8 is -std=c++23 -pedantic-errors -finput-charset=UTF-8.

2022-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106655
libcpp/
	* include/cpplib.h (struct cpp_options): Implement C++23
	P2295R6 - Support for UTF-8 as a portable source file encoding.
	Add cpp_warn_invalid_utf8 and cpp_input_charset_explicit fields.
	(enum cpp_warning_reason): Add CPP_W_INVALID_UTF8 enumerator.
	* init.cc (cpp_create_reader): Initialize cpp_warn_invalid_utf8
	and cpp_input_charset_explicit.
	* charset.cc (_cpp_valid_utf8): Adjust function comment.
	* lex.cc (UCS_LIMIT): Define.
	(utf8_continuation): New const variable.
	(utf8_signifier): Move earlier in the file.
	(_cpp_warn_invalid_utf8, _cpp_handle_multibyte_utf8): New functions.
	(_cpp_skip_block_comment): Handle -Winvalid-utf8 warning.
	(skip_line_comment): Likewise.
	(lex_raw_string, lex_string): Likewise.
	(_cpp_lex_direct): Likewise.
gcc/
	* doc/invoke.texi (-Winvalid-utf8): Document it.
gcc/c-family/
	* c.opt (-Winvalid-utf8): New warning.
	* c-opts.cc (c_common_handle_option) <case OPT_finput_charset_>:
	Set cpp_opts->cpp_input_charset_explicit.
	(c_common_post_options): If -finput-charset=UTF-8 is explicit
	in C++23, enable -Winvalid-utf8 by default and if -pedantic
	or -pedantic-errors, make it a pedwarn.
gcc/testsuite/
	* c-c++-common/cpp/Winvalid-utf8-1.c: New test.
	* c-c++-common/cpp/Winvalid-utf8-2.c: New test.
	* c-c++-common/cpp/Winvalid-utf8-3.c: New test.
	* g++.dg/cpp23/Winvalid-utf8-1.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-2.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-3.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-4.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-5.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-6.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-7.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-8.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-9.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-10.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-11.C: New test.
	* g++.dg/cpp23/Winvalid-utf8-12.C: New test.
2022-09-01 09:56:44 +02:00
Jakub Jelinek
365202625d preprocessor: Implement C++23 P2437R1 - Support for #warning [PR106646]
On Thu, Aug 18, 2022 at 11:02:44PM +0000, Joseph Myers wrote:
> ISO C2x standardizes the existing #warning extension.  Arrange
> accordingly for it not to be diagnosed with -std=c2x -pedantic, but to
> be diagnosed with -Wc11-c2x-compat.

And here is the corresponding C++ version.
Don't pedwarn about this for C++23/GNU++23 and tweak the diagnostics
for C++ otherwise, + testsuite coverage.
The diagnostic wording is similar e.g. to the #elifdef diagnostics.

2022-08-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106646
	* init.cc: Implement C++23 P2437R1 - Support for #warning.
	(lang_defaults): Set warning_directive for GNUCXX23 and CXX23.
	* directives.cc (directive_diagnostics): Use different wording of
	#warning pedwarn for C++.

	* g++.dg/cpp/warning-1.C: New test.
	* g++.dg/cpp/warning-2.C: New test.
	* g++.dg/cpp/warning-3.C: New test.
2022-08-24 09:55:57 +02:00
Jakub Jelinek
e9dd050e0c libcpp: Implement C++23 P2290R3 - Delimited escape sequences [PR106645]
The following patch implements the C++23 P2290R3 paper.

2022-08-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106645
libcpp/
	* include/cpplib.h (struct cpp_options): Implement
	P2290R3 - Delimited escape sequences.  Add delimite_escape_seqs
	member.
	* init.cc (struct lang_flags): Likewise.
	(lang_defaults): Add delim column.
	(cpp_set_lang): Copy over delimite_escape_seqs.
	* charset.cc (extend_char_range): New function.
	(_cpp_valid_ucn): Use it.  Handle delimited escape sequences.
	(convert_hex): Likewise.
	(convert_oct): Likewise.
	(convert_ucn): Use extend_char_range.
	(convert_escape): Call convert_oct even for \o.
	(_cpp_interpret_identifier): Handle delimited escape sequences.
	* lex.cc (get_bidi_ucn_1): Likewise.  Add end argument, fill it in.
	(get_bidi_ucn): Adjust get_bidi_ucn_1 caller.  Use end argument to
	compute num_bytes.
gcc/testsuite/
	* c-c++-common/cpp/delimited-escape-seq-1.c: New test.
	* c-c++-common/cpp/delimited-escape-seq-2.c: New test.
	* c-c++-common/cpp/delimited-escape-seq-3.c: New test.
	* c-c++-common/Wbidi-chars-24.c: New test.
	* gcc.dg/cpp/delimited-escape-seq-1.c: New test.
	* gcc.dg/cpp/delimited-escape-seq-2.c: New test.
	* g++.dg/cpp/delimited-escape-seq-1.C: New test.
	* g++.dg/cpp/delimited-escape-seq-2.C: New test.
2022-08-20 10:26:55 +02:00
Joseph Myers
d7c3000147 preprocessor: Support #warning for standard C2x
ISO C2x standardizes the existing #warning extension.  Arrange
accordingly for it not to be diagnosed with -std=c2x -pedantic, but to
be diagnosed with -Wc11-c2x-compat.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc/testsuite/
	* gcc.dg/cpp/c11-warning-1.c, gcc.dg/cpp/c11-warning-2.c,
	gcc.dg/cpp/c11-warning-3.c, gcc.dg/cpp/c11-warning-4.c,
	gcc.dg/cpp/c2x-warning-1.c, gcc.dg/cpp/c2x-warning-2.c,
	gcc.dg/cpp/gnu11-warning-1.c, gcc.dg/cpp/gnu11-warning-2.c,
	gcc.dg/cpp/gnu11-warning-3.c, gcc.dg/cpp/gnu11-warning-4.c,
	gcc.dg/cpp/gnu2x-warning-1.c, gcc.dg/cpp/gnu2x-warning-2.c: New
	tests.

libcpp/
	* include/cpplib.h (struct cpp_options): Add warning_directive.
	* init.cc (struct lang_flags, lang_defaults): Add
	warning_directive.
	* directives.cc (DIRECTIVE_TABLE): Mark #warning as STDC2X not
	EXTENSION.
	(directive_diagnostics): Diagnose #warning with -Wc11-c2x-compat,
	or with -pedantic for a standard not supporting #warning.
2022-08-18 23:01:01 +00:00
Tom Honermann
60468d6cd4 c++: Fix pragma suppression of -Wc++20-compat diagnostics [PR106423]
Gcc's '#pragma GCC diagnostic' directives are processed in "early mode"
(see handle_pragma_diagnostic_early) for the C++ frontend and, as such,
require that the target diagnostic option be enabled for the preprocessor
(see c_option_is_from_cpp_diagnostics).  This change modifies the
-Wc++20-compat option definition to register it as a preprocessor option
so that its associated diagnostics can be suppressed.  The changes also
implicitly disable the option in C++20 and later modes.  These changes
are consistent with the definition of the -Wc++11-compat option.

This support is motivated by the need to suppress the following diagnostic
otherwise issued in C++17 and earlier modes due to the char8_t typedef
present in the uchar.h header file in glibc 2.36.
  warning: identifier ‘char8_t’ is a keyword in C++20 [-Wc++20-compat]

Tests are added to validate suppression of both -Wc++11-compat and
-Wc++20-compat related diagnostics (fixes were only needed for the C++20
case).

	PR c++/106423

gcc/c-family/ChangeLog:
	* c-opts.cc (c_common_post_options): Disable -Wc++20-compat
	diagnostics in C++20 and later.
	* c.opt (Wc++20-compat): Enable hooks for the preprocessor.

gcc/cp/ChangeLog:
	* parser.cc (cp_lexer_saving_tokens): Add comment regarding
	diagnostic requirements.

gcc/testsuite/ChangeLog:
	* g++.dg/cpp0x/keywords2.C: New test.
	* g++.dg/cpp2a/keywords2.C: New test.

libcpp/ChangeLog:
	* include/cpplib.h (cpp_warning_reason): Add CPP_W_CXX20_COMPAT.
	* init.cc (cpp_create_reader): Add cpp_warn_cxx20_compat.
2022-08-16 15:15:38 -04:00
Tom Honermann
053876cdbe preprocessor/106426: Treat u8 character literals as unsigned in char8_t modes.
This patch corrects handling of UTF-8 character literals in preprocessing
directives so that they are treated as unsigned types in char8_t enabled
C++ modes (C++17 with -fchar8_t or C++20 without -fno-char8_t). Previously,
UTF-8 character literals were always treated as having the same type as
ordinary character literals (signed or unsigned dependent on target or use
of the -fsigned-char or -funsigned char options).

	PR preprocessor/106426

gcc/c-family/ChangeLog:
	* c-opts.cc (c_common_post_options): Assign cpp_opts->unsigned_utf8char
	subject to -fchar8_t, -fsigned-char, and/or -funsigned-char.

gcc/testsuite/ChangeLog:
	* g++.dg/ext/char8_t-char-literal-1.C: Check signedness of u8 literals.
	* g++.dg/ext/char8_t-char-literal-2.C: Check signedness of u8 literals.

libcpp/ChangeLog:
	* charset.cc (narrow_str_to_charconst): Set signedness of CPP_UTF8CHAR
	literals based on unsigned_utf8char.
	* include/cpplib.h (cpp_options): Add unsigned_utf8char.
	* init.cc (cpp_create_reader): Initialize unsigned_utf8char.
2022-08-08 19:50:40 +00:00
Martin Liska
e53b6e564a Change references of .c files to .cc files
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.
2022-01-17 22:12:07 +01:00
Martin Liska
5c69acb323 Rename .c files to .cc files.
gcc/ada/ChangeLog:

	* adadecode.c: Moved to...
	* adadecode.cc: ...here.
	* affinity.c: Moved to...
	* affinity.cc: ...here.
	* argv-lynxos178-raven-cert.c: Moved to...
	* argv-lynxos178-raven-cert.cc: ...here.
	* argv.c: Moved to...
	* argv.cc: ...here.
	* aux-io.c: Moved to...
	* aux-io.cc: ...here.
	* cio.c: Moved to...
	* cio.cc: ...here.
	* cstreams.c: Moved to...
	* cstreams.cc: ...here.
	* env.c: Moved to...
	* env.cc: ...here.
	* exit.c: Moved to...
	* exit.cc: ...here.
	* expect.c: Moved to...
	* expect.cc: ...here.
	* final.c: Moved to...
	* final.cc: ...here.
	* gcc-interface/cuintp.c: Moved to...
	* gcc-interface/cuintp.cc: ...here.
	* gcc-interface/decl.c: Moved to...
	* gcc-interface/decl.cc: ...here.
	* gcc-interface/misc.c: Moved to...
	* gcc-interface/misc.cc: ...here.
	* gcc-interface/targtyps.c: Moved to...
	* gcc-interface/targtyps.cc: ...here.
	* gcc-interface/trans.c: Moved to...
	* gcc-interface/trans.cc: ...here.
	* gcc-interface/utils.c: Moved to...
	* gcc-interface/utils.cc: ...here.
	* gcc-interface/utils2.c: Moved to...
	* gcc-interface/utils2.cc: ...here.
	* init.c: Moved to...
	* init.cc: ...here.
	* initialize.c: Moved to...
	* initialize.cc: ...here.
	* libgnarl/thread.c: Moved to...
	* libgnarl/thread.cc: ...here.
	* link.c: Moved to...
	* link.cc: ...here.
	* locales.c: Moved to...
	* locales.cc: ...here.
	* mkdir.c: Moved to...
	* mkdir.cc: ...here.
	* raise.c: Moved to...
	* raise.cc: ...here.
	* rtfinal.c: Moved to...
	* rtfinal.cc: ...here.
	* rtinit.c: Moved to...
	* rtinit.cc: ...here.
	* seh_init.c: Moved to...
	* seh_init.cc: ...here.
	* sigtramp-armdroid.c: Moved to...
	* sigtramp-armdroid.cc: ...here.
	* sigtramp-ios.c: Moved to...
	* sigtramp-ios.cc: ...here.
	* sigtramp-qnx.c: Moved to...
	* sigtramp-qnx.cc: ...here.
	* sigtramp-vxworks.c: Moved to...
	* sigtramp-vxworks.cc: ...here.
	* socket.c: Moved to...
	* socket.cc: ...here.
	* tracebak.c: Moved to...
	* tracebak.cc: ...here.
	* version.c: Moved to...
	* version.cc: ...here.
	* vx_stack_info.c: Moved to...
	* vx_stack_info.cc: ...here.

gcc/ChangeLog:

	* adjust-alignment.c: Moved to...
	* adjust-alignment.cc: ...here.
	* alias.c: Moved to...
	* alias.cc: ...here.
	* alloc-pool.c: Moved to...
	* alloc-pool.cc: ...here.
	* asan.c: Moved to...
	* asan.cc: ...here.
	* attribs.c: Moved to...
	* attribs.cc: ...here.
	* auto-inc-dec.c: Moved to...
	* auto-inc-dec.cc: ...here.
	* auto-profile.c: Moved to...
	* auto-profile.cc: ...here.
	* bb-reorder.c: Moved to...
	* bb-reorder.cc: ...here.
	* bitmap.c: Moved to...
	* bitmap.cc: ...here.
	* btfout.c: Moved to...
	* btfout.cc: ...here.
	* builtins.c: Moved to...
	* builtins.cc: ...here.
	* caller-save.c: Moved to...
	* caller-save.cc: ...here.
	* calls.c: Moved to...
	* calls.cc: ...here.
	* ccmp.c: Moved to...
	* ccmp.cc: ...here.
	* cfg.c: Moved to...
	* cfg.cc: ...here.
	* cfganal.c: Moved to...
	* cfganal.cc: ...here.
	* cfgbuild.c: Moved to...
	* cfgbuild.cc: ...here.
	* cfgcleanup.c: Moved to...
	* cfgcleanup.cc: ...here.
	* cfgexpand.c: Moved to...
	* cfgexpand.cc: ...here.
	* cfghooks.c: Moved to...
	* cfghooks.cc: ...here.
	* cfgloop.c: Moved to...
	* cfgloop.cc: ...here.
	* cfgloopanal.c: Moved to...
	* cfgloopanal.cc: ...here.
	* cfgloopmanip.c: Moved to...
	* cfgloopmanip.cc: ...here.
	* cfgrtl.c: Moved to...
	* cfgrtl.cc: ...here.
	* cgraph.c: Moved to...
	* cgraph.cc: ...here.
	* cgraphbuild.c: Moved to...
	* cgraphbuild.cc: ...here.
	* cgraphclones.c: Moved to...
	* cgraphclones.cc: ...here.
	* cgraphunit.c: Moved to...
	* cgraphunit.cc: ...here.
	* collect-utils.c: Moved to...
	* collect-utils.cc: ...here.
	* collect2-aix.c: Moved to...
	* collect2-aix.cc: ...here.
	* collect2.c: Moved to...
	* collect2.cc: ...here.
	* combine-stack-adj.c: Moved to...
	* combine-stack-adj.cc: ...here.
	* combine.c: Moved to...
	* combine.cc: ...here.
	* common/common-targhooks.c: Moved to...
	* common/common-targhooks.cc: ...here.
	* common/config/aarch64/aarch64-common.c: Moved to...
	* common/config/aarch64/aarch64-common.cc: ...here.
	* common/config/alpha/alpha-common.c: Moved to...
	* common/config/alpha/alpha-common.cc: ...here.
	* common/config/arc/arc-common.c: Moved to...
	* common/config/arc/arc-common.cc: ...here.
	* common/config/arm/arm-common.c: Moved to...
	* common/config/arm/arm-common.cc: ...here.
	* common/config/avr/avr-common.c: Moved to...
	* common/config/avr/avr-common.cc: ...here.
	* common/config/bfin/bfin-common.c: Moved to...
	* common/config/bfin/bfin-common.cc: ...here.
	* common/config/bpf/bpf-common.c: Moved to...
	* common/config/bpf/bpf-common.cc: ...here.
	* common/config/c6x/c6x-common.c: Moved to...
	* common/config/c6x/c6x-common.cc: ...here.
	* common/config/cr16/cr16-common.c: Moved to...
	* common/config/cr16/cr16-common.cc: ...here.
	* common/config/cris/cris-common.c: Moved to...
	* common/config/cris/cris-common.cc: ...here.
	* common/config/csky/csky-common.c: Moved to...
	* common/config/csky/csky-common.cc: ...here.
	* common/config/default-common.c: Moved to...
	* common/config/default-common.cc: ...here.
	* common/config/epiphany/epiphany-common.c: Moved to...
	* common/config/epiphany/epiphany-common.cc: ...here.
	* common/config/fr30/fr30-common.c: Moved to...
	* common/config/fr30/fr30-common.cc: ...here.
	* common/config/frv/frv-common.c: Moved to...
	* common/config/frv/frv-common.cc: ...here.
	* common/config/gcn/gcn-common.c: Moved to...
	* common/config/gcn/gcn-common.cc: ...here.
	* common/config/h8300/h8300-common.c: Moved to...
	* common/config/h8300/h8300-common.cc: ...here.
	* common/config/i386/i386-common.c: Moved to...
	* common/config/i386/i386-common.cc: ...here.
	* common/config/ia64/ia64-common.c: Moved to...
	* common/config/ia64/ia64-common.cc: ...here.
	* common/config/iq2000/iq2000-common.c: Moved to...
	* common/config/iq2000/iq2000-common.cc: ...here.
	* common/config/lm32/lm32-common.c: Moved to...
	* common/config/lm32/lm32-common.cc: ...here.
	* common/config/m32r/m32r-common.c: Moved to...
	* common/config/m32r/m32r-common.cc: ...here.
	* common/config/m68k/m68k-common.c: Moved to...
	* common/config/m68k/m68k-common.cc: ...here.
	* common/config/mcore/mcore-common.c: Moved to...
	* common/config/mcore/mcore-common.cc: ...here.
	* common/config/microblaze/microblaze-common.c: Moved to...
	* common/config/microblaze/microblaze-common.cc: ...here.
	* common/config/mips/mips-common.c: Moved to...
	* common/config/mips/mips-common.cc: ...here.
	* common/config/mmix/mmix-common.c: Moved to...
	* common/config/mmix/mmix-common.cc: ...here.
	* common/config/mn10300/mn10300-common.c: Moved to...
	* common/config/mn10300/mn10300-common.cc: ...here.
	* common/config/msp430/msp430-common.c: Moved to...
	* common/config/msp430/msp430-common.cc: ...here.
	* common/config/nds32/nds32-common.c: Moved to...
	* common/config/nds32/nds32-common.cc: ...here.
	* common/config/nios2/nios2-common.c: Moved to...
	* common/config/nios2/nios2-common.cc: ...here.
	* common/config/nvptx/nvptx-common.c: Moved to...
	* common/config/nvptx/nvptx-common.cc: ...here.
	* common/config/or1k/or1k-common.c: Moved to...
	* common/config/or1k/or1k-common.cc: ...here.
	* common/config/pa/pa-common.c: Moved to...
	* common/config/pa/pa-common.cc: ...here.
	* common/config/pdp11/pdp11-common.c: Moved to...
	* common/config/pdp11/pdp11-common.cc: ...here.
	* common/config/pru/pru-common.c: Moved to...
	* common/config/pru/pru-common.cc: ...here.
	* common/config/riscv/riscv-common.c: Moved to...
	* common/config/riscv/riscv-common.cc: ...here.
	* common/config/rs6000/rs6000-common.c: Moved to...
	* common/config/rs6000/rs6000-common.cc: ...here.
	* common/config/rx/rx-common.c: Moved to...
	* common/config/rx/rx-common.cc: ...here.
	* common/config/s390/s390-common.c: Moved to...
	* common/config/s390/s390-common.cc: ...here.
	* common/config/sh/sh-common.c: Moved to...
	* common/config/sh/sh-common.cc: ...here.
	* common/config/sparc/sparc-common.c: Moved to...
	* common/config/sparc/sparc-common.cc: ...here.
	* common/config/tilegx/tilegx-common.c: Moved to...
	* common/config/tilegx/tilegx-common.cc: ...here.
	* common/config/tilepro/tilepro-common.c: Moved to...
	* common/config/tilepro/tilepro-common.cc: ...here.
	* common/config/v850/v850-common.c: Moved to...
	* common/config/v850/v850-common.cc: ...here.
	* common/config/vax/vax-common.c: Moved to...
	* common/config/vax/vax-common.cc: ...here.
	* common/config/visium/visium-common.c: Moved to...
	* common/config/visium/visium-common.cc: ...here.
	* common/config/xstormy16/xstormy16-common.c: Moved to...
	* common/config/xstormy16/xstormy16-common.cc: ...here.
	* common/config/xtensa/xtensa-common.c: Moved to...
	* common/config/xtensa/xtensa-common.cc: ...here.
	* compare-elim.c: Moved to...
	* compare-elim.cc: ...here.
	* config/aarch64/aarch64-bti-insert.c: Moved to...
	* config/aarch64/aarch64-bti-insert.cc: ...here.
	* config/aarch64/aarch64-builtins.c: Moved to...
	* config/aarch64/aarch64-builtins.cc: ...here.
	* config/aarch64/aarch64-c.c: Moved to...
	* config/aarch64/aarch64-c.cc: ...here.
	* config/aarch64/aarch64-d.c: Moved to...
	* config/aarch64/aarch64-d.cc: ...here.
	* config/aarch64/aarch64.c: Moved to...
	* config/aarch64/aarch64.cc: ...here.
	* config/aarch64/cortex-a57-fma-steering.c: Moved to...
	* config/aarch64/cortex-a57-fma-steering.cc: ...here.
	* config/aarch64/driver-aarch64.c: Moved to...
	* config/aarch64/driver-aarch64.cc: ...here.
	* config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
	* config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
	* config/aarch64/host-aarch64-darwin.c: Moved to...
	* config/aarch64/host-aarch64-darwin.cc: ...here.
	* config/alpha/alpha.c: Moved to...
	* config/alpha/alpha.cc: ...here.
	* config/alpha/driver-alpha.c: Moved to...
	* config/alpha/driver-alpha.cc: ...here.
	* config/arc/arc-c.c: Moved to...
	* config/arc/arc-c.cc: ...here.
	* config/arc/arc.c: Moved to...
	* config/arc/arc.cc: ...here.
	* config/arc/driver-arc.c: Moved to...
	* config/arc/driver-arc.cc: ...here.
	* config/arm/aarch-common.c: Moved to...
	* config/arm/aarch-common.cc: ...here.
	* config/arm/arm-builtins.c: Moved to...
	* config/arm/arm-builtins.cc: ...here.
	* config/arm/arm-c.c: Moved to...
	* config/arm/arm-c.cc: ...here.
	* config/arm/arm-d.c: Moved to...
	* config/arm/arm-d.cc: ...here.
	* config/arm/arm.c: Moved to...
	* config/arm/arm.cc: ...here.
	* config/arm/driver-arm.c: Moved to...
	* config/arm/driver-arm.cc: ...here.
	* config/avr/avr-c.c: Moved to...
	* config/avr/avr-c.cc: ...here.
	* config/avr/avr-devices.c: Moved to...
	* config/avr/avr-devices.cc: ...here.
	* config/avr/avr-log.c: Moved to...
	* config/avr/avr-log.cc: ...here.
	* config/avr/avr.c: Moved to...
	* config/avr/avr.cc: ...here.
	* config/avr/driver-avr.c: Moved to...
	* config/avr/driver-avr.cc: ...here.
	* config/avr/gen-avr-mmcu-specs.c: Moved to...
	* config/avr/gen-avr-mmcu-specs.cc: ...here.
	* config/avr/gen-avr-mmcu-texi.c: Moved to...
	* config/avr/gen-avr-mmcu-texi.cc: ...here.
	* config/bfin/bfin.c: Moved to...
	* config/bfin/bfin.cc: ...here.
	* config/bpf/bpf.c: Moved to...
	* config/bpf/bpf.cc: ...here.
	* config/bpf/coreout.c: Moved to...
	* config/bpf/coreout.cc: ...here.
	* config/c6x/c6x.c: Moved to...
	* config/c6x/c6x.cc: ...here.
	* config/cr16/cr16.c: Moved to...
	* config/cr16/cr16.cc: ...here.
	* config/cris/cris.c: Moved to...
	* config/cris/cris.cc: ...here.
	* config/csky/csky.c: Moved to...
	* config/csky/csky.cc: ...here.
	* config/darwin-c.c: Moved to...
	* config/darwin-c.cc: ...here.
	* config/darwin-d.c: Moved to...
	* config/darwin-d.cc: ...here.
	* config/darwin-driver.c: Moved to...
	* config/darwin-driver.cc: ...here.
	* config/darwin-f.c: Moved to...
	* config/darwin-f.cc: ...here.
	* config/darwin.c: Moved to...
	* config/darwin.cc: ...here.
	* config/default-c.c: Moved to...
	* config/default-c.cc: ...here.
	* config/default-d.c: Moved to...
	* config/default-d.cc: ...here.
	* config/dragonfly-d.c: Moved to...
	* config/dragonfly-d.cc: ...here.
	* config/epiphany/epiphany.c: Moved to...
	* config/epiphany/epiphany.cc: ...here.
	* config/epiphany/mode-switch-use.c: Moved to...
	* config/epiphany/mode-switch-use.cc: ...here.
	* config/epiphany/resolve-sw-modes.c: Moved to...
	* config/epiphany/resolve-sw-modes.cc: ...here.
	* config/fr30/fr30.c: Moved to...
	* config/fr30/fr30.cc: ...here.
	* config/freebsd-d.c: Moved to...
	* config/freebsd-d.cc: ...here.
	* config/frv/frv.c: Moved to...
	* config/frv/frv.cc: ...here.
	* config/ft32/ft32.c: Moved to...
	* config/ft32/ft32.cc: ...here.
	* config/gcn/driver-gcn.c: Moved to...
	* config/gcn/driver-gcn.cc: ...here.
	* config/gcn/gcn-run.c: Moved to...
	* config/gcn/gcn-run.cc: ...here.
	* config/gcn/gcn-tree.c: Moved to...
	* config/gcn/gcn-tree.cc: ...here.
	* config/gcn/gcn.c: Moved to...
	* config/gcn/gcn.cc: ...here.
	* config/gcn/mkoffload.c: Moved to...
	* config/gcn/mkoffload.cc: ...here.
	* config/glibc-c.c: Moved to...
	* config/glibc-c.cc: ...here.
	* config/glibc-d.c: Moved to...
	* config/glibc-d.cc: ...here.
	* config/h8300/h8300.c: Moved to...
	* config/h8300/h8300.cc: ...here.
	* config/host-darwin.c: Moved to...
	* config/host-darwin.cc: ...here.
	* config/host-hpux.c: Moved to...
	* config/host-hpux.cc: ...here.
	* config/host-linux.c: Moved to...
	* config/host-linux.cc: ...here.
	* config/host-netbsd.c: Moved to...
	* config/host-netbsd.cc: ...here.
	* config/host-openbsd.c: Moved to...
	* config/host-openbsd.cc: ...here.
	* config/host-solaris.c: Moved to...
	* config/host-solaris.cc: ...here.
	* config/i386/djgpp.c: Moved to...
	* config/i386/djgpp.cc: ...here.
	* config/i386/driver-i386.c: Moved to...
	* config/i386/driver-i386.cc: ...here.
	* config/i386/driver-mingw32.c: Moved to...
	* config/i386/driver-mingw32.cc: ...here.
	* config/i386/gnu-property.c: Moved to...
	* config/i386/gnu-property.cc: ...here.
	* config/i386/host-cygwin.c: Moved to...
	* config/i386/host-cygwin.cc: ...here.
	* config/i386/host-i386-darwin.c: Moved to...
	* config/i386/host-i386-darwin.cc: ...here.
	* config/i386/host-mingw32.c: Moved to...
	* config/i386/host-mingw32.cc: ...here.
	* config/i386/i386-builtins.c: Moved to...
	* config/i386/i386-builtins.cc: ...here.
	* config/i386/i386-c.c: Moved to...
	* config/i386/i386-c.cc: ...here.
	* config/i386/i386-d.c: Moved to...
	* config/i386/i386-d.cc: ...here.
	* config/i386/i386-expand.c: Moved to...
	* config/i386/i386-expand.cc: ...here.
	* config/i386/i386-features.c: Moved to...
	* config/i386/i386-features.cc: ...here.
	* config/i386/i386-options.c: Moved to...
	* config/i386/i386-options.cc: ...here.
	* config/i386/i386.c: Moved to...
	* config/i386/i386.cc: ...here.
	* config/i386/intelmic-mkoffload.c: Moved to...
	* config/i386/intelmic-mkoffload.cc: ...here.
	* config/i386/msformat-c.c: Moved to...
	* config/i386/msformat-c.cc: ...here.
	* config/i386/winnt-cxx.c: Moved to...
	* config/i386/winnt-cxx.cc: ...here.
	* config/i386/winnt-d.c: Moved to...
	* config/i386/winnt-d.cc: ...here.
	* config/i386/winnt-stubs.c: Moved to...
	* config/i386/winnt-stubs.cc: ...here.
	* config/i386/winnt.c: Moved to...
	* config/i386/winnt.cc: ...here.
	* config/i386/x86-tune-sched-atom.c: Moved to...
	* config/i386/x86-tune-sched-atom.cc: ...here.
	* config/i386/x86-tune-sched-bd.c: Moved to...
	* config/i386/x86-tune-sched-bd.cc: ...here.
	* config/i386/x86-tune-sched-core.c: Moved to...
	* config/i386/x86-tune-sched-core.cc: ...here.
	* config/i386/x86-tune-sched.c: Moved to...
	* config/i386/x86-tune-sched.cc: ...here.
	* config/ia64/ia64-c.c: Moved to...
	* config/ia64/ia64-c.cc: ...here.
	* config/ia64/ia64.c: Moved to...
	* config/ia64/ia64.cc: ...here.
	* config/iq2000/iq2000.c: Moved to...
	* config/iq2000/iq2000.cc: ...here.
	* config/linux.c: Moved to...
	* config/linux.cc: ...here.
	* config/lm32/lm32.c: Moved to...
	* config/lm32/lm32.cc: ...here.
	* config/m32c/m32c-pragma.c: Moved to...
	* config/m32c/m32c-pragma.cc: ...here.
	* config/m32c/m32c.c: Moved to...
	* config/m32c/m32c.cc: ...here.
	* config/m32r/m32r.c: Moved to...
	* config/m32r/m32r.cc: ...here.
	* config/m68k/m68k.c: Moved to...
	* config/m68k/m68k.cc: ...here.
	* config/mcore/mcore.c: Moved to...
	* config/mcore/mcore.cc: ...here.
	* config/microblaze/microblaze-c.c: Moved to...
	* config/microblaze/microblaze-c.cc: ...here.
	* config/microblaze/microblaze.c: Moved to...
	* config/microblaze/microblaze.cc: ...here.
	* config/mips/driver-native.c: Moved to...
	* config/mips/driver-native.cc: ...here.
	* config/mips/frame-header-opt.c: Moved to...
	* config/mips/frame-header-opt.cc: ...here.
	* config/mips/mips-d.c: Moved to...
	* config/mips/mips-d.cc: ...here.
	* config/mips/mips.c: Moved to...
	* config/mips/mips.cc: ...here.
	* config/mmix/mmix.c: Moved to...
	* config/mmix/mmix.cc: ...here.
	* config/mn10300/mn10300.c: Moved to...
	* config/mn10300/mn10300.cc: ...here.
	* config/moxie/moxie.c: Moved to...
	* config/moxie/moxie.cc: ...here.
	* config/msp430/driver-msp430.c: Moved to...
	* config/msp430/driver-msp430.cc: ...here.
	* config/msp430/msp430-c.c: Moved to...
	* config/msp430/msp430-c.cc: ...here.
	* config/msp430/msp430-devices.c: Moved to...
	* config/msp430/msp430-devices.cc: ...here.
	* config/msp430/msp430.c: Moved to...
	* config/msp430/msp430.cc: ...here.
	* config/nds32/nds32-cost.c: Moved to...
	* config/nds32/nds32-cost.cc: ...here.
	* config/nds32/nds32-fp-as-gp.c: Moved to...
	* config/nds32/nds32-fp-as-gp.cc: ...here.
	* config/nds32/nds32-intrinsic.c: Moved to...
	* config/nds32/nds32-intrinsic.cc: ...here.
	* config/nds32/nds32-isr.c: Moved to...
	* config/nds32/nds32-isr.cc: ...here.
	* config/nds32/nds32-md-auxiliary.c: Moved to...
	* config/nds32/nds32-md-auxiliary.cc: ...here.
	* config/nds32/nds32-memory-manipulation.c: Moved to...
	* config/nds32/nds32-memory-manipulation.cc: ...here.
	* config/nds32/nds32-pipelines-auxiliary.c: Moved to...
	* config/nds32/nds32-pipelines-auxiliary.cc: ...here.
	* config/nds32/nds32-predicates.c: Moved to...
	* config/nds32/nds32-predicates.cc: ...here.
	* config/nds32/nds32-relax-opt.c: Moved to...
	* config/nds32/nds32-relax-opt.cc: ...here.
	* config/nds32/nds32-utils.c: Moved to...
	* config/nds32/nds32-utils.cc: ...here.
	* config/nds32/nds32.c: Moved to...
	* config/nds32/nds32.cc: ...here.
	* config/netbsd-d.c: Moved to...
	* config/netbsd-d.cc: ...here.
	* config/netbsd.c: Moved to...
	* config/netbsd.cc: ...here.
	* config/nios2/nios2.c: Moved to...
	* config/nios2/nios2.cc: ...here.
	* config/nvptx/mkoffload.c: Moved to...
	* config/nvptx/mkoffload.cc: ...here.
	* config/nvptx/nvptx-c.c: Moved to...
	* config/nvptx/nvptx-c.cc: ...here.
	* config/nvptx/nvptx.c: Moved to...
	* config/nvptx/nvptx.cc: ...here.
	* config/openbsd-d.c: Moved to...
	* config/openbsd-d.cc: ...here.
	* config/or1k/or1k.c: Moved to...
	* config/or1k/or1k.cc: ...here.
	* config/pa/pa-d.c: Moved to...
	* config/pa/pa-d.cc: ...here.
	* config/pa/pa.c: Moved to...
	* config/pa/pa.cc: ...here.
	* config/pdp11/pdp11.c: Moved to...
	* config/pdp11/pdp11.cc: ...here.
	* config/pru/pru-passes.c: Moved to...
	* config/pru/pru-passes.cc: ...here.
	* config/pru/pru-pragma.c: Moved to...
	* config/pru/pru-pragma.cc: ...here.
	* config/pru/pru.c: Moved to...
	* config/pru/pru.cc: ...here.
	* config/riscv/riscv-builtins.c: Moved to...
	* config/riscv/riscv-builtins.cc: ...here.
	* config/riscv/riscv-c.c: Moved to...
	* config/riscv/riscv-c.cc: ...here.
	* config/riscv/riscv-d.c: Moved to...
	* config/riscv/riscv-d.cc: ...here.
	* config/riscv/riscv-shorten-memrefs.c: Moved to...
	* config/riscv/riscv-shorten-memrefs.cc: ...here.
	* config/riscv/riscv-sr.c: Moved to...
	* config/riscv/riscv-sr.cc: ...here.
	* config/riscv/riscv.c: Moved to...
	* config/riscv/riscv.cc: ...here.
	* config/rl78/rl78-c.c: Moved to...
	* config/rl78/rl78-c.cc: ...here.
	* config/rl78/rl78.c: Moved to...
	* config/rl78/rl78.cc: ...here.
	* config/rs6000/driver-rs6000.c: Moved to...
	* config/rs6000/driver-rs6000.cc: ...here.
	* config/rs6000/host-darwin.c: Moved to...
	* config/rs6000/host-darwin.cc: ...here.
	* config/rs6000/host-ppc64-darwin.c: Moved to...
	* config/rs6000/host-ppc64-darwin.cc: ...here.
	* config/rs6000/rbtree.c: Moved to...
	* config/rs6000/rbtree.cc: ...here.
	* config/rs6000/rs6000-c.c: Moved to...
	* config/rs6000/rs6000-c.cc: ...here.
	* config/rs6000/rs6000-call.c: Moved to...
	* config/rs6000/rs6000-call.cc: ...here.
	* config/rs6000/rs6000-d.c: Moved to...
	* config/rs6000/rs6000-d.cc: ...here.
	* config/rs6000/rs6000-gen-builtins.c: Moved to...
	* config/rs6000/rs6000-gen-builtins.cc: ...here.
	* config/rs6000/rs6000-linux.c: Moved to...
	* config/rs6000/rs6000-linux.cc: ...here.
	* config/rs6000/rs6000-logue.c: Moved to...
	* config/rs6000/rs6000-logue.cc: ...here.
	* config/rs6000/rs6000-p8swap.c: Moved to...
	* config/rs6000/rs6000-p8swap.cc: ...here.
	* config/rs6000/rs6000-pcrel-opt.c: Moved to...
	* config/rs6000/rs6000-pcrel-opt.cc: ...here.
	* config/rs6000/rs6000-string.c: Moved to...
	* config/rs6000/rs6000-string.cc: ...here.
	* config/rs6000/rs6000.c: Moved to...
	* config/rs6000/rs6000.cc: ...here.
	* config/rx/rx.c: Moved to...
	* config/rx/rx.cc: ...here.
	* config/s390/driver-native.c: Moved to...
	* config/s390/driver-native.cc: ...here.
	* config/s390/s390-c.c: Moved to...
	* config/s390/s390-c.cc: ...here.
	* config/s390/s390-d.c: Moved to...
	* config/s390/s390-d.cc: ...here.
	* config/s390/s390.c: Moved to...
	* config/s390/s390.cc: ...here.
	* config/sh/divtab-sh4-300.c: Moved to...
	* config/sh/divtab-sh4-300.cc: ...here.
	* config/sh/divtab-sh4.c: Moved to...
	* config/sh/divtab-sh4.cc: ...here.
	* config/sh/divtab.c: Moved to...
	* config/sh/divtab.cc: ...here.
	* config/sh/sh-c.c: Moved to...
	* config/sh/sh-c.cc: ...here.
	* config/sh/sh.c: Moved to...
	* config/sh/sh.cc: ...here.
	* config/sol2-c.c: Moved to...
	* config/sol2-c.cc: ...here.
	* config/sol2-cxx.c: Moved to...
	* config/sol2-cxx.cc: ...here.
	* config/sol2-d.c: Moved to...
	* config/sol2-d.cc: ...here.
	* config/sol2-stubs.c: Moved to...
	* config/sol2-stubs.cc: ...here.
	* config/sol2.c: Moved to...
	* config/sol2.cc: ...here.
	* config/sparc/driver-sparc.c: Moved to...
	* config/sparc/driver-sparc.cc: ...here.
	* config/sparc/sparc-c.c: Moved to...
	* config/sparc/sparc-c.cc: ...here.
	* config/sparc/sparc-d.c: Moved to...
	* config/sparc/sparc-d.cc: ...here.
	* config/sparc/sparc.c: Moved to...
	* config/sparc/sparc.cc: ...here.
	* config/stormy16/stormy16.c: Moved to...
	* config/stormy16/stormy16.cc: ...here.
	* config/tilegx/mul-tables.c: Moved to...
	* config/tilegx/mul-tables.cc: ...here.
	* config/tilegx/tilegx-c.c: Moved to...
	* config/tilegx/tilegx-c.cc: ...here.
	* config/tilegx/tilegx.c: Moved to...
	* config/tilegx/tilegx.cc: ...here.
	* config/tilepro/mul-tables.c: Moved to...
	* config/tilepro/mul-tables.cc: ...here.
	* config/tilepro/tilepro-c.c: Moved to...
	* config/tilepro/tilepro-c.cc: ...here.
	* config/tilepro/tilepro.c: Moved to...
	* config/tilepro/tilepro.cc: ...here.
	* config/v850/v850-c.c: Moved to...
	* config/v850/v850-c.cc: ...here.
	* config/v850/v850.c: Moved to...
	* config/v850/v850.cc: ...here.
	* config/vax/vax.c: Moved to...
	* config/vax/vax.cc: ...here.
	* config/visium/visium.c: Moved to...
	* config/visium/visium.cc: ...here.
	* config/vms/vms-c.c: Moved to...
	* config/vms/vms-c.cc: ...here.
	* config/vms/vms-f.c: Moved to...
	* config/vms/vms-f.cc: ...here.
	* config/vms/vms.c: Moved to...
	* config/vms/vms.cc: ...here.
	* config/vxworks-c.c: Moved to...
	* config/vxworks-c.cc: ...here.
	* config/vxworks.c: Moved to...
	* config/vxworks.cc: ...here.
	* config/winnt-c.c: Moved to...
	* config/winnt-c.cc: ...here.
	* config/xtensa/xtensa.c: Moved to...
	* config/xtensa/xtensa.cc: ...here.
	* context.c: Moved to...
	* context.cc: ...here.
	* convert.c: Moved to...
	* convert.cc: ...here.
	* coverage.c: Moved to...
	* coverage.cc: ...here.
	* cppbuiltin.c: Moved to...
	* cppbuiltin.cc: ...here.
	* cppdefault.c: Moved to...
	* cppdefault.cc: ...here.
	* cprop.c: Moved to...
	* cprop.cc: ...here.
	* cse.c: Moved to...
	* cse.cc: ...here.
	* cselib.c: Moved to...
	* cselib.cc: ...here.
	* ctfc.c: Moved to...
	* ctfc.cc: ...here.
	* ctfout.c: Moved to...
	* ctfout.cc: ...here.
	* data-streamer-in.c: Moved to...
	* data-streamer-in.cc: ...here.
	* data-streamer-out.c: Moved to...
	* data-streamer-out.cc: ...here.
	* data-streamer.c: Moved to...
	* data-streamer.cc: ...here.
	* dbgcnt.c: Moved to...
	* dbgcnt.cc: ...here.
	* dbxout.c: Moved to...
	* dbxout.cc: ...here.
	* dce.c: Moved to...
	* dce.cc: ...here.
	* ddg.c: Moved to...
	* ddg.cc: ...here.
	* debug.c: Moved to...
	* debug.cc: ...here.
	* df-core.c: Moved to...
	* df-core.cc: ...here.
	* df-problems.c: Moved to...
	* df-problems.cc: ...here.
	* df-scan.c: Moved to...
	* df-scan.cc: ...here.
	* dfp.c: Moved to...
	* dfp.cc: ...here.
	* diagnostic-color.c: Moved to...
	* diagnostic-color.cc: ...here.
	* diagnostic-show-locus.c: Moved to...
	* diagnostic-show-locus.cc: ...here.
	* diagnostic-spec.c: Moved to...
	* diagnostic-spec.cc: ...here.
	* diagnostic.c: Moved to...
	* diagnostic.cc: ...here.
	* dojump.c: Moved to...
	* dojump.cc: ...here.
	* dominance.c: Moved to...
	* dominance.cc: ...here.
	* domwalk.c: Moved to...
	* domwalk.cc: ...here.
	* double-int.c: Moved to...
	* double-int.cc: ...here.
	* dse.c: Moved to...
	* dse.cc: ...here.
	* dumpfile.c: Moved to...
	* dumpfile.cc: ...here.
	* dwarf2asm.c: Moved to...
	* dwarf2asm.cc: ...here.
	* dwarf2cfi.c: Moved to...
	* dwarf2cfi.cc: ...here.
	* dwarf2ctf.c: Moved to...
	* dwarf2ctf.cc: ...here.
	* dwarf2out.c: Moved to...
	* dwarf2out.cc: ...here.
	* early-remat.c: Moved to...
	* early-remat.cc: ...here.
	* edit-context.c: Moved to...
	* edit-context.cc: ...here.
	* emit-rtl.c: Moved to...
	* emit-rtl.cc: ...here.
	* errors.c: Moved to...
	* errors.cc: ...here.
	* et-forest.c: Moved to...
	* et-forest.cc: ...here.
	* except.c: Moved to...
	* except.cc: ...here.
	* explow.c: Moved to...
	* explow.cc: ...here.
	* expmed.c: Moved to...
	* expmed.cc: ...here.
	* expr.c: Moved to...
	* expr.cc: ...here.
	* fibonacci_heap.c: Moved to...
	* fibonacci_heap.cc: ...here.
	* file-find.c: Moved to...
	* file-find.cc: ...here.
	* file-prefix-map.c: Moved to...
	* file-prefix-map.cc: ...here.
	* final.c: Moved to...
	* final.cc: ...here.
	* fixed-value.c: Moved to...
	* fixed-value.cc: ...here.
	* fold-const-call.c: Moved to...
	* fold-const-call.cc: ...here.
	* fold-const.c: Moved to...
	* fold-const.cc: ...here.
	* fp-test.c: Moved to...
	* fp-test.cc: ...here.
	* function-tests.c: Moved to...
	* function-tests.cc: ...here.
	* function.c: Moved to...
	* function.cc: ...here.
	* fwprop.c: Moved to...
	* fwprop.cc: ...here.
	* gcc-ar.c: Moved to...
	* gcc-ar.cc: ...here.
	* gcc-main.c: Moved to...
	* gcc-main.cc: ...here.
	* gcc-rich-location.c: Moved to...
	* gcc-rich-location.cc: ...here.
	* gcc.c: Moved to...
	* gcc.cc: ...here.
	* gcov-dump.c: Moved to...
	* gcov-dump.cc: ...here.
	* gcov-io.c: Moved to...
	* gcov-io.cc: ...here.
	* gcov-tool.c: Moved to...
	* gcov-tool.cc: ...here.
	* gcov.c: Moved to...
	* gcov.cc: ...here.
	* gcse-common.c: Moved to...
	* gcse-common.cc: ...here.
	* gcse.c: Moved to...
	* gcse.cc: ...here.
	* genattr-common.c: Moved to...
	* genattr-common.cc: ...here.
	* genattr.c: Moved to...
	* genattr.cc: ...here.
	* genattrtab.c: Moved to...
	* genattrtab.cc: ...here.
	* genautomata.c: Moved to...
	* genautomata.cc: ...here.
	* gencfn-macros.c: Moved to...
	* gencfn-macros.cc: ...here.
	* gencheck.c: Moved to...
	* gencheck.cc: ...here.
	* genchecksum.c: Moved to...
	* genchecksum.cc: ...here.
	* gencodes.c: Moved to...
	* gencodes.cc: ...here.
	* genconditions.c: Moved to...
	* genconditions.cc: ...here.
	* genconfig.c: Moved to...
	* genconfig.cc: ...here.
	* genconstants.c: Moved to...
	* genconstants.cc: ...here.
	* genemit.c: Moved to...
	* genemit.cc: ...here.
	* genenums.c: Moved to...
	* genenums.cc: ...here.
	* generic-match-head.c: Moved to...
	* generic-match-head.cc: ...here.
	* genextract.c: Moved to...
	* genextract.cc: ...here.
	* genflags.c: Moved to...
	* genflags.cc: ...here.
	* gengenrtl.c: Moved to...
	* gengenrtl.cc: ...here.
	* gengtype-parse.c: Moved to...
	* gengtype-parse.cc: ...here.
	* gengtype-state.c: Moved to...
	* gengtype-state.cc: ...here.
	* gengtype.c: Moved to...
	* gengtype.cc: ...here.
	* genhooks.c: Moved to...
	* genhooks.cc: ...here.
	* genmatch.c: Moved to...
	* genmatch.cc: ...here.
	* genmddeps.c: Moved to...
	* genmddeps.cc: ...here.
	* genmddump.c: Moved to...
	* genmddump.cc: ...here.
	* genmodes.c: Moved to...
	* genmodes.cc: ...here.
	* genopinit.c: Moved to...
	* genopinit.cc: ...here.
	* genoutput.c: Moved to...
	* genoutput.cc: ...here.
	* genpeep.c: Moved to...
	* genpeep.cc: ...here.
	* genpreds.c: Moved to...
	* genpreds.cc: ...here.
	* genrecog.c: Moved to...
	* genrecog.cc: ...here.
	* gensupport.c: Moved to...
	* gensupport.cc: ...here.
	* gentarget-def.c: Moved to...
	* gentarget-def.cc: ...here.
	* genversion.c: Moved to...
	* genversion.cc: ...here.
	* ggc-common.c: Moved to...
	* ggc-common.cc: ...here.
	* ggc-none.c: Moved to...
	* ggc-none.cc: ...here.
	* ggc-page.c: Moved to...
	* ggc-page.cc: ...here.
	* ggc-tests.c: Moved to...
	* ggc-tests.cc: ...here.
	* gimple-builder.c: Moved to...
	* gimple-builder.cc: ...here.
	* gimple-expr.c: Moved to...
	* gimple-expr.cc: ...here.
	* gimple-fold.c: Moved to...
	* gimple-fold.cc: ...here.
	* gimple-iterator.c: Moved to...
	* gimple-iterator.cc: ...here.
	* gimple-laddress.c: Moved to...
	* gimple-laddress.cc: ...here.
	* gimple-loop-jam.c: Moved to...
	* gimple-loop-jam.cc: ...here.
	* gimple-low.c: Moved to...
	* gimple-low.cc: ...here.
	* gimple-match-head.c: Moved to...
	* gimple-match-head.cc: ...here.
	* gimple-pretty-print.c: Moved to...
	* gimple-pretty-print.cc: ...here.
	* gimple-ssa-backprop.c: Moved to...
	* gimple-ssa-backprop.cc: ...here.
	* gimple-ssa-evrp-analyze.c: Moved to...
	* gimple-ssa-evrp-analyze.cc: ...here.
	* gimple-ssa-evrp.c: Moved to...
	* gimple-ssa-evrp.cc: ...here.
	* gimple-ssa-isolate-paths.c: Moved to...
	* gimple-ssa-isolate-paths.cc: ...here.
	* gimple-ssa-nonnull-compare.c: Moved to...
	* gimple-ssa-nonnull-compare.cc: ...here.
	* gimple-ssa-split-paths.c: Moved to...
	* gimple-ssa-split-paths.cc: ...here.
	* gimple-ssa-sprintf.c: Moved to...
	* gimple-ssa-sprintf.cc: ...here.
	* gimple-ssa-store-merging.c: Moved to...
	* gimple-ssa-store-merging.cc: ...here.
	* gimple-ssa-strength-reduction.c: Moved to...
	* gimple-ssa-strength-reduction.cc: ...here.
	* gimple-ssa-warn-alloca.c: Moved to...
	* gimple-ssa-warn-alloca.cc: ...here.
	* gimple-ssa-warn-restrict.c: Moved to...
	* gimple-ssa-warn-restrict.cc: ...here.
	* gimple-streamer-in.c: Moved to...
	* gimple-streamer-in.cc: ...here.
	* gimple-streamer-out.c: Moved to...
	* gimple-streamer-out.cc: ...here.
	* gimple-walk.c: Moved to...
	* gimple-walk.cc: ...here.
	* gimple-warn-recursion.c: Moved to...
	* gimple-warn-recursion.cc: ...here.
	* gimple.c: Moved to...
	* gimple.cc: ...here.
	* gimplify-me.c: Moved to...
	* gimplify-me.cc: ...here.
	* gimplify.c: Moved to...
	* gimplify.cc: ...here.
	* godump.c: Moved to...
	* godump.cc: ...here.
	* graph.c: Moved to...
	* graph.cc: ...here.
	* graphds.c: Moved to...
	* graphds.cc: ...here.
	* graphite-dependences.c: Moved to...
	* graphite-dependences.cc: ...here.
	* graphite-isl-ast-to-gimple.c: Moved to...
	* graphite-isl-ast-to-gimple.cc: ...here.
	* graphite-optimize-isl.c: Moved to...
	* graphite-optimize-isl.cc: ...here.
	* graphite-poly.c: Moved to...
	* graphite-poly.cc: ...here.
	* graphite-scop-detection.c: Moved to...
	* graphite-scop-detection.cc: ...here.
	* graphite-sese-to-poly.c: Moved to...
	* graphite-sese-to-poly.cc: ...here.
	* graphite.c: Moved to...
	* graphite.cc: ...here.
	* haifa-sched.c: Moved to...
	* haifa-sched.cc: ...here.
	* hash-map-tests.c: Moved to...
	* hash-map-tests.cc: ...here.
	* hash-set-tests.c: Moved to...
	* hash-set-tests.cc: ...here.
	* hash-table.c: Moved to...
	* hash-table.cc: ...here.
	* hooks.c: Moved to...
	* hooks.cc: ...here.
	* host-default.c: Moved to...
	* host-default.cc: ...here.
	* hw-doloop.c: Moved to...
	* hw-doloop.cc: ...here.
	* hwint.c: Moved to...
	* hwint.cc: ...here.
	* ifcvt.c: Moved to...
	* ifcvt.cc: ...here.
	* inchash.c: Moved to...
	* inchash.cc: ...here.
	* incpath.c: Moved to...
	* incpath.cc: ...here.
	* init-regs.c: Moved to...
	* init-regs.cc: ...here.
	* input.c: Moved to...
	* input.cc: ...here.
	* internal-fn.c: Moved to...
	* internal-fn.cc: ...here.
	* intl.c: Moved to...
	* intl.cc: ...here.
	* ipa-comdats.c: Moved to...
	* ipa-comdats.cc: ...here.
	* ipa-cp.c: Moved to...
	* ipa-cp.cc: ...here.
	* ipa-devirt.c: Moved to...
	* ipa-devirt.cc: ...here.
	* ipa-fnsummary.c: Moved to...
	* ipa-fnsummary.cc: ...here.
	* ipa-icf-gimple.c: Moved to...
	* ipa-icf-gimple.cc: ...here.
	* ipa-icf.c: Moved to...
	* ipa-icf.cc: ...here.
	* ipa-inline-analysis.c: Moved to...
	* ipa-inline-analysis.cc: ...here.
	* ipa-inline-transform.c: Moved to...
	* ipa-inline-transform.cc: ...here.
	* ipa-inline.c: Moved to...
	* ipa-inline.cc: ...here.
	* ipa-modref-tree.c: Moved to...
	* ipa-modref-tree.cc: ...here.
	* ipa-modref.c: Moved to...
	* ipa-modref.cc: ...here.
	* ipa-param-manipulation.c: Moved to...
	* ipa-param-manipulation.cc: ...here.
	* ipa-polymorphic-call.c: Moved to...
	* ipa-polymorphic-call.cc: ...here.
	* ipa-predicate.c: Moved to...
	* ipa-predicate.cc: ...here.
	* ipa-profile.c: Moved to...
	* ipa-profile.cc: ...here.
	* ipa-prop.c: Moved to...
	* ipa-prop.cc: ...here.
	* ipa-pure-const.c: Moved to...
	* ipa-pure-const.cc: ...here.
	* ipa-ref.c: Moved to...
	* ipa-ref.cc: ...here.
	* ipa-reference.c: Moved to...
	* ipa-reference.cc: ...here.
	* ipa-split.c: Moved to...
	* ipa-split.cc: ...here.
	* ipa-sra.c: Moved to...
	* ipa-sra.cc: ...here.
	* ipa-utils.c: Moved to...
	* ipa-utils.cc: ...here.
	* ipa-visibility.c: Moved to...
	* ipa-visibility.cc: ...here.
	* ipa.c: Moved to...
	* ipa.cc: ...here.
	* ira-build.c: Moved to...
	* ira-build.cc: ...here.
	* ira-color.c: Moved to...
	* ira-color.cc: ...here.
	* ira-conflicts.c: Moved to...
	* ira-conflicts.cc: ...here.
	* ira-costs.c: Moved to...
	* ira-costs.cc: ...here.
	* ira-emit.c: Moved to...
	* ira-emit.cc: ...here.
	* ira-lives.c: Moved to...
	* ira-lives.cc: ...here.
	* ira.c: Moved to...
	* ira.cc: ...here.
	* jump.c: Moved to...
	* jump.cc: ...here.
	* langhooks.c: Moved to...
	* langhooks.cc: ...here.
	* lcm.c: Moved to...
	* lcm.cc: ...here.
	* lists.c: Moved to...
	* lists.cc: ...here.
	* loop-doloop.c: Moved to...
	* loop-doloop.cc: ...here.
	* loop-init.c: Moved to...
	* loop-init.cc: ...here.
	* loop-invariant.c: Moved to...
	* loop-invariant.cc: ...here.
	* loop-iv.c: Moved to...
	* loop-iv.cc: ...here.
	* loop-unroll.c: Moved to...
	* loop-unroll.cc: ...here.
	* lower-subreg.c: Moved to...
	* lower-subreg.cc: ...here.
	* lra-assigns.c: Moved to...
	* lra-assigns.cc: ...here.
	* lra-coalesce.c: Moved to...
	* lra-coalesce.cc: ...here.
	* lra-constraints.c: Moved to...
	* lra-constraints.cc: ...here.
	* lra-eliminations.c: Moved to...
	* lra-eliminations.cc: ...here.
	* lra-lives.c: Moved to...
	* lra-lives.cc: ...here.
	* lra-remat.c: Moved to...
	* lra-remat.cc: ...here.
	* lra-spills.c: Moved to...
	* lra-spills.cc: ...here.
	* lra.c: Moved to...
	* lra.cc: ...here.
	* lto-cgraph.c: Moved to...
	* lto-cgraph.cc: ...here.
	* lto-compress.c: Moved to...
	* lto-compress.cc: ...here.
	* lto-opts.c: Moved to...
	* lto-opts.cc: ...here.
	* lto-section-in.c: Moved to...
	* lto-section-in.cc: ...here.
	* lto-section-out.c: Moved to...
	* lto-section-out.cc: ...here.
	* lto-streamer-in.c: Moved to...
	* lto-streamer-in.cc: ...here.
	* lto-streamer-out.c: Moved to...
	* lto-streamer-out.cc: ...here.
	* lto-streamer.c: Moved to...
	* lto-streamer.cc: ...here.
	* lto-wrapper.c: Moved to...
	* lto-wrapper.cc: ...here.
	* main.c: Moved to...
	* main.cc: ...here.
	* mcf.c: Moved to...
	* mcf.cc: ...here.
	* mode-switching.c: Moved to...
	* mode-switching.cc: ...here.
	* modulo-sched.c: Moved to...
	* modulo-sched.cc: ...here.
	* multiple_target.c: Moved to...
	* multiple_target.cc: ...here.
	* omp-expand.c: Moved to...
	* omp-expand.cc: ...here.
	* omp-general.c: Moved to...
	* omp-general.cc: ...here.
	* omp-low.c: Moved to...
	* omp-low.cc: ...here.
	* omp-offload.c: Moved to...
	* omp-offload.cc: ...here.
	* omp-simd-clone.c: Moved to...
	* omp-simd-clone.cc: ...here.
	* opt-suggestions.c: Moved to...
	* opt-suggestions.cc: ...here.
	* optabs-libfuncs.c: Moved to...
	* optabs-libfuncs.cc: ...here.
	* optabs-query.c: Moved to...
	* optabs-query.cc: ...here.
	* optabs-tree.c: Moved to...
	* optabs-tree.cc: ...here.
	* optabs.c: Moved to...
	* optabs.cc: ...here.
	* opts-common.c: Moved to...
	* opts-common.cc: ...here.
	* opts-global.c: Moved to...
	* opts-global.cc: ...here.
	* opts.c: Moved to...
	* opts.cc: ...here.
	* passes.c: Moved to...
	* passes.cc: ...here.
	* plugin.c: Moved to...
	* plugin.cc: ...here.
	* postreload-gcse.c: Moved to...
	* postreload-gcse.cc: ...here.
	* postreload.c: Moved to...
	* postreload.cc: ...here.
	* predict.c: Moved to...
	* predict.cc: ...here.
	* prefix.c: Moved to...
	* prefix.cc: ...here.
	* pretty-print.c: Moved to...
	* pretty-print.cc: ...here.
	* print-rtl-function.c: Moved to...
	* print-rtl-function.cc: ...here.
	* print-rtl.c: Moved to...
	* print-rtl.cc: ...here.
	* print-tree.c: Moved to...
	* print-tree.cc: ...here.
	* profile-count.c: Moved to...
	* profile-count.cc: ...here.
	* profile.c: Moved to...
	* profile.cc: ...here.
	* read-md.c: Moved to...
	* read-md.cc: ...here.
	* read-rtl-function.c: Moved to...
	* read-rtl-function.cc: ...here.
	* read-rtl.c: Moved to...
	* read-rtl.cc: ...here.
	* real.c: Moved to...
	* real.cc: ...here.
	* realmpfr.c: Moved to...
	* realmpfr.cc: ...here.
	* recog.c: Moved to...
	* recog.cc: ...here.
	* ree.c: Moved to...
	* ree.cc: ...here.
	* reg-stack.c: Moved to...
	* reg-stack.cc: ...here.
	* regcprop.c: Moved to...
	* regcprop.cc: ...here.
	* reginfo.c: Moved to...
	* reginfo.cc: ...here.
	* regrename.c: Moved to...
	* regrename.cc: ...here.
	* regstat.c: Moved to...
	* regstat.cc: ...here.
	* reload.c: Moved to...
	* reload.cc: ...here.
	* reload1.c: Moved to...
	* reload1.cc: ...here.
	* reorg.c: Moved to...
	* reorg.cc: ...here.
	* resource.c: Moved to...
	* resource.cc: ...here.
	* rtl-error.c: Moved to...
	* rtl-error.cc: ...here.
	* rtl-tests.c: Moved to...
	* rtl-tests.cc: ...here.
	* rtl.c: Moved to...
	* rtl.cc: ...here.
	* rtlanal.c: Moved to...
	* rtlanal.cc: ...here.
	* rtlhash.c: Moved to...
	* rtlhash.cc: ...here.
	* rtlhooks.c: Moved to...
	* rtlhooks.cc: ...here.
	* rtx-vector-builder.c: Moved to...
	* rtx-vector-builder.cc: ...here.
	* run-rtl-passes.c: Moved to...
	* run-rtl-passes.cc: ...here.
	* sancov.c: Moved to...
	* sancov.cc: ...here.
	* sanopt.c: Moved to...
	* sanopt.cc: ...here.
	* sbitmap.c: Moved to...
	* sbitmap.cc: ...here.
	* sched-deps.c: Moved to...
	* sched-deps.cc: ...here.
	* sched-ebb.c: Moved to...
	* sched-ebb.cc: ...here.
	* sched-rgn.c: Moved to...
	* sched-rgn.cc: ...here.
	* sel-sched-dump.c: Moved to...
	* sel-sched-dump.cc: ...here.
	* sel-sched-ir.c: Moved to...
	* sel-sched-ir.cc: ...here.
	* sel-sched.c: Moved to...
	* sel-sched.cc: ...here.
	* selftest-diagnostic.c: Moved to...
	* selftest-diagnostic.cc: ...here.
	* selftest-rtl.c: Moved to...
	* selftest-rtl.cc: ...here.
	* selftest-run-tests.c: Moved to...
	* selftest-run-tests.cc: ...here.
	* selftest.c: Moved to...
	* selftest.cc: ...here.
	* sese.c: Moved to...
	* sese.cc: ...here.
	* shrink-wrap.c: Moved to...
	* shrink-wrap.cc: ...here.
	* simplify-rtx.c: Moved to...
	* simplify-rtx.cc: ...here.
	* sparseset.c: Moved to...
	* sparseset.cc: ...here.
	* spellcheck-tree.c: Moved to...
	* spellcheck-tree.cc: ...here.
	* spellcheck.c: Moved to...
	* spellcheck.cc: ...here.
	* sreal.c: Moved to...
	* sreal.cc: ...here.
	* stack-ptr-mod.c: Moved to...
	* stack-ptr-mod.cc: ...here.
	* statistics.c: Moved to...
	* statistics.cc: ...here.
	* stmt.c: Moved to...
	* stmt.cc: ...here.
	* stor-layout.c: Moved to...
	* stor-layout.cc: ...here.
	* store-motion.c: Moved to...
	* store-motion.cc: ...here.
	* streamer-hooks.c: Moved to...
	* streamer-hooks.cc: ...here.
	* stringpool.c: Moved to...
	* stringpool.cc: ...here.
	* substring-locations.c: Moved to...
	* substring-locations.cc: ...here.
	* symtab.c: Moved to...
	* symtab.cc: ...here.
	* target-globals.c: Moved to...
	* target-globals.cc: ...here.
	* targhooks.c: Moved to...
	* targhooks.cc: ...here.
	* timevar.c: Moved to...
	* timevar.cc: ...here.
	* toplev.c: Moved to...
	* toplev.cc: ...here.
	* tracer.c: Moved to...
	* tracer.cc: ...here.
	* trans-mem.c: Moved to...
	* trans-mem.cc: ...here.
	* tree-affine.c: Moved to...
	* tree-affine.cc: ...here.
	* tree-call-cdce.c: Moved to...
	* tree-call-cdce.cc: ...here.
	* tree-cfg.c: Moved to...
	* tree-cfg.cc: ...here.
	* tree-cfgcleanup.c: Moved to...
	* tree-cfgcleanup.cc: ...here.
	* tree-chrec.c: Moved to...
	* tree-chrec.cc: ...here.
	* tree-complex.c: Moved to...
	* tree-complex.cc: ...here.
	* tree-data-ref.c: Moved to...
	* tree-data-ref.cc: ...here.
	* tree-dfa.c: Moved to...
	* tree-dfa.cc: ...here.
	* tree-diagnostic.c: Moved to...
	* tree-diagnostic.cc: ...here.
	* tree-dump.c: Moved to...
	* tree-dump.cc: ...here.
	* tree-eh.c: Moved to...
	* tree-eh.cc: ...here.
	* tree-emutls.c: Moved to...
	* tree-emutls.cc: ...here.
	* tree-if-conv.c: Moved to...
	* tree-if-conv.cc: ...here.
	* tree-inline.c: Moved to...
	* tree-inline.cc: ...here.
	* tree-into-ssa.c: Moved to...
	* tree-into-ssa.cc: ...here.
	* tree-iterator.c: Moved to...
	* tree-iterator.cc: ...here.
	* tree-loop-distribution.c: Moved to...
	* tree-loop-distribution.cc: ...here.
	* tree-nested.c: Moved to...
	* tree-nested.cc: ...here.
	* tree-nrv.c: Moved to...
	* tree-nrv.cc: ...here.
	* tree-object-size.c: Moved to...
	* tree-object-size.cc: ...here.
	* tree-outof-ssa.c: Moved to...
	* tree-outof-ssa.cc: ...here.
	* tree-parloops.c: Moved to...
	* tree-parloops.cc: ...here.
	* tree-phinodes.c: Moved to...
	* tree-phinodes.cc: ...here.
	* tree-predcom.c: Moved to...
	* tree-predcom.cc: ...here.
	* tree-pretty-print.c: Moved to...
	* tree-pretty-print.cc: ...here.
	* tree-profile.c: Moved to...
	* tree-profile.cc: ...here.
	* tree-scalar-evolution.c: Moved to...
	* tree-scalar-evolution.cc: ...here.
	* tree-sra.c: Moved to...
	* tree-sra.cc: ...here.
	* tree-ssa-address.c: Moved to...
	* tree-ssa-address.cc: ...here.
	* tree-ssa-alias.c: Moved to...
	* tree-ssa-alias.cc: ...here.
	* tree-ssa-ccp.c: Moved to...
	* tree-ssa-ccp.cc: ...here.
	* tree-ssa-coalesce.c: Moved to...
	* tree-ssa-coalesce.cc: ...here.
	* tree-ssa-copy.c: Moved to...
	* tree-ssa-copy.cc: ...here.
	* tree-ssa-dce.c: Moved to...
	* tree-ssa-dce.cc: ...here.
	* tree-ssa-dom.c: Moved to...
	* tree-ssa-dom.cc: ...here.
	* tree-ssa-dse.c: Moved to...
	* tree-ssa-dse.cc: ...here.
	* tree-ssa-forwprop.c: Moved to...
	* tree-ssa-forwprop.cc: ...here.
	* tree-ssa-ifcombine.c: Moved to...
	* tree-ssa-ifcombine.cc: ...here.
	* tree-ssa-live.c: Moved to...
	* tree-ssa-live.cc: ...here.
	* tree-ssa-loop-ch.c: Moved to...
	* tree-ssa-loop-ch.cc: ...here.
	* tree-ssa-loop-im.c: Moved to...
	* tree-ssa-loop-im.cc: ...here.
	* tree-ssa-loop-ivcanon.c: Moved to...
	* tree-ssa-loop-ivcanon.cc: ...here.
	* tree-ssa-loop-ivopts.c: Moved to...
	* tree-ssa-loop-ivopts.cc: ...here.
	* tree-ssa-loop-manip.c: Moved to...
	* tree-ssa-loop-manip.cc: ...here.
	* tree-ssa-loop-niter.c: Moved to...
	* tree-ssa-loop-niter.cc: ...here.
	* tree-ssa-loop-prefetch.c: Moved to...
	* tree-ssa-loop-prefetch.cc: ...here.
	* tree-ssa-loop-split.c: Moved to...
	* tree-ssa-loop-split.cc: ...here.
	* tree-ssa-loop-unswitch.c: Moved to...
	* tree-ssa-loop-unswitch.cc: ...here.
	* tree-ssa-loop.c: Moved to...
	* tree-ssa-loop.cc: ...here.
	* tree-ssa-math-opts.c: Moved to...
	* tree-ssa-math-opts.cc: ...here.
	* tree-ssa-operands.c: Moved to...
	* tree-ssa-operands.cc: ...here.
	* tree-ssa-phiopt.c: Moved to...
	* tree-ssa-phiopt.cc: ...here.
	* tree-ssa-phiprop.c: Moved to...
	* tree-ssa-phiprop.cc: ...here.
	* tree-ssa-pre.c: Moved to...
	* tree-ssa-pre.cc: ...here.
	* tree-ssa-propagate.c: Moved to...
	* tree-ssa-propagate.cc: ...here.
	* tree-ssa-reassoc.c: Moved to...
	* tree-ssa-reassoc.cc: ...here.
	* tree-ssa-sccvn.c: Moved to...
	* tree-ssa-sccvn.cc: ...here.
	* tree-ssa-scopedtables.c: Moved to...
	* tree-ssa-scopedtables.cc: ...here.
	* tree-ssa-sink.c: Moved to...
	* tree-ssa-sink.cc: ...here.
	* tree-ssa-strlen.c: Moved to...
	* tree-ssa-strlen.cc: ...here.
	* tree-ssa-structalias.c: Moved to...
	* tree-ssa-structalias.cc: ...here.
	* tree-ssa-tail-merge.c: Moved to...
	* tree-ssa-tail-merge.cc: ...here.
	* tree-ssa-ter.c: Moved to...
	* tree-ssa-ter.cc: ...here.
	* tree-ssa-threadbackward.c: Moved to...
	* tree-ssa-threadbackward.cc: ...here.
	* tree-ssa-threadedge.c: Moved to...
	* tree-ssa-threadedge.cc: ...here.
	* tree-ssa-threadupdate.c: Moved to...
	* tree-ssa-threadupdate.cc: ...here.
	* tree-ssa-uncprop.c: Moved to...
	* tree-ssa-uncprop.cc: ...here.
	* tree-ssa-uninit.c: Moved to...
	* tree-ssa-uninit.cc: ...here.
	* tree-ssa.c: Moved to...
	* tree-ssa.cc: ...here.
	* tree-ssanames.c: Moved to...
	* tree-ssanames.cc: ...here.
	* tree-stdarg.c: Moved to...
	* tree-stdarg.cc: ...here.
	* tree-streamer-in.c: Moved to...
	* tree-streamer-in.cc: ...here.
	* tree-streamer-out.c: Moved to...
	* tree-streamer-out.cc: ...here.
	* tree-streamer.c: Moved to...
	* tree-streamer.cc: ...here.
	* tree-switch-conversion.c: Moved to...
	* tree-switch-conversion.cc: ...here.
	* tree-tailcall.c: Moved to...
	* tree-tailcall.cc: ...here.
	* tree-vect-data-refs.c: Moved to...
	* tree-vect-data-refs.cc: ...here.
	* tree-vect-generic.c: Moved to...
	* tree-vect-generic.cc: ...here.
	* tree-vect-loop-manip.c: Moved to...
	* tree-vect-loop-manip.cc: ...here.
	* tree-vect-loop.c: Moved to...
	* tree-vect-loop.cc: ...here.
	* tree-vect-patterns.c: Moved to...
	* tree-vect-patterns.cc: ...here.
	* tree-vect-slp-patterns.c: Moved to...
	* tree-vect-slp-patterns.cc: ...here.
	* tree-vect-slp.c: Moved to...
	* tree-vect-slp.cc: ...here.
	* tree-vect-stmts.c: Moved to...
	* tree-vect-stmts.cc: ...here.
	* tree-vector-builder.c: Moved to...
	* tree-vector-builder.cc: ...here.
	* tree-vectorizer.c: Moved to...
	* tree-vectorizer.cc: ...here.
	* tree-vrp.c: Moved to...
	* tree-vrp.cc: ...here.
	* tree.c: Moved to...
	* tree.cc: ...here.
	* tsan.c: Moved to...
	* tsan.cc: ...here.
	* typed-splay-tree.c: Moved to...
	* typed-splay-tree.cc: ...here.
	* ubsan.c: Moved to...
	* ubsan.cc: ...here.
	* valtrack.c: Moved to...
	* valtrack.cc: ...here.
	* value-prof.c: Moved to...
	* value-prof.cc: ...here.
	* var-tracking.c: Moved to...
	* var-tracking.cc: ...here.
	* varasm.c: Moved to...
	* varasm.cc: ...here.
	* varpool.c: Moved to...
	* varpool.cc: ...here.
	* vec-perm-indices.c: Moved to...
	* vec-perm-indices.cc: ...here.
	* vec.c: Moved to...
	* vec.cc: ...here.
	* vmsdbgout.c: Moved to...
	* vmsdbgout.cc: ...here.
	* vr-values.c: Moved to...
	* vr-values.cc: ...here.
	* vtable-verify.c: Moved to...
	* vtable-verify.cc: ...here.
	* web.c: Moved to...
	* web.cc: ...here.
	* xcoffout.c: Moved to...
	* xcoffout.cc: ...here.

gcc/c-family/ChangeLog:

	* c-ada-spec.c: Moved to...
	* c-ada-spec.cc: ...here.
	* c-attribs.c: Moved to...
	* c-attribs.cc: ...here.
	* c-common.c: Moved to...
	* c-common.cc: ...here.
	* c-cppbuiltin.c: Moved to...
	* c-cppbuiltin.cc: ...here.
	* c-dump.c: Moved to...
	* c-dump.cc: ...here.
	* c-format.c: Moved to...
	* c-format.cc: ...here.
	* c-gimplify.c: Moved to...
	* c-gimplify.cc: ...here.
	* c-indentation.c: Moved to...
	* c-indentation.cc: ...here.
	* c-lex.c: Moved to...
	* c-lex.cc: ...here.
	* c-omp.c: Moved to...
	* c-omp.cc: ...here.
	* c-opts.c: Moved to...
	* c-opts.cc: ...here.
	* c-pch.c: Moved to...
	* c-pch.cc: ...here.
	* c-ppoutput.c: Moved to...
	* c-ppoutput.cc: ...here.
	* c-pragma.c: Moved to...
	* c-pragma.cc: ...here.
	* c-pretty-print.c: Moved to...
	* c-pretty-print.cc: ...here.
	* c-semantics.c: Moved to...
	* c-semantics.cc: ...here.
	* c-ubsan.c: Moved to...
	* c-ubsan.cc: ...here.
	* c-warn.c: Moved to...
	* c-warn.cc: ...here.
	* cppspec.c: Moved to...
	* cppspec.cc: ...here.
	* stub-objc.c: Moved to...
	* stub-objc.cc: ...here.

gcc/c/ChangeLog:

	* c-aux-info.c: Moved to...
	* c-aux-info.cc: ...here.
	* c-convert.c: Moved to...
	* c-convert.cc: ...here.
	* c-decl.c: Moved to...
	* c-decl.cc: ...here.
	* c-errors.c: Moved to...
	* c-errors.cc: ...here.
	* c-fold.c: Moved to...
	* c-fold.cc: ...here.
	* c-lang.c: Moved to...
	* c-lang.cc: ...here.
	* c-objc-common.c: Moved to...
	* c-objc-common.cc: ...here.
	* c-parser.c: Moved to...
	* c-parser.cc: ...here.
	* c-typeck.c: Moved to...
	* c-typeck.cc: ...here.
	* gccspec.c: Moved to...
	* gccspec.cc: ...here.
	* gimple-parser.c: Moved to...
	* gimple-parser.cc: ...here.

gcc/cp/ChangeLog:

	* call.c: Moved to...
	* call.cc: ...here.
	* class.c: Moved to...
	* class.cc: ...here.
	* constexpr.c: Moved to...
	* constexpr.cc: ...here.
	* cp-gimplify.c: Moved to...
	* cp-gimplify.cc: ...here.
	* cp-lang.c: Moved to...
	* cp-lang.cc: ...here.
	* cp-objcp-common.c: Moved to...
	* cp-objcp-common.cc: ...here.
	* cp-ubsan.c: Moved to...
	* cp-ubsan.cc: ...here.
	* cvt.c: Moved to...
	* cvt.cc: ...here.
	* cxx-pretty-print.c: Moved to...
	* cxx-pretty-print.cc: ...here.
	* decl.c: Moved to...
	* decl.cc: ...here.
	* decl2.c: Moved to...
	* decl2.cc: ...here.
	* dump.c: Moved to...
	* dump.cc: ...here.
	* error.c: Moved to...
	* error.cc: ...here.
	* except.c: Moved to...
	* except.cc: ...here.
	* expr.c: Moved to...
	* expr.cc: ...here.
	* friend.c: Moved to...
	* friend.cc: ...here.
	* g++spec.c: Moved to...
	* g++spec.cc: ...here.
	* init.c: Moved to...
	* init.cc: ...here.
	* lambda.c: Moved to...
	* lambda.cc: ...here.
	* lex.c: Moved to...
	* lex.cc: ...here.
	* mangle.c: Moved to...
	* mangle.cc: ...here.
	* method.c: Moved to...
	* method.cc: ...here.
	* name-lookup.c: Moved to...
	* name-lookup.cc: ...here.
	* optimize.c: Moved to...
	* optimize.cc: ...here.
	* parser.c: Moved to...
	* parser.cc: ...here.
	* pt.c: Moved to...
	* pt.cc: ...here.
	* ptree.c: Moved to...
	* ptree.cc: ...here.
	* rtti.c: Moved to...
	* rtti.cc: ...here.
	* search.c: Moved to...
	* search.cc: ...here.
	* semantics.c: Moved to...
	* semantics.cc: ...here.
	* tree.c: Moved to...
	* tree.cc: ...here.
	* typeck.c: Moved to...
	* typeck.cc: ...here.
	* typeck2.c: Moved to...
	* typeck2.cc: ...here.
	* vtable-class-hierarchy.c: Moved to...
	* vtable-class-hierarchy.cc: ...here.

gcc/fortran/ChangeLog:

	* arith.c: Moved to...
	* arith.cc: ...here.
	* array.c: Moved to...
	* array.cc: ...here.
	* bbt.c: Moved to...
	* bbt.cc: ...here.
	* check.c: Moved to...
	* check.cc: ...here.
	* class.c: Moved to...
	* class.cc: ...here.
	* constructor.c: Moved to...
	* constructor.cc: ...here.
	* convert.c: Moved to...
	* convert.cc: ...here.
	* cpp.c: Moved to...
	* cpp.cc: ...here.
	* data.c: Moved to...
	* data.cc: ...here.
	* decl.c: Moved to...
	* decl.cc: ...here.
	* dependency.c: Moved to...
	* dependency.cc: ...here.
	* dump-parse-tree.c: Moved to...
	* dump-parse-tree.cc: ...here.
	* error.c: Moved to...
	* error.cc: ...here.
	* expr.c: Moved to...
	* expr.cc: ...here.
	* f95-lang.c: Moved to...
	* f95-lang.cc: ...here.
	* frontend-passes.c: Moved to...
	* frontend-passes.cc: ...here.
	* gfortranspec.c: Moved to...
	* gfortranspec.cc: ...here.
	* interface.c: Moved to...
	* interface.cc: ...here.
	* intrinsic.c: Moved to...
	* intrinsic.cc: ...here.
	* io.c: Moved to...
	* io.cc: ...here.
	* iresolve.c: Moved to...
	* iresolve.cc: ...here.
	* match.c: Moved to...
	* match.cc: ...here.
	* matchexp.c: Moved to...
	* matchexp.cc: ...here.
	* misc.c: Moved to...
	* misc.cc: ...here.
	* module.c: Moved to...
	* module.cc: ...here.
	* openmp.c: Moved to...
	* openmp.cc: ...here.
	* options.c: Moved to...
	* options.cc: ...here.
	* parse.c: Moved to...
	* parse.cc: ...here.
	* primary.c: Moved to...
	* primary.cc: ...here.
	* resolve.c: Moved to...
	* resolve.cc: ...here.
	* scanner.c: Moved to...
	* scanner.cc: ...here.
	* simplify.c: Moved to...
	* simplify.cc: ...here.
	* st.c: Moved to...
	* st.cc: ...here.
	* symbol.c: Moved to...
	* symbol.cc: ...here.
	* target-memory.c: Moved to...
	* target-memory.cc: ...here.
	* trans-array.c: Moved to...
	* trans-array.cc: ...here.
	* trans-common.c: Moved to...
	* trans-common.cc: ...here.
	* trans-const.c: Moved to...
	* trans-const.cc: ...here.
	* trans-decl.c: Moved to...
	* trans-decl.cc: ...here.
	* trans-expr.c: Moved to...
	* trans-expr.cc: ...here.
	* trans-intrinsic.c: Moved to...
	* trans-intrinsic.cc: ...here.
	* trans-io.c: Moved to...
	* trans-io.cc: ...here.
	* trans-openmp.c: Moved to...
	* trans-openmp.cc: ...here.
	* trans-stmt.c: Moved to...
	* trans-stmt.cc: ...here.
	* trans-types.c: Moved to...
	* trans-types.cc: ...here.
	* trans.c: Moved to...
	* trans.cc: ...here.

gcc/go/ChangeLog:

	* go-backend.c: Moved to...
	* go-backend.cc: ...here.
	* go-lang.c: Moved to...
	* go-lang.cc: ...here.
	* gospec.c: Moved to...
	* gospec.cc: ...here.

gcc/jit/ChangeLog:

	* dummy-frontend.c: Moved to...
	* dummy-frontend.cc: ...here.
	* jit-builtins.c: Moved to...
	* jit-builtins.cc: ...here.
	* jit-logging.c: Moved to...
	* jit-logging.cc: ...here.
	* jit-playback.c: Moved to...
	* jit-playback.cc: ...here.
	* jit-recording.c: Moved to...
	* jit-recording.cc: ...here.
	* jit-result.c: Moved to...
	* jit-result.cc: ...here.
	* jit-spec.c: Moved to...
	* jit-spec.cc: ...here.
	* jit-tempdir.c: Moved to...
	* jit-tempdir.cc: ...here.
	* jit-w32.c: Moved to...
	* jit-w32.cc: ...here.
	* libgccjit.c: Moved to...
	* libgccjit.cc: ...here.

gcc/lto/ChangeLog:

	* common.c: Moved to...
	* common.cc: ...here.
	* lto-common.c: Moved to...
	* lto-common.cc: ...here.
	* lto-dump.c: Moved to...
	* lto-dump.cc: ...here.
	* lto-lang.c: Moved to...
	* lto-lang.cc: ...here.
	* lto-object.c: Moved to...
	* lto-object.cc: ...here.
	* lto-partition.c: Moved to...
	* lto-partition.cc: ...here.
	* lto-symtab.c: Moved to...
	* lto-symtab.cc: ...here.
	* lto.c: Moved to...
	* lto.cc: ...here.

gcc/objc/ChangeLog:

	* objc-act.c: Moved to...
	* objc-act.cc: ...here.
	* objc-encoding.c: Moved to...
	* objc-encoding.cc: ...here.
	* objc-gnu-runtime-abi-01.c: Moved to...
	* objc-gnu-runtime-abi-01.cc: ...here.
	* objc-lang.c: Moved to...
	* objc-lang.cc: ...here.
	* objc-map.c: Moved to...
	* objc-map.cc: ...here.
	* objc-next-runtime-abi-01.c: Moved to...
	* objc-next-runtime-abi-01.cc: ...here.
	* objc-next-runtime-abi-02.c: Moved to...
	* objc-next-runtime-abi-02.cc: ...here.
	* objc-runtime-shared-support.c: Moved to...
	* objc-runtime-shared-support.cc: ...here.

gcc/objcp/ChangeLog:

	* objcp-decl.c: Moved to...
	* objcp-decl.cc: ...here.
	* objcp-lang.c: Moved to...
	* objcp-lang.cc: ...here.

libcpp/ChangeLog:

	* charset.c: Moved to...
	* charset.cc: ...here.
	* directives.c: Moved to...
	* directives.cc: ...here.
	* errors.c: Moved to...
	* errors.cc: ...here.
	* expr.c: Moved to...
	* expr.cc: ...here.
	* files.c: Moved to...
	* files.cc: ...here.
	* identifiers.c: Moved to...
	* identifiers.cc: ...here.
	* init.c: Moved to...
	* init.cc: ...here.
	* lex.c: Moved to...
	* lex.cc: ...here.
	* line-map.c: Moved to...
	* line-map.cc: ...here.
	* macro.c: Moved to...
	* macro.cc: ...here.
	* makeucnid.c: Moved to...
	* makeucnid.cc: ...here.
	* mkdeps.c: Moved to...
	* mkdeps.cc: ...here.
	* pch.c: Moved to...
	* pch.cc: ...here.
	* symtab.c: Moved to...
	* symtab.cc: ...here.
	* traditional.c: Moved to...
	* traditional.cc: ...here.
2022-01-17 22:12:04 +01:00
Renamed from libcpp/init.c (Browse further)