PR tree-optimization/60115
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
MEM_REF handling. Properly verify that the accesses are not
out of the objects bound.
Paul Thomas [Fri, 7 Feb 2014 21:15:37 +0000 (21:15 +0000)]
re PR fortran/59906 (error: size of variable '<anonymous>' is too large)
2014-02-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59906
* trans-stmt.c (gfc_add_loop_ss_code): In the case of character
SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
pointer to the string is stored.
* trans-expr.c (gfc_conv_expr_reference): Likewise, use
gfc_conv_string_parameter to ensure that a pointer to is passed
to the elemental function.
2014-02-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59906
* gfortran.dg/elemental_subroutine_9.f90 : New test
Paul Thomas [Sat, 1 Feb 2014 22:31:53 +0000 (22:31 +0000)]
re PR fortran/59414 ([OOP] ICE in in gfc_conv_expr_descriptor on ALLOCATE inside SELECT TYPE)
2014-02-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59414
* trans-stmt.c (gfc_trans_allocate): Before the pointer
assignment to transfer the source _vptr to a class allocate
expression, the final class reference should be exposed. The
tail that includes the _data and array references is stored.
This reduced expression is transferred to 'lhs' and the _vptr
added. Then the tail is restored to the allocate expression.
2014-02-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/59414
* gfortran.dg/allocate_class_3.f90 : New test
David Holsgrove [Thu, 30 Jan 2014 17:26:34 +0000 (17:26 +0000)]
Add SImode to comparison operator, prevents ICE during combine
rtl pass with error message;
internal compiler error: in simplify_subreg, at simplify-rtx.c:5725
Use ordered_comparison_operator predicate to limit operators to
those fcmp can handle, and letting compiler reorder insns to
accomodate unordered as necessary
gcc/ChangeLog
2013-11-26 David Holsgrove <david.holsgrove@xilinx.com>
* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
comparison_operator with ordered_comparison_operator.
testsuite/ChangeLog
2014-01-22 David holsgrove <david.holsgrove@xilinx.com>
* testsuite/gcc.target/microblaze/isa/fcmp4.c: New file.
Jason Merrill [Thu, 30 Jan 2014 01:54:33 +0000 (20:54 -0500)]
re PR c++/59989 (ICE when a template parameter pack is explicitly specified for a function template and provides a complete argument list for a template)
Jason Merrill [Mon, 27 Jan 2014 13:58:48 +0000 (08:58 -0500)]
Core DR 475 PR c++/41174 PR c++/59224
Core DR 475
PR c++/41174
PR c++/59224
* libsupc++/eh_throw.cc (__cxa_throw): Set uncaughtExceptions.
* libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception)
(__cxa_allocate_exception): Don't set it here.
Mikael Morin [Sun, 26 Jan 2014 13:04:54 +0000 (13:04 +0000)]
re PR fortran/58007 ([OOP] ICE in free_pi_tree(): Unresolved fixup - resolve_fixups does not fixup component of __class_bsr_Bsr_matrix)
fortran/
PR fortran/58007
* module.c
(fp2, find_pointer2): Remove.
(mio_component_ref): Don't forcedfully set the containing derived type
symbol for loading. Remove unused argument.
(mio_ref): Update caller
(skip_list): New argument nest_level. Initialize level with the new
argument.
(read_module): Add forced pointer components association for derived
type symbols.
testsuite/
PR fortran/58007
* gfortran.dg/unresolved_fixup_1.f90: New test.
* gfortran.dg/unresolved_fixup_2.f90: New test.
Walter Lee [Sat, 25 Jan 2014 22:39:12 +0000 (22:39 +0000)]
backport: atomic.c (pre_atomic_barrier): Mark inline.
2014-01-25 Walter Lee <walt@tilera.com>
Backport from mainline
2014-01-25 Walter Lee <walt@tilera.com>
* config/tilepro/atomic.c (pre_atomic_barrier): Mark inline.
(post_atomic_barrier): Ditto.
(__fetch_and_do): New macro.
(__atomic_fetch_and_do): Use __fetch_and_do.
(__sync_fetch_and_do): New macro.
(__sync_fetch_and_add_4): New function.
(__sync_fetch_and_sub_4): New function.
(__sync_fetch_and_or_4): New function.
(__sync_fetch_and_and_4): New function.
(__sync_fetch_and_xor_4): New function.
(__sync_fetch_and_nand_4): New function.
(__sync_fetch_and_add_8): New function.
(__sync_fetch_and_sub_8): New function.
(__sync_fetch_and_or_8): New function.
(__sync_fetch_and_and_8): New function.
(__sync_fetch_and_xor_8): New function.
(__sync_fetch_and_nand_8): New function.
(__do_and_fetch): New macro.
(__atomic_do_and_fetch): Use __do_and_fetch.
(__sync_do_and_fetch): New macro.
(__sync_add_and_fetch_4): New function.
(__sync_sub_and_fetch_4): New function.
(__sync_or_and_fetch_4): New function.
(__sync_and_and_fetch_4): New function.
(__sync_xor_and_fetch_4): New function.
(__sync_nand_and_fetch_4): New function.
(__sync_add_and_fetch_8): New function.
(__sync_sub_and_fetch_8): New function.
(__sync_or_and_fetch_8): New function.
(__sync_and_and_fetch_8): New function.
(__sync_xor_and_fetch_8): New function.
(__sync_nand_and_fetch_8): New function.
(__sync_exchange_methods): New macro.
(__sync_val_compare_and_swap_4): New function.
(__sync_bool_compare_and_swap_4): New function.
(__sync_lock_test_and_test_4): New function.
(__sync_val_compare_and_swap_8): New function.
(__sync_bool_compare_and_swap_8): New function.
(__sync_lock_test_and_test_8): New function.
(__subword_cmpxchg_body): New macro.
(__atomic_compare_exchange_1): Use __subword_cmpxchg_body.
(__atomic_compare_exchange_2): Ditto.
(__sync_subword_cmpxchg): New macro.
(__sync_val_compare_and_swap_1): New function.
(__sync_bool_compare_and_swap_1): New function.
(__sync_val_compare_and_swap_2): New function.
(__sync_bool_compare_and_swap_2): New function.
(__atomic_subword): Rename to ...
(__subword): ... New name.
(__atomic_subword_fetch): Use __subword.
(__sync_subword_fetch): New macro.
(__sync_fetch_and_add_1): New function.
(__sync_fetch_and_sub_1): New function.
(__sync_fetch_and_or_1): New function.
(__sync_fetch_and_and_1): New function.
(__sync_fetch_and_xor_1): New function.
(__sync_fetch_and_nand_1): New function.
(__sync_fetch_and_add_2): New function.
(__sync_fetch_and_sub_2): New function.
(__sync_fetch_and_or_2): New function.
(__sync_fetch_and_and_2): New function.
(__sync_fetch_and_xor_2): New function.
(__sync_fetch_and_nand_2): New function.
(__sync_add_and_fetch_1): New function.
(__sync_sub_and_fetch_1): New function.
(__sync_or_and_fetch_1): New function.
(__sync_and_and_fetch_1): New function.
(__sync_xor_and_fetch_1): New function.
(__sync_nand_and_fetch_1): New function.
(__sync_add_and_fetch_2): New function.
(__sync_sub_and_fetch_2): New function.
(__sync_or_and_fetch_2): New function.
(__sync_and_and_fetch_2): New function.
(__sync_xor_and_fetch_2): New function.
(__sync_nand_and_fetch_2): New function.
(__atomic_subword_lock): Use __subword.
(__sync_subword_lock): New macro.
(__sync_lock_test_and_set_1): New function.
(__sync_lock_test_and_set_2): New function.
Walter Lee [Sat, 25 Jan 2014 22:32:49 +0000 (22:32 +0000)]
backport: tilegx.c (tilegx_expand_builtin): Set PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
2014-01-25 Walter Lee <walt@tilera.com>
Backport from mainline
2014-01-25 Walter Lee <walt@tilera.com>
* config/tilegx/tilegx.c (tilegx_expand_builtin): Set
PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
* config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
Stack adjustment is in push operand and it isn't stack register mode size
which may be 4 bytes for -mx32. This patch gets stack adjustment from
push operand if code of push isn't PRE_DEC.
gcc/
Backport from mainline
PR target/59929
* config/i386/i386.md (pushsf splitter): Get stack adjustment
from push operand if code of push isn't PRE_DEC.
gcc/testsuite/
Backport from mainline.
PR target/59929
* gcc.target/i386/pr59929.c: New test.
Marek Polacek [Wed, 22 Jan 2014 22:20:14 +0000 (22:20 +0000)]
re PR c/59891 (ICE on invalid code (with div-by-zero) at all optimization levels on x86_64-linux-gnu)
PR c/59891
c/
* c-typeck.c (build_conditional_expr): Call c_fully_fold instead
of remove_c_maybe_const_expr on op1 and op2.
testsuite/
* gcc.dg/torture/pr59891.c: New test.
Paul Thomas [Sun, 19 Jan 2014 18:04:22 +0000 (18:04 +0000)]
re PR fortran/58410 (Bogus uninitialized variable warning for allocatable derived type array function result)
2014-01-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/58410
* trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
use the array bounds of an unallocated array but set its size
to zero instead.
H.J. Lu [Fri, 17 Jan 2014 18:51:27 +0000 (18:51 +0000)]
Consolidate ABI warning into type_natural_mode
gcc/
Backport from mainline
PR target/59794
* config/i386/i386.c (type_natural_mode): Add a bool parameter
to indicate if type is used for function return value. Warn
ABI change if the vector mode isn't available for function
return value.
(ix86_function_arg_advance): Pass false to type_natural_mode.
(ix86_function_arg): Likewise.
(ix86_gimplify_va_arg): Likewise.
(function_arg_32): Don't warn ABI change.
(ix86_function_value): Pass true to type_natural_mode.
(ix86_return_in_memory): Likewise.
(ix86_struct_value_rtx): Removed.
(TARGET_STRUCT_VALUE_RTX): Likewise.
gcc/testsuite/
Backport from mainline
PR target/59794
* gcc.target/i386/pr39162.c (y): New __m256i variable.
(bar): Change return type to void. Set y to x.
* gcc.target/i386/pr59794-1.c: New testcase.
* gcc.target/i386/pr59794-2.c: Likewise.
* gcc.target/i386/pr59794-3.c: Likewise.
* gcc.target/i386/pr59794-4.c: Likewise.
* gcc.target/i386/pr59794-5.c: Likewise.
* gcc.target/i386/pr59794-6.c: Likewise.
* gcc.target/i386/pr59794-7.c: Likewise.
Matthias Klose [Fri, 17 Jan 2014 18:49:04 +0000 (18:49 +0000)]
backport: go-test.exp (go-gc-tests): Don't run peano.go on systems which don't support -fsplit-stack.
2014-01-17 Matthias Klose <doko@ubuntu.com>
Backport from the trunk:
2014-01-09 Uros Bizjak <ubizjak@gmail.com>
* go.test/go-test.exp (go-gc-tests): Don't run peano.go on systems
which don't support -fsplit-stack. Skip rotate[0123].go tests.
Charles Baylis [Fri, 17 Jan 2014 11:48:06 +0000 (11:48 +0000)]
backport: re PR target/59142 (internal compiler error while compiling OpenCV 2.4.7)
2014-01-17 Charles Baylis <charles.baylis@linaro.org>
Backport from mainline
2013-12-19 Charles Baylis <charles.baylis@linaro.org>
PR target/59142
* config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb
patterns.
* config/arm/ldmstm.md: Regenerate.
2013-12-19 Charles Baylis <charles.baylis@linaro.org>
PR target/59142
* config/arm/predicates.md (arm_hard_general_register_operand):
New predicate.
(arm_hard_register_operand): Remove.
* config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand
for all patterns.
* config/arm/ldmstm.md: Regenerate.
2013-12-19 Charles Baylis <charles.baylis@linaro.org>
PR target/59142
* config/arm/predicates.md (vfp_hard_register_operand): New predicate.
* config/arm/arm.md (vfp_pop_multiple_with_writeback): Use
vfp_hard_register_operand.