Janus Weil [Tue, 19 Jan 2010 22:21:35 +0000 (23:21 +0100)]
re PR fortran/42804 (ICE with -fcheck=bounds and type bound procedure call on array element)
gcc/fortran/
2010-01-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/42804
* resolve.c (extract_compcall_passed_object): Set locus for
passed-object argument.
(extract_ppc_passed_object): Set locus and correctly remove PPC
reference.
gcc/testsuite/
2010-01-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/42804
* gfortran.dg/proc_ptr_comp_pass_6.f90: New test.
* gfortran.dg/typebound_call_12.f03: New test.
Paul Thomas [Tue, 19 Jan 2010 19:46:59 +0000 (19:46 +0000)]
re PR fortran/42783 (Bogus Array bounds violation with optional array argument)
2010-01-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42783
* trans-decl.c (add_argument_checking): Do not use the backend
decl directly to test for the presence of an optional dummy
argument. Use gfc_conv_expr_present, remembering to set the
symbol referenced.
PR fortran/42772
* trans-decl.c (gfc_generate_function_code): Small white space
changes. If 'recurcheckvar' is NULL do not try to reset it.
2010-01-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42783
* gfortran.dg/bounds_check_15.f90 : New test.
Michael Matz [Tue, 19 Jan 2010 16:05:57 +0000 (16:05 +0000)]
re PR tree-optimization/41783 (r151561 (PRE fix) regresses zeusmp)
PR tree-optimization/41783
* tree-data-ref.c (toplevel): Include flags.h.
(dump_data_dependence_relation): Also dump the inputs if the
result will be unknown.
(split_constant_offset_1): Look through some conversions.
* tree-predcom.c (determine_roots_comp): Restart a new chain if
the offset from last element is too large.
(ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
(reassociate_to_the_same_stmt): Handle vector registers.
* tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
(e.g. conversions).
* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
wide_prolog_niters argument, emit widening instructions.
(vect_do_peeling_for_alignment): Adjust caller, use widened
variant of the iteration cound.
* Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
PR target/38697
* config/arm/neon-testgen.m (emit_automatics): New parameter
features. Adjust for Fixed_return_reg feature.
(test_intrinsic): Call emit_automatics with new feature.
* config/arm/neon.ml: Update copyright years.
(features): New Fixed_return_reg feature.
(ops): Update feature for Vget_low.
Janus Weil [Tue, 19 Jan 2010 13:45:07 +0000 (14:45 +0100)]
re PR fortran/42545 (type extension: parent component has wrong accessibility)
gcc/fortran/
2010-01-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/42545
* resolve.c (resolve_fl_derived): Set the accessibility of the parent
component for extended types.
* symbol.c (gfc_find_component): Remove a wrongly-worded error message
and take care of parent component accessibility.
gcc/testsuite/
2010-01-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/42545
* gfortran.dg/extends_6.f03: Modified an error message.
* gfortran.dg/extends_10.f03: New test.
* gfortran.dg/private_type_6.f03: Modified an error message.
* gfortran.dg/structure_constructor_8.f03: Ditto.
Johannes Singler [Tue, 19 Jan 2010 11:18:03 +0000 (11:18 +0000)]
re PR libstdc++/42712 (search_n/iterator.cc times out in parallel-mode)
2010-01-19 Johannes Singler <singler@kit.edu>
PR libstdc++/42712
* include/parallel/settings.h (_Settings): Add search_minimal_n.
* include/parallel/algo.h (__search_switch):
Add serial fallback for too small inputs.
(__search_n_switch): Likewise. Call serial fallback on higher level
to gain special treatment for __count 0 or 1.
* testsuite/25_algorithms/search_n/iterator.cc:
Reenable full test depth for parallel mode.
Dodji Seketeli [Mon, 18 Jan 2010 21:18:49 +0000 (21:18 +0000)]
re PR c++/42634 (ICE with -g -O2 -std=c++0x in copy_fn_p, at cp/decl.c:9973)
Fix PR c++/42634
gcc/cp/ChangeLog:
PR c++/42634
* error.c (dump_template_parms): Use innermost template
arguments before calling count_non_default_template_args.
(count_non_default_template_args): We are being called with
template innermost arguments now. There is no need to ensure
that again.
gcc/testsuite/ChangeLog:
PR c++/42634
* g++.dg/template/error45.C: New test.
Uros Bizjak [Mon, 18 Jan 2010 17:46:17 +0000 (18:46 +0100)]
re PR target/42774 (ICE in get_aligned_mem, at config/alpha/alpha.c:1484)
PR target/42774
* config/alpha/predicates.md (aligned_memory_operand): Return 0 for
memory references with unaligned offsets. Remove CQImode handling.
(unaligned_memory_operand): Return 1 for memory references with
unaligned offsets. Remove CQImode handling.
testsuite/ChangeLog:
PR target/42774
* gcc.target/alpha/pr42774.c: New test.
Richard Guenther [Sun, 17 Jan 2010 17:00:47 +0000 (17:00 +0000)]
re PR middle-end/42248 (compat test struct-by-value-17 fails execution with -O1 -fschedule-insns)
2010-01-17 Richard Guenther <rguenther@suse.de>
PR middle-end/42248
* function.c (split_complex_args): Take a VEC to modify.
(assign_parms_augmented_arg_list): Build a VEC instead of
a chain of PARM_DECLs.
(assign_parms_unsplit_complex): Take a VEC of arguments.
Do not fixup unmodified parms.
(assign_parms): Deal with the VEC.
(gimplify_parameters): Likewise.
Janus Weil [Sun, 17 Jan 2010 13:33:11 +0000 (14:33 +0100)]
re PR fortran/42677 (Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator)
gcc/fortran/
2010-01-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/42677
* gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
* interface.c (check_interface1): Move a warning message here from
resolve_fl_procedure.
(check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
* module.c (read_module): Remove call to gfc_check_interfaces, since
this comes too early here.
* resolve.c (resolve_fl_procedure): Move warning message to
check_interface1.
gcc/testsuite/
2010-01-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/42677
* gfortran.dg/interface_assignment_5.f90: New test.
Paolo Carlini [Sun, 17 Jan 2010 13:29:41 +0000 (13:29 +0000)]
functional (_Bind<_Functor(_Bound_args...)>::__call): Rename const version to __call_c and remove _Sfinae template parameter.
2010-01-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/functional (_Bind<_Functor(_Bound_args...)>::__call):
Rename const version to __call_c and remove _Sfinae template
parameter.
(_Bind<_Functor(_Bound_args...)>::operator()): Adjust.
* include/std/functional: Pass everywhere temporary tuple<_Args...>
arguments by rvalue reference.
* testsuite/20_util/bind/cv_quals.cc: New.
* testsuite/20_util/bind/ref2.cc: Add missing test variables.
Dodji Seketeli [Sun, 17 Jan 2010 10:24:16 +0000 (10:24 +0000)]
re PR c++/42697 (ice-on-legal-code: template class template function local objects)
Fix PR c++/42697
gcc/cp/ChangeLog:
PR c++/42697
*pt.c (tsubst_decl): Get the arguments of a specialization from
the specialization template, not from the most general template.
gcc/testsuite/ChangeLog:
PR c++/42697
* g++.dg/template/crash94.C: New test.
Ralf Wildenhues [Sat, 16 Jan 2010 14:42:32 +0000 (14:42 +0000)]
Avoid tr '\n', for Solaris /usr/bin/tr.
contrib/
* check_warning_flags.sh: Use \012 instead of \n with tr.
gcc/:
PR gcc/42525
* Makefile.in (write_entries_to_file, install-plugin):
Use \012 instead of \n with tr.
libjava/:
* Makefile.am (write_entries_to_file): Use \012 instead of \n
with tr.
* scripts/makemake.tcl: Likewise.
* sources.am: Regenerate.
* Makefile.in: Regenerate.
gcc/
* configure.ac (HAVE_AS_REF): New C macro.
* configure: Regenerate.
* config.in: Likewise.
* collect2.c (main): Only postpone SCAN_DWEH to the second pass
if HAVE_AS_REF.
* config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
if HAVE_AS_REF.
(TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
(TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
(TARGET_PCH_VALID_P): Put 'const char *' in braces.
(TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
(TARGET_ADDR_SPACE_CONVERT): Likewise.
(TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
(TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
(TARGET_INIT_BUILTINS): Use prototype.
(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
Put 'const char *' in braces. Fix parameter types.
(TARGET_INVALID_CONVERSION): Fix parameter types.
(TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
(TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
(TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
Fix argument type.
(TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
* python/libstdcxx/v6/printers.py (StdStringPrinter.__init__):
Remove encoding argument.
(StdStringPrinter.to_string): Do not compute or pass encoding.
Use lazy_string over string function.
--this line, and those below, will be ignored--
M libstdc++-v3/python/libstdcxx/v6/printers.py
M libstdc++-v3/ChangeLog
Jing Yu [Fri, 15 Jan 2010 21:54:01 +0000 (21:54 +0000)]
re PR rtl-optimization/42691 (problematic REG_EQUAL note added to SUBREG)
2010-01-15 Jing Yu <jingyu@google.com>
PR rtl-optimization/42691
* combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
a pseudo to a constant and are merged, and adjust comments.
Jing Yu [Fri, 15 Jan 2010 18:47:45 +0000 (18:47 +0000)]
re PR rtl-optimization/42691 (problematic REG_EQUAL note added to SUBREG)
2010-01-15 Jing Yu <jingyu@google.com>
PR rtl-optimization/42691
* combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
a pseudo to a constant and are merged, and adjust comments.
Richard Guenther [Fri, 15 Jan 2010 11:53:26 +0000 (11:53 +0000)]
re PR middle-end/42739 (ICE with computed goto, destructors, and optimization)
2010-01-15 Richard Guenther <rguenther@suse.de>
PR middle-end/42739
* tree-cfgcleanup.c (remove_forwarder_block): Move destination
labels of computed or non-local gotos to the destination.
* tree-cfg.c (gimple_verify_flow_info): Verify that a EH
landing pad label is the first label.
Jerry DeLisle [Fri, 15 Jan 2010 01:47:43 +0000 (01:47 +0000)]
re PR fortran/42684 (ICE when interface operator(xx) available through host and use assoc in module procedure)
2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/42684
* interface.c (check_interface1): Pass symbol name rather than NULL to
gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
trap MULL.
* resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
than NULL to gfc_compare_interfaces.
Jakub Jelinek [Thu, 14 Jan 2010 22:41:02 +0000 (23:41 +0100)]
re PR c++/42608 (Undefined reference not reported in case of explicit template instantiation)
PR c++/42608
* varasm.c (declare_weak): Add weak attribute to decl if it
doesn't have one already.
(assemble_external): Only add decls to weak_decls if they also
have weak attribute.
Paolo Carlini [Thu, 14 Jan 2010 18:15:37 +0000 (18:15 +0000)]
cstring (memchr): Forward to the builtin.
2010-01-14 Paolo Carlini <paolo.carlini@oracle.com>
* include/c_std/cstring (memchr): Forward to the builtin.
* include/c_std/cstring: Remove redundant casts; use names consistent
with the letter of the Standard.
* include/c_global/cstring: Likewise.
Martin Jambor [Thu, 14 Jan 2010 18:00:34 +0000 (19:00 +0100)]
re PR tree-optimization/42706 (ICE in gimple_op, at gimple.h:1634, (IPA SRA))
2010-01-14 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42706
* tree-sra.c (encountered_recursive_call): New variable.
(encountered_unchangable_recursive_call): Likewise.
(sra_initialize): Initialize both new variables.
(callsite_has_enough_arguments_p): New function.
(scan_function): Call decl and flags check only for IPA-SRA, check
whether there is a recursive call and whether it has enough arguments.
(all_callers_have_enough_arguments_p): New function.
(convert_callers): Look for recursive calls only when
encountered_recursive_call is set.
(ipa_early_sra): Bail out either if
!all_callers_have_enough_arguments_p or
encountered_unchangable_recursive_call.
Andi Kleen [Thu, 14 Jan 2010 12:48:09 +0000 (13:48 +0100)]
drivers-i386.c (detect_caches_intel): Add l2sizekb parameter and fill in.
2010-01-14 Andi Kleen <ak@linux.intel.com>
* config/i386/drivers-i386.c (detect_caches_intel):
Add l2sizekb parameter and fill in.
(host_detect_local_cpu): Add l2sizekb, fill in.
Add Atom small cache heuristic.
2010-01-14 Andi Kleen <ak@linux.intel.com>
* config/i386/drivers-i386.c (detect_caches_cpuid4):
Add level3 parameter and fill in.
(detect_caches_intel): Handle level3 cache.
2010-01-14 Andi Kleen <ak@linux.intel.com>
* config/i386/drivers-i386.c (host_detect_local_cpu):
Fix core duo detection.
2010-01-14 Andi Kleen <ak@linux.intel.com>
* config/i386/drivers-i386.c (host_detect_local_cpu):
Fix Atom detection.
sel-sched.c (mark_unavailable_hard_regs): Do not try to search available registers when failed to discover LHS register class.
2010-01-14 Alexander Monakov <amonakov@ispras.ru>
* sel-sched.c (mark_unavailable_hard_regs): Do not try to search
available registers when failed to discover LHS register class.
Fix indentation. Update comment.
re PR rtl-optimization/42389 (ICE in advance_state_on_fence with sel-schd for 175.vpr)
PR rtl-optimization/42389
* sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
to can_issue_more.
(advance_state_on_fence): Likewise.
(sel_target_adjust_priority): Print debug output only when
sched_verbose >= 4, not 2.
(get_expr_cost): Do not issue all unique insns on the next cycle.
(fill_insns): Initialize can_issue_more from the value saved
with the fence.
* sel-sched-ir.c (flist_add): New parameter issue_more.
Init FENCE_ISSUE_MORE with it.
(merge_fences): Likewise.
(init_fences): Update call to flist_add.
(add_to_fences, add_clean_fence_to_fences)
(add_dirty_fence_to_fences): Likewise.
(move_fence_to_fences): Update call to merge_fences.
(invoke_reorder_hooks): Do not reset can_issue_more on insns from
sched groups.
* sel-sched-ir.h (struct _fence): New field issue_more.
(FENCE_ISSUE_MORE): New accessor macro.
re PR rtl-optimization/42388 (ICE in move_bb_info with sel-sched and modulo-sched for 176.gcc)
PR rtl-optimization/42388
* sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
that have no predecessors nor successors. Do not call move_bb_info
for empty blocks outside of current region.
re PR rtl-optimization/39453 (ICE : in init_seqno, at sel-sched.c:6433)
2010-01-14 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/39453
PR rtl-optimization/42246
* sel-sched-ir.c (considered_for_pipelining_p): Do not test
for pipelining_p.
(sel_add_loop_preheaders): Add preheader to last_added_blocks.
re PR middle-end/42245 (ICE in verify_backedges for 197.parser with sel-sched)
2010-01-14 Andrey Belevantsev <abel@ispras.ru>
Alexander Monakov <amonakov@ispras.ru>
PR middle-end/42245
* sel-sched-ir.c (sel_recompute_toporder): New. Use it...
(maybe_tidy_empty_bb): ... here. Make static. Add new
argument. Update all callers.
(tidy_control_flow): ... and here. Recompute topological order
of basic blocks in region if necessary.
(sel_redirect_edge_and_branch): Change return type. Return true
if topological order might have been invalidated.
(purge_empty_blocks): Export and move from...
* sel-sched.c (purge_empty_blocks): ... here.
* sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
(maybe_tidy_empty_bb): Delete prototype.
(purge_empty_blocks): Declare.
re PR rtl-optimization/42294 (ICE in code_motion_path_driver for 416.gamess)
PR rtl-optimization/42294
* sel-sched.c (try_replace_dest_reg): When chosen register
and original register is the same, do not bail out early, but
still check all original insns for validity of replacing destination
register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
in this case.