1. 18 Dec, 2012 1 commit
  2. 09 Nov, 2012 1 commit
    • Add C++ attribute abi_tag and -Wabi-tag option. · 7dbb85a7
      gcc/
      	* attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST.
      gcc/c-family/
      	* c.opt (Wabi-tag): New.
      gcc/cp/
      	* tree.c (cxx_attribute_table): Add abi_tag attribute.
      	(check_abi_tag_redeclaration, handle_abi_tag_attribute): New.
      	* class.c (find_abi_tags_r, check_abi_tags): New.
      	(check_bases, check_field_decl): Call check_abi_tags.
      	* decl.c (redeclaration_error_message): Call
      	check_abi_tag_redeclaration.
      	* mangle.c (tree_string_cmp, write_abi_tags): New.
      	(write_unqualified_name): Call write_abi_tags.
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_TAGGED_NAME.
      libiberty/
      	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_TAGGED_NAME.
      	(d_make_comp, d_find_pack, d_print_comp): Likewise.
      	(d_abi_tags): New.
      	(d_name): Call it.
      
      From-SVN: r193367
      Jason Merrill committed
  3. 06 Nov, 2012 1 commit
    • common.opt (gno-split-dwarf, [...]): New switches. · 99ea153e
      gcc/ChangeLog
      
      2012-11-06  Sterling Augustine <saugustine@google.com>
                  Cary Coutant <ccoutant@google.com>
      
      	* common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
      	* doc/invoke.texi (Debugging Options): Document them.
      	* gcc.c (replace_extension_spec_func):  New function.
      	(ASM_FINAL_SPEC): Adjust.
      	(static_spec_functions): Add new field for replace-extension.
      	(check_live_switch): Adjust comment.  Add case for 'g'.
      	* opts.c (finish_options): Set x_debug_generate_pub_sections based on
      	x_dwarf_split_debug_info.
      	(common_handle_option): Add case for OPT_gsplit_dwarf.
      	* dwarf2out.h (addr_table_entry_struct): Add forward declaration.
      	(dw_val_struct): Add val_entry pointer.
      	* dwarf2out.c: (debug_skeleton_info_section,
      	debug_skeleton_abbrev_section, debug_addr_section,
      	debug_skeleton_line_section, debug_str_offsets_section): New globals.
      	(NOT_INDEXED, NO_INDEX_ASSIGNED): New defines.
      	(indirect_string_node): New field index.
      	(ate_kind): New enum with fields ate_kind_rtc, ate_kind_rtx_dtprel,
      	ate_kind_label.
      	(addr_table_entry): New structure and type.
      	(dw_loc_list_struct): Add field begin_entry.
      	(new_loc_desc): Initialize val_entry.
      	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
      	Add cases for DW_OP_GNU_addr_index and DW_OP_const_index.
      	(build_cfa_loc): Initialize val_entry.
      	(AT_index, add_addr_table_entry, remove_addr_table_entry,
      	add_AT_lbl_id): New functions.
      	(add_AT_addr, add_AT_range_list): New parameter force_direct.
      	(output_die_abbrevs): New function.
      	(add_ranges_by_labels): New parameter force_direct.
      	(output_line_info): New parameter prologue_only.
      	(dtprel_bool): New enum with dtprel_false and dtprel_true.
      	(dw_addr_op, new_addr_loc_descr): New functions.
      	(DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION,
      	DEBUG_ADDR_SECTION, DEBUG_NORM_MACINFO_SECTION,
      	DEBUG_DWO_MACINFO_SECTION, DEBUG_MACINFO_SECTION,
      	DEBUG_NORM_MACRO_SECTION, DEBUG_DWO_MACRO_SECTION,
      	DEBUG_MACRO_SECTION, DEBUG_DWO_LINE_SECTION,
      	DEBUG_DWO_LOC_SECTION, DEBUG_NORM_STR_OFFSETS_SECTION,
      	DEBUG_DWO_STR_OFFSETS_SECTION, DEBUG_STR_OFFSETS_SECTION,
      	DEBUG_DWO_STR_SECTION, DEBUG_NORM_STR_SECTION, DEBUG_STR_SECTION,
      	DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
      	DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL
      	DEBUG_SKELETON_ABBREV_SECTION_LABEL): New macros.
      	(DEBUG_STR_SECTION_FLAGS): Adjust.
      	(TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL,
      	DEBUG_LINE_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
      	DEBUG_ABBREV_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL,
      	DEBUG_LOC_SECTION_LABEL, DEBUG_RANGES_SECTION_LABEL,
      	DEBUG_MACINFO_SECTION_LABEL, DEBUG_MACRO_SECTION_LABEL): Adjust
      	indentation.
      	(debug_skeleton_abbrev_section_label, debug_addr_section_label,
      	debug_skeleton_line_section_label, debug_skeleton_info_section_label):
      	New global variables.
      	(add_AT_flag, add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec,
      	add_AT_data8): Initialize val_entry.
      	(add_AT_low_high_pc): New parameter force_direct. Handle
      	dwarf_split_debug_info.
      	(set_indirect_string, find_AT_string_form): New functions.
      	(AT_string_form): Adjust to call find_AT_string_from.
      	(add_AT_die_ref, add_AT_fde_ref, add_AT_loc, add_AT_list):
      	Initialize val_entry.
      	(addr_index_table): New global variable.
      	(addr_table_entry_do_hash, addr_table_entry_eq, add_addr_table_entry,
      	init_addr_table_entry, remove_addr_table_entry, index_addr_table_entry,
      	remove_loc_list_addr_table_entries): New functions.
      	(add_AT_addr, add_AT_lbl_id, add_AT_range_list): New parameter
      	force_direct.  Handle dwarf_split_debug_info.
      	(add_AT_file, add_AT_vms_delta, add_AT_lineptr, add_AT_macptr,
      	add_AT_offset): Initialize val_entry.
      	(UNRELOCATED_OFFSET, RELOCATED_OFFSET): New defines.
      	(size_of_die): Handle dwarf_split_debug_info.
      	(size_of_aranges, value_format): Call AT_class.  Check AT_index.
      	(output_die_abbrevs): New function.
      	(output_abbrev_section): Call output_die_abbrevs.
      	(new_loc_list): Initialize begin_entry.
      	(output_loc_list): Handle dwarf_split_debug_info.
      	(output_range_list_offset, output_loc_list_offset,
      	output_attr_index_or_value, ): New functions.
      	(output_die): Fix call to dw2_asm_output_data.  Call
      	output_attr_index_or_value and output_range_list_offset.
      	Adjust logic around dw_val_class_str.
      	(add_top_lebel_skeleton_die_attrs, get_skeleton_type_unit,
      	output_skeleton_debug_sections): New functions.
      	(output_comdat_type_unit, output_pubname, output_aranges): Handle
      	dwarf_split_debug_info.
      	(add_ranges_by_labels): New parameter force_direct.
      	(mem_loc_descriptor, loc_descr): Call new_addr_loc_descr.
      	(loc_list_from_tree, add_const_value_attribtue): Use dtprel_bools in
      	place of generic integer.
      	(dwarf2out_vms_debug_main_pointer, gen_entry_point_die, gen_label_die,
      	gen_call_site_die, gen_subprogram_die, gen_variable_die,
      	add_high_low_attributes): Adjust calls to add_AT_lbl_id.
      	(output_macinfo_op): Adjust indirect_string_logic.
      	(save_macinfo_strings): New function.
      	(output_macinfo): Adjust.
      	(dwarf2out_init): Handle dwarf_split_debug_info.
      	(index_string, output_index_string_offset, output_index_string): New
      	functions.
      	(output_indirect_string): Adjust.
      	(output_indirect_strings, output_addr_table_entry, output_addr_table):
      	New functions.
      	(resolve_addr_in_expr, hash_loc_operands): Handle DW_OP_GNU_addr_index
      	and DW_OP_GNU_const_index.  Handle dwarf_split_debug_info.  Call
      	remove_loc_list_addr_table_entries and remove_addr_table_entry.
      	(index_location_lists): New function.
      	(dwarf2out_finish): Handle dwarf_split_debug_info.  New variable
      	main_comp_unit_die.  Adjust calls to add_AT_low_high_pc,
      	add_ranges_by_labels, add_AT_addr, and add_AT_lineptr. Call
      	save_macinfo_strings and output_indirect_strings.
      
      include/ChangeLog
      
      2012-10-29  Sterling Augustine <saugustine@google.com>
                  Cary Coutant <ccoutant@google.com>
      
      	* dwarf2.h (dwarf_location_list_entry_type): New enum with fields
      	DW_LLE_GNU_end_of_list_entry, DW_LLE_GNU_base_address_selection_entry,
      	DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry.
      
      
      
      
      Co-Authored-By: Cary Coutant <ccoutant@google.com>
      
      From-SVN: r193267
      Sterling Augustine committed
  4. 08 Oct, 2012 1 commit
    • Allow dynamic initialization of thread_locals. · 7c424acd
      gcc/cp/
      	* decl.c: Define tls_aggregates.
      	(expand_static_init): Remove sorry.  Add to tls_aggregates.
      	* cp-tree.h: Declare tls_aggregates.
      	* call.c (set_up_extended_ref_temp): Add to tls_aggregates.
      	* decl2.c (var_needs_tls_wrapper): New.
      	(var_defined_without_dynamic_init): New.
      	(get_tls_init_fn, get_tls_wrapper_fn): New.
      	(generate_tls_wrapper, handle_tls_init): New.
      	(cp_write_global_declarations): Call handle_tls_init and
      	enerate_tls_wrapper.
      	* mangle.c (write_guarded_var_name): Split out from..
      	(mangle_guard_variable): ...here.
      	(mangle_tls_init_fn, mangle_tls_wrapper_fn): Use it.
      	(decl_tls_wrapper_p): New.
      	* semantics.c (finish_id_expression): Replace use of thread_local
      	variable with a call to its wrapper.
      libiberty/
      	* cp-demangle.c (d_special_name, d_dump): Handle TH and TW.
      	(d_make_comp, d_print_comp): Likewise.
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_TLS_INIT and DEMANGLE_COMPONENT_TLS_WRAPPER.
      
      From-SVN: r192211
      Jason Merrill committed
  5. 18 Sep, 2012 1 commit
    • PR other/54411: integer overflow in objalloc_alloc · ed770de9
      2012-09-18  Florian Weimer  <fweimer@redhat.com>
      
      	PR other/54411
      	* objalloc.h (objalloc_alloc): Do not use fast path on wraparound.
      
      2012-09-18  Florian Weimer  <fweimer@redhat.com>
      
      	PR other/54411
      	* objalloc.c (_objalloc_alloc): Add overflow check covering
      	alignment and CHUNK_HEADER_SIZE addition.
      
      From-SVN: r191413
      Florian Weimer committed
  6. 06 Sep, 2012 1 commit
  7. 24 Aug, 2012 1 commit
  8. 13 Jul, 2012 1 commit
  9. 18 Jun, 2012 1 commit
  10. 12 Jun, 2012 1 commit
  11. 08 Jun, 2012 2 commits
  12. 23 May, 2012 1 commit
    • leb128.h: #include stdint.h, inttypes.h. · 60a1fb35
      	* leb128.h: #include stdint.h, inttypes.h.
      	(read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
      	Change to take a uint64_t * argument instead of unsigned long long.
      	(read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
      	Change to take an int64_t * argument instead of long long.
      
      From-SVN: r187818
      Doug Evans committed
  13. 22 May, 2012 1 commit
  14. 20 May, 2012 1 commit
  15. 02 May, 2012 1 commit
  16. 28 Apr, 2012 1 commit
  17. 27 Apr, 2012 2 commits
    • * dwarf2.h: Wrap function declarations in extern "C". · accea034
      From-SVN: r186918
      Tom Tromey committed
    • dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name. · 11ec770e
      gcc
      	* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
      	(dwarf_tag_name): Use get_DW_TAG_name.
      	(dwarf_attr_name): Use get_DW_AT_name.
      	(dwarf_form_name): Use get_DW_FORM_name.
      	* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
      include
      	* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
      	(enum dwarf_location_atom, enum dwarf_type, enum
      	dwarf_call_frame_info): Remove.
      	(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
      	(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
      	Include dwarf2.def.
      	(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
      	(get_DW_OP_name, get_DW_ATE_name): Declare.
      	* dwarf2.def: New file, from dwarf2.h.
      libiberty
      	* dwarfnames.c: New file.
      	* Makefile.in (CFILES): Add dwarfnames.
      	(REQUIRED_OFILES): Add dwarfnames.
      	(./dwarfnames.$(objext)): New target.
      
      From-SVN: r186908
      Tom Tromey committed
  18. 10 Apr, 2012 1 commit
    • gengtype.c (main): Make uintptr_t a known type. · 5973ae1a
      gcc/
      2012-04-10  Tristan Gingold  <gingold@adacore.com>
      
      	* gengtype.c (main): Make uintptr_t a known type.
      
      include/
      2012-04-10  Tristan Gingold  <gingold@adacore.com>
      
      	* splay-tree.h: Conditionnaly includes stdint.h and inttypes.h
      	(libi_uhostptr_t, libi_shostptr_t): Remove, replaced by uintptr_t.
      
      From-SVN: r186269
      Tristan Gingold committed
  19. 26 Jan, 2012 1 commit
  20. 06 Jan, 2012 1 commit
    • re PR c++/6057 (expression mangling doesn't work for operator new) · 4b6aaa99
      	PR c++/6057
      	PR c++/48051
      	PR c++/50855
      	PR c++/51322
      gcc/cp/
      	* mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
      	THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
      	PREDECREMENT_EXPR.
      	(write_template_arg): Fix mangling of class-scope functions and
      	argument packs.
      	(mangle_decl): Update suggested -fabi-version argument.
      	* operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
      	DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
      	* tree.c (dependent_name): No longer static.
      	* cp-tree.h: Declare it.
      	* pt.c (unify): Defer handling of unconverted functions.
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY.
      libiberty/
      	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_NULLARY and
      	DEMANGLE_COMPONENT_INITIALIZER_LIST.
      	(d_make_comp): Likewise.  Allow null right arg for
      	DEMANGLE_COMPONENT_TRINARY_ARG2.
      	(cplus_demangle_operators): Adjust new/delete; add .*, :: and throw.
      	(d_template_args, d_template_arg): Handle 'J' for argument packs.
      	(d_exprlist): Add terminator parm.
      	(d_expression, d_print_comp): Handle initializer lists, nullary
      	expressions, prefix/suffix operators, and new.
      	(d_print_subexpr): Avoid parens around DEMANGLE_COMPONENT_QUAL_NAME
      	and DEMANGLE_COMPONENT_INITIALIZER_LIST.
      	* testsuite/demangle-expected: Add tests.
      
      From-SVN: r182970
      Jason Merrill committed
  21. 08 Nov, 2011 1 commit
  22. 22 Oct, 2011 1 commit
  23. 28 Sep, 2011 2 commits
  24. 26 Sep, 2011 1 commit
  25. 23 Sep, 2011 1 commit
    • re PR c++/40831 (g++ generated symbols for cloned function that be demangled.) · 2d2b02c4
      include/ChangeLog:
      
      	PR 40831
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_CLONE.
      
      libiberty/ChangeLog:
      
      	PR 40831
      	* cp-demangle.c (d_make_comp): Add new component type.
      	(cplus_demangle_mangled_name): Check for clone suffixes.
      	(d_parmlist): Don't error out if we see '.'.
      	(d_clone_suffix): New function.
      	(d_print_comp): Print info for clone suffixes.
      	* testsuite/demangle-expected: Add new testcases.
      
      From-SVN: r179132
      Cary Coutant committed
  26. 25 Jul, 2011 1 commit
  27. 22 Jul, 2011 2 commits
    • dwarf2.h (DW_AT_GNU_macros): New. · 520cda8c
      	* dwarf2.h (DW_AT_GNU_macros): New.
      	(enum dwarf_macro_record_type): New enum.  Add DW_MACRO_GNU_*.
      
      	* dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
      	(DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
      	(dwarf_attr_name): Handle DW_AT_GNU_macros.
      	(dwarf2out_define): If the vector is empty and
      	lineno is 0, emit a dummy entry first.
      	(dwarf2out_undef): Likewise.  Remove redundant semicolon.
      	(htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
      	optimize_macinfo_range): New functions.
      	(output_macinfo): Use them.  If !dwarf_strict and .debug_str is
      	mergeable, optimize longer strings using
      	DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
      	optimize longer sequences of define/undef ops from headers
      	using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
      	emit a section headers.
      	(dwarf2out_init): For !dwarf_strict set debug_macinfo_section
      	and macinfo_section_label to DEBUG_MACRO_SECTION
      	resp. DEBUG_MACRO_SECTION_LABEL.
      	(dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
      	instead of DW_AT_macro_info.
      
      From-SVN: r176653
      Jakub Jelinek committed
    • re PR c++/49756 (g++ ICE) · d423df48
      	PR c++/49756
      	* libiberty.h (stack_limit_increase): New prototype.
      
      	* stack-limit.c: New file.
      	* Makefile.in: Regenerate deps.
      	(CFILES): Add stack-limit.c.
      	(REQUIRED_OFILES): Add ./stack-limit.$(objext).
      	* configure.ac (checkfuncs): Add getrlimit and setrlimit.
      	(AC_CHECK_FUNCS): Likewise.
      	* configure: Regenerated.
      	* config.in: Regenerated.
      
      	* gcc.c (main): Call stack_limit_increase (64MB).
      	* toplev.c (toplev_main): Likewise.
      
      From-SVN: r176617
      Jakub Jelinek committed
  28. 14 Jul, 2011 1 commit
    • 2012011-07-13 Sriraman Tallam <tmsriram@google.com> · 8ff3369c
      	
      	* plugin-api.h
      	(ld_plugin_section): New struct.
      	(ld_plugin_get_section_count): New typedef.
      	(ld_plugin_get_section_type): New typedef.
      	(ld_plugin_get_section_name): New typedef.
      	(ld_plugin_get_section_contents): New typedef.
      	(ld_plugin_update_section_order): New typedef.
      	(ld_plugin_allow_section_ordering): New typedef.
      	(LDPT_GET_SECTION_COUNT): New enum value.
      	(LDPT_GET_SECTION_TYPE): New enum value.
      	(LDPT_GET_SECTION_NAME): New enum value.
      	(LDPT_GET_SECTION_CONTENTS): New enum value.
      	(LDPT_UPDATE_SECTION_ORDER): New enum value.
      	(LDPT_ALLOW_SECTION_ORDERING): New enum value.
      	(tv_get_section_count): New struct members.
      	(tv_get_section_type): New struct members.
      	(tv_get_section_name): New struct members.
      	(tv_get_section_contents): New struct members.
      	(tv_update_section_order): New struct members.
      	(tv_allow_section_ordering): New struct members.
      
      From-SVN: r176260
      Sriraman Tallam committed
  29. 01 Jul, 2011 1 commit
    • Darwin has case-insensitive filesystems · 985b34c7
      HFS+, the FS on Darwin, is case insensitive. So this patch adjusts
      filename_cmp.c to ignore the casing when comparing filenames on Darwin.
      
      include/ChangeLog:
      
              * filenames.h (HAVE_CASE_INSENSITIVE_FILE_SYSTEM): Define
              on Darwin, as well as on the systems that use a DOS-like
              filesystem.
      
      libiberty/ChangeLog:
      
              * filename_cmp.c (filename_cmp, filename_ncmp): Add handling of
              HAVE_CASE_INSENSITIVE_FILE_SYSTEM.
      
      From-SVN: r175762
      Joel Brobecker committed
  30. 22 Jun, 2011 1 commit
    • re PR debug/47858 (IPA-SRA decreases quality of debug info) · ddb555ed
      	PR debug/47858
      	* gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
      	(gimple_build_debug_source_bind_stat): New prototype.
      	(gimple_build_debug_source_bind): Define.
      	(gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
      	gimple_debug_source_bind_get_value,
      	gimple_debug_source_bind_get_value_ptr,
      	gimple_debug_source_bind_set_var,
      	gimple_debug_source_bind_set_value): New inlines.
      	* gimple.c (gimple_build_debug_source_bind_stat): New function.
      	* gimple-pretty-print.c (dump_gimple_debug): Handle
      	GIMPLE_DEBUG_SOURCE_BIND.
      	* sese.c (rename_uses): Handle gimple_debug_source_bind_p.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	* tree-parloops.c (eliminate_local_variables,
      	separate_decls_in_region): Likewise.
      	(separate_decls_in_region_debug): Renamed from
      	separate_decls_in_region_debug_bind.  Handle
      	gimple_debug_source_bind_p.
      	* tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
      	prototypes.
      	(DECL_HAS_DEBUG_ARGS_P): Define.
      	(struct tree_function_decl): Add has_debug_args_flag field.
      	* tree.c (debug_args_for_decl): New variable.
      	(decl_debug_args_lookup, decl_debug_args_insert): New functions.
      	* tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
      	(rewrite_debug_stmt_uses): New function.
      	(rewrite_stmt): Use it to rewrite debug stmt uses.
      	* rtl.def (DEBUG_PARAMETER_REF): New.
      	* rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
      	* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
      	DEBUG_PARAMETER_REF.
      	* rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
      	SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
      	debug stmts in the first bb.
      	* tree-inline.c (remap_ssa_name): If remapping default def
      	of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
      	a source bind debug stmt.
      	(remap_gimple_stmt): Handle gimple_debug_source_bind_p.
      	(maybe_move_debug_stmts_to_successors): Likewise.
      	(copy_debug_stmt): Likewise.  Avoid shadowing a variable.
      	(tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
      	debug args vector from old_decl to new_decl.
      	* ipa-prop.c (ipa_modify_call_arguments): For optimized away
      	or modified parameters, add debug bind stmts before call
      	setting DEBUG_EXPR_DECL which is remembered in debug args
      	vector.
      	* cfgexpand.c (expand_call_stmt): Call expand_debug_expr
      	on DECL_DEBUG_EXPRs from debug args vector.
      	(expand_debug_source_expr): New function.
      	(expand_debug_locations): Use it for source bind insns.
      	(expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
      	* var-tracking.c (prepare_call_arguments): Add debug args
      	to call_arguments if any.
      	* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
      	output_loc_operands, output_loc_operands_raw,
      	resolve_addr_in_expr, compare_loc_operands): Handle
      	DW_OP_GNU_parameter_ref.
      	(get_ref_die_offset, parameter_ref_descriptor): New functions.
      	(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
      	(gen_subprogram_die): Handle parameters identified by
      	DEBUG_PARAMETER_REF.
      
      	* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
      
      From-SVN: r175288
      Jakub Jelinek committed
  31. 13 Jun, 2011 1 commit
    • demangle.h (DMGL_RET_POSTFIX): Extend the comment. · f019462c
      include/
      	* demangle.h (DMGL_RET_POSTFIX): Extend the comment.
      	(DMGL_RET_DROP): New.
      
      libiberty/
      	* cp-demangle.c (d_print_comp) <DEMANGLE_COMPONENT_FUNCTION_TYPE>: Do
      	not pass DMGL_RET_POSTFIX or DMGL_RET_DROP.  Support DMGL_RET_DROP.
      	* testsuite/demangle-expected: New testcases for --ret-drop.
      	* testsuite/test-demangle.c: Document --ret-drop in a comment.
      	(main): New variable ret_drop, fill it, call cplus_demangle with it.
      
      From-SVN: r175000
      Jan Kratochvil committed
  32. 30 Apr, 2011 1 commit
    • dwarf2.h (DW_OP_GNU_const_type, [...]): New. · be80a87e
      	* dwarf2.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
      	DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): New.
      
      	* dwarf2out.c (get_address_mode): New inline.
      	(mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
      	if not dwarf_strict emit
      	DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
      	desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
      	UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
      	FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
      	(dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
      	dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
      	mem_loc_descriptor callers.
      	(dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
      	output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
      	Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
      	DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
      	(base_types): New variable.
      	(get_base_type_offset, calc_base_type_die_sizes,
      	base_type_for_mode, mark_base_types, base_type_cmp,
      	move_marked_base_types): New functions.
      	(calc_die_sizes): Assert that die_offset is 0 or equal to
      	next_die_offset.
      	(loc_descriptor): Only handle here lowpart SUBREGs of REG, for
      	others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
      	callers.  If not dwarf_strict, call mem_loc_descriptor even for
      	non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
      	(gen_subprogram_die): Don't give up on call site parameters
      	with non-integral or large integral modes.  Adjust
      	mem_loc_descriptor callers.
      	(prune_unused_types): Call prune_unused_types_mark on base_types
      	vector entries.
      	(resolve_addr): Call mark_base_types.
      	(dwarf2out_finish): Call move_marked_base_types.
      
      From-SVN: r173210
      Jakub Jelinek committed
  33. 25 Apr, 2011 1 commit
  34. 31 Mar, 2011 1 commit
  35. 25 Mar, 2011 1 commit
  36. 23 Mar, 2011 1 commit