https://gcc.gnu.org/g:60105915314a9ad11b213c6edb10697b3cafdee5
commit 60105915314a9ad11b213c6edb10697b3cafdee5 Author: Thomas Schwinge <[email protected]> Date: Tue Apr 14 02:06:13 2026 +0000 XFAIL 'libgomp.c++/target-flex-{300,60,61,62,81}.C' ... which run into: [...]/libgomp.c++/target-flex-300.C: In function 'bool test(std::size_t)': [...]/libgomp.c++/target-flex-300.C:25:11: sorry, unimplemented: unsupported map expression '<lambda closure object>test(std::size_t)::<lambda(int)>()' ... etc., due to other OG15 changes. Specifically, the "sorry" in gimplify_adjust_omp_clauses was added by the patch "OpenMP: Support strided and shaped-array updates for C++". Also temporarily restrict these tests to compile-only to avoid an UNRESOLVED on the test execution. libgomp/ * testsuite/libgomp.c++/target-flex-300.C: XFAIL. * testsuite/libgomp.c++/target-flex-60.C: Likewise. * testsuite/libgomp.c++/target-flex-61.C: Likewise. * testsuite/libgomp.c++/target-flex-62.C: Likewise. * testsuite/libgomp.c++/target-flex-81.C: Likewise. Co-Authored-By: Sandra Loosemore <[email protected]> Diff: --- libgomp/testsuite/libgomp.c++/target-flex-300.C | 6 ++++++ libgomp/testsuite/libgomp.c++/target-flex-60.C | 6 ++++++ libgomp/testsuite/libgomp.c++/target-flex-61.C | 6 ++++++ libgomp/testsuite/libgomp.c++/target-flex-62.C | 6 ++++++ libgomp/testsuite/libgomp.c++/target-flex-81.C | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/libgomp/testsuite/libgomp.c++/target-flex-300.C b/libgomp/testsuite/libgomp.c++/target-flex-300.C index ecfd8cb108a4..b5c459de889d 100644 --- a/libgomp/testsuite/libgomp.c++/target-flex-300.C +++ b/libgomp/testsuite/libgomp.c++/target-flex-300.C @@ -1,5 +1,9 @@ /* { dg-additional-options -std=c++23 } */ +/* FIXME: See XFAIL below. Until this is fixed, this test won't compile + and will result in a bogus UNRESOLVED. */ +/* { dg-do compile } */ + /* numerics */ #include <algorithm> @@ -23,6 +27,8 @@ bool test(std::size_t arg) int *data = vec.data(); std::size_t size = vec.size(); #pragma omp target defaultmap(none) map(from: ok, midpoint_out) map(tofrom: data[ :size]) map(to: arg, size) + /* <https://baylibre.slack.com/archives/C06TTV7HMMG/p1748508583437829> + { dg-bogus {sorry, unimplemented: unsupported map expression '<lambda closure object>.*} TODO { xfail *-*-* } .-2 } */ { std::span span = {data, size}; bool inner_ok = true; diff --git a/libgomp/testsuite/libgomp.c++/target-flex-60.C b/libgomp/testsuite/libgomp.c++/target-flex-60.C index 7e1bf96c8d17..782d91a17d0e 100644 --- a/libgomp/testsuite/libgomp.c++/target-flex-60.C +++ b/libgomp/testsuite/libgomp.c++/target-flex-60.C @@ -1,5 +1,9 @@ /* algorithms pre c++20 */ +/* FIXME: See XFAIL below. Until this is fixed, this test won't compile + and will result in a bogus UNRESOLVED. */ +/* { dg-do compile } */ + #include <algorithm> #include <vector> @@ -13,6 +17,8 @@ bool test(const T (&arr)[Size]) T out_shifted_arr[Size]; #pragma omp target map(from: ok, out_2x_arr[ :Size], out_shifted_arr[ :Size]) \ map(to: arr[ :Size]) + /* <https://baylibre.slack.com/archives/C06TTV7HMMG/p1748508583437829> + { dg-bogus {sorry, unimplemented: unsupported map expression '<lambda closure object>.*} TODO { xfail *-*-* } .-3 } */ { std::vector<T> vec(Size); std::vector<T> mutated(Size); diff --git a/libgomp/testsuite/libgomp.c++/target-flex-61.C b/libgomp/testsuite/libgomp.c++/target-flex-61.C index 551679f65fb0..d67b4c56070a 100644 --- a/libgomp/testsuite/libgomp.c++/target-flex-61.C +++ b/libgomp/testsuite/libgomp.c++/target-flex-61.C @@ -1,5 +1,9 @@ /* { dg-additional-options "-std=c++20" } */ +/* FIXME: See XFAIL below. Until this is fixed, this test won't compile + and will result in a bogus UNRESOLVED. */ +/* { dg-do compile } */ + /* ranged algorithms c++20 */ #include <algorithm> @@ -22,6 +26,8 @@ bool test(const T (&arr)[Size]) #pragma omp target defaultmap(none) \ map(from: ok, out_2x_arr[ :Size], out_shifted_arr[ :Size]) \ map(to: arr[ :Size]) + /* <https://baylibre.slack.com/archives/C06TTV7HMMG/p1748508583437829> + { dg-bogus {sorry, unimplemented: unsupported map expression '<lambda closure object>.*} TODO { xfail *-*-* } .-4 } */ { std::vector<T> vec(Size); std::vector<T> mutated(Size); diff --git a/libgomp/testsuite/libgomp.c++/target-flex-62.C b/libgomp/testsuite/libgomp.c++/target-flex-62.C index 6fb434504ffb..db7c1fd8208d 100644 --- a/libgomp/testsuite/libgomp.c++/target-flex-62.C +++ b/libgomp/testsuite/libgomp.c++/target-flex-62.C @@ -1,5 +1,9 @@ /* { dg-additional-options -std=c++23 } */ +/* FIXME: See XFAIL below. Until this is fixed, this test won't compile + and will result in a bogus UNRESOLVED. */ +/* { dg-do compile } */ + /* std::views stuff. Also tests std::tuple with std::views::zip. */ #include <algorithm> @@ -21,6 +25,8 @@ bool f() bool ok; #pragma omp target defaultmap(none) map(from: ok) map(to: arr_fwd[ :8], arr_rev[ :8]) + /* <https://baylibre.slack.com/archives/C06TTV7HMMG/p1748508583437829> + { dg-bogus {sorry, unimplemented: unsupported map expression '<lambda closure object>.*} TODO { xfail *-*-* } .-2 } */ { std::span<const int> fwd = {arr_fwd, 8}; std::span<const int> rev = {arr_rev, 8}; diff --git a/libgomp/testsuite/libgomp.c++/target-flex-81.C b/libgomp/testsuite/libgomp.c++/target-flex-81.C index d7ed69fdd84c..ed5992f41c74 100644 --- a/libgomp/testsuite/libgomp.c++/target-flex-81.C +++ b/libgomp/testsuite/libgomp.c++/target-flex-81.C @@ -1,5 +1,9 @@ /* { dg-additional-options "-std=c++20" } */ +/* FIXME: See XFAIL below. Until this is fixed, this test won't compile + and will result in a bogus UNRESOLVED. */ +/* { dg-do compile } */ + #include <ranges> #include <span> #include <type_traits> @@ -35,6 +39,8 @@ bool test(Rn&& range) std::size_t size = vec.size(); bool ok; #pragma omp target map(from: ok) map(tofrom: data[ :size]) map(to: size) + /* <https://baylibre.slack.com/archives/C06TTV7HMMG/p1748508583437829> + { dg-bogus {sorry, unimplemented: unsupported map expression '<lambda closure object>.*} TODO { xfail *-*-* } .-2 } */ { std::vector<value_type> orig = {data, data + size}; std::span<value_type> span = {data, size};
