Skip to content
Snippets Groups Projects
  1. Mar 06, 2025
    • rdubner's avatar
    • rdubner's avatar
    • Jakub Jelinek's avatar
      testsuite: Add test for already fixed PR [PR104826] · 49ac89e0
      Jakub Jelinek authored
      ICE on this test was fixed by r15-2131.  This just adds test for it.
      
      2025-03-06  Jakub Jelinek  <jakub@redhat.com>
      
      	PR fortran/104826
      	* gfortran.dg/gomp/pr104826.f90: New test.
      49ac89e0
    • Jonathan Wakely's avatar
      libstdc++: Add assertions to std::list::pop_{front,back} · 4412e9bb
      Jonathan Wakely authored
      
      The recently-approved Standard Library Hardening proposal (P3471R4)
      gives pop_front and pop_back member functions hardened preconditions,
      but std::list was missing assertions on them. Our other sequence
      containers do have assertions on those members.
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/stl_list.h (list::pop_front, list::pop_back):
      	Add non-empty assertions.
      
      Reviewed-by: default avatarPatrick Palka <ppalka@redhat.com>
      Unverified
      4412e9bb
    • Jonathan Wakely's avatar
      libstdc++: Ensure <bits/ranges_util.h> defines __pair_like · 88a521cc
      Jonathan Wakely authored
      
      We need to include <bits/stl_pair.h> in C++23 and later, so that
      __pair_like_convertible_from can use __pair_like, and so that
      __is_tuple_like_v is declared before we define a partial specialization.
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/ranges_util.h: Include <bits/stl_pair.h>.
      
      Reviewed-by: default avatarPatrick Palka <ppalka@redhat.com>
      Unverified
      88a521cc
    • Jonathan Wakely's avatar
      libstdc++: Remove redundant std::span destructor · 21c96f68
      Jonathan Wakely authored
      
      This destructor declaration serves no purpose, as pointed out by LWG
      3903 which was approved at Varna, June 2023.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/span (span::~span): Remove, as per LWG 3903.
      
      Reviewed-by: default avatarPatrick Palka <ppalka@redhat.com>
      Unverified
      21c96f68
    • Jonathan Wakely's avatar
      libstdc++: Fix failures in new std::complex test [PR119144] · d2b022e3
      Jonathan Wakely authored
      This test fails due to duplicate explicit instantiations on targets
      where size_t and unsigned int are the same type. It also fails with
      -D_GLIBCXX_USE_CXX11_ABI=0 due to using std::string in constexpr
      functions, and with --disable-libstdcxx-pch due to not including
      <algorithm> for ranges::fold_left.
      
      libstdc++-v3/ChangeLog:
      
      	PR libstdc++/119144
      	* testsuite/26_numerics/complex/tuple_like.cc: Include
      	<algorithm>, replace std::string with std::string_view,
      	instantiate tests for long instead of size_t.
      Unverified
      d2b022e3
    • James K. Lowden's avatar
    • Richard Sandiford's avatar
      2c6ab4c4
    • Richard Biener's avatar
      lto/114501 - missed free-lang-data for CONSTRUCTOR index · fdd95e1c
      Richard Biener authored
      The following makes sure to also walk CONSTRUCTOR element indexes
      which can be FIELD_DECLs, referencing otherwise unused types we
      need to clean.  walk_tree only walks CONSTRUCTOR element data.
      
      	PR lto/114501
      	* ipa-free-lang-data.cc (find_decls_types_r): Explicitly
      	handle CONSTRUCTORs as walk_tree handling of those is
      	incomplete.
      
      	* g++.dg/pr114501_0.C: New testcase.
      fdd95e1c
    • Jonathan Wakely's avatar
      Fix 'libstdc++-v3/src/c++20/tzdb.cc' build for '__GTHREADS && !__GTHREADS_CXX0X' configurations · 78093262
      Jonathan Wakely authored
      
      	libstdc++-v3/
      	* src/c++20/tzdb.cc [__GTHREADS && !__GTHREADS_CXX0X]: Use
      	'__gnu_cxx::__mutex'.
      
      Co-authored-by: default avatarThomas Schwinge <tschwinge@baylibre.com>
      78093262
    • Thomas Schwinge's avatar
      libstdc++: Avoid '-Wunused-parameter' for 'out' in member function... · bf07f9a9
      Thomas Schwinge authored
      libstdc++: Avoid '-Wunused-parameter' for 'out' in member function 'std::codecvt_base::result std::__format::{anonymous}::__encoding::conv(std::string_view, std::string&) const'
      
      In a newlib configuration:
      
          ../../../../../source-gcc/libstdc++-v3/src/c++20/format.cc: In member function ‘std::codecvt_base::result std::__format::{anonymous}::__encoding::conv(std::string_view, std::string&) const’:
          ../../../../../source-gcc/libstdc++-v3/src/c++20/format.cc:100:35: error: unused parameter ‘out’ [-Werror=unused-parameter]
            100 |   conv(string_view input, string& out) const
                |                           ~~~~~~~~^~~
      
      	libstdc++-v3/
      	* src/c++20/format.cc (conv): Tag 'out' as '[[maybe_unused]]'.
      bf07f9a9
    • Thomas Schwinge's avatar
      libstdc++: Avoid '-Wunused-parameter' for 'is_directory' in member function... · b122afef
      Thomas Schwinge authored
      libstdc++: Avoid '-Wunused-parameter' for 'is_directory' in member function 'bool std::filesystem::__cxx11::_Dir::do_unlink(bool, std::error_code&) const'
      
      In a newlib configuration:
      
          ../../../../../source-gcc/libstdc++-v3/src/c++17/fs_dir.cc: In member function ‘bool std::filesystem::__cxx11::_Dir::do_unlink(bool, std::error_code&) const’:
          ../../../../../source-gcc/libstdc++-v3/src/c++17/fs_dir.cc:147:18: error: unused parameter ‘is_directory’ [-Werror=unused-parameter]
            147 |   do_unlink(bool is_directory, error_code& ec) const noexcept
                |             ~~~~~^~~~~~~~~~~~
      
      	libstdc++-v3/
      	* src/c++17/fs_dir.cc (do_unlink): Tag 'is_directory' as
      	'[[maybe_unused]]'.
      b122afef
    • Thomas Schwinge's avatar
      libstdc++: Avoid '-Wunused-parameter' for 'nofollow' in static member function... · 5029c4bd
      Thomas Schwinge authored
      libstdc++: Avoid '-Wunused-parameter' for 'nofollow' in static member function 'static std::filesystem::__gnu_posix::DIR* std::filesystem::_Dir_base::openat(const _At_path&, bool)'
      
      In a newlib configuration:
      
          In file included from ../../../../../source-gcc/libstdc++-v3/src/c++17/fs_dir.cc:37,
                           from ../../../../../source-gcc/libstdc++-v3/src/c++17/cow-fs_dir.cc:26:
          ../../../../../source-gcc/libstdc++-v3/src/c++17/../filesystem/dir-common.h: In static member function ‘static std::filesystem::__gnu_posix::DIR* std::filesystem::_Dir_base::openat(const _At_path&, bool)’:
          ../../../../../source-gcc/libstdc++-v3/src/c++17/../filesystem/dir-common.h:210:36: error: unused parameter ‘nofollow’ [-Werror=unused-parameter]
            210 |   openat(const _At_path& atp, bool nofollow)
                |                               ~~~~~^~~~~~~~
      
      	libstdc++-v3/
      	* src/filesystem/dir-common.h (openat): Tag 'nofollow' as
      	'[[maybe_unused]]'.
      5029c4bd
    • Thomas Schwinge's avatar
      libstdc++: Avoid '-Wunused-parameter' for '__what' in function 'void... · d87c0d54
      Thomas Schwinge authored
      libstdc++: Avoid '-Wunused-parameter' for '__what' in function 'void std::__throw_format_error(const char*)'
      
      In a '-fno-exceptions' configuration:
      
          In file included from ../../../../../source-gcc/libstdc++-v3/src/c++20/format.cc:29:
          [...]/build-gcc/[...]/libstdc++-v3/include/format: In function ‘void std::__throw_format_error(const char*)’:
          [...]/build-gcc/[...]/libstdc++-v3/include/format:200:36: error: unused parameter ‘__what’ [-Werror=unused-parameter]
            200 |   __throw_format_error(const char* __what)
                |                        ~~~~~~~~~~~~^~~~~~
      
      	libstdc++-v3/
      	* include/bits/c++config [!__cpp_exceptions]
      	(_GLIBCXX_THROW_OR_ABORT): Reference '_EXC'.
      
      Co-authored-by: default avatarJonathan Wakely <jwakely@redhat.com>
      d87c0d54
    • Jonathan Wakely's avatar
      libstdc++: Fix constexpr memory algo tests for COW std::string · 6eede5ad
      Jonathan Wakely authored
      
      The old COW std::string is not usable in constant expressions, so these
      new tests fail with -D_GLIBCXX_USE_CXX11_ABI=0.
      
      The parts of the tests using std::string can be conditionally skipped.
      
      libstdc++-v3/ChangeLog:
      
      	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc:
      	Do not test COW std::string in constexpr contexts.
      	* testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc:
      	Likewise.
      	* testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc:
      	Likewise.
      	* testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc:
      	Likewise.
      	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc:
      	Likewise.
      
      Reviewed-by: default avatarGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>
      Unverified
      6eede5ad
    • Alex Coplan's avatar
      pair-fusion: Add singleton move_range asserts [PR114492] · d6d7da92
      Alex Coplan authored
      The PR claims that pair-fusion has invalid uses of gcc_assert (such that
      the pass will misbehave with --disable-checking).  As noted in the
      comments, in the case of the calls to restrict_movement, the only way we
      can possibly depend on the side effects is if we call it with a
      non-singleton move range.  However, the intent is that we always have a
      singleton move range here, and thus we do not rely on the side effects.
      
      This patch therefore adds asserts to check for a singleton move range
      before calling restrict_movement, thus clarifying the intent and
      hopefully dispelling any concerns that having the calls wrapped in
      asserts is problematic here.
      
      gcc/ChangeLog:
      
      	PR rtl-optimization/114492
      	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Check for singleton
      	move range before calling restrict_movement.
      	(pair_fusion::try_promote_writeback): Likewise.
      d6d7da92
    • Giuseppe D'Angelo's avatar
      libstdc++: implement tuple protocol for std::complex (P2819R2) · de231924
      Giuseppe D'Angelo authored
      This commit implements P2819R2 for C++26, making std::complex
      destructurable and tuple-like (see [complex.tuple]).
      
      std::get needs to get forward declared in stl_pair.h (following the
      existing precedent for the implementation of P2165R4, cf.
      r14-8710-g65b4cba9d6a9ff), and implemented in <complex>.
      
      Also, std::get(complex<T>) needs to return *references* to the real and
      imaginary parts of a std::complex object, honoring the value category
      and constness of the argument. In principle a straightforward task, it
      gets a bit convoluted by the fact that:
      
      1) std::complex does not have existing getters that one can use for this
      (real() and imag() return values, not references);
      
      2) there are specializations for language/extended floating-point types,
      which requires some duplication -- need to amend the primary and all
      the specializations;
      
      3) these specializations use a `__complex__ T`, but the primary template
      uses two non-static data members, making generic code harder to write.
      
      The implementation choice used here is to add the overloads of std::get
      for complex as declared in [complex.tuple]. In turn they dispatch to a
      newly added getter that extracts references to the real/imaginary parts
      of a complex<T>. This getter is private API, and the implementation
      depends on whether it's the primary (bind the data member) or a
      specialization (use the GCC language extensions for __complex__).
      To avoid duplication and minimize template instantiations, the getter
      uses C++23's deducing this (this avoids const overloads). The value
      category is dealt with by the std::get overloads.
      
      Add a test that covers the aspects of the tuple protocol, as well as the
      tuple-like interface. While at it, add a test for the existing
      tuple-like feature-testing macro.
      
      	PR libstdc++/113310
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/stl_pair.h (get): Forward-declare std::get for
      	std::complex.
      	* include/bits/version.def (tuple_like): Bump the value of
      	the feature-testing macro in C++26.
      	* include/bits/version.h: Regenerate.
      	* include/std/complex: Implement the tuple protocol for
      	std::complex.
      	(tuple_size): Specialize for std::complex.
      	(tuple_element): Ditto.
      	(__is_tuple_like_v): Ditto.
      	(complex): Add a private getter to obtain references to the real
      	and the imaginary part, on the primary class template and on its
      	specializations.
      	(get): Add overloads of std::get for std::complex.
      	* testsuite/20_util/tuple/tuple_like_ftm.cc: New test.
      	* testsuite/26_numerics/complex/tuple_like.cc: New test.
      de231924
    • Richard Sandiford's avatar
      ira: Add new hooks for callee-save vs spills [PR117477] · e836d803
      Richard Sandiford authored
      Following on from the discussion in:
      
        https://gcc.gnu.org/pipermail/gcc-patches/2025-February/675256.html
      
      
      
      this patch removes TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE and
      replaces it with two hooks: one that controls the cost of using an
      extra callee-saved register and one that controls the cost of allocating
      a frame for the first spill.
      
      (The patch does not attempt to address the shrink-wrapping part of
      the thread above.)
      
      On AArch64, this is enough to fix PR117477, as verified by the new tests.
      The patch does not change the SPEC2017 scores significantly.  (I saw a
      slight improvement in fotonik3d and roms, but I'm not convinced that
      the improvements are real.)
      
      The patch makes IRA use caller saves for gcc.target/aarch64/pr103350-1.c,
      which is a scan-dump correctness test that relies on not using
      caller saves.  The decision to use caller saves looks appropriate,
      and saves an instruction, so I've just added -fno-caller-saves
      to the test options.
      
      The x86 parts were written by Honza.
      
      gcc/
      	PR rtl-optimization/117477
      	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
      	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
      	(aarch64_frame_allocation_cost): Likewise.
      	(TARGET_CALLEE_SAVE_COST): Define.
      	(TARGET_FRAME_ALLOCATION_COST): Likewise.
      	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
      	Replace with...
      	(ix86_callee_save_cost): ...this new hook.
      	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
      	(TARGET_CALLEE_SAVE_COST): Define.
      	* target.h (spill_cost_type, frame_cost_type): New enums.
      	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
      	(ira_callee_saved_register_cost_scale): Delete.
      	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
      	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
      	* doc/tm.texi: Regenerate.
      	* hard-reg-set.h (hard_reg_set_popcount): New function.
      	* ira-color.cc (allocated_memory_p): New variable.
      	(allocated_callee_save_regs): Likewise.
      	(record_allocation): New function.
      	(assign_hard_reg): Use targetm.frame_allocation_cost to model
      	the cost of the first spill or first caller save.  Use
      	targetm.callee_save_cost to model the cost of using new callee-saved
      	registers.  Apply the exit rather than entry frequency to the cost
      	of restoring a register or deallocating the frame.  Update the
      	new variables above.
      	(improve_allocation): Use record_allocation.
      	(color): Initialize allocated_callee_save_regs.
      	(ira_color): Initialize allocated_memory_p.
      	* targhooks.h (default_callee_save_cost): Declare.
      	(default_frame_allocation_cost): Likewise.
      	* targhooks.cc (default_callee_save_cost): New function.
      	(default_frame_allocation_cost): Likewise.
      
      gcc/testsuite/
      	PR rtl-optimization/117477
      	* gcc.target/aarch64/callee_save_1.c: New test.
      	* gcc.target/aarch64/callee_save_2.c: Likewise.
      	* gcc.target/aarch64/callee_save_3.c: Likewise.
      	* gcc.target/aarch64/pr103350-1.c: Add -fno-caller-saves.
      
      Co-authored-by: default avatarJan Hubicka <hubicka@ucw.cz>
      e836d803
    • Michal Jires's avatar
      lto: Fix missing cleanup with incremental LTO. · 50cd9979
      Michal Jires authored
      Incremental LTO disabled cleanup of output_files since they have to
      persist in ltrans cache.
      This unintetionally also kept temporary early debug "*.debug.temp.o"
      files.
      
      Bootstrapped/regtested on x86_64-linux.
      Ok for trunk?
      
      lto-plugin/ChangeLog:
      
      	* lto-plugin.c (cleanup_handler): Keep only files in ltrans
      	cache.
      50cd9979
    • Richard Biener's avatar
      middle-end/119119 - re-gimplification of empty CTOR assignments · 3bd61c1d
      Richard Biener authored
      The following testcase runs into a re-gimplification issue during
      inlining when processing
      
        MEM[(struct e *)this_2(D)].a = {};
      
      where re-gimplification does not handle assignments in the same
      way than the gimplifier but instead relies on rhs_predicate_for
      and gimplifying the RHS standalone.  This fails to handle
      special-casing of CTORs.  The is_gimple_mem_rhs_or_call predicate
      already handles clobbers but not empty CTORs so we end up in
      the fallback code trying to force the CTOR into a separate stmt
      using a temporary - but as we have a non-copyable type here that ICEs.
      
      The following generalizes empty CTORs in is_gimple_mem_rhs_or_call
      since those need no additional re-gimplification.
      
      	PR middle-end/119119
      	* gimplify.cc (is_gimple_mem_rhs_or_call): All empty CTORs
      	are OK when not a register type.
      
      	* g++.dg/torture/pr11911.C: New testcase.
      3bd61c1d
    • Simon Martin's avatar
      c++: Don't replace INDIRECT_REFs by a const capture proxy too eagerly [PR117504] · fdf846fd
      Simon Martin authored
      We have been miscompiling the following valid code since GCC8, and
      r8-3497-g281e6c1d8f1b4c
      
      === cut here ===
      struct span {
        span (const int (&__first)[1]) : _M_ptr (__first) {}
        int operator[] (long __i) { return _M_ptr[__i]; }
        const int *_M_ptr;
      };
      void foo () {
        constexpr int a_vec[]{1};
        auto vec{[&a_vec]() -> span { return a_vec; }()};
      }
      === cut here ===
      
      The problem is that perform_implicit_conversion_flags (via
      mark_rvalue_use) replaces "a_vec" in the return statement by a
      CONSTRUCTOR representing a_vec's constant value, and then takes its
      address when invoking span's constructor. So we end up with an instance
      that points to garbage instead of a_vec's storage.
      
      As per Jason's suggestion, this patch simply removes the calls to
      mark_*_use from perform_implicit_conversion_flags, which fixes the PR.
      
      	PR c++/117504
      
      gcc/cp/ChangeLog:
      
      	* call.cc (perform_implicit_conversion_flags): Don't call
      	mark_{l,r}value_use.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/constexpr-117504.C: New test.
      	* g++.dg/cpp2a/constexpr-117504a.C: New test.
      fdf846fd
    • Pan Li's avatar
      RISC-V: Tweak asm check for test case multiple_rgroup_zbb.c · 0aa9b079
      Pan Li authored
      
      The changes to vsetvl pass since 14 result in the asm check failure,
      update the asm check to meet the newest behavior.
      
      The below test suites are passed for this patch.
      * The rv64gcv fully regression test.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_zbb.c: Tweak
      	the asm check for vsetvl.
      
      Signed-off-by: default avatarPan Li <pan2.li@intel.com>
      0aa9b079
    • Jeff Law's avatar
      Improve coverage of ext-dce tests in risc-v testsuite · 316eaca1
      Jeff Law authored
      Inspired by Liao Shihua, this adjusts two tests in the RISC-V testsuite
      to get more coverage.  Drop the -O1 argument and replace it with -fext-dce.
      That way the test gets run across the full set of flags.  We just need to
      make sure to skip -O0.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/riscv/core_list_init.c: Use -fext-dce rather than
      	-O1.  Skip for -O0.
      	* gcc.target/riscv/pr111384.c: Ditto.
      316eaca1
    • GCC Administrator's avatar
      Daily bump. · da8aaa77
      GCC Administrator authored
      da8aaa77
    • rdubner's avatar
    • rdubner's avatar
      Change mangler to use '$' in place of '-' · 942874bd
      rdubner authored
      When creating contained program-ids, I simply couldn't figure out how to stop the
      middle end from the name of the contained program through the name mangler twice.
      
      So, instead of using an uppercase 'X' as the substitute for a hyphen, I switched
      to a '$', which is not part of the allowed COBOL character set for identifier
      names.
      942874bd
  2. Mar 05, 2025
    • Gaius Mulley's avatar
      PR modula2/118998 Rotate of a packetset causes different types to binary operator error · 1b43154b
      Gaius Mulley authored
      
      This patch allow a packedset to be rotated by the system module intrinsic
      procedure function.  It ensures that both operands to the tree rotate are
      of the same type.  In turn the result will be the same type and the
      assignment into the designator (of the same set type) will succeed.
      
      gcc/m2/ChangeLog:
      
      	PR modula2/118998
      	* gm2-gcc/m2expr.cc (m2expr_BuildLRotate): Convert nBits
      	to the return type.
      	(m2expr_BuildRRotate): Ditto.
      	(m2expr_BuildLogicalRotate): Convert op3 to an integer type.
      	Replace op3 aith rotateCount.
      	Negate rotateCount if it is negative and call rotate right.
      	* gm2-gcc/m2pp.cc (m2pp_bit_and_expr): New function.
      	(m2pp_binary_function): Ditto.
      	(m2pp_simple_expression): BIT_AND_EXPR new case clause.
      	LROTATE_EXPR ditto.
      	RROTATE_EXPR ditto.
      
      gcc/testsuite/ChangeLog:
      
      	PR modula2/118998
      	* gm2/iso/pass/testrotate.mod: New test.
      	* gm2/pim/fail/tinyconst.mod: New test.
      	* gm2/sets/run/pass/simplepacked.mod: New test.
      
      Signed-off-by: default avatarGaius Mulley <gaiusmod2@gmail.com>
      1b43154b
    • Jonathan Wakely's avatar
      libstdc++: Make enumerate_view::iterator::operator- noexcept · c7449f1b
      Jonathan Wakely authored
      Implement LWG 3912, approved in Varna, June 2023.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/ranges (enumerate_view::_Iterator::operator-):
      	Add noexcept, as per LWG 3912.
      	* testsuite/std/ranges/adaptors/enumerate/1.cc: Check iterator
      	difference is noexcept.
      Unverified
      c7449f1b
    • yxj-github-437's avatar
      libstdc++: fix possible undefined std::timespec in module std · a08a5bc4
      yxj-github-437 authored
      I notice std::timespec and std::timespec_get are used in preprocessor
      condition _GLIBCXX_HAVE_TIMESPEC_GET. So in module std, it should be
      the same.
      
      libstdc++-v3:
      
      	* src/c++23/std-clib.cc.in (timespec): Move within preprocessor
      	group guarded by _GLIBCXX_HAVE_TIMESPEC_GET.
      Unverified
      a08a5bc4
    • Jonathan Wakely's avatar
      libstdc++: Move new functions to separate files [PR119110] · c21d5a35
      Jonathan Wakely authored
      The new test functions I added in r15-7765-g3866ca796d5281 are causing
      those tests to FAIL on Solaris and arm-thumb due to the linker
      complaining about undefined functions.  The new test functions are not
      called, so it shouldn't matter that they call undefined member
      functions, but it does.
      
      Move those functions to separate { dg-do compile } files so the linker
      isn't used and won't complain.
      
      libstdc++-v3/ChangeLog:
      
      	PR libstdc++/119110
      	* testsuite/25_algorithms/move/constrained.cc: Move test06
      	function to ...
      	* testsuite/25_algorithms/move/105609.cc: New test.
      	* testsuite/25_algorithms/move_backward/constrained.cc: Move
      	test04 function to ...
      	* testsuite/25_algorithms/move_backward/105609.cc: New test.
      Unverified
      c21d5a35
    • Mark Wielaard's avatar
      Regenerate fortran/lang.opt.urls · 3c02d195
      Mark Wielaard authored
      fortran added a new -Wexternal-argument-mismatch option, but the
      lang.opt.urls file wasn't regenerated.
      
      Fixes: 21ca9153 ("C prototypes for external arguments; add warning for mismatch.")
      
      gcc/fortran/ChangeLog:
      
      	* lang.opt.urls: Regenerated.
      3c02d195
    • Patrick Palka's avatar
      libstdc++: Implement P3138R5 views::cache_latest · 410a4c12
      Patrick Palka authored
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/version.def (ranges_cache_latest): Define.
      	* include/bits/version.h: Regenerate.
      	* include/std/ranges (__detail::__non_propagating_cache::_M_reset):
      	Export from base class _Optional_base.
      	(cache_latest_view): Define for C++26.
      	(cache_latest_view::_Iterator): Likewise.
      	(cache_latest_view::_Sentinel): Likewise.
      	(views::__detail::__can_cache_latest): Likewise.
      	(views::_CacheLatest, views::cache_latest): Likewise.
      	* testsuite/std/ranges/adaptors/cache_latest/1.cc: New test.
      
      Reviewed-by: default avatarJonathan Wakely <jwakely@redhat.com>
      410a4c12
    • rdubner's avatar
    • Marek Polacek's avatar
      c++: disable -Wnonnull in unevaluated context [PR115580] · 459c8a55
      Marek Polacek authored
      
      This PR complains that we issue a -Wnonnull even in a decltype.
      This fix disables even -Wformat and -Wrestrict.  I think that's fine.
      
      	PR c++/115580
      
      gcc/c-family/ChangeLog:
      
      	* c-common.cc (check_function_arguments): Return early if
      	c_inhibit_evaluation_warnings.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/warn/Wnonnull16.C: New test.
      
      Reviewed-by: default avatarJason Merrill <jason@redhat.com>
      459c8a55
    • James K. Lowden's avatar
      3316660a
    • rdubner's avatar
      7020631e
    • Giuseppe D'Angelo's avatar
      libstdc++: use if consteval in stable_sort · 24ea4539
      Giuseppe D'Angelo authored
      
      This is a C++ >= 26 codepath for supporting constexpr stable_sort, so we
      know that we have if consteval available; it just needs protection with
      the feature-testing macro. Also merge the return in the same statement.
      Amends r15-7708-gff43f9853d3b10.
      
      libstdc++-v3/ChangeLog:
      
      	* include/bits/stl_algo.h (__stable_sort): Use if consteval
      	instead of is_constant_evaluated.
      
      Reviewed-by: default avatarJonathan Wakely <jwakely@redhat.com>
      24ea4539
    • Jason Merrill's avatar
      c++: coroutines and return in registers [PR118874] · 7e576d5b
      Jason Merrill authored
      
      Because coroutines insert a call to the resumer between the initialization
      of the return value and the actual return to the caller, we need to
      duplicate the work of gimplify_return_expr for the !aggregate_value_p case.
      
      	PR c++/117364
      	PR c++/118874
      
      gcc/cp/ChangeLog:
      
      	* coroutines.cc (cp_coroutine_transform::build_ramp_function): For
      	!aggregate_value_p return force return value into a local temp.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/coroutines/torture/pr118874.C: New test.
      
      Co-authored-by: default avatarJakub Jelinek <jakub@redhat.com>
      7e576d5b
    • rdubner's avatar
Loading