1. 06 Jan, 2019 8 commits
    • PR libstdc++/86756 add std::filesystem::path to libstdc++.so · 2b522535
      Move the C++17 std::filesystem::path definitions from the libstdc++fs.a
      archive to the main libstdc++ library. The path classes do not depend on
      any OS functions, so can be defined unconditionally on all targets
      (rather than depending on --enable-libstdcxx-filesystem-ts). The tests
      should pass on all targets too.
      
      	PR libstdc++/86756
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Make various patterns for
      	typeinfo and vtables less greedy.
      	(GLIBCXX_3.4.26): Export symbols for std::filesystem::path.
      	* src/c++17/Makefile.am: Add fs_path.cc and cow-fs_path.cc.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++17/cow-fs_path.cc: Move src/filesystem/cow-std-path.cc to
      	here, and change name of included file.
      	* src/c++17/fs_path.cc: Move src/filesystem/std-path.cc to here.
      	* src/filesystem/Makefile.am: Remove std-path.cc and cow-std-path.cc
      	from sources.
      	* src/filesystem/Makefile.in: Regenerate.
      	* src/filesystem/cow-std-path.cc: Move to src/c++17/cow-fs_path.cc.
      	* src/filesystem/std-path.cc: Move to src/c++17/fs_path.cc.
      	* testsuite/27_io/filesystem/path/append/path.cc: Remove -lstdc++fs
      	from dg-options and remove dg-require-filesystem-ts.
      	* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
      	* testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
      	* testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/default.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
      	* testsuite/27_io/filesystem/path/construct/string_view.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/extension.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/filename.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/parent_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/relative_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_name.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/root_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/normal.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/normal2.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/proximate.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
      	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Likewise.
      	* testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
      	* testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
      	* testsuite/27_io/filesystem/path/native/string.cc: Likewise.
      	* testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
      	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_relative_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_directory.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/is_absolute.cc: Likewise.
      	* testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
      
      From-SVN: r267615
      Jonathan Wakely committed
    • PR libstdc++/87431 fix regression introduced by r264574 · caf80d87
      The previous patch for PR 87431 assumed that initialing a scalar type
      could not throw, but it can obtain its value via a conversion operator,
      which could throw. This meant the variant could get into a valueless
      state, but the valueless_by_exception() member function would always
      return false.
      
      This patch fixes it by changing the emplace members to have strong
      exception safety when initializing a contained value of trivially
      copyable type. The _M_valid() member gets a corresponding change to
      always return true for trivially copyable types, not just scalar types.
      
      Strong exception safety (i.e. never becoming valueless) is achieved by
      only replacing the current contained value once any potentially throwing
      operations have completed. If constructing the new contained value can
      throw then a new std::variant object is constructed to hold it, and then
      move-assigned to *this (which won't throw).
      
      	PR libstdc++/87431
      	* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
      	Check is_trivially_copyable instead of is_scalar.
      	(variant::emplace<N, Args>(Args&&...)): If construction of the new
      	contained value can throw and its type is trivially copyable then
      	construct into a temporary variant and move from it, to provide the
      	strong exception safety guarantee.
      	(variant::emplace<N, U, Args>(initializer_list<U>, Args&&...)):
      	Likewise.
      	* testsuite/20_util/variant/87431.cc: New test.
      	* testsuite/20_util/variant/run.cc: Adjust test so that throwing
      	conversion causes valueless state.
      
      From-SVN: r267614
      Jonathan Wakely committed
    • re PR tree-optimization/86020 (Performance regression in Eigen geometry.cpp test… · be917808
      re PR tree-optimization/86020 (Performance regression in Eigen geometry.cpp test starting with r248334)
      
      
      	PR tree-opt/86020
      	Revert:
      	2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
      	
              * ipa-inline.c (edge_badness): Use inlined_time instead of
              inline_summaries->get.
      
      From-SVN: r267612
      Jan Hubicka committed
    • opts.c (enable_fdo_optimizations): Enable version-loops-for-strides... · a9a32e56
      
      	* opts.c (enable_fdo_optimizations): Enable
      	version-loops-for-strides, loop-interchange, unrol-and-jam
      	and tree-loop-distribution.
      	* invoke.texi: Document newly enabled options.
      
      From-SVN: r267611
      Jan Hubicka committed
    • re PR fortran/88658 (Intrinsic MAX1 returns a REAL result, should be INTEGER.) · 13b1afe4
      2019-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88658
      	* gfortran.h: Add macro gfc_real_4_kind
      	* simplify.c (simplify_min_max): Special case for the types of
      	AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of
      	their arguments.
      
      2019-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88658
      	* gfortran.dg/min_max_type_2.f90: New test.
      
      From-SVN: r267609
      Thomas Koenig committed
    • re PR c/88363 (alloc_align attribute doesn't accept enumerated arguments) · 8f4813c1
      	PR c/88363
      	* c-c++-common/attributes-4.c (falloc_align_int128,
      	falloc_size_int128): Guard with #ifdef __SIZEOF_INT128__.
      
      From-SVN: r267608
      Jakub Jelinek committed
    • PR libstdc++/88607 add tests using -finput-charset=ascii · ecaad8d5
      This verifies that the <bits/extc++.h> header can be compiled with ASCII
      as the input character set.
      
      	PR libstdc++/88607
      	* testsuite/17_intro/headers/c++1998/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2011/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2014/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2017/charset.cc: New test.
      	* testsuite/17_intro/headers/c++2020/charset.cc: New test.
      
      From-SVN: r267607
      Jonathan Wakely committed
    • Daily bump. · 881b8ffe
      From-SVN: r267606
      GCC Administrator committed
  2. 05 Jan, 2019 14 commits
    • invoke.texi (max-inline-insns-small): New parameters. · f256c274
      
      	* doc/invoke.texi (max-inline-insns-small): New parameters.
      	* ipa-inline.c (want_early_inline_function_p): simplify.
      	(want_inline_small_function_p): Fix pasto from previous patch;
      	use max-inline-insns-small bound.
      	* params.def (max-inline-insns-small): New param.
      	* ipa-fnsummary.c (analyze_function_body): Initialize time/size
      	variables correctly.
      
      From-SVN: r267603
      Jan Hubicka committed
    • Define new filesystem::__file_clock type · beb04ce9
      In C++17 the clock used for filesystem::file_time_type is unspecified,
      allowing it to be chrono::system_clock. The C++2a draft requires it to
      be a distinct type, with additional member functions to convert to/from
      other clocks (either the system clock or UTC). In order to avoid an ABI
      change later, this patch defines a new distinct type now, which will be
      used for std::chrono::file_clock later.
      
      	* include/bits/fs_fwd.h (__file_clock): Define new clock.
      	(file_time_type): Redefine in terms of __file_clock.
      	* src/filesystem/ops-common.h (file_time): Add FIXME comment about
      	overflow.
      	* src/filesystem/std-ops.cc (is_set(perm_options, perm_options)): Give
      	internal linkage.
      	(internal_file_lock): New helper type for accessing __file_clock.
      	(do_copy_file): Use internal_file_lock to convert system time to
      	file_time_type.
      	(last_write_time(const path&, error_code&)): Likewise.
      	(last_write_time(const path&, file_time_type, error_code&)): Likewise.
      
      From-SVN: r267602
      Jonathan Wakely committed
    • invoke.texi: Document max-inline-insns-size... · d06f73a3
      
      	* doc/invoke.texi: Document max-inline-insns-size,
      	uninlined-function-insns, uninlined-function-time,
      	uninlined-thunk-insns and uninlined-thunk-time.
      	* params.def: Add max-inline-insns-size,
      	uninlined-function-insns, uninlined-function-time,
      	uninlined-thunk-insns and uninlined-thunk-time.
      	* ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
      	new parameters.
      	* ipa-inline.c (can_inline_edge_by_limits_p,
      	want_inline_small_function_p): Use new parameters.
      
      From-SVN: r267601
      Jan Hubicka committed
    • plugindir1.c: Adjust dg-prune-output for Darwin. · 2a95da04
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	* gcc.dg/plugin/plugindir1.c: Adjust dg-prune-output for Darwin.
      	* gcc.dg/plugin/plugindir2.c: Likewise.
      	* gcc.dg/plugin/plugindir3.c: Likewise.
      	* gcc.dg/plugin/plugindir4.c: Likewise.
      
      From-SVN: r267599
      Dominique d'Humieres committed
    • re PR fortran/88009 (ICE in find_intrinsic_vtab, at fortran/class.c:2761) · f8add009
      2019-01-05  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/88009
      	* class.c (gfc_find_derived_vtab): Mark the _final component as
      	artificial.
      	(find_intrinsic_vtab): Ditto. Also add an extra check to avoid
      	dereferencing a null pointer and adjust indentation.
      	* resolve.c (resolve_fl_variable): Add extra check to avoid
      	dereferencing a null pointer. Move variable declarations to local scope.
      	(resolve_fl_procedure): Add extra check to avoid dereferencing a null
      	pointer.
      	* symbol.c (check_conflict): Suppress errors for artificial symbols.
      
      2019-01-05  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/88009
      	* gfortran.dg/blockdata_10.f90: New test case.
      
      From-SVN: r267598
      Janus Weil committed
    • re PR middle-end/82564 (ICE at -O1 and above: in assign_stack_temp_for_type, at function.c:783) · 23141e52
      	PR middle-end/82564
      	PR target/88620
      	* expr.c (expand_assignment): For calls returning VLA structures
      	if to_rtx is not a MEM, force it into a stack temporary.
      
      	* gcc.dg/nested-func-12.c: New test.
      	* gcc.c-torture/compile/pr82564.c: New test.
      
      From-SVN: r267595
      Jakub Jelinek committed
    • re PR debug/88635 (Assembler error when building with "-g -O2 -m32") · 4a3e7df8
      	PR debug/88635
      	* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
      	SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
      	Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
      	subexpressions of both operands.
      	(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
      	subrtxes are CONSTANT_P.
      	* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
      	2018-11-09 changes.
      
      	* gcc.dg/debug/dwarf2/pr88635.c: New test.
      
      From-SVN: r267594
      Jakub Jelinek committed
    • re PR target/60563 (FAIL: g++.dg/ext/sync-4.C on *-apple-darwin*) · 46ca1b43
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	PR target/60563
      	Missing PR entry in the previous commit.
      
      From-SVN: r267593
      Dominique d'Humieres committed
    • sync-4.C: Add dg-xfail-run-if for darwin. · ab18132e
      2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	* g++.dg/ext/sync-4.C: Add dg-xfail-run-if for darwin.
      
      From-SVN: r267592
      Dominique d'Humieres committed
    • PR c/88546 - Copy attribute unusable for weakrefs · 29d24852
      gcc/c-family/ChangeLog:
      
      	PR c/88546
      	* c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
      	Handle C++ empty throw specification and C11 _Noreturn.
      	(has_attribute): Also handle C11 _Noreturn.
      
      gcc/ChangeLog:
      
      	PR c/88546
      	* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
      	leaf.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/88546
      	* g++.dg/ext/attr-copy.C: New test.
      	* gcc.dg/attr-copy-4.c: Disable macro expansion tracking.
      	* gcc.dg/attr-copy-6.c: New test.
      	* gcc.dg/attr-copy-7.c: New test.
      
      From-SVN: r267591
      Martin Sebor committed
    • runtime: prevent deadlock when profiling signal arrives during traceback · f6be1179
          
          Traceback routines, e.g. callers and funcentry, may call
          __go_get_backtrace_state. If a profiling signal arrives while we
          are in the critical section of __go_get_backtrace_state, it tries
          to do a traceback, which also calls __go_get_backtrace_state,
          which tries to enter the same critical section and will deadlock.
          Prevent this deadlock by setting up runtime_in_callers before
          calling __go_get_backtrace_state.
          
          Found while investigating golang/go#29448. Will add a test in the
          next CL.
          
          Updates golang/go#29448.
          
          Reviewed-on: https://go-review.googlesource.com/c/156037
      
      From-SVN: r267590
      Ian Lance Taylor committed
    • * params.def (hot-bb-count-ws-permille): Set to 990. · 869fbd35
      From-SVN: r267589
      Jan Hubicka committed
    • Daily bump. · 2f2b8aa6
      From-SVN: r267588
      GCC Administrator committed
  3. 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
  4. 03 Jan, 2019 1 commit