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 
931cbe0f2SLouis Dionne // UNSUPPORTED: 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 
18cc89063bSNico Weber #include "poisoned_hash_helper.h"
19f9127593SEric Fiselier 
207fc6a556SMarshall Clow #include "test_macros.h"
217fc6a556SMarshall Clow 
main(int,char **)222df59c50SJF Bastien int main(int, char**) {
23f9127593SEric Fiselier   test_library_hash_specializations_available();
24f9127593SEric Fiselier   {
25f9127593SEric Fiselier     test_hash_enabled_for_type<std::string>();
26*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS
27f9127593SEric Fiselier     test_hash_enabled_for_type<std::wstring>();
28*f4c1258dSLouis Dionne #endif
297dad0bd6SMarshall Clow #if defined(__cpp_lib_char8_t) && __cpp_lib_char8_t >= 201811L
307dad0bd6SMarshall Clow     test_hash_enabled_for_type<std::u8string>();
317dad0bd6SMarshall Clow #endif
32f9127593SEric Fiselier     test_hash_enabled_for_type<std::u16string>();
33f9127593SEric Fiselier     test_hash_enabled_for_type<std::u32string>();
34f9127593SEric Fiselier   }
352df59c50SJF Bastien 
362df59c50SJF Bastien   return 0;
37f9127593SEric Fiselier }
38