Skip to content
Snippets Groups Projects
  1. Aug 07, 2013
    • Caroline Tice's avatar
      Commit the vtable verification feature. · 2077db1b
      Caroline Tice authored
      Commit the vtable verification feature.  This feature is designed to
      detect, at run time, if/when the vtable pointer in a C++ object has
      been corrupted, before allowing virtual calls through that pointer. 
      If pointer corruption is detected, execution of the program is halted.
      
      libstdc++-v3 ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * fragment.am: Add XTEMPLATE_FLAGS.
              * configure.ac: Add definitions for --enable-vtable-verify.
              * acinclude.m4:  Add --enable-vtable-verify and
              --disable-vtable-verify; define --enable-vtable-verify; define
              VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
              * config/abi/pre/gnu.ver: Export symbols for vtable verification.
              * libsupc++/Makefile.am: Define vtv_sources and add it to
              libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
              * libsupc++/vtv_stubs.cc: New file.
              * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
              * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
              VTV_CXXLINKFLAGS to CXXLINK.
              * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
              to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
              * src/C++11/Makefile.am: Ditto.
              * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
              * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
              cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
              * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
              libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
              cxxvtvflags to cxx_final.
              * testsuite/18_support/bad_exception/23591_thread-1.c: Add
              -fvtable-verify=none to compiler flags.
              * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
              to compiler flags.
              * configure: Regenerated.
              * Makefile.in: Regenerated.
              * python/Makefile.in: Regenerated.
              * include/Makefile.in: Regenerated.
              * libsupc++/Makefile.in: Regenerated.
              * config.h.in: Regenerated.
              * po/Makefile.in: Regenerated.
              * src/Makefile.in: Regenerated.
              * src/c++98/Makefile.in: Regenerated.
              * src/c++11/Makefile.in: Regenerated.
              * doc/Makefile.in: Regenerated.
              * testsuite/Makefile.in: Regenerated.
      
      top level ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * configure.ac: Add target-libvtv to target_libraries; disable libvtv
              on non-linux systems; add target-libvtv to noconfigdirs; add
              libsupc++/.libs to C++ library search paths.
              * configure: Regenerated.
              * Makefile.def: Add libvtv to target_modules; make libvtv depend on
              libstdc++ and libgcc.
              * Makefile.in: Regenerated.
      
      include/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * vtv-change-permission.h: New file.
      
      contrib/ChangeLog:
      2013-08-06  Caroline Tice4  <cmtice@google.com>
      
              * gcc_update: Add libvtv files.
      
      libgcc/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              config.host (extra_parts): Add vtv_start.o, vtv_end.o
              vtv_start_preinit.o and vtv_end_preinit.o.
              configure.ac: Add code to check/set enable_vtable_verify.
              Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is
              true.
              vtv_start_preinit.c: New file.
              vtv_end_preinit.c: New file.
              vtv_start.c: New file.
              vtv_end.c: New file.
              configure: Regenerated.
      
      gcc/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
              (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
              * tree-pass.h: Add pass_vtable_verify.
              * varasm.c (assemble_variable): Add code to properly set the comdat
              section and name for the .vtable_map_vars section.
              (assemble_vtyv_preinit_initializer): New function.
              (default_sectin_type_flags):  Make sure .vtable_map_vars section has
              LINK_ONCE flag.
              * output.h: Add function decl for assemble_vtv_preinit_initializer.
              * vtable-verify.c: New file.
              * vtable-verify.h: New file.
              * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
              initialiation levels.
              * timevar.def (TV_VTABLE_VERIFICATION): New definition.
              * passes.def: Insert pass_vtable_verify.
              * aclocal.m4: Reorder includes.
              * doc/invoke.texi: Add documentation for the flags -fvtable-verify=,
      	-fvtv-debug and -fvtv-counts.
              * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
      as appropriate, if -fvtable-verify=... is used.
              (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
              -fvtable-verify=... is used.
              * Makefile.in (OBJS):  Add vtable-verify.o to list.
              (vtable-verify.o): Add new build rule.
              (GTFILES): Add vtable-verify.c to list.
              * common.opt (fvtable-verify=): New flag.
              (vtv_priority): Values for fvtable-verify= flag.
              (fvtv-counts): New flag.
      (fvtv-debug): New flag.
              * tree.h (save_vtable_map_decl): New extern function decl.
      
      
      gcc/cp/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              * Make-lang.in (*CXX_AND_OBJCXX_OBJS):  Add vtable-class-hierarchy.o to
              list.
              (vtable-class-hierarchy.o): Add build rule.
              * cp-tree.h (vtv_start_verification_constructor_init_function): New
              extern function decl.
              (vtv_finish_verification_constructor_init_function): New extern
              function decl.
              (build_vtbl_address): New extern function decl.
              (get_mangled_vtable_map_var_name): New extern function decl.
              (vtv_compute_class_hierarchy_transitive_closure): New extern function
              decl.
              (vtv_generate_init_routine): New extern function decl.
              (vtv_save_class_info): New extern function decl.
              (vtv_recover_class_info): New extern function decl.
              (vtv_build_vtable_verify_fndecl): New extern function decl.
              * class.c (finish_struct_1): Add call to vtv_save_class_info if
              flag_vtable_verify is true.
              * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list.
              * vtable-class-hierarchy.c: New file.
              * mangle.c (get_mangled_vtable_map_var_name):  New function.
              * decl2.c (start_objects): Update function comment.
              (cp_write_global_declarations): Call vtv_recover_class_info,
              vtv_compute_class_hierarchy_transitive_closure and
              vtv_build_vtable_verify_fndecl, before calling
              finalize_compilation_unit, and call vtv_generate_init_rount after, IFF
              flag_vtable_verify is true.
              (vtv_start_verification_constructor_init_function): New function.
              (vtv_finish_verification_constructor_init_function): New function.
              * init.c (build_vtbl_address): Remove static qualifier from function.
      
      libvtv/ChangeLog:
      2013-08-06  Caroline Tice  <cmtice@google.com>
      
              Initial check-in of new vtable verification feature.
              * configure.ac : New file.
              * acinclude.m4 : New file.
              * Makefile.am : New file.
              * aclocal.m4 : New file.
              * configure.tgt : New file.
              * configure: New file (generated).
              * Makefile.in: New file (generated).
              * vtv_set.h : New file.
              * vtv_utils.cc : New file.
              * vtv_utils.h : New file.
              * vtv_malloc.cc : New file.
              * vtv_rts.cc : New file.
              * vtv_malloc.h : New file.
              * vtv_rts.h : New file.
              * vtv_fail.cc : New file.
              * vtv_fail.h : New file.
              * vtv_map.h : New file.
              * scripts/run-testsuite.sh : New file.
              * scripts/sum-vtv-counts.c : New file.
              * testsuite/parts-test-main.h : New file.
              * testusite/dataentry.cc : New file.
              * testsuite/temp_deriv.cc : New file.
              * testsuite/register_pair.cc : New file.
              * testsuite/virtual_inheritance.cc : New file.
              * testsuite/field-test.cc : New file.
              * testsuite/nested_vcall_test.cc : New file.
              * testsuite/template-list-iostream.cc : New file.
              * testsuite/register_pair_inserts.cc : New file.
              * testsuite/register_pair_inserts_mt.cc : New file.
              * testsuite/event.list : New file.
              * testsuite/parts-test-extra-parts-views.cc : New file.
              * testsuite/parts-test-extra-parts-views.h : New file.
              * testsuite/environment-fail-32.s : New file.
              * testsuite/parts-test-extra-parts.h : New file.
              * testsuite/temp_deriv2.cc : New file.
              * testsuite/dlopen_mt.cc : New file.
              * testsuite/event.h : New file.
              * testsuite/template-list.cc : New file.
              * testsuite/replace-fail.cc : New file.
              * testsuite/Makefile.am : New file.
              * testsuite/Makefile.in: New file (generated).
              * testsuite/mempool_negative.c : New file.
              * testsuite/parts-test-main.cc : New file.
              * testsuite/event-private.cc : New file.
              * testsuite/thunk.cc : New file.
              * testsuite/event-defintiions.cc : New file.
              * testsuite/event-private.h : New file.
              * testsuite/parts-test.list : New file.
              * testusite/register_pair_mt.cc : New file.
              * testsuite/povray-derived.cc : New file.
              * testsuite/event-main.cc : New file.
              * testsuite/environment.cc : New file.
              * testsuite/template-list2.cc : New file.
              * testsuite/thunk_vtable_map_attack.cc : New file.
              * testsuite/parts-test-extra-parts.cc : New file.
              * testsuite/environment-fail-64.s : New file.
              * testsuite/dlopen.cc : New file.
              * testsuite/so.cc : New file.
              * testsuite/temp_deriv3.cc : New file.
              * testsuite/const_vtable.cc : New file.
              * testsuite/mempool_positive.c : New file.
              * testsuite/dup_name.cc : New file.
      
      From-SVN: r201555
      2077db1b
  2. Apr 03, 2013
    • Jason Merrill's avatar
      Demangle C++11 ref-qualifier. · 9eb85f27
      Jason Merrill authored
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_REFERENCE_THIS,
      	DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS.
      libiberty/
      	* cp-demangle.c (d_ref_qualifier): New.
      	(d_nested_name, d_function_type): Use it.
      	(d_parmlist): Don't get confused by a ref-qualifier.
      	(cplus_demangle_type): Reorder ref-qualifier.
      	(d_pointer_to_member_type): Likewise.
      	(d_dump): Handle DEMANGLE_COMPONENT_REFERENCE_THIS and
      	DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS.
      	(d_make_comp, has_return_type, d_encoding): Likewise.
      	(d_print_comp, d_print_mod_list, d_print_mod): Likewise.
      	(d_print_function_type, is_ctor_or_dtor): Likewise.
      
      From-SVN: r197436
      9eb85f27
  3. Mar 01, 2013
  4. Feb 11, 2013
  5. Jan 30, 2013
  6. Dec 18, 2012
  7. Nov 09, 2012
    • Jason Merrill's avatar
      Add C++ attribute abi_tag and -Wabi-tag option. · 7dbb85a7
      Jason Merrill authored
      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
      7dbb85a7
  8. Nov 06, 2012
    • Sterling Augustine's avatar
      common.opt (gno-split-dwarf, [...]): New switches. · 99ea153e
      Sterling Augustine authored
      
      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: default avatarCary Coutant <ccoutant@google.com>
      
      From-SVN: r193267
      99ea153e
  9. Oct 08, 2012
    • Jason Merrill's avatar
      Allow dynamic initialization of thread_locals. · 7c424acd
      Jason Merrill authored
      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
      7c424acd
  10. Sep 18, 2012
    • Florian Weimer's avatar
      PR other/54411: integer overflow in objalloc_alloc · ed770de9
      Florian Weimer authored
      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
      ed770de9
  11. Sep 06, 2012
  12. Aug 24, 2012
  13. Jul 13, 2012
    • Doug Evans's avatar
      filenames.h: #include "hashtab.h". · 69488641
      Doug Evans authored
      	include/
      	* filenames.h: #include "hashtab.h".
      	(filename_hash, filename_eq): Declare.
      	libiberty/
      	* filename_cmp.c (filename_hash, filename_eq): New functions.
      
      From-SVN: r189472
      69488641
  14. Jun 18, 2012
  15. Jun 12, 2012
  16. Jun 08, 2012
  17. May 23, 2012
    • Doug Evans's avatar
      leb128.h: #include stdint.h, inttypes.h. · 60a1fb35
      Doug Evans authored
      	* 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
      60a1fb35
  18. May 22, 2012
  19. May 20, 2012
  20. May 02, 2012
  21. Apr 28, 2012
  22. Apr 27, 2012
    • Tom Tromey's avatar
      * dwarf2.h: Wrap function declarations in extern "C". · accea034
      Tom Tromey authored
      From-SVN: r186918
      accea034
    • Tom Tromey's avatar
      dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name. · 11ec770e
      Tom Tromey authored
      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
      11ec770e
  23. Apr 10, 2012
    • Tristan Gingold's avatar
      gengtype.c (main): Make uintptr_t a known type. · 5973ae1a
      Tristan Gingold authored
      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
      5973ae1a
  24. Jan 26, 2012
  25. Jan 06, 2012
    • Jason Merrill's avatar
      re PR c++/6057 (expression mangling doesn't work for operator new) · 4b6aaa99
      Jason Merrill authored
      	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
      4b6aaa99
  26. Nov 08, 2011
  27. Oct 22, 2011
  28. Sep 28, 2011
    • Doug Evans's avatar
      timeval-utils.h: New file. · 8c850a5a
      Doug Evans authored
      	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
      8c850a5a
    • Doug Evans's avatar
      libiberty.h (countargv): Declare. · be50fcea
      Doug Evans authored
      	include/
      	* libiberty.h (countargv): Declare.
      
      	libiberty/
      	* argv.c (countargv): New function.
      
      From-SVN: r179318
      be50fcea
  29. Sep 26, 2011
  30. Sep 23, 2011
    • Cary Coutant's avatar
      re PR c++/40831 (g++ generated symbols for cloned function that be demangled.) · 2d2b02c4
      Cary Coutant authored
      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
      2d2b02c4
  31. Jul 25, 2011
  32. Jul 22, 2011
    • Jakub Jelinek's avatar
      dwarf2.h (DW_AT_GNU_macros): New. · 520cda8c
      Jakub Jelinek authored
      	* 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
      520cda8c
    • Jakub Jelinek's avatar
      re PR c++/49756 (g++ ICE) · d423df48
      Jakub Jelinek authored
      	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
      d423df48
  33. Jul 14, 2011
    • Sriraman Tallam's avatar
      2012011-07-13 Sriraman Tallam <tmsriram@google.com> · 8ff3369c
      Sriraman Tallam authored
      	
      	* 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
      8ff3369c
  34. Jul 01, 2011
    • Joel Brobecker's avatar
      Darwin has case-insensitive filesystems · 985b34c7
      Joel Brobecker authored
      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
      985b34c7
  35. Jun 22, 2011
    • Jakub Jelinek's avatar
      re PR debug/47858 (IPA-SRA decreases quality of debug info) · ddb555ed
      Jakub Jelinek authored
      	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
      ddb555ed
  36. Jun 13, 2011
    • Jan Kratochvil's avatar
      demangle.h (DMGL_RET_POSTFIX): Extend the comment. · f019462c
      Jan Kratochvil authored
      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
      f019462c
Loading