]> gcc.gnu.org Git - gcc.git/log
gcc.git
3 years agoDaily bump.
GCC Administrator [Sat, 13 Jun 2020 00:17:35 +0000 (00:17 +0000)]
Daily bump.

3 years agoasan: fix RTX emission for ilp32
Martin Liska [Thu, 11 Jun 2020 07:34:41 +0000 (09:34 +0200)]
asan: fix RTX emission for ilp32

gcc/ChangeLog:

PR sanitizer/95634
* asan.c (asan_emit_stack_protection): Fix emission for ilp32
by using Pmode instead of ptr_mode.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
(cherry picked from commit 8cff672cb9a132d3d3158c2edfc9a64b55292b80)

3 years agoAdd missing store in emission of asan_stack_free.
Martin Liska [Tue, 19 May 2020 14:57:56 +0000 (16:57 +0200)]
Add missing store in emission of asan_stack_free.

gcc/ChangeLog:

2020-05-19  Martin Liska  <mliska@suse.cz>

PR sanitizer/94910
* asan.c (asan_emit_stack_protection): Emit
also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
a stack frame.

(cherry picked from commit 8b6731e674c76cb48a417f2eef74ced92a17f469)

3 years agoDaily bump.
GCC Administrator [Fri, 12 Jun 2020 00:17:40 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Thu, 11 Jun 2020 00:17:54 +0000 (00:17 +0000)]
Daily bump.

3 years agopr94833, fix vec_first_match_index for nulls
Carl Love [Wed, 10 Jun 2020 21:12:08 +0000 (16:12 -0500)]
pr94833, fix vec_first_match_index for nulls

Backported patch from mainline.  Updated ChangeLog format
commit 24f68831d25bad739a6fe167a58b5b4c0c3cbf9a
Author: Carl Love <cel@us.ibm.com>
Date:   Wed Apr 29 10:23:11 2020 -0500

Note the mainlin patch adds tests to the test case in mainline.  The test
case does not exist in GCC 8.  Only the functional change in
gcc/config/rs6000/vsx.md was backported.

2020-06-10  Carl Love  <cel@us.ibm.com>

gcc/
PR target/94833
* config/rs6000/vsx.md (define_expand): Fix instruction generation for
first_match_index_<mode>.

3 years agoDaily bump.
GCC Administrator [Wed, 10 Jun 2020 00:17:50 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Tue, 9 Jun 2020 00:17:58 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Mon, 8 Jun 2020 00:17:34 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 7 Jun 2020 00:17:27 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 6 Jun 2020 00:17:34 +0000 (00:17 +0000)]
Daily bump.

3 years agox86: Update Intel processor detection
H.J. Lu [Mon, 18 May 2020 12:35:27 +0000 (05:35 -0700)]
x86: Update Intel processor detection

Add cpu model numbers for Intel Airmont, Comet Lake and Ice Lake
processor families.

* config/i386/driver-i386.c (host_detect_local_cpu): Support
Intel Airmont, Comet Lake and Ice Lake processor families.

3 years agoDaily bump.
GCC Administrator [Fri, 5 Jun 2020 00:17:39 +0000 (00:17 +0000)]
Daily bump.

3 years ago'libgomp.oacc-fortran/{error_,}stop-{1,2,3}.f': initialize before the checkpoint
Thomas Schwinge [Wed, 6 May 2020 08:05:49 +0000 (10:05 +0200)]
'libgomp.oacc-fortran/{error_,}stop-{1,2,3}.f': initialize before the checkpoint

If, for example, GCC is configured such that 'libgomp-plugin-nvptx.so.1'
dynamically links against 'libcuda.so.1', but testing is run on a system where
there is no 'libcuda.so.1', this produces output such as:

    PASS: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  (test for excess errors)
    PASS: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  execution test
    FAIL: libgomp.oacc-fortran/error_stop-1.f -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable  -O0  output pattern test, is  CheCKpOInT

    libgomp: while loading libgomp-plugin-nvptx.so.1: libcuda.so.1: cannot open shared object file: No such file or directory
    ERROR STOP

    Error termination. Backtrace: [...]
    , should match CheCKpOInT(
    |
    |^M)+ERROR STOP (
    |
    |^M)+Error termination.*

..., where after 'CheCKpOInT' we got 'libgomp: while loading [...]' injected
before the expected 'ERROR STOP'.

libgomp/
* testsuite/libgomp.oacc-fortran/error_stop-1.f: Initialize before
the checkpoint.
* testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.

(cherry picked from commit 1e378edd8f038c52914bc6cac8f6dd5a5c4f8a98)

3 years agoDaily bump.
GCC Administrator [Thu, 4 Jun 2020 00:17:40 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Wed, 3 Jun 2020 00:17:42 +0000 (00:17 +0000)]
Daily bump.

3 years agoaarch64: Add initial support for -mcpu=zeus
Kyrylo Tkachov [Tue, 2 Jun 2020 16:52:16 +0000 (17:52 +0100)]
aarch64: Add initial support for -mcpu=zeus

This patch adds support for the Arm Zeus CPU.
Bootstrapped and tested on aarch64-none-linux-gnu.

gcc/

2020-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/aarch64/aarch64-cores.def (zeus): Define.
* config/aarch64/aarch64-tune.md: Regenerate.
* doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.

3 years agoRemove bad ChangeLog entry.
Martin Liska [Tue, 2 Jun 2020 06:58:33 +0000 (08:58 +0200)]
Remove bad ChangeLog entry.

3 years agoRemove accidentally installed file.
Martin Liska [Tue, 2 Jun 2020 06:54:54 +0000 (08:54 +0200)]
Remove accidentally installed file.

ChangeLog:

* -: Remove.

3 years agoDaily bump.
GCC Administrator [Tue, 2 Jun 2020 00:17:36 +0000 (00:17 +0000)]
Daily bump.

3 years agoFinalization depends on the expression, not on the component.
Thomas Koenig [Sun, 31 May 2020 08:26:40 +0000 (10:26 +0200)]
Finalization depends on the expression, not on the component.

This patch fixes a 8/9/10/11 regression, where finalized types
were not finalized (and deallocated), which led to memory
leaks.

gcc/fortran/ChangeLog:

2020-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/94361
* class.c (finalize_component): Use expr->finalized instead of
comp->finalized.
* gfortran.h (gfc_component): Remove finalized member.
(gfc_expr): Add it here instead.

gcc/testsuite/ChangeLog:

2020-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/94361
* gfortran.dg/finalize_28.f90: Adjusted free counts.
* gfortran.dg/finalize_34.f90: Likewise.
* gfortran.dg/finalize_35.f90: New test.

(cherry picked from commit 2a0de88ccf2ecc6659b0f1e4580c1ce5cff976b3)

3 years agoDaily bump.
GCC Administrator [Mon, 1 Jun 2020 00:17:35 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 31 May 2020 00:17:31 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 30 May 2020 00:17:38 +0000 (00:17 +0000)]
Daily bump.

3 years agoaarch64: PR target/94591: Don't generate invalid REV64 insns
Alex Coplan [Fri, 29 May 2020 13:23:02 +0000 (14:23 +0100)]
aarch64: PR target/94591: Don't generate invalid REV64 insns

This fixes PR94591. The problem was the function
aarch64_evpc_rev_local() matching vector permutations that were not
reversals. In particular, prior to this patch, this function matched the
identity permutation which led to generating bogus REV64 insns which
were rejected by the assembler.

gcc/
PR target/94591
* config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
identity permutation.

gcc/testsuite/
PR target/94591
* gcc.c-torture/execute/pr94591.c: New test.

(cherry picked from commit 98452668d362bb9e6358f7eb5cff69f4f5ab1d45)

3 years ago[AArch64] Use __getauxval instead of getauxval in LSE detection code in libgcc
Kyrylo Tkachov [Wed, 6 May 2020 15:20:38 +0000 (16:20 +0100)]
[AArch64] Use __getauxval instead of getauxval in LSE detection code in libgcc

This version of the fix uses __getauxval instead of getauxval.
The whole thing is guarded simply on __gnu_linux__.
__getauxval was introduced in 2.16 but the aarch64 port was added in 2.17 so in practice I expect all aarch64 glibcs to support __getauxval.

Bootstrapped and tested on aarch64-none-linux-gnu.
Also tested on aarch64-none-elf.

2020-05-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/aarch64/lse-init.c (init_have_lse_atomics): Use __getauxval
instead of getauxval.
(AT_HWCAP): Define.
(HWCAP_ATOMICS): Define.
Guard detection on __gnu_linux__.

(cherry picked from commit 1266778548e20de82983b6446f3cb685068cfb1e)

3 years agogcov-tool: Flexible endian adjustment for merging coverage data
Martin Liska [Thu, 28 May 2020 06:16:58 +0000 (08:16 +0200)]
gcov-tool: Flexible endian adjustment for merging coverage data

gcc/ChangeLog:
2020-05-27  Dong JianQiang  <dongjianqiang2@huawei.com>

PR gcov-profile/95332
* gcov-io.c (gcov_var::endian): Move field.
(from_file): Add IN_GCOV_TOOL check.
* gcov-io.h (gcov_magic): Ditto.

libgcc/ChangeLog:
2020-05-27  Dong JianQiang  <dongjianqiang2@huawei.com>

PR gcov-profile/95332
* libgcov-util.c (read_gcda_file): Call gcov_magic.
* libgcov.h (gcov_magic): Disable GCC poison.

(cherry picked from commit 17d1594bfe08f3c768e024b180816cbe37ac08ac)

3 years agoFix various limitations of git-backport.py.
Martin Liska [Fri, 29 May 2020 09:29:25 +0000 (11:29 +0200)]
Fix various limitations of git-backport.py.

I've just tested the script and I'm going to install the patch
to all active branches.

contrib/ChangeLog:

* git-backport.py: The script did 'git co HEAD~' when
there was no modified ChangeLog file in a successful
git cherry pick.
Run cherry-pick --continue without editor.

(cherry picked from commit 24663f1f6d709daf8913484914ed01af9f7a480a)

3 years agoDaily bump.
GCC Administrator [Fri, 29 May 2020 00:17:30 +0000 (00:17 +0000)]
Daily bump.

3 years agoFortran : ICE in gfc_trans_label_assign PR50392
Mark Eggleston [Thu, 7 May 2020 07:15:26 +0000 (08:15 +0100)]
Fortran  : ICE in gfc_trans_label_assign PR50392

A function may contain an assigned goto.  If the the return variable
is an integer a statement can be assigned to it.  Prior to this fix
this resulted in an ICE.

2020-05-28  Tobias Burnus  <tobias@codesourcery.com>

gcc/fortran/

PR fortran/50392
* trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
delimiters.  Add auxiliary variables if a label is assigned to
a return variable. (gfc_gat_fake_result): If the symbol has an
assign attribute set declaration from the symbol's backend
declaration.

2020-05-28  Mark Eggleston  <markeggleston@gnu.gcc.org>

gcc/testsuite/

PR fortran/50392
* gfortran.dg/pr50392.f: New test.

(cherry picked from commit a7fd43c38f7469a3ef5ee30e889d60e1376d4dfc)

3 years agoDaily bump.
GCC Administrator [Thu, 28 May 2020 04:25:02 +0000 (04:25 +0000)]
Daily bump.

3 years agoAdd new git-backport.py script.
Martin Liska [Tue, 26 May 2020 13:32:32 +0000 (15:32 +0200)]
Add new git-backport.py script.

contrib/ChangeLog:

* git-backport.py: New file.

3 years agoDaily bump.
GCC Administrator [Wed, 27 May 2020 07:47:00 +0000 (07:47 +0000)]
Daily bump.

3 years agoAdd missing ChangeLog entries.
Martin Liska [Tue, 26 May 2020 07:40:09 +0000 (09:40 +0200)]
Add missing ChangeLog entries.

3 years agoDaily bump.
GCC Administrator [Tue, 26 May 2020 00:17:22 +0000 (00:17 +0000)]
Daily bump.

3 years agoc++: Local class DMI using local static [PR90749]
Jason Merrill [Mon, 25 May 2020 22:38:09 +0000 (18:38 -0400)]
c++: Local class DMI using local static [PR90749]

For default member initializers in templates it's important to push into the
right context during get_nsdmi.  But for a local class that's not possible,
and trying leaves the function context we need to be in, so don't try.

gcc/cp/ChangeLog
2020-05-01  Jason Merrill  <jason@redhat.com>

PR c++/90749
* init.c (get_nsdmi): Don't push_to_top_level for a local class.

3 years agoc++: -fmerge-all-constants vs. destructors [PR91529]
Jason Merrill [Mon, 25 May 2020 22:38:09 +0000 (18:38 -0400)]
c++: -fmerge-all-constants vs. destructors [PR91529]

cp_finish_decl avoids setting TREE_READONLY on TREE_STATIC variables that
have non-constant construction or destruction, but -fmerge-all-constants was
converting an automatic variable to static while leaving TREE_READONLY set.

Fixed by clearing the flag in cp_finish_decl in the presence of
-fmerge-all-constants.

gcc/cp/ChangeLog
2020-05-01  Jason Merrill  <jason@redhat.com>

PR c++/91529
* decl.c (cp_finish_decl): Also clear TREE_READONLY if
-fmerge-all-constants.

3 years agoc++: generic lambda and -fsanitize=vla-bound [PR93822]
Jason Merrill [Mon, 25 May 2020 22:38:09 +0000 (18:38 -0400)]
c++: generic lambda and -fsanitize=vla-bound [PR93822]

Within the generic lambda the VLA capture proxy VAR_DECL has DECL_VALUE_EXPR
which is a NOP_EXPR to the VLA type of the proxy.  The problem here was that
when instantiating we were tsubsting that type twice, once for the type of
the DECL and once for the type of the NOP_EXPR, and getting two
different (though equivalent) types.  Then gimplify_type_sizes fixed up the
type of the DECL, but that didn't affect the type of the NOP_EXPR, leading
to sadness.

Fixed by directly reusing the type from the DECL.

gcc/cp/ChangeLog
2020-05-01  Jason Merrill  <jason@redhat.com>

PR c++/93822
* pt.c (tsubst_decl): Make sure DECL_VALUE_EXPR continues to have
the same type as the variable.

3 years agoDaily bump.
GCC Administrator [Mon, 25 May 2020 00:17:20 +0000 (00:17 +0000)]
Daily bump.

3 years agox86: Handle -mavx512vpopcntdq for -march=native
H.J. Lu [Fri, 22 May 2020 11:18:34 +0000 (04:18 -0700)]
x86: Handle -mavx512vpopcntdq for -march=native

Add -mavx512vpopcntdq for -march=native if AVX512VPOPCNTDQ is available.

PR target/95258
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
AVX512VPOPCNTDQ.

(cherry picked from commit 808b611bfb4b05703ea174e50874c711dca44c98)

3 years agoDaily bump.
GCC Administrator [Sun, 24 May 2020 00:17:19 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 23 May 2020 00:17:12 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Fri, 22 May 2020 00:17:09 +0000 (00:17 +0000)]
Daily bump.

3 years agoFix backport due to usage for x_target_flags.
Martin Liska [Thu, 21 May 2020 14:53:35 +0000 (16:53 +0200)]
Fix backport due to usage for x_target_flags.

gcc/ChangeLog:

* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
Use MASK_OUTLINE_ATOMICS for x_target_flags.

3 years agoAdd outline-atomics to target attribute.
Martin Liska [Thu, 21 May 2020 10:45:47 +0000 (12:45 +0200)]
Add outline-atomics to target attribute.

* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
Handle OPT_moutline_atomics.
* config/aarch64/aarch64.c: Add outline-atomics to
aarch64_attributes.

* doc/extend.texi: Document the newly added target attribute.

* gcc.target/aarch64/target_attr_20.c: New test.
* gcc.target/aarch64/target_attr_21.c: New test.

(cherry picked from commit 9e02b45ffc60e0078bde3c56a14f00c54b7f8039)

3 years agox86: Update VPCLMULQDQ check
H.J. Lu [Wed, 20 May 2020 01:55:08 +0000 (18:55 -0700)]
x86: Update VPCLMULQDQ check

Update VPCLMULQDQ check to support processors with AVX version of
VPCLMULQDQ.

Backport from master
PR target/91695
* config/i386/cpuinfo.c (get_available_features): Fix VPCLMULQDQ
check.

(cherry picked from commit 1e46a443f25d26816536c0c480211714b123a1d5)

3 years agox86: Update GFNI check
H.J. Lu [Tue, 19 May 2020 21:42:12 +0000 (14:42 -0700)]
x86: Update GFNI check

Update GFNI check to support processors with SSE and AVX versions of GFNI.

Backport from master
PR target/95220
* config/i386/cpuinfo.c (get_available_features): Fix
FEATURE_GFNI check.

(cherry picked from commit 1e46a443f25d26816536c0c480211714b123a1d5)

3 years agoDaily bump.
GCC Administrator [Thu, 21 May 2020 00:17:29 +0000 (00:17 +0000)]
Daily bump.

3 years agoFortran : ProcPtr function results: 'ppr@' in error message PR39695
Mark Eggleston [Thu, 7 May 2020 07:02:02 +0000 (08:02 +0100)]
Fortran  : ProcPtr function results: 'ppr@' in error message PR39695

The value 'ppr@' is set in the name of result symbol, the actual
name of the symbol is in the procedure name symbol pointed
to by the result symbol's namespace (ns). When reporting errors for
symbols that have the proc_pointer attribute check whether the
result attribute is set and set the name accordingly.

Backport from master.

2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/fortran/

PR fortran/39695
* resolve.c (resolve_fl_procedure): Set name depending on
whether the result attribute is set.  For PROCEDURE/RESULT
conflict use the name in sym->ns->proc_name->name.
* symbol.c (gfc_add_type): Add check for function and result
attributes use sym->ns->proc_name->name if both are set.
Where the symbol cannot have a type use the name in
sym->ns->proc_name->name.

2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/39695
* gfortran.dg/pr39695_1.f90: New test.
* gfortran.dg/pr39695_2.f90: New test.
* gfortran.dg/pr39695_3.f90: New test.
* gfortran.dg/pr39695_4.f90: New test.

(cherry picked from commit eb069ae8819c3a84d7f78becc5501e21ee3a9554)

3 years agoDaily bump.
GCC Administrator [Wed, 20 May 2020 00:17:29 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Tue, 19 May 2020 00:17:33 +0000 (00:17 +0000)]
Daily bump.

3 years agoRequire powerpc_vsx_ok in gcc.target/powerpc/pr71763.c
Douglas Rupp [Mon, 18 May 2020 18:43:48 +0000 (11:43 -0700)]
Require powerpc_vsx_ok in gcc.target/powerpc/pr71763.c

We're getting an error when running this test on PowerPC VxWorks 7,
due to an unexpected warning:

    | Excess errors:
    | cc1: warning: '-mvsx' and '-mno-altivec' are incompatible

The warning comes from a combination of factors:
  - The test itself uses -mvsx explicitly via the following directive:
       // { dg-options "-O1 -mvsx" }
  - Our toolchain was configured so as to make -mno-altivec
    the default;
  - These two options are mutually exclusive.

This commit adds a powerpc_vsx_ok dg-require-effective-target directive
to that test, and thus making it UNSUPPORTED instead.

Tested on PowerPC VxWorks 7. Also tested on PowerPC ELF as well,
a platform where we do not make -mno-altivec the default, to verify
that the test continues to run as usual in that case.

gcc/testsuite/

        * gcc.target/powerpc/pr71763.c: Require powerpc_vsx_ok.

(cherry picked from commit c917584aa9ec32934acf0082ed383b04f49fd174)

3 years agoDaily bump.
GCC Administrator [Mon, 18 May 2020 00:17:15 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 17 May 2020 00:17:24 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 16 May 2020 00:17:19 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Fri, 15 May 2020 00:17:17 +0000 (00:17 +0000)]
Daily bump.

3 years agoaarch64: Fix .cfi_window_save with pac-ret [PR94515]
Szabolcs Nagy [Mon, 27 Apr 2020 08:07:15 +0000 (09:07 +0100)]
aarch64: Fix .cfi_window_save with pac-ret [PR94515]

On aarch64 -mbranch-protection=pac-ret reuses the dwarf
opcode for window_save to mean "toggle the return address
mangle state", but in the dwarf2cfi internal logic the
state was not updated when an opcode was emitted, the
currently present update logic is only valid for the
original sparc use of window_save so a separate bool is
used on aarch64 to track the state.

This bug can cause the unwinder not to authenticate return
addresses that were signed (or vice versa) which means a
runtime crash on a pauth enabled system.

Currently only aarch64 pac-ret uses REG_CFA_TOGGLE_RA_MANGLE.

This should be backported to gcc-9 and gcc-8 branches.

Changed branch-protection=pac-ret to sign-return-address=all etc
in the tests for the backport and adjusted the dwarf2cfi.c
changes because the sparc change was missing.

gcc/ChangeLog:

Backport from mainline.
2020-04-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/94515
* dwarf2cfi.c (struct GTY): Add ra_mangled.
(cfi_row_equal_p): Check ra_mangled.
(dwarf2out_frame_debug_cfa_window_save): Remove the argument,
this only handles the sparc logic now.
(dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
the aarch64 specific logic.
(dwarf2out_frame_debug): Update to use the new subroutines.
(change_cfi_row): Check ra_mangled.

gcc/testsuite/ChangeLog:

Backport from mainline.
2020-04-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/94515
* g++.target/aarch64/pr94515-1.C: New test.
* g++.target/aarch64/pr94515-2.C: New test.

3 years agoaarch64, libgcc: Fix unwinding from pac-ret to normal frames [PR94514]
Szabolcs Nagy [Fri, 3 Apr 2020 09:35:41 +0000 (09:35 +0000)]
aarch64, libgcc: Fix unwinding from pac-ret to normal frames [PR94514]

With -mbranch-protection=pac-ret the debug info toggles the
signedness state of the return address so the unwinder knows when
the return address needs pointer authentication.

The unwind context flags were not updated according to the dwarf
frame info.

This causes unwinding across frames that were built without pac-ret
to incorrectly authenticate the return address wich corrupts the
return address on a system where PAuth is enabled.

Note: This even affects systems where all code use pac-ret because
unwinding across a signal frame the return address is not signed.

Changed branch-protection=pac-ret to sign-return-address=all etc
in the tests for the backport.

gcc/testsuite/ChangeLog:

Backport from mainline.
2020-04-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/94514
* g++.target/aarch64/pr94514.C: Require lp64.
* gcc.target/aarch64/pr94514.c: Likewise.

Backport from mainline.
2020-04-21  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/94514
* g++.target/aarch64/pr94514.C: New test.
* gcc.target/aarch64/pr94514.c: New test.

libgcc/ChangeLog:

Backport from mainline.
2020-04-21  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/94514
* config/aarch64/aarch64-unwind.h (aarch64_frob_update_context):
Update context->flags accroding to the frame state.

3 years agoDaily bump.
GCC Administrator [Thu, 14 May 2020 00:17:20 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Wed, 13 May 2020 00:17:29 +0000 (00:17 +0000)]
Daily bump.

3 years ago rs6000: AIX long double builtins for 64 bit long double.
David Edelsohn [Tue, 12 May 2020 21:09:36 +0000 (17:09 -0400)]
rs6000: AIX long double builtins for 64 bit long double.

    When long doubles are 64 bit, the AIX C library overrides the definitions
    but GCC builtins point to 128 bit names.  This patch overrides the
    builtins for fmodl, frexpl, ldexpl and modfl to refer to the 64 bit symbols.

    Backport from mainline
    2020-05-04  Clement Chigot  <clement.chigot@atos.net>
                David Edelsohn  <dje.gcc@gmail.com>

            * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override expli
cit
            for fmodl, frexpl, ldexpl and modfl builtins.

3 years agoDaily bump.
GCC Administrator [Tue, 12 May 2020 00:17:16 +0000 (00:17 +0000)]
Daily bump.

3 years agoFortran : Spurious warning message with -Wsurprising PR59107
Mark Eggleston [Mon, 11 May 2020 11:38:14 +0000 (12:38 +0100)]
Fortran : Spurious warning message with -Wsurprising PR59107

This change is from a patch developed for gcc-5.  The code
has moved on since then requiring a change to interface.c

2020-05-11  Mark Eggleston  <markeggleston@gcc.gnu.org>

Backported from mainline
2020-05-11  Janus Weil  <janus@gcc.gnu.org>
    Dominique d'Humieres  <dominiq@lps.ens.fr>

gcc/fortran/

PR fortran/59107
* gfortran.h: Rename field resolved as resolve_symbol_called
and assign two 2 bits instead of 1.
* interface.c (gfc_find_typebound_dtio_proc): Use new field name.
* resolve.c (gfc_resolve_intrinsic): Replace check of the formal
field with resolve_symbol_called is at least 2, if it is not
set the field to 2.  (resolve_symbol): Use new field name and
check whether it is at least 1, if it is not set the field to 1.

Backported from mainline
2020-05-11  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/59107
* gfortran.dg/pr59107.f90: New test.

3 years agoDaily bump.
GCC Administrator [Mon, 11 May 2020 00:17:26 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 10 May 2020 00:17:19 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 9 May 2020 00:17:14 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Fri, 8 May 2020 00:17:20 +0000 (00:17 +0000)]
Daily bump.

3 years agoalpha: Implement the PR94780 fix for alpha.
Uros Bizjak [Thu, 7 May 2020 15:26:37 +0000 (17:26 +0200)]
alpha: Implement the PR94780 fix for alpha.

Essentially the same fix as for x86.

2020-05-07  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
fenv_var and new_fenv_var.

3 years agoDaily bump.
GCC Administrator [Thu, 7 May 2020 00:17:31 +0000 (00:17 +0000)]
Daily bump.

3 years agolibstdc++: Replace pre-release version number in docs
Jonathan Wakely [Wed, 6 May 2020 10:16:16 +0000 (11:16 +0100)]
libstdc++: Replace pre-release version number in docs

* doc/xml/manual/abi.xml (abi.versioning.history): Update 8.0.0 to
8.1.0 in list of versions.
* doc/html/*: Regenerate.

3 years agoDaily bump.
GCC Administrator [Wed, 6 May 2020 00:17:16 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Tue, 5 May 2020 00:17:24 +0000 (00:17 +0000)]
Daily bump.

3 years agolibstdc++: Fix broken link to SGI STL FAQ
Jonathan Wakely [Mon, 4 May 2020 21:54:25 +0000 (22:54 +0100)]
libstdc++: Fix broken link to SGI STL FAQ

The previous URL to an entry in the wayback machine now redirects to a
page saying "SGI.com Tech Archive Resources now retired" so use an older
entry from the archive.

* doc/xml/faq.xml: Use working link for SGI STL FAQ.
* doc/html/*: Regenerate.

3 years agoFix Ada bootstrap on Cygwin64
Eric Botcazou [Mon, 4 May 2020 21:32:39 +0000 (23:32 +0200)]
Fix Ada bootstrap on Cygwin64

This fixes a compilation error preventing bootstrap with Ada
on x86_64-pc-cygwin.

2020-05-04  Mikael Pettersson  <mikpelinux@gmail.com>

PR bootstrap/94918
* mingw32.h: Prevent windows.h from including emmintrin.h on Cygw64.

3 years agoc++: Bogus error with alignof [PR90736]
Marek Polacek [Mon, 4 May 2020 17:25:42 +0000 (13:25 -0400)]
c++: Bogus error with alignof [PR90736]

PR c++/90736 - bogus error with alignof.
* constexpr.c (adjust_temp_type): Use cv_unqualified type.

3 years agoAdd unsigned type iv_cand for iv_use with non mode-precision type
Bin Cheng [Mon, 4 May 2020 08:56:34 +0000 (16:56 +0800)]
Add unsigned type iv_cand for iv_use with non mode-precision type

Precisely,  for iv_use if it's not integer/pointer type, or non-mode
precision type, add candidate for the corresponding scev in unsigned
type with the same precision, rather than its original type.

Backport from master.
2020-04-09  Bin Cheng  <bin.cheng@linux.alibaba.com>
    PR tree-optimization/93674

gcc/
    * tree-ssa-loop-ivopts.c (langhooks.h): New include.
    (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
    or non-mode precision type, add candidate in unsigned type with the
    same precision.

gcc/testsuite/
    * g++.dg/pr93674.C: New test.

3 years agoS/390: Fix PR94666
Andreas Krebbel [Mon, 4 May 2020 08:43:02 +0000 (10:43 +0200)]
S/390: Fix PR94666

The vector popcount expanders use a hardcoded subreg.  This might lead
to double subregs being generated which then fail to match.  With this
patch simplify_gen_subreg is used instead to fold the subregs.

gcc/ChangeLog:

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

Backport from mainline
2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
("popcountv2di2_vx"): Use simplify_gen_subreg.

gcc/testsuite/ChangeLog:

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

Backport from mainline
2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

* g++.dg/pr94666.C: New test.

3 years agoPR94613: Fix vec_sel builtin for IBM Z
Andreas Krebbel [Mon, 4 May 2020 08:43:02 +0000 (10:43 +0200)]
PR94613: Fix vec_sel builtin for IBM Z

The vsel instruction is a bit-wise select instruction.  Using an
IF_THEN_ELSE to express it in RTL is wrong and leads to wrong code being
generated in the combine pass.

With the patch the pattern is written using bit operations.  However,
I've just noticed that the manual still demands a fixed point mode for
AND/IOR and friends although several targets emit bit ops on floating
point vectors (including i386, Power, and s390). So I assume this is a
safe thing to do?!

gcc/ChangeLog:

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

Backport from mainline
2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

PR target/94613
* config/s390/s390-builtin-types.def: Add 3 new function modes.
* config/s390/s390-builtins.def: Add mode dependent low-level
builtin and map the overloaded builtins to these.
* config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
("vsel<V_HW"): ... this and rewrite the pattern with bitops.

gcc/testsuite/ChangeLog:

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

Backport from mainline
2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

PR target/94613
* gcc.target/s390/zvector/pr94613.c: New test.
* gcc.target/s390/zvector/vec_sel-1.c: New test.

3 years agoDaily bump.
GCC Administrator [Mon, 4 May 2020 00:17:13 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 3 May 2020 00:17:21 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 2 May 2020 00:17:16 +0000 (00:17 +0000)]
Daily bump.

3 years agoRevert patch for PR fortran/93956.
Thomas Koenig [Fri, 1 May 2020 12:45:56 +0000 (14:45 +0200)]
Revert patch for PR fortran/93956.

2020-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/93956
    PR fortran/94788
    * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
    * interface.c: Likewise.

3 years agoDaily bump.
GCC Administrator [Fri, 1 May 2020 00:17:18 +0000 (00:17 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Thu, 30 Apr 2020 00:16:48 +0000 (00:16 +0000)]
Daily bump.

3 years agoaarch64: Force TImode values into even registers
Andre Vieira [Wed, 29 Apr 2020 14:42:27 +0000 (15:42 +0100)]
aarch64: Force TImode values into even registers

The LSE CASP instruction requires values to be placed in even
register pairs.  A solution involving two additional register
classes was rejected in favor of the much simpler solution of
simply requiring all TImode values to be aligned.

gcc/ChangeLog:
2020-04-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline.
2018-10-31  Richard Henderson  <richard.henderson@linaro.org>

* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force
16-byte modes held in GP registers to use an even regno.

3 years agoDaily bump.
GCC Administrator [Wed, 29 Apr 2020 00:16:54 +0000 (00:16 +0000)]
Daily bump.

3 years agoaarch64: Fix for PR target/94814
Andre Vieira [Tue, 28 Apr 2020 12:25:43 +0000 (13:25 +0100)]
aarch64: Fix for PR target/94814

Backport of PR target/94518: Fix memmodel index in aarch64_store_exclusive_pair

2020-04-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>

PR target/94814
Backport from gcc-9.
2020-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/94518
2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>

* config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
memmodel index.

3 years agoDaily bump.
GCC Administrator [Tue, 28 Apr 2020 00:16:55 +0000 (00:16 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Mon, 27 Apr 2020 00:16:54 +0000 (00:16 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sun, 26 Apr 2020 00:16:55 +0000 (00:16 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Sat, 25 Apr 2020 00:16:51 +0000 (00:16 +0000)]
Daily bump.

3 years agoFix PR 93956, wrong pointer when returned via function.
Thomas König [Fri, 24 Apr 2020 07:26:48 +0000 (09:26 +0200)]
Fix PR 93956, wrong pointer when returned via function.

Backport from trunk.

This one took a bit of detective work.  When array pointers point
to components of derived types, we currently set the span field
and then create an array temporary when we pass the array
pointer to a procedure as a non-pointer or non-target argument.
(This is inefficient, but that's for another release).

Now, the compiler detected this case when there was a direct assignment
like p => a%b, but not when p was returned either as a function result
or via an argument.  This patch fixes that.

2020-04-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/93956
* expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
when a function returns a pointer.
* interface.c (gfc_set_subref_array_pointer_arg): New function.
(gfc_procedure_use): Call it.

2020-04-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/93956
* gfortran.dg/pointer_assign_13.f90: New test.

3 years agoDaily bump.
GCC Administrator [Fri, 24 Apr 2020 00:16:54 +0000 (00:16 +0000)]
Daily bump.

3 years agoDaily bump.
GCC Administrator [Thu, 23 Apr 2020 00:16:55 +0000 (00:16 +0000)]
Daily bump.

3 years agore PR target/90724 (ICE with __sync_bool_compare_and_swap with -march=armv8.2-a+sve)
Andre Vieira [Thu, 16 Apr 2020 09:16:19 +0000 (10:16 +0100)]
re PR target/90724 (ICE with __sync_bool_compare_and_swap with -march=armv8.2-a+sve)

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR target/90724
* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
in reg if it fails aarch64_plus_operand predicate.

3 years agoaarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
Andre Vieira [Thu, 16 Apr 2020 09:16:18 +0000 (10:16 +0100)]
aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]

The following testcase ICEs, because aarch64_gen_compare_reg_maybe_ze emits
invalid RTL.
For y_mode [QH]Imode it expects y to be of that mode (or CONST_INT that fits
into that mode) and x being SImode; for non-CONST_INT y it zero extends y
into SImode and compares that against x, for CONST_INT y it zero extends y
into SImode.  The problem is that when the zero extended constant isn't
usable directly, it forces it into a REG, but with y_mode mode, and then
compares against y.  That is wrong, because it should force it into a SImode
REG and compare that way.

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2020-04-02  Jakub Jelinek  <jakub@redhat.com>

PR target/94435
* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.

* gcc.target/aarch64/pr94435.c: New test.

3 years agoaarch64: Fix bootstrap with old binutils [PR93053]
Andre Vieira [Thu, 16 Apr 2020 09:16:18 +0000 (10:16 +0100)]
aarch64: Fix bootstrap with old binutils [PR93053]

As reported in the PR, GCC 10 (and also 9.3.1 but not 9.3.0) fails to build
when using older binutils which lack LSE support, because those instructions
are used in libgcc.
Thanks to Kyrylo's hint, the following patches (hopefully) allow it to build
even with older binutils by using .inst directive if LSE support isn't
available in the assembler.

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2020-04-15  Jakub Jelinek  <jakub@redhat.com>

PR target/93053
* configure.ac (LIBGCC_CHECK_AS_LSE): Add HAVE_AS_LSE checking.
* config/aarch64/lse.S: Include auto-target.h, if HAVE_AS_LSE
is not defined, use just .arch armv8-a.
(B, M, N, OPN): Define.
(COMMENT): New .macro.
(CAS, CASP, SWP, LDOP): Use .inst directive if HAVE_AS_LSE is not
defined.  Otherwise, move the operands right after the glue? and
comment out operands where the macros are used.
* configure: Regenerated.
* config.in: Regenerated.

3 years agoaarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
Andre Vieira [Thu, 16 Apr 2020 09:16:17 +0000 (10:16 +0100)]
aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2020-03-31  Jakub Jelinek  <jakub@redhat.com>

PR target/94368
* config/aarch64/constraints.md (Uph): New constraint.
* config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
(aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
constraint.

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

3 years agoaarch64: Configure for sys/auxv.h in libgcc for lse-init.c
Andre Vieira [Thu, 16 Apr 2020 09:16:17 +0000 (10:16 +0100)]
aarch64: Configure for sys/auxv.h in libgcc for lse-init.c

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2019-09-25  Richard Henderson  <richard.henderson@linaro.org>

PR target/91833
* config/aarch64/lse-init.c: Include auto-target.h.  Disable
initialization if !HAVE_SYS_AUXV_H.
* configure.ac (AC_CHECK_HEADERS): Add sys/auxv.h.
* config.in, configure: Rebuild.

3 years agoaarch64: Fix store-exclusive in load-operate LSE helpers
Andre Vieira [Thu, 16 Apr 2020 09:16:16 +0000 (10:16 +0100)]
aarch64: Fix store-exclusive in load-operate LSE helpers

2020-04-16  Andre Vieira  <andre.simoesdiasvieira@arm.com>

Backport from mainline
2019-09-25  Richard Henderson  <richard.henderson@linaro.org>

PR target/91834
* config/aarch64/lse.S (LDNM): Ensure STXR output does not
overlap the inputs.

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