Commit graph

126632 commits

Author SHA1 Message Date
Uros Bizjak
a186c90215 c11-complex-1.c: Use dg-add-options ieee.
* gcc.dg/c11-complex-1.c: Use dg-add-options ieee.

From-SVN: r205020
2013-11-19 12:28:20 +01:00
Jan Hubicka
68377e53bd cgraph.c (cgraph_create_indirect_edge): Use get_polymorphic_call_info.
* cgraph.c (cgraph_create_indirect_edge): Use get_polymorphic_call_info.
	* cgraph.h (cgraph_indirect_call_info): Add outer_type, maybe_in_construction
	and maybe_derived_type.
	* ipa-utils.h (ipa_polymorphic_call_context): New structure.
	(ipa_dummy_polymorphic_call_context): New global var.
	(possible_polymorphic_call_targets): Add context paramter.
	(dump_possible_polymorphic_call_targets): Likewise; update
	wrappers.
	(possible_polymorphic_call_target_p): Likewise.
	(get_polymorphic_call_info): New function.
	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
	(add_type_duplicate): Remove forgotten debug output.
	(method_class_type): Add sanity check.
	(maybe_record_node): Add FINALP parameter.
	(record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
	by info by get_binfo_at_offset.
	(possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET parameters;
	pass them to record-binfo.
	(polymorphic_call_target_d): Add context and FINAL.
	(polymorphic_call_target_hasher::hash): Hash context.
	(polymorphic_call_target_hasher::equal): Compare context.
	(free_polymorphic_call_targets_hash):
	(get_class_context): New function.
	(contains_type_p): New function.
	(get_polymorphic_call_info): New function.
	(walk_bases): New function.
	(possible_polymorphic_call_targets): Add context parameter; honnor it.
	(dump_possible_polymorphic_call_targets): Dump context.
	(possible_polymorphic_call_target_p): Add context.
	(update_type_inheritance_graph): Update comment.s
	(ipa_set_jf_known_type): Assert that compoentn type is known.
	(ipa_note_param_call): Do not tamper with offsets.
	(ipa_analyze_indirect_call_uses): When offset is being changed; clear
	outer type.
	(update_indirect_edges_after_inlining): Likewise.
	(ipa_write_indirect_edge_info): Stream new fields.
	(ipa_read_indirect_edge_info): Stream in new fields.

	* ipa/devirt9.C: Verify that the optimization happens already before.
	whole-program.

From-SVN: r205019
2013-11-19 10:05:54 +00:00
Jan Hubicka
d345bb301a tree-pretty-print.c (dump_generic_node): Print class type of OBJ_TYPE_REF.
* tree-pretty-print.c (dump_generic_node): Print class type of
	OBJ_TYPE_REF.

From-SVN: r205017
2013-11-19 10:01:54 +00:00
Joey Ye
32d6e6c0f8 arm.opt (-marm-pic-data-is-text-relative): New option.
2013-11-19  Joey Ye  <joey.ye@arm.com>

        * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
        * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
        for new option.
        * config/arm/arm.c (arm_option_override): By default disable
        -marm-pic-data-is-text-relative.
        (legitimize_pic_address): Use arm_pic_data_is_text_relative.
        (arm_assemble_integer): Likewise.
        * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): 
        New macro to initialize -marm-pic-data-is-text-relative.

From-SVN: r205016
2013-11-19 10:00:46 +00:00
Bin Cheng
cd0470594c tree-ssa-loop-ivopts.c (enum ainc_type): New.
* tree-ssa-loop-ivopts.c (enum ainc_type): New.
	(address_cost_data): New field.
	(get_address_cost): Compute auto-increment rtx cost in ainc_costs.
	Use ainc_costs for auto-increment rtx patterns.
	Cleanup TWS.

From-SVN: r205015
2013-11-19 09:48:59 +00:00
James Greenhalgh
c1dfcec7c1 [AArch64] Remove v8type attribute.
gcc/
	* config/aarch64/aarch64.md: Remove v8type from all insns.

From-SVN: r205014
2013-11-19 09:36:01 +00:00
Richard Biener
7906dbe424 re PR tree-optimization/57517 (internal compiler error: in eliminate_temp_copies, at tree-predcom.c:1913)
2013-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/57517
	* tree-predcom.c (combinable_refs_p): Verify the combination
	is always executed when the refs are.

	* gfortran.fortran-torture/compile/pr57517.f90: New testcase.
	* gcc.dg/torture/pr57517.c: Likewise.

From-SVN: r205010
2013-11-19 09:21:07 +00:00
Jakub Jelinek
64856e1e0b * atomic.c: Include sys/types.h.
From-SVN: r205008
2013-11-19 08:43:09 +01:00
Jeff Law
b06cbaac12 tree-ssa-threadupdate.c: Include ssa-iterators.h
* tree-ssa-threadupdate.c: Include ssa-iterators.h
	(copy_phi_arg_into_existing_phi): New function.
	(any_remaining_duplicated_blocks): Likewise.
	(ssa_fix_duplicate_block_edges): Handle multiple duplicated
	blocks on a jump threading path.

From-SVN: r205004
2013-11-18 20:47:40 -07:00
Jeff Law
01ccc98e19 tree-ssa-threadupdate.c (thread_through_loop_header): Do not thread through a joiner which has the latch edge.
* tree-ssa-threadupdate.c (thread_through_loop_header):  Do not
	thread through a joiner which has the latch edge.

From-SVN: r205003
2013-11-18 20:30:08 -07:00
Ian Lance Taylor
41674b9fe4 reflect: Handle calls to functions that take or return empty structs
Fixes issue 6761

This simple change seems to work fine, slightly to my surprise.

This includes the tests I submitted to the main Go repository at
https://codereview.appspot.com/26570046

From-SVN: r205001
2013-11-19 02:30:03 +00:00
Ian Lance Taylor
9d5eec2da6 gotest: Recognize PPC ELF v2 function pointers in text section.
From-SVN: r205000
2013-11-19 02:14:40 +00:00
Ian Lance Taylor
824393bd5b libgo: Fix typo for is_dragonfly in configure script.
From-SVN: r204999
2013-11-19 02:11:38 +00:00
Jan Hubicka
672a6cc318 md.texi (setmem): Document new parameter.
* md.texi (setmem): Document new parameter.
	* optabs.c (maybe_gen_insn): Support 9 operands.
	* builtins.c (determine_block_size): Add probable_max_size;
	support anti-ranges.
	(expand_builtin_memcpy. expand_builtin_memset_args): Pass around
	probable_max_size.
	* expr.c (emit_block_move_via_movmem, emit_block_move_hints,
	emit_block_move, clear_storage_hints, set_storage_via_setmem):
	Likewise.
	* expr.h (emit_block_move_hints, clear_storage_hints,
	set_storage_via_setmem): Update prototype.
	* i386.md (setmem, movmem patterns): Add 9th operand.
	* i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
	* i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
	argument; pass it to decide_alg.

From-SVN: r204998
2013-11-19 01:42:47 +00:00
Jan Hubicka
82bb7d4e82 md.texi (setmem): Document new parameter.
* md.texi (setmem): Document new parameter.
	* optabs.c (maybe_gen_insn): Support 9 operands.
	* builtins.c (determine_block_size): Add probable_max_size;
	support anti-ranges.
	(expand_builtin_memcpy. expand_builtin_memset_args): Pass around
	probable_max_size.
	* expr.c (emit_block_move_via_movmem, emit_block_move_hints,
	emit_block_move, clear_storage_hints, set_storage_via_setmem):
	Likewise.
	* expr.h (emit_block_move_hints, clear_storage_hints,
	set_storage_via_setmem): Update prototype.
	* i386.md (setmem, movmem patterns): Add 9th operand.
	* i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
	* i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
	argument; pass it to decide_alg.

	* gcc.target/i386/memcpy-3.c: New testcase.

From-SVN: r204997
2013-11-19 01:42:34 +00:00
Jan Hubicka
0874db6e96 re PR middle-end/59175 (gcc.target/i386/memcpy-2.c fails with -m32)
PR middle-end/59175
	* gcc.target/i386/memcpy-2.c: Fix template;
	add +1 so the testcase passes at 32bit.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r204996
2013-11-19 01:30:51 +00:00
David Malcolm
0cae8d31e7 Eliminate n_basic_blocks macro
gcc/
	* basic-block.h (n_basic_blocks_for_function): Rename macro to...
	(n_basic_blocks_for_fn): ...this.

	(n_basic_blocks): Eliminate macro as work towards making uses of
	cfun be explicit.

	* cfgloop.c (init_loops_structure): Update for renaming of
	"n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
	* graph.c (draw_cfg_nodes_no_loops): Likewise.
	* ipa-utils.c (ipa_merge_profiles): Likewise.
	* lto-streamer-in.c (make_new_block): Likewise.
	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
	(dump_function_to_file): Likewise.

	* alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
	macro with "n_basic_blocks_for_fn (cfun)".
	* bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
	(duplicate_computed_gotos): Likewise.
	(reorder_basic_blocks): Likewise.
	* bt-load.c (augment_live_range): Likewise.
	* cfg.c (expunge_block): Likewise.
	(compact_blocks): Likewise.
	* cfganal.c (single_pred_before_succ_order): Likewise.
	(compute_idf): Likewise.
	(flow_dfs_compute_reverse_init): Likewise.
	(pre_and_rev_post_order_compute): Likewise.
	(pre_and_rev_post_order_compute_fn): Likewise.
	(inverted_post_order_compute): Likewise.
	(post_order_compute): Likewise.
	(print_edge_list): Likewise.
	(find_unreachable_blocks): Likewise.
	(mark_dfs_back_edges): Likewise.
	* cfgcleanup.c (try_optimize_cfg): Likewise.
	(try_forward_edges): Likewise.
	* cfghooks.c (dump_flow_info): Likewise.
	* cfgloop.c (verify_loop_structure): Likewise.
	(get_loop_body): Likewise.
	(flow_loops_find): Likewise.
	* cfgloopmanip.c (add_loop): Likewise.
	(remove_path): Likewise.
	(find_path): Likewise.
	* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
	(rtl_verify_bb_layout): Likewise.
	(entry_of_function): Likewise.
	(rtl_create_basic_block): Likewise.
	* coverage.c (coverage_compute_cfg_checksum): Likewise.
	* cprop.c (one_cprop_pass): Likewise.
	(is_too_expensive): Likewise.
	* df-core.c (df_compute_cfg_image): Likewise.
	(df_compact_blocks): Likewise.
	(df_worklist_dataflow_doublequeue): Likewise.
	* dominance.c (calculate_dominance_info): Likewise.
	(calc_dfs_tree): Likewise.
	(calc_dfs_tree_nonrec): Likewise.
	(init_dom_info): Likewise.
	* domwalk.c (cmp_bb_postorder): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	(generate_setjmp_warnings): Likewise.
	* fwprop.c (build_single_def_use_links): Likewise.
	* gcse.c (is_too_expensive): Likewise.
	(one_code_hoisting_pass): Likewise.
	(one_pre_gcse_pass): Likewise.
	* graphite.c (graphite_initialize): Likewise.
	* haifa-sched.c (haifa_sched_init): Likewise.
	* ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
	* ira.c (split_live_ranges_for_shrink_wrap): Likewise.
	* ira-build.c (ira_build): Likewise.
	* lcm.c (compute_nearerout): Likewise.
	(compute_available): Likewise.
	(compute_laterin): Likewise.
	(compute_antinout_edge): Likewise.
	* lra-lives.c (lra_create_live_ranges): Likewise.
	* lra.c (has_nonexceptional_receiver): Likewise.
	* mcf.c (create_fixup_graph): Likewise.
	* profile.c (branch_prob): Likewise.
	* reg-stack.c (convert_regs_2): Likewise.
	* regrename.c (regrename_analyze): Likewise.
	* reload1.c (has_nonexceptional_receiver): Likewise.
	* reorg.c (dbr_schedule): Likewise.
	* sched-deps.c (sched_deps_init): Likewise.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (extend_regions): Likewise.
	(schedule_insns): Likewise.
	(sched_rgn_init): Likewise.
	(extend_rgns): Likewise.
	(haifa_find_rgns): Likewise.
	* sel-sched-ir.c (recompute_rev_top_order): Likewise.
	(sel_recompute_toporder): Likewise.
	* sel-sched.c (run_selective_scheduling): Likewise.
	* store-motion.c (one_store_motion_pass): Likewise.
	(remove_reachable_equiv_notes): Likewise.
	* tracer.c (tracer): Likewise.
	(tail_duplicate): Likewise.
	* tree-cfg.c (gimple_flow_call_edges_add): Likewise.
	(dump_cfg_stats): Likewise.
	(gimple_dump_cfg): Likewise.
	(create_bb): Likewise.
	(build_gimple_cfg): Likewise.
	* tree-cfgcleanup.c (merge_phi_nodes): Likewise.
	* tree-inline.c (optimize_inline_calls): Likewise.
	(fold_marked_statements): Likewise.
	* tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
	* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
	* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
	* tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
	* tree-ssa-pre.c (do_pre): Likewise.
	(init_pre): Likewise.
	(compute_avail): Likewise.
	* tree-ssa-reassoc.c (init_reassoc): Likewise.
	* tree-ssa-sccvn.c (init_scc_vn): Likewise.
	* tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
	(init_worklist): Likewise.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
	* var-tracking.c (variable_tracking_main_1): Likewise.
	(vt_find_locations): Likewise.
	(vt_stack_adjustments): Likewise.
	* config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.

From-SVN: r204995
2013-11-19 01:13:23 +00:00
Ian Lance Taylor
49579c7e20 configure.ac: Check for support of __atomic extensions.
* configure.ac: Check for support of __atomic extensions.
	* internal.h: Declare or #define atomic functions for use in
	backtrace code.
	* atomic.c: New file.
	* dwarf.c (dwarf_lookup_pc): Use atomic functions.
	(dwarf_fileline, backtrace_dwarf_add): Likewise.
	* elf.c (elf_add_syminfo_data, elf_syminfo): Likewise.
	(backtrace_initialize): Likewise.
	* fileline.c (fileline_initialize): Likewise.
	* Makefile.am (libbacktrace_la_SOURCES): Add atomic.c.
	* configure, config.h.in, Makefile.in: Rebuild.

From-SVN: r204994
2013-11-19 01:09:47 +00:00
Jan Hubicka
7f369373da libgcov-driver.c (run_accounted): Make global level static.
* libgcov-driver.c (run_accounted): Make global level static.
	(gcov_exit_merge_summary): Silence warning; do not clear
	run_accounted here.
	(gcov_exit): Clear it here.

From-SVN: r204993
2013-11-19 01:08:02 +00:00
Jan Hubicka
6fec8b036d * profile.c (compute_branch_probabilities): Do not sanity check run_max.
From-SVN: r204992
2013-11-19 00:53:13 +00:00
Jan Hubicka
1d0b33343a libgcov-driver.c (gcov_exit_merge_summary): Fix setting run_accounted.
* libgcov-driver.c (gcov_exit_merge_summary): Fix setting
	run_accounted.

From-SVN: r204991
2013-11-19 00:50:53 +00:00
GCC Administrator
254683fa58 Daily bump.
From-SVN: r204990
2013-11-19 00:16:46 +00:00
Kenneth Zadeck
bd6337aaeb tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
2013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
	GET_MODE_PRECISION.
	* fold-const.c (fold_single_bit_test_into_sign_test)
	(fold_binary_loc):  Change GET_MODE_BITSIZE to
	GET_MODE_PRECISION.

From-SVN: r204987
2013-11-19 00:00:17 +00:00
Teresa Johnson
4ca1930986 This patch fixes an lto profiledbootstrap failure with -freorder-blocks-and-partition enabled.
This patch fixes an lto profiledbootstrap failure with
-freorder-blocks-and-partition enabled. Currently compgotos
is the only pass that goes into cfglayout mode after bb reordering,
which is undesireable (and in the case of -freorder-blocks-and-partition
can cause illegal partitioning) because of the optimizations performed
on the cfg when going into cfglayout mode. Moved compgoto before
bb reordering to avoid these problems.

2013-11-18  Teresa Johnson  <tejohnson@google.com>

	* gcc/cfgrtl.c (cfg_layout_initialize): Assert if we
	try to go into cfglayout after bb reordering.
	* gcc/passes.def: Move compgotos before bb reordering
	since it goes into cfglayout.

From-SVN: r204985
2013-11-18 22:38:51 +00:00
Bernd Schmidt
38f4f02fd6 Remove all_lto_gen_passes, replace with plain function calls
* cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
	* lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
	static.
	(pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
	make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
	pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
	* lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
	* pass-manager.h (GCC_PASS_LISTS, class pass_manager):
	Remove all_lto_gen_passes.
	* passes.c (pass_manager::dump_passes): Remove its use.
	(pass_manager::register_pass): Likewise.
	(ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
	(pass_manager::pass_manager): Don't initialize or use it.
	(write_lto): New static function.
	(ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
	instead of using all_lto_gen_passes.
	* passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
	pass_ipa_lto_finish_out): Delete.
	* tree-pass.h (make_pass_ipa_lto_gimple_out,
	make_pass_ipa_lto_finish_out): Don't declare.

From-SVN: r204984
2013-11-18 22:16:37 +00:00
Jan Hubicka
867c8b03ff libgcov-driver.c (get_gcov_dump_complete): Update comments.
* libgcov-driver.c (get_gcov_dump_complete): Update comments.
	(all_prg, crc32): Remove static vars.
	(gcov_exit_compute_summary): Rewrite to return crc32; do not clear
	all_prg.
	(gcov_exit_merge_gcda): Add crc32 parameter.
	(gcov_exit_merge_summary): Add crc32 and all_prg parameter;
	do not account run if it was already accounted.
	(gcov_exit_dump_gcov): Add crc32 and all_prg parameters.
	(gcov_exit): Initialize all_prg; update.

From-SVN: r204983
2013-11-18 22:04:48 +00:00
Jeff Law
2c2af141b4 tree-ssa-threadupdate.c (redirection_data): Record two duplicated blocks instead of just one.
* tree-ssa-threadupdate.c (redirection_data): Record two
	duplicated blocks instead of just one.
	(local_info): Explain why we don't create a template for the
	second duplicated block in a thread path.
	(create_block_for_threading): Accept argument indicating array
	index into redirection_data to store its result.
	(lookup_redirection_data): Initialize both duplicate blocks.
	(ssa_create_duplicates): If a jump threading path needs multiple
	blocks duplicated, then duplicate them.
	(ssa_fix_duplicate_block_edges): Corresponding changes.
	(ssa_fixup_template_block, thread_single_edge):  Likewise.

From-SVN: r204982
2013-11-18 14:57:35 -07:00
Marek Polacek
fc78704b1a invoke.texi: Extend -fsanitize=undefined documentation.
* doc/invoke.texi: Extend -fsanitize=undefined documentation.

From-SVN: r204980
2013-11-18 19:25:33 +00:00
Andrew Pinski
72b7c4bc78 re PR middle-end/56552 (conditional move can generate unnecessary conversion code)
2013-11-18  Andrew Pinski <apinski@cavium.com>
	    Steve Ellcey  <sellcey@mips.com>

	PR target/56552
	* config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
	type restriction from equality_operator on conditonal move.
	(*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
	(*mov<GPR:mode>_on_<GPR2:mode>_ne): New.

Co-Authored-By: Steve Ellcey <sellcey@mips.com>

From-SVN: r204979
2013-11-18 19:20:12 +00:00
Jeff Law
3a0b28f83d tree-ssa-threadupdate.c: Fix file block comment.
* tree-ssa-threadupdate.c: Fix file block comment.
        Fix minor indention issue.

From-SVN: r204978
2013-11-18 12:10:41 -07:00
Dominique d'Humieres
30d0460982 reduction-3.c: Use stdlib.h.
* c-c++-common/cilk-plus/PS/reduction-3.c: Use stdlib.h.
        Remove spurious FIXME.

From-SVN: r204977
2013-11-18 11:44:49 -07:00
Uros Bizjak
1d189846eb i386.c (ix86_decompose_address): Use REG_P instead of ix86_address_subreg_operand.
* config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
	ix86_address_subreg_operand.  Move subreg checks to
	ix86_validate_address_register.  Move address override check to
	ix86_legitimate_address_p.
	(ix86_validate_address_register): New function.
	(ix86_legitimate_address_p): Call ix86_validate_address_register
	to validate base and index registers.  Add address override check
	from ix86_decompose_address.
	(ix86_decompose_address): Remove.

From-SVN: r204976
2013-11-18 19:01:00 +01:00
Jakub Jelinek
f18578157d elf.c (SHN_UNDEF): Define.
* elf.c (SHN_UNDEF): Define.
	(elf_initialize_syminfo): Add base_address argument.  Ignore symbols
	with st_shndx == SHN_UNDEF.  Add base_address to address fields.
	(elf_add): Adjust caller.

From-SVN: r204975
2013-11-18 18:15:07 +01:00
Jakub Jelinek
582f5a2df8 * elf.c (phdr_callback): Process info->dlpi_addr == 0 normally.
From-SVN: r204971
2013-11-18 17:30:44 +01:00
Bill Schmidt
aadce58599 lex.c (search_line_fast): Correct for little endian.
2013-11-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* lex.c (search_line_fast): Correct for little endian.

From-SVN: r204970
2013-11-18 16:21:42 +00:00
Kyrylo Tkachov
ddf05af2ff [gcc/testsuite]
* c-c++-common/cilk-plus/PS/body.c: Add fopenmp effective target check.

From-SVN: r204968
2013-11-18 15:50:20 +00:00
Paolo Carlini
588224554a re PR c++/53473 ([C++11] static constexpr noexcept cannot be specialized)
2013-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53473
	* g++.dg/cpp0x/constexpr-noexcept7.C: New.

From-SVN: r204967
2013-11-18 15:26:45 +00:00
Richard Biener
1eadb567ef re PR middle-end/59125 (gcc triggers wrong strncpy_chk)
2013-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59125
	PR tree-optimization/54570
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
	is not complete do not treat component-references with offset zero
	but different fields as equal.
	* tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
	(compute_object_sizes): Apply TLC.  Propagate the constant
	results into all uses and fold their stmts.
	* passes.def (pass_all_optimizations): Move pass_object_sizes
	after the first pass_forwprop and before pass_fre.

	* gcc.dg/builtin-object-size-8.c: Un-xfail.
	* gcc.dg/builtin-object-size-14.c: New testcase.
	* gcc.dg/strlenopt-14gf.c: Adjust.
	* gcc.dg/strlenopt-1f.c: Likewise.
	* gcc.dg/strlenopt-4gf.c: Likewise.

From-SVN: r204966
2013-11-18 15:25:05 +00:00
Richard Sandiford
7d362f6c2b c-common.c (convert_vector_to_pointer_for_subscript): Remove cast to unsigned type.
gcc/c-family/
	* c-common.c (convert_vector_to_pointer_for_subscript): Remove
	cast to unsigned type.

gcc/
	* tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
	* tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
	(tree_ctz): Remove cast to unsigned type.
	* builtins.c (fold_builtin_memory_op): Likewise.
	* dwarf2out.c (descr_info_loc): Likewise.
	* godump.c (go_output_typedef): Likewise.
	* omp-low.c (expand_omp_simd): Likewise.
	* stor-layout.c (excess_unit_span): Likewise.
	* tree-object-size.c (addr_object_size): Likewise.
	* tree-sra.c (analyze_all_variable_accesses): Likewise.
	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
	(simplify_rotate): Likewise.
	* tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
	(handle_pointer_plus): Likewise.
	* tree-switch-conversion.c (check_range): Likewise.
	* tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
	* tsan.c (instrument_builtin_call): Likewise.
	* cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
	* trans-mem.c (tm_log_add): Likewise.
	* config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
	* config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
	* config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.

From-SVN: r204964
2013-11-18 14:52:56 +00:00
Richard Sandiford
b23b672e8d tree.h (host_integerp, [...]): Delete.
gcc/
	* tree.h (host_integerp, tree_low_cst): Delete.
	* tree.c (host_integerp, tree_low_cst): Delete.

From-SVN: r204963
2013-11-18 14:52:42 +00:00
Richard Sandiford
386b1f1f41 cuintp.c (UI_From_gnu): Use tree_to_shwi rather than tree_low_cst.
gcc/ada/
	* gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi rather than
	tree_low_cst.

gcc/c-family/
	* c-common.c (fold_offsetof_1): Use tree_to_uhwi rather than
	tree_low_cst.
	(complete_array_type): Update comment to refer to tree_to_[su]hwi
	rather than tree_low_cst.

gcc/c/
	* c-decl.c (grokdeclarator): Update comment to refer to
	tree_to_[su]hwi rather than tree_low_cst.

gcc/cp/
	* decl.c (reshape_init_array_1): Use tree_to_uhwi rather than
	tree_low_cst.
	(grokdeclarator): Update comment to refer to tree_to_[su]hwi rather
	than tree_low_cst.

gcc/
	* expr.h: Update comments to refer to tree_to_[su]hwi rather
	than tree_low_cst.
	* fold-const.c (fold_binary_loc): Likewise.
	* expr.c (store_constructor): Use tree_to_uhwi rather than
	tree_low_cst.
	* ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
	* stmt.c (emit_case_dispatch_table): Likewise.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.

From-SVN: r204962
2013-11-18 14:52:29 +00:00
Richard Sandiford
ae7e9dddb8 decl.c, [...]: Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
gcc/ada/
	* gcc-interface/decl.c, gcc-interface/utils.c, gcc-interface/utils2.c:
	Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.

gcc/c-family/
	* c-common.c, c-cppbuiltin.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

gcc/c/
	* c-decl.c, c-typeck.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

gcc/cp/
	* call.c, class.c, decl.c, error.c: Replace tree_low_cst (..., 1) with
	tree_to_uhwi throughout.

gcc/objc/
	* objc-encoding.c: Replace tree_low_cst (..., 1) with tree_to_uhwi
	throughout.

gcc/
	* alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
	config/aarch64/aarch64.c, config/alpha/predicates.md,
	config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
	config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
	config/mep/mep-pragma.c, config/mips/mips.c,
	config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
	dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
	function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
	predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
	tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
	tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
	tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
	tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
	Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.

From-SVN: r204961
2013-11-18 14:52:19 +00:00
Richard Sandiford
9439e9a1a4 c-common.c, [...]: Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
gcc/c-family/
	* c-common.c, c-format.c, c-omp.c, c-pretty-print.c: Replace
	tree_low_cst (..., 0) with tree_to_shwi throughout.

gcc/c/
	* c-parser.c: Replace tree_low_cst (..., 0) with tree_to_shwi
	throughout.

gcc/cp/
	* class.c, dump.c, error.c, init.c, method.c, parser.c, semantics.c:
	Replace tree_low_cst (..., 0) with tree_to_shwi throughout.

gcc/go/
	* gofrontend/expressions.cc: Replace tree_low_cst (..., 0) with
	tree_to_shwi throughout.

gcc/java/
	* class.c, expr.c: Replace tree_low_cst (..., 0) with tree_to_shwi
	throughout.

gcc/objc/
	* objc-next-runtime-abi-02.c: Replace tree_low_cst (..., 0) with
	tree_to_shwi throughout.

gcc/
	* builtins.c, cilk-common.c, config/aarch64/aarch64.c,
	config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
	config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
	coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
	fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
	predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
	tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
	tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
	tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
	tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
	Replace tree_low_cst (..., 0) with tree_to_shwi throughout.

From-SVN: r204959
2013-11-18 14:52:03 +00:00
Richard Sandiford
7c5efc1206 tree.h (tree_to_shwi, [...]): Declare, with inline expansions.
gcc/
	* tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
	* tree.c (tree_to_shwi, tree_to_uhwi): New functions.

From-SVN: r204958
2013-11-18 14:51:45 +00:00
Richard Sandiford
5a36c51b09 cuintp.c: Update comments to refer to tree_fits_shwi_p rather than host_integerp.
gcc/ada/
	* gcc-interface/cuintp.c: Update comments to refer to
	tree_fits_shwi_p rather than host_integerp.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_fits_uhwi_p
	rather than host_integerp.
	* gcc-interface/utils.c (rest_of_record_type_compilation): Likewise.

gcc/
	* expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
	than host_integerp.

From-SVN: r204957
2013-11-18 14:51:35 +00:00
Richard Sandiford
cc269bb6d9 decl.c, [...]: Replace host_integerp (..., 1) with tree_fits_uhwi_p throughout.
gcc/ada/
	* gcc-interface/decl.c, gcc-interface/misc.c, gcc-interface/utils.c:
	Replace host_integerp (..., 1) with tree_fits_uhwi_p throughout.

gcc/c-family/
	* c-ada-spec.c, c-common.c, c-pretty-print.c: Replace
	host_integerp (..., 1) with tree_fits_uhwi_p throughout.

gcc/cp/
	* decl.c: Replace host_integerp (..., 1) with tree_fits_uhwi_p
	throughout.

gcc/
	* builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
	config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
	gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
	tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
	tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
	tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
	config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
	config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
	config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
	gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
	tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
	tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
	tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
	tree_fits_uhwi_p throughout.

From-SVN: r204956
2013-11-18 14:51:26 +00:00
Richard Sandiford
9541ffee8c cuintp.c: Replace host_integerp (..., 0) with tree_fits_shwi_p throughout.
gcc/ada/
	* gcc-interface/cuintp.c: Replace host_integerp (..., 0) with
	tree_fits_shwi_p throughout.

gcc/c-family/
	* c-ada-spec.c, c-common.c, c-format.c, c-pretty-print.c: Replace
	host_integerp (..., 0) with tree_fits_shwi_p throughout.

gcc/c/
	* c-parser.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
	throughout.

gcc/cp/
	* error.c, init.c, parser.c, semantics.c: Replace
	host_integerp (..., 0) with tree_fits_shwi_p throughout.

gcc/go/
	* gofrontend/expressions.cc: Replace host_integerp (..., 0) with
	tree_fits_shwi_p throughout.

gcc/java/
	* class.c, expr.c: Replace host_integerp (..., 0) with
	tree_fits_shwi_p throughout.

gcc/
	* builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
	config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
	config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
	expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
	gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
	omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
	stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
	tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
	tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
	tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
	tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
	varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
	throughout.

From-SVN: r204955
2013-11-18 14:51:10 +00:00
Richard Sandiford
b04268a57f tree.h (tree_fits_shwi_p, [...]): Declare.
gcc/
	* tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
	* tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.

From-SVN: r204954
2013-11-18 14:50:47 +00:00
Joseph Myers
a2ca7c8cb9 atomic-compare-exchange-1.c, [...]: Declare main as returning int.
* testsuite/libatomic.c/atomic-compare-exchange-1.c,
	testsuite/libatomic.c/atomic-compare-exchange-2.c,
	testsuite/libatomic.c/atomic-compare-exchange-3.c,
	testsuite/libatomic.c/atomic-compare-exchange-4.c,
	testsuite/libatomic.c/atomic-compare-exchange-5.c,
	testsuite/libatomic.c/atomic-exchange-1.c,
	testsuite/libatomic.c/atomic-exchange-2.c,
	testsuite/libatomic.c/atomic-exchange-3.c,
	testsuite/libatomic.c/atomic-exchange-4.c,
	testsuite/libatomic.c/atomic-exchange-5.c,
	testsuite/libatomic.c/atomic-generic.c,
	testsuite/libatomic.c/atomic-load-1.c,
	testsuite/libatomic.c/atomic-load-2.c,
	testsuite/libatomic.c/atomic-load-3.c,
	testsuite/libatomic.c/atomic-load-4.c,
	testsuite/libatomic.c/atomic-load-5.c,
	testsuite/libatomic.c/atomic-op-1.c,
	testsuite/libatomic.c/atomic-op-2.c,
	testsuite/libatomic.c/atomic-op-3.c,
	testsuite/libatomic.c/atomic-op-4.c,
	testsuite/libatomic.c/atomic-op-5.c,
	testsuite/libatomic.c/atomic-store-1.c,
	testsuite/libatomic.c/atomic-store-2.c,
	testsuite/libatomic.c/atomic-store-3.c,
	testsuite/libatomic.c/atomic-store-4.c,
	testsuite/libatomic.c/atomic-store-5.c: Declare main as returning
	int.  Do not require built-in sync support or add target-specific
	options.
	* testsuite/libatomic.c/atomic-exchange-1.c,
	testsuite/libatomic.c/atomic-exchange-2.c,
	testsuite/libatomic.c/atomic-exchange-3.c,
	testsuite/libatomic.c/atomic-exchange-4.c,
	testsuite/libatomic.c/atomic-exchange-5.c: Separate increments of
	count from expression using value of count.

From-SVN: r204953
2013-11-18 14:50:11 +00:00
Jonathan Wakely
ad098ad133 shared_ptr_base.h (_Sp_counted_base<_S_single>): Use non-atomic operations.
* include/bits/shared_ptr_base.h (_Sp_counted_base<_S_single>): Use
	non-atomic operations.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line number.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

From-SVN: r204949
2013-11-18 13:52:39 +00:00