1. 01 Aug, 2014 1 commit
    • opts.c (common_handle_option): Handle -fsanitize=alignment. · 944fa280
      	* opts.c (common_handle_option): Handle -fsanitize=alignment.
      	* ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
      	(ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
      	type to bool.
      	* stor-layout.h (min_align_of_type): New prototype.
      	* asan.c (pass_sanopt::execute): Don't perform gsi_next if
      	ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
      	check.
      	* ubsan.c: Include builtins.h.
      	(ubsan_expand_bounds_ifn): Change return type to bool,
      	always return true.
      	(ubsan_expand_null_ifn): Change return type to bool, change
      	argument to gimple_stmt_iterator *.  Handle both null and alignment
      	sanitization, take type from ckind argument's type rather than
      	first argument.
      	(instrument_member_call): Removed.
      	(instrument_mem_ref): Remove t argument, add mem and base arguments.
      	Handle both null and alignment sanitization, don't say whole
      	struct access is member access.  Build 3 argument IFN_UBSAN_NULL
      	call instead of 2 argument.
      	(instrument_null): Adjust instrument_mem_ref caller.  Don't
      	instrument calls here.
      	(pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
      	like SANITIZE_NULL.
      	* stor-layout.c (min_align_of_type): New function.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
      	Or it into SANITIZE_UNDEFINED.
      	* doc/invoke.texi (-fsanitize=alignment): Document.
      cp/
      	* cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
      	-fsanitize=alignment call ubsan_maybe_instrument_reference
      	for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
      	for calls to member functions.
      c-family/
      	* c-common.h (min_align_of_type): Removed prototype.
      	* c-common.c (min_align_of_type): Removed.
      	* c-ubsan.h (ubsan_maybe_instrument_reference,
      	ubsan_maybe_instrument_member_call): New prototypes.
      	* c-ubsan.c: Include stor-layout.h and builtins.h.
      	(ubsan_maybe_instrument_reference_or_call,
      	ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
      	functions.
      testsuite/
      	* c-c++-common/ubsan/align-1.c: New test.
      	* c-c++-common/ubsan/align-2.c: New test.
      	* c-c++-common/ubsan/align-3.c: New test.
      	* c-c++-common/ubsan/align-4.c: New test.
      	* c-c++-common/ubsan/align-5.c: New test.
      	* c-c++-common/ubsan/attrib-4.c: New test.
      	* g++.dg/ubsan/align-1.C: New test.
      	* g++.dg/ubsan/align-2.C: New test.
      	* g++.dg/ubsan/align-3.C: New test.
      	* g++.dg/ubsan/attrib-1.C: New test.
      	* g++.dg/ubsan/null-1.C: New test.
      	* g++.dg/ubsan/null-2.C: New test.
      
      From-SVN: r213406
      Jakub Jelinek committed
  2. 24 Jul, 2014 1 commit
    • IPA C++ refactoring 2/N · 9041d2e6
        * cgraph.h (varpool_node):
        (availability get_availability (void)):
          created from cgraph_variable_initializer_availability
        (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
          creted from: cgraph_variable_initializer_availability
        (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
        (void finalize_named_section_flags (void)):
          created from varpool_finalize_named_section_flags
        (bool assemble_decl (void)): created from varpool_assemble_decl
        (void analyze (void)): created from varpool_analyze_node
        (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
          void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
        (void remove_initializer (void)): created from varpool_remove_initializer
        (tree get_constructor (void)): created from varpool_get_constructor
        (bool externally_visible_p (void)): created from varpool_externally_visible_p
        (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
        (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
        (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
        (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
        (static void finalize_decl (tree decl)): created from varpool_finalize_decl
        (static bool output_variables (void)): created from varpool_output_variables
        (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
          created from varpool_extra_name_alias
        (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
        (static void dump_varpool (FILE *f)): created from dump_varpool
        (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
        (static varpool_node *create_empty (void)): created from varpool_create_empty_node
        (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
        (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
        (void assemble_aliases (void)): created from assemble_aliases
      
      From-SVN: r212984
      Martin Liska committed
  3. 09 Jul, 2014 1 commit
    • remove has_execute · 558d2559
      gcc/
      
      	* tree-pass.h (pass_data): Remove has_execute member.
      	* passes.c (execute_one_pass): Don't check pass->has_execute.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
      	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
      	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
      	gimple-low.c, gimple-ssa-isolate-paths.c,
      	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
      	ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
      	ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
      	ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
      	lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
      	postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
      	reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
      	stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
      	tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
      	tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
      	tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
      	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
      	web.c: Remove initializer for pass_data::has_execute.
      
      From-SVN: r212383
      Trevor Saunders committed
  4. 30 Jun, 2014 1 commit
    • convert.c (convert_to_integer): Don't instrument conversions if the function has… · 6a7253a4
      convert.c (convert_to_integer): Don't instrument conversions if the function has no_sanitize_undefined attribute.
      
      	* convert.c (convert_to_integer): Don't instrument conversions if the
      	function has no_sanitize_undefined attribute.
      	* ubsan.c: Don't run the ubsan pass if the function has
      	no_sanitize_undefined attribute.
      c/
      	* c-decl.c (grokdeclarator): Don't instrument VLAs if the function
      	has no_sanitize_undefined attribute.
      cp/
      	* cp-gimplify.c (cp_genericize): Don't instrument returns if the
      	function has no_sanitize_undefined attribute.
      	* decl.c (compute_array_index_type): Don't instrument VLAs if the
      	function has no_sanitize_undefined attribute.
      testsuite/
      	* c-c++-common/ubsan/attrib-2.c: New test.
      	* g++.dg/ubsan/return-3.C: New test.
      
      From-SVN: r212148
      Marek Polacek committed
  5. 20 Jun, 2014 1 commit
    • asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS. · 0e37a2f3
      	* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
      	into SANITIZE_UNDEFINED.
      	* doc/invoke.texi: Describe -fsanitize=bounds.
      	* gimplify.c (gimplify_call_expr): Add gimplification of internal
      	functions created in the FEs.
      	* internal-fn.c: Move "internal-fn.h" after "tree.h".
      	(expand_UBSAN_BOUNDS): New function.
      	* internal-fn.def (UBSAN_BOUNDS): New internal function.
      	* internal-fn.h: Don't define internal functions here.
      	* opts.c (common_handle_option): Add -fsanitize=bounds.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
      	BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
      	* tree-core.h: Define internal functions here.
      	(struct tree_base): Add ifn field.
      	* tree-pretty-print.c: Include "internal-fn.h".
      	(dump_generic_node): Handle functions without CALL_EXPR_FN.
      	* tree.c (get_callee_fndecl): Likewise.
      	(build_call_expr_internal_loc): New function.
      	* tree.def (CALL_EXPR): Update description.
      	* tree.h (CALL_EXPR_IFN): Define.
      	(build_call_expr_internal_loc): Declare.
      	* ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
      	types.
      	(ubsan_type_descriptor): Change bool parameter to enum
      	ubsan_print_style.  Adjust the code.  Add handling of
      	UBSAN_PRINT_ARRAY.
      	(ubsan_expand_bounds_ifn): New function.
      	(ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
      	(ubsan_build_overflow_builtin): Likewise.
      	(instrument_bool_enum_load): Likewise.
      	(ubsan_instrument_float_cast): Likewise.
      	* ubsan.h (enum ubsan_print_style): New enum.
      	(ubsan_expand_bounds_ifn): Declare.
      	(ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
      c-family/
      	* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
      	(ubsan_walk_array_refs_r): New function.
      	(c_genericize): Instrument array bounds.
      	* c-ubsan.c: Include "internal-fn.h".
      	(ubsan_instrument_division): Mark instrumented arrays as having
      	side effects.  Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_bounds): New function.
      	(ubsan_array_ref_instrumented_p): New function.
      	(ubsan_maybe_instrument_array_ref): New function.
      	* c-ubsan.h (ubsan_instrument_bounds): Declare.
      	(ubsan_array_ref_instrumented_p): Declare.
      	(ubsan_maybe_instrument_array_ref): Declare.
      testsuite/
      	* c-c++-common/ubsan/bounds-1.c: New test.
      	* c-c++-common/ubsan/bounds-2.c: New test.
      	* c-c++-common/ubsan/bounds-3.c: New test.
      	* c-c++-common/ubsan/bounds-4.c: New test.
      	* c-c++-common/ubsan/bounds-5.c: New test.
      	* c-c++-common/ubsan/bounds-6.c: New test.
      
      From-SVN: r211859
      Marek Polacek committed
  6. 06 Jun, 2014 1 commit
    • cfgexpand.c (expand_gimple_cond): Remove check for current_loops. · 726338f4
      2014-06-06  Richard Biener  <rguenther@suse.de>
      
      	* cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
      	(construct_init_block): Likewise.
      	(construct_exit_block): Likewise.
      	(pass_expand::execute): Likewise.
      	* graphite.c (graphite_transforms): Replace check for current_loops
      	with a check for > 1 loops.
      	(pass_graphite_transforms::execute): Adjust.
      	* ipa-split.c (split_function): Remove check for current_loops.
      	* omp-low.c (expand_parallel_call): Likewise.
      	(expand_omp_for_init_counts): Likewise.
      	(extract_omp_for_update_vars): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_sections): Likewise.
      	(expand_omp_target): Likewise.
      	* tracer.c (tail_duplicate): Likewise.
      	(pass_tracer::execute): Likewise.
      	* trans-mem.c (expand_transaction): Likewise.
      	* tree-complex.c (expand_complex_div_wide): Likewise.
      	* tree-eh.c (lower_resx): Likewise.
      	(cleanup_empty_eh_merge_phis): Likewise.
      	* tree-predcom.c (run_tree_predictive_commoning): Replace check for
      	current_loops with a check for > 1 loops.
      	(pass_predcom::execute): Adjust.
      	* tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
      	* tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
      	* tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
      	* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
      	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
      	* tree-switch-conversion.c (process_switch): Likewise.
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
      	* tree-vrp.c (vrp_visit_phi_node): Likewise.
      	(execute_vrp): Likewise.
      	* ubsan.c (ubsan_expand_null_ifn): Likewise.
      
      From-SVN: r211306
      Richard Biener committed
  7. 23 May, 2014 1 commit
    • builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT. · 85a16bf8
      	* builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
      	* gcc.c (sanitize_spec_function): Likewise.
      	* convert.c (convert_to_integer): Include "ubsan.h".  Add
      	floating-point to integer instrumentation.
      	* doc/invoke.texi: Document -fsanitize=float-cast-overflow.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
      	SANITIZE_NONDEFAULT.
      	* opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
      	BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
      	* ubsan.c: Include "realmpfr.h" and "dfp.h".
      	(get_ubsan_type_info_for_type): Handle REAL_TYPEs.
      	(ubsan_type_descriptor): Set tkind to 0xffff for types other than
      	float/double/long double.
      	(ubsan_instrument_float_cast): New function.
      	* ubsan.h (ubsan_instrument_float_cast): Declare.
      testsuite/
      	* c-c++-common/ubsan/float-cast-overflow-1.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-10.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-2.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-3.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-4.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-5.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-6.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-7.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-7.h: New file.
      	* c-c++-common/ubsan/float-cast-overflow-8.c: New test.
      	* c-c++-common/ubsan/float-cast-overflow-9.c: New test.
      	* c-c++-common/ubsan/float-cast.h: New file.
      	* g++.dg/ubsan/float-cast-overflow-bf.C: New test.
      	* gcc.dg/ubsan/float-cast-overflow-bf.c: New test.
      libsanitizer/
      	* ubsan/ubsan_value.cc (getFloatValue): Handle 96-bit
      	floating-point types.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r210862
      Marek Polacek committed
  8. 21 May, 2014 1 commit
  9. 17 May, 2014 1 commit
    • use templates instead of gengtype for typed allocation functions · 766090c2
      gcc/ChangeLog:
      
      	* alias.c (record_alias_subset): Adjust.
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      	* cfgloop.c (alloc_loop): Likewise.
      	(flow_loops_find): Likewise.
      	(rescan_loop_exit): Likewise.
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      	* cgraph.c (insert_new_cgraph_node_version): Likewise.
      	(cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_allocate_init_indirect_info): Likewise.
      	* cgraphclones.c (cgraph_clone_edge): Likewise.
      	* cgraphunit.c (add_asm_node): Likewise.
      	(init_lowered_empty_function): Likewise.
      	* config/aarch64/aarch64.c (aarch64_init_machine_status):
      	Likewise.
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_use_linkage): Likewise.
      	* config/arc/arc.c (arc_init_machine_status): Likewise.
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      	* config/c6x/c6x.c (c6x_init_machine_status): Likewise.
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      	* config/darwin.c (machopic_indirection_name): Likewise.
      	(darwin_build_constant_cfstring): Likewise.
      	(darwin_enter_string_into_cfstring_table): Likewise.
      	* config/epiphany/epiphany.c (epiphany_init_machine_status):
      	* Likewise.
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      	* config/i386/winnt.c (i386_pe_record_external_function):
      	Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      	(i386_pe_record_stub): Likewise.
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      	(m32c_note_pragma_address): Likewise.
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      	(mips16_local_alias): Likewise.
      	(mips_init_machine_status): Likewise.
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      	* config/msp430/msp430.c (msp430_init_machine_status): Likewise.
      	* config/nds32/nds32.c (nds32_init_machine_status): Likewise.
      	* config/nios2/nios2.c (nios2_init_machine_status): Likewise.
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(pa_get_deferred_plabel): Likewise.
      	* config/rl78/rl78.c (rl78_init_machine_status): Likewise.
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      	* config/score/score.c (score_output_external): Likewise.
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      	* config/spu/spu.c (spu_init_machine_status): Likewise.
      	* config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
      	* config/tilepro/tilepro.c (tilepro_init_machine_status):
      	* Likewise.
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      	* coverage.c (coverage_end_function): Likewise.
      	* dbxout.c (dbxout_init): Likewise.
      	* doc/gty.texi: Don't mention variable_size attribute.
      	* dwarf2cfi.c (new_cfi): Adjust.
      	(new_cfi_row): Likewise.
      	(copy_cfi_row): Likewise.
      	(create_cie_data): Likewise.
      	* dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string_in_table): Likewise.
      	(add_addr_table_entry): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_location_or_const_value_attribute): Likewise.
      	(add_linkage_name): Likewise.
      	(lookup_filename): Likewise.
      	(dwarf2out_var_location): Likewise.
      	(new_line_info_table): Likewise.
      	(dwarf2out_init): Likewise.
      	(mem_loc_descriptor): Likewise.
      	(loc_descriptor): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(comp_dir_string): Likewise.
      	(dwarf2out_vms_debug_main_pointer): Likewise.
      	(string_cst_pool_decl): Likewise.
      	* emit-rtl.c (set_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      	(init_emit_regs): Likewise.
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(get_hard_reg_initial_val): Likewise.
      	(allocate_struct_function): Likewise.
      	(prepare_function_start): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      	* gengtype.c (variable_size_p): Remove function.
      	(enum alloc_quantity): Remove enum.
      	(write_typed_alloc_def): Remove function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(main): Adjust.
      	* ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
      	(ggc_cleared_alloc_ptr_array_two_args): Likewise.
      	* ggc.h (ggc_alloc): new function.
      	(ggc_cleared_alloc): Likewise.
      	(ggc_vec_alloc): Template on type of vector element, and remove
      	element size argument.
      	(ggc_cleared_vec_alloc): Likewise.
      	* gimple.c (gimple_build_omp_for): Adjust.
      	(gimple_copy): Likewise.
      	* ipa-cp.c (get_replacement_map): Likewise.
      	(find_aggregate_values_for_callers_subset): Likewise.
      	(known_aggs_to_agg_replacement_list): Likewise.
      	* ipa-devirt.c (get_odr_type): Likewise.
      	* ipa-prop.c (ipa_node_duplication_hook): Likewise.
      	(read_agg_replacement_chain): Likewise.
      	* loop-iv.c (get_simple_loop_desc): Likewise.
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(input_cfg): Likewise.
      	* optabs.c (set_optab_libfunc): Likewise.
      	(init_tree_optimization_optabs): Likewise.
      	(set_conv_libfunc): Likewise.
      	* passes.c (do_per_function_toporder): Likewise.
      	* rtl.h: Don't use variable_size gty attribute.
      	* sese.c (if_region_set_false_region): Adjust.
      	* stringpool.c (gt_pch_save_stringpool): Likewise.
      	* target-globals.c (save_target_globals): Likewise.
      	* toplev.c (general_init): Likewise.
      	* trans-mem.c (record_tm_replacement): Likewise.
      	(split_bb_make_tm_edge): Likewise.
      	* tree-cfg.c (move_sese_region_to_fn): Likewise.
      	* tree-data-ref.h (lambda_vector_new): Likewise.
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      	* tree-ssa-operands.h: Don't use variable_size gty attribute.
      	* tree-ssa.c (init_tree_ssa): Adjust.
      	* tree-ssanames.c (set_range_info): Likewise.
      	(get_ptr_info): Likewise.
      	(duplicate_ssa_name_ptr_info): Likewise.
      	(duplicate_ssa_name_range_info): Likewise.
      	* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
      	(unpack_ts_fixed_cst_value_fields): Likewise.
      	* tree.c (build_fixed): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_priority_info): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(decl_debug_args_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      	* ubsan.c (decl_for_type_insert): Likewise.
      	* varasm.c (get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(create_block_symbol): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      	(record_tm_clone_pair): Likewise.
      	* varpool.c (varpool_create_empty_node): Likewise.
      
      gcc/c/ChangeLog:
      
      	* c-decl.c (finish_struct): Adjust.
      	(finish_enum): Likewise.
      	(bind): Adjust.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(store_parm_decls): Likewise.
      	(c_push_function_context): Likewise.
      	* c-lang.h: Remove usage of variable_size gty attribute.
      	* c-parser.c (c_parse_init): Adjust.
      	(c_parse_file): Likewise.
      
      gcc/java/ChangeLog:
      
      	* class.c (add_method_1): Adjust.
      	(java_treetreehash_new): Likewise.
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      	* expr.c (add_type_assertion): Likewise.
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(lang_decl): don't use variable_size gty attribute.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Adjust.
      	(lang_type): Don't use variable_size gty attribute.
      	* jcf-parse.c (java_parse_file): Adjust.
      	(process_zip_dir): Likewise.
      	* jcf.h: Remove usage of variable_size gty attribute.
      	* jcf-reader.c (jcf_parse_constant_pool): Adjust.
      	(jcf_parse_bootstrap_methods): Likewise.
      
      gcc/objc/ChangeLog:
      
      	* objc-act.c (objc_build_string_object): Adjust.
      	(continue_class): Likewise.
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
      	* objc-map.c (objc_map_alloc_ggc): Likewise.
      	(objc_map_private_resize): Likewise.
      	* objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init):
      	Likewise.
      	(hash_name_enter): Likewise.
      
      gcc/cp/ChangeLog:
      
      	* class.c (sorted_fields_type_new): Adjust.
      	* cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      	* cp-tree.h: Remove usage of variable_size gty attribute.
      	* decl.c (make_label_decl): Adjust.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend_1): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      	* parser.c (cp_lexer_alloc): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class_1): Likewise.
      	(push_tinst_level): Likewise.
      	* semantics.c (register_constexpr_fundef): Likewise.
      	(cxx_eval_call_expression): Likewise.
      	* typeck2.c (abstract_virtuals_error_sfinae): Likewise.
      
      gcc/fortran/ChangeLog:
      
      	* f95-lang.c (pushlevel): Adjust.
      	* trans-decl.c (gfc_allocate_lang_decl): Adjust.
      	(gfc_find_module): Likewise.
      	* trans-types.c (gfc_get_nodesc_array_type): Likewise.
      	(gfc_get_array_type_bounds): Likewise.
      	(gfc_nonrestricted_type): Likewise.
      	* trans.h: Don't use variable_size gty attribute.
      
      gcc/ada/ChangeLog:
      
      	* gcc-interface/ada-tree.h: Remove usage of variable_size gty
      	annotation.
      	* gcc-interface/decl.c (annotate_value): Adjust.
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(push_range_check_info): Likewise.
      	(Loop_Statement_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	* gcc-interface/utils.c (init_gnat_utils): Likewise.
      	(gnat_pushlevel): Likewise.
      	(maybe_pad_type): Likewise.
      
      gcc/go/ChangeLog:
      
      	* go-lang.c (struct GTY): Don't use variable_size gty attribute.
      
      gcc/c-family/ChangeLog:
      
      	* c-common.h (sorted_fields_type): Remove variable_size GTY attribute.
      	* c-pragma.c (push_alignment): Adjust.
      	(handle_pragma_push_options): Likewise.
      
      gcc/lto/ChangeLog:
      
      	* lto-tree.h: Don't use variable_size gty attribute.
      	* lto.c (lto_read_in_decl_state): Adjust.
      	(create_subid_section_table): Likewise.
      	(lto_flatten_files): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      gcc/objcp/ChangeLog:
      
      	* objcp-decl.h: Adjust.
      
      From-SVN: r210566
      Trevor Saunders committed
  10. 23 Apr, 2014 1 commit
    • re PR sanitizer/60275 ([UBSAN] Add… · 1c33c9b7
      re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal)
      
      	PR sanitizer/60275
      	* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
      	New options.
      	* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
      	if flag_sanitize_undefined_trap_on_error.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
      	BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
      	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
      	BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
      	BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
      	* ubsan.c (ubsan_instrument_unreachable): Return
      	__builtin_trap () if flag_sanitize_undefined_trap_on_error.
      	(ubsan_expand_null_ifn): Emit __builtin_trap ()
      	if flag_sanitize_undefined_trap_on_error and
      	__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
      	(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
      	instrument_bool_enum_load): Emit __builtin_trap () if
      	flag_sanitize_undefined_trap_on_error and
      	__builtin_handle_*_abort () if !flag_sanitize_recover.
      	* doc/invoke.texi (-fsanitize-recover,
      	-fsanitize-undefined-trap-on-error): Document.
      c-family/
      	* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
      	if flag_sanitize_undefined_trap_on_error.
      	(ubsan_instrument_division, ubsan_instrument_shift,
      	ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
      	if !flag_sanitize_recover.
      testsuite/
      	* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
      	-fno-sanitize-recover to dg-options.
      	* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
      	add -std=c++11 to dg-options.
      	* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
      	* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
      	add -std=c++1y to dg-options.
      	* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
      	-fno-sanitize-recover to dg-options.
      	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
      	* c-c++-common/ubsan/vla-4.c: Likewise.
      	* c-c++-common/ubsan/pr59503.c: Likewise.
      	* c-c++-common/ubsan/vla-3.c: Likewise.
      	* c-c++-common/ubsan/save-expr-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
      	* c-c++-common/ubsan/shift-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
      	* c-c++-common/ubsan/vla-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
      	* c-c++-common/ubsan/pr60613-1.c: Likewise.
      	* c-c++-common/ubsan/shift-6.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-3.c: New test.
      	* c-c++-common/ubsan/overflow-add-4.c: New test.
      	* c-c++-common/ubsan/div-by-zero-6.c: New test.
      	* c-c++-common/ubsan/div-by-zero-7.c: New test.
      
      From-SVN: r209672
      Jakub Jelinek committed
  11. 17 Apr, 2014 3 commits
    • pass cfun to pass::execute · be55bfe6
      gcc/
      	* passes.c (opt_pass::execute): Adjust.
      	(pass_manager::execute_pass_mode_switching): Likewise.
      	(early_local_passes::execute): Likewise.
      	(execute_one_pass): Pass cfun to the pass's execute method.
      	* tree-pass.h (opt_pass::execute): Add function * argument.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
      	except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
      	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
      	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
      	ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
      	ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
      	lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
      	postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
      	reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
      	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
      	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
      	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
      	tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
      	tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
      	Adjust.
      
      From-SVN: r209482
      Trevor Saunders committed
    • pass current function to opt_pass::gate () · 1a3d085c
      gcc/
      	* passes.c (opt_pass::gate): Take function * argument.
      	(gate_all_early_local_passes): Merge into
      	(early_local_passes::gate): this.
      	(gate_all_early_optimizations): Merge into
      	(all_early_optimizations::gate): this.
      	(gate_all_optimizations): Mege into
      	(all_optimizations::gate): this.
      	(gate_all_optimizations_g): Merge into
      	(all_optimizations_g::gate): this.
      	(gate_rest_of_compilation): Mege into
      	(rest_of_compilation::gate): this.
      	(gate_postreload): Merge into
      	(postreload::gate): this.
      	(dump_one_pass): Pass cfun to the pass's gate method.
      	(execute_ipa_summary_passes): Likewise.
      	(execute_one_pass): Likewise.
      	(ipa_write_summaries_2): Likewise.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_read_summaries_1): Likewise.
      	(ipa_read_optimization_summaries_1): Likewise.
      	(execute_ipa_stmt_fixups): Likewise.
      	* tree-pass.h (opt_pass::gate): Add function * argument.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
      	combine-stack-adj.c, combine.c, compare-elim.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
      	config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
      	dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
      	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
      	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
      	loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
      	omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
      	reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
      	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
      	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
      	tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
      	tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
      	var-tracking.c, vtable-verify.c, web.c: Adjust.
      
      gcc/testsuite/
      	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfasign.c,
      	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfasign.c: Adjust.
      
      From-SVN: r209481
      Trevor Saunders committed
    • remove has_gate · 0481253d
      gcc/
      	* passes.c (dump_one_pass): don't check pass->has_gate.
      	(execute_ipa_summary_passes): Likewise.
      	(execute_one_pass): Likewise.
      	(ipa_write_summaries_2): Likewise.
      	(ipa_write_optimization_summaries_1): Likewise.
      	(ipa_read_optimization_summaries_1): Likewise.
      	(execute_ipa_stmt_fixups): Likewise.
      	* tree-pass.h (pass_data::has_gate): Remove.
      	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
      	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
      	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
      	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
      	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
      	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
      	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
      	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
      	gimple-low.c, gimple-ssa-isolate-paths.c,
      	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
      	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
      	ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
      	modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
      	recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
      	reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
      	trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
      	tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
      	tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
      	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
      	tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
      	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
      	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
      	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
      	Adjust.
      
      gcc/testsuite/
      	* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfassign.c,
      	gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfassign.c: Adjust.
      
      From-SVN: r209479
      Trevor Saunders committed
  12. 26 Mar, 2014 2 commits
  13. 19 Mar, 2014 1 commit
  14. 18 Mar, 2014 2 commits
    • re PR sanitizer/60557 (UBSAN: ICE after ubsan_expand_null_ifn) · ead96f13
      	PR sanitizer/60557
      	* ubsan.c (ubsan_instrument_unreachable): Call
      	initialize_sanitizer_builtins.
      	(ubsan_pass): Likewise.
      
      From-SVN: r208652
      Jakub Jelinek committed
    • re PR sanitizer/60535 (Link failure with -flto and -fsanitize=undefined) · 415e2e6b
      	PR sanitizer/60535
      	* ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
      	varpool_finalize_decl instead of rest_of_decl_compilation.
      lto/
      	* lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
      	and complex_{float,{,long_}double}_type_node.
      testsuite/
      	* c-c++-common/ubsan/null-1.c: Don't skip if -flto.
      	* c-c++-common/ubsan/null-2.c: Likewise.
      	* c-c++-common/ubsan/null-3.c: Likewise.
      	* c-c++-common/ubsan/null-4.c: Likewise.
      	* c-c++-common/ubsan/null-5.c: Likewise.
      	* c-c++-common/ubsan/null-6.c: Likewise.
      	* c-c++-common/ubsan/null-7.c: Likewise.
      	* c-c++-common/ubsan/null-8.c: Likewise.
      	* c-c++-common/ubsan/null-9.c: Likewise.
      	* c-c++-common/ubsan/null-10.c: Likewise.
      	* c-c++-common/ubsan/null-11.c: Likewise.
      	* c-c++-common/ubsan/overflow-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-int128.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-4.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-sub-2.c: Likewise.
      	* c-c++-common/ubsan/pr59333.c: Likewise.
      	* c-c++-common/ubsan/pr59503.c: Likewise.
      	* c-c++-common/ubsan/pr59667.c: Likewise.
      	* c-c++-common/ubsan/undefined-1.c: Likewise.
      	* g++.dg/ubsan/pr59250.C: Likewise.
      	* g++.dg/ubsan/pr59306.C: Likewise.
      
      From-SVN: r208651
      Jakub Jelinek committed
  15. 08 Jan, 2014 1 commit
  16. 02 Jan, 2014 1 commit
  17. 20 Dec, 2013 1 commit
    • ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h. · ac0ff9f2
      	* ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h.
      	(ubsan_type_descriptor): Handle BOOLEAN_TYPE and ENUMERAL_TYPE
      	like INTEGER_TYPE.
      	(instrument_bool_enum_load): New function.
      	(ubsan_pass): Call it.
      	(gate_ubsan): Also enable for SANITIZE_BOOL or SANITIZE_ENUM.
      	* asan.c (create_cond_insert_point): No longer static.
      	* asan.h (create_cond_insert_point): Declare.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE): New
      	built-in.
      	* opts.c (common_handle_option): Handle -fsanitize=bool and
      	-fsanitize=enum.
      	* builtins.c (fold_builtin_memory_op): When sanitizing bool
      	and enum loads, don't use enum or bool types for memcpy folding.
      	* flag-types.h (SANITIZE_BOOL, SANITIZE_ENUM): New.
      	(SANITIZE_UNDEFINED): Or these in.
      
      	* c-c++-common/ubsan/load-bool-enum.c: New test.
      
      From-SVN: r206143
      Jakub Jelinek committed
  18. 09 Dec, 2013 1 commit
    • Eliminate FOR_EACH_BB macro. · 11cd3bed
      gcc/
      	* basic-block.h (FOR_EACH_BB): Eliminate macro.
      
      	* asan.c (transform_statements, execute_sanopt): Eliminate
      	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
      	explicit.
      	* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Likewise.
      	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges,
      	set_edge_can_fallthru_flag, fix_up_fall_thru_edges,
      	fix_crossing_unconditional_branches, add_reg_crossing_jump_notes,
      	insert_section_boundary_note, rest_of_handle_reorder_blocks,
      	duplicate_computed_gotos): Likewise.
      	* cfg.c (clear_edges, compact_blocks, brief_dump_cfg): Likewise.
      	* cfganal.c (find_unreachable_blocks, add_noreturn_fake_exit_edges,
      	compute_dominance_frontiers_1, single_pred_before_succ_order): Likewise.
      	* cfgbuild.c (find_many_sub_basic_blocks): Likewise.
      	* cfgcleanup.c (try_optimize_cfg, delete_dead_jumptables): Likewise.
      	* cfgexpand.c (add_scope_conflicts, discover_nonconstant_array_refs):
      	Likewise.
      	* cfgloop.c (flow_loops_cfg_dump, get_loop_body, record_loop_exits,
      	verify_loop_structure): Likewise.
      	* cfgloopanal.c (mark_loop_exit_edges): Likewise.
      	* cfgrtl.c (compute_bb_for_insn, find_partition_fixes,
      	verify_hot_cold_block_grouping, purge_all_dead_edges,
      	fixup_abnormal_edges, record_effective_endpoints,
      	outof_cfg_layout_mode, fixup_reorder_chain, force_one_exit_fallthru,
      	break_superblocks): Likewise.
      	* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges,
      	cgraph_rebuild_references): Likewise.
      	* combine-stack-adj.c (combine_stack_adjustments): Likewise.
      	* combine.c (delete_noop_moves, create_log_links,
      	combine_instructions): Likewise.
      	* config/arm/arm.c (thumb1_reorg, thumb2_reorg): Likewise.
      	* config/bfin/bfin.c (bfin_gen_bundles, reorder_var_tracking_notes):
      	Likewise.
      	* config/c6x/c6x.c (c6x_gen_bundles, conditionalize_after_sched,
      	c6x_reorg): Likewise.
      	* config/epiphany/resolve-sw-modes.c (resolve_sw_modes): Likewise.
      	* config/frv/frv.c (frv_optimize_membar): Likewise.
      	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
      	* config/ia64/ia64.c (ia64_reorg): Likewise.
      	* config/mips/mips.c (mips_annotate_pic_calls): Likewise.
      	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
      	* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot): Likewise.
      	* config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
      	* config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Likewise.
      	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
      	* config/tilegx/tilegx.c (tilegx_gen_bundles,
      	reorder_var_tracking_notes): Likewise.
      	* config/tilepro/tilepro.c (tilepro_gen_bundles,
      	reorder_var_tracking_notes): Likewise.
      	* coverage.c (coverage_compute_cfg_checksum): Likewise.
      	* cprop.c (compute_hash_table_work, compute_cprop_data,
      	local_cprop_pass, find_implicit_sets): Likewise.
      	* cse.c (cse_condition_code_reg): Likewise.
      	* dce.c (prescan_insns_for_dce): Likewise.
      	* df-core.c (df_compact_blocks): Likewise.
      	* df-problems.c (df_word_lr_alloc): Likewise.
      	* df-scan.c (df_scan_start_dump, df_scan_blocks, df_insn_rescan_all,
      	df_update_entry_exit_and_calls): Likewise.
      	* dominance.c (calculate_dominance_info, verify_dominators,
      	debug_dominance_info): Likewise.
      	* dse.c (dse_step5_nospill): Likewise.
      	* except.c (finish_eh_generation): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns,
      	rest_of_match_asm_constraints): Likewise.
      	* gcse.c (compute_hash_table_work, prune_expressions,
      	compute_pre_data, compute_code_hoist_vbeinout, hoist_code,
      	calculate_bb_reg_pressure, compute_ld_motion_mems): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour,
      	find_explicit_erroneous_behaviour): Likewise.
      	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa,
      	rewrite_cross_bb_scalar_deps_out_of_ssa): Likewise.
      	* haifa-sched.c (haifa_sched_init): Likewise.
      	* hw-doloop.c (discover_loops, set_bb_indices, reorder_loops):
      	Likewise.
      	* ifcvt.c (if_convert): Likewise.
      	* init-regs.c (initialize_uninitialized_regs): Likewise.
      	* ipa-prop.c (ipcp_transform_function): Likewise.
      	* ipa-pure-const.c (analyze_function): Likewise.
      	* ipa-split.c (find_split_points, execute_split_functions): Likewise.
      	* ira-build.c (form_loop_tree): Likewise.
      	* ira-costs.c (find_costs_and_classes): Likewise.
      	* ira-emit.c (emit_moves, add_ranges_and_copies, ira_emit): Likewise.
      	* ira.c (decrease_live_ranges_number, compute_regs_asm_clobbered,
      	mark_elimination, update_equiv_regs, find_moveable_pseudos,
      	split_live_ranges_for_shrink_wrap, allocate_initial_values): Likewise.
      	* jump.c (mark_all_labels): Likewise.
      	* lcm.c (compute_laterin, compute_insert_delete, compute_available,
      	compute_nearerout, compute_rev_insert_delete): Likewise.
      	* loop-init.c (fix_loop_structure): Likewise.
      	* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
      	* lower-subreg.c (decompose_multiword_subregs,
      	decompose_multiword_subregs): Likewise.
      	* lra-assigns.c (assign_by_spills): Likewise.
      	* lra-coalesce.c (lra_coalesce): Likewise.
      	* lra-constraints.c (lra_inheritance, remove_inheritance_pseudos):
      	Likewise.
      	* lra-eliminations.c (lra_init_elimination): Likewise.
      	* lra-spills.c (assign_spill_hard_regs, spill_pseudos,
      	lra_final_code_change): Likewise.
      	* lra.c (remove_scratches, check_rtl, has_nonexceptional_receiver,
      	update_inc_notes): Likewise.
      	* mcf.c (adjust_cfg_counts): Likewise.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	* omp-low.c (optimize_omp_library_calls, expand_omp_taskreg,
      	expand_omp_target): Likewise.
      	* postreload-gcse.c (alloc_mem, compute_hash_table): Likewise.
      	* postreload.c (reload_cse_regs_1): Likewise.
      	* predict.c (strip_predict_hints, tree_bb_level_predictions,
      	tree_estimate_probability, expensive_function_p,
      	estimate_bb_frequencies, compute_function_frequency): Likewise.
      	* profile.c (is_inconsistent, compute_branch_probabilities,
      	branch_prob): Likewise.
      	* ree.c (find_removable_extensions): Likewise.
      	* reg-stack.c (compensate_edges, convert_regs, reg_to_stack): Likewise.
      	* regcprop.c (copyprop_hardreg_forward): Likewise.
      	* reginfo.c (init_subregs_of_mode): Likewise.
      	* regrename.c (regrename_analyze): Likewise.
      	* regstat.c (regstat_compute_ri, regstat_compute_calls_crossed):
      	Likewise.
      	* reload1.c (has_nonexceptional_receiver, reload,
      	calculate_elim_costs_all_insns): Likewise.
      	* resource.c (init_resource_info, free_resource_info): Likewise.
      	* sched-ebb.c (schedule_ebbs): Likewise.
      	* sched-rgn.c (is_cfg_nonregular, find_single_block_region,
      	haifa_find_rgns, sched_rgn_local_init): Likewise.
      	* sel-sched-dump.c (sel_dump_cfg_2): Likewise.
      	* sel-sched-ir.c (init_lv_sets, free_lv_sets,
      	make_regions_from_the_rest): Likewise.
      	* sese.c (build_sese_loop_nests, sese_build_liveouts): Likewise.
      	* stack-ptr-mod.c (notice_stack_pointer_modification): Likewise.
      	* store-motion.c (compute_store_table, build_store_vectors,
      	one_store_motion_pass): Likewise.
      	* tracer.c (tail_duplicate): Likewise.
      	* trans-mem.c (compute_transaction_bits): Likewise.
      	* tree-call-cdce.c (tree_call_cdce): Likewise.
      	* tree-cfg.c (replace_loop_annotate, factor_computed_gotos,
      	fold_cond_expr_cond, make_edges, assign_discriminators,
      	make_abnormal_goto_edges, cleanup_dead_labels, group_case_labels,
      	dump_cfg_stats, gimple_verify_flow_info, print_loop,
      	execute_fixup_cfg): Likewise.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_1, merge_phi_nodes): Likewise.
      	* tree-complex.c (init_dont_simulate_again, tree_lower_complex):
      	Likewise.
      	* tree-dfa.c (collect_dfa_stats, dump_enumerated_decls): Likewise.
      	* tree-eh.c (execute_lower_resx, execute_lower_eh_dispatch,
      	mark_reachable_handlers): Likewise.
      	* tree-emutls.c (lower_emutls_function_body): Likewise.
      	* tree-if-conv.c (main_tree_if_conversion): Likewise.
      	* tree-inline.c (optimize_inline_calls): Likewise.
      	* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Likewise.
      	* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
      	* tree-object-size.c (compute_object_sizes): Likewise.
      	* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees,
      	insert_backedge_copies, tree_profiling): Likewise.
      	* tree-scalar-evolution.c (scev_const_prop): Likewise.
      	* tree-sra.c (scan_function, sra_modify_function_body,
      	propagate_dereference_distances, ipa_sra_modify_function_body,
      	convert_callers): Likewise.
      	* tree-ssa-ccp.c (ccp_initialize, execute_fold_all_builtins): Likewise.
      	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
      	create_outofssa_var_map, coalesce_partitions): Likewise.
      	* tree-ssa-copy.c (init_copy_prop): Likewise.
      	* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
      	* tree-ssa-dce.c (find_obviously_necessary_stmts,
      	eliminate_unnecessary_stmts): Likewise.
      	* tree-ssa-dom.c (free_all_edge_infos, tree_ssa_dominator_optimize):
      	Likewise.
      	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
      	* tree-ssa-live.c (clear_unused_block_pointer, remove_unused_locals,
      	new_tree_live_info, calculate_live_on_exit, dump_live_info,
      	analyze_memory_references, fill_always_executed_in,
      	tree_ssa_lim_finalize): Likewise.
      	* tree-ssa-loop-manip.c (find_uses_to_rename, verify_loop_closed_ssa):
      	Likewise.
      	* tree-ssa-math-opts.c (execute_cse_reciprocals, execute_cse_sincos,
      	execute_optimize_bswap, execute_optimize_widening_mul): Likewise.
      	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
      	* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
      	* tree-ssa-tail-merge.c (find_same_succ, reset_cluster_vectors):
      	Likewise.
      	* tree-ssa-ter.c (find_replaceable_exprs): Likewise.
      	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges,
      	tree_ssa_uncprop): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars,
      	execute_late_warn_uninitialized): Likewise.
      	* tree-ssa.c (verify_ssa, execute_update_addresses_taken): Likewise.
      	* tree-stdarg.c (check_all_va_list_escapes, execute_optimize_stdarg):
      	Likewise.
      	* tree-switch-conversion.c (do_switchconv): Likewise.
      	* tree-vect-generic.c (expand_vector_operations): Likewise.
      	* tree-vectorizer.c (adjust_simduid_builtins, note_simd_array_uses,
      	execute_vect_slp): Likewise.
      	* tree-vrp.c (check_all_array_refs, remove_range_assertions,
      	vrp_initialize, identify_jump_threads, instrument_memory_accesses):
      	Likewise.
      	* ubsan.c (ubsan_pass): Likewise.
      	* value-prof.c (verify_histograms, gimple_value_profile_transformations,
      	gimple_find_values_to_profile): Likewise.
      	* var-tracking.c (vt_find_locations, dump_dataflow_sets, vt_emit_notes,
      	vt_initialize, delete_debug_insns, vt_finalize): Likewise.
      
      gcc/testsuite/
      	* g++.dg/plugin/selfassign.c (execute_warn_self_assign): Eliminate
      	use of FOR_EACH_BB in favor of FOR_EACH_BB_FN, to make use of cfun
      	explicit.
      	* gcc.dg/plugin/selfassign.c (execute_warn_self_assign): Likewise.
      
      From-SVN: r205828
      David Malcolm committed
  19. 05 Dec, 2013 1 commit
    • re PR sanitizer/59333 (ICE with long long and -m32 -fsanitize=undefined) · 1769415d
      	PR sanitizer/59333
      	PR sanitizer/59397
      	* ubsan.c: Include rtl.h and expr.h.
      	(ubsan_encode_value): Add new parameter.  If expanding, assign
      	a stack slot for DECL_RTL of the temporary and call expand_assignment.
      	Handle BOOLEAN_TYPE and ENUMERAL_TYPE.
      	(ubsan_build_overflow_builtin): Adjust ubsan_encode_value call.
      	* ubsan.h (ubsan_encode_value): Adjust declaration.
      	* internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move
      	ubsan_build_overflow_builtin above expand_normal call.  Surround this call
      	with push_temp_slots and pop_temp_slots.
      	(ubsan_expand_si_overflow_neg_check): Likewise.
      	(ubsan_expand_si_overflow_mul_check): Likewise.
      testsuite/
      	* c-c++-common/ubsan/pr59333.c: New test.
      	* c-c++-common/ubsan/pr59397.c: New test.
      
      From-SVN: r205714
      Marek Polacek committed
  20. 04 Dec, 2013 1 commit
  21. 27 Nov, 2013 2 commits
  22. 26 Nov, 2013 1 commit
  23. 25 Nov, 2013 1 commit
  24. 22 Nov, 2013 2 commits
    • ubsan.c (ubsan_source_location): Don't crash on unknown locations. · 0a508bb6
      	* ubsan.c (ubsan_source_location): Don't crash on
      	unknown locations.
      	(ubsan_pass): Ignore clobber stmts.
      
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
      	* opts.c (common_handle_option): Add -fsanitize=return.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
      	or it into SANITIZE_UNDEFINED.
      c-family/
      	* c-ubsan.h (ubsan_instrument_return): New prototype.
      	* c-ubsan.c (ubsan_instrument_return): New function.
      cp/
      	* cp-gimplify.c: Include target.h and c-family/c-ubsan.h.
      	(cp_ubsan_maybe_instrument_return): New function.
      	(cp_genericize): Call it if -fsanitize=return.
      testsuite/
      	* g++.dg/ubsan/return-1.C: New test.
      	* g++.dg/ubsan/return-2.C: New test.
      
      From-SVN: r205283
      Jakub Jelinek committed
    • gimple.h: Remove all includes. · 2fb9a547
      
      	* gimple.h: Remove all includes.
      	(recalculate_side_effects): Move prototype to gimplify.h.
      	* Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
      	* gengtype.c (open_base_files): Add gimple.h include list.
      	* gimplify.h (recalculate_side_effects): Relocate prototype here.
      	* gimple.c: Adjust include list.
      	(recalculate_side_effects): Move to gimplify.c.
      	* gimplify.c: Adjust include list.
      	(recalculate_side_effects): Relocate from gimple.c.
      	* alias.c: Add required include files removed from gimple.h.
      	* asan.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* data-streamer.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* langhooks.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* omp-low.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* sese.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* symtab.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* varpool.c: Likewise.
      	* var-tracking.c: Likewise.
      	* vtable-verify.c: Likewise.
      
      	* ada/gcc-interface/trans.c: Add required include files from gimple.h.
      
      	* c/c-typeck.c: Add required include files from gimple.h.
      
      	* c-family/c-common.c: Add required include files from gimple.h.
      	* c-family/c-gimplify.c: Likewise
      	* c-family/cilk.c: Likewise
      
      	* cp/class.c: Add required include files from gimple.h.
      	* cp/cp-gimplify.c: Likewise
      	* cp/decl2.c: Likewise
      	* cp/init.c: Likewise
      	* cp/optimize.c: Likewise
      	* cp/pt.c: Likewise
      	* cp/semantics.c: Likewise
      	* cp/tree.c: Likewise
      	* cp/typeck.c: Likewise
      	* cp/vtable-class-hierarchy.c: Likewise
      
      	* fortran/trans.c: Add required include files from gimple.h.
      	* fortran/trans-expr.c: Likewise
      	* fortran/trans-openmp.c: Likewise
      
      	* go/gofrontend/expressions.cc: Add required include files from
      	gimple.h.
      	* go/gofrontend/gogo-tree.cc: Likewise
      	* go/gofrontend/types.cc: Likewise
      	* go/go-gcc.cc: Likewise
      	* go/go-lang.c: Likewise
      
      	* java/java-gimplify.c: Add required include files from gimple.h.
      
      	* lto/lto.c: Add required include files from gimple.h.
      	* lto/lto-lang.c: Likewise
      	* lto/lto-object.c: Likewise
      	* lto/lto-partition.c: Likewise
      	* lto/lto-symtab.c: Likewise
      
      	* objc/objc-act.c: Add required include files from gimple.h.
      
      	* config/darwin.c: Add required include files removed from gimple.h.
      	* config/aarch64/aarch64-builtins.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      
      	* testsuite/gcc.dg/plugin/finish_unit_plugin.c: Add required include
      	files removed from gimple.h.
      	* testsuite/gcc.dg/plugin/ggcplug.c: Likewise.
      	* testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
      	* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
      	* testsuite/gcc.dg/plugin/start_unit_plugin.c: Likewise.
      	* testsuite/g++.dg/plugin/selfassign.c: Likewise.
      
      From-SVN: r205272
      Andrew MacLeod committed
  25. 19 Nov, 2013 2 commits
    • Factor unrelated declarations out of tree.h. · d8a2d370
      This patch applies the rule that functions defined in FOO.c must be
      declared in FOO.h. One of the worst offenders in the code base is
      tree.h, unsurprisingly.
      
      The patch creates several new headers: attribs.h calls.h fold-const.h
      gcc-symtab.h print-rtl.h print-tree.h stmt.h stor-layout.h stringpool.h
      tree-nested.h tree-object-size.h varasm.h.
      
      Functions in each corresponding .c file got moved to those headers and
      others that already existed. I wanted to make this patch as mechanical
      as possible, so I made no attempt to fix problems like having
      build_addr defined in tree-inline.c. I left that for later.
      
      There were some declarations that I could not move out of tree.h
      because of header poisoning or the use of target macros. We forbid the
      inclusion of things like expr.h from FE files. While that's a
      reasonable idea, the FE file *still* manage to at expr.c functionality
      because the declarations they want to use were defined in tree.h.
      
      The affected files are builtins.h, emit-rtl.h and expr.h.
      
      If that functionality is allowed to be accessed from the FEs,
      then I will later move those functions out of expr.c into tree.c.
      I have moved these declarations to the bottom of tree.h so they
      are easy to identify later.
      
      There is a namespace collision with libcpp. The file gcc/symtab.c
      cannot use gcc/symtab.h because the #include command picks up
      libcpp/include/symtab.h first. So I named this file gcc-symtab.h
      for now.
      
      Finally, I added a new header to PLUGIN_HEADERS to account for the
      tree.h refactoring. I did not add all headers factored out of tree.h
      because it is unclear (and impossible to tell) what plugins need.
      This adds the one header used by the plugins in the testsuite.
      
      This will be changing quite dramatically as we progress with the header
      refactoring.
      
      This patch should offer some minimal incremental build advantages
      by reducing the size of tree.h. Changes that would otherwise
      affected tree.h, will now go to other headers which are less
      frequently included.
      
      	* tree.h: Include fold-const.h.
      	(aggregate_value_p): Moved to function.h.
      	(alloca_call_p): Moved to calls.h.
      	(allocate_struct_function): Moved to function.h.
      	(apply_tm_attr): Moved to attribs.h.
      	(array_at_struct_end_p): Moved to expr.h.
      	(array_ref_element_size): Moved to tree-dfa.h.
      	(array_ref_low_bound): Moved to tree-dfa.h.
      	(array_ref_up_bound): Moved to tree.h.
      	(assemble_alias): Moved to cgraph.h.
      	(bit_from_pos): Moved to stor-layout.h.
      	(build_addr): Moved to tree-nested.h.
      	(build_duplicate_type): Moved to tree-inline.h.
      	(build_fold_addr_expr): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
      	(build_fold_indirect_ref): Moved to fold-const.h.
      	(build_fold_indirect_ref_loc): Moved to fold-const.h.
      	(build_personality_function): Moved to tree.h.
      	(build_range_check): Moved to fold-const.h.
      	(build_simple_mem_ref): Moved to fold-const.h.
      	(build_simple_mem_ref_loc): Moved to fold-const.h.
      	(build_tm_abort_call): Moved to trans-mem.h.
      	(byte_from_pos): Moved to stor-layout.h.
      	(call_expr_flags): Moved to calls.h.
      	(can_move_by_pieces): Moved to expr.h.
      	(categorize_ctor_elements): Moved to expr.h.
      	(change_decl_assembler_name): Moved to gcc-symtab.h.
      	(combine_comparisons): Moved to fold-const.h.
      	(complete_ctor_at_level_p): Moved to tree.h.
      	(component_ref_field_offset): Moved to tree-dfa.h.
      	(compute_builtin_object_size): Moved to tree-object-size.h.
      	(compute_record_mode): Moved to stor-layout.h.
      	(constant_boolean_node): Moved to fold-const.h.
      	(constructor_static_from_elts_p): Moved to varasm.h.
      	(cxx11_attribute_p): Moved to attribs.h.
      	(debug_body): Moved to print-tree.h.
      	(debug_find_tree): Moved to tree-inline.h.
      	(debug_fold_checksum): Moved to fold-const.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_raw): Moved to print-tree.h.
      	(debug_tree): Moved to print-tree.h.
      	(debug_vec_tree): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(decl_attributes): Moved to attribs.h.
      	(decl_binds_to_current_def_p): Moved to varasm.h.
      	(decl_default_tls_model): Moved to varasm.h.
      	(decl_replaceable_p): Moved to varasm.h.
      	(div_if_zero_remainder): Moved to fold-const.h.
      	(double_int mem_ref_offset): Moved to fold-const.h.
      	(dump_addr): Moved to print-tree.h.
      	(element_precision): Moved to machmode.h.
      	(expand_dummy_function_end): Moved to function.h.
      	(expand_function_end): Moved to function.h.
      	(expand_function_start): Moved to function.h.
      	(expand_label): Moved to stmt.h.
      	(expr_first): Moved to tree-iterator.h.
      	(expr_last): Moved to tree-iterator.h.
      	(finalize_size_functions): Moved to stor-layout.h.
      	(finish_builtin_struct): Moved to stor-layout.h.
      	(finish_record_layout): Moved to stor-layout.h.
      	(fixup_signed_type): Moved to stor-layout.h.
      	(fixup_unsigned_type): Moved to stor-layout.h.
      	(flags_from_decl_or_type): Moved to calls.h.
      	(fold): Moved to fold-const.h.
      	(fold_abs_const): Moved to fold-const.h.
      	(fold_binary): Moved to fold-const.h.
      	(fold_binary_loc): Moved to fold-const.h.
      	(fold_binary_to_constant): Moved to fold-const.h.
      	(fold_build1): Moved to fold-const.h.
      	(fold_build1_initializer_loc): Moved to fold-const.h.
      	(fold_build1_loc): Moved to fold-const.h.
      	(fold_build1_stat_loc): Moved to fold-const.h.
      	(fold_build2): Moved to fold-const.h.
      	(fold_build2_initializer_loc): Moved to fold-const.h.
      	(fold_build2_loc): Moved to fold-const.h.
      	(fold_build2_stat_loc): Moved to fold-const.h.
      	(fold_build3): Moved to fold-const.h.
      	(fold_build3_loc): Moved to fold-const.h.
      	(fold_build3_stat_loc): Moved to fold-const.h.
      	(fold_build_call_array): Moved to fold-const.h.
      	(fold_build_call_array_initializer): Moved to fold-const.h.
      	(fold_build_call_array_initializer_loc): Moved to fold-const.h.
      	(fold_build_call_array_loc): Moved to fold-const.h.
      	(fold_build_cleanup_point_expr): Moved to fold-const.h.
      	(fold_convert): Moved to fold-const.h.
      	(fold_convert_loc): Moved to fold-const.h.
      	(fold_convertible_p): Moved to fold-const.h.
      	(fold_defer_overflow_warnings): Moved to fold-const.h.
      	(fold_deferring_overflow_warnings_p): Moved to fold-const.h.
      	(fold_fma): Moved to fold-const.h.
      	(fold_ignored_result): Moved to fold-const.h.
      	(fold_indirect_ref): Moved to fold-const.h.
      	(fold_indirect_ref_1): Moved to fold-const.h.
      	(fold_indirect_ref_loc): Moved to fold-const.h.
      	(fold_read_from_constant_string): Moved to fold-const.h.
      	(fold_real_zero_addition_p): Moved to fold-const.h.
      	(fold_single_bit_test): Moved to fold-const.h.
      	(fold_strip_sign_ops): Moved to fold-const.h.
      	(fold_ternary): Moved to fold-const.h.
      	(fold_ternary_loc): Moved to fold-const.h.
      	(fold_unary): Moved to tree-data-ref.h.
      	(fold_unary_ignore_overflow): Moved to fold-const.h.
      	(fold_unary_ignore_overflow_loc): Moved to fold-const.h.
      	(fold_unary_loc): Moved to fold-const.h.
      	(fold_unary_to_constant): Moved to fold-const.h.
      	(fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
      	(fold_undefer_overflow_warnings): Moved to fold-const.h.
      	(folding_initializer): Moved to fold-const.h.
      	(free_temp_slots): Moved to function.h.
      	(generate_setjmp_warnings): Moved to function.h.
      	(get_attribute_name): Moved to attribs.h.
      	(get_identifier): Moved to stringpool.h.
      	(get_identifier_with_length): Moved to stringpool.h.
      	(get_inner_reference): Moved to tree.h.
      	(gimple_alloca_call_p): Moved to calls.h.
      	(gimplify_parameters): Moved to function.h.
      	(highest_pow2_factor): Moved to expr.h.
      	(indent_to): Moved to print-tree.h.
      	(init_attributes): Moved to attribs.h.
      	(init_dummy_function_start): Moved to function.h.
      	(init_function_start): Moved to function.h.
      	(init_inline_once): Moved to tree-inline.h.
      	(init_object_sizes): Moved to tree-object-size.h.
      	(init_temp_slots): Moved to function.h.
      	(init_tree_optimization_optabs): Moved to optabs.h.
      	(initialize_sizetypes): Moved to stor-layout.h.
      	(initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
      	(initializer_constant_valid_p): Moved to varasm.h.
      	(int_const_binop): Moved to fold-const.h.
      	(internal_reference_types): Moved to stor-layout.h.
      	(invert_tree_comparison): Moved to fold-const.h.
      	(invert_truthvalue): Moved to fold-const.h.
      	(invert_truthvalue_loc): Moved to fold-const.h.
      	(is_tm_ending_fndecl): Moved to trans-mem.h.
      	(is_tm_may_cancel_outer): Moved to trans-mem.h.
      	(is_tm_pure): Moved to trans-mem.h.
      	(is_tm_safe): Moved to trans-mem.h.
      	(layout_decl): Moved to stor-layout.h.
      	(layout_type): Moved to stor-layout.h.
      	(lookup_attribute_spec): Moved to attribs.h.
      	(make_accum_type): Moved to stor-layout.h.
      	(make_decl_one_only): Moved to varasm.h.
      	(make_decl_rtl): Moved to tree.h.
      	(make_decl_rtl_for_debug): Moved to varasm.h.
      	(make_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
      	(make_range): Moved to fold-const.h.
      	(make_range_step): Moved to fold-const.h.
      	(make_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_signed_accum_type): Moved to stor-layout.h.
      	(make_signed_fract_type): Moved to stor-layout.h.
      	(make_signed_type): Moved to stor-layout.h.
      	(make_unsigned_accum_type): Moved to stor-layout.h.
      	(make_unsigned_fract_type): Moved to stor-layout.h.
      	(make_unsigned_type): Moved to stor-layout.h.
      	(mark_decl_referenced): Moved to varasm.h.
      	(mark_referenced): Moved to varasm.h.
      	(may_negate_without_overflow_p): Moved to fold-const.h.
      	(maybe_get_identifier): Moved to stringpool.h.
      	(merge_ranges): Moved to fold-const.h.
      	(merge_weak): Moved to varasm.h.
      	(mode_for_size_tree): Moved to stor-layout.h.
      	(multiple_of_p): Moved to fold-const.h.
      	(must_pass_in_stack_var_size): Moved to calls.h.
      	(must_pass_in_stack_var_size_or_pad): Moved to calls.h.
      	(native_encode_expr): Moved to fold-const.h.
      	(native_interpret_expr): Moved to fold-const.h.
      	(non_lvalue): Moved to fold-const.h.
      	(non_lvalue_loc): Moved to fold-const.h.
      	(normalize_offset): Moved to stor-layout.h.
      	(normalize_rli): Moved to stor-layout.h.
      	(notice_global_symbol): Moved to varasm.h.
      	(omit_one_operand): Moved to fold-const.h.
      	(omit_one_operand_loc): Moved to fold-const.h.
      	(omit_two_operands): Moved to fold-const.h.
      	(omit_two_operands_loc): Moved to fold-const.h.
      	(operand_equal_p): Moved to tree-data-ref.h.
      	(parse_input_constraint): Moved to stmt.h.
      	(parse_output_constraint): Moved to stmt.h.
      	(place_field): Moved to stor-layout.h.
      	(pop_function_context): Moved to function.h.
      	(pop_temp_slots): Moved to function.h.
      	(pos_from_bit): Moved to stor-layout.h.
      	(preserve_temp_slots): Moved to function.h.
      	(print_node): Moved to print-tree.h.
      	(print_node_brief): Moved to print-tree.h.
      	(print_rtl): Moved to rtl.h.
      	(process_pending_assemble_externals): Moved to varasm.h.
      	(ptr_difference_const): Moved to fold-const.h.
      	(push_function_context): Moved to function.h.
      	(push_struct_function): Moved to function.h.
      	(push_temp_slots): Moved to function.h.
      	(record_tm_replacement): Moved to trans-mem.h.
      	(relayout_decl): Moved to stor-layout.h.
      	(resolve_asm_operand_names): Moved to stmt.h.
      	(resolve_unique_section): Moved to varasm.h.
      	(rli_size_so_far): Moved to stor-layout.h.
      	(rli_size_unit_so_far): Moved to stor-layout.h.
      	(round_down): Moved to fold-const.h.
      	(round_down_loc): Moved to fold-const.h.
      	(round_up): Moved to fold-const.h.
      	(round_up_loc): Moved to fold-const.h.
      	(set_decl_incoming_rtl): Moved to emit-rtl.h.
      	(set_decl_rtl): Moved to tree.h.
      	(set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
      	(set_user_assembler_name): Moved to varasm.h.
      	(setjmp_call_p): Moved to calls.h.
      	(size_binop): Moved to fold-const.h.
      	(size_binop_loc): Moved to fold-const.h.
      	(size_diffop): Moved to fold-const.h.
      	(size_diffop_loc): Moved to fold-const.h.
      	(size_int_kind): Moved to fold-const.h.
      	(stack_protect_epilogue): Moved to function.h.
      	(start_record_layout): Moved to stor-layout.h.
      	(supports_one_only): Moved to varasm.h.
      	(swap_tree_comparison): Moved to fold-const.h.
      	(tm_malloc_replacement): Moved to trans-mem.h.
      	(tree build_fold_addr_expr_loc): Moved to fold-const.h.
      	(tree build_invariant_address): Moved to fold-const.h.
      	(tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_binary_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_call_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_output_constant_def): Moved to varasm.h.
      	(tree_overlaps_hard_reg_set): Moved to stmt.h.
      	(tree_single_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_single_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_swap_operands_p): Moved to fold-const.h.
      	(tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_unary_nonzero_warnv_p): Moved to fold-const.h.
      	(update_alignment_for_field): Moved to stor-layout.h.
      	(use_register_for_decl): Moved to function.h.
      	(variable_size): Moved to rtl.h.
      	(vector_type_mode): Moved to stor-layout.h.
      	* cgraph.h: Corresponding changes.
      	* emit-rtl.h: Corresponding changes.
      	* expr.h: Corresponding changes.
      	* function.h: Corresponding changes.
      	* optabs.h: Corresponding changes.
      	* trans-mem.h: Corresponding changes.
      	Protect against multiple inclusion.
      	* tree-inline.h: Corresponding changes.
      	* tree-iterator.h: Corresponding changes.
      	* tree-dfa.h: Include expr.h.
      	* tree-ssanames.h: Include stringpool.h.
      	* attribs.h: New file.
      	* calls.h: New file.
      	* fold-const.h: New file.
      	* gcc-symtab.h: New file.
      	* print-rtl.h: New file.
      	* print-tree.h: New file.
      	* stmt.h: New file.
      	* stor-layout.h: New file.
      	* strinpool.h: New file.
      	* tree-nested.h: New file
      	* tree-object-size.h: New file.
      	* varasm.h: New file.
      	* Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
      
      	* alias.c: Include varasm.h.
      	Include expr.h.
      	* asan.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* attribs.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* builtins.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	Include tree-object-size.h.
      	* calls.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include attribs.h.
      	* cfgexpand.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	* cgraph.c: Include varasm.h.
      	Include calls.h.
      	Include print-tree.h.
      	* cgraphclones.c: Include stringpool.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* cgraphunit.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* cilk-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	* combine.c: Include stor-layout.h.
      	* config/aarch64/aarch64-builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/aarch64/aarch64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/alpha/alpha.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/arc/arc.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/arm/arm.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/avr/avr-c.c: Include stor-layout.h.
      	* config/avr/avr-log.c: Include print-tree.h.
      	* config/avr/avr.c: Include print-tree.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/bfin/bfin.c: Include varasm.h.
      	Include calls.h.
      	* config/c6x/c6x.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/cr16/cr16.c: Include stor-layout.h.
      	Include calls.h.
      	* config/cris/cris.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stmt.h.
      	* config/darwin.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/epiphany/epiphany.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/fr30/fr30.c: Include stor-layout.h.
      	Include varasm.h.
      	* config/frv/frv.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/h8300/h8300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/i386/i386.c: Include stringpool.h.
      	Include attribs.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/i386/winnt-cxx.c: Include stringpool.h.
      	Include attribs.h.
      	* config/i386/winnt.c: Include stringpool.h.
      	Include varasm.h.
      	* config/ia64/ia64-c.c: Include stringpool.h.
      	* config/ia64/ia64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/iq2000/iq2000.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/lm32/lm32.c: Include calls.h.
      	* config/m32c/m32c.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/m32r/m32r.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/m68k/m68k.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/mcore/mcore.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/mep/mep.c: Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	* config/microblaze/microblaze.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mips/mips.c: Include varasm.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mmix/mmix.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mn10300/mn10300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/moxie/moxie.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/msp430/msp430.c: Include stor-layout.h.
      	Include calls.h.
      	* config/nds32/nds32.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pa/pa.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pdp11/pdp11.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/picochip/picochip.c: Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* config/rl78/rl78.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/rs6000/rs6000-c.c: Include stor-layout.h.
      	Include stringpool.h.
      	* config/rs6000/rs6000.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include print-tree.h.
      	Include varasm.h.
      	* config/rx/rx.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/s390/s390.c: Include print-tree.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/score/score.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/sh/sh-c.c: Include stringpool.h.
      	Include attribs.h.h.
      	* config/sh/sh.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/sol2-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/sol2-cxx.c: Include stringpool.h.
      	* config/sol2.c: Include stringpool.h.
      	Include varasm.h.
      	* config/sparc/sparc.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/spu/spu-c.c: Include stringpool.h.
      	* config/spu/spu.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/stormy16/stormy16.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilegx/tilegx.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilepro/tilepro.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/v850/v850-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/v850/v850.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/vax/vax.c: Include calls.h.
      	Include varasm.h.
      	* config/vms/vms.c: Include stringpool.h.
      	* config/vxworks.c: Include stringpool.h.
      	* config/xtensa/xtensa.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* convert.c: Include stor-layout.h.
      	* coverage.c: Include stringpool.h.
      	Include stor-layout.h.
      	* dbxout.c: Include varasm.h.
      	Include stor-layout.h.
      	* dojump.c: Include stor-layout.h.
      	* dse.c: Include stor-layout.h.
      	* dwarf2asm.c: Include stringpool.h.
      	Include varasm.h.
      	* dwarf2cfi.c: Include stor-layout.h.
      	* dwarf2out.c: Include rtl.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* emit-rtl.c: Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* explow.c: Include stor-layout.h.
      	* expmed.c: Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	Include varasm.h.
      	* final.c: Include varasm.h.
      	* fold-const.c: Include stor-layout.h.
      	Include calls.h.
      	Include tree-iterator.h.
      	* function.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	* genattrtab.c (write_header): Emit includes for varasm.h,
      	stor-layout.h and calls.h.
      	* genautomata.c (main): Likewise.
      	* genemit.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c: Likewise.
      	* genpreds.c (write_insn_preds_c): Likewise.
      	* gengtype.c (open_base_files): Add stringpool.h.
      	* gimple-expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* gimple-fold.c: Include stringpool.h.
      	Include expr.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimple-low.c: Include tree-nested.h.
      	Include calls.h.
      	* gimple-pretty-print.c: Include stringpool.h.
      	* gimple-ssa-strength-reduction.c: Include stor-layout.h.
      	Include expr.h.
      	* gimple-walk.c: Include stmt.h.
      	* gimple.c: Include calls.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimplify.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	Include expr.h.
      	* gimplify-me.c: Include stmt.h
      	Include stor-layout.h
      	* internal-fn.c: Include stor-layout.h.
      	* ipa-devirt.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-inline-analysis.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include print-tree.h.
      	* ipa-inline.c: Include trans-mem.h.
      	Include calls.h.
      	* ipa-prop.c: Include expr.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* ipa-pure-const.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-reference.c: Include calls.h.
      	* ipa-split.c: Include stringpool.h.
      	Include expr.h.
      	Include calls.h.
      	* ipa.c: Include calls.h.
      	Include stringpool.h.
      	* langhooks.c: Include stringpool.h.
      	Include attribs.h.
      	* lto-cgraph.c: Include stringpool.h.
      	* lto-streamer-in.c: Include stringpool.h.
      	* lto-streamer-out.c: Include stor-layout.h.
      	Include stringpool.h.
      	* omp-low.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include expr.h.
      	* optabs.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* passes.c: Include varasm.h.
      	* predict.c: Include calls.h.
      	* print-rtl.c: Include print-tree.h.
      	* print-tree.c: Include varasm.h.
      	Include print-rtl.h.
      	Include stor-layout.h.
      	* realmpfr.c: Include stor-layout.h.
      	* reg-stack.c: Include varasm.h.
      	* sdbout.c: Include varasm.h.
      	Include stor-layout.h.
      	* simplify-rtx.c: Include varasm.h.
      	* stmt.c: Include varasm.h.
      	Include stor-layout.h.
      	* stor-layout.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include print-tree.h.
      	* symtab.c: Include rtl.h.
      	Include print-tree.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	* targhooks.c: Include stor-layout.h.
      	Include varasm.h.
      	* toplev.c: Include varasm.h.
      	Include tree-inline.h.
      	* trans-mem.c: Include calls.h.
      	Include function.h.
      	Include rtl.h.
      	Include emit-rtl.h.
      	* tree-affine.c: Include expr.h.
      	* tree-browser.c: Include print-tree.h.
      	* tree-call-cdce.c: Include stor-layout.h.
      	* tree-cfg.c: Include trans-mem.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* tree-complex.c: Include stor-layout.h.
      	* tree-data-ref.c: Include expr.h.
      	* tree-dfa.c: Include stor-layout.h.
      	* tree-eh.c: Include expr.h.
      	Include calls.h.
      	* tree-emutls.c: Include stor-layout.h.
      	Include varasm.h.
      	* tree-if-conv.c: Include stor-layout.h.
      	* tree-inline.c: Include stor-layout.h.
      	Include calls.h.
      	* tree-loop-distribution.c: Include stor-layout.h.
      	* tree-nested.c: Include stringpool.h.
      	Include stor-layout.h.
      	* tree-object-size.c: Include tree-object-size.h.
      	* tree-outof-ssa.c: Include stor-layout.h.
      	* tree-parloops.c: Include stor-layout.h.
      	Include tree-nested.h.
      	* tree-pretty-print.c: Include stor-layout.h.
      	Include expr.h.
      	* tree-profile.c: Include varasm.h.
      	Include tree-nested.h.
      	* tree-scalar-evolution.c: Include expr.h.
      	* tree-sra.c: Include stor-layout.h.
      	* tree-ssa-address.c: Include stor-layout.h.
      	* tree-ssa-ccp.c: Include stor-layout.h.
      	* tree-ssa-dce.c: Include calls.h.
      	* tree-ssa-dom.c: Include stor-layout.h.
      	* tree-ssa-forwprop.c: Include stor-layout.h.
      	* tree-ssa-ifcombine.c: Include stor-layout.h.
      	* tree-ssa-loop-ivopts.c: Include stor-layout.h.
      	* tree-ssa-loop-niter.c: Include calls.h.
      	Include expr.h.
      	* tree-ssa-loop-prefetch.c: Include stor-layout.h.
      	* tree-ssa-math-opts.c: Include stor-layout.h.
      	* tree-ssa-operands.c: Include stmt.h.
      	Include print-tree.h.
      	* tree-ssa-phiopt.c: Include stor-layout.h.
      	* tree-ssa-reassoc.c: Include stor-layout.h.
      	* tree-ssa-sccvn.c: Include stor-layout.h.
      	* tree-ssa-sink.c: Include stor-layout.h.
      	* tree-ssa-strlen.c: Include stor-layout.h.
      	* tree-ssa-structalias.c: Include stor-layout.h.
      	Include stmt.h.
      	* tree-ssa-tail-merge.c: Include stor-layout.h.
      	Include trans-mem.h.
      	* tree-ssa-uncprop.c: Include stor-layout.h.
      	* tree-ssa.c: Include stor-layout.h.
      	* tree-ssanames.c: Include stor-layout.h.
      	* tree-streamer-in.c: Include stringpool.h.
      	* tree-streamer-out.c: Include stor-layout.h.
      	* tree-switch-conversion.c: Include varasm.h.
      	Include stor-layout.h.
      	* tree-tailcall.c: Include stor-layout.h.
      	* tree-vect-data-refs.c: Include stor-layout.h.
      	* tree-vect-generic.c: Include stor-layout.h.
      	* tree-vect-loop.c: Include stor-layout.h.
      	* tree-vect-patterns.c: Include stor-layout.h.
      	* tree-vect-slp.c: Include stor-layout.h.
      	* tree-vect-stmts.c: Include stor-layout.h.
      	* tree-vectorizer.c: Include stor-layout.h.
      	* tree-vrp.c: Include stor-layout.h.
      	Include calls.h.
      	* tree.c: Include stor-layout.h.
      	Include calls.h.
      	Include attribs.h.
      	Include varasm.h.
      	* tsan.c: Include expr.h.
      	* ubsan.c: Include stor-layout.h.
      	Include stringpool.h.
      	* value-prof.c: Include tree-nested.h.
      	Include calls.h.
      	* var-tracking.c: Include varasm.h.
      	Include stor-layout.h.
      	* varasm.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include gcc-symtab.h.
      	Include varasm.h.
      	* varpool.c: Include varasm.h.
      	* vmsdbgout.c: Include varasm.h.
      	* xcoffout.c: Include varasm.h.
      
      ada/ChangeLog
      
      	* gcc-interface/decl.c: Include stringpool.h
      	Include stor-layout.h
      	* gcc-interface/misc.c: Include stor-layout.h
      	Include print-tree.h
      	* gcc-interface/trans.c: Include stringpool.h
      	Include stor-layout.h
      	Include stmt.h
      	Include varasm.h
      	* gcc-interface/utils.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      	* gcc-interface/utils2.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      
      c-family/ChangeLog
      
      	* c-common.c: Include fold-const.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-cppbuiltin.c: Include stor-layout.h.
      	Include stringpool.h.
      	* c-format.c: Include stringpool.h.
      	* c-lex.c: Include stringpool.h.
      	Include stor-layout.h.
      	* c-pragma.c: Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include gcc-symtab.h.
      	* c-pretty-print.c: Include stor-layout.h.
      	Include attribs.h.
      	* cilk.c: Include stringpool.h.
      	Include calls.h.
      
      c/ChangeLog
      
      	* c-decl.c: Include print-tree.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stringpool.h.
      	* c-lang.c: Include fold-const.h.
      	* c-parser.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-typeck.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include varasm.h.
      	Include stmt.h.
      
      cp/ChangeLog
      
      	* call.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* cp-gimplify.c: Include stor-layout.h.
      	* cvt.c: Include stor-layout.h.
      	* decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include calls.h.
      	* decl2.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* error.c: Include stringpool.h.
      	* except.c: Include stringpool.h.
      	Include trans-mem.h.
      	Include attribs.h.
      	* init.c: Include stringpool.h.
      	Include varasm.h.
      	* lambda.c: Include stringpool.h.
      	* lex.c: Include stringpool.h.
      	* mangle.c: Include stor-layout.h.
      	Include stringpool.h.
      	* method.c: Include stringpool.h.
      	Include varasm.h.
      	* name-lookup.c: Include stringpool.h.
      	Include print-tree.h.
      	Include attribs.h.
      	* optimize.c: Include stringpool.h.
      	* parser.c: Include print-tree.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include trans-mem.h.
      	* pt.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* ptree.c: Include print-tree.h.
      	* repo.c: Include stringpool.h.
      	* rtti.c: Include stringpool.h.
      	Include stor-layout.h.
      	* semantics.c: Include stmt.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* tree.c: Include stor-layout.h.
      	Include print-tree.h.
      	Include tree-iterator.h.
      	* typeck.c: Include stor-layout.h.
      	Include varasm.h.
      	* typeck2.c: Include stor-layout.h.
      	Include varasm.h.
      	* vtable-class-hierarchy.c: Include stringpool.h.
      	Include stor-layout.h.
      
      fortran/ChangeLog
      
      	* decl.c: Include stringpool.h.
      	* iresolve.c: Include stringpool.h.
      	* match.c: Include stringpool.h.
      	* module.c: Include stringpool.h.
      	* target-memory.c: Include stor-layout.h.
      	* trans-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* trans-const.c: Include stor-layout.h.
      	* trans-decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	* trans-expr.c: Include stringpool.h.
      	* trans-intrinsic.c: Include stringpool.h.
      	Include tree-nested.h.
      	Include stor-layout.h.
      	* trans-io.c: Include stringpool.h.
      	Include stor-layout.h.
      	* trans-openmp.c: Include stringpool.h.
      	* trans-stmt.c: Include stringpool.h.
      	* trans-types.c: Include stor-layout.h.
      	Include stringpool.h.
      	* trans.c: Include stringpool.h.
      
      go/ChangeLog
      
      	* go-backend.c: Include stor-layout.h.
      	* go-gcc.cc: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* go-lang.c: Include stor-layout.h.
      
      java/ChangeLog
      
      	* builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* constants.c: Include stringpool.h.
      	Include stor-layout.h.
      	* decl.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* jcf-parse.c: Include stringpool.h.
      	* mangle.c: Include stringpool.h.
      	* resource.c: Include stringpool.h.
      	Include stor-layout.h.
      	* typeck.c: Include stor-layout.h.
      	Include stringpool.h.
      	* verify-glue.c: Include stringpool.h.
      
      lto/ChangeLog
      	* lto-lang.c: Include stringpool.h.
      	Include stor-layout.h.
      	* lto-partition.c: Include gcc-symtab.h.
      	* lto.c: Include stor-layout.h.
      
      objc/ChangeLog
      	* objc-act.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* objc-encoding.c: Include stringpool.h.
      	Include stor-layout.h.
      	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
      	* objc-next-runtime-abi-01.c:
      	Include stringpool.h.
      	* objc-next-runtime-abi-02.c: Include stringpool.h.
      	* objc-runtime-shared-support.c: Include stringpool.h.
      
      testsuite/ChangeLog
      
      	* gcc.dg/plugin/selfassign.c: Include stringpool.h.
      	* gcc.dg/plugin/start_unit_plugin.c: Likewise.
      
      From-SVN: r205023
      Diego Novillo committed
    • bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Add -ldl. · b9a55b13
      config/
      	* bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Add -ldl.
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
      	call.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_vla): Likewise.
      gcc/
      	* opts.c (common_handle_option): Add -fsanitize=null option.
      	Turn off -fdelete-null-pointer-checks option when doing the
      	NULL pointer checking.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
      	* tree-pass.h (make_pass_ubsan): Declare.
      	(make_pass_sanopt): Declare.
      	* timevar.def (TV_TREE_UBSAN): New timevar.
      	* passes.def: Add pass_sanopt and pass_ubsan.
      	* ubsan.h (ubsan_null_ckind): New enum.
      	(ubsan_mismatch_data): New struct.
      	(ubsan_expand_null_ifn): Declare.
      	(ubsan_create_data): Adjust declaration.
      	(ubsan_type_descriptor): Likewise.
      	* asan.c: Include "ubsan.h".
      	(pass_data_sanopt): New pass.
      	(execute_sanopt): New function.
      	(gate_sanopt): Likewise.
      	(make_pass_sanopt): Likewise.
      	(class pass_sanopt): New class.
      	* ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
      	gimple-iterator.h and cfgloop.h. 
      	(PROB_VERY_UNLIKELY): Define.
      	(tree_type_map_hash): New function.
      	(ubsan_type_descriptor): Add new parameter.
      	Improve type name generation.
      	(ubsan_create_data): Add new parameter.  Add pointer data into
      	ubsan structure.
      	(ubsan_expand_null_ifn): New function.
      	(instrument_member_call): Likewise.
      	(instrument_mem_ref): Likewise.
      	(instrument_null): Likewise.
      	(ubsan_pass): Likewise.
      	(gate_ubsan): Likewise.
      	(make_pass_ubsan): Likewise.
      	(ubsan_instrument_unreachable): Adjust ubsan_create_data call.
      	(class pass_ubsan): New class.
      	(pass_data_ubsan): New pass.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
      	* internal-fn.c (expand_UBSAN_NULL): New function.
      	* cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
      	even when !flag_toplevel_reorder.
      	* internal-fn.def (UBSAN_NULL): New.
      gcc/testsuite/
      	* c-c++-common/ubsan/null-1.c: New test.
      	* c-c++-common/ubsan/null-2.c: New test.
      	* c-c++-common/ubsan/null-3.c: New test.
      	* c-c++-common/ubsan/null-4.c: New test.
      	* c-c++-common/ubsan/null-5.c: New test.
      	* c-c++-common/ubsan/null-6.c: New test.
      	* c-c++-common/ubsan/null-7.c: New test.
      	* c-c++-common/ubsan/null-8.c: New test.
      	* c-c++-common/ubsan/null-9.c: New test.
      	* c-c++-common/ubsan/null-10.c: New test.
      	* c-c++-common/ubsan/null-11.c: New test.
      	* gcc.dg/ubsan/c99-shift-2.c: Adjust dg-output.
      	* c-c++-common/ubsan/shift-1.c: Likewise.
      	* c-c++-common/ubsan/div-by-zero-3.c: Likewise.
      
      From-SVN: r205021
      Marek Polacek committed
  26. 18 Nov, 2013 2 commits
    • decl.c, [...]: Replace tree_low_cst (..., 1) with tree_to_uhwi throughout. · ae7e9ddd
      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
      Richard Sandiford committed
    • decl.c, [...]: Replace host_integerp (..., 1) with tree_fits_uhwi_p throughout. · cc269bb6
      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
      Richard Sandiford committed
  27. 25 Sep, 2013 1 commit
  28. 20 Sep, 2013 1 commit
  29. 31 Aug, 2013 1 commit
  30. 30 Aug, 2013 1 commit