1f9127593SEric Fiselier //===----------------------------------------------------------------------===//
2f9127593SEric Fiselier //
3f9127593SEric Fiselier //                     The LLVM Compiler Infrastructure
4f9127593SEric Fiselier //
5f9127593SEric Fiselier // This file is dual licensed under the MIT and the University of Illinois Open
6f9127593SEric Fiselier // Source Licenses. See LICENSE.TXT for details.
7f9127593SEric Fiselier //
8f9127593SEric Fiselier //===----------------------------------------------------------------------===//
9f9127593SEric Fiselier 
10f9127593SEric Fiselier // UNSUPPORTED: c++98, c++03
11f9127593SEric Fiselier 
12f9127593SEric Fiselier // <string>
13f9127593SEric Fiselier 
14f9127593SEric Fiselier // Test that <string> provides all of the arithmetic, enum, and pointer
15f9127593SEric Fiselier // hash specializations.
16f9127593SEric Fiselier 
17f9127593SEric Fiselier #include <string>
18f9127593SEric Fiselier 
19f9127593SEric Fiselier #include "poisoned_hash_helper.hpp"
20f9127593SEric Fiselier 
21f9127593SEric Fiselier int main() {
22f9127593SEric Fiselier   test_library_hash_specializations_available();
23f9127593SEric Fiselier   {
24f9127593SEric Fiselier     test_hash_enabled_for_type<std::string>();
25f9127593SEric Fiselier     test_hash_enabled_for_type<std::wstring>();
26*7dad0bd6SMarshall Clow #if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
27*7dad0bd6SMarshall Clow     test_hash_enabled_for_type<std::u8string>();
28*7dad0bd6SMarshall Clow #endif
29f9127593SEric Fiselier #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
30f9127593SEric Fiselier     test_hash_enabled_for_type<std::u16string>();
31f9127593SEric Fiselier     test_hash_enabled_for_type<std::u32string>();
32f9127593SEric Fiselier #endif
33f9127593SEric Fiselier   }
34f9127593SEric Fiselier }
35