re PR fortran/64674 ([OOP] ICE in ASSOCIATE with class array)
gcc/fortran/ChangeLog:
2015-06-23 Andre Vehreschild <vehre@gmx.de>
PR fortran/64674
* parse.c (parse_associate): Figure the rank and as of a
class array in an associate early.
* primary.c (gfc_match_varspec): Prevent setting the
dimension attribute on the sym for classes.
* resolve.c (resolve_variable): Correct the component
ref's type for associated variables. Add a full array ref
when class array's are associated.
(resolve_assoc_var): Correct the type of the symbol,
when in the associate the expression's rank becomes scalar.
* trans-expr.c (gfc_conv_variable): Indirect ref needed for
allocatable associated objects.
gcc/testsuite/ChangeLog:
2015-06-23 Andre Vehreschild <vehre@gmx.de>
PR fortran/64674
* gfortran.dg/associate_18.f08: New test.
Thomas Schwinge [Tue, 23 Jun 2015 08:17:23 +0000 (10:17 +0200)]
[nvptx] gcc/testsuite/gcc.target/nvptx/
We don't claim to support "K&R C" for nvptx, but needed this corresponding
functionality ("incomplete prototypes") to support the Fortran
libgomp/openacc_lib.h file.
gcc/testsuite/
* gcc.target/nvptx/nvptx.exp: New file.
* gcc.target/nvptx/proto-1.c: Likewise.
* rtlanal.c (commutative_operand_precedence): Correct comments.
* simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
declaration. Return an int. Distinguish REG,REG return from
others.
(struct simplify_plus_minus_op_data): Make local to function.
(simplify_plus_minus): Don't set canonicalized if merely sorting
registers. Avoid packing ops if nothing changes. White space fixes.
gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if -fdump-ada-spec is passed but not if...
* gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
-fdump-ada-spec is passed but not if -fsyntax-only is.
cp/
* lang-specs.h: Pass "-o %g.s" to cc1plus for headers even if
-fdump-ada-spec is passed.
Jonathan Wakely [Mon, 22 Jun 2015 15:09:27 +0000 (16:09 +0100)]
list (__gnu_debug::list): Use allocator-aware _Safe_container base.
* include/debug/list (__gnu_debug::list): Use allocator-aware
_Safe_container base.
* include/debug/string (__gnu_debug::basic_string): Use
allocator-aware _Safe_container base for cxx11 ABI.
Marek Polacek [Mon, 22 Jun 2015 14:46:14 +0000 (14:46 +0000)]
match.pd ((x ^ y) ^ (x | y) -> x & y, (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y, (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y, (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
* match.pd ((x ^ y) ^ (x | y) -> x & y,
(x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
(x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
(x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
* gcc.dg/fold-ior-1.c: New test.
* gcc.dg/fold-minus-2.c: New test.
* gcc.dg/fold-minus-3.c: New test.
* gcc.dg/fold-plus-1.c: New test.
* gcc.dg/fold-plus-2.c: New test.
* gcc.dg/fold-xor-4.c: New test.
* gcc.dg/fold-xor-5.c: New test.
Christian Bruel [Mon, 22 Jun 2015 07:32:15 +0000 (09:32 +0200)]
Add -mflip-thumb for testing.
PR target/52144n
* config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
(TARGET_INSERT_ATTRIBUTES): Define.
(thumb_flipper): New var.
* config/arm/arm.opt (-mflip-thumb): New switch.
PR target/52144
* gcc.target/arm/flip-thumb.c: New test.
Jan Hubicka [Mon, 22 Jun 2015 07:12:22 +0000 (09:12 +0200)]
re PR ipa/65908 (ICE: in expand_thunk, at cgraphunit.c:1700)
PR ipa/65908
* ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
construction of arg_types.
(sem_function::sem_function): Likewise.
(sem_function::~sem_function): Remove destruction of arg_types.
(sem_function::compatible_parm_types_p): New function.
(sem_function::equals_wpa): Reorg matching of return values
and parameter types.
(sem_function::equals_private): Reorg mathcing of argument types.
(sem_function::parse_tree_args): Remove.
* ipa-icf.h (init_wpa): Do not call it.
(parse_tree_args): Remove.
(compatible_parm_types_p): Declare.
(result_type): Remove.
(arg_types): Remove.
* testsuite/g++.dg/ipa/pr65908.C: New testcase.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r224720
Jan Hubicka [Mon, 22 Jun 2015 07:02:50 +0000 (09:02 +0200)]
re PR rtl-optimization/66351 (r223883 miscompiles stage2 compiler on ia64)
PR ipa/66351
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
initializing alias oracle; fix formating; set base_alias_set if it
is known.
Eric Botcazou [Fri, 19 Jun 2015 20:10:50 +0000 (20:10 +0000)]
decl.c (gnat_to_gnu_entity): Make sure the size of a padding type built around the return type is positive.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Make sure
the size of a padding type built around the return type is positive.
* gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
Use INIT_EXPR instead of MODIFY_EXPR to assign to the return object.
Jason Merrill [Fri, 19 Jun 2015 18:15:36 +0000 (14:15 -0400)]
re PR c++/65880 (Member function issue with argument "pointer to const array of member function pointers")
PR c++/65880
* decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
cv-qualifiers.
* typeck.c (merge_types): build_ptrmemfunc_type before applying
quals and attributes.
Jim Wilson [Fri, 19 Jun 2015 17:22:38 +0000 (17:22 +0000)]
aarch64.md (mov<mode>:GPF): Don't call force_reg if op1 is an fp zero.
gcc/
* config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
op1 is an fp zero.
(movsf_aarch64): Change condition from register_operand to
aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
load1. Change type for alternative 7 to store1.
(movdf_aarch64): Likewise.
gcc/testsuite/
* gcc.target/aarch64/fmovd-zero-mem.c: New.
* gcc.target/aarch64/fmovd-zero-reg.c: New.
* gcc.target/aarch64/fmovf-zero-mem.c: New.
* gcc.target/aarch64/fmovf-zero-reg.c: New.
* gcc.target/aarch64/fmovld-zero-mem.c: New.
* gcc.target/aarch64/fmovld-zero-mem.c: New.
* gcc.target/aarch64/fmovd-zero.c: Delete.
* gcc.target/aarch64/fmovf-zero.c: Delete.
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(_ARM_FPSCR): Add FZ field.
(clean_results): Force FZ=1 on AArch64.
* gcc.target/aarch64/advsimd-intrinsics/vrecpe.c: New file.
Mikael Morin [Fri, 19 Jun 2015 12:50:00 +0000 (12:50 +0000)]
Fix openmp global state fortran regression
PR fortran/66549
gcc/fortran/
* resolve.c (resolve_global_procedure): Don't save and restore
OpenMP state around the call to gfc_resolve.
(gfc_resolve): Save OpenMP state on entry and restore it on return.
gcc/testsuite/
* gfortran.dg/gomp/omp_parallel_1.f90: New file.
gcc/
* config/nvptx/nvptx.md (allocate_stack): Rename to...
(allocate_stack_<mode>): ... this, and add :P on both
match_operand and unspec.
(allocate_stack): New expander.
Uros Bizjak [Thu, 18 Jun 2015 19:26:26 +0000 (21:26 +0200)]
i386.md (*movsicc_noc_zext): New insn.
* config/i386/i386.md (*movsicc_noc_zext): New insn.
(zero-extended cmove with mem peephole2): New pattern.
(cmove with mem peephole2): Merge patterns.
Michael Matz [Thu, 18 Jun 2015 13:31:17 +0000 (13:31 +0000)]
re PR middle-end/66253 (459.GemsFDTD in SPEC CPU 2006 is miscompiled)
PR middle-end/66253
* tree-vect-stmts.c (vectorizable_store): Implement non-SLP
grouped strided stores.
(vectorizable_load): Don't use the DR from first_stmt in
the non-SLP grouped strided case.
Ilya Enkovich [Thu, 18 Jun 2015 10:18:48 +0000 (10:18 +0000)]
re PR target/66569 ([CHKP] internal compiler error: in assign_by_spills)
gcc/
PR target/66569
* function.c (assign_bounds): Add arguments assign_regs,
assign_special, assign_bt.
(assign_parms): For vararg functions handle bounds in BT
and special slots after incoming vararg bounds.
gcc/testsuite/
PR target/66569
* gcc.target/i386/mpx/chkp-vararg.c: New test.
Ilya Enkovich [Thu, 18 Jun 2015 10:09:22 +0000 (10:09 +0000)]
re PR middle-end/66567 ([CHKP] internal compiler error: in assign_parms)
gcc/
PR middle-end/66567
* ipa-chkp.c (chkp_maybe_create_clone): Require
functions to be instrumentable.
* tree-chkp.c (chkp_replace_function_pointer): Use
chkp_instrumentable_p instead of attribute check.
gcc/testsuite/
PR middle-end/66567
* gcc.target/i386/mpx/pr66567.c: New test.
Richard Biener [Thu, 18 Jun 2015 09:39:13 +0000 (09:39 +0000)]
re PR tree-optimization/66510 (gcc.target/arm/pr53636.c FAILs after r224221)
2015-06-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/66510
* tree-vect-stmts.c (vectorizable_load): Properly compute the
number of vector loads for SLP permuted loads.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
check the stride for loop vectorization.
(vect_enhance_data_refs_alignment): Deal with SLP adjusted
vectorization factor.
(vect_analyze_group_access): If the group size is not a power
of two require a epilogue loop.
* tree-vect-loop.c (vect_analyze_loop_2): Move alignment
compute and optimizing and alias test pruning after final
vectorization factor computation.
* tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
vector alignment.
(vect_transform_slp_perm_load): Properly compute the original
number of vector load stmts.