1. 23 Sep, 2016 15 commits
    • [PATCH 4/17][ARM] Define feature macros for FP16. · 536b9f42
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm-c.c (arm_cpu_builtins): Define
      	"__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
      	"__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* gcc.target/arm/attr-fp16-arith-1.c: New.
      
      From-SVN: r240402
      Matthew Wahab committed
    • [PATCH 3/17][Testsuite] Add ARM support for ARMv8.2-A with FP16 arithmetic instructions. · 1b9e31cf
      gcc/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
      	arm_v8_1a_neon_ok.  Add entries for arm_v8_2a_fp16_scalar_ok,
      	arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
      	arm_v8_2a_fp16_neon_hw.
      	(Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
      	arm_v8_2a_neon.
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* lib/target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar):
      	New.
      	(add_options_for_arm_v8_2a_fp16_neon): New.
      	(check_effective_target_arm_arch_v8_2a_ok): Auto-generate.
      	(add_options_for_arm_arch_v8_2a): Auto-generate.
      	(check_effective_target_arm_arch_v8_2a_multilib): Auto-generate.
      	(check_effective_target_arm_v8_2a_fp16_scalar_ok_nocache): New.
      	(check_effective_target_arm_v8_2a_fp16_scalar_ok): New.
      	(check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): New.
      	(check_effective_target_arm_v8_2a_fp16_neon_ok): New.
      	(check_effective_target_arm_v8_2a_fp16_scalar_hw): New.
      	(check_effective_target_arm_v8_2a_fp16_neon_hw): New.
      
      From-SVN: r240401
      Matthew Wahab committed
    • [PATCH 2/17][Testsuite] Add a selector for ARM FP16 alternative format support. · a5b42ee7
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* doc/sourcebuild.texi (ARM-specific attributes): Add entries for
      	arm_fp16_alternative_ok and arm_fp16_none_ok.
      
      testsuite/
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* g++.dg/ext/arm-fp16/arm-fp16-ops-3.C: Use
      	arm_fp16_alternative_ok.
      	* g++.dg/ext/arm-fp16/arm-fp16-ops-4.C: Likewise.
      	* gcc.dg/torture/arm-fp16-int-convert-alt.c: Likewise.
      	* gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c: Likewise.
      	* gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-1.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-10.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-11.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-12.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-2.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-3.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-4.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-5.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-6.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-7.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-8.c: Likewise.
      	* gcc.target/arm/fp16-compile-alt-9.c: Likewise.
      	* gcc.target/arm/fp16-compile-none-1.c: Use arm_fp16_none_ok.
      	* gcc.target/arm/fp16-compile-none-2.c: Likewise.
      	* gcc.target/arm/fp16-rounding-alt-1.c: Use
      	arm_fp16_alternative_ok.
      	* lib/target-supports.exp
      	(check_effective_target_arm_fp16_alternative_ok_nocache): New.
      	(check_effective_target_arm_fp16_alternative_ok): New.
      	(check_effective_target_arm_fp16_none_ok_nocache): New.
      	(check_effective_target_arm_fp16_none_ok): New.
      
      From-SVN: r240400
      Matthew Wahab committed
    • Fix typo in IPA ICF · fcbc975b
      	* ipa-icf.c (sem_variable::merge): Replace adress
      	with address.
      	* gcc.dg/ipa/pr77653.c: Replace adress
      	with address.
      
      From-SVN: r240399
      Martin Liska committed
    • [PATCH 1/17][ARM] Add ARMv8.2-A command line option and profile. · 4040b89a
      2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
      	("armv8.2-a"): New.
      	("armv8.2-a+fp16"): New.
      	* config/arm/arm-protos.h (FL2_ARCH8_2): New.
      	(FL2_FP16INST): New.
      	(FL2_FOR_ARCH8_2A): New.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/arm.c (arm_arch8_2): New.
      	(arm_fp16_inst): New.
      	(arm_option_override): Set arm_arch8_2 and arm_fp16_inst.  Check
      	for incompatible fp16-format settings.
      	* config/arm/arm.h (TARGET_VFP_FP16INST): New.
      	(TARGET_NEON_FP16INST): New.
      	(arm_arch8_2): Declare.
      	(arm_fp16_inst): Declare.
      	* config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
      	march=armv8.2-a and march=armv8.2-a+fp16.
      	* config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
      	and armv8.2-a+fp16.
      	* doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
      	"-march=armv8.2-a" and "-march=armv8.2-a+fp16".
      
      From-SVN: r240398
      Matthew Wahab committed
    • Remove fused-madd from documentation · 69ec2113
      	* doc/extend.texi: Remove fused-madd from i386 target
      	options.
      
      From-SVN: r240395
      Martin Liska committed
    • Support movbe as a i386 target optimization node · 1822b732
      	* gcc.target/i386/movbe-4.c: New test.
      	* config/i386/i386.c (ix86_valid_target_attribute_inner_p):
      	Handle movbe.
      
      From-SVN: r240394
      Martin Liska committed
    • Support crc32 as a i386 target optimization node · fab18cc4
      	* config/i386/i386.c (ix86_valid_target_attribute_inner_p):
      	Handle crc32.
      	* gcc.target/i386/crc32-5.c: New test.
      
      From-SVN: r240393
      Martin Liska committed
    • re PR target/71652 (ICE in in ix86_target_macros_internal, at config/i386/i386-c.c:187) · e70f01b5
      Fix PR target/71652
      
      	PR target/71652
      	* config/i386/i386.c (ix86_option_override_internal): Change
      	signature and return false when there's an error related to
      	arch string.
      	(release_options_strings): New function.
      	(ix86_valid_target_attribute_tree): Call the function.
      	* gcc.target/i386/pr71652.c: New test.
      	* gcc.target/i386/pr71652-2.c: New test.
      	* gcc.target/i386/pr71652-3.c: New test.
      
      From-SVN: r240392
      Martin Liska committed
    • gcc-dg.exp (process-message): Support relative line number notation - .+4 or .-1 etc. · f2e81d05
      	* lib/gcc-dg.exp (process-message): Support relative line number
      	notation - .+4 or .-1 etc.
      	* gcc.dg/dg-test-1.c: New test.
      
      From-SVN: r240391
      Jakub Jelinek committed
    • * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...) · aaa1b10f
      	instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
      	(gen_hsa_ctor_assignment): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-sra.c (sra_modify_constructor_assign): Likewise.
      	* expr.c (store_constructor): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
      	* ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
      cp/
      	* typeck2.c (process_init_constructor_record): Use
      	CONSTRUCTOR_NELTS (...) instead of
      	vec_safe_length (CONSTRUCTOR_ELTS (...)).
      	* decl.c (reshape_init_r): Likewise.
      	(check_initializer): Likewise.
      ada/
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Use
      	CONSTRUCTOR_NELTS (...) instead of
      	vec_safe_length (CONSTRUCTOR_ELTS (...)).
      
      From-SVN: r240390
      Jakub Jelinek committed
    • hooks.h (hook_uint_uintp_false): Declare. · 9500733c
      2016-09-23  Richard Biener  <rguenther@suse.de>
      
      	* hooks.h (hook_uint_uintp_false): Declare.
      
      From-SVN: r240389
      Richard Biener committed
    • Provide right LDD offset bound in avr_address_cost · 33989cff
      This patch fixes cost computation in avr_address_cost - instead of the
      hardcoded 61, it uses the already existing MAX_LD_OFFSET(mode) macro.
      
      This showed up when investigating a code size regression in the ivopts
      pass. That pass computes address_cost with and without an offset to
      decide on the right induction variable candidate(s). The legitimate
      address target hook returns false for offsets more than 63, so the
      pass calls the TARGET_ADDRESS_COST hook with 62 as the offset.
      
      The avr_address_cost hook returns 18 as the cost, and the ivopts pass 
      concludes that the cost of address with *any* offset is 18, which is not 
      true - the higher cost is incurred only with offsets bigger than MAX_LD_OFFSET. 
      This in turn results in a suboptimal choice of induction variables in the
      ivopts pass. The patch changes the hardcoded 61 to use the mode
      specific MAX_LD_OFFSET instead.
      
      Regression testing with just that fix showed one additional
      compilation timeout. That turned out to be the same as
      https://lists.nongnu.org/archive/html/avr-gcc-list/2014-03/msg00010.html
      - the middle end takes too much time to decide on the best strategy to
      multiply DImode values on a 64 bit host. This already causes timeouts
      for a few builtin-arith-overflow-* tests (see
      https://gcc.gnu.org/ml/gcc-testresults/2016-09/msg02018.html), so it
      isn't really related to this fix. Just providing a cost estimate for
      DImode mul fixes the timeout though, so the patch does that by scaling
      SImode costs by 2 for DImode muls.
      
      With both changes in, there are no regressions, and the
      builtin-arith-overflow-* tests now PASS and don't timeout.
      
      gcc/ChangeLog
      
      2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
      
      	* config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
      	(avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
      
      From-SVN: r240388
      Senthil Kumar Selvaraj committed
    • [RTEMS] Always use atomic builtins for libstdc++ · 320c7be3
      libstdc++-v3/
      	* config/cpu/m68k/atomicity.h: Adjust comment.
      	* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
      	explicit atomicity_dir setup via configure.host.
      	* configure.host (rtems-*): Set atomicity_dir.
      	* configure: Regenerate.
      
      From-SVN: r240387
      Sebastian Huber committed
    • Daily bump. · e9f1eeed
      From-SVN: r240386
      GCC Administrator committed
  2. 22 Sep, 2016 25 commits
    • PR target/77676 - powerpc64 and powerpc64le stage2 bootstrap fail · ed30d2a6
      gcc/testsuite/ChangeLog:
      
      	PR target/77676
      	* gcc.dg/tree-ssa/builtin-sprintf-1.c: Define and use wint_t.
      	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Fix typo.
      	* gcc.dg/tree-ssa/builtin-sprintf-3.c: New test.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-5.c: New test.
      
      gcc/ChangeLog:
      
      	PR target/77676
      	* gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
      	HOST_BITS_PER_WIDE_INT, make a static local variable auto.
      	(target_int_min): Correct computation.
      	(format_integer): Use long long as the argument for the ll length
      	modifier.
      	(format_floating): Use target_int_max().
      	(get_string_length): Same.
      	(format_string): Avoid setting the bounded flag for strings
      	of unknown length.
      	(try_substitute_return_value): Avoid setting range info when
      	the result isn't bounded.
      	* varasm.c (assemble_name): Increase buffer size.
      
      From-SVN: r240383
      Martin Sebor committed
    • compiler: compile runtime.getcaller{pc,sp} into builtin functions · 0cb904af
          
          The runtime functions runtime.getcallerpc and runtime.getcallersp are
          intended to be efficient ways to get the return and frame address of the
          caller (that is, the caller of runtime.getcallerpc).  In the C code that
          is implemented by simply using C macros:
          
          This patch essentially implements those macros in the Go code.
          
          It would be nice if we could just use //extern for this, but it doesn't
          work because the runtime code passes the right argument.  Of course we
          could change the runtime code, but these are common enough that I'd
          prefer to avoid the difference from the gc version of the runtime code.
          
          This patch corrects the existing declaration of __builtin_return_address
          to use uint32, rather than uint, for the parameter type.  The builtin
          functions take the C type "unsigned int", which for the targets we use
          corresponds to the Go type uint32.  Not that it should matter, really.
          
          Reviewed-on: https://go-review.googlesource.com/29653
      
      From-SVN: r240382
      Ian Lance Taylor committed
    • ifcvt-1.c: Compile also for 64-bit i?86-*-* target. · 1c681c7b
      	* gcc.dg/ifcvt-1.c: Compile also for 64-bit i?86-*-* target.
      	* gcc.dg/ifcvt-2.c: Ditto.
      	* gcc.dg/zero_bits_compound-1.c: Ditto.
      	* gcc.dg/zero_bits_compound-1.c: Ditto.
      	* gcc.dg/pr40550.c: Simplify target selectors.
      	Use dg-additional-options.
      	* gcc.dg/pr47893.c: Ditto.
      	* gcc.dg/pr68435.c: Compile also for i?86-*-* target.  Add -march=i686
      	additional options for 32-bit x86 targets.
      	* gcc.dg/pr70955.c: Move to ...
      	* gcc.target/i386/pr70955.c: ... here.  Simplify target selector.
      
      From-SVN: r240381
      Uros Bizjak committed
    • re PR c++/61019 (ICE: incomplete type of class template as pseudo-destructor-name) · 67cf0a53
      2016-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/61019
      	* g++.dg/cpp0x/pr61019.C: New.
      
      From-SVN: r240380
      Paolo Carlini committed
    • [ARM] Add support for -mpure-code option · 0ee70cc0
      gcc/ChangeLog:
      2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
                  Terry Guo  <terry.guo@arm.com>
      
          * target.def (elf_flags_numeric): New target hook.
          * targhooks.h (default_asm_elf_flags_numeric): New.
          * varasm.c (default_asm_elf_flags_numeric): New.
          (default_elf_asm_named_section): Use new target hook.
          * config/arm/arm.opt (mpure-code): New.
          * config/arm/arm.h (SECTION_ARM_PURECODE): New.
          * config/arm/arm.c (arm_asm_init_sections): Add section
          attribute to default text section if -mpure-code.
          (arm_option_check_internal): Diagnose use of option with
          non supported targets and/or options.
          (arm_asm_elf_flags_numeric): New.
          (arm_function_section): New.
          (arm_elf_section_type_flags): New.
          * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
          for -mpure-code.
          * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
          * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
      
      gcc/testsuite/ChangeLog:
      2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
                  Terry Guo  <terry.guo@arm.com>
      
          * gcc.target/arm/pure-code/ffunction-sections.c: New.
          * gcc.target/arm/pure-code/no-literal-pool.c: New.
          * gcc.target/arm/pure-code/pure-code.exp: New.
      
      Co-Authored-By: Terry Guo <terry.guo@arm.com>
      
      From-SVN: r240379
      Andre Vieira committed
    • const-2b.c: Also compile for x86_64-*-*. · 43639d2c
      	* gcc.dg/debug/dwarf2/const-2b.c: Also compile for x86_64-*-*.
      	Remove SSE effective target requirement.
      
      From-SVN: r240377
      Uros Bizjak committed
    • * MAINTAINERS (Write After Approval): Add myself. · 8de88f7f
      From-SVN: r240375
      Tamar Christina committed
    • re PR c++/71979 (ICE with on C++ code with incorrect type in overloaded base… · a608d15b
      re PR c++/71979 (ICE with on C++ code with incorrect type in overloaded base class '=' operator: in build_base_path, at cp/class.c:304)
      
      /cp
      2016-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71979
      	* class.c (build_base_path): Allow for lookup_base returning
      	NULL_TREE.
      
      /testsuite
      2016-09-22  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71979
      	* g++.dg/cpp0x/pr71979.C: New.
      
      From-SVN: r240373
      Paolo Carlini committed
    • Revert accidental commit. · ed64a4e7
      From-SVN: r240369
      Jan Hubicka committed
    • * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves. · d6da226a
      From-SVN: r240365
      Jan Hubicka committed
    • Implement C++17 node extraction and insertion (P0083R5) · 2dbe56bd
      	* doc/xml/manual/status_cxx2017.xml: Document status.
      	* doc/html/*: Regenerate.
      	* include/Makefile.am: Add bits/node_handle.h and reorder.
      	* include/Makefile.in: Regenerate.
      	* include/bits/hashtable.h (_Hashtable::node_type)
      	(_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
      	(_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
      	(_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
      	(_Hash_merge_helper): Define primary template.
      	* include/bits/node_handle.h: New header.
      	* include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
      	friend.
      	(map::node_type, map::insert_return_type, map::extract, map::merge)
      	(map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
      	Define new members.
      	(_Rb_tree_merge_helper): Specialize for map.
      	* include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
      	as friend.
      	(multimap::node_type, multimap::extract, multimap::merge)
      	(multimap::insert(node_type&&))
      	(multimap::insert(const_iterator, node_type&&)): Define.
      	(_Rb_tree_merge_helper): Specialize for multimap.
      	* include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
      	as friend.
      	(multiset::node_type, multiset::extract, multiset::merge)
      	(multiset::insert(node_type&&))
      	(multiset::insert(const_iterator, node_type&&)): Define.
      	* include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
      	friend.
      	(set::node_type, set::insert_return_type, set::extract, set::merge)
      	(set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
      	Define.
      	(_Rb_tree_merge_helper): Specialize for set.
      	* include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
      	(_Rb_tree::node_type, _Rb_tree::insert_return_type)
      	(_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
      	(_Rb_tree::_M_reinsert_node_hint_unique)
      	(_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
      	(_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
      	(_Rb_tree_merge_helper): Specialize for multiset.
      	* include/bits/unordered_map.h (unordered_map): Declare
      	unordered_map<> and unordered_multimap<> as friends.
      	(unordered_map::node_type, unordered_map::insert_return_type)
      	(unordered_map::extract, unordered_map::merge)
      	(unordered_map::insert(node_type&&))
      	(unordered_map::insert(const_iterator, node_type&&))
      	(unordered_multimap): Declare _Hash_merge_helper as friend.
      	(unordered_multimap::node_type, unordered_multimap::extract)
      	(unordered_multimap::merge, unordered_multimap::insert(node_type&&))
      	(unordered_multimap::insert(const_iterator, node_type&&)): Define.
      	(_Hash_merge_helper): Specialize for unordered maps and multimaps.
      	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
      	Declare _Hash_merge_helper as friend.
      	(unordered_set::node_type, unordered_set::insert_return_type)
      	(unordered_set::extract, unordered_set::merge)
      	(unordered_set::insert(node_type&&))
      	(unordered_set::insert(const_iterator, node_type&&)): Define.
      	(unordered_multiset::node_type, unordered_multiset::extract)
      	(unordered_multiset::merge, unordered_multiset::insert(node_type&&))
      	(unordered_multiset::insert(const_iterator, node_type&&)): Define.
      	(_Hash_merge_helper): Specialize for unordered sets and multisets.
      	* include/debug/map.h (map): Add using declarations or forwarding
      	functions for new members.
      	* include/debug/map.h (multimap): Likewise.
      	* include/debug/map.h (multiset): Likewise.
      	* include/debug/map.h (set): Likewise.
      	* include/debug/unordered_map (unordered_map, unordered_multimap):
      	Likewise.
      	* include/debug/unordered_set( unordered_set, unordered_multiset):
      	Likewise.
      	* python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
      	helper function.
      	(get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
      	(StdNodeHandlePrinter): Define printer for node handles.
      	(build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
      	* testsuite/23_containers/map/modifiers/extract.cc: New.
      	* testsuite/23_containers/map/modifiers/merge.cc: New.
      	* testsuite/23_containers/multimap/modifiers/extract.cc: New.
      	* testsuite/23_containers/multimap/modifiers/merge.cc: New.
      	* testsuite/23_containers/multiset/modifiers/extract.cc: New.
      	* testsuite/23_containers/multiset/modifiers/merge.cc: New.
      	* testsuite/23_containers/set/modifiers/extract.cc: New.
      	* testsuite/23_containers/set/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
      	* testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
      	New.
      	* testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
      	* testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
      	* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
      	dg-error lineno.
      	* testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
      
      From-SVN: r240363
      Jonathan Wakely committed
    • make next_cc0_user take rtx_insn * · 475edec0
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
      	* rtl.h: Adjust prototype.
      
      From-SVN: r240362
      Trevor Saunders committed
    • make next/prev active_insn and active_insn_p take rtx_insn * · 7c9796ed
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (next_active_insn): Change argument type to
      	rtx_insn *.
      	(prev_active_insn): Likewise.
      	(active_insn_p): Likewise.
      	* rtl.h: Adjust prototypes.
      	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
      	* config/arc/arc.md: Likewise.
      	* config/pa/pa.c (branch_to_delay_slot_p): Likewise.
      	(branch_needs_nop_p): Likewise.
      	(use_skip_p): Likewise.
      	* config/sh/sh.c (gen_block_redirect): Likewise.
      	(split_branches): Likewise.
      	* reorg.c (optimize_skip): Likewise.
      	(fill_simple_delay_slots): Likewise.
      	(fill_slots_from_thread): Likewise.
      	(relax_delay_slots): Likewise.
      	* resource.c (mark_target_live_regs): Likewise.
      
      From-SVN: r240361
      Trevor Saunders committed
    • make next/prev nonnote_nondebug_insn take rtx_insn * · 1f00691e
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* config/cris/cris.c (cris_asm_output_case_end): Change argument
      	type to rtx_insn *.
      	* emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
      	(prev_nonnote_nondebug_insn): Likewise.
      	* config/cris/cris-protos.h: Adjust prototype.
      	* rtl.h: Likewise.
      	* jump.c (rtx_renumbered_equal_p): Adjust.
      
      From-SVN: r240360
      Trevor Saunders committed
    • make prev_real_insn take rtx_insn * · d8fd56b2
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
      	* rtl.h: Adjust prototype.
      	* config/sh/sh.md: Adjust.
      	* dwarf2out.c (add_var_loc_to_decl): Likewise.
      
      From-SVN: r240359
      Trevor Saunders committed
    • make next/prev nondebug_insn take rtx_insn * · 30d2ef86
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (next_nondebug_insn): Change argument type to
      	rtx_insn *.
      	(prev_nondebug_insn): Likewise.
      	* loop-doloop.c (doloop_condition_get): Likewise.
      	* rtl.h: Adjust prototype.
      	* cfgloop.h: Likewise.
      
      From-SVN: r240358
      Trevor Saunders committed
    • make next/prev _nonnote_insn take rtx_insn * · c9b0a227
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* emit-rtl.c (next_nonnote_insn): Change argument type to
      	rtx_insn *.
      	(prev_nonnote_insn): Likewise.
      	* jump.c (reversed_comparison_code_parts): Likewise.
      	(reversed_comparison): Likewise.
      	* rtl.h: Adjust prototypes.
      	* config/arc/arc.md: Adjust.
      	* cse.c (find_comparison_args): Likewise.
      	* reorg.c (redundant_insn): Change return type to rtx_insn *.
      	(fix_reg_dead_note): Change argument type to rtx_insn *.
      	(delete_prior_computation): Likewise.
      	(delete_computation): Likewise.
      	(fill_slots_from_thread): Adjust.
      	(relax_delay_slots): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_relational_operation_1): Likewise.
      	(simplify_ternary_operation): Likewise.
      
      From-SVN: r240357
      Trevor Saunders committed
    • use rtx_insn * more · 82082f65
      gcc/ChangeLog:
      
      2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* config/arc/arc-protos.h (arc_label_align): Change type of
      	variables from rtx to rtx_insn *.
      	* config/arc/arc.c (arc_label_align): Likewise.
      	* config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
      	* config/bfin/bfin.c (workaround_speculation): Likewise.
      	* config/c6x/c6x.c (find_next_cycle_insn): Likewise.
      	(find_last_same_clock): Likewise.
      	(reorg_split_calls): Likewise.
      	* config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
      	* config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
      	* config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
      	(same_cmp_following_p): Likewise.
      	* config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
      	(same_cmp_following_p): Likwise.
      	* config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
      	* config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
      	* config/nds32/nds32.c (nds32_target_alignment): Likewise.
      	* config/rl78/rl78.c (rl78_alloc_physical_registers_op2):
      	* Likewise.
      	(rl78_alloc_physical_registers_cmp): Likewise.
      	(rl78_alloc_physical_registers_umul): Likewise.
      	(rl78_calculate_death_notes): Likewise.
      	* config/s390/s390-protos.h (s390_label_align): Likewise.
      	* config/s390/s390.c (s390_label_align): Likewise.
      	* config/sh/sh.c (barrier_align): Likewise.
      	* config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
      	* config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
      	(emit_cbcond_nop): Likewise.
      
      From-SVN: r240356
      Trevor Saunders committed
    • pr77550.C: Use __SIZE_TYPE__. · d94a7ab4
      2016-09-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * g++.dg/pr77550.C: Use __SIZE_TYPE__.
      
      From-SVN: r240355
      Bernd Edlinger committed
    • re PR ipa/77653 (wrong code at -Os and above on x86_64-linux-gnu (in both 32-bit and 64-bit modes)) · a13f439f
      Fix PR ipa/77653
      
      	PR ipa/77653
      	* gcc.dg/ipa/pr77653.c: New test.
      	PR ipa/77653
      	* ipa-icf.c (sem_variable::merge): Yield merge operation if
      	alias address matters, not necessarily address of original.
      
      From-SVN: r240354
      Martin Liska committed
    • re PR tree-optimization/77697 (suspicious code in tree-ssa-forwprop.c) · 9ef2eff0
      2016-09-22  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/77697
      	* gimple-fold.c (fold_array_ctor_reference): Turn asserts into
      	fold fails.
      
      From-SVN: r240353
      Richard Biener committed
    • re PR tree-optimization/77677 (ICE at -O1 and above in both 32-bit and 64-bit… · 1f3131cb
      re PR tree-optimization/77677 (ICE at -O1 and above in both 32-bit and 64-bit modes on x86_64-linux-gnu (internal compiler error: in set_value_range, at tree-vrp.c:361))
      
      2016-09-22  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/77677
      	* gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
      	from constant folding results.
      	(gimple_resimplify2): Likewise.
      	(gimple_resimplify3): Likewise.
      
      From-SVN: r240352
      Richard Biener committed
    • re PR fortran/77678 (ICE in fold_read_from_constant_string, at fold-const.c:13706) · c813f268
      2016-09-22  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/77678
      	* expr.c (expand_expr_real_1): Guard array access against negative
      	offset.
      
      From-SVN: r240351
      Richard Biener committed
    • Use GMP_RNDN for portability to MPFR 2.4.2 · b8ffdd97
      	* gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
      	of MPFR_RNDN.
      	(format_floating): Likewise.
      
      From-SVN: r240350
      Rainer Orth committed