1f9127593SEric Fiselier //===----------------------------------------------------------------------===//
2f9127593SEric Fiselier //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6f9127593SEric Fiselier //
7f9127593SEric Fiselier //===----------------------------------------------------------------------===//
8f9127593SEric Fiselier 
9f9127593SEric Fiselier // UNSUPPORTED: c++98, c++03
10f9127593SEric Fiselier 
11f9127593SEric Fiselier // <string>
12f9127593SEric Fiselier 
13f9127593SEric Fiselier // Test that <string> provides all of the arithmetic, enum, and pointer
14f9127593SEric Fiselier // hash specializations.
15f9127593SEric Fiselier 
16f9127593SEric Fiselier #include <string>
17f9127593SEric Fiselier 
18f9127593SEric Fiselier #include "poisoned_hash_helper.hpp"
19f9127593SEric Fiselier 
20*2df59c50SJF Bastien int main(int, char**) {
21f9127593SEric Fiselier   test_library_hash_specializations_available();
22f9127593SEric Fiselier   {
23f9127593SEric Fiselier     test_hash_enabled_for_type<std::string>();
24f9127593SEric Fiselier     test_hash_enabled_for_type<std::wstring>();
257dad0bd6SMarshall Clow #if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
267dad0bd6SMarshall Clow     test_hash_enabled_for_type<std::u8string>();
277dad0bd6SMarshall Clow #endif
28f9127593SEric Fiselier #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
29f9127593SEric Fiselier     test_hash_enabled_for_type<std::u16string>();
30f9127593SEric Fiselier     test_hash_enabled_for_type<std::u32string>();
31f9127593SEric Fiselier #endif
32f9127593SEric Fiselier   }
33*2df59c50SJF Bastien 
34*2df59c50SJF Bastien   return 0;
35f9127593SEric Fiselier }
36