Commit Graph

96428 Commits

Author SHA1 Message Date
Rafael Avila de Espindola 33662270d5 lto-plugin.c (message): New variable.
2009-10-16  Rafael Avila de Espindola  <espindola@google.com>

	* lto-plugin.c (message): New variable.
	(check): New function.
	(parse_table_entry, translate, write_resolution,add_output_files,
	exec_lto_wrapper,claim_file_handler, onload): Use check instead of
	assert.
	(cleanup_handler): Use check instead of assert. Remove the arguments
	file if it exists.

From-SVN: r152906
2009-10-16 15:25:13 +00:00
Richard Guenther 2ced58ea6f re PR lto/41598 (bootstrap *using* lto fails)
2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41598
	* gcc.dg/lto/20091016-1_0.c: New testcase.
	* gcc.dg/lto/20091016-1_1.c: Likewise.
	* gcc.dg/lto/20091016-1_a.h: Likewise.

From-SVN: r152904
2009-10-16 14:42:47 +00:00
Richard Guenther 35f1e9f475 re PR lto/41715 (VIEW_CONVERT_EXPR use for mismatched prevailing decl replacement doesn't work)
2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41715
	* lto-streamer-in.c (lto_input_tree_ref): Revert last change.
	(maybe_fixup_handled_component): New function.
	(input_gimple_stmt): Fixup mismatched decl replacements.

	lto/
	* lto.c (lto_fixup_tree): Revert last change.

	* gfortran.dg/lto/20091015-1_0.f: New testcase.
	* gfortran.dg/lto/20091015-1_1.f: Likewise.
	* gfortran.dg/lto/20091015-1_2.f: Likewise.

From-SVN: r152903
2009-10-16 14:23:22 +00:00
Richard Guenther 775dc6700b re PR middle-end/41713 (-O -flto -g: ICE in lto_output_tree_ref, at lto-streamer-out.c:732)
2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41713
	* lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
	the same as VAR_DECL.

	* gfortran.dg/lto/20091016-1_0.f90: New testcase.

From-SVN: r152902
2009-10-16 14:21:05 +00:00
Joel Sherrill ac2b9bbbd5 s-osinte-rtems.ads: Add mutex type to pthread_mutexattr_t
2009-10-16  Joel Sherrill <joel.sherrill@oarcorp.com>

	* s-osinte-rtems.ads: Add mutex type to pthread_mutexattr_t
	* s-stchop-rtems.adb: Correct binding to rtems_stack_checker_is_blown.

From-SVN: r152900
2009-10-16 13:33:53 +00:00
Richard Guenther f798226d9d gimple.c (iterative_hash_gimple_type): For integer types also hash their minimum and maximum values and the string flag.
2009-10-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_gimple_type): For integer types
	also hash their minimum and maximum values and the string flag.
	For array types hash their domain and the string flag.

From-SVN: r152899
2009-10-16 11:45:55 +00:00
Richard Guenther 021ed367a5 gimple.c (gimple_types_compatible_p): Restrict completing types to record or unions.
2009-10-16  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p): Restrict completing
	types to record or unions.  Simplify completion.
	Do not merge records or unions with different
	TYPE_STRUCTURAL_EQUALITY_P tag.
	(iterative_hash_gimple_type): Restrict non-recursing into
	pointer targets for records and unions.

From-SVN: r152898
2009-10-16 11:44:46 +00:00
Jakub Jelinek d02a5a4b9a re PR debug/41717 (internal compiler error: in expand_debug_expr)
PR debug/41717
	* cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
	* dwarf2out.c (mem_loc_descriptor): Don't handle
	POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
	punt if it is not lowpart subreg or if inner mode isn't
	MODE_INT.

	* gcc.dg/debug/pr41717.c: New test.

From-SVN: r152897
2009-10-16 12:43:18 +02:00
Andreas Krebbel 200ab6fd4b s390.c (s390_z10_optimize_cmp): Skip notes when investigating previous or next insns.
2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
	investigating previous or next insns.

From-SVN: r152896
2009-10-16 10:09:28 +00:00
Benjamin Kosnik 3808dfec58 re PR libstdc++/40654 ([C++0x] atomic.cc: 'd' is used uninitialized warning)
2009-10-15  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/40654
	PR libstdc++/40826
	* src/atomic.cc (atomic_flag_test_and_set_explicit): Add
	static_cast from base to derived.
	(atomic_flag_clear_explicit): Same.
	* include/bits/atomic_2.h (__atomic2::atomic_flag): Public derivation.
	Remove value type constructor.
	* include/bits/atomic_0.h (__atomic0::atomic_flag): Same.
	* include/std/future (_Future_state): Use ATOMIC_FLAG_INIT to
	initialized the atomic_flag member.

From-SVN: r152895
2009-10-16 07:47:33 +00:00
Jerry DeLisle a3e1ddfc64 Commit file missed in previous commit.
From-SVN: r152894
2009-10-16 07:08:52 +00:00
Eric Botcazou d7c79c4daa * tree-sra.c (build_ref_for_offset_1): Update comment.
From-SVN: r152893
2009-10-16 06:56:34 +00:00
Wolfgang Gellerich c68e7b8631 s390.md (atype): Added missing values.
2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.md (atype): Added missing values.

From-SVN: r152891
2009-10-16 06:21:47 +00:00
Paul Thomas 28188747cb re PR fortran/41648 ([OOP] Type-bound procedures refused)
2009-10-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41648
	PR fortran/41656
	* trans-expr.c (select_class_proc): Convert the expression for the
	vindex, carried on the first member of the esym list.
	* gfortran.h : Add the vindex field to the esym_list structure.
	and eliminate the class_object field.
	* resolve.c (check_class_members): Remove the setting of the
	class_object field.
	(vindex_expr): New function.
	(get_class_from_expr): New function.
	(resolve_class_compcall): Call the above to find the ultimate
	class or derived component.  If derived, do not generate the
	esym list.  Add and expression for the vindex to the esym list
	by calling the above.
	(resolve_class_typebound_call): The same.

2009-10-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41648
	* gfortran.dg/dynamic_dispatch_4.f03 : New test.

	PR fortran/41656
	* gfortran.dg/dynamic_dispatch_5.f03 : New test.

From-SVN: r152890
2009-10-16 06:07:09 +00:00
Daniel Gutson 8e200755cf ChangeLogs fixed, again.
From-SVN: r152888
2009-10-16 00:37:38 +00:00
GCC Administrator a2074f1494 Daily bump.
From-SVN: r152887
2009-10-16 00:16:49 +00:00
John David Anglin b1978a904a re PR target/41702 (FAIL: abi/demangle/abi_text/09.cc execution test)
PR target/41702
	* pa.md (casesi): Use sign extended index in call to
	gen_casesi64p.
	(casesi64p): Update pattern to reflect above.

From-SVN: r152882
2009-10-15 23:22:44 +00:00
Daniel Gutson f67c7a8f96 Fixed ChangeLog entries.
From-SVN: r152877
2009-10-15 22:32:31 +00:00
Steve Ellcey 4b2e464eb5 re PR rtl-optimization/41697 (ICE on gcc.c-torture/compile/20090917-1.c)
2009-10-15  Steve Ellcey  <sje@cup.hp.com>

	PR rtl-optimization/41697
	* sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.

From-SVN: r152872
2009-10-15 21:49:29 +00:00
H.J. Lu e25d3e6d0e Remove extra pathname.
From-SVN: r152869
2009-10-15 14:05:37 -07:00
Michael Meissner 1c9df37cd2 Fix 23983, add proper attributes to the altivec/vsx builtins
From-SVN: r152867
2009-10-15 20:50:40 +00:00
H.J. Lu 9017096f18 linux.h (ASM_SPEC): Add --32.
2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/linux.h (ASM_SPEC): Add --32.

From-SVN: r152865
2009-10-15 11:55:27 -07:00
Kaveh R. Ghazi fc5e3cd436 target-supports.exp (add_options_for_bind_pic_locally): New.
* lib/target-supports.exp (add_options_for_bind_pic_locally): New.
	* gcc.dg/tree-ssa/ipa-cp-1.c: Bind pic locally.

From-SVN: r152857
2009-10-15 18:09:59 +00:00
Steven G. Kargl f6ee328a5b Add the PR number for the ETIME/DTIME documentation change.
From-SVN: r152855
2009-10-15 17:31:36 +00:00
Steven G. Kargl 1feb1d7cce intrinsic.texi: Explicitly state that ETIME and DTIME take REAL(4) arguments.
2009-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	* intrinsic.texi: Explicitly state that ETIME and DTIME take
	REAL(4) arguments.  Fix nearby typographically errors where 
	/leq was used instead of \leq.

From-SVN: r152854
2009-10-15 17:28:04 +00:00
Jakub Jelinek 7613143b72 dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type and DW_TAG_template_alias.
* dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
	and DW_TAG_template_alias.
	(dwarf_attr_name): Handle DW_AT_main_subprogram,
	DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
	DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
	DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
	DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
	and DW_AT_GNU_odr_signature.
	(dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
	DW_FORM_flag_present and DW_FORM_ref_sig8.
	(output_signature): Only print name on the first byte.
	(output_die): Likewise for dw_val_class_data8.

	* include/dwarf2.h (DW_LANG_Python): Add comment that it is
	a DWARF 4 addition.

From-SVN: r152853
2009-10-15 18:40:52 +02:00
Alexander Monakov 83bb5ce30b invoke.texi: Clarify that most optimizations are not enabled without -O.
2009-10-15  Alexander Monakov  <amonakov@ispras.ru>

	* doc/invoke.texi: Clarify that most optimizations are not enabled
	without -O.

From-SVN: r152852
2009-10-15 20:10:49 +04:00
Richard Guenther 77785f4f7a re PR lto/41668 (ICE in get_alias_set, at alias.c:698)
2009-10-15  Richard Guenther  <rguenther@suse.de>

	PR lto/41668
	* gimple.c (compare_type_names_p): Handle anonymous names
	differently based on new mode argument.
	(gimple_types_compatible_p): For structs also compare the tags.
	(iterative_hash_type_name): Rename to ...
	(iterative_hash_name): ... this.  Hash all names.
	(iterative_hash_gimple_type): Fix hashing the struct tag of
	pointer targets.  Hash field decl names.

From-SVN: r152851
2009-10-15 16:04:29 +00:00
Richard Guenther 4c8160e78b re PR lto/41669 (Infinite recursion trying to build gcc)
2009-10-15  Richard Guenther  <rguenther@suse.de>

	PR lto/41669
	* gimple.c (gimple_get_alias_set): Avoid recursing on
	invalid type topology.

	* gcc.dg/lto/20091015-1_0.c: New testcase.
	* gcc.dg/lto/20091015-1_1.c: Likewise.
	* gcc.dg/lto/20091015-1_2.c: Likewise.
	* gcc.dg/lto/20091015-1_a.h: Likewise.
	* gcc.dg/lto/20091015-1_b.h: Likewise.

From-SVN: r152850
2009-10-15 16:03:32 +00:00
Steve Ellcey b8b6edc9d9 pr41555.c: Add -std=c99 option.
2009-10-15  Steve Ellcey  <sje@cup.hp.com>

	* gcc.dg/torture/pr41555.c: Add -std=c99 option.

From-SVN: r152848
2009-10-15 15:40:31 +00:00
Andrew Pinski 3f25460732 spu.c (get_branch_target): Use extract_asm_operands.
2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu.c (get_branch_target): Use extract_asm_operands.

From-SVN: r152847
2009-10-15 08:12:03 -07:00
Rafael Avila de Espindola b10071c5cf lto-plugin.c (resolution_file): New.
2009-10-15  Rafael Avila de Espindola  <espindola@google.com>

	* lto-plugin.c (resolution_file): New.
	(free_1): Update comment.
	(free_2): Free resolution_file.
	(write_resolution): Write resolution to specified file. Use the
	syms array from the symbol table.
	(all_symbols_read_handler): Delay call to free_1 past call to
	write_resolution.
	(process_option): Add a -resolution option.

From-SVN: r152846
2009-10-15 14:36:40 +00:00
Jim Blandy dda4416508 2009-10-15 Jim Blandy <jimb@red-bean.com>
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext)
	(dcgettext, ngettext, dngettext, dcngettext): Backport changes
	from current gettext to provide GCC format_arg attributes.

From-SVN: r152842
2009-10-15 08:56:02 +00:00
Richard Guenther 23503efce3 tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
2009-10-15  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.

From-SVN: r152841
2009-10-15 08:53:35 +00:00
Jakub Jelinek b44dd04358 option-defaults.h (OPTION_DEFAULT_SPECS): Don't add --with-tune{,-32,-64} configured default for -mtune if...
* config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
	add --with-tune{,-32,-64} configured default for -mtune if explicit
	-mcpu is used.

From-SVN: r152799
2009-10-15 09:34:25 +02:00
Benjamin Kosnik 49d60f14c0 authors.xml: Update.
2009-10-14  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/xml/authors.xml: Update.
	* doc/xml/manual/intro.xml: Move test section...
	* doc/xml/manual/appendix_porting.xml: ...here.
	* doc/xml/manual/diagnostics.xml: Edit.
	* doc/xml/manual/using.xml: Break out exception section.
	* doc/xml/manual/using_exceptions.xml: New.
	* doc/html: Regenerate.

From-SVN: r152797
2009-10-15 02:51:30 +00:00
Paolo Carlini 7fee263aa4 gnu.ver: Export the _S_construct<> helpers.
2009-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* config/abi/pre/gnu.ver: Export the _S_construct<> helpers.

From-SVN: r152796
2009-10-15 02:39:28 +00:00
DJ Delorie 186746591a h8300.c (F): New.
* config/h8300/h8300.c (F): New.
(Fpa): New.
(h8300_emit_stack_adjustment): Call them.
(push): Likewise.
(h8300_push_pop): Likewise.
(h8300_expand_prologue): Likewise.
* config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
(MUST_USE_SJLJ_EXCEPTIONS): Define.
(INCOMING_RETURN_ADDR_RTX): Define.
(INCOMING_FRAME_SP_OFFSET): Define.
(DWARF_CIE_DATA_ALIGNMENT): Define.

From-SVN: r152795
2009-10-14 22:30:48 -04:00
Paolo Carlini 5cab701369 basic_string.h (operator+=(initializer_list<>), [...]): Forward to the append overload taking a const CharT* pointer and a size...
2009-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/basic_string.h (operator+=(initializer_list<>),
	append(initializer_list<>)): Forward to the append overload taking
	a const CharT* pointer and a size, thus avoiding instantiating
	unnecessarily in the built library the overload taking a pair of
	iterators.
	(operator=(initializer_list<>), assign(initializer_list<>)): Likewise
	for assign.
	(insert(iterator, initializer_list<>): Likewise for insert.

From-SVN: r152794
2009-10-15 01:16:53 +00:00
GCC Administrator b2b5d6e34d Daily bump.
From-SVN: r152793
2009-10-15 00:17:03 +00:00
Paolo Carlini 1351c40132 c++config: Do not disable extern templates for string in plain parallel-mode and in...
2009-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/c++config: Do not disable extern templates for string
	in plain parallel-mode and in profile-mode; add comment explaining
	_GLIBCXX_EXTERN_TEMPLATE == -1.
	* testsuite/ext/profile/mutex_extensions.cc: Adjust dg-error line.

From-SVN: r152790
2009-10-15 00:01:05 +00:00
Paolo Carlini 4299992823 c++config: Do not disable extern templates for string in plain parallel-mode and in...
2009-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/c++config: Do not disable extern templates for string
	in plain parallel-mode and in profile-mode; add comment explaining
	_GLIBCXX_EXTERN_TEMPLATE == -1.

From-SVN: r152789
2009-10-14 23:50:09 +00:00
Jakub Jelinek 4c0a0455ea stor-layout.c (place_field): Don't emit -Wpadded warnings for fields in builtin structs.
* stor-layout.c (place_field): Don't emit -Wpadded warnings for
	fields in builtin structs.
	(finalize_record_size): Likewise.

	* obj-c++.dg/layout-1.mm: Don't xfail dg-bogus on lp64, change
	line from 1 to 0.
	* obj-c++.dg/bitfield-1.mm: Likewise.
	* obj-c++.dg/bitfield-4.mm: Likewise.

From-SVN: r152780
2009-10-14 23:30:19 +02:00
Richard Guenther 3e8c245c4e re PR lto/41173 ([LTO] internal error: builtin function to __builtin_spe_mtspefscr already processed)
2009-10-14  Richard Guenther  <rguenther@suse.de>

	PR lto/41173
	* gcc.dg/lto/20091014-1_0.c: New testcase.

From-SVN: r152778
2009-10-14 19:55:49 +00:00
Daniel Gutson 8cb32ff23b neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>

        gcc/
        * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds
        fixed.

        gcc/testsuite/
        * gcc.target/arm/neon/vfp-shift-a2t2.c: New test case.

From-SVN: r152777
2009-10-14 19:18:20 +00:00
Richard Guenther 88ca1146aa gimple.c (gtc_ob): New global.
2009-10-14  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gtc_ob): New global.
	(struct type_pair_d): Replace pointers with type UIDs.
	(type_pair_hash): Adjust.
	(type_pair_eq): Likewise.
	(lookup_type_pair): Likewise.  Allocate from an obstack.
	(gimple_force_type_merge): Adjust.
	(gimple_types_compatible_p): Likewise.
	(free_gimple_type_tables): Free the obstack.

From-SVN: r152776
2009-10-14 18:39:45 +00:00
Jakub Jelinek 0f66d09c1e re PR middle-end/41707 (g++.dg/plugin/attribute_plugin-test-1.C failed)
PR testsuite/41707
	* g++.dg/plugin/attribute_plugin-test-1.C: Expect the first
	warning on line 0 instead of 1.

From-SVN: r152773
2009-10-14 19:06:39 +02:00
Jakub Jelinek 4f2a9af862 tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug stmts setting DEBUG_EXPR_DECLs.
* tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
	stmts setting DEBUG_EXPR_DECLs.

	* cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
	Don't crash if mode1 is VOIDmode.

From-SVN: r152772
2009-10-14 19:05:45 +02:00
Vladimir Makarov 1833192f30 params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>

	* params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
	* params.h (IRA_LOOP_RESERVED_REGS): New
	* tree-pass.h (pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	* passes.c (pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	(pass_reginfo_init): Move before loop optimizations.
	* config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
	* common.opt (fira-loop-pressure): New.
	* toplev.h (flag_ira_loop_pressure): New.
	* rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New
	externals.
	* reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
	Make external and void type functions.
	(gate_subregs_of_mode_init, pass_subregs_of_mode_init,
	pass_subregs_of_mode_finish): Remove.
	* ira-costs.c (init_costs): Call init_subregs_of_mode.
	* regmove.c: Include ira.h.
	(regmove_optimize): Call ira_set_pseudo_classes after IRA based
	register pressure calculation in loops.
	* loop-invariant.c: Include REGS_H and ira.h.
	(struct loop_data): New members max_reg_pressure, regs_ref, and
	regs_live.
	(struct invariant): New member orig_regno.
	(curr_loop): New variable.
	(find_exits): Initialize regs_ref and regs_live.
	(create_new_invariant): Initialize orig_regno.
	(get_cover_class_and_nregs): New.
	(get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
	array.  Add code for flag_ira_loop_pressure.
	(gain_for_invariant): Make new_regs an array.  Add code for
	flag_ira_loop_pressure.
	(best_gain_for_invariant): Ditto.
	(set_move_mark): New parameter gain.  Use it for debugging output.
	(find_invariants_to_move): Make regs_needed and new_regs an array.
	Add code for flag_ira_loop_pressure.
	(move_invariant_reg): Set up orig_regno.
	(move_invariants): Set up reg classes for pseudos for
	flag_ira_loop_pressure.
	(free_loop_data): Clear regs_ref and regs_live.
	(curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
	get_regno_cover_class, change_pressure, mark_regno_live,
	mark_regno_death, mark_reg_store, mark_reg_clobber,
	mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
	(move_loop_invariants): Calculate pressure.  Initialize curr_loop.
	* ira.c (ira): Call ira_set_pseudo_classes after IRA based
	register pressure calculation in loops if new regs were added.
	Call finish_subregs_of_mode.
	* opts.c (decode_options): Set up flag_ira_loop_pressure.
	* Makefile.in (loop-invariant.o): Add ira.h.
	(regmove.o): Ditto.
	* doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
	Describe.
	* doc/tm.texi (STACK_REG_COVER_CLASS): Describe.

From-SVN: r152770
2009-10-14 16:24:11 +00:00
Richard Guenther 200c8750d6 lto-symtab.c (lto_symtab_compatible): Fold in ...
2009-10-14  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_compatible): Fold in ...
	(lto_symtab_merge): ... here.  Rewrite both to take the
	prevailing and a to-be-merged entry and to queue diagnostics
	properly.
	(lto_symtab_resolve_replaceable_p): New predicate for
	symbol resolution.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_resolve_symbols): Rewrite.  Fold in code that
	handles merging commons by choosing the largest decl.  Fold
	in code that gives ODR errors.
	(lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
	diagnostics here.
	(lto_symtab_merge_decls_1): Re-structure.  Deal with the
	case of no prevailing decl here.  Diagnose mismatches
	in object types here.  Drop all but the prevailing decls.
	(lto_symtab_prevailing_decl): Return the single prevailing decl.
	* lto-streamer-in.c (lto_input_tree_ref): Deal with
	VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.

	lto/
	* lto.c (lto_fixup_tree): In case the prevailing decl is not
	compatible with the one we replace wrap it around a
	VIEW_CONVERT_EXPR.

From-SVN: r152768
2009-10-14 14:14:44 +00:00