2009-12-09 Matthias Klose <doko@ubuntu.com>
* include/private/gc_locks.h: For __ARM_EABI__ define
GC_test_and_set GC_clear to use the atomic builtins.
From-SVN: r155198
PR tree-optimization/42027
* dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
falling through.
From-SVN: r155196
2009-12-12 Richard Guenther <rguenther@suse.de>
* tree.c (need_assembler_name_p): Abstract decls do not need
an assembler name.
* dwarf2out.c (dwarf2out_abstract_function): Preserve
DECL_ABSTRACT properly.
From-SVN: r155189
2009-12-11 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (lto_input_tree_ref): Do not register
DEBUG_EXPR_DECLs with the varpool.
From-SVN: r155182
2009-12-11 Daniel Franke <franke.daniel@gmail.com>
PR fortran/40290
* expr.c (gfc_type_convert_binary): Added warn-on-conversion flag,
passed on to gfc_convert_type_warn() instead of gfc_convert_type();
enabled warnings on all callers but ...
* arith.c (eval_intrinsic): Disabled warnings on implicit type
conversion.
* gfortran.h gfc_type_convert_binary): Adjusted prototype.
From-SVN: r155179
2009-12-11 Richard Guenther <rguenther@suse.de>
PR lto/41658
PR lto/41657
* lto-streamer-out.c (write_global_stream): Do not make decls
weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
Make sure to mark all decls that we have written.
From-SVN: r155174
2009-12-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/22634, DR 539 [Ready]
* include/bits/stl_numeric.h (adjacent_difference): Use std::move
at the end of the loop body, per the Ready resolution.
* include/std/numeric: Do not include unnecessarily <cstddef>.
* doc/xml/manual/intro.xml: Add an entry for DR 539.
From-SVN: r155173
2009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
PR target/36047
* config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
not used by glibc/uclibc and does not work with large binaries.
From-SVN: r155165
2009-12-11 Richard Guenther <rguenther@suse.de>
PR lto/41915
* lto-lang.c (lto_init_options): Initialize flag_complex_method
to the C99 default. Do not set flag_unit_at_a_time.
From-SVN: r155164
gcc/fortran/
2009-12-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/42335
* symbol.c (select_type_insert_tmp): Add an extra check for
error recovery.
gcc/testsuite/
2009-12-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/42335
* gfortran.dg/select_type_11.f03: New test.
From-SVN: r155162
PR c++/42317
* cgraph.h (struct cgraph_node): Add same_comdat_group field.
* cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
circular list.
(cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
node->same_comdat_group.
* ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
mark all its same_comdat_group nodes as also reachable.
(cgraph_externally_visible_p): Return true even if any of
same_comdat_group nodes has address taken.
* lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
(output_cgraph): Ensure other same_comdat_group nodes are also
included.
(input_node): Stream in same_comdat_group.
(input_cgraph_1): Fix up same_comdat_group fields from references
to pointers.
* cgraphunit.c (cgraph_analyze_functions): Mark all other
same_comdat_group nodes as reachable.
(cgraph_mark_functions_to_output): For each node->process process
also other same_comdat_group nodes.
* ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
with same_comdat_group non-NULL.
(cgraph_mark_inline_edge): Likewise.
* decl2.c (cp_write_global_declarations): Clear DECL_EXTERNAL
also on all other functions in the same comdat group.
* optimize.c (maybe_clone_body): Also optimize virtual implicit
dtors. For virtual comdat dtors tell cgraph that base and deleting
dtor are in the same comdat group.
* config/abi/pre/gnu.ver: Don't export certain base dtors that
weren't previously exported.
* g++.dg/opt/dtor2.C: New test.
* g++.dg/opt/dtor2.h: New file.
* g++.dg/opt/dtor2-aux.cc: New file.
From-SVN: r155143
PR rtl-opt/42216
* regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
HOST_BITS_PER_WIDE_INT.
(verify_reg_in_set): New function, broken out of verify_reg_tracked.
(verify_reg_tracked): Use it.
(scan_rtx_reg): When seeing a use involving a superset of the
registers in an existing chain, enlarge that chain. Otherwise,
allow subsets and set fail_current_block for all other kinds of
overlap.
(hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
Do not modify operands when the bit with the corresponding number
is set in that bitmap.
(build_def_use): When we see matching operands with different
modes, don't set fail_current_block, but keep track of such
operands in a bitmap if their registers aren't already tracked
in an open chain. Pass this bitmap to all hide_operands calls.
From-SVN: r155134