diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference17.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference17.C index 223698422c2ce10a12ddbbf22d657760da11a6c4..8cda5dea4447cb5a15f417dbe8e5259542b09dfb 100644 --- a/gcc/testsuite/g++.dg/warn/Wdangling-reference17.C +++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference17.C @@ -4,6 +4,7 @@ #include <vector> #include <ranges> +#include <span> int main() { @@ -12,4 +13,15 @@ int main() { (void) i; } + + // From c++/109642. + const auto vec = std::vector{ 1, 2, 3 }; + const auto s = std::span<decltype(vec)::value_type const>{vec}; + + for ([[maybe_unused]] auto _ : s | std::views::take(2)) { } + + for ([[maybe_unused]] auto _ : vec | std::views::take(2)) { } + + const auto s_view = s | std::views::take(2); + for ([[maybe_unused]] auto _ : s_view) { } }