Paul Thomas [Thu, 21 Jan 2010 20:38:51 +0000 (20:38 +0000)]
re PR fortran/42736 (Wrong-code with allocatable or pointer components in elemental functions)
2010-01-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42736
* trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
is required, turn any trailing array elements after a range
into ranges so that offsets can be calculated.
2010-01-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42736
* gfortran.dg/dependency_25.f90 : New test.
Martin Jambor [Thu, 21 Jan 2010 16:18:06 +0000 (17:18 +0100)]
re PR tree-optimization/42585 (SRA is not good for structure copies with one replacement any more)
2010-01-21 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42585
* tree-sra.c (struct access): New field grp_total_scalarization.
(dump_access): Dump the new field.
(should_scalarize_away_bitmap): New variable.
(cannot_scalarize_away_bitmap): Likewise.
(sra_initialize): Allocate new bitmaps.
(sra_deinitialize): Free new bitmaps.
(create_access_1): New function.
(create_access): Parts moved to create_access_1.
(type_consists_of_records_p): New function.
(completely_scalarize_record): Likewise.
(build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
(build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
(sort_and_splice_var_accesses): Hint groups with a total_scalarization
access.
(analyze_all_variable_accesses): Completely scalarize small eligible
records.
Janis Johnson [Thu, 21 Jan 2010 05:49:35 +0000 (05:49 +0000)]
tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
* tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
(TYPE_TRANSPARENT_AGGR): this, for union and record.
* calls.c (initialize argument_information): Handle it.
* c-common.c (handle_transparent_union_attribute): Use new name.
* c-decl.c (finish_struct): Ditto.
* c-typeck.c (type_lists_compatible_p): Ditto.
(convert_for_assignment): Use new name and also handle record.
* function.c (aggregate_value_p): Handle it.
(pass_by_reference): Ditto.
(assign_parm_data_types): Ditto.
* print-tree.c (print_node): Ditto.
* lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
* lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
* tree.c (first_field): New fn.
gcc/cp/
* mangle.c (write_type): Mangle transparent record as member type.
* semantics.c (begin_class_definition): Recognize decimal classes
and set TYPE_TRANSPARENT_AGGR.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r156106
Jason Merrill [Thu, 21 Jan 2010 01:58:53 +0000 (20:58 -0500)]
re PR c++/42338 ([c++0x] ICE on decltype usage with templates)
PR c++/42338
* mangle.c (write_expression): Handle tree codes that have extra
arguments in the middle-end.
* cp-demangle.c (d_print_comp): Fix array index printing.
Alexandre Oliva [Thu, 21 Jan 2010 00:42:02 +0000 (00:42 +0000)]
re PR other/42715 (output_operand: invalid expression as operand)
PR debug/42715
* var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
without a cselib val.
(count_uses): Accept MO_VAL_SET with no val on stores.
(add_stores): Likewise.
Jakub Jelinek [Thu, 21 Jan 2010 00:39:57 +0000 (01:39 +0100)]
var-tracking.c (check_value_val): Add a compile time assertion.
* var-tracking.c (check_value_val): Add a compile time assertion.
(dv_is_decl_p): Simplify.
(dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
gcc_assert if ENABLE_CHECKING.
Alexandre Oliva [Wed, 20 Jan 2010 22:57:20 +0000 (22:57 +0000)]
re PR debug/42782 (VTA missed location: parameter via stack)
PR debug/42782
* var-tracking.c: Include tree-flow.h.
(mem_dies_at_call): New.
(dataflow_set_preserve_mem_locs): Use it.
(dataflow_set_remove_mem_locs): Likewise.
(dump_var): Renamed from dump_variable. Adjust all callers.
(dump_var_slot): Renamed from dump_variable_slot. Likewise.
* Makefile.in (var-tracking.o): Adjust deps.
Jason Merrill [Wed, 20 Jan 2010 21:30:20 +0000 (16:30 -0500)]
re PR c++/40750 (Side-effect of member function call not produced in certain circumstances)
PR c++/40750
* decl.c (grokdeclarator): Clear type_quals for a member function
declared using a typedef. Don't complain about adding cv-quals
to a function typedef in C++0x mode.
Richard Guenther [Wed, 20 Jan 2010 12:30:15 +0000 (12:30 +0000)]
re PR tree-optimization/42717 (ice: verify_ssa failed)
2010-01-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/42717
* tree-ssa-dce.c (get_live_post_dom): Remove.
(forward_edge_to_pdom): Take an arbitrary edge to copy
degenerate PHI args from.
(remove_dead_stmt): Use the first post-dominator even if it
does not contain live statements as redirection destination.
Janis Johnson [Wed, 20 Jan 2010 11:57:44 +0000 (11:57 +0000)]
re PR libstdc++/21769 (per-file control over PCH inclusion)
2010-01-20 Janis Johnson <janis187@us.ibm.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/21769
* testsuite/lib/dg-options.exp (add_options_for_no_pch): Add.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Use it.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r156075
Jakub Jelinek [Wed, 20 Jan 2010 11:30:05 +0000 (12:30 +0100)]
sel-sched.c (create_speculation_check): Remove set but not used variable twin.
* sel-sched.c (create_speculation_check): Remove set but not used
variable twin.
(try_transformation_cache): Remove set but not used variable ds.
(calculate_privileged_insns): Remove set but not used variables
cur_insn and min_spec_insn.
(find_best_expr): Remove set but not used variable avail_n.
* tree-predcom.c (base_names_in_chain_on): Remove set but not used
variable e.
* cgraphunit.c (assemble_thunk): Remove set but not used variable
false_label.
* haifa-sched.c (remove_notes): Remove set but not used variable prev.
* graphite-clast-to-gimple.c (gloog): Remove set but not used variable
new_scop_exit_edge.
* decl.c (create_array_type_for_decl): Remove set but not used
variable error_msg. Remove break stmts after return stmts.
re PR bootstrap/42786 (Athlon SSE3 and Fx processors not supported by configure)
PR bootstrap/42786
* config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
cpu types. Add support for *-sse3 cpu types.
(x86_64-*-*): Ditto.
Jakub Jelinek [Wed, 20 Jan 2010 11:08:24 +0000 (12:08 +0100)]
re PR middle-end/42803 (c++ compilation hang)
PR middle-end/42803
* varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
argument, call initializer_constant_valid_p_1 instead of
initializer_constant_valid_p, pass CACHE to it, return NULL
immediately if first call returns NULL.
(initializer_constant_valid_p_1): New function.
(initializer_constant_valid_p): Use it.
Jakub Jelinek [Wed, 20 Jan 2010 08:13:50 +0000 (09:13 +0100)]
dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead of MOD...
* dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
(loc_list_from_tree): Don't handle unsigned division. Handle
signed modulo using DW_OP_{over,over,div,mul,minus}.
* unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
modulo instead of signed.
* gcc.dg/cleanup-13.c: Expect DW_OP_mod to do unsigned modulo instead
of signed, add a few new tests.
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.