summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authordnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 12:31:09 +0000
committerdnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-19 12:31:09 +0000
commit9ed9928462c651f20f35453aa149a4e50861759e (patch)
tree058d42df305c5405dc414593bf44994dd6f03cfe /gcc
parent19b928d9edad932e419337f4e3f8d5fc3cb48836 (diff)
downloadgcc-9ed9928462c651f20f35453aa149a4e50861759e.tar.gz
Factor unrelated declarations out of tree.h.
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205023 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog717
-rw-r--r--gcc/Makefile.in2
-rw-r--r--gcc/ada/ChangeLog19
-rw-r--r--gcc/ada/gcc-interface/decl.c2
-rw-r--r--gcc/ada/gcc-interface/misc.c2
-rw-r--r--gcc/ada/gcc-interface/trans.c4
-rw-r--r--gcc/ada/gcc-interface/utils.c4
-rw-r--r--gcc/ada/gcc-interface/utils2.c3
-rw-r--r--gcc/alias.c2
-rw-r--r--gcc/asan.c4
-rw-r--r--gcc/attribs.c3
-rw-r--r--gcc/attribs.h40
-rw-r--r--gcc/builtins.c5
-rw-r--r--gcc/c-family/ChangeLog23
-rw-r--r--gcc/c-family/c-common.c7
-rw-r--r--gcc/c-family/c-cppbuiltin.c2
-rw-r--r--gcc/c-family/c-format.c1
-rw-r--r--gcc/c-family/c-lex.c2
-rw-r--r--gcc/c-family/c-pragma.c4
-rw-r--r--gcc/c-family/c-pretty-print.c2
-rw-r--r--gcc/c-family/cilk.c2
-rw-r--r--gcc/c/ChangeLog18
-rw-r--r--gcc/c/c-decl.c5
-rw-r--r--gcc/c/c-lang.c1
-rw-r--r--gcc/c/c-parser.c5
-rw-r--r--gcc/c/c-typeck.c4
-rw-r--r--gcc/calls.c4
-rw-r--r--gcc/calls.h31
-rw-r--r--gcc/cfgexpand.c5
-rw-r--r--gcc/cgraph.c3
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphclones.c5
-rw-r--r--gcc/cgraphunit.c3
-rw-r--r--gcc/cilk-common.c2
-rw-r--r--gcc/combine.c1
-rw-r--r--gcc/config/aarch64/aarch64-builtins.c3
-rw-r--r--gcc/config/aarch64/aarch64.c4
-rw-r--r--gcc/config/alpha/alpha.c4
-rw-r--r--gcc/config/arc/arc.c4
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/avr/avr-c.c1
-rw-r--r--gcc/config/avr/avr-log.c1
-rw-r--r--gcc/config/avr/avr.c4
-rw-r--r--gcc/config/bfin/bfin.c2
-rw-r--r--gcc/config/c6x/c6x.c4
-rw-r--r--gcc/config/cr16/cr16.c2
-rw-r--r--gcc/config/cris/cris.c4
-rw-r--r--gcc/config/darwin.c3
-rw-r--r--gcc/config/epiphany/epiphany.c4
-rw-r--r--gcc/config/fr30/fr30.c2
-rw-r--r--gcc/config/frv/frv.c3
-rw-r--r--gcc/config/h8300/h8300.c4
-rw-r--r--gcc/config/i386/i386.c5
-rw-r--r--gcc/config/i386/winnt-cxx.c2
-rw-r--r--gcc/config/i386/winnt.c2
-rw-r--r--gcc/config/ia64/ia64-c.c1
-rw-r--r--gcc/config/ia64/ia64.c4
-rw-r--r--gcc/config/iq2000/iq2000.c3
-rw-r--r--gcc/config/lm32/lm32.c1
-rw-r--r--gcc/config/m32c/m32c.c3
-rw-r--r--gcc/config/m32r/m32r.c4
-rw-r--r--gcc/config/m68k/m68k.c3
-rw-r--r--gcc/config/mcore/mcore.c4
-rw-r--r--gcc/config/mep/mep.c4
-rw-r--r--gcc/config/microblaze/microblaze.c3
-rw-r--r--gcc/config/mips/mips.c4
-rw-r--r--gcc/config/mmix/mmix.c3
-rw-r--r--gcc/config/mn10300/mn10300.c3
-rw-r--r--gcc/config/moxie/moxie.c3
-rw-r--r--gcc/config/msp430/msp430.c2
-rw-r--r--gcc/config/nds32/nds32.c3
-rw-r--r--gcc/config/pa/pa.c4
-rw-r--r--gcc/config/pdp11/pdp11.c3
-rw-r--r--gcc/config/picochip/picochip.c4
-rw-r--r--gcc/config/rl78/rl78.c3
-rw-r--r--gcc/config/rs6000/rs6000-c.c2
-rw-r--r--gcc/config/rs6000/rs6000.c5
-rw-r--r--gcc/config/rx/rx.c3
-rw-r--r--gcc/config/s390/s390.c5
-rw-r--r--gcc/config/score/score.c4
-rw-r--r--gcc/config/sh/sh-c.c2
-rw-r--r--gcc/config/sh/sh.c4
-rw-r--r--gcc/config/sol2-c.c2
-rw-r--r--gcc/config/sol2-cxx.c1
-rw-r--r--gcc/config/sol2.c2
-rw-r--r--gcc/config/sparc/sparc.c4
-rw-r--r--gcc/config/spu/spu-c.c1
-rw-r--r--gcc/config/spu/spu.c4
-rw-r--r--gcc/config/stormy16/stormy16.c4
-rw-r--r--gcc/config/tilegx/tilegx.c4
-rw-r--r--gcc/config/tilepro/tilepro.c4
-rw-r--r--gcc/config/v850/v850-c.c2
-rw-r--r--gcc/config/v850/v850.c4
-rw-r--r--gcc/config/vax/vax.c2
-rw-r--r--gcc/config/vms/vms.c1
-rw-r--r--gcc/config/vxworks.c1
-rw-r--r--gcc/config/xtensa/xtensa.c4
-rw-r--r--gcc/convert.c1
-rw-r--r--gcc/coverage.c2
-rw-r--r--gcc/cp/ChangeLog62
-rw-r--r--gcc/cp/call.c3
-rw-r--r--gcc/cp/class.c4
-rw-r--r--gcc/cp/cp-gimplify.c1
-rw-r--r--gcc/cp/cvt.c1
-rw-r--r--gcc/cp/decl.c5
-rw-r--r--gcc/cp/decl2.c6
-rw-r--r--gcc/cp/error.c1
-rw-r--r--gcc/cp/except.c3
-rw-r--r--gcc/cp/init.c2
-rw-r--r--gcc/cp/lambda.c1
-rw-r--r--gcc/cp/lex.c1
-rw-r--r--gcc/cp/mangle.c2
-rw-r--r--gcc/cp/method.c2
-rw-r--r--gcc/cp/name-lookup.c3
-rw-r--r--gcc/cp/optimize.c1
-rw-r--r--gcc/cp/parser.c4
-rw-r--r--gcc/cp/pt.c4
-rw-r--r--gcc/cp/ptree.c1
-rw-r--r--gcc/cp/repo.c1
-rw-r--r--gcc/cp/rtti.c2
-rw-r--r--gcc/cp/semantics.c4
-rw-r--r--gcc/cp/tree.c3
-rw-r--r--gcc/cp/typeck.c3
-rw-r--r--gcc/cp/typeck2.c2
-rw-r--r--gcc/cp/vtable-class-hierarchy.c2
-rw-r--r--gcc/dbxout.c2
-rw-r--r--gcc/dojump.c1
-rw-r--r--gcc/dse.c1
-rw-r--r--gcc/dwarf2asm.c2
-rw-r--r--gcc/dwarf2cfi.c1
-rw-r--r--gcc/dwarf2out.c8
-rw-r--r--gcc/emit-rtl.c3
-rw-r--r--gcc/emit-rtl.h3
-rw-r--r--gcc/except.c2
-rw-r--r--gcc/explow.c1
-rw-r--r--gcc/expmed.c1
-rw-r--r--gcc/expr.c4
-rw-r--r--gcc/expr.h19
-rw-r--r--gcc/final.c1
-rw-r--r--gcc/fold-const.c3
-rw-r--r--gcc/fold-const.h172
-rw-r--r--gcc/fortran/ChangeLog27
-rw-r--r--gcc/fortran/decl.c1
-rw-r--r--gcc/fortran/iresolve.c1
-rw-r--r--gcc/fortran/match.c1
-rw-r--r--gcc/fortran/module.c1
-rw-r--r--gcc/fortran/target-memory.c1
-rw-r--r--gcc/fortran/trans-common.c3
-rw-r--r--gcc/fortran/trans-const.c1
-rw-r--r--gcc/fortran/trans-decl.c4
-rw-r--r--gcc/fortran/trans-expr.c1
-rw-r--r--gcc/fortran/trans-intrinsic.c3
-rw-r--r--gcc/fortran/trans-io.c2
-rw-r--r--gcc/fortran/trans-openmp.c1
-rw-r--r--gcc/fortran/trans-stmt.c1
-rw-r--r--gcc/fortran/trans-types.c2
-rw-r--r--gcc/fortran/trans.c2
-rw-r--r--gcc/function.c3
-rw-r--r--gcc/function.h21
-rw-r--r--gcc/gcc-symtab.h28
-rw-r--r--gcc/genattrtab.c3
-rw-r--r--gcc/genautomata.c3
-rw-r--r--gcc/genemit.c3
-rw-r--r--gcc/gengtype.c2
-rw-r--r--gcc/genopinit.c3
-rw-r--r--gcc/genoutput.c3
-rw-r--r--gcc/genpeep.c3
-rw-r--r--gcc/genpreds.c3
-rw-r--r--gcc/gimple-builder.c1
-rw-r--r--gcc/gimple-expr.c2
-rw-r--r--gcc/gimple-fold.c4
-rw-r--r--gcc/gimple-low.c2
-rw-r--r--gcc/gimple-pretty-print.c1
-rw-r--r--gcc/gimple-ssa-isolate-paths.c1
-rw-r--r--gcc/gimple-ssa-strength-reduction.c3
-rw-r--r--gcc/gimple-streamer-in.c1
-rw-r--r--gcc/gimple-walk.c1
-rw-r--r--gcc/gimple.c3
-rw-r--r--gcc/gimplify-me.c3
-rw-r--r--gcc/gimplify.c7
-rw-r--r--gcc/go/ChangeLog8
-rw-r--r--gcc/go/go-backend.c1
-rw-r--r--gcc/go/go-gcc.cc3
-rw-r--r--gcc/go/go-lang.c1
-rw-r--r--gcc/go/gofrontend/expressions.cc2
-rw-r--r--gcc/go/gofrontend/gogo-tree.cc3
-rw-r--r--gcc/graphite-sese-to-poly.c1
-rw-r--r--gcc/internal-fn.c1
-rw-r--r--gcc/ipa-devirt.c3
-rw-r--r--gcc/ipa-inline-analysis.c3
-rw-r--r--gcc/ipa-inline.c2
-rw-r--r--gcc/ipa-prop.c3
-rw-r--r--gcc/ipa-pure-const.c2
-rw-r--r--gcc/ipa-reference.c1
-rw-r--r--gcc/ipa-split.c4
-rw-r--r--gcc/ipa.c2
-rw-r--r--gcc/java/ChangeLog24
-rw-r--r--gcc/java/builtins.c2
-rw-r--r--gcc/java/class.c3
-rw-r--r--gcc/java/constants.c2
-rw-r--r--gcc/java/decl.c3
-rw-r--r--gcc/java/except.c2
-rw-r--r--gcc/java/expr.c2
-rw-r--r--gcc/java/jcf-parse.c1
-rw-r--r--gcc/java/mangle.c1
-rw-r--r--gcc/java/resource.c2
-rw-r--r--gcc/java/typeck.c2
-rw-r--r--gcc/java/verify-glue.c1
-rw-r--r--gcc/langhooks.c2
-rw-r--r--gcc/lto-cgraph.c1
-rw-r--r--gcc/lto-streamer-in.c1
-rw-r--r--gcc/lto-streamer-out.c2
-rw-r--r--gcc/lto/ChangeLog7
-rw-r--r--gcc/lto/lto-lang.c2
-rw-r--r--gcc/lto/lto-partition.c1
-rw-r--r--gcc/lto/lto.c1
-rw-r--r--gcc/objc/ChangeLog13
-rw-r--r--gcc/objc/objc-act.c3
-rw-r--r--gcc/objc/objc-encoding.c2
-rw-r--r--gcc/objc/objc-gnu-runtime-abi-01.c1
-rw-r--r--gcc/objc/objc-next-runtime-abi-01.c1
-rw-r--r--gcc/objc/objc-next-runtime-abi-02.c1
-rw-r--r--gcc/objc/objc-runtime-shared-support.c1
-rw-r--r--gcc/omp-low.c3
-rw-r--r--gcc/optabs.c3
-rw-r--r--gcc/optabs.h1
-rw-r--r--gcc/passes.c2
-rw-r--r--gcc/predict.c1
-rw-r--r--gcc/print-rtl.c1
-rw-r--r--gcc/print-rtl.h27
-rw-r--r--gcc/print-tree.c3
-rw-r--r--gcc/print-tree.h46
-rw-r--r--gcc/realmpfr.c1
-rw-r--r--gcc/reg-stack.c1
-rw-r--r--gcc/sdbout.c2
-rw-r--r--gcc/sese.c1
-rw-r--r--gcc/simplify-rtx.c1
-rw-r--r--gcc/stmt.c2
-rw-r--r--gcc/stmt.h34
-rw-r--r--gcc/stor-layout.c4
-rw-r--r--gcc/stor-layout.h115
-rw-r--r--gcc/stringpool.h43
-rw-r--r--gcc/symtab.c6
-rw-r--r--gcc/targhooks.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/plugin/selfassign.c1
-rw-r--r--gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c1
-rw-r--r--gcc/toplev.c2
-rw-r--r--gcc/trans-mem.c5
-rw-r--r--gcc/trans-mem.h11
-rw-r--r--gcc/tree-affine.c1
-rw-r--r--gcc/tree-browser.c1
-rw-r--r--gcc/tree-call-cdce.c2
-rw-r--r--gcc/tree-cfg.c5
-rw-r--r--gcc/tree-cfgcleanup.c2
-rw-r--r--gcc/tree-complex.c3
-rw-r--r--gcc/tree-data-ref.c1
-rw-r--r--gcc/tree-dfa.c3
-rw-r--r--gcc/tree-eh.c3
-rw-r--r--gcc/tree-emutls.c3
-rw-r--r--gcc/tree-if-conv.c2
-rw-r--r--gcc/tree-inline.c4
-rw-r--r--gcc/tree-inline.h9
-rw-r--r--gcc/tree-into-ssa.c2
-rw-r--r--gcc/tree-iterator.h2
-rw-r--r--gcc/tree-loop-distribution.c2
-rw-r--r--gcc/tree-nested.c2
-rw-r--r--gcc/tree-nrv.c1
-rw-r--r--gcc/tree-object-size.c2
-rw-r--r--gcc/tree-object-size.h26
-rw-r--r--gcc/tree-outof-ssa.c2
-rw-r--r--gcc/tree-parloops.c3
-rw-r--r--gcc/tree-phinodes.c1
-rw-r--r--gcc/tree-predcom.c2
-rw-r--r--gcc/tree-pretty-print.c2
-rw-r--r--gcc/tree-profile.c3
-rw-r--r--gcc/tree-scalar-evolution.c2
-rw-r--r--gcc/tree-sra.c3
-rw-r--r--gcc/tree-ssa-address.c3
-rw-r--r--gcc/tree-ssa-alias.c2
-rw-r--r--gcc/tree-ssa-ccp.c2
-rw-r--r--gcc/tree-ssa-coalesce.c1
-rw-r--r--gcc/tree-ssa-copy.c1
-rw-r--r--gcc/tree-ssa-copyrename.c2
-rw-r--r--gcc/tree-ssa-dce.c3
-rw-r--r--gcc/tree-ssa-dom.c2
-rw-r--r--gcc/tree-ssa-dse.c2
-rw-r--r--gcc/tree-ssa-forwprop.c3
-rw-r--r--gcc/tree-ssa-ifcombine.c1
-rw-r--r--gcc/tree-ssa-live.c2
-rw-r--r--gcc/tree-ssa-loop-im.c1
-rw-r--r--gcc/tree-ssa-loop-ivcanon.c1
-rw-r--r--gcc/tree-ssa-loop-ivopts.c3
-rw-r--r--gcc/tree-ssa-loop-manip.c1
-rw-r--r--gcc/tree-ssa-loop-niter.c3
-rw-r--r--gcc/tree-ssa-loop-prefetch.c1
-rw-r--r--gcc/tree-ssa-math-opts.c3
-rw-r--r--gcc/tree-ssa-operands.c3
-rw-r--r--gcc/tree-ssa-phiopt.c3
-rw-r--r--gcc/tree-ssa-phiprop.c1
-rw-r--r--gcc/tree-ssa-pre.c2
-rw-r--r--gcc/tree-ssa-propagate.c1
-rw-r--r--gcc/tree-ssa-reassoc.c3
-rw-r--r--gcc/tree-ssa-sccvn.c3
-rw-r--r--gcc/tree-ssa-sink.c1
-rw-r--r--gcc/tree-ssa-strlen.c3
-rw-r--r--gcc/tree-ssa-structalias.c4
-rw-r--r--gcc/tree-ssa-tail-merge.c2
-rw-r--r--gcc/tree-ssa-ter.c1
-rw-r--r--gcc/tree-ssa-threadedge.c1
-rw-r--r--gcc/tree-ssa-uncprop.c1
-rw-r--r--gcc/tree-ssa.c2
-rw-r--r--gcc/tree-ssanames.c2
-rw-r--r--gcc/tree-stdarg.c1
-rw-r--r--gcc/tree-streamer-in.c1
-rw-r--r--gcc/tree-streamer-out.c1
-rw-r--r--gcc/tree-switch-conversion.c3
-rw-r--r--gcc/tree-tailcall.c3
-rw-r--r--gcc/tree-vect-data-refs.c2
-rw-r--r--gcc/tree-vect-generic.c2
-rw-r--r--gcc/tree-vect-loop-manip.c1
-rw-r--r--gcc/tree-vect-loop.c2
-rw-r--r--gcc/tree-vect-patterns.c2
-rw-r--r--gcc/tree-vect-slp.c2
-rw-r--r--gcc/tree-vect-stmts.c2
-rw-r--r--gcc/tree-vectorizer.c1
-rw-r--r--gcc/tree-vrp.c3
-rw-r--r--gcc/tree.c6
-rw-r--r--gcc/tree.h634
-rw-r--r--gcc/tsan.c2
-rw-r--r--gcc/ubsan.c2
-rw-r--r--gcc/value-prof.c3
-rw-r--r--gcc/var-tracking.c3
-rw-r--r--gcc/varasm.c4
-rw-r--r--gcc/varasm.h69
-rw-r--r--gcc/varpool.c1
-rw-r--r--gcc/vmsdbgout.c1
-rw-r--r--gcc/vtable-verify.c1
-rw-r--r--gcc/xcoffout.c1
339 files changed, 2433 insertions, 568 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1b78d1d512..9e82c2fb169 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -911,6 +911,723 @@
* config/tilepro/tilepro.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
+
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
* config/arc/arc.md (doloop_begin_i): Remove extra alignment;
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 77fba80cffc..8cc8341048e 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3115,7 +3115,7 @@ PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
cppdefault.h flags.h $(MD5_H) params.def params.h prefix.h tree-inline.h \
$(GIMPLE_PRETTY_PRINT_H) realmpfr.h \
$(IPA_PROP_H) $(TARGET_H) $(RTL_H) $(TM_P_H) $(CFGLOOP_H) $(EMIT_RTL_H) \
- version.h
+ version.h stringpool.h
# generate the 'build fragment' b-header-vars
s-header-vars: Makefile
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a9fd65b16cd..4d55405f694 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -64,6 +64,25 @@
* gcc-interface/trans.c: Include gimple.h and pointer-set.h.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* gcc-interface/trans.c: Include gimplify.h.
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index f5d7f2fc0c2..0d72be255a5 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -28,6 +28,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "toplev.h"
#include "ggc.h"
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index a82f6fd8f82..fc74be28fb8 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -30,6 +30,8 @@
#include "options.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "diagnostic.h"
#include "target.h"
#include "ggc.h"
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index f699fd85d18..53e66780f84 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -28,6 +28,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "stmt.h"
+#include "varasm.h"
#include "flags.h"
#include "ggc.h"
#include "output.h"
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index b92531b3fd6..4995ca4e92c 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -28,6 +28,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "varasm.h"
#include "flags.h"
#include "toplev.h"
#include "diagnostic-core.h"
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c
index c45f1c3fc63..184a223ff13 100644
--- a/gcc/ada/gcc-interface/utils2.c
+++ b/gcc/ada/gcc-interface/utils2.c
@@ -28,6 +28,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "flags.h"
#include "toplev.h"
#include "ggc.h"
diff --git a/gcc/alias.c b/gcc/alias.c
index f0bb32bf328..68650f02110 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "expr.h"
#include "tm_p.h"
#include "function.h"
#include "alias.h"
diff --git a/gcc/asan.c b/gcc/asan.c
index d940b2c0f43..d44aa636c55 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -26,8 +26,12 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimplify.h"
#include "gimple-iterator.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "tree-iterator.h"
#include "cgraph.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "asan.h"
diff --git a/gcc/attribs.c b/gcc/attribs.c
index 296bcd6eb74..19b697d416f 100644
--- a/gcc/attribs.c
+++ b/gcc/attribs.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "stor-layout.h"
#include "flags.h"
#include "diagnostic-core.h"
#include "ggc.h"
diff --git a/gcc/attribs.h b/gcc/attribs.h
new file mode 100644
index 00000000000..042e112ea8e
--- /dev/null
+++ b/gcc/attribs.h
@@ -0,0 +1,40 @@
+/* Declarations and definitions dealing with attribute handling.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_ATTRIBS_H
+#define GCC_ATTRIBS_H
+
+extern const struct attribute_spec *lookup_attribute_spec (const_tree);
+extern void init_attributes (void);
+
+/* Process the attributes listed in ATTRIBUTES and install them in *NODE,
+ which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL,
+ it should be modified in place; if a TYPE, a copy should be created
+ unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further
+ information, in the form of a bitwise OR of flags in enum attribute_flags
+ from tree.h. Depending on these flags, some attributes may be
+ returned to be applied at a later stage (for example, to apply
+ a decl attribute to the declaration rather than to its type). */
+extern tree decl_attributes (tree *, tree, int);
+
+extern bool cxx11_attribute_p (const_tree);
+extern tree get_attribute_name (const_tree);
+extern void apply_tm_attr (tree, tree);
+
+#endif // GCC_ATTRIBS_H
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 7dc980f9bf5..e96245709c0 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
+#include "tree-object-size.h"
#include "realmpfr.h"
#include "gimple.h"
#include "flags.h"
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 89c975db1c5..599c024c9b0 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -63,6 +63,29 @@
* c-gimplify.c: Likewise.
* cilk.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-13 Joseph Myers <joseph@codesourcery.com>
* c-common.h (enum rid): Add RID_AUTO_TYPE.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 83d6253cbfd..b4bd63ba213 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -23,6 +23,13 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "intl.h"
#include "tree.h"
+#include "fold-const.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "varasm.h"
+#include "trans-mem.h"
#include "flags.h"
#include "c-pragma.h"
#include "ggc.h"
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index c5e895c5850..eb96b8338b0 100644
--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "version.h"
#include "flags.h"
#include "c-common.h"
diff --git a/gcc/c-family/c-format.c b/gcc/c-family/c-format.c
index b3e1e399353..8f6c0db46ae 100644
--- a/gcc/c-family/c-format.c
+++ b/gcc/c-family/c-format.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "flags.h"
#include "c-common.h"
#include "c-objc.h"
diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c
index 6484352f4c6..85fa42671a1 100644
--- a/gcc/c-family/c-lex.c
+++ b/gcc/c-family/c-lex.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "input.h"
#include "c-common.h"
#include "flags.h"
diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c
index 029ab1e33ac..70fb39ae9cf 100644
--- a/gcc/c-family/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -22,6 +22,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "varasm.h"
+#include "gcc-symtab.h"
#include "function.h" /* For cfun. FIXME: Does the parser know
when it is inside a function, so that
we don't have to look at cfun? */
diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c
index 7898f13172c..af8a3fcdbe9 100644
--- a/gcc/c-family/c-pretty-print.c
+++ b/gcc/c-family/c-pretty-print.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "attribs.h"
#include "intl.h"
#include "c-pretty-print.h"
#include "tree-pretty-print.h"
diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c
index 165348f124c..894a35270c5 100644
--- a/gcc/c-family/cilk.c
+++ b/gcc/c-family/cilk.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "calls.h"
#include "langhooks.h"
#include "gimple.h"
#include "gimplify.h"
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index e8a5365592d..92dbcee4809 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -39,6 +39,24 @@
* c-typeck.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-13 Joseph Myers <joseph@codesourcery.com>
* c-tree.h (c_typespec_keyword): Add cts_auto_type.
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 10933e80d1a..4125bd94103 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "intl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stringpool.h"
#include "tree-inline.h"
#include "flags.h"
#include "function.h"
diff --git a/gcc/c/c-lang.c b/gcc/c/c-lang.c
index 614c46d15eb..8b0dca601e9 100644
--- a/gcc/c/c-lang.c
+++ b/gcc/c/c-lang.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "fold-const.h"
#include "c-tree.h"
#include "c-family/c-common.h"
#include "langhooks.h"
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 74eb13a3f7e..ea3aa9a1043 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -40,6 +40,11 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h" /* For rtl.h: needs enum reg_class. */
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "trans-mem.h"
#include "langhooks.h"
#include "input.h"
#include "cpplib.h"
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index 42b6a6e3122..8e74b7b3918 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
+#include "varasm.h"
+#include "stmt.h"
#include "langhooks.h"
#include "c-tree.h"
#include "c-lang.h"
diff --git a/gcc/calls.c b/gcc/calls.c
index 4dcdb27c1c1..726ba23c3fc 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "gimple.h"
#include "flags.h"
#include "expr.h"
diff --git a/gcc/calls.h b/gcc/calls.h
new file mode 100644
index 00000000000..8e727382905
--- /dev/null
+++ b/gcc/calls.h
@@ -0,0 +1,31 @@
+/* Declarations anda data types for RTL call insn generation.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_CALLS_H
+#define GCC_CALLS_H
+
+extern int flags_from_decl_or_type (const_tree);
+extern int call_expr_flags (const_tree);
+extern int setjmp_call_p (const_tree);
+extern bool gimple_alloca_call_p (const_gimple);
+extern bool alloca_call_p (const_tree);
+extern bool must_pass_in_stack_var_size (enum machine_mode, const_tree);
+extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree);
+
+#endif // GCC_CALLS_H
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 85732c8f0d7..4ff1a895428 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "hard-reg-set.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stmt.h"
+#include "print-tree.h"
#include "tm_p.h"
#include "basic-block.h"
#include "function.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 996f1b66090..624d492cb75 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -28,6 +28,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
+#include "print-tree.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "hashtab.h"
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index f81b7b533ff..651f34e6fc2 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -852,6 +852,8 @@ void symtab_initialize_asm_name_hash (void);
void symtab_prevail_in_asm_name_hash (symtab_node *node);
void varpool_remove_initializer (struct varpool_node *);
+/* In cgraph.c */
+extern void change_decl_assembler_name (tree, tree);
/* Return callgraph node for given symbol and check it is a function. */
static inline struct cgraph_node *
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 28e40639e32..795a321ae57 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -68,9 +68,12 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "function.h"
+#include "emit-rtl.h"
#include "gimple.h"
-#include "rtl.h"
#include "bitmap.h"
#include "tree-cfg.h"
#include "tree-inline.h"
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index ce52115b99c..2fcd313b853 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -162,6 +162,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "output.h"
#include "rtl.h"
#include "gimple.h"
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c
index 98b85988764..bdea617a2e8 100644
--- a/gcc/cilk-common.c
+++ b/gcc/cilk-common.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "langhooks.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/combine.c b/gcc/combine.c
index 13f5e29e3d6..fb5c8814edb 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -81,6 +81,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "regs.h"
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index 2f1a8d03cb1..2dc7838003b 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -24,6 +24,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "calls.h"
#include "expr.h"
#include "tm_p.h"
#include "recog.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index edd378ce69d..f9da7c42434 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -26,6 +26,10 @@
#include "rtl.h"
#include "insn-attr.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "df.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index e710b0c3717..a5171ea0def 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
@@ -51,6 +54,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimplify.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-stdarg.h"
#include "tm-constrs.h"
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index f813c90763d..77932ce567c 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a5bd01006b6..2d5f8671b14 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -27,6 +27,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "obstack.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/avr/avr-c.c b/gcc/config/avr/avr-c.c
index 4e64405a351..2cfb264ad20 100644
--- a/gcc/config/avr/avr-c.c
+++ b/gcc/config/avr/avr-c.c
@@ -26,6 +26,7 @@
#include "tm_p.h"
#include "cpplib.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "c-family/c-common.h"
#include "langhooks.h"
diff --git a/gcc/config/avr/avr-log.c b/gcc/config/avr/avr-log.c
index 87fa14d7006..3d2f54d9707 100644
--- a/gcc/config/avr/avr-log.c
+++ b/gcc/config/avr/avr-log.c
@@ -24,6 +24,7 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
#include "output.h"
#include "input.h"
#include "function.h"
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index e7e1c2f138b..8d98c811d9b 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -32,6 +32,10 @@
#include "flags.h"
#include "reload.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "output.h"
#include "expr.h"
#include "c-family/c-common.h"
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index bd677f88bab..0d473cbafbc 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -32,6 +32,8 @@
#include "output.h"
#include "insn-attr.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
#include "flags.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index a37e02ff834..af310bac8dc 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -25,6 +25,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "insn-flags.h"
#include "output.h"
#include "insn-attr.h"
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index 1ac29cc800a..b3972766d5b 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -24,6 +24,8 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 7432251b950..2d2a108031d 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "stmt.h"
#include "expr.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 63efe49475d..761576df565 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -32,6 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "expr.h"
#include "reload.h"
#include "function.h"
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 3a09efa0a1c..88459e2d4ad 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c
index 4a45feafd04..caa50d9e691 100644
--- a/gcc/config/fr30/fr30.c
+++ b/gcc/config/fr30/fr30.c
@@ -33,6 +33,8 @@
#include "flags.h"
#include "recog.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "output.h"
#include "expr.h"
#include "obstack.h"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index bcd55111434..6e74fe48eaa 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 69f37fd02d6..f0ebca30f2c 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index d95ca351906..7ae9f57aeee 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -23,6 +23,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/i386/winnt-cxx.c b/gcc/config/i386/winnt-cxx.c
index 92de46abd59..d466299abed 100644
--- a/gcc/config/i386/winnt-cxx.c
+++ b/gcc/config/i386/winnt-cxx.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "cp/cp-tree.h" /* This is why we're a separate module. */
#include "flags.h"
#include "tm_p.h"
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 94155d89a7f..2c1677eec88 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -27,6 +27,8 @@ along with GCC; see the file COPYING3. If not see
#include "hard-reg-set.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "flags.h"
#include "tm_p.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/ia64/ia64-c.c b/gcc/config/ia64/ia64-c.c
index 4d4dbc84369..6489668b7d9 100644
--- a/gcc/config/ia64/ia64-c.c
+++ b/gcc/config/ia64/ia64-c.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cpplib.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 4fde7aab43e..307681c995d 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index e65d0ccdc03..e6d1171ca85 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index 6483a03e57d..6bddc488727 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -35,6 +35,7 @@
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "calls.h"
#include "expr.h"
#include "flags.h"
#include "reload.h"
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index deac40c228f..ec30b8d7f9b 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -36,6 +36,9 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index c94da538fcf..6cee5d728b3 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -22,6 +22,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 7035504bfe3..db1554deb36 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "rtl.h"
#include "function.h"
#include "regs.h"
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index 6550b6905f0..6bd60702fa2 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -23,6 +23,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "calls.h"
#include "tm_p.h"
#include "mcore.h"
#include "regs.h"
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 489bef9c2d3..6ce6c530077 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index 3258a95ef3a..93dede4d189 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -33,6 +33,9 @@
#include "insn-attr.h"
#include "recog.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "flags.h"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 80bbb00c2c8..00c6e0c90ae 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 34b4fea7503..eb43af71d08 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -31,6 +31,9 @@ along with GCC; see the file COPYING3. If not see
#include "basic-block.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index df563d03eac..342c336f118 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -24,6 +24,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c
index d4f7d6d9d68..abba0aebd2d 100644
--- a/gcc/config/moxie/moxie.c
+++ b/gcc/config/moxie/moxie.c
@@ -36,6 +36,9 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 1ebb583c1ed..daff4ae1623 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -23,6 +23,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index f039e2789c5..4454bf2d0d4 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -25,6 +25,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 260830f00d7..2aa63c6bd0c 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "calls.h"
#include "output.h"
#include "dbxout.h"
#include "except.h"
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 0a310c50d79..42237b5d798 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -33,6 +33,9 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "recog.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "diagnostic-core.h"
#include "tm_p.h"
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index 641bccb81f6..4756cb78b72 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not, see
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index f071e31daf2..72aefc205a1 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -23,6 +23,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index 283cc917ae8..667e5a6de18 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -26,6 +26,8 @@
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index bfa061c8c6e..fa79a02a936 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -32,6 +32,11 @@
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "print-tree.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 89860927a82..662ab9b72cc 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -27,6 +27,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 8519cd0452d..cae4a329f4e 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -26,6 +26,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/score/score.c b/gcc/config/score/score.c
index c25aaa2da93..3fdf2ea9050 100644
--- a/gcc/config/score/score.c
+++ b/gcc/config/score/score.c
@@ -32,6 +32,10 @@
#include "diagnostic-core.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/sh/sh-c.c b/gcc/config/sh/sh-c.c
index 4f3a41a46e7..22e291d2b76 100644
--- a/gcc/config/sh/sh-c.c
+++ b/gcc/config/sh/sh-c.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h.h"
#include "tm_p.h"
#include "cpplib.h"
#include "c-family/c-common.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 088ef396313..d5f7f15c1cc 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "flags.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c
index ee44621591e..8254af0fd73 100644
--- a/gcc/config/sol2-c.c
+++ b/gcc/config/sol2-c.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "tm.h"
#include "tm_p.h"
diff --git a/gcc/config/sol2-cxx.c b/gcc/config/sol2-cxx.c
index e1b450d759b..d3d79554b96 100644
--- a/gcc/config/sol2-cxx.c
+++ b/gcc/config/sol2-cxx.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp/cp-tree.h"
#include "tm.h"
#include "tm_p.h"
diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c
index 7c7c429db3d..4200e620e16 100644
--- a/gcc/config/sol2.c
+++ b/gcc/config/sol2.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "output.h"
#include "tm.h"
#include "rtl.h"
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 1d6aa942ef6..cabf8f0d244 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/spu/spu-c.c b/gcc/config/spu/spu-c.c
index 215962fa7c9..7632ec1462c 100644
--- a/gcc/config/spu/spu-c.c
+++ b/gcc/config/spu/spu-c.c
@@ -20,6 +20,7 @@
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stringpool.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
#include "tm_p.h"
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 55b934b6a5b..315f1b3617f 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -28,6 +28,10 @@
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 3a08534be51..d5a1fc6ad86 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -35,6 +35,10 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index bf13d11b820..809beefa305 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -41,6 +41,10 @@
#include "timevar.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "gimplify.h"
#include "cfgloop.h"
#include "tilegx-builtins.h"
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index d497f64125f..9fe1b104f57 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -42,6 +42,10 @@
#include "timevar.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "gimplify.h"
#include "cfgloop.h"
#include "tilepro-builtins.h"
diff --git a/gcc/config/v850/v850-c.c b/gcc/config/v850/v850-c.c
index 63ef368afc4..25158d50e09 100644
--- a/gcc/config/v850/v850-c.c
+++ b/gcc/config/v850/v850-c.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "c-family/c-pragma.h"
#include "diagnostic-core.h"
#include "ggc.h"
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 006cff4bcdf..32fe73b1fa6 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -23,6 +23,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index 6b643d1af5d..7aac7cb0554 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "df.h"
#include "tree.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/vms/vms.c b/gcc/config/vms/vms.c
index ba1e2a69798..3047cfde9fe 100644
--- a/gcc/config/vms/vms.c
+++ b/gcc/config/vms/vms.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "vms-protos.h"
#include "ggc.h"
#include "target.h"
diff --git a/gcc/config/vxworks.c b/gcc/config/vxworks.c
index 2900d9785ea..2940ea11933 100644
--- a/gcc/config/vxworks.c
+++ b/gcc/config/vxworks.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "output.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
/* Like default_named_section_asm_out_constructor, except that even
constructors with DEFAULT_INIT_PRIORITY must go in a numbered
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 6385c5df555..9e6bb23818f 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "expr.h"
#include "flags.h"
#include "reload.h"
diff --git a/gcc/convert.c b/gcc/convert.c
index a2f2a334dbf..4cf500197ae 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "convert.h"
#include "diagnostic-core.h"
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 3f4e334f078..f2ac5fcaa46 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "output.h"
#include "regs.h"
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2906ed7a63a..1c0d9b7c121 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -83,6 +83,68 @@
* tree.c: Likewise.
* vtable-class-hierarchy.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* class.c: Include gimplify.h.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index fd7b1cc78d4..c529c16bc74 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -27,6 +27,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 39ff6a54fb0..00fec27a3d5 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "gimple.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index c464719ad42..e2629464dd9 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "cp-tree.h"
#include "c-family/c-common.h"
#include "tree-iterator.h"
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 7dac108db95..5264c5df2a8 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "cp-tree.h"
#include "intl.h"
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index e2aad9d54b3..500c81f79fc 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "calls.h"
#include "flags.h"
#include "cp-tree.h"
#include "tree-iterator.h"
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 18456848492..93c75cbf4d6 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -31,6 +31,12 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "gimple.h"
#include "flags.h"
#include "cp-tree.h"
#include "decl.h"
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 0ad9f0722db..5481523868d 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "flags.h"
#include "diagnostic.h"
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index ac2128d13b0..d7d009bdd69 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "trans-mem.h"
+#include "attribs.h"
#include "cp-tree.h"
#include "flags.h"
#include "tree-inline.h"
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 7eac6f52d09..fd43a4fc87c 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "cp-tree.h"
#include "flags.h"
#include "target.h"
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c
index f39ce1a5ea6..24aa2c55cc0 100644
--- a/gcc/cp/lambda.c
+++ b/gcc/cp/lambda.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-iterator.h"
#include "cp-tree.h"
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index d6ed809d61d..5d8a313f38b 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "input.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "cpplib.h"
#include "flags.h"
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 202fafceb03..8a24d6c8cfd 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -49,6 +49,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "tm_p.h"
#include "cp-tree.h"
#include "obstack.h"
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index d15d0a4d6f6..740536573cb 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index ced596e310a..d0c024a120f 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "print-tree.h"
+#include "attribs.h"
#include "cp-tree.h"
#include "name-lookup.h"
#include "timevar.h"
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index c4ee8484bb9..b8df1347c33 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "input.h"
#include "params.h"
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index d37924851ed..977adf6b791 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h"
#include "cpplib.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "trans-mem.h"
#include "cp-tree.h"
#include "intl.h"
#include "c-family/c-pragma.h"
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 3bc8ccb0ee3..bbf8f550f3e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -29,6 +29,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stor-layout.h"
#include "intl.h"
#include "pointer-set.h"
#include "flags.h"
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index f4ca003be98..3c37a2aed3e 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
#include "cp-tree.h"
void
diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c
index 7b6f7b8ce1b..47b91986582 100644
--- a/gcc/cp/repo.c
+++ b/gcc/cp/repo.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "input.h"
#include "obstack.h"
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 5827540c9b2..0bac87909a0 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "cp-tree.h"
#include "flags.h"
#include "convert.h"
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index dce2b3749fc..11f781288e9 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "c-family/c-common.h"
#include "c-family/c-objc.h"
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index d7af1d3a551..a990a79bbb3 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "print-tree.h"
+#include "tree-iterator.h"
#include "cp-tree.h"
#include "flags.h"
#include "tree-inline.h"
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index bff7f17780f..c9ddbe9ba24 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "gimple.h"
#include "cp-tree.h"
#include "flags.h"
#include "diagnostic.h"
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 5c4fdfa0162..0f3b01d9bc2 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "intl.h"
#include "cp-tree.h"
#include "flags.h"
diff --git a/gcc/cp/vtable-class-hierarchy.c b/gcc/cp/vtable-class-hierarchy.c
index 5e78ec9d3a7..32f9541e43d 100644
--- a/gcc/cp/vtable-class-hierarchy.c
+++ b/gcc/cp/vtable-class-hierarchy.c
@@ -120,6 +120,8 @@ along with GCC; see the file COPYING3. If not see
#include "vtable-verify.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stringpool.h"
+#include "stor-layout.h"
static int num_calls_to_regset = 0;
static int num_calls_to_regpair = 0;
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 2e03c124ee8..88596a8d49c 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -72,6 +72,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "rtl.h"
#include "flags.h"
#include "regs.h"
diff --git a/gcc/dojump.c b/gcc/dojump.c
index ee12d761eee..2aef34d307a 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "insn-config.h"
diff --git a/gcc/dse.c b/gcc/dse.c
index b602caa291f..9662da845ba 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c
index 69907f9fbf2..fc1b0825205 100644
--- a/gcc/dwarf2asm.c
+++ b/gcc/dwarf2asm.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "rtl.h"
#include "output.h"
#include "target.h"
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index e0f85edc61b..19276e23a20 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "function.h"
#include "basic-block.h"
#include "dwarf2.h"
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 0095507ee1a..8186b528872 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -59,10 +59,16 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "gimple.h"
#include "version.h"
#include "flags.h"
-#include "rtl.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "insn-config.h"
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index af228d94bd4..24e3c92151b 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -38,9 +38,12 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "gimple.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
+#include "stringpool.h"
#include "expr.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 726809097e7..301c67b3545 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -113,4 +113,7 @@ get_max_uid (void)
{
return crtl->emit.x_cur_insn_uid;
}
+
+extern void set_decl_incoming_rtl (tree, rtx, bool);
+
#endif /* GCC_EMIT_RTL_H */
diff --git a/gcc/except.c b/gcc/except.c
index 6043ef293e6..f8296b223bc 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -115,6 +115,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
diff --git a/gcc/explow.c b/gcc/explow.c
index 3a78a651360..bc4f805323c 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "except.h"
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 1617bc05aa1..c5123cbbe81 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "insn-config.h"
diff --git a/gcc/expr.c b/gcc/expr.c
index ece5d0fc443..53e85e503ee 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "varasm.h"
#include "flags.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index 422c75d3f59..a2cd6690bfe 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -748,4 +748,23 @@ extern void expand_case (gimple);
/* Like expand_case but special-case for SJLJ exception dispatching. */
extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
+/* Determine whether the LEN bytes can be moved by using several move
+ instructions. Return nonzero if a call to move_by_pieces should
+ succeed. */
+extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int);
+
+extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree);
+bool array_at_struct_end_p (tree);
+
+/* Return a tree of sizetype representing the size, in bytes, of the element
+ of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_element_size (tree);
+
+extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *,
+ HOST_WIDE_INT *, bool *);
+
+/* Return a tree representing the offset, in bytes, of the field referenced
+ by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */
+extern tree component_ref_field_offset (tree);
+
#endif /* GCC_EXPR_H */
diff --git a/gcc/final.c b/gcc/final.c
index 1a6320f5195..2d206f1311a 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "tm_p.h"
#include "regs.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 5a010234af5..fc18de56565 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -46,6 +46,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "tree-iterator.h"
#include "realmpfr.h"
#include "rtl.h"
#include "expr.h"
diff --git a/gcc/fold-const.h b/gcc/fold-const.h
new file mode 100644
index 00000000000..1d458366951
--- /dev/null
+++ b/gcc/fold-const.h
@@ -0,0 +1,172 @@
+/* Fold a constant sub-tree into a single node for C-compiler
+ Copyright (C) 1987-2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_FOLD_CONST_H
+#define GCC_FOLD_CONST_H
+
+/* Non-zero if we are folding constants inside an initializer; zero
+ otherwise. */
+extern int folding_initializer;
+
+/* Convert between trees and native memory representation. */
+extern int native_encode_expr (const_tree, unsigned char *, int);
+extern tree native_interpret_expr (tree, const unsigned char *, int);
+
+/* Fold constants as much as possible in an expression.
+ Returns the simplified expression.
+ Acts only on the top level of the expression;
+ if the argument itself cannot be simplified, its
+ subexpressions are not changed. */
+
+extern tree fold (tree);
+#define fold_unary(CODE,T1,T2)\
+ fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree fold_unary_loc (location_t, enum tree_code, tree, tree);
+#define fold_unary_ignore_overflow(CODE,T1,T2)\
+ fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree);
+#define fold_binary(CODE,T1,T2,T3)\
+ fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3)
+extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree);
+#define fold_ternary(CODE,T1,T2,T3,T4)\
+ fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4)
+extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree);
+#define fold_build1(c,t1,t2)\
+ fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO)
+#define fold_build1_loc(l,c,t1,t2)\
+ fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO)
+extern tree fold_build1_stat_loc (location_t, enum tree_code, tree,
+ tree MEM_STAT_DECL);
+#define fold_build2(c,t1,t2,t3)\
+ fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO)
+#define fold_build2_loc(l,c,t1,t2,t3)\
+ fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO)
+extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree,
+ tree MEM_STAT_DECL);
+#define fold_build3(c,t1,t2,t3,t4)\
+ fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO)
+#define fold_build3_loc(l,c,t1,t2,t3,t4)\
+ fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO)
+extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree,
+ tree MEM_STAT_DECL);
+extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree);
+extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree);
+#define fold_build_call_array(T1,T2,N,T4)\
+ fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
+extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *);
+#define fold_build_call_array_initializer(T1,T2,N,T4)\
+ fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
+extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *);
+extern bool fold_convertible_p (const_tree, const_tree);
+#define fold_convert(T1,T2)\
+ fold_convert_loc (UNKNOWN_LOCATION, T1, T2)
+extern tree fold_convert_loc (location_t, tree, tree);
+extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree);
+extern tree fold_ignored_result (tree);
+extern tree fold_abs_const (tree, tree);
+extern tree fold_indirect_ref_1 (location_t, tree, tree);
+extern void fold_defer_overflow_warnings (void);
+extern void fold_undefer_overflow_warnings (bool, const_gimple, int);
+extern void fold_undefer_and_ignore_overflow_warnings (void);
+extern bool fold_deferring_overflow_warnings_p (void);
+extern tree fold_fma (location_t, tree, tree, tree, tree);
+extern int operand_equal_p (const_tree, const_tree, unsigned int);
+extern int multiple_of_p (tree, const_tree, const_tree);
+#define omit_one_operand(T1,T2,T3)\
+ omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3)
+extern tree omit_one_operand_loc (location_t, tree, tree, tree);
+#define omit_two_operands(T1,T2,T3,T4)\
+ omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4)
+extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree);
+#define invert_truthvalue(T)\
+ invert_truthvalue_loc (UNKNOWN_LOCATION, T)
+extern tree invert_truthvalue_loc (location_t, tree);
+extern tree fold_unary_to_constant (enum tree_code, tree, tree);
+extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree);
+extern tree fold_read_from_constant_string (tree);
+extern tree int_const_binop (enum tree_code, const_tree, const_tree);
+#define build_fold_addr_expr(T)\
+ build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T))
+extern tree build_fold_addr_expr_loc (location_t, tree);
+#define build_fold_addr_expr_with_type(T,TYPE)\
+ build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE)
+extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree);
+extern tree fold_build_cleanup_point_expr (tree type, tree expr);
+extern tree fold_strip_sign_ops (tree);
+#define build_fold_indirect_ref(T)\
+ build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
+extern tree build_fold_indirect_ref_loc (location_t, tree);
+#define fold_indirect_ref(T)\
+ fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
+extern tree fold_indirect_ref_loc (location_t, tree);
+extern tree build_simple_mem_ref_loc (location_t, tree);
+#define build_simple_mem_ref(T)\
+ build_simple_mem_ref_loc (UNKNOWN_LOCATION, T)
+extern double_int mem_ref_offset (const_tree);
+extern tree build_invariant_address (tree, tree, HOST_WIDE_INT);
+extern tree constant_boolean_node (bool, tree);
+extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree);
+
+extern bool tree_swap_operands_p (const_tree, const_tree, bool);
+extern enum tree_code swap_tree_comparison (enum tree_code);
+
+extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);
+extern enum tree_code invert_tree_comparison (enum tree_code, bool);
+
+extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *);
+extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1,
+ bool *);
+extern bool tree_single_nonzero_warnv_p (tree, bool *);
+extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *);
+extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree,
+ bool *);
+extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p);
+extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *);
+
+extern bool fold_real_zero_addition_p (const_tree, const_tree, int);
+extern tree combine_comparisons (location_t, enum tree_code, enum tree_code,
+ enum tree_code, tree, tree, tree);
+extern void debug_fold_checksum (const_tree);
+extern bool may_negate_without_overflow_p (const_tree);
+#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N)
+extern tree round_up_loc (location_t, tree, int);
+#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N)
+extern tree round_down_loc (location_t, tree, int);
+extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
+#define size_binop(CODE,T1,T2)\
+ size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree size_binop_loc (location_t, enum tree_code, tree, tree);
+#define size_diffop(T1,T2)\
+ size_diffop_loc (UNKNOWN_LOCATION, T1, T2)
+extern tree size_diffop_loc (location_t, tree, tree);
+
+/* Return an expr equal to X but certainly not valid as an lvalue. */
+#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T)
+extern tree non_lvalue_loc (location_t, tree);
+
+extern bool tree_expr_nonnegative_p (tree);
+extern bool tree_expr_nonnegative_warnv_p (tree, bool *);
+extern tree make_range (tree, int *, tree *, tree *, bool *);
+extern tree make_range_step (location_t, enum tree_code, tree, tree, tree,
+ tree *, tree *, int *, bool *);
+extern tree build_range_check (location_t, tree, tree, int, tree, tree);
+extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int,
+ tree, tree);
+
+#endif // GCC_FOLD_CONST_H
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 16e8915c0c5..26e58bef0f0 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -7,6 +7,33 @@
* trans-expr.c: Include only gimplify.h and gimple.h as needed.
* trans-openmp.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* f95-lang.c: Don't include gimple.h.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 9c9fd4ffbf0..0a0f8e0f3b5 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "constructor.h"
#include "tree.h"
+#include "stringpool.h"
/* Macros to access allocate memory for gfc_data_variable,
gfc_data_value and gfc_data. */
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index af452b32888..f31340f5d55 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gfortran.h"
#include "intrinsic.h"
#include "constructor.h"
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 71e3862189a..539780aaa24 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "match.h"
#include "parse.h"
#include "tree.h"
+#include "stringpool.h"
int gfc_matching_ptr_assignment = 0;
int gfc_matching_procptr_assignment = 0;
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index c390a95952e..0cd48018577 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -74,6 +74,7 @@ along with GCC; see the file COPYING3. If not see
#include "constructor.h"
#include "cpp.h"
#include "tree.h"
+#include "stringpool.h"
#include "scanner.h"
#include <zlib.h>
diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c
index e905b3a67dc..d0ee41a089c 100644
--- a/gcc/fortran/target-memory.c
+++ b/gcc/fortran/target-memory.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "machmode.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gfortran.h"
#include "arith.h"
#include "constructor.h"
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index e2234b1ae0c..2266c1bfa56 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -98,6 +98,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gfortran.h"
#include "trans.h"
#include "trans-types.h"
diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c
index a217c471411..f5a2b18ecba 100644
--- a/gcc/fortran/trans-const.c
+++ b/gcc/fortran/trans-const.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "realmpfr.h"
#include "diagnostic-core.h" /* For fatal_error. */
#include "double-int.h"
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 1df3bb44e7a..f974c6e8107 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
#include "tree-dump.h"
#include "gimple-expr.h" /* For create_tmp_var_raw. */
#include "ggc.h"
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index b932fa4d715..41b2f94679a 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "diagnostic-core.h" /* For fatal_error. */
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 042911f8ea1..4acdc8dc756 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h" /* For UNITS_PER_WORD. */
#include "tree.h"
+#include "stringpool.h"
+#include "tree-nested.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "toplev.h" /* For rest_of_decl_compilation. */
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index 5fa1cdc091e..9b46a4eef3e 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "gfortran.h"
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 13c87058ddd..d23af17d81e 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "gimplify.h" /* For create_tmp_var_raw. */
+#include "stringpool.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "gfortran.h"
#include "trans.h"
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 62e690d407c..4f211975581 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gfortran.h"
#include "flags.h"
#include "trans.h"
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index fa84d5dab81..21d9f285d17 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -34,6 +34,8 @@ along with GCC; see the file COPYING3. If not see
FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
LONG_DOUBLE_TYPE_SIZE and LIBGCC2_HAS_TF_MODE. */
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "langhooks.h" /* For iso-c-bindings.def. */
#include "target.h"
#include "ggc.h"
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c
index ef20a20f018..204cbff3247 100644
--- a/gcc/fortran/trans.c
+++ b/gcc/fortran/trans.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple-expr.h" /* For create_tmp_var_raw. */
+#include "gimple.h"
+#include "stringpool.h"
#include "tree-iterator.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "flags.h"
diff --git a/gcc/function.c b/gcc/function.c
index 724b9694917..87953e335c4 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -37,6 +37,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl-error.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
#include "flags.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/function.h b/gcc/function.h
index 9bb6ff04c50..c00bfe2aa37 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -822,4 +822,25 @@ extern unsigned int emit_initial_value_sets (void);
extern bool optimize_function_for_size_p (struct function *);
extern bool optimize_function_for_speed_p (struct function *);
+/* In function.c */
+extern void expand_function_end (void);
+extern void expand_function_start (tree);
+extern void stack_protect_epilogue (void);
+extern void init_dummy_function_start (void);
+extern void expand_dummy_function_end (void);
+extern void allocate_struct_function (tree, bool);
+extern void push_struct_function (tree fndecl);
+extern void init_function_start (tree);
+extern bool use_register_for_decl (const_tree);
+extern void generate_setjmp_warnings (void);
+extern void init_temp_slots (void);
+extern void free_temp_slots (void);
+extern void pop_temp_slots (void);
+extern void push_temp_slots (void);
+extern void preserve_temp_slots (rtx);
+extern int aggregate_value_p (const_tree, const_tree);
+extern void push_function_context (void);
+extern void pop_function_context (void);
+extern gimple_seq gimplify_parameters (void);
+
#endif /* GCC_FUNCTION_H */
diff --git a/gcc/gcc-symtab.h b/gcc/gcc-symtab.h
new file mode 100644
index 00000000000..a5bbad265a3
--- /dev/null
+++ b/gcc/gcc-symtab.h
@@ -0,0 +1,28 @@
+/* Declarations for symtab.c.
+ FIXME - This file should be named symtab.h, but that name conflicts
+ with libcpp's symtab.h.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_SYMTAB_H
+#define GCC_SYMTAB_H
+
+extern void change_decl_assembler_name (tree, tree);
+
+#endif // GCC_SYMTAB_H
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index f79380d6e46..c0125d103b7 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -5101,6 +5101,9 @@ write_header (FILE *outf)
fprintf (outf, "#include \"coretypes.h\"\n");
fprintf (outf, "#include \"tm.h\"\n");
fprintf (outf, "#include \"tree.h\"\n");
+ fprintf (outf, "#include \"varasm.h\"\n");
+ fprintf (outf, "#include \"stor-layout.h\"\n");
+ fprintf (outf, "#include \"calls.h\"\n");
fprintf (outf, "#include \"rtl.h\"\n");
fprintf (outf, "#include \"insn-attr.h\"\n");
fprintf (outf, "#include \"tm_p.h\"\n");
diff --git a/gcc/genautomata.c b/gcc/genautomata.c
index f6c4b91c42e..3ab480428aa 100644
--- a/gcc/genautomata.c
+++ b/gcc/genautomata.c
@@ -9666,6 +9666,9 @@ main (int argc, char **argv)
"#include \"coretypes.h\"\n"
"#include \"tm.h\"\n"
"#include \"tree.h\"\n"
+ "#include \"varasm.h\"\n"
+ "#include \"stor-layout.h\"\n"
+ "#include \"calls.h\"\n"
"#include \"rtl.h\"\n"
"#include \"tm_p.h\"\n"
"#include \"insn-config.h\"\n"
diff --git a/gcc/genemit.c b/gcc/genemit.c
index 724a114da44..03831bfc9de 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -791,6 +791,9 @@ from the machine description file `md'. */\n\n");
printf ("#include \"coretypes.h\"\n");
printf ("#include \"tm.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"tm_p.h\"\n");
printf ("#include \"function.h\"\n");
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index ecf1ef00385..86e9ca22006 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1770,7 +1770,7 @@ open_base_files (void)
"hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
"optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h",
"gimple.h", "gimple-iterator.h", "gimple-ssa.h", "tree-cfg.h",
- "tree-phinodes.h", "ssa-iterators.h", "tree-ssanames.h",
+ "tree-phinodes.h", "ssa-iterators.h", "stringpool.h", "tree-ssanames.h",
"tree-ssa-loop.h", "tree-ssa-loop-ivopts.h", "tree-ssa-loop-manip.h",
"tree-ssa-loop-niter.h", "tree-into-ssa.h", "tree-dfa.h",
"tree-ssa.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index 3efb71e249e..2e736ce687b 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -405,6 +405,9 @@ main (int argc, char **argv)
"#include \"coretypes.h\"\n"
"#include \"tm.h\"\n"
"#include \"tree.h\"\n"
+ "#include \"varasm.h\"\n"
+ "#include \"stor-layout.h\"\n"
+ "#include \"calls.h\"\n"
"#include \"rtl.h\"\n"
"#include \"tm_p.h\"\n"
"#include \"flags.h\"\n"
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index 2a7ee2391db..de8979bc726 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -239,6 +239,9 @@ output_prologue (void)
printf ("#include \"flags.h\"\n");
printf ("#include \"ggc.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"expr.h\"\n");
printf ("#include \"insn-codes.h\"\n");
diff --git a/gcc/genpeep.c b/gcc/genpeep.c
index 877fde3ec90..8d9d25dd772 100644
--- a/gcc/genpeep.c
+++ b/gcc/genpeep.c
@@ -360,6 +360,9 @@ from the machine description file `md'. */\n\n");
printf ("#include \"tm.h\"\n");
printf ("#include \"insn-config.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"tm_p.h\"\n");
printf ("#include \"regs.h\"\n");
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
index f3d9dac9c55..c27ae88f1a0 100644
--- a/gcc/genpreds.c
+++ b/gcc/genpreds.c
@@ -1302,6 +1302,9 @@ write_insn_preds_c (void)
#include \"tm.h\"\n\
#include \"rtl.h\"\n\
#include \"tree.h\"\n\
+#include \"varasm.h\"\n\
+#include \"stor-layout.h\"\n\
+#include \"calls.h\"\n\
#include \"tm_p.h\"\n\
#include \"function.h\"\n\
#include \"insn-config.h\"\n\
diff --git a/gcc/gimple-builder.c b/gcc/gimple-builder.c
index 6b53221b6b3..17cd2e1b887 100644
--- a/gcc/gimple-builder.c
+++ b/gcc/gimple-builder.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "tree-ssanames.h"
diff --git a/gcc/gimple-expr.c b/gcc/gimple-expr.c
index 9156f952784..77660a34c6d 100644
--- a/gcc/gimple-expr.c
+++ b/gcc/gimple-expr.c
@@ -25,7 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
#include "gimplify.h"
+#include "stor-layout.h"
#include "demangle.h"
#include "gimple-ssa.h"
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index a5277eb9b0f..5493c5f3ea0 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "expr.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "dumpfile.h"
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 3f9ac575e64..71f8dfec3f8 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-nested.h"
+#include "calls.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "tree-iterator.h"
diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c
index b20d11ae3d4..cdf1dbd417e 100644
--- a/gcc/gimple-pretty-print.c
+++ b/gcc/gimple-pretty-print.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "diagnostic.h"
#include "gimple-pretty-print.h"
#include "hashtab.h"
diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c
index c42f112da8b..1b7e3ff7d76 100644
--- a/gcc/gimple-ssa-isolate-paths.c
+++ b/gcc/gimple-ssa-isolate-paths.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-walk.h"
#include "tree-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "gimple-ssa.h"
#include "tree-ssa-operands.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index 51bf7c7c01f..4eb897fd40c 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -40,6 +40,8 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
+#include "expr.h"
#include "basic-block.h"
#include "tree-pass.h"
#include "cfgloop.h"
@@ -48,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "domwalk.h"
#include "pointer-set.h"
diff --git a/gcc/gimple-streamer-in.c b/gcc/gimple-streamer-in.c
index 6f8f51a18ce..f8106fc4e78 100644
--- a/gcc/gimple-streamer-in.c
+++ b/gcc/gimple-streamer-in.c
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "data-streamer.h"
#include "tree-streamer.h"
diff --git a/gcc/gimple-walk.c b/gcc/gimple-walk.c
index deb4673354a..22f4584a673 100644
--- a/gcc/gimple-walk.c
+++ b/gcc/gimple-walk.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 10d7edc1a39..c0316981ef9 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "target.h"
#include "tree.h"
+#include "calls.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/gimplify-me.c b/gcc/gimplify-me.c
index c4818fab756..a7e9387b648 100644
--- a/gcc/gimplify-me.c
+++ b/gcc/gimplify-me.c
@@ -25,11 +25,14 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify.h"
#include "gimplify-me.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index a65d3d1ced6..8baa4dcc178 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -24,9 +24,16 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "gimple.h"
#include "gimplify.h"
#include "gimple-iterator.h"
+#include "stringpool.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stmt.h"
+#include "print-tree.h"
#include "tree-iterator.h"
#include "tree-inline.h"
#include "tree-pretty-print.h"
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index 6f6b53e58a0..918862ef8fe 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -12,6 +12,14 @@
* go-lang.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* go-lang.c: Include gimplify.h.
diff --git a/gcc/go/go-backend.c b/gcc/go/go-backend.c
index c3ffa3b1dea..31d01221fd1 100644
--- a/gcc/go/go-backend.c
+++ b/gcc/go/go-backend.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "simple-object.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "intl.h"
#include "output.h" /* for assemble_string */
diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc
index 5ff529fc62b..83f91d5daf5 100644
--- a/gcc/go/go-gcc.cc
+++ b/gcc/go/go-gcc.cc
@@ -25,6 +25,9 @@
#include <gmp.h>
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "tree-iterator.h"
#include "gimple.h"
#include "toplev.h"
diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index aa1d80b5be2..93a0446efe6 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "toplev.h"
#include "debug.h"
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 823c5e1a4c8..14c10d66a04 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -11,6 +11,8 @@
#include "toplev.h"
#include "intl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimplify.h"
#include "tree-iterator.h"
diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc
index 12a0889397d..001d24d238d 100644
--- a/gcc/go/gofrontend/gogo-tree.cc
+++ b/gcc/go/gofrontend/gogo-tree.cc
@@ -8,6 +8,9 @@
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gimple.h"
#include "gimplify.h"
#include "tree-iterator.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 1b2cd998f2c..7d705bb3394 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index a4cf1d5c627..867747041ae 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "internal-fn.h"
#include "tree.h"
+#include "stor-layout.h"
#include "expr.h"
#include "optabs.h"
#include "gimple.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 99fbfe7455a..38cf378d2d4 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -110,7 +110,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
#include "cgraph.h"
+#include "expr.h"
#include "tree-pass.h"
#include "ggc.h"
#include "pointer-set.h"
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index a558dbc75ff..662196f058b 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -69,6 +69,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "print-tree.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index c9a373bc08f..fbb63da7dc8 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -94,6 +94,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "trans-mem.h"
+#include "calls.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 65f9da12e98..d122dd55539 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple.h"
+#include "expr.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 52be4bf8869..a241a699c5c 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index 9f80086c747..27208deb519 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "gimple.h"
#include "tree-inline.h"
#include "tree-pass.h"
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index e55b3f59dbc..59d174220c3 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -79,6 +79,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
+#include "expr.h"
+#include "calls.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -89,6 +92,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-dfa.h"
diff --git a/gcc/ipa.c b/gcc/ipa.c
index e541090ee3a..3950d4eb856 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-pass.h"
#include "gimple.h"
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 3ffa76da8c2..0e277e4bf40 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -12,6 +12,30 @@
* java-gimplify.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* java-gimplify.c: Include gimplify.h.
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index c05543782ae..46d1d86820c 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -31,6 +31,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "ggc.h"
#include "flags.h"
#include "langhooks.h"
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 251873e0811..58bc92f94d9 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -27,6 +27,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "flags.h"
#include "java-tree.h"
#include "jcf.h"
diff --git a/gcc/java/constants.c b/gcc/java/constants.c
index ca411b5f9ff..64f6e696403 100644
--- a/gcc/java/constants.c
+++ b/gcc/java/constants.c
@@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "tm.h"
#include "jcf.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "diagnostic-core.h"
#include "toplev.h"
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 0a2cecc3fef..70e21b071f0 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -28,6 +28,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "diagnostic-core.h"
#include "toplev.h"
#include "flags.h"
diff --git a/gcc/java/except.c b/gcc/java/except.c
index b6d0c8d6c0f..9674abac22c 100644
--- a/gcc/java/except.c
+++ b/gcc/java/except.c
@@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "javaop.h"
#include "java-opcodes.h"
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 6dc00c6fc5d..c62d66dba02 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -33,6 +33,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
PARM_BOUNDARY. */
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "java-tree.h"
#include "javaop.h"
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index fbd4e00e029..9799523f142 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -27,6 +27,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "obstack.h"
#include "flags.h"
#include "java-except.h"
diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c
index 10557e94ebd..c4e088303c1 100644
--- a/gcc/java/mangle.c
+++ b/gcc/java/mangle.c
@@ -29,6 +29,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "jcf.h"
#include "tree.h"
+#include "stringpool.h"
#include "java-tree.h"
#include "obstack.h"
#include "diagnostic-core.h"
diff --git a/gcc/java/resource.c b/gcc/java/resource.c
index 54403d9f187..17155b8c362 100644
--- a/gcc/java/resource.c
+++ b/gcc/java/resource.c
@@ -25,6 +25,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "jcf.h"
#include "diagnostic-core.h"
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 9dbb3f0291b..3a0aa3960a2 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -27,6 +27,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "obstack.h"
#include "flags.h"
#include "java-tree.h"
diff --git a/gcc/java/verify-glue.c b/gcc/java/verify-glue.c
index 21acc4259df..022f4c4e058 100644
--- a/gcc/java/verify-glue.c
+++ b/gcc/java/verify-glue.c
@@ -28,6 +28,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "parse.h"
#include "verify.h"
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index ec0dd4d75ee..4b72f2a6238 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "tree-inline.h"
#include "gimple.h"
#include "gimplify.h"
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 99dbf96b7a5..d82759955d8 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "expr.h"
#include "flags.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 98cf28ff917..7b9f4ca496e 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
#include "expr.h"
#include "flags.h"
#include "params.h"
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 5176e35b70d..5e264fceee0 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "expr.h"
#include "flags.h"
#include "params.h"
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 266d00ff1e6..1b83f22046a 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -2,6 +2,13 @@
* lto-partition.c lto-symtab.c lto.c Adjust.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * lto-lang.c: Include stringpool.h.
+ Include stor-layout.h.
+ * lto-partition.c: Include gcc-symtab.h.
+ * lto.c: Include stor-layout.h.
+
2013-10-31 David Malcolm <dmalcolm@redhat.com>
Automated part of renaming of symtab_node_base to symtab_node.
diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c
index b56c22b8a87..cb15ce32fa7 100644
--- a/gcc/lto/lto-lang.c
+++ b/gcc/lto/lto-lang.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "target.h"
#include "langhooks.h"
#include "langhooks-def.h"
diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c
index e0d020d30ec..42d78307ded 100644
--- a/gcc/lto/lto-partition.c
+++ b/gcc/lto/lto-partition.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "toplev.h"
#include "tree.h"
+#include "gcc-symtab.h"
#include "gimple.h"
#include "tm.h"
#include "cgraph.h"
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 6ecac0106e1..0211437d5f9 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "opts.h"
#include "toplev.h"
#include "tree.h"
+#include "stor-layout.h"
#include "diagnostic-core.h"
#include "tm.h"
#include "cgraph.h"
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 881ac6ed341..000ba9e71b1 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -12,6 +12,19 @@
* objc-act.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * 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.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* objc-act.c: Include gimplify.h.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 9a640a3edd3..d7e8afb6acf 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c
index 532725114a2..61d722a77b0 100644
--- a/gcc/objc/objc-encoding.c
+++ b/gcc/objc/objc-encoding.c
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-gnu-runtime-abi-01.c b/gcc/objc/objc-gnu-runtime-abi-01.c
index f0116831e25..ef2e033b6dd 100644
--- a/gcc/objc/objc-gnu-runtime-abi-01.c
+++ b/gcc/objc/objc-gnu-runtime-abi-01.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-next-runtime-abi-01.c b/gcc/objc/objc-next-runtime-abi-01.c
index 000256d8311..9c7bf4529b1 100644
--- a/gcc/objc/objc-next-runtime-abi-01.c
+++ b/gcc/objc/objc-next-runtime-abi-01.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-next-runtime-abi-02.c b/gcc/objc/objc-next-runtime-abi-02.c
index 885047705d4..c7215a86682 100644
--- a/gcc/objc/objc-next-runtime-abi-02.c
+++ b/gcc/objc/objc-next-runtime-abi-02.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-runtime-shared-support.c b/gcc/objc/objc-runtime-shared-support.c
index 45efb780c28..9278b39e11b 100644
--- a/gcc/objc/objc-runtime-shared-support.c
+++ b/gcc/objc/objc-runtime-shared-support.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index f850f53e441..783b422a643 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "rtl.h"
#include "gimple.h"
#include "gimplify.h"
@@ -43,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
#include "ssa-iterators.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "flags.h"
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 661ce58bf4d..dcef4809d8b 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see
#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 4de4409342d..6a5ec19a539 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -551,5 +551,6 @@ extern void gen_satfract_conv_libfunc (convert_optab, const char *,
extern void gen_satfractuns_conv_libfunc (convert_optab, const char *,
enum machine_mode,
enum machine_mode);
+extern void init_tree_optimization_optabs (tree);
#endif /* GCC_OPTABS_H */
diff --git a/gcc/passes.c b/gcc/passes.c
index 55ec70f8962..fee1513b404 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "input.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "tm_p.h"
#include "flags.h"
@@ -63,6 +64,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index b9303e2883f..4adc5e44c9e 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "rtl.h"
#include "tm_p.h"
#include "hard-reg-set.h"
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 7d712c1562d..833bee92f71 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
generator programs. */
#ifndef GENERATOR_FILE
#include "tree.h"
+#include "print-tree.h"
#include "flags.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/print-rtl.h b/gcc/print-rtl.h
new file mode 100644
index 00000000000..3cb28d656fb
--- /dev/null
+++ b/gcc/print-rtl.h
@@ -0,0 +1,27 @@
+/* Print RTL for GCC.
+ Copyright (C) 1987-2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_PRINT_RTL_H
+#define GCC_PRINT_RTL_H
+
+#ifdef BUFSIZ
+extern void print_rtl (FILE *, const_rtx);
+#endif
+
+#endif // GCC_PRINT_RTL_H
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 5916c523f9d..1f4bf222aa1 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "print-rtl.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "langhooks.h"
#include "tree-iterator.h"
diff --git a/gcc/print-tree.h b/gcc/print-tree.h
new file mode 100644
index 00000000000..7d1a5c82bdc
--- /dev/null
+++ b/gcc/print-tree.h
@@ -0,0 +1,46 @@
+/* Declarations for printing trees in human readable form
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_PRINT_TREE_H
+#define GCC_PRINT_TREE_H
+
+extern void debug_tree (tree);
+extern void debug_raw (const tree_node &ref);
+extern void debug_raw (const tree_node *ptr);
+extern void debug (const tree_node &ref);
+extern void debug (const tree_node *ptr);
+extern void debug_verbose (const tree_node &ref);
+extern void debug_verbose (const tree_node *ptr);
+extern void debug_head (const tree_node &ref);
+extern void debug_head (const tree_node *ptr);
+extern void debug_body (const tree_node &ref);
+extern void debug_body (const tree_node *ptr);
+extern void debug_vec_tree (vec<tree, va_gc> *);
+extern void debug (vec<tree, va_gc> &ref);
+extern void debug (vec<tree, va_gc> *ptr);
+extern void debug_raw (vec<tree, va_gc> &ref);
+extern void debug_raw (vec<tree, va_gc> *ptr);
+#ifdef BUFSIZ
+extern void dump_addr (FILE*, const char *, const void *);
+extern void print_node (FILE *, const char *, tree, int);
+extern void print_node_brief (FILE *, const char *, const_tree, int);
+extern void indent_to (FILE *, int);
+#endif
+
+#endif // GCC_PRINT_TREE_H
diff --git a/gcc/realmpfr.c b/gcc/realmpfr.c
index 34f77120c5d..b5c11206d6c 100644
--- a/gcc/realmpfr.c
+++ b/gcc/realmpfr.c
@@ -22,6 +22,7 @@
#include "coretypes.h"
#include "realmpfr.h"
#include "tree.h" /* For TYPE_MODE in real_from_mpfr. */
+#include "stor-layout.h"
/* Convert from REAL_VALUE_TYPE to MPFR. The caller is responsible
for initializing and clearing the MPFR parameter. */
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 3740934b826..756d3bd586f 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -154,6 +154,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl-error.h"
#include "tm_p.h"
#include "function.h"
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index f10869922d7..8af0bc5af5b 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -45,6 +45,8 @@ AT&T C compiler. From the example below I would conclude the following:
#include "tm.h"
#include "debug.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "vec.h"
diff --git a/gcc/sese.c b/gcc/sese.c
index d05b14afbb8..2fe77392bd4 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop.h"
#include "tree-into-ssa.h"
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 6e174e5575c..b91ae1ade3f 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 28fbf7a6bc1..37b2de34482 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "hard-reg-set.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "except.h"
diff --git a/gcc/stmt.h b/gcc/stmt.h
new file mode 100644
index 00000000000..514be23a239
--- /dev/null
+++ b/gcc/stmt.h
@@ -0,0 +1,34 @@
+/* Declarations and data structures for stmt.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STMT_H
+#define GCC_STMT_H
+
+extern void expand_label (tree);
+extern bool parse_output_constraint (const char **, int, int, int,
+ bool *, bool *, bool *);
+extern bool parse_input_constraint (const char **, int, int, int, int,
+ const char * const *, bool *, bool *);
+extern tree resolve_asm_operand_names (tree, tree, tree, tree);
+#ifdef HARD_CONST
+/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */
+extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
+#endif
+
+#endif // GCC_STMT_H
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 535b897f80c..0dece714bf8 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "print-tree.h"
#include "rtl.h"
#include "tm_p.h"
#include "flags.h"
diff --git a/gcc/stor-layout.h b/gcc/stor-layout.h
new file mode 100644
index 00000000000..706bed4992d
--- /dev/null
+++ b/gcc/stor-layout.h
@@ -0,0 +1,115 @@
+/* Definitions and declarations for stor-layout.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STOR_LAYOUT_H
+#define GCC_STOR_LAYOUT_H
+
+extern void set_min_and_max_values_for_integral_type (tree, int, bool);
+extern void fixup_signed_type (tree);
+extern void internal_reference_types (void);
+extern unsigned int update_alignment_for_field (record_layout_info, tree,
+ unsigned int);
+extern record_layout_info start_record_layout (tree);
+extern tree bit_from_pos (tree, tree);
+extern tree byte_from_pos (tree, tree);
+extern void pos_from_bit (tree *, tree *, unsigned int, tree);
+extern void normalize_offset (tree *, tree *, unsigned int);
+extern tree rli_size_unit_so_far (record_layout_info);
+extern tree rli_size_so_far (record_layout_info);
+extern void normalize_rli (record_layout_info);
+extern void place_field (record_layout_info, tree);
+extern void compute_record_mode (tree);
+extern void finish_record_layout (record_layout_info, int);
+extern unsigned int element_precision (const_tree);
+extern void finalize_size_functions (void);
+extern void fixup_unsigned_type (tree);
+extern void initialize_sizetypes (void);
+
+/* Finish up a builtin RECORD_TYPE. Give it a name and provide its
+ fields. Optionally specify an alignment, and then lay it out. */
+extern void finish_builtin_struct (tree, const char *, tree, tree);
+
+/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,
+ calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE
+ fields. Call this only once for any given decl node.
+
+ Second argument is the boundary that this field can be assumed to
+ be starting at (in bits). Zero means it can be assumed aligned
+ on any boundary that may be needed. */
+extern void layout_decl (tree, unsigned);
+
+/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
+ TYPE_ALIGN and TYPE_MODE fields. If called more than once on one
+ node, does nothing except for the first time. */
+extern void layout_type (tree);
+
+/* Construct various nodes representing fract or accum data types. */
+extern tree make_fract_type (int, int, int);
+extern tree make_accum_type (int, int, int);
+
+#define make_signed_fract_type(P) make_fract_type (P, 0, 0)
+#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0)
+#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1)
+#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1)
+#define make_signed_accum_type(P) make_accum_type (P, 0, 0)
+#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0)
+#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1)
+#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1)
+
+#define make_or_reuse_signed_fract_type(P) \
+ make_or_reuse_fract_type (P, 0, 0)
+#define make_or_reuse_unsigned_fract_type(P) \
+ make_or_reuse_fract_type (P, 1, 0)
+#define make_or_reuse_sat_signed_fract_type(P) \
+ make_or_reuse_fract_type (P, 0, 1)
+#define make_or_reuse_sat_unsigned_fract_type(P) \
+ make_or_reuse_fract_type (P, 1, 1)
+#define make_or_reuse_signed_accum_type(P) \
+ make_or_reuse_accum_type (P, 0, 0)
+#define make_or_reuse_unsigned_accum_type(P) \
+ make_or_reuse_accum_type (P, 1, 0)
+#define make_or_reuse_sat_signed_accum_type(P) \
+ make_or_reuse_accum_type (P, 0, 1)
+#define make_or_reuse_sat_unsigned_accum_type(P) \
+ make_or_reuse_accum_type (P, 1, 1)
+
+extern tree make_signed_type (int);
+extern tree make_unsigned_type (int);
+
+/* Return the mode for data of a given size SIZE and mode class CLASS.
+ If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
+ The value is BLKmode if no other mode is found. This is like
+ mode_for_size, but is passed a tree. */
+extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int);
+
+/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of
+ a previous call to layout_decl and calls it again. */
+extern void relayout_decl (tree);
+
+/* variable_size (EXP) is like save_expr (EXP) except that it
+ is for the special case of something that is part of a
+ variable size for a data type. It makes special arrangements
+ to compute the value at the right time when the data type
+ belongs to a function parameter. */
+extern tree variable_size (tree);
+
+/* Vector types need to check target flags to determine type. */
+extern enum machine_mode vector_type_mode (const_tree);
+
+#endif // GCC_STOR_LAYOUT_H
diff --git a/gcc/stringpool.h b/gcc/stringpool.h
new file mode 100644
index 00000000000..55592aa3957
--- /dev/null
+++ b/gcc/stringpool.h
@@ -0,0 +1,43 @@
+/* Declarations and definitons for stringpool.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STRINGPOOL_H
+#define GCC_STRINGPOOL_H
+
+/* Return the (unique) IDENTIFIER_NODE node for a given name.
+ The name is supplied as a char *. */
+extern tree get_identifier (const char *);
+
+/* If an identifier with the name TEXT (a null-terminated string) has
+ previously been referred to, return that node; otherwise return
+ NULL_TREE. */
+extern tree maybe_get_identifier (const char *);
+
+/* Identical to get_identifier, except that the length is assumed
+ known. */
+extern tree get_identifier_with_length (const char *, size_t);
+
+#if GCC_VERSION >= 3000
+#define get_identifier(str) \
+ (__builtin_constant_p (str) \
+ ? get_identifier_with_length ((str), strlen (str)) \
+ : get_identifier (str))
+#endif
+
+#endif // GCC_STRINGPOOL_H
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 9426f75399d..851264d954a 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -22,7 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "varasm.h"
+#include "function.h"
+#include "emit-rtl.h"
#include "gimple.h"
#include "tree-inline.h"
#include "langhooks.h"
@@ -32,7 +37,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h"
#include "timevar.h"
#include "lto-streamer.h"
-#include "rtl.h"
#include "output.h"
const char * const ld_plugin_symbol_resolution_names[]=
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index cddc439546f..533d9f3783e 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -53,6 +53,8 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "expr.h"
#include "output.h"
#include "diagnostic-core.h"
@@ -70,6 +72,7 @@ along with GCC; see the file COPYING3. If not see
#include "opts.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-alias.h"
#include "insn-codes.h"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5666ad239c8..7fd31dfa3d9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -175,6 +175,11 @@
* g++.dg/cpp0x/nsdmi-template3.C: New.
* g++.dg/cpp0x/nsdmi-template4.C: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * gcc.dg/plugin/selfassign.c: Include stringpool.h.
+ * gcc.dg/plugin/start_unit_plugin.c: Likewise.
+
2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* gcc.target/powerpc/ppc64-abi-1.c (stack_frame_t): Remove
diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c
index 2498153a273..cdab74a19ae 100644
--- a/gcc/testsuite/gcc.dg/plugin/selfassign.c
+++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c
@@ -8,6 +8,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "toplev.h"
#include "basic-block.h"
#include "gimple.h"
diff --git a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
index 257aad85a8a..39f44626a55 100644
--- a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
+++ b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
@@ -11,6 +11,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "toplev.h"
#include "basic-block.h"
#include "gimple.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 66477b651dc..5fedcea9002 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -29,6 +29,8 @@ along with GCC; see the file COPYING3. If not see
#include "line-map.h"
#include "input.h"
#include "tree.h"
+#include "varasm.h"
+#include "tree-inline.h"
#include "realmpfr.h" /* For GMP/MPFR/MPC versions, in print_version. */
#include "version.h"
#include "rtl.h"
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 879f37b9177..24860054e6e 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -23,6 +23,10 @@
#include "hash-table.h"
#include "tree.h"
#include "gimple.h"
+#include "calls.h"
+#include "function.h"
+#include "rtl.h"
+#include "emit-rtl.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -30,6 +34,7 @@
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/trans-mem.h b/gcc/trans-mem.h
index 09f0b4d66e4..d68171fc4ea 100644
--- a/gcc/trans-mem.h
+++ b/gcc/trans-mem.h
@@ -17,6 +17,8 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#ifndef GCC_TRANS_MEM_H
+#define GCC_TRANS_MEM_H
/* These defines must match the enumerations in libitm.h. */
#define PR_INSTRUMENTEDCODE 0x0001
@@ -37,3 +39,12 @@
extern void compute_transaction_bits (void);
extern bool is_tm_ending (gimple);
+extern tree build_tm_abort_call (location_t, bool);
+extern bool is_tm_safe (const_tree);
+extern bool is_tm_pure (const_tree);
+extern bool is_tm_may_cancel_outer (tree);
+extern bool is_tm_ending_fndecl (tree);
+extern void record_tm_replacement (tree, tree);
+extern void tm_malloc_replacement (tree);
+
+#endif // GCC_TRANS_MEM_H
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 25fd7f287e0..9e3e1bf0657 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "tree-pretty-print.h"
#include "pointer-set.h"
#include "tree-affine.h"
diff --git a/gcc/tree-browser.c b/gcc/tree-browser.c
index dad06a5175a..c3483a7b3a7 100644
--- a/gcc/tree-browser.c
+++ b/gcc/tree-browser.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tree.h"
#include "tree-pretty-print.h"
+#include "print-tree.h"
#define TB_OUT_FILE stdout
#define TB_IN_FILE stdin
diff --git a/gcc/tree-call-cdce.c b/gcc/tree-call-cdce.c
index 8e636463dea..6f6b1171b92 100644
--- a/gcc/tree-call-cdce.c
+++ b/gcc/tree-call-cdce.c
@@ -24,11 +24,13 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "basic-block.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 751db306aab..a38dec3920f 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "trans-mem.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "tm_p.h"
#include "basic-block.h"
#include "flags.h"
@@ -39,10 +42,12 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-dump.h"
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index 0d4c63d4259..ec99ed0a111 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -36,8 +36,10 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 130674e673f..05f30e5afa2 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "gimple.h"
#include "gimplify.h"
@@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-iterator.h"
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index dde08bb47eb..190b91ca752 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -77,6 +77,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 678bbb9c4e3..0d1eb999ccb 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "hashtab.h"
#include "pointer-set.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "ggc.h"
@@ -38,7 +39,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "tree-pass.h"
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 656ba6f5cb3..77786787585 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "expr.h"
+#include "calls.h"
#include "flags.h"
#include "function.h"
#include "except.h"
@@ -34,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-ssa.h"
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index 11337c0c127..7f0c0a1981a 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
@@ -29,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "langhooks.h"
#include "target.h"
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 81403f25aa0..2dd073389f8 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -85,6 +85,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -96,6 +97,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-ssa.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index d0eb27ba12c..0a39ee6f4e1 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "diagnostic-core.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "tree-inline.h"
#include "flags.h"
#include "params.h"
@@ -43,8 +45,10 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "function.h"
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h
index 50ccaab42fc..d871fc4e4b6 100644
--- a/gcc/tree-inline.h
+++ b/gcc/tree-inline.h
@@ -183,10 +183,9 @@ extern eni_weights eni_size_weights;
extern eni_weights eni_time_weights;
/* Function prototypes. */
-
+void init_inline_once (void);
extern tree copy_tree_body_r (tree *, int *, void *);
extern void insert_decl_map (copy_body_data *, tree, tree);
-
unsigned int optimize_inline_calls (tree);
tree maybe_inline_call_in_expr (tree);
bool tree_inlinable_function_p (tree);
@@ -197,9 +196,13 @@ int estimate_num_insns (gimple, eni_weights *);
int estimate_num_insns_fn (tree, eni_weights *);
int count_insns_seq (gimple_seq, eni_weights *);
bool tree_versionable_function_p (tree);
-
extern tree remap_decl (tree decl, copy_body_data *id);
extern tree remap_type (tree type, copy_body_data *id);
extern gimple_seq copy_gimple_seq_and_replace_locals (gimple_seq seq);
+extern bool debug_find_tree (tree, tree);
+
+/* This is in tree-inline.c since the routine uses
+ data structures from the inliner. */
+extern tree build_duplicate_type (tree);
#endif /* GCC_TREE_INLINE_H */
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index ee86f2cfa9d..b2b57992d55 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -35,8 +35,10 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-inline.h"
diff --git a/gcc/tree-iterator.h b/gcc/tree-iterator.h
index f7593890713..b5217f77873 100644
--- a/gcc/tree-iterator.h
+++ b/gcc/tree-iterator.h
@@ -117,5 +117,7 @@ extern tree alloc_stmt_list (void);
extern void free_stmt_list (tree);
extern void append_to_statement_list (tree, tree *);
extern void append_to_statement_list_force (tree, tree *);
+extern tree expr_first (tree);
+extern tree expr_last (tree);
#endif /* GCC_TREE_ITERATOR_H */
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 075487726f4..6f9462c4aec 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -48,10 +48,12 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop.h"
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 9b4493bade0..868c8fd0e1f 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -22,6 +22,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "function.h"
#include "tree-dump.h"
diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c
index b333abf3956..035428aaec3 100644
--- a/gcc/tree-nrv.c
+++ b/gcc/tree-nrv.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-walk.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c
index 8dcd2aa5d9f..785f71eae29 100644
--- a/gcc/tree-object-size.c
+++ b/gcc/tree-object-size.c
@@ -23,12 +23,14 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-object-size.h"
#include "diagnostic-core.h"
#include "gimple-pretty-print.h"
#include "bitmap.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-object-size.h b/gcc/tree-object-size.h
new file mode 100644
index 00000000000..19029d89562
--- /dev/null
+++ b/gcc/tree-object-size.h
@@ -0,0 +1,26 @@
+/* Declarations for tree-object-size.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_TREE_OBJECT_SIZE_H
+#define GCC_TREE_OBJECT_SIZE_H
+
+extern void init_object_sizes (void);
+extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int);
+
+#endif // GCC_TREE_OBJECT_SIZE_H
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index eb11c883fb4..333ef767418 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -34,6 +35,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "dumpfile.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 648331cc767..b7370f73c46 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -28,10 +28,13 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimplify-me.h"
#include "gimple-walk.h"
+#include "stor-layout.h"
+#include "tree-nested.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c
index da7bf5be978..dffad686fd1 100644
--- a/gcc/tree-phinodes.c
+++ b/gcc/tree-phinodes.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index a43d19b08a9..830f82bc811 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -198,12 +198,14 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "ggc.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 93dc9c20610..7ed48833fc3 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "expr.h"
#include "tree-pretty-print.h"
#include "hashtab.h"
#include "gimple.h"
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index 132ce0d4d13..fb4df90b769 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -35,12 +35,15 @@ along with GCC; see the file COPYING3. If not see
#include "coverage.h"
#include "tree.h"
#include "gimple.h"
+#include "varasm.h"
+#include "tree-nested.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 115683de833..e8b18f9df07 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -257,6 +257,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "hash-table.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
@@ -266,6 +267,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index b4b17882d2a..ea1986cae7e 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -79,6 +79,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
#include "gimple.h"
+#include "stor-layout.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -88,7 +89,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index cf245675796..257d534a492 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -25,14 +25,17 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "dumpfile.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index c1028fb7606..ef9fbfecdc9 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -35,7 +35,9 @@ along with GCC; see the file COPYING3. If not see
#include "dumpfile.h"
#include "gimple.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "params.h"
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 06da6a2ec3e..d8ef822d4fb 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -114,6 +114,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -126,6 +127,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-coalesce.c b/gcc/tree-ssa-coalesce.c
index 942602e5fe3..cc46370d1f9 100644
--- a/gcc/tree-ssa-coalesce.c
+++ b/gcc/tree-ssa-coalesce.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "hash-table.h"
#include "tree-ssa-live.h"
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index 0f70372c80e..def780650e0 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index d71802e7a1c..361b4c32fd7 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -31,7 +31,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pretty-print.h"
#include "bitmap.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "hashtab.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index d138f92f195..213bb51b3e2 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "gimple-pretty-print.h"
#include "basic-block.h"
#include "gimple.h"
@@ -57,9 +58,11 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-niter.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 0ce24df2abe..bfd865d09a7 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -36,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "domwalk.h"
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 42e2380a0c8..905ef21761c 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -33,7 +33,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "domwalk.h"
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 817fa9f4614..a826137aabd 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -33,7 +34,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c
index 8ce4871e025..9d243753666 100644
--- a/gcc/tree-ssa-ifcombine.c
+++ b/gcc/tree-ssa-ifcombine.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "tm_p.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
#include "gimple.h"
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 1657f6f6ca5..5dc8d025f66 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -32,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "timevar.h"
#include "dumpfile.h"
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 7f29ea2053c..79a0543a40f 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop.h"
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 97b95ab2d31..ea0ab8ca80b 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index f53fa2286f2..9bf12ebdc8e 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -78,11 +79,13 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "cfgloop.h"
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index 31db43a2c05..fe2686d3037 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 97cad3de977..023f2a83356 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "expr.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -47,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "tree-inline.h"
#include "tree-pass.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index 3738f62fa09..6baf4abd319 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 0c5dbb17aa5..67117bcc3f6 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -93,11 +93,14 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index 4e05d2df046..3508b34b77a 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
+#include "print-tree.h"
#include "flags.h"
#include "function.h"
#include "gimple-pretty-print.h"
@@ -30,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-inline.h"
#include "timevar.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index a0d739881d6..54a981935fd 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -35,7 +36,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-phiprop.c b/gcc/tree-ssa-phiprop.c
index 070b8ed3f0b..e7640409425 100644
--- a/gcc/tree-ssa-phiprop.c
+++ b/gcc/tree-ssa-phiprop.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 6ab1b10d330..b16fd1704d1 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -35,9 +35,11 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "hash-table.h"
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index 078b04afdbc..bd33071303b 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -37,6 +37,7 @@
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 709b1c1ba63..eedccc6654b 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "tm_p.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
@@ -36,9 +37,11 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-iterator.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 786cfaa0988..2b2d0e9b997 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
@@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "dumpfile.h"
diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
index caf10bb522f..f0c831d113b 100644
--- a/gcc/tree-ssa-sink.c
+++ b/gcc/tree-ssa-sink.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 04e9ef4a0e2..514b1b829e2 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "hash-table.h"
#include "bitmap.h"
#include "gimple.h"
@@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "domwalk.h"
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index f1172e7f7c9..688f547d03a 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -29,12 +29,16 @@
#include "flags.h"
#include "basic-block.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stmt.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "cgraph.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index 79be2165693..35b8bbe0497 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -190,6 +190,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
#include "tm_p.h"
#include "basic-block.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-ter.c b/gcc/tree-ssa-ter.c
index df0c458e019..883f950c11a 100644
--- a/gcc/tree-ssa-ter.c
+++ b/gcc/tree-ssa-ter.c
@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "dumpfile.h"
#include "tree-ssa-live.h"
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index cabfc824c62..b90ff23af5d 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-propagate.h"
#include "tree-ssa-threadupdate.h"
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c
index e4b39986363..62ffe421f29 100644
--- a/gcc/tree-ssa-uncprop.c
+++ b/gcc/tree-ssa-uncprop.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index d2552361a66..1b4a383062b 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "target.h"
@@ -38,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index 76358912569..9d88b4cf576 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -22,10 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-ssa.h"
diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c
index 5cd845c0d52..221e7d705e0 100644
--- a/gcc/tree-stdarg.c
+++ b/gcc/tree-stdarg.c
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "sbitmap.h"
#include "tree-pass.h"
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 92598e39941..560d4f8f4f7 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "diagnostic.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "tree-streamer.h"
#include "data-streamer.h"
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index ea1a0546516..275c22cd7aa 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "diagnostic.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "tree-streamer.h"
#include "data-streamer.h"
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index fa31e22d525..494d48e5c46 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -30,6 +30,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "params.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple.h"
#include "gimplify.h"
@@ -39,6 +41,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "cgraph.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "gimple-pretty-print.h"
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 185bf165149..33677ce1277 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "function.h"
@@ -31,8 +32,10 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "gimple-pretty-print.h"
#include "except.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 83d1f4546bd..259a2846129 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "target.h"
#include "basic-block.h"
@@ -37,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index 9fcab5d2a83..735689b4c18 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm.h"
#include "langhooks.h"
#include "gimple.h"
@@ -28,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimplify-me.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-iterator.h"
#include "tree-pass.h"
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 411adb9afca..5c149951b84 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 86ebbd226a7..4a277ae419a 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
@@ -35,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 0992fbc9c73..de854e1a443 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "cfgloop.h"
#include "expr.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 247bdfd6669..bd9e4e23e0d 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -34,6 +35,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "cfgloop.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 54d821af9c0..2116cec3cf9 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -37,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "cfgloop.h"
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 9c2cf5d1ce2..5021c5b48cc 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -61,6 +61,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tree-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 696cadba767..d250186a40b 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "ggc.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "basic-block.h"
#include "gimple.h"
#include "gimple-iterator.h"
@@ -33,6 +35,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/tree.c b/gcc/tree.c
index ea106cee375..25aa3e2a356 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -33,6 +33,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "attribs.h"
+#include "varasm.h"
#include "tm_p.h"
#include "function.h"
#include "obstack.h"
@@ -54,7 +58,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "params.h"
#include "pointer-set.h"
diff --git a/gcc/tree.h b/gcc/tree.h
index f63672c0897..c485c3f8a88 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -22,6 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "tree-core.h"
+/* These includes are required here because they provide declarations
+ used by inline functions in this file.
+
+ FIXME - Move these users elsewhere? */
+#include "fold-const.h"
+
/* Macros for initializing `tree_contains_struct'. */
#define MARK_TS_BASE(C) \
do { \
@@ -568,7 +574,6 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
#define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
(COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE)))
-
/* Define many boolean fields that all tree nodes have. */
/* In VAR_DECL, PARM_DECL and RESULT_DECL nodes, nonzero means address
@@ -882,7 +887,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
(TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5)
#define TREE_LANG_FLAG_6(NODE) \
(TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6)
-
+
/* Define additional fields and accessors for nodes representing constants. */
/* In an INTEGER_CST node. These two together make a 2-word integer.
@@ -1519,8 +1524,6 @@ extern void protected_set_expr_location (tree, location_t);
#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
-/* Vector types need to check target flags to determine type. */
-extern enum machine_mode vector_type_mode (const_tree);
#define TYPE_MODE(NODE) \
(VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
? vector_type_mode (NODE) : (NODE)->type_common.mode)
@@ -2692,8 +2695,6 @@ extern vec<tree, va_gc> **decl_debug_args_insert (tree);
/* Return a tree node that encapsulates the optimization options in OPTS. */
extern tree build_optimization_node (struct gcc_options *opts);
-extern void init_tree_optimization_optabs (tree);
-
#define TREE_TARGET_OPTION(NODE) \
(&TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
@@ -3438,30 +3439,6 @@ extern tree make_tree_vec_stat (int MEM_STAT_DECL);
extern tree grow_tree_vec_stat (tree v, int MEM_STAT_DECL);
#define grow_tree_vec(v, t) grow_tree_vec_stat (v, t MEM_STAT_INFO)
-/* Return the (unique) IDENTIFIER_NODE node for a given name.
- The name is supplied as a char *. */
-
-extern tree get_identifier (const char *);
-
-#if GCC_VERSION >= 3000
-#define get_identifier(str) \
- (__builtin_constant_p (str) \
- ? get_identifier_with_length ((str), strlen (str)) \
- : get_identifier (str))
-#endif
-
-
-/* Identical to get_identifier, except that the length is assumed
- known. */
-
-extern tree get_identifier_with_length (const char *, size_t);
-
-/* If an identifier with the name TEXT (a null-terminated string) has
- previously been referred to, return that node; otherwise return
- NULL_TREE. */
-
-extern tree maybe_get_identifier (const char *);
-
/* Construct various types of nodes. */
extern tree build_nt (enum tree_code, ...);
@@ -3612,14 +3589,10 @@ extern tree build_call_vec (tree, tree, vec<tree, va_gc> *);
/* Construct various nodes representing data types. */
-extern tree make_signed_type (int);
-extern tree make_unsigned_type (int);
extern tree signed_or_unsigned_type_for (int, tree);
extern tree signed_type_for (tree);
extern tree unsigned_type_for (tree);
extern tree truth_type_for (tree);
-extern void initialize_sizetypes (void);
-extern void fixup_unsigned_type (tree);
extern tree build_pointer_type_for_mode (tree, enum machine_mode, bool);
extern tree build_pointer_type (tree);
extern tree build_reference_type_for_mode (tree, enum machine_mode, bool);
@@ -3687,51 +3660,17 @@ tree_to_uhwi (const_tree t)
extern int tree_int_cst_sgn (const_tree);
extern int tree_int_cst_sign_bit (const_tree);
extern unsigned int tree_int_cst_min_precision (tree, bool);
-extern bool tree_expr_nonnegative_p (tree);
-extern bool tree_expr_nonnegative_warnv_p (tree, bool *);
-extern bool may_negate_without_overflow_p (const_tree);
extern tree strip_array_types (tree);
extern tree excess_precision_type (tree);
extern bool valid_constant_size_p (const_tree);
-extern unsigned int element_precision (const_tree);
-
-/* Construct various nodes representing fract or accum data types. */
-
-extern tree make_fract_type (int, int, int);
-extern tree make_accum_type (int, int, int);
-
-#define make_signed_fract_type(P) make_fract_type (P, 0, 0)
-#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0)
-#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1)
-#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1)
-#define make_signed_accum_type(P) make_accum_type (P, 0, 0)
-#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0)
-#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1)
-#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1)
-
-#define make_or_reuse_signed_fract_type(P) \
- make_or_reuse_fract_type (P, 0, 0)
-#define make_or_reuse_unsigned_fract_type(P) \
- make_or_reuse_fract_type (P, 1, 0)
-#define make_or_reuse_sat_signed_fract_type(P) \
- make_or_reuse_fract_type (P, 0, 1)
-#define make_or_reuse_sat_unsigned_fract_type(P) \
- make_or_reuse_fract_type (P, 1, 1)
-#define make_or_reuse_signed_accum_type(P) \
- make_or_reuse_accum_type (P, 0, 0)
-#define make_or_reuse_unsigned_accum_type(P) \
- make_or_reuse_accum_type (P, 1, 0)
-#define make_or_reuse_sat_signed_accum_type(P) \
- make_or_reuse_accum_type (P, 0, 1)
-#define make_or_reuse_sat_unsigned_accum_type(P) \
- make_or_reuse_accum_type (P, 1, 1)
+
/* From expmed.c. Since rtl.h is included after tree.h, we can't
put the prototype here. Rtl.h does declare the prototype if
tree.h had been included. */
extern tree make_tree (tree, rtx);
-
+
/* Return a type like TTYPE except that its TYPE_ATTRIBUTES
is ATTRIBUTE.
@@ -3850,30 +3789,6 @@ extern tree build_aligned_type (tree, unsigned int);
extern tree build_distinct_type_copy (tree);
extern tree build_variant_type_copy (tree);
-/* Finish up a builtin RECORD_TYPE. Give it a name and provide its
- fields. Optionally specify an alignment, and then lay it out. */
-
-extern void finish_builtin_struct (tree, const char *,
- tree, tree);
-
-/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
- TYPE_ALIGN and TYPE_MODE fields. If called more than once on one
- node, does nothing except for the first time. */
-
-extern void layout_type (tree);
-
-extern record_layout_info start_record_layout (tree);
-extern tree bit_from_pos (tree, tree);
-extern tree byte_from_pos (tree, tree);
-extern void pos_from_bit (tree *, tree *, unsigned int, tree);
-extern void normalize_offset (tree *, tree *, unsigned int);
-extern tree rli_size_unit_so_far (record_layout_info);
-extern tree rli_size_so_far (record_layout_info);
-extern void normalize_rli (record_layout_info);
-extern void place_field (record_layout_info, tree);
-extern void compute_record_mode (tree);
-extern void finish_record_layout (record_layout_info, int);
-
/* Given a hashcode and a ..._TYPE node (for which the hashcode was made),
return a canonicalized ..._TYPE node, so that duplicates are not made.
How the hash code is computed is up to the caller, as long as any two
@@ -3881,37 +3796,8 @@ extern void finish_record_layout (record_layout_info, int);
extern tree type_hash_canon (unsigned int, tree);
-/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,
- calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE
- fields. Call this only once for any given decl node.
-
- Second argument is the boundary that this field can be assumed to
- be starting at (in bits). Zero means it can be assumed aligned
- on any boundary that may be needed. */
-
-extern void layout_decl (tree, unsigned);
-
-/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of
- a previous call to layout_decl and calls it again. */
-
-extern void relayout_decl (tree);
-
-/* Return the mode for data of a given size SIZE and mode class CLASS.
- If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
- The value is BLKmode if no other mode is found. This is like
- mode_for_size, but is passed a tree. */
-
-extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int);
-
-/* Return an expr equal to X but certainly not valid as an lvalue. */
-
-#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T)
-extern tree non_lvalue_loc (location_t, tree);
-
extern tree convert (tree, tree);
extern unsigned int expr_align (const_tree);
-extern tree expr_first (tree);
-extern tree expr_last (tree);
extern tree size_in_bytes (const_tree);
extern HOST_WIDE_INT int_size_in_bytes (const_tree);
extern HOST_WIDE_INT max_int_size_in_bytes (const_tree);
@@ -3924,26 +3810,11 @@ extern HOST_WIDE_INT int_byte_position (const_tree);
#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
#define ssizetype sizetype_tab[(int) stk_ssizetype]
#define sbitsizetype sizetype_tab[(int) stk_sbitsizetype]
-
-extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
-#define size_binop(CODE,T1,T2)\
- size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree size_binop_loc (location_t, enum tree_code, tree, tree);
-#define size_diffop(T1,T2)\
- size_diffop_loc (UNKNOWN_LOCATION, T1, T2)
-extern tree size_diffop_loc (location_t, tree, tree);
-
#define size_int(L) size_int_kind (L, stk_sizetype)
#define ssize_int(L) size_int_kind (L, stk_ssizetype)
#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
-#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N)
-extern tree round_up_loc (location_t, tree, int);
-#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N)
-extern tree round_down_loc (location_t, tree, int);
-extern void finalize_size_functions (void);
-
/* Type for sizes of data-type. */
#define BITS_PER_UNIT_LOG \
@@ -3993,11 +3864,6 @@ extern tree uniform_vector_p (const_tree);
extern vec<tree, va_gc> *ctor_to_vec (tree);
-extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *,
- HOST_WIDE_INT *, bool *);
-
-extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree);
-
/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0. */
extern int integer_zerop (const_tree);
@@ -4121,13 +3987,6 @@ extern tree substitute_placeholder_in_expr (tree, tree);
((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) \
: substitute_placeholder_in_expr (EXP, OBJ))
-/* variable_size (EXP) is like save_expr (EXP) except that it
- is for the special case of something that is part of a
- variable size for a data type. It makes special arrangements
- to compute the value at the right time when the data type
- belongs to a function parameter. */
-
-extern tree variable_size (tree);
/* stabilize_reference (EXP) returns a reference equivalent to EXP
but it can be used multiple times
@@ -4170,36 +4029,6 @@ handled_component_p (const_tree t)
}
}
-/* Given an expression EXP that is a handled_component_p,
- look for the ultimate containing object, which is returned and specify
- the access position and size. */
-
-extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
- tree *, enum machine_mode *, int *, int *,
- bool);
-
-/* Return a tree of sizetype representing the size, in bytes, of the element
- of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_element_size (tree);
-
-bool array_at_struct_end_p (tree);
-
-/* Return a tree representing the lower bound of the array mentioned in
- EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_low_bound (tree);
-
-/* Return a tree representing the upper bound of the array mentioned in
- EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_up_bound (tree);
-
-/* Return a tree representing the offset, in bytes, of the field referenced
- by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */
-
-extern tree component_ref_field_offset (tree);
-
/* Given a DECL or TYPE, return the scope in which it was declared, or
NUL_TREE if there is no containing scope. */
@@ -4274,8 +4103,6 @@ inlined_function_outer_scope_p (const_tree block)
(TREE = function_args_iter_cond (&(ITER))) != NULL_TREE; \
function_args_iter_next (&(ITER)))
-
-
/* In tree.c */
extern unsigned crc32_string (unsigned, const char *);
extern unsigned crc32_byte (unsigned, char);
@@ -4306,14 +4133,6 @@ extern void assign_assembler_name_if_neeeded (tree);
extern void warn_deprecated_use (tree, tree);
extern void cache_integer_cst (tree);
-
-/* In cgraph.c */
-extern void change_decl_assembler_name (tree, tree);
-
-/* In stmt.c */
-
-extern void expand_label (tree);
-
/* Compare and hash for any structure which begins with a canonical
pointer. Assumes all pointers are interchangeable, which is sort
of already assumed by gcc elsewhere IIRC. */
@@ -4333,132 +4152,6 @@ struct_ptr_hash (const void *a)
return (intptr_t)*x >> 4;
}
-/* In fold-const.c */
-
-/* Non-zero if we are folding constants inside an initializer; zero
- otherwise. */
-extern int folding_initializer;
-
-/* Convert between trees and native memory representation. */
-extern int native_encode_expr (const_tree, unsigned char *, int);
-extern tree native_interpret_expr (tree, const unsigned char *, int);
-
-/* Fold constants as much as possible in an expression.
- Returns the simplified expression.
- Acts only on the top level of the expression;
- if the argument itself cannot be simplified, its
- subexpressions are not changed. */
-
-extern tree fold (tree);
-#define fold_unary(CODE,T1,T2)\
- fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree fold_unary_loc (location_t, enum tree_code, tree, tree);
-#define fold_unary_ignore_overflow(CODE,T1,T2)\
- fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree);
-#define fold_binary(CODE,T1,T2,T3)\
- fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3)
-extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree);
-#define fold_ternary(CODE,T1,T2,T3,T4)\
- fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4)
-extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree);
-#define fold_build1(c,t1,t2)\
- fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO)
-#define fold_build1_loc(l,c,t1,t2)\
- fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO)
-extern tree fold_build1_stat_loc (location_t, enum tree_code, tree,
- tree MEM_STAT_DECL);
-#define fold_build2(c,t1,t2,t3)\
- fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO)
-#define fold_build2_loc(l,c,t1,t2,t3)\
- fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO)
-extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree,
- tree MEM_STAT_DECL);
-#define fold_build3(c,t1,t2,t3,t4)\
- fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO)
-#define fold_build3_loc(l,c,t1,t2,t3,t4)\
- fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO)
-extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree,
- tree MEM_STAT_DECL);
-extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree);
-extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree);
-#define fold_build_call_array(T1,T2,N,T4)\
- fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
-extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *);
-#define fold_build_call_array_initializer(T1,T2,N,T4)\
- fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
-extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *);
-extern bool fold_convertible_p (const_tree, const_tree);
-#define fold_convert(T1,T2)\
- fold_convert_loc (UNKNOWN_LOCATION, T1, T2)
-extern tree fold_convert_loc (location_t, tree, tree);
-extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree);
-extern tree fold_ignored_result (tree);
-extern tree fold_abs_const (tree, tree);
-extern tree fold_indirect_ref_1 (location_t, tree, tree);
-extern void fold_defer_overflow_warnings (void);
-extern void fold_undefer_overflow_warnings (bool, const_gimple, int);
-extern void fold_undefer_and_ignore_overflow_warnings (void);
-extern bool fold_deferring_overflow_warnings_p (void);
-extern tree fold_fma (location_t, tree, tree, tree, tree);
-extern int operand_equal_p (const_tree, const_tree, unsigned int);
-extern int multiple_of_p (tree, const_tree, const_tree);
-#define omit_one_operand(T1,T2,T3)\
- omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3)
-extern tree omit_one_operand_loc (location_t, tree, tree, tree);
-#define omit_two_operands(T1,T2,T3,T4)\
- omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4)
-extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree);
-#define invert_truthvalue(T)\
- invert_truthvalue_loc (UNKNOWN_LOCATION, T)
-extern tree invert_truthvalue_loc (location_t, tree);
-extern tree fold_unary_to_constant (enum tree_code, tree, tree);
-extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree);
-extern tree fold_read_from_constant_string (tree);
-extern tree int_const_binop (enum tree_code, const_tree, const_tree);
-#define build_fold_addr_expr(T)\
- build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T))
-extern tree build_fold_addr_expr_loc (location_t, tree);
-#define build_fold_addr_expr_with_type(T,TYPE)\
- build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE)
-extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree);
-extern tree fold_build_cleanup_point_expr (tree type, tree expr);
-extern tree fold_strip_sign_ops (tree);
-#define build_fold_indirect_ref(T)\
- build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
-extern tree build_fold_indirect_ref_loc (location_t, tree);
-#define fold_indirect_ref(T)\
- fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
-extern tree fold_indirect_ref_loc (location_t, tree);
-extern tree build_simple_mem_ref_loc (location_t, tree);
-#define build_simple_mem_ref(T)\
- build_simple_mem_ref_loc (UNKNOWN_LOCATION, T)
-extern double_int mem_ref_offset (const_tree);
-extern tree build_invariant_address (tree, tree, HOST_WIDE_INT);
-extern tree constant_boolean_node (bool, tree);
-extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree);
-
-extern bool tree_swap_operands_p (const_tree, const_tree, bool);
-extern enum tree_code swap_tree_comparison (enum tree_code);
-
-extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);
-extern enum tree_code invert_tree_comparison (enum tree_code, bool);
-
-extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *);
-extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1,
- bool *);
-extern bool tree_single_nonzero_warnv_p (tree, bool *);
-extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *);
-extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree,
- bool *);
-extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p);
-extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *);
-
-extern bool fold_real_zero_addition_p (const_tree, const_tree, int);
-extern tree combine_comparisons (location_t, enum tree_code, enum tree_code,
- enum tree_code, tree, tree, tree);
-extern void debug_fold_checksum (const_tree);
-
/* Return nonzero if CODE is a tree code that represents a truth value. */
static inline bool
truth_value_p (enum tree_code code)
@@ -4508,56 +4201,7 @@ fold_build_pointer_plus_hwi_loc (location_t loc, tree ptr, HOST_WIDE_INT off)
#define fold_build_pointer_plus_hwi(p,o) \
fold_build_pointer_plus_hwi_loc (UNKNOWN_LOCATION, p, o)
-/* In builtins.c */
-
-/* Non-zero if __builtin_constant_p should be folded right away. */
-extern bool force_folding_builtin_constant_p;
-
-extern bool avoid_folding_inline_builtin (tree);
-extern tree fold_call_expr (location_t, tree, bool);
-extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree);
-extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree);
-extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree);
-extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern bool fold_builtin_next_arg (tree, bool);
-extern enum built_in_function builtin_mathfn_code (const_tree);
-extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *);
-extern tree build_call_expr_loc_array (location_t, tree, int, tree *);
-extern tree build_call_expr_loc_vec (location_t, tree, vec<tree, va_gc> *);
-extern tree build_call_expr_loc (location_t, tree, int, ...);
-extern tree build_call_expr (tree, int, ...);
-extern tree mathfn_built_in (tree, enum built_in_function fn);
-extern tree c_strlen (tree, int);
-extern tree build_string_literal (int, const char *);
-extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode);
-extern bool is_builtin_fn (tree);
-extern bool get_object_alignment_1 (tree, unsigned int *,
- unsigned HOST_WIDE_INT *);
-extern unsigned int get_object_alignment (tree);
-extern bool get_pointer_alignment_1 (tree, unsigned int *,
- unsigned HOST_WIDE_INT *);
-extern unsigned int get_pointer_alignment (tree);
-extern tree fold_call_stmt (gimple, bool);
-extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
-extern tree make_range (tree, int *, tree *, tree *, bool *);
-extern tree make_range_step (location_t, enum tree_code, tree, tree, tree,
- tree *, tree *, int *, bool *);
-extern tree build_range_check (location_t, tree, tree, int, tree, tree);
-extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int,
- tree, tree);
-extern void set_builtin_user_assembler_name (tree decl, const char *asmspec);
-extern bool is_simple_builtin (tree);
-extern bool is_inexpensive_builtin (tree);
-
-/* In convert.c */
extern tree strip_float_extensions (tree);
-
-/* In tree.c */
extern int really_constant_p (const_tree);
extern bool decl_address_invariant_p (const_tree);
extern bool decl_address_ip_invariant_p (const_tree);
@@ -4581,7 +4225,6 @@ extern void dump_tree_statistics (void);
extern void recompute_tree_invariant_for_addr_expr (tree);
extern bool needs_to_live_in_memory (const_tree);
extern tree reconstruct_complex_type (tree, tree);
-
extern int real_onep (const_tree);
extern int real_minus_onep (const_tree);
extern void init_ttree (void);
@@ -4593,14 +4236,11 @@ extern tree build_nonshared_range_type (tree, tree, tree);
extern bool subrange_type_for_debug_p (const_tree, tree *, tree *);
extern HOST_WIDE_INT int_cst_value (const_tree);
extern HOST_WIDEST_INT widest_int_cst_value (const_tree);
-
extern tree tree_block (tree);
extern void tree_set_block (tree, tree);
extern location_t *block_nonartificial_location (tree);
extern location_t tree_nonartificial_location (tree);
-
extern tree block_ultimate_origin (const_tree);
-
extern tree get_binfo_at_offset (tree, HOST_WIDE_INT, tree);
extern bool virtual_method_call_p (tree);
extern tree obj_type_ref_class (tree ref);
@@ -4610,163 +4250,8 @@ extern bool type_in_anonymous_namespace_p (tree);
extern bool block_may_fallthru (const_tree);
extern void using_eh_for_cleanups (void);
extern bool using_eh_for_cleanups_p (void);
-
extern const char *get_tree_code_name (enum tree_code);
-
-/* In function.c */
-extern void expand_function_end (void);
-extern void expand_function_start (tree);
-extern void stack_protect_epilogue (void);
-extern void init_dummy_function_start (void);
-extern void expand_dummy_function_end (void);
-extern void allocate_struct_function (tree, bool);
-extern void push_struct_function (tree fndecl);
-extern void init_function_start (tree);
-extern bool use_register_for_decl (const_tree);
-extern void generate_setjmp_warnings (void);
-extern void init_temp_slots (void);
-extern void free_temp_slots (void);
-extern void pop_temp_slots (void);
-extern void push_temp_slots (void);
-extern void preserve_temp_slots (rtx);
-extern int aggregate_value_p (const_tree, const_tree);
-extern void push_function_context (void);
-extern void pop_function_context (void);
-extern gimple_seq gimplify_parameters (void);
-
-/* In print-rtl.c */
-#ifdef BUFSIZ
-extern void print_rtl (FILE *, const_rtx);
-#endif
-
-/* In print-tree.c */
-extern void debug_tree (tree);
-extern void debug_raw (const tree_node &ref);
-extern void debug_raw (const tree_node *ptr);
-extern void debug (const tree_node &ref);
-extern void debug (const tree_node *ptr);
-extern void debug_verbose (const tree_node &ref);
-extern void debug_verbose (const tree_node *ptr);
-extern void debug_head (const tree_node &ref);
-extern void debug_head (const tree_node *ptr);
-extern void debug_body (const tree_node &ref);
-extern void debug_body (const tree_node *ptr);
-extern void debug_vec_tree (vec<tree, va_gc> *);
-extern void debug (vec<tree, va_gc> &ref);
-extern void debug (vec<tree, va_gc> *ptr);
-extern void debug_raw (vec<tree, va_gc> &ref);
-extern void debug_raw (vec<tree, va_gc> *ptr);
-#ifdef BUFSIZ
-extern void dump_addr (FILE*, const char *, const void *);
-extern void print_node (FILE *, const char *, tree, int);
-extern void print_node_brief (FILE *, const char *, const_tree, int);
-extern void indent_to (FILE *, int);
-#endif
-
-/* In tree-inline.c: */
-extern bool debug_find_tree (tree, tree);
-/* This is in tree-inline.c since the routine uses
- data structures from the inliner. */
-extern tree build_duplicate_type (tree);
-
-/* In calls.c */
-extern int flags_from_decl_or_type (const_tree);
-extern int call_expr_flags (const_tree);
extern void set_call_expr_flags (tree, int);
-
-extern int setjmp_call_p (const_tree);
-extern bool gimple_alloca_call_p (const_gimple);
-extern bool alloca_call_p (const_tree);
-extern bool must_pass_in_stack_var_size (enum machine_mode, const_tree);
-extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree);
-
-/* In attribs.c. */
-
-extern const struct attribute_spec *lookup_attribute_spec (const_tree);
-extern void init_attributes (void);
-
-/* Process the attributes listed in ATTRIBUTES and install them in *NODE,
- which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL,
- it should be modified in place; if a TYPE, a copy should be created
- unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further
- information, in the form of a bitwise OR of flags in enum attribute_flags
- from tree.h. Depending on these flags, some attributes may be
- returned to be applied at a later stage (for example, to apply
- a decl attribute to the declaration rather than to its type). */
-extern tree decl_attributes (tree *, tree, int);
-
-extern bool cxx11_attribute_p (const_tree);
-
-extern tree get_attribute_name (const_tree);
-
-extern void apply_tm_attr (tree, tree);
-
-/* In stor-layout.c */
-extern void set_min_and_max_values_for_integral_type (tree, int, bool);
-extern void fixup_signed_type (tree);
-extern void internal_reference_types (void);
-extern unsigned int update_alignment_for_field (record_layout_info, tree,
- unsigned int);
-/* varasm.c */
-extern tree tree_output_constant_def (tree);
-extern void make_decl_rtl (tree);
-extern rtx make_decl_rtl_for_debug (tree);
-extern void make_decl_one_only (tree, tree);
-extern int supports_one_only (void);
-extern void resolve_unique_section (tree, int, int);
-extern void mark_referenced (tree);
-extern void mark_decl_referenced (tree);
-extern void notice_global_symbol (tree);
-extern void set_user_assembler_name (tree, const char *);
-extern void process_pending_assemble_externals (void);
-extern bool decl_replaceable_p (tree);
-extern bool decl_binds_to_current_def_p (tree);
-extern enum tls_model decl_default_tls_model (const_tree);
-
-/* Declare DECL to be a weak symbol. */
-extern void declare_weak (tree);
-/* Merge weak status. */
-extern void merge_weak (tree, tree);
-/* Make one symbol an alias for another. */
-extern void assemble_alias (tree, tree);
-
-/* Return nonzero if VALUE is a valid constant-valued expression
- for use in initializing a static variable; one that can be an
- element of a "constant" initializer.
-
- Return null_pointer_node if the value is absolute;
- if it is relocatable, return the variable that determines the relocation.
- We assume that VALUE has been folded as much as possible;
- therefore, we do not need to check for such things as
- arithmetic-combinations of integers. */
-extern tree initializer_constant_valid_p (tree, tree);
-
-/* Return true if VALUE is a valid constant-valued expression
- for use in initializing a static bit-field; one that can be
- an element of a "constant" initializer. */
-extern bool initializer_constant_valid_for_bitfield_p (tree);
-
-/* Whether a constructor CTOR is a valid static constant initializer if all
- its elements are. This used to be internal to initializer_constant_valid_p
- and has been exposed to let other functions like categorize_ctor_elements
- evaluate the property while walking a constructor for other purposes. */
-
-extern bool constructor_static_from_elts_p (const_tree);
-
-/* In stmt.c */
-extern bool parse_output_constraint (const char **, int, int, int,
- bool *, bool *, bool *);
-extern bool parse_input_constraint (const char **, int, int, int, int,
- const char * const *, bool *, bool *);
-extern tree resolve_asm_operand_names (tree, tree, tree, tree);
-#ifdef HARD_CONST
-/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */
-extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
-#endif
-
-
-/* In tree-inline.c */
-
extern tree walk_tree_1 (tree*, walk_tree_fn, void*, struct pointer_set_t*,
walk_tree_lh);
extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*,
@@ -4776,16 +4261,7 @@ extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*,
#define walk_tree_without_duplicates(a,b,c) \
walk_tree_without_duplicates_1 (a, b, c, NULL)
-/* In emit-rtl.c */
-/* Assign the RTX to declaration. */
-
-extern void set_decl_rtl (tree, rtx);
-extern void set_decl_incoming_rtl (tree, rtx, bool);
-
-/* In gimple.c. */
extern tree get_base_address (tree t);
-
-/* In tree.c. */
extern tree drop_tree_overflow (tree);
extern int tree_map_base_eq (const void *, const void *);
extern unsigned int tree_map_base_hash (const void *);
@@ -4811,33 +4287,6 @@ extern unsigned int tree_decl_map_hash (const void *);
#define tree_vec_map_hash tree_decl_map_hash
#define tree_vec_map_marked_p tree_map_base_marked_p
-/* In tree-object-size.c. */
-extern void init_object_sizes (void);
-extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int);
-
-/* In expr.c. */
-
-/* Determine whether the LEN bytes can be moved by using several move
- instructions. Return nonzero if a call to move_by_pieces should
- succeed. */
-extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int);
-
-extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree);
-extern tree build_personality_function (const char *);
-
-/* In trans-mem.c. */
-extern tree build_tm_abort_call (location_t, bool);
-extern bool is_tm_safe (const_tree);
-extern bool is_tm_pure (const_tree);
-extern bool is_tm_may_cancel_outer (tree);
-extern bool is_tm_ending_fndecl (tree);
-extern void record_tm_replacement (tree, tree);
-extern void tm_malloc_replacement (tree);
-
-/* In tree-inline.c. */
-
-void init_inline_once (void);
-
/* Initialize the abstract argument list iterator object ITER with the
arguments from CALL_EXPR node EXP. */
static inline void
@@ -5045,5 +4494,70 @@ may_be_aliased (const_tree var)
#endif /* NO_DOLLAR_IN_LABEL */
#endif /* NO_DOT_IN_LABEL */
+/* FIXME - These declarations belong in builtins.h, expr.h and emit-rtl.h,
+ but none of these files are allowed to be included from front ends.
+ They should be split in two. One suitable for the FEs, the other suitable
+ for the BE. */
+
+/* Assign the RTX to declaration. */
+extern void set_decl_rtl (tree, rtx);
+extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree);
+
+/* Return a tree representing the upper bound of the array mentioned in
+ EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_up_bound (tree);
+
+extern tree build_personality_function (const char *);
+
+/* Given an expression EXP that is a handled_component_p,
+ look for the ultimate containing object, which is returned and specify
+ the access position and size. */
+extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
+ tree *, enum machine_mode *, int *, int *,
+ bool);
+
+/* Return a tree representing the lower bound of the array mentioned in
+ EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_low_bound (tree);
+
+/* In builtins.c. */
+
+/* Non-zero if __builtin_constant_p should be folded right away. */
+extern bool force_folding_builtin_constant_p;
+
+extern bool avoid_folding_inline_builtin (tree);
+extern tree fold_call_expr (location_t, tree, bool);
+extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree);
+extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree);
+extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree);
+extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern bool fold_builtin_next_arg (tree, bool);
+extern enum built_in_function builtin_mathfn_code (const_tree);
+extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *);
+extern tree build_call_expr_loc_array (location_t, tree, int, tree *);
+extern tree build_call_expr_loc_vec (location_t, tree, vec<tree, va_gc> *);
+extern tree build_call_expr_loc (location_t, tree, int, ...);
+extern tree build_call_expr (tree, int, ...);
+extern tree mathfn_built_in (tree, enum built_in_function fn);
+extern tree c_strlen (tree, int);
+extern tree build_string_literal (int, const char *);
+extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode);
+extern bool is_builtin_fn (tree);
+extern bool get_object_alignment_1 (tree, unsigned int *,
+ unsigned HOST_WIDE_INT *);
+extern unsigned int get_object_alignment (tree);
+extern bool get_pointer_alignment_1 (tree, unsigned int *,
+ unsigned HOST_WIDE_INT *);
+extern unsigned int get_pointer_alignment (tree);
+extern tree fold_call_stmt (gimple, bool);
+extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
+extern void set_builtin_user_assembler_name (tree decl, const char *asmspec);
+extern bool is_simple_builtin (tree);
+extern bool is_inexpensive_builtin (tree);
#endif /* GCC_TREE_H */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index b8f65af6541..42730f07f84 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "intl.h"
#include "tm.h"
#include "basic-block.h"
@@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-iterator.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 62894d9687e..de5dc40d659 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-pass.h"
#include "gimple.h"
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index f21ff00f2cb..2fe12b603f2 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-nested.h"
+#include "calls.h"
#include "rtl.h"
#include "expr.h"
#include "hard-reg-set.h"
@@ -40,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "diagnostic.h"
#include "gimple-pretty-print.h"
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index fc3fc93ca5b..a569d468ec3 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -91,6 +91,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "gimple.h"
#include "tm_p.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 1fd53f0457f..475d196063c 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -31,6 +31,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "gcc-symtab.h"
+#include "varasm.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
diff --git a/gcc/varasm.h b/gcc/varasm.h
new file mode 100644
index 00000000000..d2a01a700ab
--- /dev/null
+++ b/gcc/varasm.h
@@ -0,0 +1,69 @@
+/* Declarations for varasm.h.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_VARASM_H
+#define GCC_VARASM_H
+
+extern tree tree_output_constant_def (tree);
+extern void make_decl_rtl (tree);
+extern rtx make_decl_rtl_for_debug (tree);
+extern void make_decl_one_only (tree, tree);
+extern int supports_one_only (void);
+extern void resolve_unique_section (tree, int, int);
+extern void mark_referenced (tree);
+extern void mark_decl_referenced (tree);
+extern void notice_global_symbol (tree);
+extern void set_user_assembler_name (tree, const char *);
+extern void process_pending_assemble_externals (void);
+extern bool decl_replaceable_p (tree);
+extern bool decl_binds_to_current_def_p (tree);
+extern enum tls_model decl_default_tls_model (const_tree);
+
+/* Declare DECL to be a weak symbol. */
+extern void declare_weak (tree);
+
+/* Merge weak status. */
+extern void merge_weak (tree, tree);
+
+/* Make one symbol an alias for another. */
+extern void assemble_alias (tree, tree);
+
+/* Return nonzero if VALUE is a valid constant-valued expression
+ for use in initializing a static variable; one that can be an
+ element of a "constant" initializer.
+
+ Return null_pointer_node if the value is absolute;
+ if it is relocatable, return the variable that determines the relocation.
+ We assume that VALUE has been folded as much as possible;
+ therefore, we do not need to check for such things as
+ arithmetic-combinations of integers. */
+extern tree initializer_constant_valid_p (tree, tree);
+
+/* Return true if VALUE is a valid constant-valued expression
+ for use in initializing a static bit-field; one that can be
+ an element of a "constant" initializer. */
+extern bool initializer_constant_valid_for_bitfield_p (tree);
+
+/* Whether a constructor CTOR is a valid static constant initializer if all
+ its elements are. This used to be internal to initializer_constant_valid_p
+ and has been exposed to let other functions like categorize_ctor_elements
+ evaluate the property while walking a constructor for other purposes. */
+extern bool constructor_static_from_elts_p (const_tree);
+
+#endif // GCC_VARASM_H
diff --git a/gcc/varpool.c b/gcc/varpool.c
index 4521caf2b10..06b93a30d5f 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "cgraph.h"
#include "langhooks.h"
#include "diagnostic-core.h"
diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
index 9f308a6fdf2..7972dd7a93e 100644
--- a/gcc/vmsdbgout.c
+++ b/gcc/vmsdbgout.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#ifdef VMS_DEBUGGING_INFO
#include "tree.h"
+#include "varasm.h"
#include "version.h"
#include "flags.h"
#include "rtl.h"
diff --git a/gcc/vtable-verify.c b/gcc/vtable-verify.c
index ecf1dc25e84..8d692e62e11 100644
--- a/gcc/vtable-verify.c
+++ b/gcc/vtable-verify.c
@@ -143,6 +143,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "cfgloop.h"
diff --git a/gcc/xcoffout.c b/gcc/xcoffout.c
index 8a9093c10c2..c14f01424f3 100644
--- a/gcc/xcoffout.c
+++ b/gcc/xcoffout.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "flags.h"
#include "diagnostic-core.h"