]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoaarch64: Introduce SLS mitigation for RET and BR instructions
Matthew Malcomson [Thu, 9 Jul 2020 08:11:59 +0000 (09:11 +0100)] 
aarch64: Introduce SLS mitigation for RET and BR instructions

Instructions following RET or BR are not necessarily executed.  In order
to avoid speculation past RET and BR we can simply append a speculation
barrier.

Since these speculation barriers will not be architecturally executed,
they are not expected to add a high performance penalty.

The speculation barrier is to be SB when targeting architectures which
have this enabled, and DSB SY + ISB otherwise.

We add tests for each of the cases where such an instruction was seen.

This is implemented by modifying each machine description pattern that
emits either a RET or a BR instruction.  We choose not to use something
like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the
`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn`
patterns and we find it preferable to implement the functionality in the
same way for every pattern.

There is one particular case which is slightly tricky.  The
implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs
to be mitigated against.  The trampoline template is used *once* per
compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the
builtin macro __LIBGCC_TRAMPOLINE_SIZE__.
In the future we may implement function specific attributes to turn on
and off hardening on a per-function basis.
The fixed nature of the trampoline described above implies it will be
safer to ensure this speculation barrier is always used.

Testing:
  Bootstrap and regtest done on aarch64-none-linux
  Used a temporary hack(1) to use these options on every test in the
  testsuite and a script to check that the output never emitted an
  unmitigated RET or BR.

1) Temporary hack was a change to the testsuite to always use
`-save-temps` and run a script on the assembly output of those
compilations which produced one to ensure every RET or BR is immediately
followed by a speculation barrier.

(cherry picked from be178ecd5ac1fe1510d960ff95c66d0ff831afe1)

gcc/ChangeLog:

* config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
* config/aarch64/aarch64.c (aarch64_output_casesi): Emit
speculation barrier after BR instruction if needs be.
(aarch64_trampoline_init): Handle ptr_mode value & adjust size
of code copied.
(aarch64_sls_barrier): New.
(aarch64_asm_trampoline_template): Add needed barriers.
* config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
(TARGET_SB): New.
(TRAMPOLINE_SIZE): Account for barrier.
* config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
Emit barrier if needs be, also account for possible barrier using
"sls_length" attribute.
(sls_length): New attribute.
(length): Determine default using any non-default sls_length
value.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test.
* gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c:
New test.
* gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file.
* lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok):
New proc.

5 years agoaarch64: New Straight Line Speculation (SLS) mitigation flags
Matthew Malcomson [Thu, 9 Jul 2020 08:11:58 +0000 (09:11 +0100)] 
aarch64: New Straight Line Speculation (SLS) mitigation flags

Here we introduce the flags that will be used for straight line speculation.

The new flag introduced is `-mharden-sls=`.
This flag can take arguments of `none`, `all`, or a comma seperated list
of one or more of `retbr` or `blr`.
`none` indicates no special mitigation of the straight line speculation
vulnerability.
`all` requests all mitigations currently implemented.
`retbr` requests that the RET and BR instructions have a speculation
barrier inserted after them.
`blr` requests that BLR instructions are replaced by a BL to a function
stub using a BR with a speculation barrier after it.

Setting this on a per-function basis using attributes or the like is not
enabled, but may be in the future.

(cherry picked from commit a9ba2a9b77bec7eacaf066801f22d1c366a2bc86)

gcc/ChangeLog:

2020-06-02  Matthew Malcomson  <matthew.malcomson@arm.com>

* config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
New.
(aarch64_harden_sls_blr_p): New.
* config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
New.
(aarch64_harden_sls_retbr_p): New.
(aarch64_harden_sls_blr_p): New.
(aarch64_validate_sls_mitigation): New.
(aarch64_override_options): Parse options for SLS mitigation.
* config/aarch64/aarch64.opt (-mharden-sls): New option.
* doc/invoke.texi: Document new option.

5 years agoDaily bump.
GCC Administrator [Tue, 4 Aug 2020 00:18:11 +0000 (00:18 +0000)] 
Daily bump.

5 years agocpp: Do not use @dots for ... tokens in code examples
Jonathan Wakely [Mon, 3 Aug 2020 20:16:50 +0000 (21:16 +0100)] 
cpp: Do not use @dots for ... tokens in code examples

This prevents a ... token in code examples from being turned into a
single HORIZONTAL ELLIPSIS glyph (e.g. via the HTML &hellip; entity).

gcc/ChangeLog:

* doc/cpp.texi (Variadic Macros): Use the exact ... token in
code examples.

(cherry picked from commit 2ac7fe2769890fe4c146da9cfa6d0eabb185d7db)

5 years agolibsanitizer: Fix GetPcSpBp determination of SP on 32-bit Solaris/x86
Rainer Orth [Mon, 3 Aug 2020 07:49:43 +0000 (09:49 +0200)] 
libsanitizer: Fix GetPcSpBp determination of SP on 32-bit Solaris/x86

The latest Solaris 11.4/x86 update uncovered a libsanitizer bug that
caused one test to FAIL for 32-bit:

+FAIL: c-c++-common/asan/null-deref-1.c   -O0  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O1  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O2  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O2 -flto  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto -flto-partition=none
output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O3 -g  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -Os  output pattern test

I've identified the problem and the fix has just landed in upstream
llvm-project:

https://reviews.llvm.org/D83664

Tested on i386-pc-solaris2.11 and x86_64-pc-linux.gnu.

libsanitizer:
* sanitizer_common/sanitizer_linux.cc: Cherry-pick llvm-project
revision f0e9b76c3500496f8f3ea7abe6f4bf801e3b41e7.

5 years agoDaily bump.
GCC Administrator [Mon, 3 Aug 2020 00:18:07 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 2 Aug 2020 00:18:13 +0000 (00:18 +0000)] 
Daily bump.

5 years agod: Fix ICE in expand_intrinsic_vaarg
Iain Buclaw [Thu, 16 Jul 2020 16:34:18 +0000 (18:34 +0200)] 
d: Fix ICE in expand_intrinsic_vaarg

Both intrinsics did not handle the case where the va_list object comes
from a ref parameter.

gcc/d/ChangeLog:

PR d/96140
* intrinsics.cc (expand_intrinsic_vaarg): Handle ref parameters as
arguments to va_arg().
(expand_intrinsic_vastart): Handle ref parameters as arguments to
va_start().

gcc/testsuite/ChangeLog:

PR d/96140
* gdc.dg/pr96140.d: New test.

(cherry picked from commit dfc420f8d4492dbf5f45df4fecf93cb9645c0d7b)

5 years agoDaily bump.
GCC Administrator [Sat, 1 Aug 2020 00:18:15 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Fri, 31 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Thu, 30 Jul 2020 00:18:10 +0000 (00:18 +0000)] 
Daily bump.

5 years agogcc-changelog: fix combining of arguments.
Martin Liska [Wed, 29 Jul 2020 12:13:42 +0000 (14:13 +0200)] 
gcc-changelog: fix combining of arguments.

contrib/ChangeLog:

2020-07-29  Martin Liska  <mliska@suse.cz>

* git-backport.py: fix how are ChangeLog paths combined.

5 years agoDaily bump.
GCC Administrator [Wed, 29 Jul 2020 00:18:08 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Tue, 28 Jul 2020 00:18:19 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFortran : ICE in gfc_check_pointer_assign PR95612
Mark Eggleston [Thu, 11 Jun 2020 10:05:40 +0000 (11:05 +0100)] 
Fortran  : ICE in gfc_check_pointer_assign PR95612

Output an error if the right hand value is a zero sized array or
does not have a symbol tree otherwise continue checking.

2020-07-27  Steven G. Kargl  <kargl@gcc.gnu.org>

gcc/fortran/

PR fortran/95612
* expr.c (gfc_check_pointer_assigb): Output an error if
rvalue is a zero sized array or output an error if rvalue
doesn't have a symbol tree.

2020-07-27  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/95612
* gfortran.dg/pr95612.f90: New test.

(cherry picked from commit 81072bab8d1e48ee83d9711dcb559ea1e019b351)

5 years agoDaily bump.
GCC Administrator [Mon, 27 Jul 2020 00:18:06 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFortran : ICE in gfc_check_reshape PR95585
Mark Eggleston [Thu, 11 Jun 2020 05:42:36 +0000 (06:42 +0100)] 
Fortran  : ICE in gfc_check_reshape PR95585

Issue an error where an array is used before its definition
instead of an ICE.

2020-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>

gcc/fortran/

PR fortran/95585
* check.c (gfc_check_reshape): Add check for a value when
the symbol has an attribute flavor FL_PARAMETER.

2020-07-26  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/95585
* gfortran.dg/pr95585.f90: New test.

(cherry picked from commit d9aed5f1ccffc019ddf980e349caa3d092755cb4)

5 years agoDaily bump.
GCC Administrator [Sun, 26 Jul 2020 00:18:05 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR 93592 - Invalid UP/DOWN rounding with EN descriptor.
Dominique d'Humieres [Fri, 24 Jul 2020 18:07:12 +0000 (20:07 +0200)] 
PR 93592 - Invalid UP/DOWN rounding with EN descriptor.

The fix is obvious (I have added a comment). The tests are probably
an overkill, but it does not hurt.

libgfortran/ChangeLog:

PR fortran/93592
* io/write_float.def (build_float_string): Do not reset
  nbefore for FMT_F and FMT_EN.

gcc/testsuite/ChangeLog:

PR fortran/93592
* gfortran.dg/fmt_en.f90: Adjust test.
* gfortran.dg/fmt_en_rd.f90: New test.
* gfortran.dg/fmt_en_rn.f90: New test.
* gfortran.dg/fmt_en_ru.f90: New test.
* gfortran.dg/fmt_en_rz.f90: New test.

(cherry picked from commit 05e0971bcf94a481cbfa2731484f024a67dbd4a5)

5 years agoDaily bump.
GCC Administrator [Sat, 25 Jul 2020 00:18:13 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Fri, 24 Jul 2020 00:18:09 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/89574 - ICE in conv_function_val, at fortran/trans-expr.c:3792
Harald Anlauf [Tue, 21 Jul 2020 19:37:30 +0000 (21:37 +0200)] 
PR fortran/89574 - ICE in conv_function_val, at fortran/trans-expr.c:3792

When checking for an external procedure from the same file, do not
consider symbols from different modules.

gcc/fortran/
PR fortran/89574
* trans-decl.c (gfc_get_extern_function_decl): Check whether a
symbol belongs to a different module.

(cherry picked from commit 28f2a080cc27531a8c78aec9f44aeff4961c2a4c)

5 years agoFix handling of implicit_pure by checking if non-pure procedures are called.
Thomas Koenig [Thu, 23 Jul 2020 18:26:10 +0000 (20:26 +0200)] 
Fix handling of implicit_pure by checking if non-pure procedures are called.

Procedures are marked as implicit_pure if they fulfill the criteria of
pure procedures.  In this case, a procedure was not marked as not being
implicit_pure which called another procedure, which had not yet been
marked as not being implicit_impure.

Fixed by iterating over all procedures, setting callers of procedures
which are non-pure and non-implicit_pure as non-implicit_pure and
doing this until no more procedure has been changed.

Backport from trunk r11-2215-g3055d879edb1bc2a3923f92a5e681c8f6774fbc3 .

gcc/fortran/ChangeLog:

2020-07-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/96018
* frontend-passes.c (gfc_check_externals): Adjust formatting.
(implicit_pure_call): New function.
(implicit_pure_expr): New function.
(gfc_fix_implicit_pure): New function.
* gfortran.h (gfc_fix_implicit_pure): New prototype.
* parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.

5 years agoAlways use name from c_interop_kinds_table for -fc-prototypes.
Thomas Koenig [Sun, 19 Jul 2020 15:27:45 +0000 (17:27 +0200)] 
Always use name from c_interop_kinds_table for -fc-prototypes.

When a user specified a KIND that was a parameter taking the value
of an iso_c_binding KIND, the code used the name of that parameter
to look up the type name.  Corrected by always looking it up in
the table of C interop kinds (which was previously done for
non-C-interop types, anyway).

gcc/fortran/ChangeLog:

PR fortran/96220
* dump-parse-tree.c (get_c_type_name): Always use the entries from
c_interop_kinds_table to find the correct C type.

(cherry picked from commit 2e1b25350aa96b3f5678a056d0b55bb323c452d9)

5 years agors6000: Correct logic to disable NO_SUM_IN_TOC and NO_FP_IN_TOC [PR94065]
David Edelsohn [Fri, 6 Mar 2020 01:41:08 +0000 (20:41 -0500)] 
rs6000: Correct logic to disable NO_SUM_IN_TOC and NO_FP_IN_TOC [PR94065]

aix61.h, aix71.h and aix72.h intends to prevent SUM_IN_TOC and FP_IN_TOC
when cmodel=large.  This patch defines the variables associated with the
target options to 1 to _enable_ NO_SUM_IN_TOC and enable NO_FP_IN_TOC.

Bootstrapped on powerpc-ibm-aix7.2.0.0

2020-03-06  David Edelsohn  <dje.gcc@gmail.com>
PR target/94065
* config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
cmodel=large.
(TARGET_NO_FP_IN_TOC): Same.
* config/rs6000/aix71.h: Same.
* config/rs6000/aix72.h: Same.

(cherry picked from commit 3dcf51ad7b0a9cacba1a056755c16cc1cf7984ee)

5 years agogcc-changelog: fix when somebody reverts a backport
Martin Liska [Thu, 23 Jul 2020 08:39:00 +0000 (10:39 +0200)] 
gcc-changelog: fix when somebody reverts a backport

contrib/ChangeLog:

* gcc-changelog/git_commit.py: When reverting a backport,
we should print only Revert header.

(cherry picked from commit 02cada26e4783b4bfeaf6512a6c22df24d7a25fc)

5 years agogcc-changelog: Fix typo in output
Jonathan Wakely [Fri, 17 Jul 2020 08:53:19 +0000 (09:53 +0100)] 
gcc-changelog: Fix typo in output

contrib/ChangeLog:

* gcc-changelog/git_update_version.py: Fix typo.

(cherry picked from commit 0c1d1c01039a96c191a7aded40e5df40b14d387a)

5 years agoDaily bump.
GCC Administrator [Thu, 23 Jul 2020 00:18:13 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Wed, 22 Jul 2020 00:18:13 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Tue, 21 Jul 2020 00:18:17 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Mon, 20 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 19 Jul 2020 00:18:08 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 18 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFix missing dependencies for selftests which occasionally causes failed builds.
Romain Naour [Wed, 3 Jun 2020 18:30:57 +0000 (12:30 -0600)] 
Fix missing dependencies for selftests which occasionally causes failed builds.

gcc/

* Makefile.in (SELFTEST_DEPS): Move before including language makefile
fragments.

(cherry picked from commit b19d8aac15649f31a7588b2634411a1922906ea8)
(cherry picked from commit e86ae54172bb982e3c9d5aa62d20be5b72fe0f24)

5 years agoDaily bump.
GCC Administrator [Fri, 17 Jul 2020 00:18:14 +0000 (00:18 +0000)] 
Daily bump.

5 years agoaarch64: Add missing ACLE support for PAC-RET
Szabolcs Nagy [Thu, 2 Jul 2020 15:11:04 +0000 (16:11 +0100)] 
aarch64: Add missing ACLE support for PAC-RET

Define the __ARM_FEATURE_PAC_DEFAULT feature test
macro when PAC-RET branch protection is enabled.

2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

gcc/ChangeLog:

* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
__ARM_FEATURE_PAC_DEFAULT support.

(cherry picked from commit a1faa8e2470b33e92f6274804bf7941fbb6e2d38)

5 years agodoc: Clarify __builtin_return_address [PR94891]
Szabolcs Nagy [Thu, 28 May 2020 09:28:30 +0000 (10:28 +0100)] 
doc: Clarify __builtin_return_address [PR94891]

The expected semantics and valid usage of __builtin_return_address is
not clear since it exposes implementation internals that are normally
not meaningful to portable c code.

This documentation change tries to clarify the semantics in case the
return address is stored in a mangled form. This affects AArch64 when
pointer authentication is used for the return address signing (i.e.
-mbranch-protection=pac-ret).

2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

gcc/ChangeLog:

PR target/94891
* doc/extend.texi: Update the text for  __builtin_return_address.

(cherry picked from commit 6a391e06f953c3390b14020d8cacb6d55f81b2b9)

5 years agolibgcc: fix the handling of return address mangling [PR94891]
Szabolcs Nagy [Thu, 4 Jun 2020 08:33:35 +0000 (09:33 +0100)] 
libgcc: fix the handling of return address mangling [PR94891]

Mangling, currently only used on AArch64 for return address signing,
is an internal representation that should not be exposed via

  __builtin_return_address return value,
  __builtin_eh_return handler argument,
  _Unwind_DebugHook handler argument.

Note that a mangled address might not even fit into a void *, e.g.
with AArch64 ilp32 ABI the return address is stored as 64bit, so
the mangled return address cannot be accessed via _Unwind_GetPtr.

This patch changes the unwinder hooks as follows:

MD_POST_EXTRACT_ROOT_ADDR is removed: root address comes from
__builtin_return_address which is not mangled.

MD_POST_EXTRACT_FRAME_ADDR is renamed to MD_DEMANGLE_RETURN_ADDR,
it now operates on _Unwind_Word instead of void *, so the hook
should work when return address signing is enabled on AArch64 ilp32.
(But for that __builtin_aarch64_autia1716 should be fixed to operate
on 64bit input instead of a void *.)

MD_POST_FROB_EH_HANDLER_ADDR is removed: it is the responsibility of
__builtin_eh_return to do the mangling if necessary.

2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

libgcc/ChangeLog:

PR target/94891
* config/aarch64/aarch64-unwind.h (MD_POST_EXTRACT_ROOT_ADDR): Remove.
(MD_POST_FROB_EH_HANDLER_ADDR): Remove.
(MD_POST_EXTRACT_FRAME_ADDR): Rename to ...
(MD_DEMANGLE_RETURN_ADDR): This.
(aarch64_post_extract_frame_addr): Rename to ...
(aarch64_demangle_return_addr): This.
(aarch64_post_frob_eh_handler_addr): Remove.
* unwind-dw2.c (uw_update_context): Demangle return address.
(uw_frob_return_addr): Remove.

(cherry picked from commit b097c7a27fb0796b2653a1d003cbf6b7a69d8961)

5 years agoaarch64: fix __builtin_eh_return with pac-ret [PR94891]
Szabolcs Nagy [Thu, 4 Jun 2020 12:42:16 +0000 (13:42 +0100)] 
aarch64: fix __builtin_eh_return with pac-ret [PR94891]

Currently __builtin_eh_return takes a signed return address, which can
cause ABI and API issues: 1) pointer representation problems if the
address is passed around before eh return, 2) the source code needs
pac-ret specific changes and needs to know if pac-ret is used in the
current frame, 3) signed address may not be representible as void *
(with ilp32 abi).

Using address signing to protect eh return is ineffective because the
instruction sequence in the unwinder that starts from the address
signing and ends with a ret can be used as a return to anywhere gadget.
Using indirect branch istead of ret with bti j landing pads at the
target can reduce the potential of such gadget, which also implies
that __builtin_eh_return should not take a signed address.

This is a big hammer fix to the ABI and API issues: it turns pac-ret
off for the caller completely (not just on the eh return path).  To
harden the caller against ROP attacks, it should use indirect branch
instead of ret, this is not attempted so the patch remains small and
backportable.

2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

gcc/ChangeLog:

PR target/94891
* config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
Disable return address signing if __builtin_eh_return is used.

gcc/testsuite/ChangeLog:

PR target/94891
* gcc.target/aarch64/return_address_sign_1.c: Update test.

(cherry picked from commit 2bc95be3bb8c8138e2e87c1c11c84bfede989d61)

5 years agoaarch64: fix return address access with pac [PR94891][PR94791]
Szabolcs Nagy [Tue, 2 Jun 2020 15:44:41 +0000 (16:44 +0100)] 
aarch64: fix return address access with pac [PR94891][PR94791]

This is a big hammer fix for __builtin_return_address (PR target/94891)
returning signed addresses (sometimes, depending on wether lr happens
to be signed or not at the time of call which depends on optimizations),
and similarly -pg may pass signed return address to _mcount
(PR target/94791).

At the time of return address expansion we don't know if it's signed or
not so it is done unconditionally.

2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

gcc/ChangeLog:

PR target/94891
PR target/94791
* config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
* config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
(aarch64_return_addr): Use aarch64_return_addr_rtx.
* config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.

(cherry picked from commit 463a54e5d4956143f81c1f23b91cbd2d93855741)

5 years agoaarch64: Fix BTI support in libitm
Szabolcs Nagy [Thu, 2 Jul 2020 16:12:05 +0000 (17:12 +0100)] 
aarch64: Fix BTI support in libitm

sjlj.S did not have the GNU property note markup and the BTI c
instructions that are necessary when it is built with branch
protection.

The notes are only added when libitm is built with branch
protection, because old linkers mishandle the note (merge
them incorrectly or emit warnings), the BTI instructions
are added unconditionally.

2020-07-09  Szabolcs Nagy  <szabolcs.nagy@arm.com>

libitm/ChangeLog:

* config/aarch64/sjlj.S: Add BTI marking and related definitions,
and add BTI c to function entries.

(cherry picked from commit 319078dad62eba942d33c8975bdcbb09d1c68ba6)

5 years agoaarch64: Fix BTI support in libgcc [PR96001]
Szabolcs Nagy [Thu, 2 Jul 2020 16:11:56 +0000 (17:11 +0100)] 
aarch64: Fix BTI support in libgcc [PR96001]

lse.S did not have the GNU property note markup and the BTI c
instructions that are necessary when it is built with branch
protection.

The notes are only added when libgcc is built with branch
protection, because old linkers mishandle the note (merge
them incorrectly or emit warnings), the BTI instructions
are added unconditionally.

Note: BTI c is only necessary at function entry if the function
may be called indirectly, currently lse functions are not called
indirectly, but BTI is added for ABI reasons e.g. to allow
linkers later to emit stub code with indirect jump.

2020-07-09  Szabolcs Nagy  <szabolcs.nagy@arm.com>

libgcc/ChangeLog:

PR target/96001
* config/aarch64/lse.S: Add BTI marking and related definitions,
and add BTI c to function entries.

(cherry picked from commit f0f62fa0320762119446893c67cb52934bc5a05e)

5 years agoaarch64: Fix noexecstack note in libgcc
Szabolcs Nagy [Fri, 3 Jul 2020 13:11:49 +0000 (14:11 +0100)] 
aarch64: Fix noexecstack note in libgcc

lse.S did not have GNU stack note, this may cause missing
PT_GNU_STACK in binaries on Linux and FreeBSD.

2020-07-09  Szabolcs Nagy  <szabolcs.nagy@arm.com>

libgcc/ChangeLog:

* config/aarch64/lse.S: Add stack note.

(cherry picked from commit e73ec755489afc9fcc75dfac6f06ac73e243e72a)

5 years agoaarch64: Fix noexecstack note in libitm
Szabolcs Nagy [Fri, 3 Jul 2020 13:09:25 +0000 (14:09 +0100)] 
aarch64: Fix noexecstack note in libitm

sjlj.S only had the note on Linux, but it is supposed
to have it on FreeBSD too.

2020-07-09  Szabolcs Nagy  <szabolcs.nagy@arm.com>

libitm/ChangeLog:

* config/aarch64/sjlj.S: Add stack note if __FreeBSD__ is defined.

(cherry picked from commit 463ba375f7b857995068403a4c63690d03162c00)

5 years agoS/390: Emit vector alignment hints for z13 if AS accepts them
Stefan Schulze Frielinghaus [Tue, 26 May 2020 16:21:52 +0000 (18:21 +0200)] 
S/390: Emit vector alignment hints for z13 if AS accepts them

Squashed with commit 87cb9423add08743d8bb3368f0af61ddc9572837

gcc/ChangeLog:

* config.in: Regenerate.
* config/s390/s390.c (print_operand): Emit vector alignment hints
for target z13, if AS accepts them.  For other targets the logic
stays the same.
* config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
macro.
* configure: Regenerate.
* configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/align-1.c: Change target architecture
to z13.
* gcc.target/s390/vector/align-2.c: Change target architecture
to z13.

(cherry picked from commit 929fd91ba975eebf9e57f7f092041271dcaf0c34)

5 years agoDaily bump.
GCC Administrator [Thu, 16 Jul 2020 00:18:31 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Wed, 15 Jul 2020 00:18:26 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Tue, 14 Jul 2020 00:18:23 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Mon, 13 Jul 2020 00:18:01 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 12 Jul 2020 00:18:01 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 11 Jul 2020 00:18:18 +0000 (00:18 +0000)] 
Daily bump.

5 years ago[PATCH, rs6000]Add support to enable vmsumudm behind vec_msum builtin.
Will Schmidt [Fri, 10 Jul 2020 16:04:37 +0000 (11:04 -0500)] 
[PATCH, rs6000]Add support to enable vmsumudm behind vec_msum builtin.

2020-07-08  Will Schmidt  <will_schmidt@vnet.ibm.com>

gcc/ChangeLog:

* config/rs6000/altivec.h (vec_vmsumudm): New define.
* config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
  (altivec_vmsumudm): New define_insn.
* config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
  entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
  entries for ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
* doc/extend.texi: Add document for vmsumudm behind vmsum.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/builtins-msum-runnable.c: New test.
* gcc.target/powerpc/vsx-builtin-msum.c: New test.

Modified from ...
(cherry picked from commit c1a57681a64150d2fc336ba8e055c5f82e3737e8)

5 years agoSchedule reduction partition in the last.
Bin Cheng [Thu, 9 Jul 2020 10:10:03 +0000 (18:10 +0800)] 
Schedule reduction partition in the last.

If reduction partition's SCC is broken by runtime alias checks, force
a negative post order to it so that it will be scheduled in the last.

2020-07-09  Bin Cheng  <bin.cheng@linux.alibaba.com>

gcc/
PR tree-optimization/95804
* tree-loop-distribution.c (break_alias_scc_partitions): Force
negative post order to reduction partition.

gcc/testsuite/
PR tree-optimization/95804
* gcc.dg/tree-ssa/pr95804.c: New test.

(cherry picked from commit dd21b03900085c4d60bf03207ad28bcbfbc86a4b)

5 years agoRecord and restore postorder information in breaking alias sccs.
Bin Cheng [Sat, 20 Jun 2020 07:42:12 +0000 (15:42 +0800)] 
Record and restore postorder information in breaking alias sccs.

gcc/
PR tree-optimization/95638
* tree-loop-distribution.c (pg_edge_callback_data): New field.
(loop_distribution::break_alias_scc_partitions): Record and restore
postorder information.  Fix memory leak.

gcc/testsuite/
PR tree-optimization/95638
* g++.dg/tree-ssa/pr95638.C: New test.

(cherry picked from commit 2c0069fafb53ccb7a45a6815025dfcbd2882a36e)

5 years agoDaily bump.
GCC Administrator [Fri, 10 Jul 2020 00:18:18 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Thu, 9 Jul 2020 00:18:36 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/95709 - ICE in gfc_resolve_code, at fortran/resolve.c:11807
Harald Anlauf [Mon, 6 Jul 2020 16:52:39 +0000 (18:52 +0200)] 
PR fortran/95709 - ICE in gfc_resolve_code, at fortran/resolve.c:11807

The legacy "assigned GOTO" accepts only scalar integer variables.
Check for proper arguments.

gcc/fortran/
PR fortran/95709
* resolve.c (gfc_resolve_code): Check for valid arguments to
assigned GOTO.

(cherry picked from commit 824084e72e388f81015e7f67922c75f50741355a)

5 years agoaccept <case> and [cond] in ChangeLog
Alexandre Oliva [Tue, 7 Jul 2020 07:02:01 +0000 (09:02 +0200)] 
accept <case> and [cond] in ChangeLog

Only '(' and ':' currently terminate file lists in ChangeLog entries
in the ChangeLog parser.  This rules out such legitimate entries as:

* filename <CASE>:
* filename [COND]:

This patch extends the ChangeLog parser to recognize these forms.

for  contrib/ChangeLog

* gcc-changelog/git_commit.py: Support CASE and COND.
* gcc-changelog/test_patches.txt: Add test.
* gcc-changelog/test_email.py: Add test.

Co-Authored-By: Martin Liska <mliska@suse.cz>
(cherry picked from commit a759bfc7cf238b9fc5bf97884297fc69d8cdf2b5)

5 years agoDaily bump.
GCC Administrator [Wed, 8 Jul 2020 00:18:30 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/93337 - ICE in gfc_dt_upper_string, at fortran/module.c:441
Harald Anlauf [Thu, 2 Jul 2020 18:41:51 +0000 (20:41 +0200)] 
PR fortran/93337 - ICE in gfc_dt_upper_string, at fortran/module.c:441

When declaring a polymorphic variable that is not a dummy, allocatable or
pointer, an ICE occurred due to a NULL pointer dereference.  Check for
that situation and punt.

gcc/fortran/
PR fortran/93337
* class.c (gfc_find_derived_vtab): Punt if name is not set.

(cherry picked from commit d9fb6f2b4f1321b059807ff6073156f07d9d376b)

5 years agoDaily bump.
GCC Administrator [Tue, 7 Jul 2020 00:18:24 +0000 (00:18 +0000)] 
Daily bump.

5 years agoBackport to gcc-9
Will Schmidt [Wed, 24 Jun 2020 18:59:34 +0000 (13:59 -0500)] 
Backport to gcc-9

[PATCH, PR target/94954] Fix wrong codegen for vec_pack_to_short_fp32() builtin

Hi,
  Fix codegen for builtin vec_pack_to_short_fp32.  This includes adding
a define_insn for xvcvsphp, and adding a new define_expand for
convert_4f32_8f16.

[v2]
   Comment on altivec.md "convert_4f32_8f16" enhanced.
   Testsuite builtins-1-p9-runnable.c updated.

OK for trunk and backports?

Thanks
-Will

PR target/94954

2020-07-06  Will Schmidt  <will_schmidt@vnet.ibm.com>

gcc/ChangeLog:

* config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
* config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
(convert_4f32_8f16): New define_expand
* config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
and overload.
* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
overloaded builtin entry.
* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
(vsx_xvcvsphp): New define_insn.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/builtins-1-p9-runnable.c: Update.

5 years agoDaily bump.
GCC Administrator [Mon, 6 Jul 2020 00:18:20 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/88379 - ICE with allocatable coarray, class and associate
Harald Anlauf [Tue, 30 Jun 2020 21:36:56 +0000 (23:36 +0200)] 
PR fortran/88379 - ICE with allocatable coarray, class and associate

Catch NULL pointer dereference for ASSOCIATE on allocatable coarray variable.

gcc/fortran/
PR fortran/88379
* resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.

(cherry picked from commit 267f84c6035c9380c8d1e9cb83ffe299c23e3a85)

5 years agoDaily bump.
GCC Administrator [Sun, 5 Jul 2020 00:18:08 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 4 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Fri, 3 Jul 2020 00:18:11 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR libstdc++/91807
Ville Voutilainen [Thu, 2 Jul 2020 19:16:39 +0000 (22:16 +0300)] 
PR libstdc++/91807

PR libstdc++/91807
* include/std/variant
(_Copy_assign_base::operator=(const _Copy_assign_base&):
Do the move-assignment from a temporary so that the temporary
is constructed with an explicit index.
* testsuite/20_util/variant/91807.cc: New.

(cherry picked from commit dbca7a69f276e4829354f87f2747ebff36f6090e)

5 years agogcc-changelog: sync from master.
Martin Liska [Thu, 2 Jul 2020 08:51:06 +0000 (10:51 +0200)] 
gcc-changelog: sync from master.

contrib/ChangeLog:

* gcc-changelog/git_check_commit.py: New file.
* gcc-changelog/git_commit.py: New file.
* gcc-changelog/git_email.py: New file.
* gcc-changelog/git_repository.py: New file.
* gcc-changelog/git_update_version.py: New file.
* gcc-changelog/test_email.py: New file.
* gcc-changelog/test_patches.txt: New file.

5 years agoDaily bump.
GCC Administrator [Thu, 2 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agolibstdc++: Remove noexcept from match_results comparisons (PR 94627)
Jonathan Wakely [Wed, 1 Jul 2020 20:01:15 +0000 (21:01 +0100)] 
libstdc++: Remove noexcept from match_results comparisons (PR 94627)

These functions can't be noexcept because the iterators stored in the
sub_match objects can throw on any operation.

libstdc++-v3/ChangeLog:

PR libstdc++/94627
* include/bits/regex.h (operator==, operator!=): Remove noexcept
equality comparisons for match_results.
* testsuite/28_regex/match_results/94627.cc: New test.

(cherry picked from commit a1a0dc4548979f8a340a7ea71624a52a20e1e0b3)

5 years agoPR fortran/71706 - ICE on using sync images with -fcheck=bounds
Harald Anlauf [Mon, 29 Jun 2020 13:15:49 +0000 (15:15 +0200)] 
PR fortran/71706 - ICE on using sync images with -fcheck=bounds

The run-time checking code did not properly convert the kind of the
argument to SYNC IMAGES, leading to an error in verify_gimple.  Fix that.

gcc/fortran/
PR fortran/71706
* trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
bounds-checking code.

(cherry picked from commit e6cc67f6616c96f3e18a434e0c74ba2f3818cb6d)

5 years agoPR fortran/95880 - ICE in gfc_add_type, at fortran/symbol.c:2030
Harald Anlauf [Sun, 28 Jun 2020 11:52:09 +0000 (13:52 +0200)] 
PR fortran/95880 - ICE in gfc_add_type, at fortran/symbol.c:2030

The fix for PR39695 did not properly distinguish between procedure names
and other symbols names in errors emitted for invalid code.  Fix that.

gcc/fortran/
PR fortran/95880
* symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
otherwise fall back to sym->name.

(cherry picked from commit f3a8f66a83f8c94f6fbb0233cefba8032f2e4876)

5 years agoFortran : Bogus error with additional blanks in type(*) PR95829
Mark Eggleston [Tue, 23 Jun 2020 10:01:28 +0000 (11:01 +0100)] 
Fortran  : Bogus error with additional blanks in type(*) PR95829

Checking for "* ) " instead of "*)" clears the bogus error.

2020-07-01  Steven G. Kargl  <kargl@gcc.gnu.org>

gcc/fortran/

PR fortran/95829
* decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
of "*)".

2020-07-01  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/95829
* gfortran.dg/pr95829.f90: New test.

(cherry picked from commit 624e60f080989fa57756575a0bb47a97748b52b8)

5 years agoDaily bump.
GCC Administrator [Wed, 1 Jul 2020 00:18:12 +0000 (00:18 +0000)] 
Daily bump.

5 years agoarm: Don't generate invalid LDRD insns
Alex Coplan [Mon, 18 May 2020 15:29:04 +0000 (16:29 +0100)] 
arm: Don't generate invalid LDRD insns

This fixes a bug in the arm backend where GCC generates invalid LDRD
instructions. The LDRD instruction requires the first transfer register to be
even, but GCC attempts to use odd registers here. For example, with the
following C code:

    struct c {
      double a;
    } __attribute((aligned)) __attribute((packed));
    struct c d;
    struct c f(struct c);
    void e() { f(d); }

The struct d is passed in registers r1 and r2 to the function f, and GCC
attempted to do this with a LDRD instruction when compiling with -march=armv7-a
on a soft float toolchain.

The fix is analogous to the corresponding one for STRD in the same function:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=52057dc4ac5295caebf83147f688d769c93cbc8d

gcc/:
* config/arm/arm.c (output_move_double): Fix codegen when loading into
a register pair with an odd base register.

gcc/testsuite/:
* gcc.c-torture/compile/packed-aligned-1.c: New test.
* gcc.c-torture/execute/packed-aligned.c: New test.

(cherry picked from commit 8b8f3117263ca79b3febadadb07732588d99d5f6)

5 years agoDo not generate recursion check for compiler-generated procedures.
Thomas Koenig [Mon, 29 Jun 2020 21:11:06 +0000 (23:11 +0200)] 
Do not generate recursion check for compiler-generated procedures.

This one-line fix removes a check for recursion for procedures
which are compiler-generated, such as finalizers or deallocation.
These need to be recursive, even if the user code should not be.

gcc/fortran/ChangeLog:

PR fortran/95743
* trans-decl.c (gfc_generate_function_code): Do not generate
recursion check for compiler-generated procedures.

(cherry picked from commit 95cdcf701dad826f225d6413b59650f181954399)

5 years agoDaily bump.
GCC Administrator [Tue, 30 Jun 2020 09:04:17 +0000 (09:04 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Mon, 29 Jun 2020 00:18:18 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 28 Jun 2020 00:18:11 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/95881 - ICE in resolve_symbol, at fortran/resolve.c:15175
Harald Anlauf [Sat, 27 Jun 2020 12:56:33 +0000 (14:56 +0200)] 
PR fortran/95881 - ICE in resolve_symbol, at fortran/resolve.c:15175

Avoid NULL pointer dereference.

gcc/fortran/
PR fortran/95881
* resolve.c (resolve_symbol): Avoid NULL pointer dereference.

(cherry picked from commit 3cbc0fb39c84ae0a51a9a88649dccd105bf17d6e)

5 years agoDaily bump.
GCC Administrator [Sat, 27 Jun 2020 00:18:07 +0000 (00:18 +0000)] 
Daily bump.

5 years agod: Fix ICE during error recovery in semantic pass
Iain Buclaw [Tue, 23 Jun 2020 20:43:27 +0000 (22:43 +0200)] 
d: Fix ICE during error recovery in semantic pass

Fixes a regression caused by an incomplete backport of converting the
Expression semantic pass to a Visitor.

gcc/d/ChangeLog:

PR d/95250
* dmd/expressionsem.c (class ExpressionSemanticVisitor): Return early
if error occurred during semantic of DivExp.

gcc/testsuite/ChangeLog:

PR d/95250
* gdc.dg/pr95250.d: New test.

(cherry picked from commit 1d19c9cd3dd99ba8885c0fc93223918399f73939)

5 years agod: Fix ICE in uda_attribute_p when looking up unknown attribute
Iain Buclaw [Tue, 23 Jun 2020 14:25:29 +0000 (16:25 +0200)] 
d: Fix ICE in uda_attribute_p when looking up unknown attribute

The target attribute table is not guaranteed to be set in all backends.

gcc/d/ChangeLog:

PR d/95173
* d-attribs.cc (uda_attribute_p): Don't search target attribute table
if NULL.

gcc/testsuite/ChangeLog:

PR d/95173
* gdc.dg/pr95173.d: New test.

(cherry picked from commit 62e02c8729a75c4a859edc18e0bcafb87d717f46)

5 years agoDaily bump.
GCC Administrator [Fri, 26 Jun 2020 00:18:08 +0000 (00:18 +0000)] 
Daily bump.

5 years agox96: Remove PTA_CLWB from PTA_ICELAKE_CLIENT
H.J. Lu [Wed, 24 Jun 2020 16:12:47 +0000 (09:12 -0700)] 
x96: Remove PTA_CLWB from PTA_ICELAKE_CLIENT

CLWB isn't supported on Ice Lake client.  But Ice Lake server support it.
Move PTA_CLWB to PTA_ICELAKE_SERVER.

PR target/95874
* config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
(PTA_ICELAKE_SERVER): Add PTA_CLWB.

(cherry picked from commit c422e5f81f42a0fc197f0715f4fcd81f1be90bff)

5 years agoDaily bump.
GCC Administrator [Thu, 25 Jun 2020 00:18:08 +0000 (00:18 +0000)] 
Daily bump.

5 years agoRevert "PR fortran/95689 - ICE in check_sym_interfaces, at fortran/interface.c:2015"
Harald Anlauf [Wed, 24 Jun 2020 20:44:11 +0000 (22:44 +0200)] 
Revert "PR fortran/95689 - ICE in check_sym_interfaces, at fortran/interface.c:2015"

With submodules, name mangling of interfaces may result in long internal
symbols overflowing an internal buffer.  We now check that we do not
exceed the enlarged buffer size.

gcc/fortran/
PR fortran/95689
* interface.c (check_sym_interfaces): Enlarge temporary buffer,
and add check on length on mangled name to prevent overflow.

gcc/testsuite/
PR fortran/95689
* gfortran.dg/pr95689.f90: New test.

(reverts the cherry-pick from commit 62c0c0ea7bfb6f8f6b8d767b05120cafb6823da6)

5 years agolibstdc++: Fix std::from_chars to ignore leading zeros in base 2
Jonathan Wakely [Wed, 24 Jun 2020 10:45:01 +0000 (11:45 +0100)] 
libstdc++: Fix std::from_chars to ignore leading zeros in base 2

The parser for binary numbers returned an error if the entire string
contains more digits than the result type. Leading zeros should be
ignored.

libstdc++-v3/ChangeLog:

* include/std/charconv (__from_chars_binary): Ignore leading zeros.
* testsuite/20_util/from_chars/1.cc: Check "0x1" for all bases,
not just 10 and 16.
* testsuite/20_util/from_chars/3.cc: New test.

(cherry picked from commit eb0ff770e29715deb8b2e6f5da736e0c1e8f8d07)

5 years agoDaily bump.
GCC Administrator [Wed, 24 Jun 2020 00:18:18 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR fortran/95689 - ICE in check_sym_interfaces, at fortran/interface.c:2015
Harald Anlauf [Sat, 20 Jun 2020 14:09:45 +0000 (16:09 +0200)] 
PR fortran/95689 - ICE in check_sym_interfaces, at fortran/interface.c:2015

With submodules, name mangling of interfaces may result in long internal
symbols overflowing an internal buffer.  We now check that we do not
exceed the enlarged buffer size.

gcc/fortran/
PR fortran/95689
* interface.c (check_sym_interfaces): Enlarge temporary buffer,
and add check on length on mangled name to prevent overflow.

(cherry picked from commit 62c0c0ea7bfb6f8f6b8d767b05120cafb6823da6)

5 years agoPR fortran/95587 - ICE in gfc_target_encode_expr, at fortran/target-memory.c:362
Harald Anlauf [Sat, 20 Jun 2020 14:05:13 +0000 (16:05 +0200)] 
PR fortran/95587 - ICE in gfc_target_encode_expr, at fortran/target-memory.c:362

EQUIVALENCE objects are subject to constraints listed in the Fortran 2018
standard, section 8.10.1.1.  These constraints are to be checked
also for CLASS variables.

gcc/fortran/
PR fortran/95587
* match.c (gfc_match_equivalence): Check constraints on
EQUIVALENCE objects also for CLASS variables.

(cherry picked from commit 5eb947601bdce59f2ff26694327ad173c51c2724)

5 years agoFix memory corruption with vector and variant record
Eric Botcazou [Tue, 23 Jun 2020 16:33:28 +0000 (18:33 +0200)] 
Fix memory corruption with vector and variant record

The problem is that Has_Constrained_Partial_View must be tested on the
base type of the designated type of an allocator.

gcc/ada/ChangeLog:
* gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
Call Has_Constrained_Partial_View on base type of designated type.

5 years agoFortran : ICE in resolve_fl_procedure PR95708
Mark Eggleston [Mon, 22 Jun 2020 12:35:01 +0000 (13:35 +0100)] 
Fortran  : ICE in resolve_fl_procedure PR95708

Now issues an error "Intrinsic procedure 'num_images' not
allowed in PROCEDURE" instead of an ICE.

2020-06-22  Steven G. Kargl  <kargl@gcc.gnu.org>

gcc/fortran/

PR fortran/95708
* intrinsic.c (add_functions): Replace CLASS_INQUIRY with
CLASS_TRANSFORMATIONAL for intrinsic num_images.
(make_generic): Replace ACTUAL_NO with ACTUAL_YES for
intrinsic team_number.
* resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
exists before using it.

2020-06-22  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/95708
* gfortran.dg/pr95708.f90: New test.

(cherry picked from commit 647340c92a042e8e6f7d004637f07060dbde49c0)

5 years agoDaily bump.
GCC Administrator [Tue, 23 Jun 2020 00:18:04 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Mon, 22 Jun 2020 00:18:16 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 21 Jun 2020 00:18:05 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 20 Jun 2020 00:18:03 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Fri, 19 Jun 2020 00:18:21 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Thu, 18 Jun 2020 00:18:27 +0000 (00:18 +0000)] 
Daily bump.