Commit Graph

99682 Commits

Author SHA1 Message Date
Shujing Zhao
8cdea6ab13 re PR c++/43779 (Parts of message not available for translation)
2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c++/43779
        * typeck.c (warn_args_num): New function.
        (convert_arguments): Use warn_args_num to print the diagnostic
        messages.

From-SVN: r158919
2010-04-30 06:16:26 +00:00
Fabien Chêne
10ab8f62db re PR c++/43890 (invalid uninitialized reference in class)
PR c++/43890
	* init.c (diagnose_uninitialized_cst_or_ref_member): check for
	user-provided constructor while recursing.

From-SVN: r158918
2010-04-30 00:23:00 -04:00
GCC Administrator
1b5e827bae Daily bump.
From-SVN: r158917
2010-04-30 00:17:39 +00:00
Jan Hubicka
49ba818011 gengtype.c (open_base_files): Add lto-streamer.h
* gengtype.c (open_base_files): Add lto-streamer.h
	* cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
	(pass_ipa_cp): GGC collect.
	* toplev. (compile_file): Do not output symbols.
	* ipa-inline.c (pass_ipa_inline): Add ggc collect.
	* timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
	TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
	* lto-section-in.c: Include ggc.h
	(lto_new_in_decl_state): Alloc in GGC.
	(lto_delete_in_decl_state): Likewise.
	* ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program): Collect.

	* lto/lto.c (lto_read_in_decl_state): Use GGC.
	(lto_wpa_write_files): Announce what we are writting.
	(all_file_decl_data): New.
	(read_cgraph_and_symbols): Use GGC; correct timevars.
	(do_whole_program_analysis): Collect.
	* lto/Make-lang.in (lto.o): Fix dependency.
	* Makefile.in (GTFILES): Add lto-streamer.h.
	* varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
	(varpool_assemble_pending_decls): Use VAROUT.
	* lto-streamer.h (lto_tree_ref_table): Annotate.
	(lto_in_decl_state): Annotate.
	(lto_file_decl_data): Annotate.

From-SVN: r158912
2010-04-29 22:44:18 +00:00
Bernd Schmidt
5a7338267d re PR target/42895 (Low registers are preferred than register ip in thumb2 mode)
PR target/42895
	* doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
	ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
	(HONOR_REG_ALLOC_ORDER): Describe new macro.
	* ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
	* ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
	account only if HONOR_REG_ALLOC_ORDER is not defined.
	* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
	* system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.

From-SVN: r158911
2010-04-29 21:37:01 +00:00
Paul Thomas
eece1eb9ac [multiple changes]
2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43896
	* symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
	initializers for PPC members of the vtabs.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42274
	* symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
	attribute for all PPC members of the vtypes.
	(copy_vtab_proc_comps): Copy the correct interface.
	* trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
	* trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
	a dummy argument and make sure all PPC members of the vtab are
	initialized correctly.
	(gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
	in call to gfc_trans_assign_vtab_procs.
	* trans-stmt.c (gfc_trans_allocate): Ditto.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43326
	* resolve.c (resolve_typebound_function): Renamed
	resolve_class_compcall.Do all the detection of class references
	here.
	(resolve_typebound_subroutine): resolve_class_typebound_call
	renamed. Otherwise same as resolve_typebound_function.
	(gfc_resolve_expr): Call resolve_typebound_function.
	(resolve_code): Call resolve_typebound_subroutine.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43492
	* resolve.c (resolve_typebound_generic_call): For CLASS methods
	pass back the specific symtree name, rather than the target
	name.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42353
	* resolve.c (resolve_structure_cons): Make the initializer of
	the vtab component 'extends' the same type as the component.

2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42680
	* interface.c (check_interface1): Pass symbol name rather than NULL to
	gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
	trap MULL. (gfc_compare_derived_types): Revert previous change
	incorporated incorrectly during merge from trunk, r155778.
	* resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
	than NULL to gfc_compare_interfaces.
	* symbol.c (add_generic_specifics): Likewise.

2010-02-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42353
	* interface.c (gfc_compare_derived_types): Add condition for vtype.
	* symbol.c (gfc_find_derived_vtab): Sey access to private.
	(gfc_find_derived_vtab): Likewise.
	* module.c (ab_attribute): Add enumerator AB_VTAB.
	(mio_symbol_attribute): Use new attribute, AB_VTAB.
	(check_for_ambiguous): Likewise.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41829
	* trans-expr.c (select_class_proc): Remove function.
	(conv_function_val): Delete reference to previous.
	(gfc_conv_derived_to_class): Add second argument to the call to
	gfc_find_derived_vtab.
	(gfc_conv_structure): Exclude proc_pointer components when
	accessing $data field of class objects.
	(gfc_trans_assign_vtab_procs): New function.
	(gfc_trans_class_assign): Add second argument to the call to
	gfc_find_derived_vtab.
	* symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
	implement holding off searching for the vptr derived type.
	(add_proc_component): New function.
	(add_proc_comps): New function.
	(add_procs_to_declared_vtab1): New function.
	(copy_vtab_proc_comps): New function.
	(add_procs_to_declared_vtab): New function.
	(void add_generic_specifics): New function.
	(add_generics_to_declared_vtab): New function.
	(gfc_find_derived_vtab): Add second argument to the call to
	gfc_find_derived_vtab. Add the calls to
	add_procs_to_declared_vtab and add_generics_to_declared_vtab.
	* decl.c (build_sym, build_struct): Use new arg in calls to
	gfc_build_class_symbol.
	* gfortran.h : Add vtype bitfield to symbol_attr. Remove the
	definition of struct gfc_class_esym_list. Modify prototypes
	of gfc_build_class_symbol and gfc_find_derived_vtab.
	* trans-stmt.c (gfc_trans_allocate): Add second argument to the
	call to gfc_find_derived_vtab.
	* module.c : Add the vtype attribute.
	* trans.h : Add prototype for gfc_trans_assign_vtab_procs.
	* resolve.c (resolve_typebound_generic_call): Add second arg
	to pass along the generic name for class methods.
	(resolve_typebound_call): The same.
	(resolve_compcall): Use the second arg to carry the generic
	name from the above. Remove the reference to class_esym.
	(check_members, check_class_members, resolve_class_esym,
	hash_value_expr): Remove functions.
	(resolve_class_compcall, resolve_class_typebound_call): Modify
	to use vtable rather than member by member calls.
	(gfc_resolve_expr): Modify second arg in call to
	resolve_compcall.
	(resolve_select_type): Add second arg in call to
	gfc_find_derived_vtab.
	(resolve_code): Add second arg in call resolve_typebound_call.
	(resolve_fl_derived): Exclude vtypes from check for late
	procedure definitions. Likewise for checking of explicit
	interface and checking of pass arg.
	* iresolve.c (gfc_resolve_extends_type_of): Add second arg in
	calls to gfc_find_derived_vtab.
	* match.c (select_type_set_tmp): Use new arg in call to
	gfc_build_class_symbol.
	* trans-decl.c (gfc_get_symbol_decl): Complete vtable if
	necessary.
	* parse.c (endType): Finish incomplete classes.


2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42274
	* gfortran.dg/class_16.f03: New test.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42274
	* gfortran.dg/class_15.f03: New.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/43326
	* gfortran.dg/dynamic_dispatch_9.f03: New test.

2010-04-29  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43492
	* gfortran.dg/generic_22.f03 : New test.

2010-04-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/42353
	* gfortran.dg/class_14.f03: New test.

2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/42680
	* gfortran.dg/interface_32.f90: New test.

2009-04-29  Paul Thomas  <pault@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41829
	* gfortran.dg/dynamic_dispatch_5.f03 : Change to "run".
	* gfortran.dg/dynamic_dispatch_7.f03 : New test.
	* gfortran.dg/dynamic_dispatch_8.f03 : New test.

From-SVN: r158910
2010-04-29 19:10:48 +00:00
H.J. Lu
716a34815b Correct entry of fix for PR bootstrap/43936.
From-SVN: r158909
2010-04-29 10:55:00 -07:00
Jon Grant
7c6d86cc07 collect2.c (vflag): Change type from int to bool.
2010-04-29  Jon Grant <04@jguk.org>
	
	* collect2.c (vflag): Change type from int to bool.
	(debug): Likewise.
	(helpflag): New global bool.
	(main): Set vflag and debug with boolean, not integer truth
	values.  Accept new "--help" option and output usage text if
	found.
	* collect2.h (vflag): Update prototype.
	(debug): Likewise.

From-SVN: r158908
2010-04-29 17:42:54 +00:00
H.J. Lu
55040b34cd Move flag_plugin_added out of invoke_plugin_callbacks.
2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/43935
	* plugin.h (flag_plugin_added): Moved out of
	invoke_plugin_callbacks.

From-SVN: r158905
2010-04-29 09:29:10 -07:00
Richard Guenther
46e70c4ead re PR bootstrap/43935 (Bootstrap failure: cc1: all warnings being treated as errors)
2010-04-29  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/43935
	* plugin.h (invoke_plugin_callbacks): Annotate arguments
	with ATTRIBUTE_UNUSED.

From-SVN: r158901
2010-04-29 14:10:39 +00:00
H.J. Lu
0d0539f0a8 Replace INSN_P with NONDEBUG_INSN_P.
2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/43921
	* config/i386/i386.c (get_some_local_dynamic_name): Replace
	INSN_P with NONDEBUG_INSN_P.
	(distance_non_agu_define): Likewise.
	(distance_agu_use): Likewise.

From-SVN: r158900
2010-04-29 05:51:09 -07:00
Bernd Schmidt
8e5f0b494b re PR bootstrap/43858 (Bootstrap failure for powerpc-apple-darwin9: cannot compute suffix of object files)
From Dominique d'Humieres <dominiq@lps.ens.fr>
	PR bootstrap/43858
	* ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
	test_set.

From-SVN: r158898
2010-04-29 11:04:30 +00:00
Martin Jambor
f3d1b157cf Adde a missing Changelog entry to describe a change in
gcc/lto-streamer-in.c committed yesterday.

From-SVN: r158897
2010-04-29 12:46:20 +02:00
Brian Hackett
efda38075b plugin.h (invoke_plugin_callbacks): New inline function.
2010-04-29  Brian Hackett   <bhackett1024@gmail.com>

	* plugin.h (invoke_plugin_callbacks): New inline function.
	* plugin.c (flag_plugin_added): New global flag.
	(add_new_plugin): Initialize above flag.
	(invoke_plugin_callbacks): Rename to ...
	(invoke_plugin_callbacks_full): ... this.

From-SVN: r158896
2010-04-29 09:01:56 +00:00
Jan Hubicka
2942c502ee * lto-symtab.c (lto_symtab_entry_def) Add vnode.
(lto_varpool_replace_node): New.
	(lto_symtab_resolve_symbols): Resolve varpool nodes.
	(lto_symtab_merge_decls_1): Prefer decls with varpool node.
	(lto_symtab_merge_cgraph_nodes_1): Merge varpools.
	* cgraph.h (varpool_node_ptr): New type.
	(varpool_node_ptr): New vector.
	(varpool_node_set_def): New structure.
	(varpool_node_set): New type.
	(varpool_node_set): New vector.
	(varpool_node_set_element_def): New structure.
	(varpool_node_set_element, const_varpool_node_set_element): New types.
	(varpool_node_set_iterator): New type.
	(varpool_node): Add prev pointers, add used_from_other_partition,
	in_other_partition.
	(varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
	varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
	varpool_get_node, varpool_remove_node): Declare.
	(vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
	varpool_node_set_size): New inlines.
	* cgraph.c (dump_cgraph_node): Dump asm names of aliases.
	* tree-pass.h (varpool_node_set_def): Forward declare.
	(ipa_opt_pass_d): Summary writting takes vnode sets too.
	(ipa_write_optimization_summaries): Update prototype.
	* ipa-cp.c (ipcp_write_summary): Update.
	* ipa-reference.c (ipa_reference_write_summary): Update.
	* lto-cgraph.c (lto_output_varpool_node): New static function.
	(output_varpool): New function.
	(input_varpool_node): New static function.
	(input_varpool_1): New function.
	(input_cgraph): Input varpool.
	* ipa-pure-const.c (pure_const_write_summary): Update.
	* lto-streamer-out.c (lto_output): Update, output varpool too.
	(write_global_stream): Kill WPA hack.
	(produce_asm_for_decls): Update.
	(output_alias_pair_p): Handle variables.
	(output_unreferenced_globals): Output only needed partition of varpool.
	* ipa-inline.c (inline_write_summary): Update.
	* lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build cgraph.
	* lto-section-in.c (lto_section_name): Add varpool and jump funcs.
	* ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
	varpool_node_set_new, varpool_node_set_add,
	varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
	debug_varpool_node_set): New functions.
	* passes.c (rest_of_decl_compilation): when in LTO do not finalize.
	(execute_one_pass): Process new decls too.
	(ipa_write_summaries_2): Pass around vsets.
	(ipa_write_summaries_1): Likewise.
	(ipa_write_summaries): Build vset; be more selective about cgraph nodes
	to add.
	(ipa_write_optimization_summaries_1): Pass around vsets.
	(ipa_write_optimization_summaries): Likewise.
	* varpool.c (varpool_get_node): New.
	(varpool_node): Update doubly linked lists.
	(varpool_remove_node): New.
	(dump_varpool_node): More dumping.
	(varpool_enqueue_needed_node): Update doubly linked lists.
	(decide_is_variable_needed): Kill ltrans hack.
	(varpool_finalize_decl): Kill lto hack.
	(varpool_assemble_decl): Skip decls in other partitions.
	(varpool_assemble_pending_decls): Update doubly linkes lists.
	(varpool_empty_needed_queue): Likewise.
	(varpool_extra_name_alias): Likewise.
	* lto-streamer.c (lto_get_section_name): Add vars section.
	* lto-streamer.h (lto_section_type): Update.
	(output_varpool, input_varpool): Declare.

	* lto.c (lto_varpool_node_sets): New.
	(lto_1_to_1_map): Partition varpool too.
	(globalize_context_t, globalize_cross_file_statics,
	lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
	lto_scan_statics_in_remaining_global_vars): Remove.
	(lto_promote_cross_file_statics): Rewrite.
	(get_filename_for_set): Take vset argument.
	(lto_wpa_write_files): Pass around vsets.

From-SVN: r158854
2010-04-29 07:10:38 +00:00
Eric Botcazou
74ca33936f Fix long lines
From-SVN: r158853
2010-04-29 06:31:10 +00:00
Mike Stump
da7f26979c darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
* config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for
	now.

Fixes stubify-1.mm on i686-apple-darwin*.

From-SVN: r158852
2010-04-29 03:18:30 +00:00
Mike Stump
a143bf2747 uninit-pred-1_b.C: Use dg-message instead of dg-excess-errors.
* g++.dg/uninit-pred-1_b.C: Use dg-message instead of
	dg-excess-errors.
	* g++.dg/uninit-pred-2_b.C: Likewise.

From-SVN: r158851
2010-04-29 03:00:36 +00:00
GCC Administrator
ca83a44925 Daily bump.
From-SVN: r158850
2010-04-29 00:17:07 +00:00
Tobias Burnus
a10da38141 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        PR fortran/43919
        * simplify.c (simplify_cobound): Handle scalar coarrays.

2010-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        PR fortran/43919
        * gfortran.dg/coarray_11.f90: Add scalar-coarrays test case.

From-SVN: r158843
2010-04-28 22:43:18 +02:00
Eric Botcazou
91eace2bff lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for record or union type with RECORD_OR_UNION_TYPE_P predicate.
* lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
	record or union type with RECORD_OR_UNION_TYPE_P predicate.
	(lto_input_ts_type_tree_pointers): Likewise.
	* lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
	(lto_output_ts_type_tree_pointers): Likewise.

From-SVN: r158841
2010-04-28 20:03:02 +00:00
Matthias Klose
ab6edba459 plugin.exp: Run the plugindir tests.
2010-04-28  Matthias Klose  <doko@ubuntu.com>

        * gcc.dg/plugin/plugin.exp: Run the plugindir tests.
        * gcc.dg/plugindir1.c: Move to gcc.dg/plugin/plugindir1.c.
        * gcc.dg/plugindir2.c: Move to gcc.dg/plugin/plugindir2.c.
        * gcc.dg/plugindir3.c: Move to gcc.dg/plugin/plugindir3.c.
        * gcc.dg/plugindir4.c: Move to gcc.dg/plugin/plugindir4.c.

From-SVN: r158840
2010-04-28 19:25:58 +00:00
Eric Botcazou
20225a9bec Fix nits
From-SVN: r158839
2010-04-28 19:17:45 +00:00
Eric Botcazou
8478130d94 Uniquization of constants at the Tree level
Uniquization of constants at the Tree level
	* tree.h (DECL_IN_CONSTANT_POOL): New macro
	(tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
	bit to the end.
	(tree_output_constant_def): Declare.
	* gimplify.c (gimplify_init_constructor): When using block copy,
	uniquize the constant constructor on the RHS.
	* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal
	with DECL_IN_CONSTANT_POOL flag.
	* lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
	* varasm.c (make_decl_rtl): Deal with variables belonging to the
	global constant pool.
	(assemble_variable): Deal with symbols belonging to the tree constant
	pool.
	(get_constant_section): Add ALIGN parameter and simplify.
	(build_constant_desc): Build a VAR_DECL and attach it to the symbol.
	(assemble_constant_contents): Use the expression of the VAR_DECL.
	(output_constant_def_contents): Use the alignment of the VAR_DECL.
	(tree_output_constant_def): New global function.
	(mark_constant): Use the expression of the VAR_DECL.
	(place_block_symbol): Use the alignment of the VAR_DECL and the size
	of its expression.
	(output_object_block): Likewise and assemble the expression.
ada/
	* gcc-interface/trans.c (gnat_gimplify_expr) <ADDR_EXPR>: Uniquize
	constant constructors before taking their address.

From-SVN: r158838
2010-04-28 19:11:50 +00:00
Eric Botcazou
331c7fcdd0 lto-streamer.c [...] (tree_htab, [...]): New tree hash table.
* lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
	hash_tree, eq_tree): New tree hash table.
	(lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
	[LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
	lto_orig_address_remove): Reimplement.

From-SVN: r158836
2010-04-28 19:01:00 +00:00
Xinliang David Li
34f97b9407 predicate aware uninitialized analysis
From-SVN: r158835
2010-04-28 17:41:31 +00:00
Uros Bizjak
85fac79c20 elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object type if available.
* config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
	type if available.

From-SVN: r158834
2010-04-28 18:56:24 +02:00
Rainer Orth
902a51a10d re PR target/22224 (Several Tru64 UNIX testsuite failures: Length of .lcomm was less than 1)
PR target/22224
	* config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.

From-SVN: r158831
2010-04-28 16:24:28 +00:00
Martin Jambor
e33c6cd6af cgraph.h (struct cgraph_node): New field indirect_calls.
2010-04-28  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (struct cgraph_node): New field indirect_calls.
	(struct cgraph_indirect_call_info): New type.
	(struct cgraph_edge): Removed field indirect_call. New fields
	indirect_info, indirect_inlining_edge and indirect_unknown_callee.
	(cgraph_create_indirect_edge): Declare.
	(cgraph_make_edge_direct): Likewise.
	(enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
	* ipa-prop.h (struct ipa_param_call_note): Removed.
	(struct ipa_node_params): Removed field param_calls.
	(ipa_create_all_structures_for_iinln): Declare.
	* cgraph.c: Described indirect edges and uids in initial comment.
	(cgraph_add_edge_to_call_site_hash): New function.
	(cgraph_edge): Search also among the indirect edges, use
	cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
	(cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
	one, use cgraph_add_edge_to_call_site_hash to add edges to the call
	site hash.
	(initialize_inline_failed): Assign a reason to indirect edges.
	(cgraph_create_edge_1): New function.
	(cgraph_create_edge): Moved some functionality to
	cgraph_create_edge_1.
	(cgraph_create_indirect_edge): New function.
	(cgraph_edge_remove_callee): Add an assert checking for
	non-indirectness.
	(cgraph_edge_remove_caller): Special-case indirect edges.
	(cgraph_remove_edge): Likewise.
	(cgraph_set_edge_callee): New function.
	(cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
	(cgraph_make_edge_direct): New function.
	(cgraph_update_edges_for_call_stmt_node): Do nothing only when also
	the declaration of the call statement matches.
	(cgraph_node_remove_callees): Special-case indirect edges.
	(cgraph_clone_edge): Likewise.
	(cgraph_clone_node): Clone also the indirect edges.
	(dump_cgraph_node): Dump indirect_inlining_edge flag instead of
	indirect_call, dump count of indirect_calls edges.
	* ipa-prop.c (iinlining_processed_edges): New variable.
	(ipa_note_param_call): Create indirect edges instead of
	creating notes.  New parameter node.
	(ipa_analyze_call_uses): New parameter node, pass it on to
	ipa_note_param_call.
	(ipa_analyze_stmt_uses): Likewise.
	(ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
	(print_edge_addition_message): Work on edges rather than on notes.
	(update_call_notes_after_inlining): Likewise, renamed to
	update_indirect_edges_after_inlining.
	(ipa_create_all_structures_for_iinln): New function.
	(ipa_free_node_params_substructures): Do not free notes.
	(ipa_edge_duplication_hook): Propagate bits within
	iinlining_processed_edges bitmap.
	(ipa_node_duplication_hook): Do not duplicate notes.
	(free_all_ipa_structures_after_ipa_cp): Renamed to
	ipa_free_all_structures_after_ipa_cp.
	(free_all_ipa_structures_after_iinln): Renamed to
	ipa_free_all_structures_after_iinln.g
	(ipa_write_param_call_note): Removed.
	(ipa_read_param_call_note): Removed.
	(ipa_write_indirect_edge_info): New function.
	(ipa_read_indirect_edge_info): Likewise.
	(ipa_write_node_info): Do not stream notes, do stream information
	in indirect edges.
	(ipa_read_node_info): Likewise.
	(lto_ipa_fixup_call_notes): Removed.
	* ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
	* ipa-inline.c (pass_ipa_inline): Likewise.
	* cgraphunit.c (verify_cgraph_node): Check also indirect edges.
	* cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
	* tree-inline.c (copy_bb): Removed an unnecessary double check for
	is_gimple_call.
	* tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
	edges.
	* lto-cgraph.c (output_outgoing_cgraph_edges): New function.
	(output_cgraph): Stream also indirect edges.
	(lto_output_edge): Added capability to stream indirect edges.
	(input_edge): Likewise.
	(input_cgraph_1): Likewise.

	* testsuite/gcc.dg/lto/20091209-1_0.c: New testcase.

From-SVN: r158827
2010-04-28 16:05:54 +02:00
Richard Guenther
18abb35edf re PR tree-optimization/43879 (-fipa-pta causes various miscompilations)
2010-04-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	PR tree-optimization/43909
	* tree-ssa-structalias.c (struct variable_info): Add
	only_restrict_pointers flag.
	(new_var_info): Initialize it.  Increment stats.total_vars here.
	(create_function_info_for): Do not increment stats.total_vars
	here.
	(get_function_part_constraint): Fix build with C++.
	(insert_into_field_list): Remove.
	(push_fields_onto_fieldstack): Properly merge fields.
	(create_variable_info_for): Split and simplify.
	(create_variable_info_for_1): New piece.
	(intra_create_variable_infos): Properly make restrict constraints
	from parameters.

	* gcc.dg/ipa/ipa-pta-14.c: Adjust.

From-SVN: r158825
2010-04-28 11:51:31 +00:00
Richard Guenther
c718820a97 re PR middle-end/43880 (internal compiler error: in make_decl_rtl)
2010-04-28  Richard Guenther  <rguenther@suse.de>

	PR c++/43880
	* tree-inline.c (copy_bind_expr): Also copy bind expr vars
	value-exprs.

	* g++.dg/torture/pr43880.C: New testcase.

From-SVN: r158824
2010-04-28 10:28:24 +00:00
Manuel López-Ibáñez
4b414c93f0 re PR c++/9335 (repeated diagnostic when maximum template depth is exceeded)
2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/9335
cp/
        * error.c (print_instantiation_partial_context_line): Handle
	recursive instantiation.
        (print_instantiation_partial_context): Likewise.

testsuite/
        * g++.dg/template/recurse2.C: Update
        * g++.dg/template/recurse.C: Update.
        * g++.dg/template/pr23510.C: Update.
        * lib/prune.exp: Filter out 'recursively instantiated'.

From-SVN: r158823
2010-04-28 08:34:01 +00:00
Jason Merrill
012e6a1e04 * init.c (perform_member_init): Check CLASS_TYPE_P.
From-SVN: r158822
2010-04-27 21:45:00 -04:00
GCC Administrator
a8ae19777a Daily bump.
From-SVN: r158821
2010-04-28 00:18:42 +00:00
Fabien Chêne
31d1aceca6 re PR c++/29043 (Constructor for POD type with const member without member initializer accepted)
PR c++/29043
	* init.c (perform_member_init): check for uninitialized const or
	reference members, including array types.

From-SVN: r158817
2010-04-27 20:03:21 -04:00
Jonathan Wakely
928fe27c82 re PR libstdc++/43865 (C++ in freestanding environment)
2010-04-27  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/43865
	* include/c_global/cstdlib (abort, exit): _GLIBCXX_NORETURN typo.

From-SVN: r158812
2010-04-27 23:54:13 +01:00
Eric Botcazou
4cbd3309af Remove bogus hunk in previous commit
From-SVN: r158811
2010-04-27 22:02:36 +00:00
Jason Merrill
294e855f96 tree.c (get_fns): Split out from get_first_fn.
* tree.c (get_fns): Split out from get_first_fn.
	* cp-tree.h: Declare it.
	* search.c (shared_member_p): Use it.
	* semantics.c (finish_qualified_id_expr): Simplify.
	(finish_id_expression): Simplify.

From-SVN: r158810
2010-04-27 17:35:17 -04:00
Jason Merrill
2defb92647 semantics.c (finish_non_static_data_member): Call maybe_dummy_object whenever object is NULL_TREE.
* semantics.c (finish_non_static_data_member): Call maybe_dummy_object
	whenever object is NULL_TREE.  Don't do 'this' capture here.
	(finish_qualified_id_expr): Pass NULL_TREE.
	(finish_id_expression): Likewise.
	(lambda_expr_this_capture): Likewise.

From-SVN: r158809
2010-04-27 17:30:56 -04:00
Jason Merrill
38f1276bb5 semantics.c (finish_qualified_id_expr): Use maybe_dummy_object rather than checking current_class_ref directly.
* semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
	rather than checking current_class_ref directly.
	(finish_call_expr): Likewise.

From-SVN: r158808
2010-04-27 17:27:04 -04:00
Jason Merrill
a684685337 re PR c++/43856 ([C++0x] gcc-4.5.0 fails to transform id-expression into class member access in lambda compound-statement)
PR c++/43856
	* name-lookup.c (qualify_lookup): Disqualify lambda op().
	* class.c (current_nonlambda_class_type): New fn.
	* semantics.c (nonlambda_method_basetype): New.
	* cp-tree.h: Declare them.
	* tree.c (maybe_dummy_object): Handle implicit 'this' capture.

From-SVN: r158807
2010-04-27 17:26:25 -04:00
Jason Merrill
16de17aec7 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
From-SVN: r158806
2010-04-27 17:25:29 -04:00
Jason Merrill
95b24c84c3 re PR c++/43875 ([C++0x] ICE on invalid lambda return)
PR c++/43875
	* semantics.c (lambda_return_type): Complain about
	braced-init-list.

From-SVN: r158805
2010-04-27 17:21:35 -04:00
Jonathan Wakely
60bfcbecc6 status_cxx200x.xml: Update quick_exit status.
2010-04-27  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/xml/manual/status_cxx200x.xml: Update quick_exit status.
	* doc/html/*: Regenerate.

From-SVN: r158804
2010-04-27 21:57:23 +01:00
Manuel López-Ibáñez
5dc16b1952 invoke.texi (-Wsuggest-attribute=const, [...]): Document.
2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jan Hubicka <hubicka@ucw.cz>

	* doc/invoke.texi (-Wsuggest-attribute=const,
	-Wsuggest-attribute=pure): Document.
	* ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
	(function_always_visible_to_compiler_p,
	suggest_attribute, warn_function_pure, warn_function_const):
	New functions.
	(check_call): Improve debug info.
	(analyze_function): Do not check availability.
	(add_new_function): Check availability.
	(propagate): Output warnings.
	(skip_function_for_local_pure_const): New function.
	(local_pure_const): Use it; output warnings.
	* common.opt (Wsuggest-attribute=const,
	Wsuggest-attribute=pure): New.

testsuite/
	* gcc.dg/pure-2.c: New testcase.
	* gcc.dg/const-1.c: New testcase.

Co-Authored-By: Jan Hubicka <hubicka@ucw.cz>

From-SVN: r158803
2010-04-27 20:22:54 +00:00
Jason Merrill
ea8b8aa005 re PR c++/43790 ([C++0x] In lambda express, calling member function of non-captured class gives internal compiler error)
PR c++/43790
	* tree.c (cv_unqualified): Handle error_mark_node.

From-SVN: r158801
2010-04-27 16:08:47 -04:00
Jason Merrill
4a5d353fa8 re PR c++/41468 (SFINAE for expressions doesn't consider ambiguous conversion sequences)
PR c++/41468
	* call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
	if we don't want errors.

From-SVN: r158799
2010-04-27 15:04:23 -04:00
Jason Merrill
798ec80703 re PR c++/41468 (SFINAE for expressions doesn't consider ambiguous conversion sequences)
PR c++/41468
	* class.c (convert_to_base): Add complain parameter.  Pass
	ba_quiet to lookup_base if we don't want errors.
	(build_vfield_ref): Pass complain to convert_to_base.
	* call.c (convert_like_real): Likewise.
	(initialize_reference): Likewise.
	(perform_direct_initialization_if_possible): Pass complain to
	convert_like_real.
	* cp-tree.h: Adjust.

From-SVN: r158798
2010-04-27 15:04:09 -04:00
Fabien Chêne
6ad86a5b26 re PR c++/42844 (const variable requires initializer / no explicitly declared default constructor)
PR c++/42844
	* decl.c (check_for_uninitialized_const_var): Handle classes that need
	constructing, too.
	(check_initializer): Call it for classes that need constructing, too.
	* class.c (in_class_defaulted_default_constructor): New.
	* cp-tree.h: Declare it.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r158797
2010-04-27 14:56:13 -04:00
Jakub Jelinek
78b41ae280 dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression force using DW_CFA_def_cfa instead of...
* dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
	force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
	or DW_CFA_def_cfa_offset{,_sf}.

From-SVN: r158793
2010-04-27 20:12:32 +02:00