1. 01 Mar, 2020 4 commits
  2. 29 Feb, 2020 17 commits
  3. 28 Feb, 2020 19 commits
    • libstdc++: Fix bogus use of memcmp in ranges::lexicographical_compare (PR 93972) · ce33801f
      We were enabling the memcmp optimization in ranges::lexicographical_compare for
      signed integral types and for integral types wider than a byte.  But memcmp
      gives the wrong answer for arrays of such types.  This patch fixes this issue by
      refining the condition that enables the memcmp optimization.  It's now
      consistent with the corresponding condition used in
      std::lexicographical_compare.
      
      libstdc++-v3/ChangeLog:
      
      	PR libstdc++/93972
      	* include/bits/ranges_algo.h (__lexicographical_compare_fn::operator()):
      	Fix condition for when to use memcmp, making it consistent with the
      	corresponding condition used in std::lexicographical_compare.
      	* testsuite/25_algorithms/lexicographical_compare/93972.cc: New test.
      Patrick Palka committed
    • coroutines: Update func-params-08.C to suspend three times. · e8219202
      The awaitable initially committed was returning "always ready"
      which meant that the suspension code was not used.  Update
      the test to suspend at each co_await, since this exercises more
      of the infrastructure.
      
      gcc/testsuite/ChangeLog:
      
      2020-02-28  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* g++.dg/coroutines/torture/func-params-08.C: Update
      	to suspend for each co_await operation.
      Iain Sandoe committed
    • runtime: handle linux/arm64 signal register · 3f469f58
      Set sigpc and implement dumpregs for linux/arm64.
      Without this change, cmd/vet tool test will fail randomly.
      
      Updates golang/go#20931
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/220543
      eric fang committed
    • libstdc++: Update the <numeric> synopsis test to latest standard · 799270b4
      Tested with
      
        make check RUNTESTFLAGS="conformance.exp=*numeric*synopsis* --target_board=unix/-std=$std"
      
      for std in {c++98, c++11, c++17, c++2a}.
      
      libstdc++-v3/ChangeLog:
      
      	* testsuite/26_numerics/headers/numeric/synopsis.cc: Add signatures for
      	functions introduced in C++11, C++17 and C++2a.  Add 'constexpr' to
      	existing signatures for C++2a.
      Patrick Palka committed
    • c++: Fix constrained conversion op. · 586b016c
      We don't want to promote a conversion from viable == 0 to viable == -1.
      Found in ranges-v3.
      
      gcc/cp/ChangeLog
      2020-02-28  Jason Merrill  <jason@redhat.com>
      
      	* call.c (build_user_type_conversion_1): Don't look at the second
      	conversion of a non-viable candidate.
      Jason Merrill committed
    • libstdc++: test for failing assertion should use 'run' not 'compile' · 4735f92d
      And it only needs to define _GLIBCXX_ASSERTIONS not _GLIBCXX_DEBUG.
      
      	* testsuite/24_iterators/range_operations/advance_debug_neg.cc: Run
      	test instead of just compiling it.
      Jonathan Wakely committed
    • Commit for PR92785 · 7485ace8
      Paul Thomas committed
    • Fix target/93937 · ab2f2e19
      2020-02-28  Michael Meissner  <meissner@linux.ibm.com>
      
      	PR target/93937
      	* config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
      	Delete, the insn will never work.
      Michael Meissner committed
    • libstdc++: Also disable caching of reverse_view::begin() for common_ranges · 77e596cf
      When the underlying range models common_range, then reverse_view::begin() is
      already O(1) without caching.  So we should disable the cache in this case too.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/ranges (reverse_view::_S_needs_cached_begin): Set to false
      	whenever the underlying range models common_range.
      Patrick Palka committed
    • Improve detection of ld_date. · 08bf7bde
      	PR other/93965
      	* configure.ac: Improve detection of ld_date by requiring
      	either two dashes or none.
      	* configure: Regenerate.
      Martin Liska committed
    • c++: Further tweak for P1937R2 - const{expr,eval} inconsistencies · 18396541
      Seems I've missed one thing, as the first hunk in
      https://github.com/cplusplus/draft/commit/c8e68ed202b4a9260616bcee8a9768b5dca4bbca
      changes the wording so that only potentially-evaluated id-expressions that
      denote immediate functions must appear only in the specified contexts.
      That IMO means that in unevaluated contexts there aren't such restrictions
      anymore, so I think in unevaluated contexts one should be able to take the
      address of an immediate function.
      
      2020-02-28  Jakub Jelinek  <jakub@redhat.com>
      
      	P1937R2 - Fixing inconsistencies between const{expr,eval} functions
      	* typeck.c (cp_build_addr_expr_1): Allow taking address of immediate
      	functions in unevaluated contexts.
      
      	* g++.dg/cpp2a/consteval3.C: Change dg-error about taking address of
      	immediate function in unevaluated contexts into dg-bogus.
      	* g++.dg/cpp2a/consteval16.C: New test.
      Jakub Jelinek committed
    • One more patch for PR93564: Prefer smaller hard regno when we do not honor reg alloc order. · f3ce0886
      2020-02-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/93564
      	* ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
      	do not honor reg alloc order.
      Vladimir N. Makarov committed
    • Fix misleading aarch64 mcpu/march warning string · 349297b6
      The message for conflicting mcpu and march previously printed the
      architecture of the CPU instead of the CPU name, as well as omitting the
      extensions to the march string. This patch corrects both errors. This
      patch fixes PR target/87612.
      
      2020-02-27  Joel Hutton  <Joel.Hutton@arm.com>
      
              PR target/87612
              * config/aarch64/aarch64.c (aarch64_override_options): Fix
              misleading warning string.
      Joel Hutton committed
    • libstdc++: Memoize {drop,drop_while,filter,reverse}_view::begin · a1535015
      This patch adds memoization to these four views so that their begin() has the
      required amortized constant time complexity.
      
      The cache is enabled only for forward_ranges and above because we need the
      underlying iterator to be copyable and multi-pass in order for the cache to be
      usable.  In the general case we represent the cached result of begin() as a bare
      iterator.  This takes advantage of the fact that value-initialized forward
      iterators can be compared to as per N3644, so we can use a value-initialized
      iterator to denote the "empty" state of the cache.
      
      As a special case, when the underlying range models random_access_range and when
      it's profitable size-wise, then we cache the offset of the iterator from the
      beginning of the range instead of caching the iterator itself.
      
      Additionally, in drop_view and reverse_view we disable the cache when the
      underlying range models random_access_range, because in these cases recomputing
      begin() takes O(1) time anyway.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/ranges (__detail::_CachedPosition): New struct.
      	(views::filter_view::_S_needs_cached_begin): New member variable.
      	(views::filter_view::_M_cached_begin): New member variable.
      	(views::filter_view::begin): Use _M_cached_begin to cache its
      	result.
      	(views::drop_view::_S_needs_cached_begin): New static member variable.
      	(views::drop_view::_M_cached_begin): New member variable.
      	(views::drop_view::begin): Use _M_cached_begin to cache its result
      	when _S_needs_cached_begin.
      	(views::drop_while_view::_M_cached_begin): New member variable.
      	(views::drop_while_view::begin): Use _M_cached_begin to cache its
      	result.
      	(views::reverse_view::_S_needs_cached_begin): New static member
      	variable.
      	(views::reverse_view::_M_cached_begin): New member variable.
      	(views::reverse_view::begin): Use _M_cached_begin to cache its result
      	when _S_needs_cached_begin.
      	* testsuite/std/ranges/adaptors/drop.cc: Augment test to check that
      	drop_view::begin caches its result.
      	* testsuite/std/ranges/adaptors/drop_while.cc: Augment test to check
      	that drop_while_view::begin caches its result.
      	* testsuite/std/ranges/adaptors/filter.cc: Augment test to check that
      	filter_view::begin caches its result.
      	* testsuite/std/ranges/adaptors/reverse.cc: Augment test to check that
      	reverse_view::begin caches its result.
      Patrick Palka committed
    • libstdc++: Fix FS-dependent filesystem tests · a51a546c
      These tests were failing on XFS because it doesn't support setting file
      timestamps past 2038, so the expected overflow when reading back a huge
      timestamp into a file_time_type didn't happen.
      
      Additionally, the std::filesystem::file_time_type::clock has an
      epoch that is out of range of 32-bit time_t so testing times around that
      epoch may also fail.
      
      This fixes the tests to give up gracefully if the filesystem doesn't
      support times that can't be represented in 32-bit time_t.
      
      	* testsuite/27_io/filesystem/operations/last_write_time.cc: Fixes for
      	filesystems that silently truncate timestamps.
      	* testsuite/experimental/filesystem/operations/last_write_time.cc:
      	Likewise.
      Jonathan Wakely committed
    • libstdc++: Fix failing test in debug mode · 86e2dc22
      This fixes a failure due to a (correct) warning seen when testing with
      -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_ASSERTIONS:
      
      include/bits/char_traits.h:365: warning: 'void* __builtin_memcpy(void*, const void*, long unsigned int)'
      specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
      
      FAIL: 21_strings/basic_string/cons/char/1.cc (test for excess errors)
      
      	* testsuite/21_strings/basic_string/cons/char/1.cc: Disable
      	-Wstringop-overflow warnings.
      Jonathan Wakely committed
    • Add myself to MAINTAINERS · 4707548e
      2020-02-28  Joel Hutton  <joel.hutton@arm.com>
      
      	* MAINTAINERS (Write After Approval) : Add myself.
      Joel Hutton committed
    • testsuite: Fix up g++.dg/torture/pr92152.C test for ilp32 targets · 5c3489a0
      2020-02-28  Jakub Jelinek  <jakub@redhat.com>
      
      	PR middle-end/92152
      	* g++.dg/torture/pr92152.C (size_t): Use decltype (sizeof (0)) instead
      	of hardcoding unsigned long.
      	(uint64_t): Use unsigned long long instead of unsigned long.
      Jakub Jelinek committed
    • Daily bump. · 8f22ba6d
      GCC Administrator committed