1. 02 Mar, 2020 18 commits
    • libstdc++: Fix std::lexicographic_compare for unsigned char (PR 93972) · d112e173
      The new 25_algorithms/lexicographical_compare/93972.cc test fails on
      targets where char is unsigned, revealing an existing regression with
      the std::__memcmp helper that had gone unnoticed in
      std::lexicographical_compare. When comparing char and unsigned char, the
      memcmp optimisation is enabled, but the new std::__memcmp function fails
      to compile for mismatched types.
      
      	PR libstdc++/93972
      	* include/bits/stl_algobase.h (__memcmp): Allow pointer types to
      	differ.
      	* testsuite/25_algorithms/lexicographical_compare/uchar.cc: New test.
      Jonathan Wakely committed
    • libstdc++: Rename __detail::__maybe_empty_t alias template · 4c391563
      The key property of this alias is not that it may be an empty type, but
      that the type argument may not be used. The fact it's replaced by an
      empty type is just an implementation detail.  The name was also
      backwards with respect to the bool argument.
      
      This patch changes the name to better reflect its purpose.
      
      	* include/std/ranges (__detail::__maybe_empty_t): Rename to
      	__maybe_present_t.
      	(__adaptor::_RangeAdaptor, join_view, split_view): Use new name.
      Jonathan Wakely committed
    • coroutines: Don't make duplicate frame copies of awaitables. · 005530eb
      In general, we need to manage the lifetime of compiler-
      generated awaitable instances in the coroutine frame, since
      these must persist across suspension points.
      
      However, it is quite possible that the user might provide the
      awaitable instances, either as function params or as a local
      variable.  We will already generate a frame entry for these as
      required.
      
      At present, under this circumstance, we are duplicating these,
      awaitable, initialising a second frame copy for them (which we
      then subsequently destroy manually after the suspension point).
      That's not efficient - so an undesirable thinko in the first place.
      However, there is also an actual bug; if the compiler elects to
      elide the copy (which is perfectly legal), it does not have visibility
      of the manual management of the post-suspend destruction
      - this subsequently leads to double-free errors.
      
      The solution is not to make the second copy (as noted, params
      and local vars already have frame copies with managed lifetimes).
      
      gcc/cp/ChangeLog:
      
      2020-03-02  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* coroutines.cc (build_co_await): Do not build frame
      	proxy vars when the co_await expression is a function
      	parameter or local var.
      	(co_await_expander): Do not initialise a frame var with
      	itself.
      	(transform_await_expr): Only substitute the awaitable
      	frame var if it's needed.
      	(register_awaits): Do not make frame copies for param
      	or local vars that are awaitables.
      
      gcc/testsuite/ChangeLog:
      
      2020-03-02  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* g++.dg/coroutines/torture/func-params-09-awaitable-parms.C: New test.
      	* g++.dg/coroutines/torture/local-var-5-awaitable.C: New test.
      Iain Sandoe committed
    • amdgcn: Extend reductions to all types · a5879399
      Add support for V64DFmode addition, and V64DImode min, max.  There's no
      direct hardware support for these, so we use regular vector instructions
      and separate lane shift instructions.
      
      Also add support for V64QI and V64HI reductions. Some of these require
      additional extends and truncates, because AMD GCN has 32-bit vector lanes.
      
      2020-03-02  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (dpp_move<mode>): New.
      	(reduc_insn): Use 'U' and 'B' operand codes.
      	(reduc_<reduc_op>_scal_<mode>): Allow all types.
      	(reduc_<reduc_op>_scal_v64di): Delete.
      	(*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
      	(*plus_carry_dpp_shr_v64si): Change to ...
      	(*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
      	(mov_from_lane63_v64di): Change to ...
      	(mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
      	* config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
      	Support UNSPEC_MOV_DPP_SHR output formats.
      	(gcn_expand_reduc_scalar): Add "use_moves" reductions.
      	Add "use_extends" reductions.
      	(print_operand_address): Add 'I' and 'U' codes.
      	* config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
      Andrew Stubbs committed
    • Fix testsuite regression due to recent IRA changes. · 0ce38183
      	* gcc.target/arm/fuse-caller-save.c: Update expected output.
      Jeff Law committed
    • Fix changelog typo · ac3148a3
      Segher Boessenkool committed
    • libstdc++: Add 'typename' to fix compilation with Clang · 5fad0003
      	* include/bits/ranges_algo.h (shift_right): Add 'typename' to
      	dependent type.
      Jonathan Wakely committed
    • Update comment to reflect optimization. · c9d92a57
      	* gcc.dg/vect/bb-slp-19.c: The comment
      	does not align with fact that we started
      	to SLP the testcase.
      Martin Liska committed
    • Remove duplicate declaration. · 8dd5d8f3
      	* libgcov-interface.c: Remove duplicate
      	declaration of __gcov_flush_mx.
      Martin Liska committed
    • Fix a libiberty testsuite failure · 3bb6abbf
      	* testsuite/demangle-expected: Update expected demangling of
      	enable_if pattern.
      Nick Clifton committed
    • lto: Also copy .note.gnu.property section · 57735060
      When generating the separate file with LTO debug sections, we should
      also copy .note.gnu.property section.
      
      	PR lto/93966
      	* simple-object.c (handle_lto_debug_sections): Also copy
      	.note.gnu.property section.
      H.J. Lu committed
    • Fix typo in C++ standard version. · 917e56a9
      	* lto-wrapper.c: Fix typo in comment about
      	C++ standard version.
      Martin Liska committed
    • [testsuites] Update several scev/IVOPTs cases · 778a7735
      Several scev/IVOPTs cases aim to check some array references are sceved and
      later marked as REFERENCE ADDRESS IV groups. With IV group type dumping
      improving, these check strings can be improved. Otherwise, they become fragile
      with dumping changes.
      
      This patch is to keep check strings concise, meanwhile recover the coverage of
      case scev-8.c.
      
      gcc/testsuite/ChangeLog
      
      2020-03-02  Kewen Lin  <linkw@gcc.gnu.org>
      
        * gcc.dg/tree-ssa/scev-8.c: Revise check string.
        * gcc.dg/tree-ssa/scev-9.c: Ditto.
        * gcc.dg/tree-ssa/scev-10.c: Ditto.
        * gcc.dg/tree-ssa/scev-11.c: Ditto.
        * gcc.dg/tree-ssa/scev-12.c: Ditto.
      Kewen Lin committed
    • PR middle-end/92721 - checking ICE on attribute access redeclaration · 649e1741
      gcc/c-family/ChangeLog:
      
      	PR c++/92721
      	* c-attribs.c (append_access_attrs): Correctly handle attribute.
      	(handle_access_attribute): Same.
      
      gcc/ChangeLog:
      
      	PR c++/92721
      	* calls.c (init_attr_rdwr_indices): Correctly handle attribute.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/92721
      	g++.dg/ext/attr-access.C: New test.
      Martin Sebor committed
    • PR middle-end/93926 - ICE on a built-in redeclaration returning an integer instead of a pointer · 726e292d
      gcc/c/ChangeLog:
      
      	PR middle-end/93926
      	* c-decl.c (types_close_enough_to_match): New function.
      	(match_builtin_function_types):
      	(diagnose_mismatched_decls): Add missing inform call to a warning.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/93926
      	* gcc.dg/Wbuiltin-declaration-mismatch-13.c: New test.
      Martin Sebor committed
    • PR c/93812 - ICE on redeclaration of an attribute format function without protoype · a499c2f8
      gcc/c/ChangeLog:
      
      	PR c/93812
      	* c-typeck.c (build_functype_attribute_variant): New function.
      	(composite_type): Call it.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/93812
      	* gcc.dg/format/proto.c: New test.
      Martin Sebor committed
    • PR middle-end/93829 - bogus -Wstringop-overflow on memcpy of a struct with a… · 1e9369c5
      PR middle-end/93829 - bogus -Wstringop-overflow on memcpy of a struct with a pointer member from another with a long string
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/93829
      	* gcc.dg/Wstringop-overflow-32.c: New test.
      
      gcc/ChangeLog:
      
      	PR middle-end/93829
      	* tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
      	  of a pointer in the outermost ADDR_EXPRs.
      Martin Sebor committed
    • Daily bump. · 750d061d
      GCC Administrator committed
  2. 01 Mar, 2020 10 commits
  3. 29 Feb, 2020 12 commits