1. 05 Jul, 2018 7 commits
    • Correct subreg no-op handling for big-endian vec_select. · d6e5a37a
      gcc/
      
      	PR target/84711
      	* rtlanal.c (set_noop_p): Constrain on mode change,
      	include hard-reg-set.h
      
      gcc/testuite/
      
      	PR target/84711
      	* gcc.dg/vect/pr84711.c: New.
      
      From-SVN: r262435
      Tamar Christina committed
    • Simplify movmem code by always doing overlapping copies when larger than 8 bytes on AArch64. · 89c52e5e
      This changes the movmem code in AArch64 that does copy for data between 4 and 7
      bytes to use the smallest possible mode capable of copying the remaining bytes in one
      go and then overlapping the reads if needed.
      
      This means that if we're copying 5 bytes we would issue an SImode and QImode
      load instead of two SImode loads.
      
      This does smaller memory accesses but also gives the mid-end a chance to realise
      that it can CSE the loads in certain circumstances. e.g. when you have something
      like
      
      return foo;
      
      where foo is a struct. This would be transformed by the mid-end into SSA form as
      
      D.XXXX = foo;
      
      return D.XXXX;
      
      This movmem routine will handle the first copy, but it's usually not needed,
      the mid-end would do SImode and QImode stores into X0 for the 5 bytes example
      but without the first copies being in the same mode, it doesn't know it doesn't
      need the stores at all.
      
      From-SVN: r262434
      Tamar Christina committed
    • Revert · bdfc619e
      	2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
      
      	PR sanitizer/84250
      	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
      	libasan.
      	* gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
      
      	* Makefile.am: Reorder libs.
      	* Makefile.in: Regenerate.
      	* asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from
      	libsanitizer_ubsan.la.
      	* asan/Makefile.in: Regenerate.
      	* ubsan/Makefile.am: Define new libsanitizer_ubsan.la library.
      	* ubsan/Makefile.in: Regenerate.
      
      From-SVN: r262433
      Jakub Jelinek committed
    • [testsuite] Remove 'note:' from scan-tree-dump directives · c98446bc
      2018-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* c-c++-common/unroll-1.c: Remove 'note:' in matching string.
      	* c-c++-common/unroll-2.c: Likewise.
      	* g++.dg/cdce3.C: Likewise.
      	* g++.dg/ext/unroll-1.C: Likewise.
      	* g++.dg/ext/unroll-2.C: Likewise.
      	* g++.dg/ext/unroll-3.C: Likewise.
      	* gcc.dg/cdce1.c: Likewise.
      	* gcc.dg/cdce2.c: Likewise.
      	* gcc.dg/gomp/pr68128-1.c: Likewise.
      	* gcc.dg/vect/pr46032.c: Likewise.
      	* gcc.dg/vect/vect-cond-10.c: Likewise.
      	* gcc.dg/vect/vect-cond-8.c: Likewise.
      	* gcc.dg/vect/vect-cond-9.c: Likewise.
      	* gcc.dg/vect/vect-mask-load-1.c: Likewise.
      	* gcc.dg/vect/vect-mask-loadstore-1.c: Likewise.
      	* gcc.target/i386/avx-cvt-2.c: Likewise.
      	* gcc.target/i386/avx-cvt-3.c: Likewise.
      	* gcc.target/i386/avx2-cvt-2.c: Likewise.
      	* gcc.target/i386/avx2-gather-2.c: Likewise.
      	* gcc.target/i386/avx2-gather-6.c: Likewise.
      	* gcc.target/i386/avx512f-gather-2.c: Likewise.
      	* gcc.target/i386/sse2-cvt-2.c: Likewise.
      	* gfortran.dg/directive_unroll_1.f90: Likewise.
      	* gfortran.dg/directive_unroll_2.f90: Likewise.
      	* gnat.dg/unroll2.adb: Likewise.
      	* gnat.dg/unroll3.adb: Likewise.
      
      From-SVN: r262432
      Christophe Lyon committed
    • [testsuite] Simplify dg-final · ab7f778c
      2018-07-05  Tom de Vries  <tdevries@suse.de>
      
      	* lib/gcc-dg.exp (dg-final): Simplify tcl code.
      
      From-SVN: r262431
      Tom de Vries committed
    • Fix my yesterday ChangeLog entry. · d3fc820e
      From-SVN: r262429
      François Dumont committed
    • Daily bump. · e365d8d8
      From-SVN: r262428
      GCC Administrator committed
  2. 04 Jul, 2018 28 commits
    • P0646R1 Improving the Return Value of Erase-Like Algorithms I · ef45724a
      In C++2a the remove, remove_if and unique members of std::list and
      std::forward_list have been changed to return the number of elements
      removed. This is an ABI change for the remove members and the
      non-template unique members, so an abi-tag is used to give those symbols
      new mangled names in C++2a mode. For the function templates the return
      type is part of the mangled name so no abi-tag is needed.
      
      	* include/bits/forward_list.h (__cpp_lib_list_remove_return_type):
      	Define.
      	(forward_list::__remove_return_type): Define typedef as size_type or
      	void, according to __cplusplus value.
      	(_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
      	empty, according to __cplusplus value.
      	(forward_list::remove, forward_list::unique): Use typedef and macro
      	to change return type and add abi-tag for C++2a.
      	(forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use
      	typedef to change return type for C++2a.
      	* include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro.
      	(forward_list::remove, forward_list::remove_if<Pred>)
      	(forward_list::unique<BinPred>): Return number of removed elements
      	for C++2a.
      	* include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro.
      	(list::remove, list::unique, list::remove_if<Predicate>)
      	(list::unique<BinaryPredicate>): Return number of removed elements
      	for C++2a.
      	* include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define.
      	(list::__remove_return_type): Define typedef as size_type or
      	void, according to __cplusplus value.
      	(_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or
      	empty, according to __cplusplus value.
      	(list::remove, list::unique): Use typedef and macro to change return
      	type and add abi-tag for C++2a.
      	(list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use
      	typedef to change return type for C++2a.
      	* include/std/version (__cpp_lib_list_remove_return_type): Define.
      	* testsuite/23_containers/forward_list/operations/
      	remove_cxx20_return.cc: New.
      	* testsuite/23_containers/forward_list/operations/
      	unique_cxx20_return.cc: New.
      
      From-SVN: r262423
      Jonathan Wakely committed
    • re PR sanitizer/84250 (Symbol collision when using both Address and Undefined… · ca8dd9f2
      re PR sanitizer/84250 (Symbol collision when using both Address and Undefined Behavior sanitizers (-fsanitize=address,undefined))
      
      gcc/
      
      2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
      
      	PR sanitizer/84250
      	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
      	libasan.
      	* gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
      
      libsanitizer/
      
      2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
      
      	PR sanitizer/84250
      	* Makefile.am: Reorder libs.
      	* Makefile.in: Regenerate.
      	* asan/Makefile.am: Define DCAN_SANITIZE_UB=1, add dependancy from
      	libsanitizer_ubsan.la.
      	* asan/Makefile.in: Regenerate.
      	* ubsan/Makefile.am: Define new libsanitizer_ubsan.la library.
      	* ubsan/Makefile.in: Regenerate.
      
      From-SVN: r262421
      Maxim Ostapenko committed
    • re PR c++/86398 (is_trivially_constructible always returns true even when… · a617812f
      re PR c++/86398 (is_trivially_constructible always returns true even when is_constructible returns false)
      
      PR c++/86398
      
      gcc/cp/
      
      PR c++/86398
      * method.c (is_trivially_xible): Return false
      if is_xible_helper returns a NULL_TREE.
      
      testsuite/
      
      PR c++/86398
      * g++.dg/ext/is_trivially_constructible1.C: Add new tests.
      
      From-SVN: r262420
      Ville Voutilainen committed
    • re PR tree-optimization/86274 (SEGFAULT when logging std::to_string(NAN)) · 86b664c0
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86274
      	* gcc.dg/tree-ssa/builtin-sprintf-9.c: Fix typo.
      
      From-SVN: r262419
      Martin Sebor committed
    • P0458R2 Checking for Existence of an Element in Associative Containers · 3adea09e
      	* include/bits/stl_map.h (map::contains): Add for C++2a.
      	* include/bits/stl_multimap.h (multimap::contains): Likewise.
      	* include/bits/stl_multiset.h (multiset::contains): Likewise.
      	* include/bits/stl_set.h (set::contains): Likewise.
      	* include/bits/stl_tree.h (__has_is_transparent_t): Define alias.
      	(_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr)
      	(_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr)
      	(_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t.
      	* include/bits/unordered_map.h (unordered_map::contains)
      	(unordered_multimap::contains): Add for C++2a.
      	* include/bits/unordered_set.h (unordered_set::contains)
      	(unordered_multiset::contains): Likewise.
      	* testsuite/23_containers/map/operations/contains.cc: New.
      	* testsuite/23_containers/multimap/operations/contains.cc: New.
      	* testsuite/23_containers/multiset/operations/contains.cc: New.
      	* testsuite/23_containers/set/operations/contains.cc: New.
      	* testsuite/23_containers/unordered_map/operations/contains.cc: New.
      	* testsuite/23_containers/unordered_multimap/operations/contains.cc:
      	New.
      	* testsuite/23_containers/unordered_multiset/operations/contains.cc:
      	New.
      	* testsuite/23_containers/unordered_set/operations/contains.cc: New.
      
      From-SVN: r262418
      Jonathan Wakely committed
    • re PR libstdc++/86272 (__gnu_debug::string uses undefined __glibcxx_check_insert_range2) · 96eb9df6
      2018-07-04  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/86272
      	* include/debug/string
      	(__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)):
      	Use __glibcxx_check_insert_range.
      	* 21_strings/basic_string/cons/char/1.cc: Adapt test to use
      	__gnu_debug::string when _GLIBCXX_DEBUG.
      	* 21_strings/basic_string/init-list.cc: Likewise.
      	* 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise.
      	* 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise.
      	* 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise.
      	* 21_strings/basic_string/types/1.cc: Likewise.
      
      From-SVN: r262417
      François Dumont committed
    • re PR fortran/82009 ([F08] ICE with block construct) · fa9371ca
      2018-07-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/82009
      	* trans-decl.c (gfc_process_block_locals): Delete assert and set
      	saved_local_decls = NULL_TREE.
      
      	* gfortran.dg/block_16.f08. New test.
      
      From-SVN: r262416
      Jerry DeLisle committed
    • Define "random_device" effective target · 89bc4ab1
      Currently only matches targets where _GLIBCXX_USE_RANDOM_TR1 is defined,
      which means /dev/random and /dev/urandom are usable.
      
      	* testsuite/25_algorithms/make_heap/complexity.cc: Require effective
      	target for std::random_device.
      	* testsuite/26_numerics/random/random_device/cons/default.cc:
      	Likewise.
      	* testsuite/experimental/algorithm/sample-2.cc: Likewise.
      	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
      	* testsuite/experimental/random/randint.cc: Likewise.
      	* testsuite/lib/libstdc++.exp
      	(check_effective_target_random_device): New proc.
      
      From-SVN: r262415
      Jonathan Wakely committed
    • Fix std::__rotl and std::__rotr · 4e4120a2
      2018-07-04  Jonathan Wakely  <jwakely@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	* include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r262414
      Jonathan Wakely committed
    • re PR middle-end/86380 (incorrect comparison in function choose_multiplier) · 04f8c98c
      	PR middle-end/86380
      	* expmed.c (choose_multiplier): Fix incorrect comparison with mask.
      
      From-SVN: r262401
      Eric Botcazou committed
    • Remove spurious $HOME include from BRIG FE Makefile · aacd59e7
      2018-07-04  Martin Jambor  <mjambor@suse.cz>
      
      	PR hsa/86371
      	* Make-lang.in (BRIGINCLUDES): Remove erroneous include path in $HOME.
      
      From-SVN: r262398
      Martin Jambor committed
    • tree-vrp.c (extract_range_from_binary_expr_1): Initialze neg_*_op* variables. · 3d4a2c64
             * tree-vrp.c (extract_range_from_binary_expr_1): Initialze
             neg_*_op* variables.
      
      From-SVN: r262380
      Aldy Hernandez committed
    • PR libstdc++/86398 fix std::is_trivially_constructible regression · e9029d55
      The intrinsic doesn't check for allowed conversions between scalar
      types, so restore the std::is_constructible check.
      
      Also make some trivial whitespace changes.
      
      	PR libstdc++/86398
      	* include/std/type_traits (is_trivially_constructible): Check
      	is_constructible before __is_trivially_constructible.
      	* testsuite/20_util/is_trivially_constructible/value.cc: Add more
      	tests, including negative cases.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use
      	zero for dg-error lineno.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      
      From-SVN: r262379
      Jonathan Wakely committed
    • Optimize std::rotl and std::rotr, add test for std::popcount · 90fc44ec
      	* include/std/bit (__rotl, __rotr): Avoid branch.
      	(_If_is_unsigned_integer): Use remove_cv_t.
      	* testsuite/26_numerics/bit/bitops.count/popcount.cc: New.
      
      From-SVN: r262378
      Jonathan Wakely committed
    • ssa-dom-thread-7.c: Adjust test because aarch64 has a slightly different IL that provides more... · 6e38deee
      	* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust test because aarch64
      	has a slightly different IL that provides more threading
      	opportunities.
      
      From-SVN: r262377
      Aldy Hernandez committed
    • Fix bootstrap on ia64 with old GCC version. · 175b7dd4
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	* tree-switch-conversion.c: Define
              max_ratio_for_speed and max_ratio_for_size constants.
      
      From-SVN: r262376
      Martin Liska committed
    • [multiple changes] · c518c102
      
      
      2018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* common.opt: Rename align options with 'str_' prefix.
      	* common/config/i386/i386-common.c (set_malign_value): New
      	function.
      	(ix86_handle_option): Use it to set -falign-* options/
      	* config/aarch64/aarch64-protos.h (struct tune_params): Change
      	type from int to string.
      	* config/aarch64/aarch64.c: Update default values from int
      	to string.
      	* config/alpha/alpha.c (alpha_override_options_after_change):
      	Likewise.
      	* config/arm/arm.c (arm_override_options_after_change_1): Likewise.
      	* config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/freebsd.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/gnu-user.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/i386.c (struct ptt): Change type from int to
      	string.
      	(ix86_default_align): Set default values.
      	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print
      	max skip conditionally.
      	* config/i386/iamcu.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN):
      	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN):
      	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/openbsdelf.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.:
      	* config/i386/x86-64.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	(ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
      	* config/ia64/ia64.c (ia64_option_override): Set default values
              for alignment options.
      	* config/m68k/m68k.c: Handle new str_align_* options.
      	* config/mips/mips.c (mips_set_compression_mode): Change
      	type of constants.
      	(mips_option_override): Set default values for options.
      	* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
              Likewise.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal):
      	Likewise.
      	* config/rx/rx.c (rx_option_override): Likewise.
      	* config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log.
      	(LABEL_ALIGN): Use align_labels_log.
      	(LOOP_ALIGN): Use align_loops_align.
      	* config/s390/s390.c (s390_asm_output_function_label): Use new
              macros.
      	* config/sh/sh.c (sh_override_options_after_change):
      	Change type of constants.
      	* config/spu/spu.c (spu_sched_init): Likewise.
      	* config/sparc/sparc.c (sparc_option_override): Set default
              values for options.
      	* config/visium/visium.c (visium_option_override): Likewise.
      	* config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not
              emit p2align format with last argument if it's not needed.
      	* doc/invoke.texi: Document extended format of -falign-*.
      	* final.c: Use align_labels alignment.
      	* flags.h (struct target_flag_state): Change type to use
      	align_flags.
      	(struct align_flags_tuple): New.
      	(struct align_flags): Likewise.
      	(align_loops_log): Redefine macro to use new types.
      	(align_loops_max_skip): Redefine macro to use new types.
      	(align_jumps_log): Redefine macro to use new types.
      	(align_jumps_max_skip): Redefine macro to use new types.
      	(align_labels_log): Redefine macro to use new types.
      	(align_labels_max_skip): Redefine macro to use new types.
      	(align_functions_log): Redefine macro to use new types.
      	(align_loops): Redefine macro to use new types.
      	(align_jumps): Redefine macro to use new types.
      	(align_labels): Redefine macro to use new types.
      	(align_functions): Redefine macro to use new types.
      	(align_functions_max_skip): Redefine macro to use new types.
      	(align_loops_value): New macro.
      	(align_jumps_value): New macro.
      	(align_labels_value): New macro.
      	(align_functions_value): New macro.
      	* function.c (invoke_set_current_function_hook): Propagate
      	alignment values from flags to global variables default in
      	topleev.h.
      	* ipa-icf.c (sem_function::equals_wpa): Use
      	cl_optimization_option_eq instead of memcmp.
      	* lto-streamer.h (cl_optimization_stream_out): Support streaming
      	of string types.
      	(cl_optimization_stream_in): Likewise.
      	* optc-save-gen.awk: Support strings in cl_optimization.
      	* opth-gen.awk: Likewise.
      	* opts.c (finish_options): Remove error checking of invalid
      	value ranges.
      	(MAX_CODE_ALIGN): Remove.
      	(MAX_CODE_ALIGN_VALUE): Likewise.
      	(parse_and_check_align_values): New function.
      	(check_alignment_argument): Likewise.
      	(common_handle_option): Use check_alignment_argument.
      	* opts.h (parse_and_check_align_values): Declare.
      	* toplev.c (init_alignments): Remove.
      	(read_log_maxskip): New.
      	(parse_N_M): Likewise.
      	(parse_alignment_opts): Likewise.
      	(backend_init_target): Remove usage of init_alignments.
      	* toplev.h (parse_alignment_opts): Declare.
      	* tree-streamer-in.c (streamer_read_tree_bitfields): Add new
      	argument.
      	* tree-streamer-out.c (streamer_write_tree_bitfields): Likewise.
      	* tree.c (cl_option_hasher::equal): New.
      	* varasm.c: Use new global macros.
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* lto.c (compare_tree_sccs_1): Use cl_optimization_option_eq
      	instead of memcmp.
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* gcc.dg/pr84100.c (foo):
      	* gcc.target/i386/falign-functions-2.c: New test.
      	* gcc.target/i386/falign-functions.c: New test.
      
      From-SVN: r262375
      Martin Liska committed
    • Temporary remove "at least 8 byte alignment" code from x86 · dd047c67
      2018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
      
      	* config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN):
      	Use a simpler align directive also if MAXSKIP = ALIGN-1.
      	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
      	* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N
      	is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG
      	define. Use a simpler align directive also if MAXSKIP = ALIGN-1.
      	* config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
      
      From-SVN: r262374
      Denys Vlasenko committed
    • Fix DOS-based system build and fix documentation. · 7709f595
      2018-07-04  Martin Liska  <mliska@suse.cz>
                  Jonathan Wakely  <jwakely@redhat.com>
      
      	* coverage.c: Use correct type.
      	* doc/invoke.texi: Language correction.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r262373
      Martin Liska committed
    • Remove legacy testcase for -fprofile-generate=./ · f45eb408
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/pr47793.c: Remove.
      
      From-SVN: r262372
      Martin Liska committed
    • Fix typo in bb-slp-over-widen-*.c · bb263b55
      2018-07-04  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.dg/vect/bb-slp-over-widen-1.c: Fix name of dump file for
      	final scan test.
      	* gcc.dg/vect/bb-slp-over-widen-2.c: Likewise.
      
      From-SVN: r262371
      Richard Sandiford committed
    • i386: Add indirect_return function attribute · ebaa4dea
      On x86, swapcontext may return via indirect branch when shadow stack
      is enabled.  To support code instrumentation of control-flow transfers
      with -fcf-protection, add indirect_return function attribute to inform
      compiler that a function may return via indirect branch.
      
      Note: Unlike setjmp, swapcontext only returns once.  Mark it return
      twice will unnecessarily disable compiler optimization as shown in
      the testcase here.
      
      gcc/
      
      	PR target/85620
      	* config/i386/i386.c (rest_of_insert_endbranch): Also generate
      	ENDBRANCH for non-tail call which may return via indirect branch.
      	* doc/extend.texi: Document indirect_return attribute.
      
      gcc/testsuite/
      
      	PR target/85620
      	* gcc.target/i386/pr85620-1.c: New test.
      	* gcc.target/i386/pr85620-2.c: Likewise.
      	* gcc.target/i386/pr85620-3.c: Likewise.
      	* gcc.target/i386/pr85620-4.c: Likewise.
      
      From-SVN: r262370
      H.J. Lu committed
    • h8300.md (logical<mode>3_sn, [...]): Merge into a single pattern. · 7422f0ff
              * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
              into a single pattern.
      
      From-SVN: r262369
      Jeff Law committed
    • PR tree-optimization/86274 - SEGFAULT when logging std::to_string(NAN) · 7af7cb51
      gcc/ChangeLog:
      
      	PR tree-optimization/86274
      	* gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
      	precondition.
      	(format_floating): Correct handling of infinities and NaNs.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86274
      	* gcc.dg/tree-ssa/builtin-sprintf-9.c: New test.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Same.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same.
      	* gcc.dg/tree-ssa/builtin-sprintf.c: Same.
      	* gcc.dg/tree-ssa/pr83198.c: Same.
      
      From-SVN: r262368
      Martin Sebor committed
    • print-tree.c (print_real_cst): New function. · 68a8b147
      gcc/ChangeLog:
      
      	* print-tree.c (print_real_cst): New function.
      	(print_node_brief): Call it.
      	(print_node): Ditto.
      
      From-SVN: r262367
      Martin Sebor committed
    • h8300.md (ors code_iterator): New. · ec4692b4
      	* config/h8300/h8300.md (ors code_iterator): New.
      	(bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into
      	a single pattern and single splitter.
      	(bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern.
      	(iorqi3_1, xorqi3_1): Likewise.
      	(iorqi3, xorqi3 expanders): Similarly.
      
      From-SVN: r262366
      Jeff Law committed
    • h8300.md (movmd_internal_normal): Consolidated with (movmd_internal) into a… · fae7e834
      h8300.md (movmd_internal_normal): Consolidated with (movmd_internal) into a single pattern using the P mode iterator.
      
      	* config/h8300/h8300.md (movmd_internal_normal): Consolidated with
      	(movmd_internal) into a single pattern using the P mode iterator.
      	(movmd splitters): Similarly.
      	(stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns.
      	(movsd splitters): Similarly.
      
      From-SVN: r262365
      Jeff Law committed
    • Daily bump. · f1ee5763
      From-SVN: r262364
      GCC Administrator committed
  3. 03 Jul, 2018 5 commits
    • P0556R3 Integral power-of-2 operations, P0553R2 Bit operations · f3e91052
      P0553R2 is not in the C++2a working draft yet, but is likely to be
      approved soon. Neither proposal supports std::byte but this adds
      overloads of each function for std::byte, assuming that will also get
      added.
      
      	* include/Makefile.am: Add new header.
      	* include/Makefile.in: Regenerate.
      	* include/precompiled/stdc++.h: Include new header.
      	* include/std/bit: New header.
      	(__rotl, __rotr, __countl_zero, __countl_one, __countr_zero)
      	(__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1):
      	Define for C++14.
      	[!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero)
      	(countr_one, popcount): Define for C++2a. Also overload for std::byte.
      	(ispow2, ceil2, floor2, log2p1): Define for C++2a.
      	[!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for
      	std::byte.
      	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New.
      	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New.
      	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New.
      	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New.
      	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: New.
      	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: New.
      	* testsuite/26_numerics/bit/bitops.count/countl_one.cc: New.
      	* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New.
      	* testsuite/26_numerics/bit/bitops.count/countr_one.cc: New.
      	* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New.
      
      From-SVN: r262360
      Jonathan Wakely committed
    • Remove redundant #if conditional · cf3e6e9f
      The whole file is guarded by the same check already.
      
      	* include/bits/alloc_traits.h: Remove redundant preprocessor
      	condition.
      
      From-SVN: r262359
      Jonathan Wakely committed
    • decl.c (min_location): New. · 2dac4037
      /cp
      2018-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (min_location): New.
      	(smallest_type_quals_location): Use the latter.
      	(check_concept_fn): Use DECL_SOURCE_LOCATION.
      	(grokdeclarator): Use accurate locations in a number of error
      	messages involving ds_thread, ds_storage_class, ds_virtual,
      	ds_constexpr, ds_typedef and ds_friend; exploit min_location.
      
      /testsuite
      2018-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/other/locations1.C: New.
      	* g++.dg/tls/locations1.C: Likewise.
      	* g++.dg/diagnostic/virtual-constexpr.C: Likewise.
      	* g++.dg/diagnostic/virtual-static.C: Likewise.
      	* g++.dg/concepts/fn-concept2.C: Test the locations too.
      	* g++.dg/cpp0x/constexpr-virtual5.C: Likewise.
      	* g++.dg/cpp0x/pr51463.C: Likewise.
      	* g++.dg/other/typedef1.C: Likewise.
      	* g++.dg/parse/dtor13.C: Likewise.
      	* g++.dg/template/error44.C: Likewise.
      	* g++.dg/template/typedef4.C: Likewise.
      	* g++.dg/template/typedef5.C: Likewise.
      	* g++.dg/tls/diag-2.C: Likewise.
      	* g++.old-deja/g++.brendan/crash11.C: Likewise.
      
      From-SVN: r262358
      Paolo Carlini committed
    • h8300.c (h8300_insn_length_from_table): Consolidate ADDB... · c3c3ddbb
      	* config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate
      	ADDB, ADDW and ADDL into a single ADD attribute which selects the
      	right table based on the size of the operand.
      	* config/h8300/h8300.md (length_table): Corresponding changes. All
      	references to "addb", "addw" and "addl" changed to "add".
      	(btst patterns): Merge two variants into a single pattern.
      	(tstqi, tsthi): Likewise.
      	(addhi3_incdec, addsi3_incdec): Likewise.
      	(subhi3_h8300hs, subsi3_h8300hs): Likewise.
      	(mulhi3, mulsi3): Likewise.
      	(udivhi3, udivsi3): Likewise.
      	(divhi3, divsi3): Likewise.
      	(andorqi3, andorhi3, andorsi3): Likewise.
      
      From-SVN: r262357
      Jeff Law committed
    • re PR tree-optimization/85694 (Generation of vectorized AVG (Average) instruction) · 15333be7
      	PR target/85694
      	* config/i386/sse.md (uavg<mode>3_ceil): New expander.
      	(<sse2_avx2>_uavg<mode>3<mask_name>): Simplify expander.
      
      testsuite/ChangeLog:
      
      	PR target/85694
      	* gcc.target/i386/pr85694.c: New test.
      
      From-SVN: r262354
      Uros Bizjak committed