and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

This project is mirrored from git://gcc.gnu.org/git/gcc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 26 May, 2020 1 commit
  2. 25 May, 2020 6 commits
    • Jason Merrill's avatar
      testsuite: Support { target c++20 } in tests. · c1eb1c4d
      Jason Merrill authored
      gcc/testsuite/ChangeLog
      2020-05-12  Jason Merrill  <jason@redhat.com>
      
      	* lib/target-supports.exp (check_effective_target_c++20_only)
      	(check_effective_target_c++20): New.
      c1eb1c4d
    • Jason Merrill's avatar
      c++: constexpr and lambda capture [PR90212] · aa613a81
      Jason Merrill authored
      This is the same issue as PR86429, just in potential_constant_expression_1
      rather than cxx_eval_constant_expression.  As in that case, when we're
      trying to evaluate a constant expression within a lambda, we don't have a
      constant closure object to refer to, but we can try to refer directly to the
      captured variable.
      
      gcc/cp/ChangeLog
      2020-05-05  Jason Merrill  <jason@redhat.com>
      
      	PR c++/90212
      	* constexpr.c (potential_constant_expression_1): In a lambda
      	function, consider a captured variable directly.
      aa613a81
    • Jason Merrill's avatar
      c++: Local class DMI using local static [PR90749] · c79e664b
      Jason Merrill authored
      For default member initializers in templates it's important to push into the
      right context during get_nsdmi.  But for a local class that's not possible,
      and trying leaves the function context we need to be in, so don't try.
      
      gcc/cp/ChangeLog
      2020-05-01  Jason Merrill  <jason@redhat.com>
      
      	PR c++/90479
      	* init.c (get_nsdmi): Don't push_to_top_level for a local class.
      c79e664b
    • Jason Merrill's avatar
      c++: -fmerge-all-constants vs. destructors [PR91529] · 01ff88c5
      Jason Merrill authored
      cp_finish_decl avoids setting TREE_READONLY on TREE_STATIC variables that
      have non-constant construction or destruction, but -fmerge-all-constants was
      converting an automatic variable to static while leaving TREE_READONLY set.
      
      Fixed by clearing the flag in cp_finish_decl in the presence of
      -fmerge-all-constants.
      
      gcc/cp/ChangeLog
      2020-05-01  Jason Merrill  <jason@redhat.com>
      
      	PR c++/91529
      	* decl.c (cp_finish_decl): Also clear TREE_READONLY if
      	-fmerge-all-constants.
      01ff88c5
    • Jason Merrill's avatar
      c++: generic lambda and -fsanitize=vla-bound [PR93822] · 4cee8136
      Jason Merrill authored
      Within the generic lambda the VLA capture proxy VAR_DECL has DECL_VALUE_EXPR
      which is a NOP_EXPR to the VLA type of the proxy.  The problem here was that
      when instantiating we were tsubsting that type twice, once for the type of
      the DECL and once for the type of the NOP_EXPR, and getting two
      different (though equivalent) types.  Then gimplify_type_sizes fixed up the
      type of the DECL, but that didn't affect the type of the NOP_EXPR, leading
      to sadness.
      
      Fixed by directly reusing the type from the DECL.
      
      gcc/cp/ChangeLog
      2020-05-01  Jason Merrill  <jason@redhat.com>
      
      	PR c++/93822
      	* pt.c (tsubst_decl): Make sure DECL_VALUE_EXPR continues to have
      	the same type as the variable.
      4cee8136
    • GCC Administrator's avatar
      Daily bump. · ca502d7b
      GCC Administrator authored
      ca502d7b
  3. 24 May, 2020 5 commits
    • Uros Bizjak's avatar
      i386: Fix <rounding_insn><mode>2 expander [PR95255] · 217a2241
      Uros Bizjak authored
      2020-05-24  Uroš Bizjak  <ubizjak@gmail.com>
      
      gcc/ChangeLog:
      	PR target/95255
      	* config/i386/i386.md (<rounding_insn><mode>2): Do not try to
      	expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines.
      
      gcc/testsuite/ChangeLog:
      	PR target/95255
      	* gcc.target/i386/pr95255.c: New test.
      217a2241
    • Iain Sandoe's avatar
      Darwin: Make sanitizer local vars linker-visible. · 25a9db6c
      Iain Sandoe authored
      Another case where we need a linker-visible symbol in order
      to preserve the ld64 atom model.  If these symbols are emitted
      as 'local' the linker cannot see that they are separate from any
      global weak entry that precedes them.  This will cause the linker
      to complain that there is (apparently) direct access to such a
      weak global.
      
      This is a short-term fix for the problem - ideally we need a more
      generic handling for all the relevant cases.
      
      	Backport 804254ed
      
      gcc/ChangeLog:
      
      	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL):
      	Make ubsan_{data,type},ASAN linker-visible.
      25a9db6c
    • H.J. Lu's avatar
      x86: Handle -mavx512vpopcntdq for -march=native · af216f79
      H.J. Lu authored
      Add -mavx512vpopcntdq for -march=native if AVX512VPOPCNTDQ is available.
      
      	PR target/95258
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
      	AVX512VPOPCNTDQ.
      
      (cherry picked from commit 808b611b)
      af216f79
    • Iain Sandoe's avatar
      coroutines: Implicitly movable objects should use move CTORs for co_return. · 135c679c
      Iain Sandoe authored
      This is a case where the standard contains conflicting information.
      after discussion between implementators, the accepted intent is of
      [class.copy.elision].  This amends the handling of co_return statements
      to follow that.
      
      	Backport 5ef067eb and f898793b
      
      gcc/cp/ChangeLog:
      
      	* coroutines.cc (finish_co_return_stmt): Implement rules
      	from [class.copy.elision] /3.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/coroutines/co-return-syntax-10-movable.C: New test.
      135c679c
    • GCC Administrator's avatar
      Daily bump. · 647f3c4a
      GCC Administrator authored
      647f3c4a
  4. 23 May, 2020 3 commits
    • Jonathan Wakely's avatar
      libstdc++: Remove incorrect static specifiers · 415d3cd7
      Jonathan Wakely authored
      These functions were originally static members of the path class, but
      the 'static' specifiers were not removed when they were moved to
      namespace scope. This causes ODR violations when the functions are
      called from functions defined in the header. Change them to 'inline'
      instead.
      
      Backport from mainline
      2020-05-23  Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/bits/fs_path.h (__detail::_S_range_begin)
      	(__detail::_S_range_end): Remove unintentional static specifiers.
      	* include/experimental/bits/fs_path.h (__detail::_S_range_begin)
      	(__detail::_S_range_end): Likewise.
      415d3cd7
    • Jonathan Wakely's avatar
      libstdc++: Fix function that can't be constexpr in C++11 (PR 95289) · 3ba39107
      Jonathan Wakely authored
      The body of this function isn't just a return statement, so it can't be
      constexpr until C++14.
      
      Backport from mainline
      2020-05-23  Jonathan Wakely  <jwakely@redhat.com>
      
      	PR libstdc++/95289
      	* include/debug/helper_functions.h (__get_distance): Only declare
      	as a constexpr function for C++14 and up.
      	* testsuite/25_algorithms/copy/debug/95289.cc: New test.
      3ba39107
    • GCC Administrator's avatar
      Daily bump. · a3e3e25e
      GCC Administrator authored
      a3e3e25e
  5. 22 May, 2020 3 commits
  6. 21 May, 2020 7 commits
    • Uros Bizjak's avatar
      i386: Avoid reversing a non-trapping comparison to a trapping one [PR95169] · ddfb80ad
      Uros Bizjak authored
      2020-05-21  Uroš Bizjak  <ubizjak@gmail.com>
      
      gcc/ChangeLog:
      	PR target/95169
      	* config/i386/i386-expand.c (ix86_expand_int_movcc):
      	 Avoid reversing a non-trapping comparison to a trapping one.
      
      gcc/testsuite/ChangeLog:
      	PR target/95169
      	* gcc.target/i386/pr95169.c: New test.
      ddfb80ad
    • Martin Liska's avatar
      Add outline-atomics to target attribute. · a321683b
      Martin Liska authored
      	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
      	Handle OPT_moutline_atomics.
      	* config/aarch64/aarch64.c: Add outline-atomics to
      	aarch64_attributes.
      
      	* doc/extend.texi: Document the newly added target attribute.
      
      	* gcc.target/aarch64/target_attr_20.c: New test.
      	* gcc.target/aarch64/target_attr_21.c: New test.
      
      (cherry picked from commit 9e02b45f)
      a321683b
    • H.J. Lu's avatar
      libgcc: Move FEATURE_AVX512VP2INTERSECT after FEATURE_AVX512BF16 · 9b7d71fd
      H.J. Lu authored
      Move FEATURE_AVX512VP2INTERSECT after FEATURE_AVX512BF16 to avoid
      changing libgcc ABI.
      
      gcc/
      
      	PR target/95212
      	* config/i386/i386-builtins.c (processor_features): Move
      	F_AVX512VP2INTERSECT after F_AVX512BF16.
      	(isa_names_table): Likewise.
      
      libgcc/
      
      	PR target/95212
      	* config/i386/cpuinfo.h (processor_features): Move
      	FEATURE_AVX512VP2INTERSECT after FEATURE_AVX512BF16.
      
      (cherry picked from commit 5855bdfa)
      9b7d71fd
    • Jonathan Wakely's avatar
      libstdc++: Fix net::basic_socket::close(error_code&) · e3eec8a1
      Jonathan Wakely authored
      Also add some missing member functions, nodiscard attributes, and
      noexcept-specifiers.
      
      Backport from mainline
      2020-05-21  Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/experimental/executor (use_future_t::use_future_t()): Fix
      	incorrect noexcept-specifier.
      	* include/experimental/internet (basic_resolver_results): Adjust
      	whitespace.
      	* include/experimental/socket (__basic_socket_impl::release): Add
      	member function.
      	(basic_socket(io_context&, const endpoint_type&)): Fix argument to
      	target constructor.
      	(basic_socket::release(), basic_socket::release(error_code&)): Add
      	missing member functions.
      	(basic_socket::is_open()): Add nodiscard attribute.
      	(basic_socket::close(error_code&)): Pass argument to base function.
      	(basic_socket_acceptor::release())
      	(basic_socket_acceptor::release(error_code&)): Add missing member
      	functions.
      	(basic_socket_acceptor::is_open()): Add nodiscard attribute.
      	(basic_socket_streambuf::error()): Add noexcept.
      	(basic_socket_iostream::error()): Likewise.
      	* testsuite/experimental/net/socket/basic_socket.cc: New test.
      e3eec8a1
    • Jonathan Wakely's avatar
      libstdc++: Avoid constraint recursion with iterator_traits (PR 93983) · 566ba721
      Jonathan Wakely authored
      Checking whether a filesystem::path constructor argument is an iterator
      requires instantiating std::iterator_traits. In C++20 that checks for
      satisfaction of std::iterator_traits constraints, which checks if the
      type is copyable, which can end up recursing back to the path
      constructor. The fix in LWG 3420 is to reorder the cpp17-iterator
      concept's constraints to check if the type looks vaguely like an
      iterator before checking copyable. That avoids the recursion for types
      which definitely aren't iterators, but isn't foolproof.
      
      Backport from mainline
      2020-05-21  Jonathan Wakely  <jwakely@redhat.com>
      
      	PR libstdc++/93983
      	* include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
      	Reorder constraints to avoid recursion when constructors use
      	iterator_traits (LWG 3420).
      	* testsuite/24_iterators/customization_points/lwg3420.cc: New test.
      566ba721
    • H.J. Lu's avatar
      x86: Update VPCLMULQDQ check · efcf41fc
      H.J. Lu authored
      Update VPCLMULQDQ check to support processors with AVX version of
      VPCLMULQDQ.
      
      	Backport from master
      	PR target/91695
      	* config/i386/cpuinfo.c (get_available_features): Fix VPCLMULQDQ
      	check.
      
      (cherry picked from commit 1e46a443)
      efcf41fc
    • GCC Administrator's avatar
      Daily bump. · b5379031
      GCC Administrator authored
      b5379031
  7. 20 May, 2020 2 commits
    • Mark Eggleston's avatar
      Fortran : ProcPtr function results: 'ppr@' in error message PR39695 · 8358ac9b
      Mark Eggleston authored
      The value 'ppr@' is set in the name of result symbol, the actual
      name of the symbol is in the procedure name symbol pointed
      to by the result symbol's namespace (ns). When reporting errors for
      symbols that have the proc_pointer attribute check whether the
      result attribute is set and set the name accordingly.
      
      Backported from master.
      
      2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>
      
      gcc/fortran/
      
      	PR fortran/39695
      	* resolve.c (resolve_fl_procedure): Set name depending on
      	whether the result attribute is set.  For PROCEDURE/RESULT
      	conflict use the name in sym->ns->proc_name->name.
      	* symbol.c (gfc_add_type): Add check for function and result
      	attributes use sym->ns->proc_name->name if both are set.
      	Where the symbol cannot have a type use the name in
      	sym->ns->proc_name->name.
      
      2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>
      
      gcc/testsuite/
      
      	PR fortran/39695
      	* gfortran.dg/pr39695_1.f90: New test.
      	* gfortran.dg/pr39695_2.f90: New test.
      	* gfortran.dg/pr39695_3.f90: New test.
      	* gfortran.dg/pr39695_4.f90: New test.
      
      	(cherry picked from commit eb069ae8)
      8358ac9b
    • GCC Administrator's avatar
      Daily bump. · 09d89f2b
      GCC Administrator authored
      09d89f2b
  8. 19 May, 2020 4 commits
    • H.J. Lu's avatar
      x86: Add FEATURE_AVX512VP2INTERSECT and update GFNI check · e54fa81e
      H.J. Lu authored
      Add FEATURE_AVX512VP2INTERSECT to libgcc so that enum processor_features
      in libgcc matches enum processor_features in i386-builtins.c.  Update
      GFNI check to support processors with SSE and AVX versions of GFNI.
      
      	Backport from master
      	PR target/95212
      	PR target/95220
      	* config/i386/cpuinfo.c (get_available_features): Fix
      	FEATURE_GFNI check.  Also check FEATURE_AVX512VP2INTERSECT.
      	* config/i386/cpuinfo.h (processor_features): Add
      	FEATURE_AVX512VP2INTERSECT.
      e54fa81e
    • Gerald Pfeifer's avatar
      i386: Define __ILP32__ and _ILP32 for all 32-bit targets · 5ca86398
      Gerald Pfeifer authored
      	* config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
      	__ILP32__ for 32-bit targets.
      5ca86398
    • Tobias Burnus's avatar
      [OpenMP] Fix 'omp exit data' for Fortran arrays (PR 94635) · a7c5803d
      Tobias Burnus authored
              Backport from mainline
              2020-05-15  Tobias Burnus  <tobias@codesourcery.com>
      
      gcc/
      	PR middle-end/94635
      	* gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
      	OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
      	item is 'delete:'.
      
      gcc/testsuite
      	PR middle-end/94635
      	* gfortran.dg/gomp/target-exit-data.f90: New.
      a7c5803d
    • GCC Administrator's avatar
      Daily bump. · ed63feba
      GCC Administrator authored
      ed63feba
  9. 18 May, 2020 4 commits
    • Martin Sebor's avatar
      PR middle-end/94940 - spurious -Warray-bounds for a zero length array member of union · ff61c5bd
      Martin Sebor authored
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/94940
      	* gcc.dg/Warray-bounds-61.c: New test.
      
      gcc/ChangeLog:
      
      	PR middle-end/94940
      	* tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code.
      	* tree.c (component_ref_size): Correct the handling or array members
      	of unions.
      	Drop a pointless test.
      	Rename a local variable.
      ff61c5bd
    • Joseph Myers's avatar
      Update gcc sv.po. · e9bfb06b
      Joseph Myers authored
      	* sv.po: Update.
      e9bfb06b
    • Douglas Rupp's avatar
      Require powerpc_vsx_ok in gcc.target/powerpc/pr71763.c · b761035f
      Douglas Rupp authored
      We're getting an error when running this test on PowerPC VxWorks 7,
      due to an unexpected warning:
      
          | Excess errors:
          | cc1: warning: '-mvsx' and '-mno-altivec' are incompatible
      
      The warning comes from a combination of factors:
        - The test itself uses -mvsx explicitly via the following directive:
             // { dg-options "-O1 -mvsx" }
        - Our toolchain was configured so as to make -mno-altivec
          the default;
        - These two options are mutually exclusive.
      
      This commit adds a powerpc_vsx_ok dg-require-effective-target directive
      to that test, and thus making it UNSUPPORTED instead.
      
      Tested on PowerPC VxWorks 7. Also tested on PowerPC ELF as well,
      a platform where we do not make -mno-altivec the default, to verify
      that the test continues to run as usual in that case.
      
      gcc/testsuite/
      
              * gcc.target/powerpc/pr71763.c: Require powerpc_vsx_ok.
      
      (cherry picked from commit c917584a)
      b761035f
    • GCC Administrator's avatar
      Daily bump. · c70e1174
      GCC Administrator authored
      c70e1174
  10. 17 May, 2020 3 commits
    • Iain Buclaw's avatar
      libphobos: Backport library fixes from mainline · 999c80ac
      Iain Buclaw authored
      - core.cpuid has been fixed to not use i7 detection on AMD processors.
      - std.net.curl has been fixed to correctly handle HTTP/2 status lines.
      - std.zip has had a test fixed to not rely on unzip being installed.
      
      libphobos/ChangeLog:
      
      	PR d/95166
      	* libdruntime/core/cpuid.d (cpuidX86): Do not use i7 detection on AMD
      	processors.
      	(hasCPUID): Fix deprecated asm syntax.
      
      	PR d/95167
      	* src/std/zip.d (unittest): Skip test if unzip is not installed.
      
      	PR d/95168
      	* src/std/net/curl.d (HTTP.onReceiveHeader): Move status line parsing
      	to ...
      	(HTTP.parseStatusLine): ... here.  New function.  Add support for
      	parsing HTTP/2 status lines.
      999c80ac
    • Iain Buclaw's avatar
      d: Fix ICE in verify_gimple_stmt, at tree-cfg.c:4959 · 79f2ae6e
      Iain Buclaw authored
      Both array concat and array new expressions wrapped any temporaries
      created into a BIND_EXPR.  This does not work if an expression used to
      construct the result requires scope destruction, which is represented by
      a TARGET_EXPR with a clean-up, and a CLEANUP_POINT_EXPR at the
      location where the temporaries logically go out of scope.  The reason
      for this not working is because the lowering of cleanup point
      expressions does not traverse inside BIND_EXPRs to expand any gimple
      cleanup expressions within.
      
      The use of creating BIND_EXPR has been removed at both locations, and
      replaced with a normal temporary variable that has initialization
      delayed until its address is taken.
      
      gcc/d/ChangeLog:
      
      	PR d/94970
      	* d-codegen.cc (force_target_expr): Move create_temporary_var
      	implementation inline here.
      	(create_temporary_var): Remove.
      	(maybe_temporary_var): Remove.
      	(bind_expr): Remove.
      	* d-convert.cc (d_array_convert): Use build_local_temp to generate
      	temporaries, and generate its assignment.
      	* d-tree.h (create_temporary_var): Remove.
      	(maybe_temporary_var): Remove.
      	(d_array_convert): Remove vars argument.
      	* expr.cc (ExprVisitor::visit (CatExp *)): Use build_local_temp to
      	generate temporaries, don't wrap them in a BIND_EXPR.
      	(ExprVisitor::visit (NewExp *)): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	PR d/94970
      	* gdc.dg/pr94970.d: New test.
      79f2ae6e
    • GCC Administrator's avatar
      Daily bump. · bc709bc9
      GCC Administrator authored
      bc709bc9
  11. 16 May, 2020 1 commit
  12. 15 May, 2020 1 commit