]> gcc.gnu.org Git - gcc.git/log
gcc.git
2 years agoFortran: Fix ICE due to elemental procedure pointers [PR93924/5].
Paul Thomas [Wed, 27 Jan 2021 11:34:02 +0000 (11:34 +0000)]
Fortran: Fix ICE due to elemental procedure pointers [PR93924/5].

2021-01-27  Paul Thomas  <pault@gcc.gnu.org>

gcc/fortran
PR fortran/93924
PR fortran/93925
* trans-expr.c (gfc_conv_procedure_call): Suppress the call to
gfc_conv_intrinsic_to_class for unlimited polymorphic procedure
pointers.
(gfc_trans_assignment_1): Similarly suppress class assignment
for class valued procedure pointers.

gcc/testsuite/
PR fortran/93924
PR fortran/93925
* gfortran.dg/proc_ptr_52.f90 : New test.

(cherry picked from commit 4225af228b5d52e8d7593dea49584c91b4bc2e1f)

2 years agoFortran: Allow pointer deferred length associate selectors. [PR93794]
Paul Thomas [Fri, 8 Jan 2021 10:15:22 +0000 (10:15 +0000)]
Fortran: Allow pointer deferred length associate selectors. [PR93794]

2021-01-05  Paul Thomas  <pault@gcc.gnu.org>

gcc/fortran
PR fortran/93794
* trans-expr.c (gfc_conv_component_ref): Remove the condition
that deferred character length components only be allocatable.

gcc/testsuite/
PR fortran/93794
* gfortran.dg/deferred_character_35.f90 : New test.

(cherry picked from commit 21c1a30fc73105af50c5e717cb99dc3becabf8fa)

2 years agoDaily bump.
GCC Administrator [Mon, 6 Sep 2021 00:18:41 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 5 Sep 2021 00:18:39 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 4 Sep 2021 00:18:41 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 3 Sep 2021 00:18:38 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Thu, 2 Sep 2021 00:19:31 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 1 Sep 2021 00:19:27 +0000 (00:19 +0000)]
Daily bump.

2 years agoFix 'OMP_CLAUSE_TILE' operands handling in 'gcc/tree.c:walk_tree_1'
Thomas Schwinge [Fri, 27 Aug 2021 05:49:35 +0000 (07:49 +0200)]
Fix 'OMP_CLAUSE_TILE' operands handling in 'gcc/tree.c:walk_tree_1'

In r245300 (commit 02889d23ee3b02854dff203dd87b9a25e30b61b4)
"OpenACC tile clause support" that one had changed to three operands,
similar to 'OMP_CLAUSE_COLLAPSE'.

There is no (existing) test case where this seems to matter (likewise
for 'OMP_CLAUSE_COLLAPSE'), but it's good to be consistent.

gcc/
* tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands.

(cherry picked from commit 92dc5d844a2088db79bc4521be3ecb4e2f284444)

2 years agolibgcc: Add missing runtime exception notices
Richard Sandiford [Tue, 31 Aug 2021 09:58:57 +0000 (10:58 +0100)]
libgcc: Add missing runtime exception notices

Quoting from https://gcc.gnu.org/pipermail/gcc/2021-July/236716.html:

--------------------------------------------------------------------
It was pointed out to me off-list that config/aarch64/value-unwind.h
is missing the runtime exception.  It looks like a few other files
are too; a fuller list is:

libgcc/config/aarch64/value-unwind.h
libgcc/config/frv/frv-abi.h
libgcc/config/i386/value-unwind.h
libgcc/config/pa/pa64-hpux-lib.h

Certainly for the aarch64 file this was simply a mistake;
it seems to have been copied from the i386 version, both of which
reference the runtime exception but don't actually include it.
--------------------------------------------------------------------

Similarly, frv-abi.h referenced the exception but didn't include it.
pa64-hpux-lib.h was missing any reference to the exception.

The decision was that this was simply a mistake
[https://gcc.gnu.org/pipermail/gcc/2021-July/236717.html]:

--------------------------------------------------------------------
[…] It generally is
considered a textual omission.  The runtime library components of GCC
are intended to be licensed under the runtime exception, which was
granted and approved at the time of introduction.
--------------------------------------------------------------------

and that we should simply change all of the files above
[https://gcc.gnu.org/pipermail/gcc/2021-July/236719.html]:

--------------------------------------------------------------------
Please correct the text in the files. The files in libgcc used in the
GCC runtime are intended to be licensed with the runtime exception and
GCC previously was granted approval for that licensing and purpose.

[…]

The runtime exception explicitly was intended for this purpose and
usage at the time that GCC received approval to apply the exception.
--------------------------------------------------------------------

libgcc/
* config/aarch64/value-unwind.h: Add missing runtime exception
paragraph.
* config/frv/frv-abi.h: Likewise.
* config/i386/value-unwind.h: Likewise.
* config/pa/pa64-hpux-lib.h: Likewise.

(cherry picked from commit de7a795c321e76826d123c92b99e73e144666b60)

2 years agoDaily bump.
GCC Administrator [Tue, 31 Aug 2021 00:19:29 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Mon, 30 Aug 2021 00:19:03 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 29 Aug 2021 00:19:23 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 28 Aug 2021 00:19:21 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 27 Aug 2021 00:18:51 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Thu, 26 Aug 2021 00:19:36 +0000 (00:19 +0000)]
Daily bump.

2 years agoi386: Fix _mm512_fpclass_ps_mask in O0 [PR 101471]
konglin1 [Mon, 9 Aug 2021 02:58:24 +0000 (10:58 +0800)]
i386: Fix _mm512_fpclass_ps_mask in O0 [PR 101471]

gcc/ChangeLog:

PR target/101471
* config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix
macro define in O0.
(_mm512_mask_fpclass_ps_mask): Ditto.

gcc/testsuite/ChangeLog:

PR target/101471
* gcc.target/i386/avx512f-pr101471.c: New test.

2 years agoDaily bump.
GCC Administrator [Wed, 25 Aug 2021 00:19:29 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 24 Aug 2021 00:19:43 +0000 (00:19 +0000)]
Daily bump.

2 years agoarm: Fix pr69245.c testcase for reorder assembler architecture directives [PR101723]
Christophe Lyon [Fri, 6 Aug 2021 14:25:47 +0000 (14:25 +0000)]
arm: Fix pr69245.c testcase for reorder assembler architecture directives [PR101723]

In gcc.target/arm/pr69245.c, to have a .fpu neon-vfpv4 directive, make
sure code for fn1() is emitted, by removing the static keyword.

Fix a typo in gcc.target/arm/pr69245.c, where \s should be \\s.

2021-08-06  Christophe Lyon  <christophe.lyon@foss.st.com>

gcc/testsuite/

PR target/101723
* gcc.target/arm/pr69245.c: Make sure to emit code for fn1, fix
typo.

(cherry picked from commit aff75af3b50f8c039ed6fbfa3f313ba45d44f6e6)

2 years agoarm: reorder assembler architecture directives [PR101723]
Richard Earnshaw [Thu, 29 Jul 2021 10:00:31 +0000 (11:00 +0100)]
arm: reorder assembler architecture directives [PR101723]

A change to the way gas interprets the .fpu directive in binutils-2.34
means that issuing .fpu will clear any features set by .arch_extension
that apply to the floating point or simd units.  This unfortunately
causes problems for more recent versions of the architecture because
we currently emit .arch, .arch_extension and .fpu directives at
different times and try to suppress redundant changes.

This change addresses this by firstly unifying all the places where we
emit these directives to a single block of code and secondly
(re)emitting all the directives if any changes have been made to the
target options.  Whilst this is slightly more than the strict minimum
it should be enough to catch all cases where a change could have
happened.  The new code also emits the directives in the order: .arch,
.fpu, .arch_extension.  This ensures that the additional architectural
extensions are not removed by a later .fpu directive.

Whilst writing this patch I also noticed that in the corner case where
the last function to be compiled had a non-standard set of
architecture flags, the assembler would add an incorrect set of
derived attributes for the file as a whole.  Instead of reflecting the
command-line options it would reflect the flags from the last file in
the function.  To address this I've also added a call to re-emit the
flags from the asm_file_end callback so the assembler will be in the
correct state when it finishes processing the intput.

There's some slight churn to the testsuite as a consequence of this,
because previously we had a hack to suppress emitting a .fpu directive
for one specific case, but with the new order this is no-longer
necessary.

gcc/ChangeLog:

PR target/101723
* config/arm/arm-cpus.in (quirk_no_asmcpu): New feature bit.
(ALL_QUIRKS): Add it.
(generic-armv7-a): Add quirk to suppress writing .cpu directive in
asm output.
* config/arm/arm.c (arm_identify_fpu_from_isa): New variable.
(arm_last_printed_arch_string): Delete.
(arm_last-printed_fpu_string): Delete.
(arm_configure_build_target): If use of floating-point/SIMD is
disabled, remove all fp/simd related features from the target ISA.
(last_arm_targ_options): New variable.
(arm_print_asm_arch_directives): Add new parameters.  Change order
of emitted directives and handle all cases here.
(arm_file_start): Always call arm_print_asm_arch_directives, move
all generation of .arch/.arch_extension here.
(arm_file_end): Call arm_print_asm_arch.
(arm_declare_function_name): Call arm_print_asm_arch_directives
instead of printing .arch/.fpu directives directly.

gcc/testsuite/ChangeLog:

PR target/101723
* gcc.target/arm/attr-neon.c: Tighten scan-assembler tests.
* gcc.target/arm/attr-neon2.c: Likewise.
* gcc.target/arm/attr-neon3.c: Likewise.
* gcc.target/arm/pr69245.c: Tighten scan-assembler match, but allow
multiple instances.
* gcc.target/arm/pragma_fpu_attribute.c: Likewise.
* gcc.target/arm/pragma_fpu_attribute_2.c: Likewise.

(cherry picked from commit c1cdabe3aab817d95a8db00a8b5e9f6bcdea936f)

2 years agoarm: Don't reconfigure globals in arm_configure_build_target
Richard Earnshaw [Tue, 27 Jul 2021 14:44:57 +0000 (15:44 +0100)]
arm: Don't reconfigure globals in arm_configure_build_target

arm_configure_build_target is usually used to reconfigure the
arm_active_target structure, which is then used to reconfigure a
number of other global variables describing the current target.
Occasionally, however, we need to use arm_configure_build_target to
construct a temporary target structure and in that case it is wrong to
try to reconfigure the global variables (although probably harmless,
since arm_option_reconfigure_globals() only looks at
arm_active_target).  At the very least, however, this is wasted work,
so it is best not to do it unless needed.  What's more, several
callers of arm_configure_build target call
arm_option_reconfigure_globals themselves within a few lines, making
the call from within arm_configure_build_target completely redundant.

So this patch moves the responsibility of calling of
arm_configure_build_target to its callers (only two places needed
updating).

gcc:
* config/arm/arm.c (arm_configure_build_target): Don't call
arm_option_reconfigure_globals.
(arm_option_restore): Call arm_option_reconfigure_globals after
reconfiguring the target.
* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
(cherry picked from commit 6a37d0331c25f23628d4308e5a75624005c223b2)

2 years agoarm: ensure the arch_name is always set for the build target
Richard Earnshaw [Mon, 26 Jul 2021 16:07:14 +0000 (17:07 +0100)]
arm: ensure the arch_name is always set for the build target

This should never happen now if GCC is invoked by the driver, but in
the unusual case of calling cc1 (or its ilk) directly from the command
line the build target's arch_name string can remain NULL.  This can
complicate later processing meaning that we need to check for this
case explicitly in some circumstances.  Nothing should rely on this
behaviour, so it's simpler to always set the arch_name when
configuring the build target and be done with it.

gcc:

* config/arm/arm.c (arm_configure_build_target): Ensure the target's
arch_name is always set.

(cherry picked from commit 62e66c6a6cc52dc0e014141d369cff52757cd7ae)

2 years agoarm: Fix an incorrect warning when -mcpu=cortex-a55 is used with -mfloat-abi=soft
Richard Earnshaw [Wed, 11 Dec 2019 11:59:04 +0000 (11:59 +0000)]
arm: Fix an incorrect warning when -mcpu=cortex-a55 is used with -mfloat-abi=soft

When a CPU such as cortex-a55 is used with the soft-float ABI variant,
the compiler is incorrectly issuing a warning about a mismatch between
the architecture (generated internally) and the CPU.  This is not
expected or intended.

The problem stems from the fact that we generate (correctly) an
architecture for a soft-float compilation, but then try to compare it
against the one recorded for the CPU.  Normally we strip out the
floating point information before doing that comparison, but we
currently only do that for the features that can be affected by the
-mfpu option.  For a soft-float environment we also need to strip out
any bits that depend on having floating-point present.

So this patch implements that and does a bit of housekeeping at the
same time:

- in arm-cpus.in it is not necessary for a CPU to specify both
  +dotprod and +simd in its architecture specification, since +dotprod
  implies +simd.

- I've refactored the ALL_SIMD fgroup in arm-cpus.in to create a new
  subgroup ALL_SIMD_EXTERNAL and containing the bits that were
  previously added directly to ALL_SIMD.  Similarly, I've added an
  ALL_FPU_EXTERNAL subgroup.

- in arm.c rename fpu_bitlist and all_fpubits to fpu_bitlist_internal
  and all_fpubits_internal for consistency with the fgroup bits which
  they contain.

* config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup.
(ALL_SIMD): Use it.
(ALL_FPU_EXTERNAL): New fgroup.
(ALL_FP): Use it.
(cortex-a55, cortex-a75, cortex-a76): Remove redundant
+simd from architecture specification.
(neoverse-n1, cortex-a75.cortex-a55): Likewise.
* config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ...
(isa_all_fpubits_internal, fpu_bitlist_internal): ... these.
(isa_all_fpbits): New bitmap.
(arm_option_override): Initialize it.
(arm_configure_build_target): If the target isa does not have any
FP enabled, do not warn about mismatches in FP-related feature bits.

(cherry picked from commit fd9058b6fcda19f63849a28735e3d2616cfd4e89)

2 years agoDaily bump.
GCC Administrator [Mon, 23 Aug 2021 00:19:11 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 22 Aug 2021 00:19:08 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 21 Aug 2021 00:19:03 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 20 Aug 2021 00:19:00 +0000 (00:19 +0000)]
Daily bump.

2 years agoarm: Remove use of opts_set in arm_configure_build_target [PR100767]
Richard Earnshaw [Thu, 27 May 2021 09:25:37 +0000 (10:25 +0100)]
arm: Remove use of opts_set in arm_configure_build_target [PR100767]

The variable global_options_set is a reflection of which options have
been explicitly set from the command line in the structure
global_options.  But it doesn't describe the contents of a
cl_target_option.  cl_target_option is a set of options to apply and
once configured should represent a viable set of options without
needing to know which were explicitly set by the user.

Unfortunately arm_configure_build_target was incorrectly conflating
the two.  Fortunately, however, we do not really need to know this
since the various override_options functions should have sanitized the
target_options values before constructing a cl_target_option
structure.  It is safe, therefore, to simply drop this parameter to
arm_configure_build_target and rely on checking that various string
parameters are non-null before dereferencing them.

gcc:

PR target/100767
* config/arm/arm.c (arm_configure_build_target): Remove parameter
opts_set, directly check opts parameters for being non-null.
(arm_option_restore): Update call to arm_configure_build_target.
(arm_option_override): Likewise.
(arm_can_inline_p): Likewise.
(arm_valid_target_attribute_tree): Likewise.
* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
* config/arm/arm-protos.h (arm_configure_build_target): Adjust
prototype.

(cherry picked from commit 262e75d22c350acbdf4c1fb4f224cc5d3d711eff)

2 years agoFix up 'gcc.dg/pr78213.c' for '--enable-checking=release' etc.
Thomas Schwinge [Thu, 19 Aug 2021 06:25:47 +0000 (08:25 +0200)]
Fix up 'gcc.dg/pr78213.c' for '--enable-checking=release' etc.

Fix up for r242748 (commit 3615816da830d41f67a5d8955ae588eba7f0b6fb)
"[PR target/78213] Do not ICE on non-empty -fself-test", as made
apparent by recent commit a42467bdb70650cd2f421e67b6c3418f74feaec2
"Restore 'gcc.dg/pr78213.c' testing", after the test case had gotten
disabled in r243681 (commit ecfc21ff34ddc6f8aa517251fb51494c68ff741f)
"Introduce selftest::locate_file" shortly after its original introduction.

gcc/testsuite/
PR testsuite/101969
* gcc.dg/pr78213.c: Fix up for '--enable-checking=release' etc.

(cherry picked from commit b7fc42073c04813f6b63e0641d3f6765424857c9)

2 years agoDaily bump.
GCC Administrator [Thu, 19 Aug 2021 00:19:32 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 18 Aug 2021 00:19:22 +0000 (00:19 +0000)]
Daily bump.

2 years agoRestore 'gcc.dg/pr78213.c' testing
Thomas Schwinge [Tue, 17 Aug 2021 06:45:18 +0000 (08:45 +0200)]
Restore 'gcc.dg/pr78213.c' testing

... after it had gotten disabled in r243681 (Git
commit ecfc21ff34ddc6f8aa517251fb51494c68ff741f)
"Introduce selftest::locate_file".

gcc/testsuite/
* gcc.dg/pr78213.c: Restore testing.

(cherry picked from commit a42467bdb70650cd2f421e67b6c3418f74feaec2)

2 years agoaarch64: Add -mtune=neoverse-512tvb
Richard Sandiford [Tue, 17 Aug 2021 14:15:27 +0000 (15:15 +0100)]
aarch64: Add -mtune=neoverse-512tvb

This patch adds an option to tune for Neoverse cores that have
a total vector bandwidth of 512 bits (4x128 for Advanced SIMD
and a vector-length-dependent equivalent for SVE).  This is intended
to be a compromise between tuning aggressively for a single core like
Neoverse V1 (which can be too narrow) and tuning for AArch64 cores
in general (which can be too wide).

-mcpu=neoverse-512tvb is equivalent to -mcpu=neoverse-v1
-mtune=neoverse-512tvb.

gcc/
* doc/invoke.texi: Document -mtune=neoverse-512tvb and
-mcpu=neoverse-512tvb.
* config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry.
* config/aarch64/aarch64-tune.md: Regenerate.

(cherry picked from commit 048039c49b96875144f67e7789fdea54abf7710b)

2 years agoDaily bump.
GCC Administrator [Tue, 17 Aug 2021 00:19:09 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Mon, 16 Aug 2021 00:19:10 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 15 Aug 2021 00:19:07 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 14 Aug 2021 00:18:51 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 13 Aug 2021 00:19:12 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Thu, 12 Aug 2021 00:18:56 +0000 (00:18 +0000)]
Daily bump.

2 years agolibstdc++: Fix test that fails randomly [PR101866]
Jonathan Wakely [Wed, 11 Aug 2021 21:11:19 +0000 (22:11 +0100)]
libstdc++: Fix test that fails randomly [PR101866]

This test assumes that the same sequence of three values cannot occur,
which is incorect. It's unlikely, but not impossible.

Perform the check in a loop, so that in the unlikely event of an
identical sequence, we retry. If the library code is buggy it will keep
producing the same sequence and the test will time out. If the code is
working correctly then we will usually break out of the loop after one
iteration, or very rarely after two or three.

libstdc++-v3/ChangeLog:

PR libstdc++/101866
* testsuite/experimental/random/randint.cc: Loop and retry if
reseed() produces the same sequence.

(cherry picked from commit 93f1dbc7cdcc4b31ea4061efb4c2acf2d4f81eb8)

2 years agolibstdc++: Fix create_directories to resolve symlinks [PR101510]
Jonathan Wakely [Tue, 20 Jul 2021 17:15:48 +0000 (18:15 +0100)]
libstdc++: Fix create_directories to resolve symlinks [PR101510]

When filesystem__create_directories checks to see if the path already
exists and resolves to a directory, it uses filesystem::symlink_status,
which means it reports an error if the path is a symlink. It should use
filesystem::status, so that the target directory is detected, and no
error is reported.

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:

PR libstdc++/101510
* src/c++17/fs_ops.cc (fs::create_directories): Use status
instead of symlink_status.
* src/filesystem/ops.cc (fs::create_directories): Likewise.
* testsuite/27_io/filesystem/operations/create_directories.cc:
Check symlink to existing directory.
* testsuite/27_io/filesystem/operations/create_directory.cc: Do
not test with symlinks on Windows.
* testsuite/experimental/filesystem/operations/create_directories.cc:
Check symlink to existing directory.
* testsuite/experimental/filesystem/operations/create_directory.cc:
Do not test with symlinks on Windows.

(cherry picked from commit 124eaa50e0a34f5f89572c1aa812c50979da58fc)

2 years agolibstdc++: Add more tests for filesystem::create_directory [PR101510]
Jonathan Wakely [Tue, 20 Jul 2021 11:35:37 +0000 (12:35 +0100)]
libstdc++: Add more tests for filesystem::create_directory [PR101510]

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:

PR libstdc++/101510
* src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
* testsuite/27_io/filesystem/operations/create_directory.cc:
Test creating directory with name of existing symlink to
directory.
* testsuite/experimental/filesystem/operations/create_directory.cc:
Likewise.

(cherry picked from commit 0c4ae4ff46b1d7633f1e06f57d348b5817b8f640)

2 years agoDaily bump.
GCC Administrator [Wed, 11 Aug 2021 00:18:51 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 10 Aug 2021 00:18:52 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Mon, 9 Aug 2021 00:19:03 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 8 Aug 2021 00:18:55 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 7 Aug 2021 00:19:09 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 6 Aug 2021 00:18:50 +0000 (00:18 +0000)]
Daily bump.

2 years agosanitizer: cherry pick 414482751452e54710f16bae58458c66298aaf69
Martin Liska [Thu, 5 Aug 2021 08:43:17 +0000 (10:43 +0200)]
sanitizer: cherry pick 414482751452e54710f16bae58458c66298aaf69

The patch is needed in order to support recent glibc (2.34).

libsanitizer/ChangeLog:

PR sanitizer/101749
* sanitizer_common/sanitizer_posix_libcdep.cc: Prevent
generation of dependency on _cxa_guard for static
initialization.

2 years agoDaily bump.
GCC Administrator [Thu, 5 Aug 2021 00:19:36 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 4 Aug 2021 00:19:12 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 3 Aug 2021 07:51:46 +0000 (07:51 +0000)]
Daily bump.

2 years agolibstdc++: Re-enable workaround for _wstat64 bug, again [PR 88881]
Jonathan Wakely [Wed, 10 Feb 2021 16:51:34 +0000 (16:51 +0000)]
libstdc++: Re-enable workaround for _wstat64 bug, again [PR 88881]

I forgot that the workaround is present in both filesystem::status and
filesystem::symlink_status. This restores it in the latter.

libstdc++-v3/ChangeLog:

PR libstdc++/88881
* src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.

(cherry picked from commit b7210405ed8eb5fd723b2c99960dcc5f0aec89b4)

2 years agolibstdc++: Re-enable workaround for _wstat64 bug [PR 88881]
Jonathan Wakely [Wed, 10 Feb 2021 16:51:34 +0000 (16:51 +0000)]
libstdc++: Re-enable workaround for _wstat64 bug [PR 88881]

This wasn't fixed upstream for mingw-w64 so we still need the
workaround.

libstdc++-v3/ChangeLog:

PR libstdc++/88881
* src/c++17/fs_ops.cc (fs::status): Re-enable workaround.

(cherry picked from commit 3df5b249b3c81e95cdcb293a388155ae5b168f9e)

2 years agomips: Fix up mips_atomic_assign_expand_fenv [PR94780]
Xi Ruoyao [Fri, 30 Jul 2021 15:44:14 +0000 (23:44 +0800)]
mips: Fix up mips_atomic_assign_expand_fenv [PR94780]

Commit message shamelessly copied from 1777beb6b129 by jakub:

This function, because it is sometimes called even outside of function
bodies, uses create_tmp_var_raw rather than create_tmp_var.  But in order
for that to work, when first referenced, the VAR_DECLs need to appear in a
TARGET_EXPR so that during gimplification the var gets the right
DECL_CONTEXT and is added to local decls.

gcc/

PR target/94780
* config/mips/mips.c (mips_atomic_assign_expand_fenv): Use
  TARGET_EXPR instead of MODIFY_EXPR.

(cherry picked from commit 2065654435e3d97676366f82b939bc9273382dbe)

2 years agors6000: Add int128 target check to pr101129.c (PR101531)
Bill Schmidt [Thu, 29 Jul 2021 15:31:22 +0000 (10:31 -0500)]
rs6000: Add int128 target check to pr101129.c (PR101531)

Backport from mainline.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/testsuite/
PR target/101531
* gcc.target/powerpc/pr101129.c: Adjust.

2 years agod: Ensure casting from bool results in either 0 or 1 (PR96435)
Iain Buclaw [Mon, 26 Jul 2021 17:28:02 +0000 (19:28 +0200)]
d: Ensure casting from bool results in either 0 or 1 (PR96435)

If casting from bool, the result is either 0 or 1, any other value
violates @safe code, so enforce that it is never invalid.

PR d/96435

gcc/d/ChangeLog:

* d-convert.cc (convert_for_rvalue): New function.
* d-tree.h (convert_for_rvalue): Declare.
* expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue.
(build_return_dtor): Likewise.

gcc/testsuite/ChangeLog:

* gdc.dg/pr96435.d: New test.

(cherry picked from commit 5c9b7408dc578cb2ae142a5c1b724c183497bdb2)

2 years agoDaily bump.
GCC Administrator [Thu, 29 Jul 2021 00:19:18 +0000 (00:19 +0000)]
Daily bump.

2 years agod: Wrong evaluation order of binary expressions (PR101640)
Iain Buclaw [Tue, 27 Jul 2021 11:24:34 +0000 (13:24 +0200)]
d: Wrong evaluation order of binary expressions (PR101640)

The use of fold_build2 can in some cases swap the order of its operands
if that is the more optimal thing to do.  However this breaks semantic
guarantee of left-to-right evaluation in D.

PR d/101640

gcc/d/ChangeLog:

* expr.cc (binary_op): Use build2 instead of fold_build2.

gcc/testsuite/ChangeLog:

* gdc.dg/pr101640.d: New test.

(cherry picked from commit 54ec50bada94a8ff92edb04ee5216c27fa4bf942)

2 years agod: fix ICE at convert_expr(tree_node*, Type*, Type*) (PR101490)
Iain Buclaw [Mon, 26 Jul 2021 13:11:42 +0000 (15:11 +0200)]
d: fix ICE at convert_expr(tree_node*, Type*, Type*) (PR101490)

Both the front-end and code generator had a modulo by zero bug when testing if
a conversion from a static array to dynamic array was valid.

PR d/101490

gcc/d/ChangeLog:

* d-codegen.cc (build_array_index): Handle void arrays same as byte.
* d-convert.cc (convert_expr): Handle converting to zero-sized arrays.
* dmd/dcast.c (castTo): Handle casting to zero-sized arrays.

gcc/testsuite/ChangeLog:

* gdc.dg/pr101490.d: New test.
* gdc.test/fail_compilation/fail22144.d: New test.

(cherry picked from commit c936c39f86c74b3bfc6831f694b3165296c99dc0)

2 years agod: __FUNCTION__ doesn't work in core.stdc.stdio functions without cast (PR101441)
Iain Buclaw [Mon, 26 Jul 2021 13:24:12 +0000 (15:24 +0200)]
d: __FUNCTION__ doesn't work in core.stdc.stdio functions without cast (PR101441)

Backports fix from upstream to allow __FUNCTION__ and
__PRETTY_FUNCTION__ to be used as C string literals.

Reviewed-on: https://github.com/dlang/dmd/pull/12923

PR d/101441

gcc/d/ChangeLog:

* dmd/expression.c (FuncInitExp::resolveLoc): Set type as `string'.
(PrettyFuncInitExp::resolveLoc): Likewise.

gcc/testsuite/ChangeLog:

* gdc.test/compilable/b19002.d: New test.

(cherry picked from commit 1a2306ffe79df89389cc850ce85c586d0f1c8264)

2 years agod: Compile-time reflection for supported built-ins (PR101127)
Iain Buclaw [Sun, 25 Jul 2021 21:19:36 +0000 (23:19 +0200)]
d: Compile-time reflection for supported built-ins (PR101127)

In order to allow user-code to determine whether a back-end builtin is
available without error, LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE has been
defined to delay putting back-end builtin functions until the ISA that
defines them has been declared.

However in D, there is no global namespace.  All builtins get pushed
into the `gcc.builtins' module, which is constructed during the semantic
analysis pass, which has already finished by the time target attributes
are evaluated.  So builtins are not pushed by the new langhook because
they would be ultimately ignored.  Builtins exposed to D code then can
now only be altered by the command-line.

PR d/101127

gcc/d/ChangeLog:

* d-builtins.cc (d_builtin_function_ext_scope): New function.
* d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define.
* d-tree.h (d_builtin_function_ext_scope): Declare.

gcc/testsuite/ChangeLog:

* gdc.dg/pr101127a.d: New test.
* gdc.dg/pr101127b.d: New test.

(cherry picked from commit b2f6e1de242fff5713763cd3146dcf3f9dee51ca)

2 years agoDaily bump.
GCC Administrator [Wed, 28 Jul 2021 00:18:45 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 27 Jul 2021 00:18:48 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Mon, 26 Jul 2021 00:18:49 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 25 Jul 2021 00:18:43 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 24 Jul 2021 00:19:07 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 23 Jul 2021 00:18:57 +0000 (00:18 +0000)]
Daily bump.

2 years agolibstdc++: Fix test failure in C++20 mode
Jonathan Wakely [Thu, 22 Jul 2021 21:26:30 +0000 (22:26 +0100)]
libstdc++: Fix test failure in C++20 mode

Because the container types are ambiguous in this test, the declarations
of the C++20 uniform container erasure function template produce
additional errors. They can be ignored.

libstdc++-v3/ChangeLog:

* testsuite/ext/profile/mutex_extensions_neg.cc: Prune
additional errors in C++20 mode.

2 years agolibstdc++: Move atomic functions to libsupc++ [PR 96657]
Jonathan Wakely [Wed, 14 Apr 2021 19:48:54 +0000 (20:48 +0100)]
libstdc++: Move atomic functions to libsupc++ [PR 96657]

The changes for PR libstdc++/64735 mean that libsupc++ function might
now depend on the __exchange_and_add and __atomic_add functions defined
in config/cpu/*/atomicity.h which is not compiled into libsupc++. This
causes a link failure for some targets when trying to use libsupc++
without the rest of libstdc++.

This patch simply moves the definitions of those functions into
libsupc++ so that they are available there.

libstdc++-v3/ChangeLog:

PR libstdc++/96657
* libsupc++/Makefile.am: Add atomicity.cc here.
* src/c++98/Makefile.am: Remove it from here.
* libsupc++/Makefile.in: Regenerate.
* src/c++98/Makefile.in: Regenerate.
* testsuite/18_support/exception_ptr/96657.cc: New test.

(cherry picked from commit 6c0c7fc6236470a533675cd3cd1ebb1cc3dd112c)

2 years agolibstdc++: Fix std::any constraints [PR101034]
Jonathan Wakely [Mon, 14 Jun 2021 13:18:33 +0000 (14:18 +0100)]
libstdc++: Fix std::any constraints [PR101034]

PR libstdc++/101034

libstdc++-v3/ChangeLog:

* include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
(any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
to use lvalue.
* testsuite/20_util/any/cons/101034.cc: New test.

(cherry picked from commit 14f26c75d255ef05b706a12d25b003da8a2f5b45)

2 years agolibstdc++: Fix constructor constraints for std::any (PR 90415)
Jonathan Wakely [Thu, 23 Apr 2020 23:54:20 +0000 (00:54 +0100)]
libstdc++: Fix constructor constraints for std::any  (PR 90415)

This removes a non-standard extension to std::any which causes errors
for valid code, due to recursive instantiation of a trait that isn't
supposed to be in the constraints.

It also removes some incorrect constraints on the in_place_type<T>
constructors and emplace members, which were preventing creating a
std::any object with another std::any as the contained value.

2020-04-24  Kamlesh Kumar  <kamleshbhalui@gmail.com>
    Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/90415
PR libstdc++/92156
* include/std/any (any): Rename template parameters for consistency
with the standard.
(any::_Decay): Rename to _Decay_if_not_any.
(any::any(T&&)): Remove is_constructible from constraints. Remove
non-standard overload.
(any::any(in_place_type_t<T>, Args&&...))
(any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
(any::emplace(Args&&...))
(any::emplace(initializer_list<U>, Args&&...)):
Use decay_t instead of _Decay.
* testsuite/20_util/any/cons/90415.cc: New test.
* testsuite/20_util/any/cons/92156.cc: New Test.
* testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
more robust.
* testsuite/20_util/any/modifiers/92156.cc: New test.

(cherry picked from commit d1462b0782555354b4480e1f46498586d5882972)

2 years agolibstdc++: Fix constraint on std::optional assignment [PR 100982]
Jonathan Wakely [Wed, 9 Jun 2021 10:03:15 +0000 (11:03 +0100)]
libstdc++: Fix constraint on std::optional assignment [PR 100982]

libstdc++-v3/ChangeLog:

PR libstdc++/100982
* include/std/optional (optional::operator=(const optional<U>&)):
Fix value category used in is_assignable check.
* testsuite/20_util/optional/assignment/100982.cc: New test.

(cherry picked from commit b3fce1bd45f72cc9e55fb7431762e92e30fefcf1)

2 years agoDaily bump.
GCC Administrator [Thu, 22 Jul 2021 00:19:12 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 21 Jul 2021 00:19:15 +0000 (00:19 +0000)]
Daily bump.

2 years agoi386: Remove atomic_storedi_fpu and atomic_loaddi_fpu peepholes [PR100182]
Uros Bizjak [Tue, 20 Jul 2021 04:38:46 +0000 (06:38 +0200)]
i386: Remove atomic_storedi_fpu and atomic_loaddi_fpu peepholes [PR100182]

These patterns result in non-atomic sequence.

2021-07-21  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
PR target/100182
* config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
Remove.
(define_peephole2 atomic_loaddi_fpu): Ditto.

gcc/testsuite/
PR target/100182
* gcc.target/i386/pr71245-1.c: Remove.
* gcc.target/i386/pr71245-2.c: Ditto.

2 years agoDaily bump.
GCC Administrator [Tue, 20 Jul 2021 00:19:01 +0000 (00:19 +0000)]
Daily bump.

2 years agors6000: Don't let swaps pass break multiply low-part (PR101129)
Bill Schmidt [Mon, 19 Jul 2021 21:14:36 +0000 (16:14 -0500)]
rs6000: Don't let swaps pass break multiply low-part (PR101129)

Backport from mainline.

2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
PR target/101129
* config/rs6000/rs6000-p8swap.c (has_part_mult): New.
(rs6000_analyze_swaps): Insns containing a subreg of a mult are
not swappable.

gcc/testsuite/
PR target/101129
* gcc.target/powerpc/pr101129.c: New.

2 years agocombine: Don't create REG_UNUSED notes if the reg already died (PR99927)
Segher Boessenkool [Sat, 17 Apr 2021 18:06:17 +0000 (18:06 +0000)]
combine: Don't create REG_UNUSED notes if the reg already died (PR99927)

If the register named in an existing REG_UNUSED note dies somewhere
between where the note used to be and I3, we should just drop it.

2021-04-21  Segher Boessenkool  <segher@kernel.crashing.org>

PR rtl-optimization/99927
* combine.c (distribute_notes) [REG_UNUSED]: If the register already
is dead, just drop it.

(cherry picked from commit b412ce8e961052e6becea3bc783a53e1d5feaa0f)

2 years agoDaily bump.
GCC Administrator [Mon, 19 Jul 2021 00:19:14 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 18 Jul 2021 00:18:42 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 17 Jul 2021 00:19:04 +0000 (00:19 +0000)]
Daily bump.

2 years agoFortran - ICE in gfc_conv_expr_present initializing non-dummy class variable
Harald Anlauf [Wed, 14 Jul 2021 15:25:29 +0000 (17:25 +0200)]
Fortran - ICE in gfc_conv_expr_present initializing non-dummy class variable

gcc/fortran/ChangeLog:

PR fortran/100949
* trans-expr.c (gfc_trans_class_init_assign): Call
gfc_conv_expr_present only for dummy variables.

gcc/testsuite/ChangeLog:

PR fortran/100949
* gfortran.dg/pr100949.f90: New test.

(cherry picked from commit 269ca408e2839d7f3554a91515d73d4d95352f68)

2 years agoDaily bump.
GCC Administrator [Fri, 16 Jul 2021 00:18:46 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Thu, 15 Jul 2021 00:19:17 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 14 Jul 2021 00:19:12 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 13 Jul 2021 00:19:04 +0000 (00:19 +0000)]
Daily bump.

2 years agoDo not replace variable op variable in I/O implied DO loop replacement.
Thomas Koenig [Tue, 6 Jul 2021 05:04:09 +0000 (07:04 +0200)]
Do not replace variable op variable in I/O implied DO loop replacement.

This PR came about because index expressions of the form k+k in
implied DO loops in I/O statements were considered for replacement
by array slices.

Fixed by only doing the transformation if the expression is of the
type expr OP contastant.

gcc/fortran/ChangeLog:

PR fortran/100227
* frontend-passes.c (traverse_io_block): Adjust test for
when a variable is eligible for the transformation to
array slice.

gcc/testsuite/ChangeLog:

PR fortran/100227
* gfortran.dg/implied_do_io_7.f90: New test.

(cherry picked from commit d7e3855d5dd8c001bb65dc7da1cda0249bfc2986)

2 years agoDaily bump.
GCC Administrator [Mon, 12 Jul 2021 00:19:07 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 11 Jul 2021 00:19:06 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 10 Jul 2021 00:19:19 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 9 Jul 2021 00:18:47 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Thu, 8 Jul 2021 00:18:56 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Wed, 7 Jul 2021 00:19:38 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Tue, 6 Jul 2021 00:19:11 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Mon, 5 Jul 2021 00:18:50 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sun, 4 Jul 2021 00:18:50 +0000 (00:18 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Sat, 3 Jul 2021 00:19:01 +0000 (00:19 +0000)]
Daily bump.

2 years agoDaily bump.
GCC Administrator [Fri, 2 Jul 2021 00:19:16 +0000 (00:19 +0000)]
Daily bump.

This page took 0.090885 seconds and 5 git commands to generate.