platform/upstream/gcc.git
19 months agoxtensa: Tune "*btrue" insn pattern
Takayuki 'January June' Suwa [Thu, 12 Jan 2023 04:25:58 +0000 (13:25 +0900)]
xtensa: Tune "*btrue" insn pattern

This branch instruction has short encoding if EQ/NE comparison against
immediate zero when the Code Density Option is enabled, but its "length"
attribute was only for normal encoding.  This patch fixes it.

This patch also prevents undesireable replacement the comparison immediate
zero of the instruction (short encoding, as mentioned above) with a
register that has value of zero (normal encoding) by the postreload pass.

gcc/ChangeLog:

* config/xtensa/xtensa.md (*btrue):
Correct value of the attribute "length" that depends on
TARGET_DENSITY and operands, and add '?' character to the register
constraint of the compared operand.

19 months agolibstdc++: Use lock-free type for __platform_wait_t
Jonathan Wakely [Thu, 5 Jan 2023 20:23:26 +0000 (20:23 +0000)]
libstdc++: Use lock-free type for __platform_wait_t

For non-futex targets the __platform_wait_t type is currently uint64_t,
but that requires a lock in libatomic for some 32-bit targets. We don't
really need a 64-bit type, so use unsigned long if that is lock-free,
and int otherwise. This should mean it's lock-free on a wider set of
targets.

libstdc++-v3/ChangeLog:

* include/bits/atomic_wait.h (__detail::__platform_wait_t):
Define as unsigned long if always lock-free, and unsigned int
otherwise.

19 months agoFortran/OpenMP: Reject non-scalar 'holds' expr in 'omp assume(s)' [PR107706]
Tobias Burnus [Thu, 12 Jan 2023 10:43:37 +0000 (11:43 +0100)]
Fortran/OpenMP: Reject non-scalar 'holds' expr in 'omp assume(s)' [PR107706]

gcc/fortran/ChangeLog:

PR fortran/107706
* openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars.

gcc/testsuite/ChangeLog:

PR fortran/107706
* gfortran.dg/gomp/assume-2.f90: Update dg-error.
* gfortran.dg/gomp/assumes-2.f90: Likewise.
* gfortran.dg/gomp/assume-5.f90: New test.

19 months agocheck hash table counts at expand
Alexandre Oliva [Thu, 12 Jan 2023 03:29:33 +0000 (00:29 -0300)]
check hash table counts at expand

Add cheap verification of element and deleted entry counts during
expand and hash verify.

for  gcc/ChangeLog

* hash-table.h (expand): Check elements and deleted counts.
(verify): Likewise.

19 months agoDaily bump.
GCC Administrator [Thu, 12 Jan 2023 00:18:07 +0000 (00:18 +0000)]
Daily bump.

19 months agoconfig-list.mk: Remove obsolete FreeBSD targets
Gerald Pfeifer [Thu, 12 Jan 2023 00:00:40 +0000 (01:00 +0100)]
config-list.mk: Remove obsolete FreeBSD targets

ia64-freebsd is officially dead, and sparc64-freebsd has not been able
to build GCC for half a dozen years (or so) and is essentially end of
life.

The default per gcc/config/i386/freebsd.h has been i586 for a while,
so i486-freebsd can go as well. (We still have i686-freebsd.)

contrib/ChangeLog:

* config-list.mk: Remove i486-freebsd4, ia64-freebsd6, and
sparc64-freebsd6.

19 months agopreprocessor: Don't register pragmas in directives-only mode [PR108244]
Lewis Hyatt [Thu, 29 Dec 2022 21:55:21 +0000 (16:55 -0500)]
preprocessor: Don't register pragmas in directives-only mode [PR108244]

libcpp's directives-only mode does not expect deferred pragmas to be
registered, but to date the c-family registration process has not checked for
this case. That issue became more visible since r13-1544, which added the
commonly used GCC diagnostic pragmas to the set of those registered in
preprocessing modes. Fix it by checking for directives-only mode in
c-family/c-pragma.cc.

gcc/c-family/ChangeLog:

PR preprocessor/108244
* c-pragma.cc (c_register_pragma_1): Don't attempt to register any
deferred pragmas if -fdirectives-only.
(init_pragma): Likewise.

gcc/testsuite/ChangeLog:

* c-c++-common/cpp/pr108244-1.c: New test.
* c-c++-common/cpp/pr108244-2.c: New test.
* c-c++-common/gomp/pr108244-3.c: New test.

19 months agoanalyzer: fix leak false positives on "*UNKNOWN = PTR;" [PR108252]
David Malcolm [Wed, 11 Jan 2023 21:27:06 +0000 (16:27 -0500)]
analyzer: fix leak false positives on "*UNKNOWN = PTR;" [PR108252]

PR analyzer/108252 reports a false positive from -Wanalyzer-malloc-leak on
code like this:

  *ptr_ptr = strdup(EXPR);

where ptr_ptr is an UNKNOWN_VALUE.

When we handle:
  *UNKNOWN = PTR;
store::set_value normally marks *PTR as having escaped, and this means
we don't report PTR as leaking when the last usage of PTR is lost.

However this only works for cases where PTR is a region_svalue.
In the example in the bug, it's a conjured_svalue, rather than a
region_svalue.  A similar problem can arise for FDs, which aren't
pointers.

This patch fixes the bug by updating store::set_value to mark any
values stored via *UNKNOWN = VAL as not leaking.

Additionally, sm-malloc.cc's known_allocator_p hardcodes strdup and
strndup as allocators (and thus transitioning their result to
"unchecked"), but we don't implement known_functions for these, leading
to the LHS being a CONJURED_SVALUE, rather than a region_svalue to a
heap-allocated region.  A similar issue happens with functions marked
with __attribute__((malloc)).  As part of a "belt and braces" fix, the
patch also updates the handling of these functions, so that they use
heap-allocated regions.

gcc/analyzer/ChangeLog:
PR analyzer/108252
* kf.cc (class kf_strdup): New.
(class kf_strndup): New.
(register_known_functions): Register them.
* region-model.cc (region_model::on_call_pre): Use
&HEAP_ALLOCATED_REGION for the default result of an external
function with the "malloc" attribute, rather than CONJURED_SVALUE.
(region_model::get_or_create_region_for_heap_alloc): Allow
"size_in_bytes" to be NULL.
* store.cc (store::set_value): When handling *UNKNOWN = VAL,
mark VAL as "maybe bound".

gcc/testsuite/ChangeLog:
PR analyzer/108252
* gcc.dg/analyzer/attr-malloc-pr108252.c: New test.
* gcc.dg/analyzer/fd-leak-pr108252.c: New test.
* gcc.dg/analyzer/flex-with-call-summaries.c: Remove xfail from
warning false +ve directives.
* gcc.dg/analyzer/pr103217-2.c: Add -Wno-analyzer-too-complex.
* gcc.dg/analyzer/pr103217-3.c: Likewise.
* gcc.dg/analyzer/strdup-pr108252.c: New test.
* gcc.dg/analyzer/strndup-pr108252.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
19 months agoc: Don't emit DEBUG_BEGIN_STMTs for K&R function argument declarations [PR105972]
Jakub Jelinek [Wed, 11 Jan 2023 21:18:42 +0000 (22:18 +0100)]
c: Don't emit DEBUG_BEGIN_STMTs for K&R function argument declarations [PR105972]

K&R function parameter declarations are handled by calling
recursively c_parser_declaration_or_fndef in a loop, where each such
call will add_debug_begin_stmt at the start.
Now, if the K&R function definition is not a nested function,
building_stmt_list_p () is false and so we don't emit the DEBUG_BEGIN_STMTs
anywhere, but if it is a nested function, we emit it in the containing
function at the point of the nested function definition.
As the following testcase shows, it can cause ICEs if the containing
function has var-tracking disabled but nested function has them enabled,
as the DEBUG_BEGIN_STMTs are added to the containing function which
shouldn't have them but MAY_HAVE_DEBUG_MARKER_STMTS is checked already
for the nested function, or just wrong experience in the debugger.

The following patch ensures we don't emit any such DEBUG_BEGIN_STMTs for the
K&R function parameter declarations even in nested functions.

2023-01-11  Jakub Jelinek  <jakub@redhat.com>

PR c/105972
* c-parser.cc (c_parser_declaration_or_fndef): Disable debug non-bind
markers for K&R function parameter declarations of nested functions.

* gcc.dg/pr105972.c: New test.

19 months agoPR tree-optimization/71343: Value number X<<2 as X*4.
Roger Sayle [Wed, 11 Jan 2023 16:54:58 +0000 (16:54 +0000)]
PR tree-optimization/71343: Value number X<<2 as X*4.

This patch is the second part of a fix for PR tree-optimization/71343,
that implements Richard Biener's suggestion of using tree-ssa's value
numbering instead of match.pd.  The change is that when assigning a
value number for the expression X<<C, we actually look-up or insert
the value number for the multiplication X*(1<<C).  This elegantly
handles the fact that we (intentionally) don't canonicalize these as
equivalent in GIMPLE, and the optimization/equivalence in PR 71343 now
happens by (tree-ssa SCCVN) magic.

2023-01-11  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR tree-optimization/71343
* tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
the value number of the expression X << C the same as the value
number for the multiplication X * (1<<C).

gcc/testsuite/ChangeLog
PR tree-optimization/71343
* gcc.dg/pr71343-2.c: New test case.

19 months agobpf: correct bpf_print_operand for floats [PR108293]
David Faust [Tue, 10 Jan 2023 18:53:12 +0000 (10:53 -0800)]
bpf: correct bpf_print_operand for floats [PR108293]

The existing logic in bpf_print_operand was only correct for integral
CONST_DOUBLEs, and emitted garbage for floating point modes. Fix it so
floating point mode operands are correctly handled.

PR target/108293

gcc/

* config/bpf/bpf.cc (bpf_print_operand): Correct handling for
floating point modes.

gcc/testsuite/

* gcc.target/bpf/double-1.c: New test.
* gcc.target/bpf/double-2.c: New test.
* gcc.target/bpf/float-1.c: New test.

19 months agoFix problematic interaction between bitfields, unions, SSO and SRA
Eric Botcazou [Wed, 11 Jan 2023 14:58:47 +0000 (15:58 +0100)]
Fix problematic interaction between bitfields, unions, SSO and SRA

The handling of bitfields by the SRA pass is peculiar and this must be taken
into account to support the scalar_storage_order attribute.

gcc/
PR tree-optimization/108199
* tree-sra.cc (sra_modify_expr): Deal with reverse storage order
for bit-field references.

gcc/testsuite/
* gcc.dg/sso-17.c: New test.

19 months agors6000/test: Make ppc-fortran.exp only available for PowerPC target
Kewen Lin [Wed, 11 Jan 2023 12:59:24 +0000 (06:59 -0600)]
rs6000/test: Make ppc-fortran.exp only available for PowerPC target

When testing one patch which adds a fortran test case into
test bucket powerpc/ppc-fortran/, I found one unexpected
failure on a non-PowerPC target.  It's due to that
ppc-fortran.exp does not exit early if the testing target
isn't a PowerPC target.  This patch is to make it exit
immediately if the testing target isn't a PowerPC target.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/ppc-fortran/ppc-fortran.exp: Exit immediately if
the testing target isn't a PowerPC target.

19 months agors6000: Make P10_FUSION honour tuning setting
Kewen Lin [Wed, 11 Jan 2023 12:59:08 +0000 (06:59 -0600)]
rs6000: Make P10_FUSION honour tuning setting

We noticed this issue when Segher reviewed the patch for
PR104024.  When there is no explicit setting for option
-mpower10-fusion, we enable OPTION_MASK_P10_FUSION for
TARGET_POWER10.  But it's not right, it should honour
tuning setting instead.

This patch is to fix it accordingly, it's bootstrapped
, and regtested on powerpc64-linux-gnu P8 and
powerpc64le-linux-gnu P9.

But on powerpc64le-linux-gnu P10 it had one regression
failure against the test case gcc.target/powerpc/pr105586.c.
I looked into it and confirmed that a latent bug was
exposed and filed one separated bug PR108273 instead.

gcc/ChangeLog:

* config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
* config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
OPTION_MASK_P10_FUSION.

19 months agotree-optimization/107767 - not profitable switch conversion
Richard Biener [Mon, 9 Jan 2023 08:42:22 +0000 (09:42 +0100)]
tree-optimization/107767 - not profitable switch conversion

When the CFG has not merged equal PHI defs in a switch stmt the
cost model from switch conversion gets off and we prefer a
jump table over branches.  The following fixes that by recording
cases that will be merged later and more appropriately counting
unique values.

PR tree-optimization/107767
* tree-cfgcleanup.cc (phi_alternatives_equal): Export.
* tree-cfgcleanup.h (phi_alternatives_equal): Declare.
* tree-switch-conversion.cc (switch_conversion::collect):
Count unique non-default targets accounting for later
merging opportunities.

* gcc.dg/tree-ssa/pr107767.c: New testcase.

19 months agotestsuite: Enable pr108308.c test on all int32 targets [PR108308]
Jakub Jelinek [Wed, 11 Jan 2023 12:06:14 +0000 (13:06 +0100)]
testsuite: Enable pr108308.c test on all int32 targets [PR108308]

This test seems to rely on 32-bit int (and uses a wider constant
which shouldn't fit into int), I've initially enabled it on ilp32+lp64
target, but apparently it works on llp64 too, so I've changed it to
int32.

2023-01-11  Jakub Jelinek  <jakub@redhat.com>

PR target/108308
* gcc.dg/pr108308.c: Use int32 target rather than { ilp32 || lp64 }.

19 months agoswitch expansion: limit JT growth param values
Martin Liska [Wed, 28 Dec 2022 08:11:40 +0000 (09:11 +0100)]
switch expansion: limit JT growth param values

Currently, one can request a huge jump table creation which
leads to a non-sensual huge output. Moreover, use auto_vec rather
than a stack-allocated array.

PR middle-end/107976

gcc/ChangeLog:

* params.opt: Limit JT params.
* stmt.cc (emit_case_dispatch_table): Use auto_vec.

19 months agotree-optimization/108352 - FSM threads creating irreducible loops
Richard Biener [Wed, 11 Jan 2023 11:07:16 +0000 (12:07 +0100)]
tree-optimization/108352 - FSM threads creating irreducible loops

The following relaxes a heuristic that prevents creating irreducible
loops from FSM threads not covering multi-way branches.  Instead of
allowing threads that adhere to

      && (n_insns * (unsigned) param_fsm_scale_path_stmts
          > (m_path.length () *
             (unsigned) param_fsm_scale_path_blocks))

with reasoning "We also consider it worth creating an irreducible inner loop if
the number of copied statement is low relative to the length of the path --
in that case there's little the traditional loop optimizer would have done
anyway, so an irreducible loop is not so bad." that I cannot make much
sense of the following patch changes that to only allow those after
loop optimization and when they are (scaled) short:

      && (!(cfun->curr_properties & PROP_loop_opts_done)
          || (m_n_insns * param_fsm_scale_path_stmts
              >= param_max_jump_thread_duplication_stmts)))

This allows us to get rid of --param fsm-scale-path-blocks which
previous to the bisected revision allowed an enlarged path covering
the original allowance (but we do not consider that enlarged path
now because enlarging it doesn't add any information).

PR tree-optimization/108352
* tree-ssa-threadbackward.cc
(back_threader_profitability::profitable_path_p): Adjust
heuristic that allows non-multi-way branch threads creating
irreducible loops.
* doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
(--param fsm-scale-path-stmts): Adjust.
* params.opt (--param=fsm-scale-path-blocks=): Remove.
(-param=fsm-scale-path-stmts=): Adjust description.

* gcc.dg/tree-ssa/ssa-thread-21.c: New testcase.
* gcc.dg/tree-ssa/vrp46.c: Remove --param fsm-scale-path-blocks=1.

19 months agotree-optimization/108353 - copyprop iteration order
Richard Biener [Wed, 11 Jan 2023 08:32:36 +0000 (09:32 +0100)]
tree-optimization/108353 - copyprop iteration order

After recent improvements to copyprop to catch more constants
it shows that the current iteration order prefering forward
progress over iterating doesn't make much sense for an SSA
propagator.  The following instead first iterates cycles which
makes sure to not start with optimistically constant PHIs out
of cycles that optimistically do not exit.

PR tree-optimization/108353
* tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
Remove.
(add_ssa_edge): Simplify.
(add_control_edge): Likewise.
(ssa_prop_init): Likewise.
(ssa_prop_fini): Likewise.
(ssa_propagation_engine::ssa_propagate): Likewise.

* gcc.dg/tree-ssa/ssa-copyprop-3.c: New testcase.

19 months agoIBM zSystems: Use NAND instruction to implement bit not
Andreas Krebbel [Wed, 11 Jan 2023 10:17:42 +0000 (11:17 +0100)]
IBM zSystems: Use NAND instruction to implement bit not

gcc/ChangeLog:

* config/s390/s390.md (*not<mode>): New pattern.

gcc/testsuite/ChangeLog:

* gcc.target/s390/not.c: New test.

19 months agofortran: Fix up function types for realloc and sincos{,f,l} builtins [PR108349]
Jakub Jelinek [Wed, 11 Jan 2023 09:40:54 +0000 (10:40 +0100)]
fortran: Fix up function types for realloc and sincos{,f,l} builtins [PR108349]

As reported in the PR, the FUNCTION_TYPE for __builtin_realloc in the
Fortran FE is wrong since r0-100026-gb64fca63690ad which changed
-  tmp = tree_cons (NULL_TREE, pvoid_type_node, void_list_node);
-  tmp = tree_cons (NULL_TREE, size_type_node, tmp);
-  ftype = build_function_type (pvoid_type_node, tmp);
+  ftype = build_function_type_list (pvoid_type_node,
+                                    size_type_node, pvoid_type_node,
+                                    NULL_TREE);
   gfc_define_builtin ("__builtin_realloc", ftype, BUILT_IN_REALLOC,
                      "realloc", false);
The return type is correct, void *, but the first argument should be
void * too and only second one size_t, while the above change changed
realloc to be void *__builtin_realloc (size_t, void *);
I went through all other changes from that commit and found that
__builtin_sincos{,f,l} got broken as well, instead of the former
void __builtin_sincos{,f,l} (ftype, ftype *, ftype *);
where ftype is {double,float,long double} it is now incorrectly
void __builtin_sincos{,f,l} (ftype *, ftype *);

The following patch fixes that, plus some formatting issues around
the spots I've changed.

2023-01-11  Jakub Jelinek  <jakub@redhat.com>

PR fortran/108349
* f95-lang.cc (gfc_init_builtin_function): Fix up function types
for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}.  Formatting fixes.

19 months agotree-optimization/106293 - fix testcase
Richard Biener [Wed, 11 Jan 2023 07:02:52 +0000 (08:02 +0100)]
tree-optimization/106293 - fix testcase

The following removes a problematic initializer which causes
excess diagnostics with -m32 and isn't actually required.

PR tree-optimization/106293
* gcc.dg/tree-ssa/ssa-dse-46.c: Remove long initializer.

19 months agoxtensa: Make instruction cost estimation for size more accurate
Takayuki 'January June' Suwa [Tue, 10 Jan 2023 03:34:01 +0000 (12:34 +0900)]
xtensa: Make instruction cost estimation for size more accurate

Until now, we applied COSTS_N_INSNS() (multiplying by 4) after dividing
the instruction length by 3, so we couldn't express the difference less
than modulo 3 in insn cost for size (e.g. 11 Bytes and 12 bytes cost the
same).

This patch fixes that.

;; 2 bytes
addi.n a2, a2, -1 ; cost 3

;; 3 bytes
addmi a2, a2, 1024 ; cost 4

;; 4 bytes
movi.n a3, 80 ; cost 5
bnez.n a2, a3, .L4

;; 5 bytes
srli a2, a3, 1 ; cost 7
add.n a2, a2, a2

;; 6 bytes
ssai 8 ; cost 8
src a4, a2, a3

:: 3 + 4 bytes
l32r a2, .L5 ; cost 9

;; 11 bytes ; cost 15
;; 12 bytes ; cost 16

gcc/ChangeLog:

* config/xtensa/xtensa.cc (xtensa_insn_cost):
Let insn cost for size be obtained by applying COSTS_N_INSNS()
to instruction length and then dividing by 3.

19 months agoDaily bump.
GCC Administrator [Wed, 11 Jan 2023 00:17:56 +0000 (00:17 +0000)]
Daily bump.

19 months agoMAINTAINERS: Add myself as Rust front-end maintainer
Philip Herron [Tue, 10 Jan 2023 21:58:09 +0000 (21:58 +0000)]
MAINTAINERS: Add myself as Rust front-end maintainer

Update MAINTAINERS file.

ChangeLog:

* MAINTAINERS: Add Philip Herron as Rust front-end maintainer

Signed-off-by: Philip Herron <herron.philip@googlemail.com>
19 months agoFortran: frontend passes do_subscript leaks gmp memory [PR97345]
Harald Anlauf [Tue, 10 Jan 2023 21:41:17 +0000 (22:41 +0100)]
Fortran: frontend passes do_subscript leaks gmp memory [PR97345]

gcc/fortran/ChangeLog:

PR fortran/97345
* frontend-passes.cc (do_subscript): Clear used gmp variables.

19 months agoAdding missing dependencies to gcc/m2/Make-lang.in
Gaius Mulley [Tue, 10 Jan 2023 18:49:03 +0000 (18:49 +0000)]
Adding missing dependencies to gcc/m2/Make-lang.in

The dependency m2/gm2-libs/gm2-libs-host.h is missing from
two m2/mc-boot rules.

gcc/m2/ChangeLog:

* Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
m2/gm2-libs/gm2-libs-host.h dependency.
(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
m2/gm2-libs/gm2-libs-host.h dependency.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
19 months ago[PATCH, Modula2] PR-108142 Many empty directories created in the build directory
Gaius Mulley [Tue, 10 Jan 2023 17:25:49 +0000 (17:25 +0000)]
[PATCH, Modula2] PR-108142 Many empty directories created in the build directory

PR-108142 Modula-2 configure generates many subdirectories in the top
build directory.  This patch dynamically creates subdirectories under
gcc/m2 if and when required.

Bootstrapped on x86_64 gnu/linux, ok for master?

gcc/m2/ChangeLog:

* Make-lang.in (GM2_1): Change -B path to m2/stage1.
($(objdir)/m2/images/gnu.eps): Check and create dest dir
if necessary.
(gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
m2/gm2-libs-iso and m2/gm2-libs if necessary.
($(objdir)/m2/gm2-compiler-boot): Remove.
($(objdir)/m2/gm2-libs-boot): Remove.
($(objdir)/m2/gm2-libs-libiberty): Remove.
($(objdir)/m2/gm2-libiberty): Remove.
($(objdir)/m2/gm2-gcc): Remove.
($(objdir)/m2/gm2-compiler): Remove.
($(objdir)/m2/gm2-libs): Remove.
($(objdir)/m2/gm2-libs-iso): Remove.
($(objdir)/m2/gm2-libs-min): Remove.
($(objdir)/m2/gm2-compiler-paranoid): Remove.
($(objdir)/m2/gm2-libs-paranoid): Remove.
($(objdir)/m2/gm2-compiler-verify): Remove.
($(objdir)/m2/boot-bin): Remove.
($(objdir)/m2/gm2-libs-pim): Remove.
($(objdir)/m2/gm2-libs-coroutines): Remove.
(stage1/m2): Remove.
(stage2/m2): Remove.
(stage3/m2): Remove.
(m2.stageprofile): New rule.
(m2.stagefeedback): New rule.
(cc1gm2$(exeext)): Change dependent name.
(m2/stage2/cc1gm2$(exeext)): Change dependent name.
Check and create dest dir.
(m2/stage1/cc1gm2$(exeext)): Check and create dest dir
if necessary.
(m2/gm2-gcc/%.o): Ditto.
(m2/gm2-gcc/rtegraph.o): Ditto.
(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
(m2/mc-boot): Ditto.
(m2/mc-boot-ch): Ditto.
(m2/gm2-libs-boot): Ditto.
(m2/gm2-compiler-boot): Ditto.
(m2/gm2-compiler): Ditto.
(m2/gm2-libiberty): Ditto.
(m2/gm2-compiler): Ditto.
(m2/gm2-libs-iso): Ditto.
(m2/gm2-libs): Ditto.
(m2/gm2-libs-min): Ditto.
(m2/gm2-libs-coroutines): Ditto.
(m2/boot-bin): Ditto.
(m2/pge-boot): Ditto.
(m2/pge-boot): Ditto.
* Make-maintainer.in (m2/gm2-ppg-boot): Check and create
dest dir if necessary.
(m2): Ditto.
(m2/gm2-ppg-boot): Ditto.
(m2/gm2-pg-boot): Ditto.
(m2/gm2-auto): Ditto.
(m2/gm2-pg-boot): Ditto.
(m2/gm2-pge-boot): Ditto.
($(objdir)/plugin): Ditto.
($(objdir)/m2/mc-boot-ch): Ditto.
($(objdir)/m2/mc-boot-gen): Ditto.
(m2/boot-bin): Ditto.
(m2/mc): Ditto.
(m2/mc-obj): Ditto.
($(objdir)/m2/gm2-ppg-boot): Ditto.
($(objdir)/m2/gm2-pg-boot): Ditto.
($(objdir)/m2/gm2-pge-boot): Ditto.
(m2/mc-boot-gen): Ditto.
(m2/m2obj3): Ditto.
(m2/gm2-libs-paranoid): Ditto.
(m2/gm2-compiler-paranoid): Ditto.
(m2/gm2-libs-paranoid): Ditto.
(m2/gm2-compiler-paranoid): Ditto.
(m2/gm2-libs-paranoid): Ditto.
(m2/gm2-compiler-paranoid): Ditto.
* config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
(m2/gm2-libs-boot): Ditto.
(m2/gm2-ici-boot): Ditto.
(m2/gm2-libiberty): Ditto.
(m2/gm2-gcc): Ditto.
(m2/gm2-compiler): Ditto.
(m2/gm2-libs): Ditto.
(m2/gm2-libs-iso): Ditto.
(m2/gm2-compiler-paranoid): Ditto.
(m2/gm2-libs-paranoid): Ditto.
(m2/gm2-compiler-verify): Ditto.
(m2/boot-bin): Ditto.
(m2/gm2-libs-pim): Ditto.
(m2/gm2-libs-coroutines): Ditto.
(m2/gm2-libs-min): Ditto.
(m2/pge-boot): Ditto.
(plugin): Ditto.
(stage1/m2): Ditto.
(stage2/m2): Ditto.
(stage3/m2): Ditto.
(stage4/m2): Ditto.
(m2/gm2-auto): Ditto.
(m2/gm2-pg-boot): Ditto.
(m2/gm2-pge-boot): Ditto.
(m2/gm2-ppg-boot): Ditto.
(m2/mc-boot): Ditto.
(m2/mc-boot-ch): Ditto.
(m2/mc-boot-gen): Ditto.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
19 months agotree-optimization/106293 - missed DSE with virtual LC PHI
Richard Biener [Tue, 10 Jan 2023 12:48:51 +0000 (13:48 +0100)]
tree-optimization/106293 - missed DSE with virtual LC PHI

Degenerate virtual PHIs can break DSEs fragile heuristic as to what
defs it can handle for further processing.  The following enhances
it to look through degenerate PHIs by means of a worklist, processing
the degenerate PHI defs uses to the defs array.  The rewrite of
virtuals into loop-closed SSA caused this to issue appear more often.
The patch itself is mostly re-indenting the new loop body.

PR tree-optimization/106293
* tree-ssa-dse.cc (dse_classify_store): Use a worklist to
process degenerate PHI defs.

* gcc.dg/tree-ssa/ssa-dse-46.c: New testcase.

19 months agoPR rtl-optimization/106421: ICE in bypass_block from non-local goto.
Roger Sayle [Tue, 10 Jan 2023 14:05:46 +0000 (14:05 +0000)]
PR rtl-optimization/106421: ICE in bypass_block from non-local goto.

This patch fixes PR rtl-optimization/106421, an ICE-on-valid (but
undefined) regression.  The fix, as proposed by Richard Biener, is to
defend against BLOCK_FOR_INSN returning NULL in cprop's bypass_block.

2023-01-10  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR rtl-optimization/106421
* cprop.cc (bypass_block): Check that DEST is local to this
function (non-NULL) before calling find_edge.

gcc/testsuite/ChangeLog
PR rtl-optimization/106421
* gcc.dg/pr106421.c: New test case.

19 months agoipa: Sort ipa_param_body_adjustments::m_replacements (PR 108110)
Martin Jambor [Tue, 10 Jan 2023 13:18:22 +0000 (14:18 +0100)]
ipa: Sort ipa_param_body_adjustments::m_replacements (PR 108110)

The problem in PR 108110 is that elements describing the same base
parameter in ipa_param_body_adjustments::m_replacements are not
adjacent to each other, which is something that
ipa_param_body_adjustments::modify_call_stmt when it gathers all
replacements for a parameter.

One option would be to simply always keep looking until the end of the
vector (see bugzilla comment 15 for a one-line fix) but the correct
thing to do is to keep the elements of the vector sorted and thus make
such elements adjacent again.  This patch does that and then also
modifies the look-ups to take advantage of it.

Since the one user of ipa_param_body_adjustments that is not
tree-inline.cc, which is OpenMP declare SIMD cloning code, also
registers its own replacements and in theory pointers to elements of
the m_replacements vector can leak through public method
get_expr_replacement, I decided that in those cases it is the
responsibility of the user of the class to call the sorting method
between the replacement registrations and the first lookup.  That is
why the patch also adds a line to omp-simd-clone.cc.

gcc/ChangeLog:

2023-01-09  Martin Jambor  <mjambor@suse.cz>

PR ipa/108110
* ipa-param-manipulation.h (ipa_param_body_adjustments): New members
sort_replacements, lookup_first_base_replacement and
m_sorted_replacements_p.
* ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
(ipa_param_body_adjustments::register_replacement): Set
m_sorted_replacements_p to false.
(compare_param_body_replacement): New function.
(ipa_param_body_adjustments::sort_replacements): Likewise.
(ipa_param_body_adjustments::common_initialization): Call
sort_replacements.
(ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
m_sorted_replacements_p.
(ipa_param_body_adjustments::lookup_replacement_1): Rework to use
std::lower_bound.
(ipa_param_body_adjustments::lookup_first_base_replacement): New
function.
(ipa_param_body_adjustments::modify_call_stmt): Use
lookup_first_base_replacement.
* omp-simd-clone.cc (ipa_simd_modify_function_body): Call
adjustments->sort_replacements.

gcc/testsuite/ChangeLog:

2023-01-04  Martin Jambor  <mjambor@suse.cz>

PR ipa/108110
* g++.dg/ipa/pr108110.C: New test.

19 months agotree-optimization/108314 - avoid BIT_NOT optimization for extract-last
Richard Biener [Tue, 10 Jan 2023 09:42:21 +0000 (10:42 +0100)]
tree-optimization/108314 - avoid BIT_NOT optimization for extract-last

The extract-last reduction internal function expects the then and
else clause as vector and scalar and thus we cannot perform optimization
of the inversion of the condition by swapping the then/else clauses.

PR tree-optimization/108314
* tree-vect-stmts.cc (vectorizable_condition): Do not
perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.

* gcc.dg/vect/pr108314.c: New testcase.

19 months agoC-SKY: Define SYSROOT_SUFFIX_SPEC.
Xianmiao Qu [Tue, 10 Jan 2023 15:00:32 +0000 (23:00 +0800)]
C-SKY: Define SYSROOT_SUFFIX_SPEC.

The earlier patch
  https://gcc.gnu.org/pipermail/gcc-patches/2021-July/575418.html
refine the way to generate sysroot suffix, but it can't find the
right path for all CPUs. The SYSROOT_SUFFIX_SPEC should be defined
to fix it.

gcc/
* config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.

19 months agoC-SKY: Fix float abi option in MULTILIB_DEFAULTS.
Xianmiao Qu [Tue, 10 Jan 2023 14:48:21 +0000 (22:48 +0800)]
C-SKY: Fix float abi option in MULTILIB_DEFAULTS.

The msoft-float is alias of mfloat-abi=soft, use mfloat-abi=soft
in MULTILIB_DEFAULTS to correspond to the option in MULTILIB_OPTIONS,
otherwise it will find the wrong path.

gcc/
* config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.

19 months agoC-SKY: Fix skip codition for testcase ldbs.c
Xianmiao Qu [Tue, 10 Jan 2023 14:44:11 +0000 (22:44 +0800)]
C-SKY: Fix skip codition for testcase ldbs.c

gcc/testsuite/
* gcc.target/csky/ldbs.c : Fix exclude-opts, should not
be "*".

19 months agoC-SKY: Add missing builtin defines for soft float abi.
Xianmiao Qu [Tue, 10 Jan 2023 14:16:49 +0000 (22:16 +0800)]
C-SKY: Add missing builtin defines for soft float abi.

The builtin defines for soft float abi are:
'__csky_soft_float_abi__' and '__CSKY_SOFT_FLOAT_ABI__'.

gcc/
* config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
defines for soft float abi.

19 months agoC-SKY: Fix patterns' condition for ck802 smart mode.
Xianmiao Qu [Tue, 10 Jan 2023 13:48:15 +0000 (21:48 +0800)]
C-SKY: Fix patterns' condition for ck802 smart mode.

Ck802 smart mode should not be treated as ck801.
It do only allocate r0-r8 registers like ck801,
but support 32-bits intructions.
This bug will cause ICE when compiler pr43164.c for ck802 big-endian,
/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr43164.c:16:1: error: insn does not satisfy its constraints:
(insn 48 28 30 2 (set (reg:SI 0 a0 [230])
        (ior:SI (reg:SI 2 a2 [222])
            (ashift:SI (const_int 1 [0x1])
                (const_int 24 [0x18])))) "/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr43164.c":15:10 224 {smart_bseti}
     (expr_list:REG_DEAD (reg:SI 2 a2 [222])
        (nil)))

gcc/
* config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
(smart_bclri): Likewise.
(fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
(fast_bclri): Likewise.
(fast_cmpnesi_i): Likewise.
(*fast_cmpltsi_i): Likewise.
(*fast_cmpgeusi_i): Likewise.

19 months agoC-SKY: Skip other CPUs if the testcases are only for ck801.
Xianmiao Qu [Tue, 1 Nov 2022 07:49:03 +0000 (15:49 +0800)]
C-SKY: Skip other CPUs if the testcases are only for ck801.

Refine some testcases for ck801, if the testcase is only for
ck801, add the filename prefix "ck801-", and add dg-skip-if
to skip other CPUs.

gcc/testsuite/
* gcc.target/csky/and3a.c: Rename to ...
* gcc.target/csky/ck801-and.c: ... this.
* gcc.target/csky/constpool-3.c: Rename to ...
* gcc.target/csky/constpool-2.c: ... this, Rename to ...
* gcc.target/csky/constpool-1.c: ... this, Rename to ...
* gcc.target/csky/ck801-constpool.c: ... this, and skip
if the CPU is not ck801.
* gcc.target/csky/ck801-branch.c: Skip if the CPU is not ck801.

19 months agoC-SKY: Add conditions for ceil etc patterns.
Xianmiao Qu [Thu, 27 Oct 2022 09:26:54 +0000 (17:26 +0800)]
C-SKY: Add conditions for ceil etc patterns.

The ceil etc functions can be only inlined as instruction when
they can raise the "inexact" exception. Without the adding
conditions, it will cause the "gcc.dg/torture/builtin-fp-int-inexact-c2x.c"
etc cases fails.

gcc/
* config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
flag_fp_int_builtin_inexact || !flag_trapping_math.
(<frm_pattern><mode>2): Likewise.

19 months agolibstdc++: Fix tzdb.cc to compile with -fno-exceptions
Jonathan Wakely [Mon, 9 Jan 2023 14:13:16 +0000 (14:13 +0000)]
libstdc++: Fix tzdb.cc to compile with -fno-exceptions

libstdc++-v3/ChangeLog:

* src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
__catch macros for exception handling.

19 months agolibstdc++: Fix some algos for 16-bit size_t [PR108221]
Jonathan Wakely [Mon, 9 Jan 2023 10:45:31 +0000 (10:45 +0000)]
libstdc++: Fix some algos for 16-bit size_t [PR108221]

Some standard algorithms fail to compile when size_t or ptrdiff_t is
narrower than int. The __lg helper function is ambiguous if ptrdiff_t is
short or __int20, so replace it with a function template that works for
those types as well as signed/unsigned int/long/long long. The helpers
for stable_sort perform arithmetic on size values and assume the types
won't change, which isn't true if the type promotes to int.

libstdc++-v3/ChangeLog:

PR libstdc++/108221
* include/bits/stl_algobase.h (__lg): Replace six overloads with
a single function template for all integer types.
* include/bits/stl_algo.h (__merge_adaptive_resize): Cast
arithmetic results back to _Distance.

19 months agolibstdc++: Fix std::span constraint for sizeof(size_t) < sizeof(int) [PR108221]
Jonathan Wakely [Mon, 9 Jan 2023 10:45:31 +0000 (10:45 +0000)]
libstdc++: Fix std::span constraint for sizeof(size_t) < sizeof(int) [PR108221]

The default constructor has a constraint that is always false if
arithmetic on size_t values promotes to int. Rewrite the constraint
exactly as written in the standard, which works correctly.

libstdc++-v3/ChangeLog:

PR libstdc++/108221
* include/std/span (span::span()): Un-simplify constraint to
work for size_t of lesser rank than int.

19 months agoIBM zSystems: Make -fcall-saved-... work.
Andreas Krebbel [Tue, 10 Jan 2023 08:59:02 +0000 (09:59 +0100)]
IBM zSystems: Make -fcall-saved-... work.

gcc/ChangeLog:

* config/s390/s390.cc (s390_register_info): Check call_used_regs
instead of hard-coding the register numbers for call saved
registers.
(s390_optimize_register_info): Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/s390/fcall-saved.c: New test.

19 months agoDaily bump.
GCC Administrator [Tue, 10 Jan 2023 00:18:07 +0000 (00:18 +0000)]
Daily bump.

19 months agoModula-2: fix documentation layout
Eric Botcazou [Mon, 9 Jan 2023 22:50:43 +0000 (23:50 +0100)]
Modula-2: fix documentation layout

The Modula-2 documentation is rejected by older versions of Makeinfo because
the web of @node markers is fairly broken, apparently some subsections were
moved around, most notably between the Overview and Using sections, and the
@node markers were not (properly) adjusted.

gcc/
* doc/gm2.texi (Overview): Fix @node markers.
(Using): Likewise.  Remove subsections that were moved to Overview
from the menu and move others around.

19 months agoc++: Only do maybe_init_list_as_range optimization if !processing_template_decl ...
Jakub Jelinek [Mon, 9 Jan 2023 22:41:20 +0000 (23:41 +0100)]
c++: Only do maybe_init_list_as_range optimization if !processing_template_decl [PR108047]

The last testcase in this patch ICEs, because
maybe_init_list_as_range -> maybe_init_list_as_array
calls maybe_constant_init in:
  /* Don't do this if the conversion would be constant.  */
  first = maybe_constant_init (first);
  if (TREE_CONSTANT (first))
    return NULL_TREE;
but maybe_constant_init shouldn't be called when processing_template_decl.
While we could replace that call with fold_non_dependent_init, my limited
understanding is that this is an optimization and even if we don't optimize
it when processing_template_decl, build_user_type_conversion_1 will be
called again during instantiation with !processing_template_decl if it is
every instantiated and we can do the optimization only then.

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

PR c++/105838
PR c++/108047
PR c++/108266
* call.cc (maybe_init_list_as_range): Always return NULL_TREE if
processing_template_decl.

* g++.dg/tree-ssa/initlist-opt2.C: New test.
* g++.dg/tree-ssa/initlist-opt3.C: New test.

19 months agoc: Check for modifiable static compound literals in inline definitions
Joseph Myers [Mon, 9 Jan 2023 21:56:34 +0000 (21:56 +0000)]
c: Check for modifiable static compound literals in inline definitions

The C rule against modifiable objects with static storage duration in
inline definitions should apply to compound literals (using the C2x
feature of storage-class specifiers for compound literals) just as to
variables.  Add a call to record_inline_static for compound literals
to make sure this case is detected.

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

gcc/c/
* c-decl.cc (build_compound_literal): Call record_inline_static.

gcc/testsuite/
* gcc.dg/c2x-complit-8.c: New test.

19 months agoUpdate cpplib eo.po
Joseph Myers [Mon, 9 Jan 2023 20:16:41 +0000 (20:16 +0000)]
Update cpplib eo.po

* eo.po: Update.

19 months agoFix compilation of server.cc on hpux.
John David Anglin [Mon, 9 Jan 2023 15:41:51 +0000 (15:41 +0000)]
Fix compilation of server.cc on hpux.

Select and FD_ISSET are declared in sys/time.h on most versions
of hpux.  As a result, HAVE_PSELECT and HAVE_SELECT can be 0.

2023-01-08  John David Anglin  <danglin@gcc.gnu.org>

c++tools/ChangeLog:

PR other/107616
* server.cc (server): Don't call FD_ISSET when HAVE_PSELECT
and HAVE_SELECT are zero.

19 months agoada: Update copyright notice
Arnaud Charlet [Mon, 2 Jan 2023 14:00:08 +0000 (14:00 +0000)]
ada: Update copyright notice

gcc/ada/

* accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
* adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
* adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
* ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
* aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
* aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
* backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
* binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
* bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
* bindo-builders.ads, bindo-diagnostics.adb: Likewise.
* bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
* bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
* bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
* bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
* bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
* butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
* checks.ads, cio.c, clean.adb, clean.ads: Likewise.
* comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
* csets.adb, csets.ads, cstand.adb: Likewise.
* cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
* debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
* einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
* env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
* erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
* eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
* exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
* exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
* exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
* exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
* exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
* exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
* exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
* exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
* exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
* exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
* exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
* exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
* exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
* exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
* exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
* exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
* final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
* fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
* freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
* gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
* gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
* gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
* gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
* get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
* gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
* gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
* gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
* gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
* gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
* gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
* gprep.adb, gprep.ads, gsocket.h: Likewise.
* hostparm.ads: Likewise.
* impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
* indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
* initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
* krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
* lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
* lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
* lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
* lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
* libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
* libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
* libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
* libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
* libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
* libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
* libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
* libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
* libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
* libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
* libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
* libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
* libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
* libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
* libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
* libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
* libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
* libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
* libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
* libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
* libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
* libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
* libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
* libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
* libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
* libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
* libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
* libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
* libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
* libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
* libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
* libgnarl/s-interr__sigaction.adb: Likewise.
* libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
* libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
* libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
* libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
* libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
* libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
* libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
* libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
* libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
* libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
* libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
* libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
* libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
* libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
* libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
* libgnarl/s-osinte__dragonfly.adb: Likewise.
* libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
* libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
* libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
* libgnarl/s-osinte__hpux-dce.adb: Likewise.
* libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
* libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
* libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
* libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
* libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
* libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
* libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
* libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
* libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
* libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
* libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
* libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
* libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
* libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
* libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
* libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
* libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
* libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
* libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
* libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
* libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
* libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
* libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
* libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
* libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
* libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
* libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
* libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
* libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
* libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
* libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
* libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
* libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
* libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
* libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
* libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
* libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
* libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
* libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
* libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
* libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
* libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
* libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
* libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
* libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
* libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
* libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
* libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
* libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
* libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
* libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
* libgnarl/s-vxwext__kernel-smp.adb: Likewise.
* libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
* libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
* libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
* libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
* libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
* libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
* libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
* libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
* libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
* libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
* libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
* libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
* libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
* libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
* libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
* libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
* libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
* libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
* libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
* libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
* libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
* libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
* libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
* libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
* libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
* libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
* libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
* libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
* libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
* libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
* libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
* libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
* libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
* libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
* libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
* libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
* libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
* libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
* libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
* libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
* libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
* libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
* libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
* libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
* libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
* libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
* libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
* libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
* libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
* libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
* libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
* libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
* libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
* libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
* libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
* libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
* libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
* libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
* libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
* libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
* libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
* libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
* libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
* libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
* libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
* libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
* libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
* libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
* libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
* libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
* libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
* libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
* libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
* libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
* libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
* libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
* libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
* libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
* libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
* libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
* libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
* libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
* libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
* libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
* libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
* libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
* libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
* libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
* libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
* libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
* libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
* libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
* libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
* libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
* libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
* libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
* libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
* libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
* libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
* libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
* libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
* libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
* libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
* libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
* libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
* libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
* libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
* libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
* libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
* libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
* libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
* libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
* libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
* libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
* libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
* libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
* libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
* libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
* libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
* libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
* libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
* libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
* libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
* libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
* libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
* libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
* libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
* libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
* libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
* libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
* libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
* libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
* libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
* libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
* libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
* libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
* libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
* libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
* libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
* libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
* libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
* libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
* libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
* libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
* libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
* libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
* libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
* libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
* libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
* libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
* libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
* libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
* libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
* libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
* libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
* libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
* libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
* libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
* libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
* libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
* libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
* libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
* libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
* libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
* libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
* libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
* libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
* libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
* libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
* libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
* libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
* libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
* libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
* libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
* libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
* libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
* libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
* libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
* libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
* libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
* libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
* libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
* libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
* libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
* libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
* libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
* libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
* libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
* libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
* libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
* libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
* libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
* libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
* libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
* libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
* libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
* libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
* libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
* libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
* libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
* libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
* libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
* libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
* libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
* libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
* libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
* libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
* libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
* libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
* libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
* libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
* libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
* libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
* libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
* libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
* libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
* libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
* libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
* libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
* libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
* libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
* libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
* libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
* libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
* libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
* libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
* libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
* libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
* libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
* libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
* libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
* libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
* libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
* libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
* libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
* libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
* libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
* libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
* libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
* libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
* libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
* libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
* libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
* libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
* libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
* libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
* libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
* libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
* libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
* libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
* libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
* libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
* libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
* libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
* libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
* libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
* libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
* libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
* libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
* libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
* libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
* libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
* libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
* libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
* libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
* libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
* libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
* libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
* libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
* libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
* libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
* libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
* libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
* libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
* libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
* libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
* libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
* libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
* libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
* libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
* libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
* libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
* libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
* libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
* libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
* libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
* libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
* libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
* libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
* libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
* libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
* libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
* libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
* libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
* libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
* libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
* libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
* libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
* libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
* libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
* libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
* libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
* libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
* libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
* libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
* libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
* libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
* libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
* libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
* libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
* libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
* libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
* libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
* libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
* libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
* libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
* libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
* libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
* libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
* libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
* libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
* libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
* libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
* libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
* libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
* libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
* libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
* libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
* libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
* libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
* libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
* libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
* libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
* libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
* libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
* libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
* libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
* libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
* libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
* libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
* libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
* libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
* libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
* libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
* libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
* libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
* libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
* libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
* libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
* libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
* libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
* libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
* libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
* libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
* libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
* libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
* libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
* libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
* libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
* libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
* libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
* libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
* libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
* libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
* libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
* libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
* libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
* libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
* libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
* libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
* libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
* libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
* libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
* libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
* libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
* libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
* libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
* libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
* libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
* libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
* libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
* libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
* libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
* libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
* libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
* libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
* libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
* libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
* libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
* libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
* libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
* libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
* libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
* libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
* libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
* libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
* libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
* libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
* libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
* libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
* libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
* libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
* libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
* libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
* libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
* libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
* libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
* libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
* libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
* libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
* libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
* libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
* libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
* libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
* libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
* libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
* libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
* libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
* libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
* libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
* libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
* libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
* libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
* libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
* libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
* libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
* libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
* libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
* libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
* libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
* libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
* libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
* libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
* libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
* libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
* libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
* libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
* libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
* libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
* libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
* libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
* libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
* libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
* libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
* libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
* libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
* libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
* libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
* libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
* libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
* libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
* libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
* libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
* libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
* libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
* libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
* libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
* libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
* libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
* libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
* libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
* libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
* libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
* libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
* libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
* libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
* libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
* libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
* libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
* libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
* libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
* libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
* libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
* libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
* libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
* libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
* libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
* libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
* libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
* libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
* libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
* libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
* libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
* libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
* libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
* libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
* libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
* libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
* libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
* libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
* libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
* libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
* libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
* libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
* libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
* libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
* libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
* libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
* libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
* libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
* libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
* libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
* libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
* libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
* libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
* libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
* libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
* libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
* libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
* libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
* libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
* libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
* libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
* libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
* libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
* libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
* libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
* libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
* libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
* libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
* libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
* libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
* libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
* libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
* libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
* libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
* libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
* libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
* libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
* libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
* libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
* libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
* libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
* libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
* libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
* libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
* libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
* libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
* libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
* libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
* libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
* libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
* libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
* libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
* libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
* libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
* libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
* libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
* libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
* libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
* libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
* libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
* libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
* libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
* libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
* libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
* libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
* libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
* libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
* libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
* libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
* libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
* libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
* libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
* libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
* libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
* libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
* libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
* libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
* libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
* libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
* libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
* libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
* libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
* libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
* libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
* libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
* libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
* libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
* libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
* libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
* libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
* libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
* libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
* libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
* libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
* libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
* libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
* libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
* libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
* libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
* libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
* libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
* libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
* libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
* libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
* libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
* libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
* libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
* libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
* libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
* libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
* libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
* libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
* libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
* libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
* libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
* libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
* libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
* libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
* libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
* libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
* libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
* libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
* libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
* libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
* libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
* libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
* libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
* libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
* libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
* libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
* libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
* libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
* libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
* libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
* libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
* libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
* libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
* libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
* libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
* libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
* libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
* libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
* libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
* libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
* libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
* libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
* libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
* libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
* libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
* libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
* libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
* libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
* libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
* libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
* libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
* libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
* libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
* libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
* libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
* libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
* libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
* libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
* libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
* libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
* libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
* libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
* libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
* libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
* libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
* libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
* libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
* libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
* libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
* libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
* libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
* libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
* libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
* libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
* libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
* libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
* libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
* libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
* libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
* libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
* libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
* libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
* libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
* libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
* libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
* libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
* libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
* libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
* libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
* libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
* libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
* libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
* libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
* libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
* libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
* libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
* libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
* libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
* libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
* libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
* libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
* libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
* libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
* libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
* libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
* libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
* libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
* libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
* libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
* libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
* libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
* libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
* libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
* libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
* libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
* libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
* libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
* libgnat/system-solaris-sparc.ads: Likewise.
* libgnat/system-solaris-x86.ads: Likewise.
* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
* libgnat/system-vxworks7-aarch64.ads: Likewise.
* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
* libgnat/system-vxworks7-arm.ads: Likewise.
* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
* libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
* live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
* make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
* mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
* mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
* namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
* opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
* osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
* osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
* par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
* par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
* par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
* par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
* par.ads, par_sco.adb, par_sco.ads: Likewise.
* pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
* prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
* raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
* repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
* restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
* rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
* scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
* scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
* scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
* sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
* sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
* sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
* sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
* sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
* sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
* sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
* sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
* sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
* sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
* sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
* sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
* sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
* sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
* sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
* sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
* sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
* sigtramp-ios.c, sigtramp-qnx.c: Likewise.
* sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
* sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
* sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
* sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
* sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
* sprint.adb, sprint.ads, stand.ads: Likewise.
* stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
* style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
* stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
* switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
* switch.ads, sysdep.c, table.adb: Likewise.
* table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
* tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
* treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
* types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
* urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
* validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
* warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
* xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
* gnatvsn.ads (Current_Year): Likewise and bump to 2023.

19 months agoada: Remove a couple of unreachable statements
Eric Botcazou [Thu, 29 Dec 2022 19:19:36 +0000 (20:19 +0100)]
ada: Remove a couple of unreachable statements

The "then" arm of these nested if-statements is trivially unreachable.

gcc/ada/

* exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
(Make_Final_Call): Likewise.

19 months agoada: Simplify finalization of temporaries created for interface objects
Eric Botcazou [Sun, 25 Dec 2022 21:25:21 +0000 (22:25 +0100)]
ada: Simplify finalization of temporaries created for interface objects

The expansion of (class-wide) interface objects generates a temporary that
holds the actual data and the objects are rewritten as the renaming of the
dereference at the interface tag present in it. These temporaries may need
to be finalized and this is currently done through the renamings, by using
pattern matching to recognize the original source constructs.

Now these temporaries may also need to be adjusted and this is currently
done "naturally", i.e. by using the standard machinery for them, so there
is no fundamental reason why the finalization cannot be done this way too.

Therefore this changes removes the special machinery implemented for their
finalization and let them be handled by the standard one instead.

gcc/ada/

* exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
(Is_Displacement_Of_Object_Or_Function_Result): Likewise.
* exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
(Is_Temporary_For_Interface_Object): ...this.
(Is_Finalizable_Transient): Adjust call to above renaming.
(Is_Displacement_Of_Object_Or_Function_Result): Delete.
(Requires_Cleanup_Actions): Remove special handling of the
temporaries created for interface objects.
* exp_ch7.adb (Build_Finalizer): Likewise.

19 months agomiddle-end/108209 - typo in genmatch.cc:commutative_op
Richard Biener [Mon, 9 Jan 2023 13:28:03 +0000 (14:28 +0100)]
middle-end/108209 - typo in genmatch.cc:commutative_op

The early out for user-id handling indicated commutative
rather than not commutative.

PR middle-end/108209
* genmatch.cc (commutative_op): Fix return value for
user-id with non-commutative first replacement.

19 months agocalls: Fix up TYPE_NO_NAMED_ARGS_STDARG_P handling [PR107453]
Jakub Jelinek [Mon, 9 Jan 2023 12:36:22 +0000 (13:36 +0100)]
calls: Fix up TYPE_NO_NAMED_ARGS_STDARG_P handling [PR107453]

On powerpc64le-linux, the following patch fixes
-FAIL: gcc.dg/c2x-stdarg-4.c execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O0  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O1  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O2  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O2 -flto -fno-use-linker-plugin -flto-partition=none  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -O3 -g  execution test
-FAIL: gcc.dg/torture/c2x-stdarg-split-1a.c   -Os  execution test
The problem is mismatch between the caller and callee side.
On the callee side, we do:
  /* NAMED_ARG is a misnomer.  We really mean 'non-variadic'. */
  if (!cfun->stdarg)
    data->arg.named = 1;  /* No variadic parms.  */
  else if (DECL_CHAIN (parm))
    data->arg.named = 1;  /* Not the last non-variadic parm. */
  else if (targetm.calls.strict_argument_naming (all->args_so_far))
    data->arg.named = 1;  /* Only variadic ones are unnamed.  */
  else
    data->arg.named = 0;  /* Treat as variadic.  */
which is later passed to the target hooks to determine if a particular
argument is named or not.  Now, cfun->stdarg is determined from the stdarg_p
call, which for the new C2X TYPE_NO_NAMED_ARGS_STDARG_P function types
(rettype fn (...)) returns true.  Such functions have no named arguments,
so data->arg.named will be 0 in function.cc.  But on the caller side,
as TYPE_NO_NAMED_ARGS_STDARG_P function types have TYPE_ARG_TYPES NULL,
we instead treat those calls as unprototyped even when they are prototyped
- /* If we know nothing, treat all args as named.  */ n_named_args = num_actuals;
in 2 spots.  We need to treat the TYPE_NO_NAMED_ARGS_STDARG_P cases as
prototyped with no named arguments.

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

PR target/107453
* calls.cc (expand_call): For calls with
TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
Formatting fix.

19 months agomiddle-end/69482 - not preserving volatile accesses
Richard Biener [Mon, 9 Jan 2023 11:46:28 +0000 (12:46 +0100)]
middle-end/69482 - not preserving volatile accesses

The following addresses a long standing issue with not preserving
accesses to non-volatile objects through volatile qualified
pointers in the case that object gets expanded to a register.  The
fix is to treat accesses to an object with a volatile qualified
access as forcing that object to memory.  This issue got more
exposed recently so it regressed more since GCC 11.

PR middle-end/69482
* cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
qualified accesses also force objects to memory.

* gcc.target/i386/pr69482-1.c: New testcase.
* gcc.target/i386/pr69482-2.c: Likewise.

19 months agohash: do not insert deleted value to a hash_set
Martin Liska [Mon, 9 Jan 2023 08:51:01 +0000 (09:51 +0100)]
hash: do not insert deleted value to a hash_set

PR lto/108330

gcc/ChangeLog:

* lto-cgraph.cc (compute_ltrans_boundary): Do not insert
NULL (deleleted value) to a hash_set.

gcc/testsuite/ChangeLog:

* g++.dg/ipa/pr108830.C: New test.

19 months agotree-optimization/101912 - testcase for fixed uninit case
Richard Biener [Mon, 9 Jan 2023 10:00:43 +0000 (11:00 +0100)]
tree-optimization/101912 - testcase for fixed uninit case

We now properly optimize this testcase and no longer diagnose
a bogus uninit use.

PR tree-optimization/101912
* gcc.dg/uninit-pr101912.c: New testcase.

19 months agoc: check if target_clone attrs are all string
Martin Liska [Tue, 27 Dec 2022 15:31:57 +0000 (16:31 +0100)]
c: check if target_clone attrs are all string

PR c/107993

gcc/c-family/ChangeLog:

* c-attribs.cc (handle_target_clones_attribute): Check for
string constant for all target_clone attribute values.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr107993.c: New test.

19 months agoSubject: [committed, pushed, Modula2] Added missing dependency.
Gaius Mulley [Mon, 9 Jan 2023 04:15:42 +0000 (04:15 +0000)]
Subject: [committed, pushed, Modula2] Added missing dependency.

Add missing dependency m2/gm2config.h to the m2/pge-boot/%.o
rules.  Also regenerate gm2-libs/config-host with
autoconf-2.69.

gcc/m2/ChangeLog:

* Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
* gm2-libs/config-host: Regenerate.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
19 months agoDaily bump.
GCC Administrator [Mon, 9 Jan 2023 00:17:46 +0000 (00:17 +0000)]
Daily bump.

19 months agoxtensa: Optimize bitwise splicing operation
Takayuki 'January June' Suwa [Sun, 8 Jan 2023 05:03:49 +0000 (14:03 +0900)]
xtensa: Optimize bitwise splicing operation

This patch optimizes the operation of cutting and splicing two register
values at a specified bit position, in other words, combining (bitwise
ORing) bits 0 through (C-1) of the register with bits C through 31
of the other, where C is the specified immediate integer 17 through 31.

This typically applies to signed copy of floating point number and
__builtin_return_address() if the windowed register ABI, and saves one
instruction compared to four shifts and a bitwise OR by the default RTL
combination pass.

gcc/ChangeLog:

* config/xtensa/xtensa.md (*splice_bits):
New insn_and_split pattern.

19 months agoDaily bump.
GCC Administrator [Sun, 8 Jan 2023 00:16:59 +0000 (00:16 +0000)]
Daily bump.

19 months agoxtensa: Optimize stack frame adjustment more
Takayuki 'January June' Suwa [Sat, 7 Jan 2023 02:55:11 +0000 (11:55 +0900)]
xtensa: Optimize stack frame adjustment more

This patch introduces a convenient helper function for integer immediate
addition with scratch register as needed, that splits and emits either
up to two ADDI/ADDMI machine instructions or an addition by register
following an integer immediate load (which may later be transformed by
constantsynth).

By using the helper function, it makes stack frame adjustment logic
simplified and instruction count less in some cases.

gcc/ChangeLog:

* config/xtensa/xtensa.cc
(xtensa_split_imm_two_addends, xtensa_emit_add_imm):
New helper functions.
(xtensa_set_return_address, xtensa_output_mi_thunk):
Change to use the helper function.
(xtensa_emit_adjust_stack_ptr): Ditto.
And also change to try reusing the content of scratch register
A9 if the register is not modified in the function body.

19 months agomodula-2, libm2min: Declare abort and exit as expected.
Iain Sandoe [Sat, 7 Jan 2023 15:27:01 +0000 (15:27 +0000)]
modula-2, libm2min: Declare abort and exit as expected.

The build is currently emitting a warning that abort() is declared differently
from the built-in.  This updates the declaration to match expectations.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/m2/ChangeLog:

* gm2-libs-min/libc.c (abort): Update declaration to match the
expected form, add no-return attribute.
(exit): Add no-return attribute.

19 months agoFix compilation of gcc.dg/atomic/c11-atomic-exec-[45].c on hpux.
John David Anglin [Sat, 7 Jan 2023 18:40:04 +0000 (18:40 +0000)]
Fix compilation of gcc.dg/atomic/c11-atomic-exec-[45].c on hpux.

_HPUX_SOURCE needs to be defined to provide various types needed
for pthreads.

2023-01-07  John David Anglin  <danglin@gcc.gnu.org>

gcc/testsuite/ChangeLog:

* gcc.dg/atomic/c11-atomic-exec-4.c: Add "-D_HPUX_SOURCE" option
on *-*-hpux*.
* gcc.dg/atomic/c11-atomic-exec-5.c: Likewise.

19 months agoAlways define `WIN32_LEAN_AND_MEAN` before <windows.h>
LIU Hao [Fri, 6 Jan 2023 15:18:15 +0000 (23:18 +0800)]
Always define `WIN32_LEAN_AND_MEAN` before <windows.h>

Recently, mingw-w64 has got updated <msxml.h> from Wine which is included
indirectly by <windows.h> if `WIN32_LEAN_AND_MEAN` is not defined. The
`IXMLDOMDocument` class has a member function named `abort()`, which gets
affected by our `abort()` macro in "system.h".

`WIN32_LEAN_AND_MEAN` should, nevertheless, always be defined. This
can exclude 'APIs such as Cryptography, DDE, RPC, Shell, and Windows
Sockets' [1], and speed up compilation of these files a bit.

[1] https://learn.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers

gcc/

PR middle-end/108300
* config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
before <windows.h>.
* diagnostic-color.cc: Likewise.
* plugin.cc: Likewise.
* prefix.cc: Likewise.

gcc/ada/

PR middle-end/108300
* adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
<windows.h>`.
* cio.c: Likewise.
* ctrl_c.c: Likewise.
* expect.c: Likewise.
* gsocket.h: Likewise.
* mingw32.h: Likewise.
* mkdir.c: Likewise.
* rtfinal.c: Likewise.
* rtinit.c: Likewise.
* seh_init.c: Likewise.
* sysdep.c: Likewise.
* terminals.c: Likewise.
* tracebak.c: Likewise.

gcc/jit/

PR middle-end/108300
* jit-w32.h: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.

libatomic/

PR middle-end/108300
* config/mingw/lock.c: Define `WIN32_LEAN_AND_MEAN` before
<windows.h>.

libffi/

PR middle-end/108300
* src/aarch64/ffi.c: Define `WIN32_LEAN_AND_MEAN` before
<windows.h>.

libgcc/

PR middle-end/108300
* config/i386/enable-execute-stack-mingw32.c: Define
`WIN32_LEAN_AND_MEAN` before <windows.h>.
* libgcc2.c: Likewise.
* unwind-generic.h: Likewise.

libgfortran/

PR middle-end/108300
* intrinsics/sleep.c: Define `WIN32_LEAN_AND_MEAN` before
<windows.h>.

libgomp/

PR middle-end/108300
* config/mingw32/proc.c: Define `WIN32_LEAN_AND_MEAN` before
<windows.h>.

libiberty/

PR middle-end/108300
* make-temp-file.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.
* pex-win32.c: Likewise.

libssp/

PR middle-end/108300
* ssp.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.

libstdc++-v3/

PR middle-end/108300
* src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
<windows.h>.
* src/c++11/thread.cc: Likewise.
* src/c++17/fs_ops.cc: Likewise.
* src/filesystem/ops.cc: Likewise.

libvtv/

PR middle-end/108300
* vtv_malloc.cc: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.
* vtv_rts.cc: Likewise.
* vtv_utils.cc: Likewise.

19 months agoDaily bump.
GCC Administrator [Sat, 7 Jan 2023 00:17:28 +0000 (00:17 +0000)]
Daily bump.

19 months agolibstdc++: Suppress -Waddress warning in tzdb.cc [PR108228]
Jonathan Wakely [Fri, 6 Jan 2023 20:54:23 +0000 (20:54 +0000)]
libstdc++: Suppress -Waddress warning in tzdb.cc [PR108228]

For some tarets the weak symbol is always defined, so we get a warning
that its address is never null. The warning isn't useful in this case,
so suppress it.

libstdc++-v3/ChangeLog:

PR libstdc++/108228
* src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.

19 months agolibstdc++: Refactor time_zone::_Impl::rules_counter [PR108235]
Jonathan Wakely [Fri, 6 Jan 2023 18:39:14 +0000 (18:39 +0000)]
libstdc++: Refactor time_zone::_Impl::rules_counter [PR108235]

Abstract the atomic counter used to synchronize access to time_zone
infos behind a Lockable class API, and use atomic_signed_lock_free
instead of atomic<int_least32_t>, as that should be the most efficient
type. (For futex-supporting targets it makes no difference, but might
benefit other targets in future.)

The new API allows the calling code to be simpler, without needing to
repeat the same error prone preprocessor conditions in multiple places.
It also allows using template metaprogramming to decide whether to use
the atomic or a mutex, which gives us more flexibility than only using
preprocessor conditions. That allows us to choose the mutex
implementation for targets such as hppa-hp-hpux11.11 where 32-bit
atomics are not lock-free and so would introduce an unwanted dependency
on libatomic.

libstdc++-v3/ChangeLog:

PR libstdc++/108235
* src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
template and partial specialization for synchronizing access to
time_zone::_Impl::infos.
(time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
rules_counter.

19 months agoc: C2x semantics for __builtin_tgmath
Joseph Myers [Fri, 6 Jan 2023 19:31:26 +0000 (19:31 +0000)]
c: C2x semantics for __builtin_tgmath

__builtin_tgmath implements <tgmath.h> semantics for integer generic
arguments that handle cases involving _FloatN / _FloatNx types as
specified in TS 18661-3 plus some defect fixes.

C2x has further changes to the semantics for <tgmath.h> macros with
such types, which should also be considered defect fixes (although
handled through the integration of TS 18661-3 in C2x rather than
through an issue tracking process).  Specifically, the rules were
changed because of problems raised with using the macros with the
evaluation format types such as float_t and _Float32_t: the older
version of the rules didn't allow passing _FloatN / _FloatNx types to
the narrowing macros returning float or double, or passing float /
double / long double to the narrowing macros returning _FloatN /
_FloatNx, which was a problem with the evaluation format types which
could be either kind of type depending on the value of
FLT_EVAL_METHOD.

Thus the new rules allow cases of mixing types which were not allowed
before - which is not itself a problem for __builtin_tgmath - and, as
part of the changes, the handling of integer arguments was also
changed: if there is any _FloatNx generic argument, integer generic
arguments are treated as _Float32x (not double), while the rule about
treating integer arguments to narrowing macros returning _FloatN or
_FloatNx as _Float64 not double was removed (no longer needed now
double is a valid argument to such macros).

Implement the changes for __builtin_tgmath.  (The changes also added a
rule that if any argument is _DecimalNx, integer arguments are treated
as _Decimal64x, but GCC doesn't support _DecimalNx types so nothing is
done about that.)

I have a corresponding glibc patch to update glibc test expectations
for C2x and also ensure that appropriate semantics are followed when
GCC 7 through 12 are used with <tgmath.h> (avoiding __builtin_tgmath
in cases where it doesn't match the C2x semantics).

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

gcc/
* doc/extend.texi (__builtin_tgmath): Do not restate standard rule
for handling real integer types.

gcc/c/
* c-parser.cc (c_parser_postfix_expression): Handle integer
generic arguments to functions passed to __builtin_tgmath as
_Float32x if any argument has _FloatNx or _Complex _FloatNx type.
Do not handle integer arguments to some narrowing functions as
_Float64.

gcc/testsuite/
* gcc.dg/builtin-tgmath-3.c: Update expectations and add more
tests.

19 months agolibbacktrace: don't run --build-id tests if it is not supported
Ian Lance Taylor [Fri, 6 Jan 2023 17:39:49 +0000 (09:39 -0800)]
libbacktrace: don't run --build-id tests if it is not supported

PR libbacktrace/108297
* configure.ac: Test whether linker supports --build-id.
* Makefile.am: Only run --build-id tests if supported.
* configure, Makefile.in: Regenerate.

19 months agolibstdc++: Add feature-test macros for implemented C++23 views [PR108260]
Patrick Palka [Fri, 6 Jan 2023 15:32:10 +0000 (10:32 -0500)]
libstdc++: Add feature-test macros for implemented C++23 views [PR108260]

PR libstdc++/108260

libstdc++-v3/ChangeLog:

* include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
* include/std/ranges (__cpp_lib_ranges_zip): Likewise.
(__cpp_lib_ranges_chunk): Likewise.
(__cpp_lib_ranges_slide): Likewise.
(__cpp_lib_ranges_chunk_by): Likewise.
(__cpp_lib_ranges_join_with): Likewise.
(__cpp_lib_ranges_repeat): Likewise.
(__cpp_lib_ranges_stride): Likewise.
(__cpp_lib_ranges_cartesian_product): Likewise.
(__cpp_lib_ranges_as_rvalue): Likewise.
* include/std/version: Ditto.
* testsuite/20_util/tuple/p2321r2.cc: Verify value of
feature-test macro.
* testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
* testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
* testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
* testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
* testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
* testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
* testsuite/std/ranges/cartesian_product/1.cc: Likewise.
* testsuite/std/ranges/repeat/1.cc: Likewise.
* testsuite/std/ranges/zip/1.cc: Likewise.
* testsuite/std/ranges/version_c++23.cc: New test.

19 months agolibstdc++: Fix misuse of alloca in std::bitset [PR108214]
Jonathan Wakely [Fri, 6 Jan 2023 13:42:07 +0000 (13:42 +0000)]
libstdc++: Fix misuse of alloca in std::bitset [PR108214]

The use of alloca in a constructor is wrong, because the memory is gone
after the constructor returns, and will be overwritten by a subsequent
function call. This didn't show up in testing because function inlining
alters the stack usage.

libstdc++-v3/ChangeLog:

PR libstdc++/108214
* include/std/bitset (operator>>): Use alloca in the right
scope, not in a constructor.
* testsuite/20_util/bitset/io/input.cc: Check case from PR.

19 months agolibstdc++: Disable broken std::format for floating-point types [PR108221]
Jonathan Wakely [Thu, 5 Jan 2023 14:04:32 +0000 (14:04 +0000)]
libstdc++: Disable broken std::format for floating-point types [PR108221]

If we don't have std::to_chars for floating-point types (either because
float and double are not IEEE format, or size_t is 16-bit) then we can't
use them with std::format. This causes a bootstrap failure since
std/c++20/tzdb.cc was added to the library, because <chrono> now
includes <format>.

This change just disables formatting support for those types. This is
not a proper fix, but solves the bootstrap failure for now.

libstdc++-v3/ChangeLog:

PR libstdc++/108221
* include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
Disable visiting floating-point types.

19 months agoRevert "aarch64: Make existing V2HF be usable."
Tamar Christina [Fri, 6 Jan 2023 12:57:50 +0000 (12:57 +0000)]
Revert "aarch64: Make existing V2HF be usable."

This reverts commit 2cba118e538ba0b7582af7f9fb5ba2dfbb772f8e.

19 months agodocs: fix Var documentation for .opt files
Martin Liska [Wed, 28 Dec 2022 09:16:58 +0000 (10:16 +0100)]
docs: fix Var documentation for .opt files

The Var documentation was somehow wrongly split into 2 pieces.

PR middle-end/107966

gcc/ChangeLog:

* doc/options.texi: Fix Var documentation in internal manual.

19 months agolibstdc++: Fix deadlock in debug iterator increment [PR108288]
Jonathan Wakely [Thu, 5 Jan 2023 16:23:51 +0000 (16:23 +0000)]
libstdc++: Fix deadlock in debug iterator increment [PR108288]

With -fno-elide-constructors the debug iterator post-increment and
post-decrement operators are susceptible to deadlock. They take a mutex
lock and then return a temporary, which also attempts to take a lock to
attach itself to the sequence. If the return value and *this happen to
collide and use the same mutex from the pool, then you get a deadlock
trying to lock a mutex that is already held by the current thread.

The solution is to construct the return value before taking the lock.
The copy constructor and pre-inc/pre-dec operators already manage locks
correctly, without deadlock, so just implement post-inc/post-dec in the
conventional way, taking a copy then modifying *this, then returning the
copy.

libstdc++-v3/ChangeLog:

PR libstdc++/108288
* include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
(_Safe_iterator::operator--(int)): Do not hold lock around
construction of return value.

19 months agotestsuite: Add testcases from PR108292 and PR108308
Jakub Jelinek [Fri, 6 Jan 2023 09:52:34 +0000 (10:52 +0100)]
testsuite: Add testcases from PR108292 and PR108308

These PRs were for now fixed by reversion of the r13-4977
patch, but so that the problems don't reappear during stage 1,
I'm adding testcase coverage from those PRs.

2023-01-06  Jakub Jelinek  <jakub@redhat.com>

PR target/108292
PR target/108308
* gcc.c-torture/execute/pr108292.c: New test.
* gcc.target/i386/pr108292.c: New test.
* gcc.dg/pr108308.c: New test.

19 months agoconfigure: remove dependencies on gmp and mpfr when gdb is disabled
Clément Chigot [Tue, 3 Jan 2023 13:24:43 +0000 (14:24 +0100)]
configure: remove dependencies on gmp and mpfr when gdb is disabled

Since 91e0d22025e0bf2af2e364cb7214a05512a0c431, the configure checks
about GMP and MPFR for gdb builds have been moved to the toplevel
configure.
However, it doesn't take into account the --disable-gdb option. Meaning
that a build without gdb will require these libraries even if not
needed.

ChangeLog:

* configure.ac: Skip GMP and MPFR when --disable-gdb is
provided.
* configure: Regenerate.

19 months agocontrib: add 'contrib' to default dirs in update-copyright.py
Martin Liska [Fri, 6 Jan 2023 07:45:24 +0000 (08:45 +0100)]
contrib: add 'contrib' to default dirs in update-copyright.py

contrib/ChangeLog:

* update-copyright.py: Add contrib as a default dir.

19 months agoPR-108294 soname bump for modula2 runtime libraries.
v [Fri, 6 Jan 2023 04:50:09 +0000 (04:50 +0000)]
PR-108294 soname bump for modula2 runtime libraries.

The soname for the Modula-2 runtime libraries for the compiler based on
GCC 12 is 17 and didn't change for GCC 13.  This patch bumps the version
to 18.

libgm2/ChangeLog:

* configure: Regenerate.
* configure.ac (libtool_VERSION): Bump to 18:0:0.

Signed-off-by: <gaiusmod2@gmail.com>
19 months agoDaily bump.
GCC Administrator [Fri, 6 Jan 2023 00:17:35 +0000 (00:17 +0000)]
Daily bump.

19 months ago[Committed] PR rtl-optimization/108292: Revert "Improve ix86_expand_int_movcc to...
Roger Sayle [Thu, 5 Jan 2023 19:49:45 +0000 (19:49 +0000)]
[Committed] PR rtl-optimization/108292: Revert "Improve ix86_expand_int_movcc to allow condition (mask) sharing"

This reverts commit d0558f420b2a5692fd38ac76ffa97ae6c1726ed9.

2023-01-05  Roger Sayle  <roger@nextmovesoftware.com>

gcc/ChangeLog
PR rtl-optimization/108292
* config/i386/i386-expand.cc (ix86_expand_int_movcc): Revert
previous changes.

gcc/testsuite/ChangeLog
PR rtl-optimization/108292
* gcc.target/i386/cmov10.c: Remove test case.

19 months agoc++: class-head parsing and CPP_TEMPLATE_ID access [PR108275]
Patrick Palka [Thu, 5 Jan 2023 19:21:34 +0000 (14:21 -0500)]
c++: class-head parsing and CPP_TEMPLATE_ID access [PR108275]

When tentatively parsing what is really an elaborated-type-specifier
containing a template-id first as a class-specifier, we may form a
CPP_TEMPLATE_ID token that later gets reused by the fallback parse if
the tentative parse fails.  These special tokens also capture the access
checks that have been deferred while parsing the template-id.  But here
we form such a token when the access check state is dk_no_check, and so
the token captures no access checks.  This effectively bypasses access
checking for the template-id during the subsequent parse as an
elaborated-type-specifier.

This patch fixes this by using dk_deferred instead of dk_no_check when
parsing the class name of a class-head.

PR c++/108275

gcc/cp/ChangeLog:

* parser.cc (cp_parser_class_head): Use dk_deferred instead of
dk_no_check when parsing the class name.

gcc/testsuite/ChangeLog:

* g++.dg/parse/access14.C: New test.

19 months agoFix atomic operations on PA-RISC 2.0 processors.
John David Anglin [Thu, 5 Jan 2023 18:15:18 +0000 (18:15 +0000)]
Fix atomic operations on PA-RISC 2.0 processors.

PA-RISC 2.0 supports out-of-order execution for loads and stores.
Thus, we need to synchonize memory accesses.

This change revises the lock releases in __exchange_and_add and
__atomic_add to use an ordered store with release semantics.  We
also use an ordered load in the inner spin loop.

We use the "ldcw,co" instruction instead of "ldcw" when compiled
for PA 2.0.  Most PA 2.0 processors are coherent and can execute
the ldcw instruction in cache for improved performance.

Finally, the inner spin loop is revised to immediately branch to
the ldcw instruction when it detects the lock is free.

2023-01-05  John David Anglin  <danglin@gcc.gnu.org>

libstdc++-v3/ChangeLog:

* config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
(__exchange_and_add): Use _PA_LDCW_INSN.  Use ordered store for
lock release.  Revise loop.
(__atomic_add): Likewise.

19 months agomodula-2: Remove uses of scalb*() and significand*() [PR107631]
Iain Sandoe [Wed, 4 Jan 2023 21:03:24 +0000 (21:03 +0000)]
modula-2: Remove uses of scalb*() and significand*() [PR107631]

The scalb*() functions are obsolete in Posix from 2004 and removed in
2008.

The significand*() functions are glibc-only and considered there to be
obsolescent (not supported for types such as _Float128).

We can remove them from Modula-2 since they are not required for ISO
support, but we need to provide an implementation of significand* for
the "fraction()" functions.

PR modula2/107631

gcc/m2/ChangeLog:

* gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
significand, significandf, significandl.
* gm2-libs/Builtins.def (significand): Likewise.
* gm2-libs/Builtins.mod: Likewise.
* target-independent/Builtins.texi: Likewise.
* gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
ilogb*().
* gm2-libs-iso/LowReal.mod: Likewise.
* gm2-libs-iso/LowShort.mod: Likewise.

19 months agolibstdc++: Fix <chrono> printers for Python 2 [PR108212]
Jonathan Wakely [Thu, 5 Jan 2023 13:41:21 +0000 (13:41 +0000)]
libstdc++: Fix <chrono> printers for Python 2 [PR108212]

The datetime.timezone.utc singleton doesn't exist in Python 2, but we
can create it ourselves by deriving from datetime.tzinfo.

libstdc++-v3/ChangeLog:

PR libstdc++/108212
* python/libstdcxx/v6/printers.py (_utc_timezone): New global
variable.
(StdChronoTimePointPrinter::to_string): Use it.

19 months agolibstdc++: Reduce size of std::bind_front(empty_type) result [PR108290]
Jonathan Wakely [Thu, 5 Jan 2023 11:35:35 +0000 (11:35 +0000)]
libstdc++: Reduce size of std::bind_front(empty_type) result [PR108290]

libstdc++-v3/ChangeLog:

PR libstdc++/108290
* include/std/functional (_Bind_front): Add no_unique_address
attribute to data members.
* testsuite/20_util/function_objects/bind_front/107784.cc: Check
size of call wrappers with empty types for targets and bound
arguments.

19 months agogccrs: avoid printing to stderr in selftest::rust_flatten_list
David Malcolm [Thu, 5 Jan 2023 15:01:38 +0000 (10:01 -0500)]
gccrs: avoid printing to stderr in selftest::rust_flatten_list

gcc/rust/ChangeLog:
* resolve/rust-ast-resolve-item.cc (selftest::rust_flatten_list):
Remove output to stderr.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
19 months agogccrs: add selftest-rust-gdb and selftest-rust-valgrind "make" targets
David Malcolm [Thu, 5 Jan 2023 15:01:37 +0000 (10:01 -0500)]
gccrs: add selftest-rust-gdb and selftest-rust-valgrind "make" targets

Add "make" targets to make it easy to run the rust selftests under gdb
and under valgrind via:
  make selftest-rust-gdb
and
  make selftest-rust-valgrind
respectively.

gcc/rust/ChangeLog:
* Make-lang.in (selftest-rust-gdb): New.
(selftest-rust-valgrind): New.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
19 months agoada: Minor tweak to test added in previous change
Eric Botcazou [Sat, 24 Dec 2022 19:29:14 +0000 (20:29 +0100)]
ada: Minor tweak to test added in previous change

This changes the test to use the common idion of the codebase.

gcc/ada/

* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.

19 months agoada: Clean up interface handling in Expand_N_Object_Declaration
Eric Botcazou [Wed, 21 Dec 2022 11:41:50 +0000 (12:41 +0100)]
ada: Clean up interface handling in Expand_N_Object_Declaration

The code performing the expansion of objects with (class-wide) interface
type in Expand_N_Object_Declaration is fairly low-level, fiddling with the
homonym and entity chains, which is unnecessary.

gcc/ada/

* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
handling of objects with (class-wide) interface type by using the
same idiom as the other cases generating a renaming.
* exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
pattern matching code and exclude special return objects.
(Requires_Cleanup_Actions): Adjust comment.
* exp_ch7.adb (Build_Finalizer): Likewise.

19 months agoada: Flag renaming-as-spec as a body to inline
Piotr Trojanek [Tue, 20 Dec 2022 16:39:04 +0000 (17:39 +0100)]
ada: Flag renaming-as-spec as a body to inline

For GNAT the frontend is only inlining subprograms with explicit specs,
including specs completed with renaming-as-body. For GNATprove the
frontend must also inline renamings acting as specs. Otherwise, we will
try to build a body-to-inline with code that is can't handle unusual
subprogram renamings, e.g. those of the form "object.call".

gcc/ada/

* freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
subprogram declaration early and then set the Body_To_Inling flag.

19 months agoada: Remove unhelpful special case for renamed bodies in GNATprove mode
Piotr Trojanek [Tue, 20 Dec 2022 15:27:30 +0000 (16:27 +0100)]
ada: Remove unhelpful special case for renamed bodies in GNATprove mode

This patch reverts a special-case related to inlining of renamed bodies
in GNATprove mode. Its idea was that inlining is decided in routine
Cannot_Inline, which is called much later. This didn't quite work,
because in the meantime the renamed body was prepared to inlining in
Build_Body_To_Inline, which was not designed to handle renamed bodies.

gcc/ada/

* freeze.adb (Build_Renamed_Body): Revert a special case for
GNATprove; remove unnecessary initialization of a local variable.

19 months agoada: Fix nested generic instantiation
Marc Poulhiès [Wed, 21 Dec 2022 09:29:38 +0000 (10:29 +0100)]
ada: Fix nested generic instantiation

Previous fix for generic instantiation was not precise enough and could
wrongly assume the instantiation node to be an N_Expanded_Name.

gcc/ada/

* sem_ch12.adb (Instantiate_Package_Body): Better filtering when
installing parent on the scope stack.

19 months agoada: Do not use decimal approximation in -gnatRj output
Eric Botcazou [Sat, 17 Dec 2022 12:16:35 +0000 (13:16 +0100)]
ada: Do not use decimal approximation in -gnatRj output

This avoids an unnecessary loss of precision for real values.

gcc/ada/

* repinfo.ads (The JSON output format): Document change.
* urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
decimal approximation.

19 months agoada: Optimize class-wide objects initialized with function calls
Eric Botcazou [Mon, 19 Dec 2022 10:47:38 +0000 (11:47 +0100)]
ada: Optimize class-wide objects initialized with function calls

This optimizes the implementation of class-wide objects initialized with
function calls in the non-interface case, by avoiding an unnecessary copy
operation and/or a dispatching call to the _Size primitive when possible.

gcc/ada/

* exp_ch3.adb (Expand_N_Object_Declaration): New local variable
Func_Id holding the function for a special return object.
Use a direct renaming in the class-wide case when the initializing
expression is a captured function call, except for a special return
object when the two functions do not return on the same stack.
Apply the accessibility check for class-wide special return objects.
* exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
Do not force a dispatching call to the primitive operation _Size if
the expression is known to statically have the tag of its type.

19 months agoada: Fix pasto in comment
Eric Botcazou [Tue, 20 Dec 2022 11:35:53 +0000 (12:35 +0100)]
ada: Fix pasto in comment

gcc/ada/

* exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.

19 months agoada: Fix spurious emissions of -gnatwj warning
Ronan Desplanques [Mon, 19 Dec 2022 17:37:19 +0000 (18:37 +0100)]
ada: Fix spurious emissions of -gnatwj warning

Before this patch, the compiler would erroneously emit a warning
about the use of parentheses for array aggregates being discouraged
in some situations. Those situations were the ones where array
aggregates were used as generic actuals when instantiating generic
packages defined in the runtime library.

This patch fixes this issue by looking at the Ada version explicitly
specified by the user instead of the Ada_Version flag which is
always set to the latest Ada version when compiling code from the
runtime library.

gcc/ada/

* sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
warning about use of parentheses for array aggregates.

19 months agoada: INOX: prototype RFC on String Interpolation
Javier Miranda [Fri, 4 Nov 2022 13:22:05 +0000 (13:22 +0000)]
ada: INOX: prototype RFC on String Interpolation

This patch incorporates a prototype for a new string literal syntax
which supports the use of "string interpolation," where the names
of variables or expressions can be used directly within the string
literal, such that the value of the variable or the expression is
"interpolated" directly into the value of the enclosing string
upon use at run-time.

gcc/ada/

* scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
(Tok_Left_Interpolated_String): Placed in no category since they
don't fit well in the existing categories. Fix typo in comment.
(Inside_Interpolated_String_Literal): New scan state variable.
* scng.adb (Slit): Scan interpolated string literals,
continuations of interpolated string literals and escaped
characters found in interpolated string literals.
(Scan): Handle consecutive interpolated expressions. Handle ending
delimiter placed immediately after an interpolated expression.
Handle string literal placed after interpolated expression. Handle
left and right curly brackets; when extensions are not allowed
they are treated as left and right paren; when extensions are
allowed they are handled as delimiters of interpolated string
literals.
* sinfo.ads (N_Interpolated_String_Literal): New node.
* gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
N_String_Literal node.
* gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
concrete node type.
* par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
* par-ch4.adb (P_Simple_Expression): Handle '}' as expression
terminator when scanning an interpolated expression; disable error
recovery machinery for binary operator when we are processing an
interpolated string literal and reach the expression terminator
'}'.
(P_Primary): Call P_Interpolated_String_Literal when the opening
interpolated-string-literal delimiter is found (that is, the left
curly bracket '{').
* par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
* par.adb (P_Interpolated_String_Literal): New declaration.
(T_Right_Curly_Bracket): New declaration.
* sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
* sem_ch2.ads (Analyze_Interpolated_String_Literal): New
subprogram
* sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
* sem_util.adb (Is_User_Defined_Literal): Complete mapping of
literal aspects adding that interpolated string literals have no
correspondence with any aspect.
* sem_res.adb (Resolve_Interpolated_String_Literal): New
subprogram.
(Has_Applicable_User_Defined_Literal): Complete mapping of literal
aspects adding that interpolated string literals have no
correspondency with any aspect.
* expander.adb (Expand): Add call to
Expand_N_Interpolated_String_Literal.
* exp_util.adb (Insert_Actions): Handle
N_Interpolated_String_Literal nodes; that is, continue climbing.
* exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
subprogram.
* exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
* exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
conversion to force dispatching call. Required to handle calls to
descendants.
(Build_String_Put_Image_Call): Do not output string delimiters
when the put_image call is part of an interpolated string literal.
* rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
* sprint.adb (Sprint_Node): Output interpolated string contents.
* libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
Trim_Leading_White_Spaces component in aggregate.
(Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
* libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
(Buffer_Type_Implementation): Likewise.
* libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
(Trim_Leading_Spaces): New subprogram.
(Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
* libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
subprogram.
(Trim_Leading_Space): New subprogram.
(Put_UTF_8): Handle Trim_Leading_White_Spaces.
(New_Line): Likewise.
* libgnat/s-putima.ads (Put_Image_String): Adding formal
(with_delimiters).
(Put_Image_Wide_String): Likewise.
(Put_Image_Wide_Wide_String): Likewise.
* libgnat/s-putima.adb (Put_Image_String): Adding support for new
formal.
(Put_Image_Wide_String): Likewise.
(Put_Image_Wide_Wide_String): Likewise.