Paul Thomas [Wed, 25 Nov 2015 05:28:10 +0000 (05:28 +0000)]
backport: re PR fortran/68196 (ICE on function result with procedure pointer component)
2015-11-25 Paul Thomas <pault@gcc.gnu.org>
Backport from trunk.
PR fortran/68196
* class.c (has_finalizer_component): Prevent infinite recursion
through this function if the derived type and that of its
component are the same.
* trans-types.c (gfc_get_derived_type): Do the same for proc
pointers by ignoring the explicit interface for the component.
PR fortran/66465
* check.c (same_type_check): If either of the expressions is
BT_PROCEDURE, use the typespec from the symbol, rather than the
expression.
2015-11-25 Paul Thomas <pault@gcc.gnu.org>
Backport from trunk.
PR fortran/68196
* gfortran.dg/proc_ptr_47.f90: New test.
Backport from trunk.
PR fortran/66465
* gfortran.dg/pr66465.f90: New test.
Kyrylo Tkachov [Tue, 24 Nov 2015 14:27:51 +0000 (14:27 +0000)]
[RTL-ree] PR rtl-optimization/68194: Restrict copy instruction in presence of conditional moves
Backport from mainline
2015-11-24 Bernd Schmidt <bschmidt@redhat.com>
Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/68194
PR rtl-optimization/68328
PR rtl-optimization/68185
* ree.c (combine_reaching_defs): Reject copy_needed case if
copies_list is not empty.
* gcc.c-torture/execute/pr68185.c: New test.
* gcc.c-torture/execute/pr68328.c: Likewise.
Andreas Tobler [Wed, 11 Nov 2015 21:20:20 +0000 (22:20 +0100)]
backport: [multiple changes]
2015-11-11 Andreas Tobler <andreast@gcc.gnu.org>
Backport from mainline
2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
* config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
pie executables.
(FBSD_ENDFILE_SPEC): Likewise.
* config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
config/freebsd-spec.h.
(ENDFILE_SPEC): Likewise.
2015-11-02 Andreas Tobler <andreast@gcc.gnu.org>
* config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
PIE executables.
Eric Botcazou [Wed, 11 Nov 2015 16:04:34 +0000 (16:04 +0000)]
re PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)
PR target/67265
* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
frame pointer for stack checking if non-call exceptions aren't used.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
Martin Jambor [Mon, 2 Nov 2015 14:04:19 +0000 (15:04 +0100)]
re PR tree-optimization/67794 (internal compiler error: Segmentation fault)
2015-11-02 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/67794
* tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
between types of statements but accept original definitions as a
parameter.
(ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
iterate over definitions.
testsuite/
* gcc.dg/ipa/ipa-sra-10.c: New test.
* gcc.dg/torture/pr67794.c: Likewise.
re PR go/67968 (go1: internal compiler error: in write_specific_type_functions, at go/gofrontend/types.cc:1812)
PR go/67968
compiler: Traverse types of call expressions.
https://gcc.gnu.org/PR67968 provides a test case that causes a gccgo
crash on valid code. The compiler failed to build the hash and equality
functions required for a type descriptor. The descriptor is for an
unnamed type that is being returned by a function imported from a
different package. The unnamed type is being implicitly converted to an
interface type by a return statement. The fix is to ensure that the
type of a call expression is always traversed.
Test case sent out for the master testsuite as
https://golang.org/cl/16532 .
Daniel Hellstrom [Mon, 28 Sep 2015 15:03:06 +0000 (17:03 +0200)]
Now that muser-mode is default the multilib definitions does not require to specify that switch any more.
Now that muser-mode is default the multilib definitions does not require to
specify that switch any more. Add UT699 to multilib after recent patches. Add
AT697F multilib since there are many LEON2 users running RTEMS. Add leon to
multilib too.
gcc/
* config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
Daniel Cederman [Mon, 28 Sep 2015 05:46:04 +0000 (05:46 +0000)]
Make muser-mode the default for LEON3
2015-09-28 Daniel Cederman <cederman@gaisler.com>
Make muser-mode the default for LEON3
The muser-mode flag causes the CASA instruction for LEON3 to use the
user mode ASI. This is the correct behavior for almost all LEON3 targets.
For this reason it makes sense to make user mode the default.
gcc/
* config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
and make it inverse to change default
* config/sparc/sync.md: Only use supervisor ASI for CASA when in
supervisor mode
* doc/invoke.texi: Document change of default
Daniel Cederman [Mon, 28 Sep 2015 05:43:53 +0000 (05:43 +0000)]
Do not use floating point registers when compiling with -msoft-float for SPARC
2015-09-28 Daniel Cederman <cederman@gaisler.com>
Do not use floating point registers when compiling with -msoft-float for SPARC
__builtin_apply* and __builtin_return accesses the floating point registers on
SPARC even when compiling with -msoft-float.
gcc/
* config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
true on %f0 for a target without FPU.
* config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
without FPU.
(untyped_return): Do not load %f0 for a target without FPU.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Reorder error checks.
(__sync_fetch_and_##OP##_##WIDTH): Change result to match type of
__kernel_cmpxchg2.
(__sync_##OP##_and_fetch_##WIDTH): Likewise.
(__sync_val_compare_and_swap_##WIDTH): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Likewise.
(__sync_lock_test_and_set_##WIDTH): Likewise.
(__sync_lock_release_##WIDTH): Likewise.
(__sync_fetch_and_##OP##_4): Change result to match type of
__kernel_cmpxchg.
(__sync_##OP##_and_fetch_4): Likewise.
(__sync_val_compare_and_swap_4): Likewise.
(__sync_bool_compare_and_swap_4): likewise.
(__sync_lock_test_and_set_4): Likewise.
(__sync_lock_release_4): Likewise.
(FETCH_AND_OP_2): Add long long variants.
(OP_AND_FETCH_2): Likewise.
(COMPARE_AND_SWAP_2 ): Likewise.
(SYNC_LOCK_TEST_AND_SET_2): Likewise.
(SYNC_LOCK_RELEASE_2): Likewise.
(__sync_bool_compare_and_swap_##WIDTH): Correct return.