1. 05 Jan, 2019 9 commits
  2. 04 Jan, 2019 17 commits
    • Export explicit instantiations for C++17 members of std::string · 1a289fa3
      The C++17 standard added some new members to std::basic_string, which
      were not previously instantiated in the library. This meant that the
      extern template declarations had to be disabled for C++17 mode. With
      this patch the new members are instantiated in the library and so the
      explicit instantiation declarations can be used for C++17.
      
      The new members added by C++2a are still not exported, and so the
      explicit instantiation declarations are still disabled for C++2a.
      
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make patterns less greedy
      	for const member functions of std::basic_string.
      	(GLIBCXX_3.4.26): Export member functions of std::basic_string added
      	in C++17.
      	* include/bits/basic_string.h (basic_string(__sv_wrapper, const A&)):
      	Make non-standard constructor private.
      	[!_GLIBCXX_USE_CXX11_ABI] (basic_string(__sv_wrapper, const A&)):
      	Likewise.
      	* include/bits/basic_string.tcc (std::string, std::wstring): Declare
      	explicit instantiations for C++17 as well as earlier dialects.
      	* src/c++17/Makefile.am: Add new source files.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++17/cow-string-inst.cc: New file defining explicit
      	instantiations for basic_string member functions added in C++17.
      	* src/c++17/string-inst.cc: Likewise.
      
      From-SVN: r267585
      Jonathan Wakely committed
    • Add allocator-extended copy/move ctors to COW string · 4ff3e650
      Add these constructors from C++11 which were missing from the COW
      basic_string. Additionally simplify the definitions of the
      basic_string::reference and basic_string::const_reference types as
      required by C++11.
      
      This allows filesystem::path::string<Allocator>() to be simplified, so
      that the same code is used for both basic_string implementations.
      
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Export allocator-extended
      	copy/move constructors for old std::basic_string.
      	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
      	(basic_string::reference, basic_string::const_reference): Define
      	as plain references for C++11 and later.
      	(basic_string::basic_string()): Put constructor body outside
      	preprocessor conditional groups.
      	(basic_string::basic_string(basic_string&&)): Move _Alloc_hider
      	instead of copying it.
      	(basic_string::basic_string(const basic_string&, const _Alloc&)):
      	Define.
      	(basic_string::basic_string(basic_string&&, const _Alloc&)):
      	Define.
      	* include/bits/fs_path.h [!_GLIBCXX_USE_CXX11_ABI]: Remove special
      	cases for old basic_string.
      	* testsuite/21_strings/basic_string/cons/char/8.cc: Test
      	allocator-extended constructors unconditionally. Add extra members to
      	allocator type when using old string ABI.
      	* testsuite/21_strings/basic_string/allocator/71964.cc: Enable test
      	for old string ABI.
      	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
      
      From-SVN: r267584
      Jonathan Wakely committed
    • PR c/88363 - alloc_align attribute doesn't accept enumerated arguments · 9069a4c9
      gcc/c-family/ChangeLog:
      
      	PR c/88363
      	* c-attribs.c (positional_argument): Also accept enumerated types.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/88363
      	* c-c++-common/attributes-4.c: New test.
      
      gcc/ChangeLog:
      
      	PR c/88363
      	* doc/extend.texi (attribute alloc_align, alloc_size): Update.
      
      From-SVN: r267583
      Martin Sebor committed
    • Fix test failure when -fno-inline is used · 6908c1dc
      This currently checks _GLIBCXX_USE_DUAL_ABI which is incorrect, as that
      can be true when _GLIBCXX_USE_CXX11_ABI == 0. The correct check would be
      _GLIBCXX_USE_CXX11_ABI == 1, but that's made redundant by the cxx11-abi
      effective target that the test requires. However, the test will fail if
      -fno-inline is used, so check __NO_INLINE__ instead.
      
      	* testsuite/23_containers/list/61347.cc: Avoid spurious failure when
      	-fno-inline added to test flags.
      
      From-SVN: r267582
      Jonathan Wakely committed
    • gdbinit.in: Turn off pagination for the skip commands, restore it to previous state afterwards. · 35a5722c
      	* gdbinit.in: Turn off pagination for the skip commands, restore
      	it to previous state afterwards.
      
      From-SVN: r267581
      Jakub Jelinek committed
    • [PATCH][GCC][Aarch64] Change expected bfxil count in… · af9b2f86
      [PATCH][GCC][Aarch64] Change expected bfxil count in gcc.target/aarch64/combine_bfxil.c to 18 (PR/87763)
      
      gcc/testsuite/Changelog:
      
      2019-01-04  Sam Tebbs  <sam.tebbs@arm.com>
      
      	PR gcc/87763
      	* gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
      	count to 18.
      
      From-SVN: r267579
      Sam Tebbs committed
    • Remove XFAIL from test that no longer fails · 9fc5a9a1
      This test started passing with the old ABI with r263808, so doesn't need
      to be marked XFAIL now.
      
      	* testsuite/21_strings/basic_string/requirements/
      	explicit_instantiation/debug.cc: Remove XFAIL for old ABI.
      
      From-SVN: r267578
      Jonathan Wakely committed
    • Fix test failure with old Copy-On-Write std::string · 66f31224
      	* testsuite/27_io/filesystem/filesystem_error/copy.cc: Fix static
      	assertion failures with old std::string ABI.
      
      From-SVN: r267577
      Jonathan Wakely committed
    • Fix bugs in filesystem::path::lexically_normal() · 73d968d9
      Using path::_List::erase(const_iterator) to remove a non-final component
      in path::lexically_normal() is a bug, because it leaves the following
      component with an incorrect _M_pos value.
      
      Instead of providing erase members that allow removing components from
      the middle, replace them with pop_back() and
      _M_erase_from(const_iterator) which only allow removing elements at the
      end. Most uses of erase are unaffected, because they only remove
      elements from the end anyway. The one use of erasure from the middle in
      lexically_normal() is replaced by calls to pop_back() and/or clearing
      the last component to leave it as an empty final filename.
      
      Also replace the "???" comment in lexically_normal() to document when
      that branch is taken.
      
      	* include/bits/fs_path.h (path::_List::erase): Replace both overloads
      	with ...
      	(path::pop_back(), path::_M_erase_from(const_iterator)): New member
      	functions that will only erase elements at the end.
      	* src/filesystem/std-path.cc (path::_List::_Impl::pop_back()): Define.
      	(path::_List::_Impl::_M_erase_from(const_iterator)): Define.
      	(path::_List::operator=(const _List&)): Use _M_erase_from(p) instead
      	of erase(p, end()).
      	(path::_List::pop_back()): Define.
      	(path::_List::_M_erase_from(const_iterator)): Define.
      	(path::operator/=(const path&)): Use pop_back to remove last component
      	and _M_erase_from to remove multiple components.
      	(path::_M_append(basic_string_view<value_type>)): Likewise.
      	(path::operator+=(const path&)): Likewise.
      	(path::_M_concat(basic_string_view<value_type>)): Likewise.
      	(path::remove_filename()): Likewise.
      	(path::lexically_normal()): Use _List::_Impl iterators instead of
      	path::iterator. Use pop_back to remove components from the end. Clear
      	trailing filename, instead of using erase(const_iterator) to remove
      	a non-final component.
      	* testsuite/27_io/filesystem/path/generation/normal.cc: Test
      	additional cases.
      	* testsuite/27_io/filesystem/path/generation/normal2.cc: New test.
      
      From-SVN: r267576
      Jonathan Wakely committed
    • * gnatvsn.ads: Bump copyright year. · 2d4c371e
      From-SVN: r267575
      Eric Botcazou committed
    • Fix concatenation bug in filesystem::path · b3080217
      When erasing a trailing empty filename component, the output iterator
      was not decremented, causing the next component to be created at the
      wrong position.
      
      	* src/filesystem/std-path.cc (path::operator+=(const path&)): Fix
      	incorrect treatment of empty filename after trailing slash.
      	* testsuite/27_io/filesystem/path/concat/path.cc: Test problem case.
      
      From-SVN: r267574
      Jonathan Wakely committed
    • Avoid spurious test failures when -fno-inline in test flags · 5db78cac
      These tests rely on inlining, so if -fno-inline is added to the compiler
      flags the tests fail. Use the predefined __NO_INLINE__ macro to detect
      that situation, and don't bother testing the move assignment.
      
      	* testsuite/21_strings/basic_string/modifiers/assign/char/
      	move_assign_optim.cc: Avoid spurious failure when -fno-inline added
      	to test flags.
      	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
      	move_assign_optim.cc: Likewise.
      
      From-SVN: r267573
      Jonathan Wakely committed
    • re PR fortran/48543 (Collapse identical strings) · a52fcfac
      2019-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/48543
          * gfortran.dg/const_chararacter_merge.f90: Actually remove.
          * gfortran.dg/merge_char_const.f90: Restore.
      
      From-SVN: r267572
      Thomas Koenig committed
    • re PR target/88594 (ICE in int_mode_for_mode, at stor-layout.c:403) · 9d3ac5e3
      	PR target/88594
      	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
      	of GET_MODE (opN) as modes of the libcall arguments.
      
      	* gcc.dg/pr88594.c: New test.
      
      From-SVN: r267571
      Jakub Jelinek committed
    • x86: relax mask register constraints · 80b23ae8
      While their use for masking is indeed restricted to %k1...%k7, use as
      "normal" insn operands also permits %k0. Remove the unnecessary
      limitations, requiring quite a few testsuite adjustments.
      
      Oddly enough some AVX512{F,DQ} test cases already check for %k[0-7],
      while others did permit {%k0} - where they get touched here anyway this
      gets fixed at the same time.
      
      From-SVN: r267570
      Jan Beulich committed
    • PR tree-optimization/88659 - ICE in maybe_warn_nonstring_arg · df161fc2
      gcc/ChangeLog:
      	* calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wstringop-truncation-6.c: New test.
      
      From-SVN: r267569
      Martin Sebor committed
    • Daily bump. · 7880e173
      From-SVN: r267568
      GCC Administrator committed
  3. 03 Jan, 2019 14 commits
    • PR libstdc++/88607 replace some more UTF-8 characters · 43f1a5e1
      2019-01-03  Jonathan Wakely  <jwakely@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      
      	PR libstdc++/88607
      	* include/experimental/memory: Replace UTF-8 quote characters.
      	* include/std/future: Replace UTF-8 "em dash" characters.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r267565
      Jonathan Wakely committed
    • PR libstdc++/88607 replace or remove unnecessary UTF-8 characters · 3c732e6f
      There are a number of UTF-8 characters in comments which add no value
      and can be replaced with ASCII equivalents, or removed entirely for the
      section sign (U+00A7).
      
      	PR libstdc++/88607
      	* include/bits/forward_list.h: Replace UTF-8 "ligature fi" character.
      	* include/debug/forward_list: Likewise.
      	* include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign"
      	character.
      	* include/experimental/chrono: Likewise.
      	* include/experimental/functional: Likewise.
      	* include/experimental/ratio: Likewise.
      	* include/experimental/system_error: Likewise.
      	* include/experimental/tuple: Likewise.
      	* include/experimental/type_traits: Likewise.
      	* include/parallel/workstealing.h: Replace UTF-8 "en dash" character.
      	* include/parallel/multiseq_selection.h: Likewise.
      
      From-SVN: r267564
      Jonathan Wakely committed
    • PR libstdc++/88681 export missing symbols · dd87c5c2
      These new facet functions were added to GCC 5.1 but the versions for the
      old std::string ABI were never exported from the shared library.
      
      	PR libstdc++/88681
      	* config/abi/pre/gnu.ver: Add missing exports.
      	* testsuite/22_locale/collate_byname/88681.cc: New test.
      	* testsuite/22_locale/time_get/get/char/88681.cc: New test.
      	* testsuite/22_locale/time_get/get/wchar_t/88681.cc: New test.
      
      From-SVN: r267563
      Jonathan Wakely committed
    • rs6000-string.c (expand_block_move): Don't use unaligned vsx and avoid lxvd2x/stxvd2x. · 19db0ebb
      2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	* config/rs6000/rs6000-string.c (expand_block_move): Don't use
      	unaligned vsx and avoid lxvd2x/stxvd2x.
      	(gen_lvx_v4si_move): New function.
      
      From-SVN: r267562
      Aaron Sawdey committed
    • [nvptx] Add vector_length 128 testcases · 5c571497
      Add a couple of test-cases using vector length 128, while checking that we
      override to vector length 32.
      
      2019-01-03  Tom de Vries  <tdevries@suse.de>
      
      	* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: New test.
      
      From-SVN: r267559
      Tom de Vries committed
    • [nvptx] Add nvptx_mach_vector_length, nvptx_mach_max_workers · 0d06e8c7
      The vector length and maximum number of workers are known compile-time.  Make
      these easily available during code generation via new functions.
      
      2019-01-03  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
      	(init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
      	function.
      	* config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
      
      From-SVN: r267558
      Tom de Vries committed
    • [nvptx] Factor out populate_offload_attrs · 2498a6ab
      Factor out populate_offload_attrs from nvptx_reorg.
      
      2019-01-03  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (struct offload_attrs): New.
      	(populate_offload_attrs): New function.  Factor mask extraction out of
      	nvptx_reorg.  Add extraction of dimensions.
      	(nvptx_reorg): Use populate_offload_attrs.
      
      From-SVN: r267557
      Tom de Vries committed
    • [nvptx] Add early-out cases in nvptx_goacc_validate_dims · 4b171607
      Add early-out cases for for oacc_min_dims_p and routine_p in
      nvptx_goacc_validate_dims, allowing simplification of the rest of the
      function.
      
      2019-01-03  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
      	cases for oacc_min_dims_p and routine_p.  Add asserts for
      	oacc_default_dims_p and offload_region_p.
      
      From-SVN: r267556
      Tom de Vries committed
    • [nvptx] Eliminate changed local var in nvptx_goacc_validate_dims · 5f57c8f3
      The TARGET_GOACC_VALIDATE_DIMS hook requires an implementation to return a bool
      indicating whether the dims parameter has changed.
      
      Factor nvptx_goacc_validate_dims_1 out of nvptx_goacc_validate_dims, and
      calculate the return value in nvptx_goacc_validate_dims.
      
      2019-01-03  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
      	factored out of ...
      	(nvptx_goacc_validate_dims): ... here.
      
      From-SVN: r267555
      Tom de Vries committed
    • re PR fortran/48543 (Collapse identical strings) · ed72c2e3
      2019-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/48543
          * gfortran.dg/const_chararacter_merge.f90: Remove.
      
      From-SVN: r267553
      Thomas Koenig committed
    • re PR lto/85574 (LTO bootstapped binaries differ) · 4a62f441
      2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
      
      	PR tree-optimization/85574
      	* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
      	structure.
      	(struct ssa_equip_hash_traits): Declare.
      	(val_ssa_equiv): Use custom hash traits using operand_equal_p.
      
      From-SVN: r267552
      Jan Hubicka committed
    • Update config.guess, config.sub (PR target/88535) · 5227609c
      	PR target/88535
      	* config.guess: Import upstream version 2019-01-03.
      	* config.sub: Import upstream version 2019-01-01.
      
      From-SVN: r267551
      Rainer Orth committed
    • re PR debug/88644 (Unexpected pub type info eliminated after r246973 (causes… · c04d40da
      re PR debug/88644 (Unexpected pub type info eliminated after r246973 (causes pubtypes-*.c to regress).)
      
      	PR debug/88644
      	* dwarf2out.c (modified_type_die): If type is equal to sizetype,
      	change it to qualified_type.
      
      	* gcc.dg/debug/dwarf2/pr88644.c: New test.
      	* gcc.dg/debug/dwarf2/pr80263.c: Remove darwin hack.
      
      2019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.dg/pubtypes-2.c: Adjust expected pubtypes length.
      	* gcc.dg/pubtypes-3.c: Likewise.
      	* gcc.dg/pubtypes-4.c: Likewise.
      
      From-SVN: r267550
      Jakub Jelinek committed
    • ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... · 8ae4d429
      	* ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
      	(ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
      
      From-SVN: r267549
      Jan Hubicka committed