aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2012-12-18re PR other/54324 (GCC install document does not list minimum required g++ ↵Aldy Hernandez2-1/+14
version) PR other/54324 * ansidecl.h (ATTRIBUTE_UNUSED): Do not set __attribute__ for GCC < 3.4. From-SVN: r194583
2012-11-09Add C++ attribute abi_tag and -Wabi-tag option.Jason Merrill2-0/+7
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
2012-11-06common.opt (gno-split-dwarf, [...]): New switches.Sterling Augustine2-0/+19
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
2012-10-08Allow dynamic initialization of thread_locals.Jason Merrill2-0/+8
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
2012-09-18PR other/54411: integer overflow in objalloc_allocFlorian Weimer2-2/+7
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
2012-09-06dwarf2.def: Edit comment.Cary Coutant2-1/+5
2012-09-06 Cary Coutant <ccoutant@google.com> include/ * dwarf2.def: Edit comment. From-SVN: r191046
2012-08-24Sync plugin-api.h with gold patch : ↵Sriraman Tallam2-1/+42
http://sourceware.org/ml/binutils/2012-08/msg00447.html * plugin-api.h (ld_plugin_allow_unique_segment_for_sections): New interface. (ld_plugin_unique_segment_for_sections): New interface. (LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val. (LDPT_UNIQUE_SEGMENT_FOR_SECTIONS): New enum val. (tv_allow_unique_segment_for_sections): New member. (tv_unique_segment_for_sections): New member. From-SVN: r190654
2012-07-13filenames.h: #include "hashtab.h".Doug Evans2-0/+11
include/ * filenames.h: #include "hashtab.h". (filename_hash, filename_eq): Declare. libiberty/ * filename_cmp.c (filename_hash, filename_eq): New functions. From-SVN: r189472
2012-06-18* dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.Doug Evans2-0/+5
From-SVN: r188759
2012-06-12plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE.Rafael Ávila de Espíndola2-1/+6
2012-06-12 Rafael Ávila de Espíndola <respindola@mozilla.com> * plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE. From-SVN: r188484
2012-06-08Adjust last commit.Jakub Jelinek1-0/+2
From-SVN: r188338
2012-06-08dwarf2.def (DW_FORM_GNU_ref_alt, [...]): New forms.Jakub Jelinek3-0/+15
* dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New forms. * dwarf2.h (enum dwarf_macro_record_type): Add DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt and DW_MACRO_GNU_transparent_include_alt. From-SVN: r188337
2012-05-23leb128.h: #include stdint.h, inttypes.h.Doug Evans2-10/+30
* 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
2012-05-22* leb128.h: New file.Doug Evans2-0/+128
From-SVN: r187780
2012-05-20dwarf2.def: Update comment re: UPC extensions to reference DWARF4 specification.Gary Funck2-1/+6
toplevel/include/ * dwarf2.def: Update comment re: UPC extensions to reference DWARF4 specification. From-SVN: r187689
2012-05-02dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with ↵Cary Coutant2-2/+6
DW_AT_GNU_ranges_base. include/ * dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base. From-SVN: r187061
2012-04-28* dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.Doug Evans2-0/+6
From-SVN: r186934
2012-04-27* dwarf2.h: Wrap function declarations in extern "C".Tom Tromey2-0/+12
From-SVN: r186918
2012-04-27dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.Tom Tromey3-626/+772
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
2012-04-10gengtype.c (main): Make uintptr_t a known type.Tristan Gingold2-13/+11
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
2012-01-26dwarf2.h (enum dwarf_form): Add Fission extensions.Cary Coutant2-1/+17
* dwarf2.h (enum dwarf_form): Add Fission extensions. (enum dwarf_attribute): Likewise. From-SVN: r183588
2012-01-06re PR c++/6057 (expression mangling doesn't work for operator new)Jason Merrill2-0/+14
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
2011-11-08Merge from transactional-memory branch.Aldy Hernandez2-2/+20
From-SVN: r181154
2011-10-21obstack.h [!GNUC] (obstack_free): Avoid cast to int.DJ Delorie3-5/+15
* obstack.h [!GNUC] (obstack_free): Avoid cast to int. * ansidecl.h (ENUM_BITFIELD): Always use enum in C++ From-SVN: r180321
2011-09-28timeval-utils.h: New file.Doug Evans2-0/+42
include/ * timeval-utils.h: New file. libiberty/ * timeval-utils.c: New file. * Makefile.in (CFILES): Add it. (REQUIRED_OFILES): Add timeval-utils.$(objext). (INSTALLED_HEADERS): Add timeval-utils.h. (timeval-utils.$(objext)): Add rule. From-SVN: r179319
2011-09-28libiberty.h (countargv): Declare.Doug Evans2-0/+8
include/ * libiberty.h (countargv): Declare. libiberty/ * argv.c (countargv): New function. From-SVN: r179318
2011-09-26re PR lto/47247 (Linker plugin specification makes it difficult to handle ↵Cary Coutant2-2/+16
COMDATs) PR lto/47247 * plugin-api.h (enum ld_plugin_symbol_resolution): Add LDPR_PREVAILING_DEF_IRONLY_EXP. (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2. From-SVN: r179220
2011-09-23re PR c++/40831 (g++ generated symbols for cloned function that be demangled.)Cary Coutant2-1/+9
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
2011-07-25system.h [...]: Wrap C function declarations in extern "C".Rainer Orth2-0/+5
gcc: * system.h [__cplusplus]: Wrap C function declarations in extern "C". include: * xregex.h (regoff_t): Define. From-SVN: r176747
2011-07-22dwarf2.h (DW_AT_GNU_macros): New.Jakub Jelinek2-0/+19
* 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
2011-07-22re PR c++/49756 (g++ ICE)Jakub Jelinek2-1/+9
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
2011-07-142012011-07-13 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam2-1/+103
* 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
2011-07-01Darwin has case-insensitive filesystemsJoel Brobecker2-0/+14
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
2011-06-22re PR debug/47858 (IPA-SRA decreases quality of debug info)Jakub Jelinek2-0/+7
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
2011-06-13demangle.h (DMGL_RET_POSTFIX): Extend the comment.Jan Kratochvil2-1/+12
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
2011-04-30dwarf2.h (DW_OP_GNU_const_type, [...]): New.Jakub Jelinek2-0/+12
* 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
2011-04-25ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h.Jan Kratochvil2-0/+13
include/ * ansidecl.h (ENUM_BITFIELD): New, from gcc/system.h. contrib/ * paranoia.cc (ENUM_BITFIELD): Remove. gcc/ * system.h (ENUM_BITFIELD): Remove. libcpp/ * system.h (ENUM_BITFIELD): Remove. From-SVN: r172933
2011-03-31dwarf2.h (dwarf_line_number_hp_sfc_ops): New enum.Tristan Gingold2-0/+12
2011-03-31 Tristan Gingold <gingold@adacore.com> * dwarf2.h (dwarf_line_number_hp_sfc_ops): New enum. From-SVN: r171781
2011-03-25Remove deprecated DW_FORM_sig8 define.Mark Wielaard2-1/+4
* dwarf2.h (dwarf_form): Remove deprecated DW_FORM_sig8 define. * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8. (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8. From-SVN: r171442
2011-03-23plugin-api.h (ld_plugin_get_view): New.Rafael Ávila de Espíndola2-1/+13
2010-03-23 Rafael Ávila de Espíndola <respindola@mozilla.com> * plugin-api.h (ld_plugin_get_view): New. (ld_plugin_tag): Add LDPT_GET_VIEW. (ld_plugin_tv): Add tv_get_view. From-SVN: r171351
2011-03-16final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.Jakub Jelinek2-1/+31
* final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. Call var_location debug hook even on CALL_INSNs. (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION. * rtl.def (ENTRY_VALUE): New. * dwarf2out.c: Include cfglayout.h. (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, output_loc_operands_raw): Handle DW_OP_GNU_entry_value. (struct call_arg_loc_node): New type. (call_arg_locations, call_arg_loc_last, block_map, call_site_count, tail_call_site_count): New variables. (dwarf_tag_name): Handle DW_TAG_GNU_call_site and DW_TAG_GNU_call_site_parameter. (dwarf_attr_name): Handle DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites and DW_AT_GNU_all_source_call_sites. (mem_loc_descriptor): Handle ENTRY_VALUE. (add_src_coords_attributes): Don't add enything if DECL_SOURCE_LOCATION is UNKNOWN_LOCATION. (dwarf2out_abstract_function): Save and clear call_arg_location, call_site_count and tail_call_site_count around dwarf2out_decl call. (gen_call_site_die): New function. (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites. (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map. (dwarf2out_function_decl): Clear call_arg_locations, call_arg_loc_last, set call_site_count and tail_call_site_count to -1 and free block_map. (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not followed by any real instructions. (dwarf2out_begin_function): Set call_site_count and tail_call_site_count to 0. (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL attempt to force a DIE for it and worst case remove the attribute. (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of the decl itself. * var-tracking.c: Include tm_p.h. (vt_stack_adjustments): For calls call note_register_arguments. (argument_reg_set): New variable. (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set ensure the VALUE is resolved. (call_arguments): New variable. (prepare_call_arguments): New function. (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it. (struct expand_loc_callback_data): Add ignore_cur_loc field. (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and always use the best expression. (vt_expand_loc): Add ignore_cur_loc argument. (vt_expand_loc_dummy): Clear ignore_cur_loc field. (emit_note_insn_var_location): Adjust vt_expand_loc callers. (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION note for all calls. (vt_add_function_parameter): Use cselib_lookup_from_insn. If dv is a VALUE, enter into hash table also ENTRY_VALUE for the argument. Don't call cselib_preserve_only_values and cselib_reset_table. (note_register_arguments): New function. (vt_initialize): Compute argument_reg_set. Call vt_add_function_parameters before processing basic blocks instead of afterwards. For calls call prepare_call_arguments before calling cselib_process_insn. * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION. * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H). (var-tracking.o): Depend on $(TM_P_H). * cfglayout.h (insn_scope): New prototype. * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION. * cfglayout.c (insn_scope): No longer static. * insn-notes.def (CALL_ARG_LOCATION): New. * calls.c (expand_call, emit_library_call_value_1): Put USEs for MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally. * integrate.c (set_block_origin_self, set_block_abstract_flags): Do nothing for DECL_EXTERNAL BLOCK_VARS. cp/ * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if DECL_LANG_SPECIFIC is NULL. include/ * dwarf2.h (DW_TAG_GNU_call_site, DW_TAG_GNU_call_site_parameter, DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites,, DW_AT_GNU_all_source_call_sites, DW_OP_GNU_entry_value): New. From-SVN: r171033
2011-02-28re PR debug/28047 (DWARF output_file_names should really understand DOS ↵Kai Tietz2-0/+7
pathnames) 2011-02-28 Kai Tietz <kai.tietz@onevision.com> PR debug/28047 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp. (lookup_filename): Likewise. * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp. 2011-02-28 Kai Tietz <kai.tietz@onevision.com> * filename_cmp.c (filename_ncmp): New function. * functions.texi: Regenerated. 2011-02-28 Kai Tietz <kai.tietz@onevision.com> * filenames.h (filename_ncmp): New prototype. From-SVN: r170570
2011-02-23Merged with binutils version ...Kai Tietz2-91/+21
From-SVN: r170433
2011-01-12dwarf2.h: Update value for DW_AT_hi_user.Iain Sandoe2-1/+5
include: * dwarf2.h: Update value for DW_AT_hi_user. From-SVN: r168707
2011-01-03Update Copyright years for files modified in 2010.Jakub Jelinek5-5/+5
From-SVN: r168438
2010-11-17simple-object.h (simple_object_attributes_merge): Declare, replacing ↵Ian Lance Taylor2-6/+12
simple_object_attributes_compare. include/: * simple-object.h (simple_object_attributes_merge): Declare, replacing simple_object_attributes_compare. libiberty/: * simple-object.c (simple_object_attributes_merge): Rename from simple_object_attributes_compare. Call merge field. * simple-object-common.h (struct simple_object_functions): Rename attributes_compare field to attribute_merge. * simple-object-elf.c (EM_SPARC): Define. (EM_SPARC32PLUS): Define. (simple_object_elf_attributes_merge): Renamed from simple_object_elf_attributes_compare. Permit EM_SPARC and EM_SPARC32PLUS objects to be merged. (simple_object_elf_functions): Update function name. * simple-object-coff.c (simple_object_coff_attributes_merge): Rename from simple_object_coff_attributes_compare. (simple_object_coff_functions): Update function name. * simple-object-mach-o.c (simple_object_mach_o_attributes_merge): Renamed from simple_object_mach_o_attributes_compare. (simple_object_mach_o_functions): Update function name. gcc/lto/: * lto-object.c (lto_obj_file_open): Call simple_object_attributes_merge rather than simple_object_attributes_compare. From-SVN: r166848
2010-11-05* dwarf2.h (enum dwarf_source_language): Add DW_LANG_Go.Ian Lance Taylor2-0/+6
From-SVN: r166367
2010-11-02simple-object.h: New file.Ian Lance Taylor2-0/+207
include/: * simple-object.h: New file. libiberty/: * simple-object.c: New file. * simple-object-common.h: New file. * simple-object-elf.c: New file. * simple-object-mach-o.c: New file. * simple-object-coff.c: New file. * simple-object.txh: New file. * configure.ac: Add AC_TYPE_SSIZE_T. * Makefile.in: Rebuild dependencies. (CFILES): Add simple-object.c, simple-object-coff, simple-object-elf.c, and simple-object-mach-o.c. (REQUIRED_OFILES): Add corresponding object files. * configure: Rebuild. * config.in: Rebuild. * functions.texi: Rebuild. Co-Authored-By: Dave Korn <dave.korn.cygwin@gmail.com> Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org> From-SVN: r166185
2010-10-15Sync LD plugin patch series (part 1/6) with src/include/.Dave Korn2-1/+7
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member. From-SVN: r165496
2010-10-06[PATCH] Report LTO phase in lto1 process name v2Andi Kleen2-0/+7
On larger parallel WHOPR builds I find it useful to see in top which phase a given lto1 is in. Set the process name to lto1-wpa, lto1-ltrans, lto1-lto depending on the current mode. This is currently only implemented for Linux and only using the "comm" process name, which is reported in top. v2: Moved function to libiberty, renamed setproctitle to match BSD. In theory it should pick up BSD's libc function for this on a BSD system, but I haven't tested this. gcc/lto/ 2010-10-06 Andi Kleen <ak@linux.intel.com> * lto.c (lto_process_name): Add. (lto_main): Call lto_process_name. include/ 2010-10-06 Andi Kleen <ak@linux.intel.com> * libiberty.h (setproctitle): Add prototype. libiberty/ 2010-10-06 Andi Kleen <ak@linux.intel.com> * Makefile.in (CFILES): Add setproctitle. (CONFIGURED_OFILES): Add setproctitle. (setproctitle): Add rule. * config.in: Regenerate. * configure: Regenerate. * configure.ac: Add checks for prctl PR_SET_NAME and setproctitle. * setproctitle.c: Add file. * functions.texi: Regenerate. From-SVN: r165066