diff --git a/libstdc++-v3/include/parallel/algobase.h b/libstdc++-v3/include/parallel/algobase.h index 4e4cc0fa0f2..9e5b86558e4 100644 --- a/libstdc++-v3/include/parallel/algobase.h +++ b/libstdc++-v3/include/parallel/algobase.h @@ -41,6 +41,7 @@ #include #include #include +#include namespace std _GLIBCXX_VISIBILITY(default) { diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc index ccad7694083..7e5c2999c7a 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc @@ -18,6 +18,7 @@ // { dg-options "-std=gnu++11" } // { dg-do compile { target c++11 } } // { dg-require-normal-mode "" } +// { dg-require-effective-target omp } #if __has_include() # define _GLIBCXX_PARALLEL 1 diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc index 604dbda7c32..bc828de0ed6 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc @@ -18,6 +18,7 @@ // { dg-options "-std=gnu++14" } // { dg-do compile { target c++14 } } // { dg-require-normal-mode "" } +// { dg-require-effective-target omp } #if __has_include() # define _GLIBCXX_PARALLEL 1 diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc index 0fa7fae8d27..7c829249645 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++17 } } // { dg-require-normal-mode "" } +// { dg-require-effective-target omp } #if __has_include() # define _GLIBCXX_PARALLEL 1 diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index c83147ce99a..0207a15c57e 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -1421,6 +1421,14 @@ proc check_effective_target_tzdb { } { }] } +# Return 1 if OMP is available. +proc check_effective_target_omp { } { + return [check_v3_target_prop_cached et_omp { + set cond "__has_include()" + return [v3_check_preprocessor_condition omp $cond] + }] +} + set additional_prunes "" if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \