02_iwyu_hash.patch raw
1 Map std::hash to its providing standard headers.
2 Backport of https://github.com/include-what-you-use/include-what-you-use/pull/2013
3 (commit 52f85e1f4d990f55fc6556d543eb051d79364a16) to the clang_22 release
4 branch. Drop once the upstream fix lands in the IWYU branch tracked by
5 ci/test/00_setup_env_native_iwyu.sh.
6
7 --- a/std_symbol_map.inc
8 +++ b/std_symbol_map.inc
9 @@ -1054,12 +1054,27 @@
10 { "std::has_unique_object_representations_v", kPrivate, "<type_traits>", kPublic },
11 { "std::has_virtual_destructor", kPrivate, "<type_traits>", kPublic },
12 { "std::has_virtual_destructor_v", kPrivate, "<type_traits>", kPublic },
13 +{ "std::hash", kPrivate, "<functional>", kPublic },
14 +{ "std::hash", kPrivate, "<bitset>", kPublic },
15 +{ "std::hash", kPrivate, "<coroutine>", kPublic },
16 +{ "std::hash", kPrivate, "<filesystem>", kPublic },
17 +{ "std::hash", kPrivate, "<memory>", kPublic },
18 +{ "std::hash", kPrivate, "<optional>", kPublic },
19 +{ "std::hash", kPrivate, "<stacktrace>", kPublic },
20 +{ "std::hash", kPrivate, "<string>", kPublic },
21 +{ "std::hash", kPrivate, "<string_view>", kPublic },
22 +{ "std::hash", kPrivate, "<system_error>", kPublic },
23 +{ "std::hash", kPrivate, "<thread>", kPublic },
24 +{ "std::hash", kPrivate, "<typeindex>", kPublic },
25 +{ "std::hash", kPrivate, "<variant>", kPublic },
26 +{ "std::hash", kPrivate, "<vector>", kPublic },
27 { "std::hash<std::basic_stacktrace<:0>>", kPrivate, "<stacktrace>", kPublic },
28 { "std::hash<std::basic_string<char, std::char_traits<char>, :0>>", kPrivate, "<string>", kPublic },
29 { "std::hash<std::basic_string<char16_t, std::char_traits<char16_t>, :0>>", kPrivate, "<string>", kPublic },
30 { "std::hash<std::basic_string<char32_t, std::char_traits<char32_t>, :0>>", kPrivate, "<string>", kPublic },
31 { "std::hash<std::basic_string<char8_t, std::char_traits<char8_t>, :0>>", kPrivate, "<string>", kPublic },
32 { "std::hash<std::basic_string<wchar_t, std::char_traits<wchar_t>, :0>>", kPrivate, "<string>", kPublic },
33 +{ "std::hash<std::bitset<:0>>", kPrivate, "<bitset>", kPublic },
34 { "std::hash<std::coroutine_handle<:0>>", kPrivate, "<coroutine>", kPublic },
35 { "std::hash<std::error_code>", kPrivate, "<system_error>", kPublic },
36 { "std::hash<std::error_condition>", kPrivate, "<system_error>", kPublic },
37 @@ -1069,6 +1084,7 @@
38 { "std::hash<std::shared_ptr<:0>>", kPrivate, "<memory>", kPublic },
39 { "std::hash<std::stacktrace_entry>", kPrivate, "<stacktrace>", kPublic },
40 { "std::hash<std::string_view>", kPrivate, "<string_view>", kPublic },
41 +{ "std::hash<std::thread::id>", kPrivate, "<thread>", kPublic },
42 { "std::hash<std::type_index>", kPrivate, "<typeindex>", kPublic },
43 { "std::hash<std::u16string_view>", kPrivate, "<string_view>", kPublic },
44 { "std::hash<std::u32string_view>", kPrivate, "<string_view>", kPublic },
45