libstdc++: Fix errors from Library Fundamentals TS headers in C++11 [PR 98319]
Currently the <experimental/random>, <experimental/source_location> and <experimental/utility> headers can be included in C++98 and C++11 modes, but gives errors. With this change they can be included, but define nothing. libstdc++-v3/ChangeLog: PR libstdc++/98319 * include/experimental/random: Only define contents for C++14 and later. * include/experimental/source_location: Likewise. * include/experimental/utility: Likewise. * testsuite/experimental/feat-lib-fund.cc: Include all LFTS headers that are present. Allow test to run for all modes.
This commit is contained in:
parent
3cee0c6562
commit
ab9bd93271
4 changed files with 43 additions and 58 deletions
|
@ -30,6 +30,7 @@
|
|||
#ifndef _GLIBCXX_EXPERIMENTAL_RANDOM
|
||||
#define _GLIBCXX_EXPERIMENTAL_RANDOM 1
|
||||
|
||||
#if __cplusplus >= 201402L
|
||||
#include <random>
|
||||
#include <experimental/bits/lfts_config.h>
|
||||
|
||||
|
@ -78,4 +79,5 @@ inline namespace fundamentals_v2 {
|
|||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace std
|
||||
|
||||
#endif
|
||||
#endif // C++14
|
||||
#endif // _GLIBCXX_EXPERIMENTAL_RANDOM
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#ifndef _GLIBCXX_EXPERIMENTAL_SRCLOC
|
||||
#define _GLIBCXX_EXPERIMENTAL_SRCLOC 1
|
||||
|
||||
#if __cplusplus >= 201402L
|
||||
#include <cstdint>
|
||||
|
||||
namespace std {
|
||||
|
@ -84,4 +85,5 @@ inline namespace fundamentals_v2 {
|
|||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace std
|
||||
|
||||
#endif
|
||||
#endif // C++14
|
||||
#endif // _GLIBCXX_EXPERIMENTAL_SRCLOC
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#ifndef _GLIBCXX_EXPERIMENTAL_UTILITY
|
||||
#define _GLIBCXX_EXPERIMENTAL_UTILITY 1
|
||||
|
||||
#if __cplusplus >= 201402L
|
||||
#include <utility>
|
||||
#include <bits/uses_allocator.h>
|
||||
#include <experimental/bits/lfts_config.h>
|
||||
|
@ -47,4 +48,5 @@ inline namespace fundamentals_v2 {
|
|||
_GLIBCXX_END_NAMESPACE_VERSION
|
||||
} // namespace std
|
||||
|
||||
#endif
|
||||
#endif // C++14
|
||||
#endif // _GLIBCXX_EXPERIMENTAL_UTILITY
|
||||
|
|
|
@ -1,57 +1,36 @@
|
|||
// { dg-do preprocess { target c++14 } }
|
||||
// { dg-do preprocess }
|
||||
|
||||
#if !__has_include(<experimental/tuple>)
|
||||
# error "<experimental/tuple>"
|
||||
// Include all the LFTS headers. This should work with any -std flag.
|
||||
|
||||
#include <experimental/algorithm>
|
||||
#include <experimental/any>
|
||||
#include <experimental/array>
|
||||
#include <experimental/chrono>
|
||||
#include <experimental/deque>
|
||||
#include <experimental/forward_list>
|
||||
#include <experimental/functional>
|
||||
#if __has_include(<experimental/future>) // not supported as of GCC 11
|
||||
# include <experimental/future>
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/type_traits>)
|
||||
# error "<experimental/type_traits>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/ratio>)
|
||||
# error "<experimental/ratio>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/chrono>)
|
||||
# error "<experimental/chrono>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/system_error>)
|
||||
# error "<experimental/system_error>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/functional>)
|
||||
# error "<experimental/functional>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/optional>)
|
||||
# error "<experimental/optional>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/any>)
|
||||
# error "<experimental/any>"
|
||||
#endif
|
||||
|
||||
#if !__has_include(<experimental/string_view>)
|
||||
# error "<experimental/string_view>"
|
||||
#endif
|
||||
|
||||
//#if !__has_include(<experimental/memory>)
|
||||
//# error "<experimental/memory>"
|
||||
//#endif
|
||||
|
||||
//#if !__has_include(<experimental/memory_resource>)
|
||||
//# error "<experimental/memory_resource>"
|
||||
//#endif
|
||||
|
||||
//#if !__has_include(<experimental/future>)
|
||||
//# error "<experimental/future>"
|
||||
//#endif
|
||||
|
||||
#if !__has_include(<experimental/algorithm>)
|
||||
# error "<experimental/algorithm>"
|
||||
#endif
|
||||
|
||||
//#if !__has_include(<experimental/net>)
|
||||
//# error "<experimental/net>"
|
||||
//#endif
|
||||
#include <experimental/iterator>
|
||||
#include <experimental/list>
|
||||
#include <experimental/map>
|
||||
#include <experimental/memory>
|
||||
#include <experimental/memory_resource>
|
||||
#include <experimental/numeric>
|
||||
#include <experimental/optional>
|
||||
#include <experimental/propagate_const>
|
||||
#include <experimental/random>
|
||||
#include <experimental/ratio>
|
||||
#include <experimental/regex>
|
||||
#include <experimental/set>
|
||||
#include <experimental/source_location>
|
||||
#include <experimental/string>
|
||||
#include <experimental/string_view>
|
||||
#include <experimental/system_error>
|
||||
#include <experimental/tuple>
|
||||
#include <experimental/type_traits>
|
||||
#include <experimental/unordered_map>
|
||||
#include <experimental/unordered_set>
|
||||
#include <experimental/utility>
|
||||
#include <experimental/vector>
|
||||
|
|
Loading…
Add table
Reference in a new issue