xref: /aosp_15_r20/external/skia/toolchain/linux_trampolines/IWYU_mapping.imp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1[
2  { include: ["<__algorithm/adjacent_find.h>", "private", "<algorithm>", "public"] },
3  { include: ["<__algorithm/all_of.h>", "private", "<algorithm>", "public"] },
4  { include: ["<__algorithm/any_of.h>", "private", "<algorithm>", "public"] },
5  { include: ["<__algorithm/binary_search.h>", "private", "<algorithm>", "public"] },
6  { include: ["<__algorithm/clamp.h>", "private", "<algorithm>", "public"] },
7  { include: ["<__algorithm/comp.h>", "private", "<algorithm>", "public"] },
8  { include: ["<__algorithm/comp_ref_type.h>", "private", "<algorithm>", "public"] },
9  { include: ["<__algorithm/copy.h>", "private", "<algorithm>", "public"] },
10  { include: ["<__algorithm/copy_backward.h>", "private", "<algorithm>", "public"] },
11  { include: ["<__algorithm/copy_if.h>", "private", "<algorithm>", "public"] },
12  { include: ["<__algorithm/copy_n.h>", "private", "<algorithm>", "public"] },
13  { include: ["<__algorithm/count.h>", "private", "<algorithm>", "public"] },
14  { include: ["<__algorithm/count_if.h>", "private", "<algorithm>", "public"] },
15  { include: ["<__algorithm/equal.h>", "private", "<algorithm>", "public"] },
16  { include: ["<__algorithm/equal_range.h>", "private", "<algorithm>", "public"] },
17  { include: ["<__algorithm/fill.h>", "private", "<algorithm>", "public"] },
18  { include: ["<__algorithm/fill_n.h>", "private", "<algorithm>", "public"] },
19  { include: ["<__algorithm/find.h>", "private", "<algorithm>", "public"] },
20  { include: ["<__algorithm/find_end.h>", "private", "<algorithm>", "public"] },
21  { include: ["<__algorithm/find_first_of.h>", "private", "<algorithm>", "public"] },
22  { include: ["<__algorithm/find_if.h>", "private", "<algorithm>", "public"] },
23  { include: ["<__algorithm/find_if_not.h>", "private", "<algorithm>", "public"] },
24  { include: ["<__algorithm/for_each.h>", "private", "<algorithm>", "public"] },
25  { include: ["<__algorithm/for_each_n.h>", "private", "<algorithm>", "public"] },
26  { include: ["<__algorithm/generate.h>", "private", "<algorithm>", "public"] },
27  { include: ["<__algorithm/generate_n.h>", "private", "<algorithm>", "public"] },
28  { include: ["<__algorithm/half_positive.h>", "private", "<algorithm>", "public"] },
29  { include: ["<__algorithm/in_found_result.h>", "private", "<algorithm>", "public"] },
30  { include: ["<__algorithm/in_fun_result.h>", "private", "<algorithm>", "public"] },
31  { include: ["<__algorithm/in_in_out_result.h>", "private", "<algorithm>", "public"] },
32  { include: ["<__algorithm/in_in_result.h>", "private", "<algorithm>", "public"] },
33  { include: ["<__algorithm/in_out_out_result.h>", "private", "<algorithm>", "public"] },
34  { include: ["<__algorithm/in_out_result.h>", "private", "<algorithm>", "public"] },
35  { include: ["<__algorithm/includes.h>", "private", "<algorithm>", "public"] },
36  { include: ["<__algorithm/inplace_merge.h>", "private", "<algorithm>", "public"] },
37  { include: ["<__algorithm/is_heap.h>", "private", "<algorithm>", "public"] },
38  { include: ["<__algorithm/is_heap_until.h>", "private", "<algorithm>", "public"] },
39  { include: ["<__algorithm/is_partitioned.h>", "private", "<algorithm>", "public"] },
40  { include: ["<__algorithm/is_permutation.h>", "private", "<algorithm>", "public"] },
41  { include: ["<__algorithm/is_sorted.h>", "private", "<algorithm>", "public"] },
42  { include: ["<__algorithm/is_sorted_until.h>", "private", "<algorithm>", "public"] },
43  { include: ["<__algorithm/iter_swap.h>", "private", "<algorithm>", "public"] },
44  { include: ["<__algorithm/iterator_operations.h>", "private", "<algorithm>", "public"] },
45  { include: ["<__algorithm/lexicographical_compare.h>", "private", "<algorithm>", "public"] },
46  { include: ["<__algorithm/lower_bound.h>", "private", "<algorithm>", "public"] },
47  { include: ["<__algorithm/make_heap.h>", "private", "<algorithm>", "public"] },
48  { include: ["<__algorithm/make_projected.h>", "private", "<algorithm>", "public"] },
49  { include: ["<__algorithm/max.h>", "private", "<algorithm>", "public"] },
50  { include: ["<__algorithm/max_element.h>", "private", "<algorithm>", "public"] },
51  { include: ["<__algorithm/merge.h>", "private", "<algorithm>", "public"] },
52  { include: ["<__algorithm/min.h>", "private", "<algorithm>", "public"] },
53  { include: ["<__algorithm/min_element.h>", "private", "<algorithm>", "public"] },
54  { include: ["<__algorithm/min_max_result.h>", "private", "<algorithm>", "public"] },
55  { include: ["<__algorithm/minmax.h>", "private", "<algorithm>", "public"] },
56  { include: ["<__algorithm/minmax_element.h>", "private", "<algorithm>", "public"] },
57  { include: ["<__algorithm/mismatch.h>", "private", "<algorithm>", "public"] },
58  { include: ["<__algorithm/move.h>", "private", "<algorithm>", "public"] },
59  { include: ["<__algorithm/move_backward.h>", "private", "<algorithm>", "public"] },
60  { include: ["<__algorithm/next_permutation.h>", "private", "<algorithm>", "public"] },
61  { include: ["<__algorithm/none_of.h>", "private", "<algorithm>", "public"] },
62  { include: ["<__algorithm/nth_element.h>", "private", "<algorithm>", "public"] },
63  { include: ["<__algorithm/partial_sort.h>", "private", "<algorithm>", "public"] },
64  { include: ["<__algorithm/partial_sort_copy.h>", "private", "<algorithm>", "public"] },
65  { include: ["<__algorithm/partition.h>", "private", "<algorithm>", "public"] },
66  { include: ["<__algorithm/partition_copy.h>", "private", "<algorithm>", "public"] },
67  { include: ["<__algorithm/partition_point.h>", "private", "<algorithm>", "public"] },
68  { include: ["<__algorithm/pop_heap.h>", "private", "<algorithm>", "public"] },
69  { include: ["<__algorithm/prev_permutation.h>", "private", "<algorithm>", "public"] },
70  { include: ["<__algorithm/push_heap.h>", "private", "<algorithm>", "public"] },
71  { include: ["<__algorithm/ranges_adjacent_find.h>", "private", "<algorithm>", "public"] },
72  { include: ["<__algorithm/ranges_all_of.h>", "private", "<algorithm>", "public"] },
73  { include: ["<__algorithm/ranges_any_of.h>", "private", "<algorithm>", "public"] },
74  { include: ["<__algorithm/ranges_binary_search.h>", "private", "<algorithm>", "public"] },
75  { include: ["<__algorithm/ranges_clamp.h>", "private", "<algorithm>", "public"] },
76  { include: ["<__algorithm/ranges_copy.h>", "private", "<algorithm>", "public"] },
77  { include: ["<__algorithm/ranges_copy_backward.h>", "private", "<algorithm>", "public"] },
78  { include: ["<__algorithm/ranges_copy_if.h>", "private", "<algorithm>", "public"] },
79  { include: ["<__algorithm/ranges_copy_n.h>", "private", "<algorithm>", "public"] },
80  { include: ["<__algorithm/ranges_count.h>", "private", "<algorithm>", "public"] },
81  { include: ["<__algorithm/ranges_count_if.h>", "private", "<algorithm>", "public"] },
82  { include: ["<__algorithm/ranges_equal.h>", "private", "<algorithm>", "public"] },
83  { include: ["<__algorithm/ranges_equal_range.h>", "private", "<algorithm>", "public"] },
84  { include: ["<__algorithm/ranges_fill.h>", "private", "<algorithm>", "public"] },
85  { include: ["<__algorithm/ranges_fill_n.h>", "private", "<algorithm>", "public"] },
86  { include: ["<__algorithm/ranges_find.h>", "private", "<algorithm>", "public"] },
87  { include: ["<__algorithm/ranges_find_end.h>", "private", "<algorithm>", "public"] },
88  { include: ["<__algorithm/ranges_find_first_of.h>", "private", "<algorithm>", "public"] },
89  { include: ["<__algorithm/ranges_find_if.h>", "private", "<algorithm>", "public"] },
90  { include: ["<__algorithm/ranges_find_if_not.h>", "private", "<algorithm>", "public"] },
91  { include: ["<__algorithm/ranges_for_each.h>", "private", "<algorithm>", "public"] },
92  { include: ["<__algorithm/ranges_for_each_n.h>", "private", "<algorithm>", "public"] },
93  { include: ["<__algorithm/ranges_generate.h>", "private", "<algorithm>", "public"] },
94  { include: ["<__algorithm/ranges_generate_n.h>", "private", "<algorithm>", "public"] },
95  { include: ["<__algorithm/ranges_includes.h>", "private", "<algorithm>", "public"] },
96  { include: ["<__algorithm/ranges_inplace_merge.h>", "private", "<algorithm>", "public"] },
97  { include: ["<__algorithm/ranges_is_heap.h>", "private", "<algorithm>", "public"] },
98  { include: ["<__algorithm/ranges_is_heap_until.h>", "private", "<algorithm>", "public"] },
99  { include: ["<__algorithm/ranges_is_partitioned.h>", "private", "<algorithm>", "public"] },
100  { include: ["<__algorithm/ranges_is_permutation.h>", "private", "<algorithm>", "public"] },
101  { include: ["<__algorithm/ranges_is_sorted.h>", "private", "<algorithm>", "public"] },
102  { include: ["<__algorithm/ranges_is_sorted_until.h>", "private", "<algorithm>", "public"] },
103  { include: ["<__algorithm/ranges_iterator_concept.h>", "private", "<algorithm>", "public"] },
104  { include: ["<__algorithm/ranges_lexicographical_compare.h>", "private", "<algorithm>", "public"] },
105  { include: ["<__algorithm/ranges_lower_bound.h>", "private", "<algorithm>", "public"] },
106  { include: ["<__algorithm/ranges_make_heap.h>", "private", "<algorithm>", "public"] },
107  { include: ["<__algorithm/ranges_max.h>", "private", "<algorithm>", "public"] },
108  { include: ["<__algorithm/ranges_max_element.h>", "private", "<algorithm>", "public"] },
109  { include: ["<__algorithm/ranges_merge.h>", "private", "<algorithm>", "public"] },
110  { include: ["<__algorithm/ranges_min.h>", "private", "<algorithm>", "public"] },
111  { include: ["<__algorithm/ranges_min_element.h>", "private", "<algorithm>", "public"] },
112  { include: ["<__algorithm/ranges_minmax.h>", "private", "<algorithm>", "public"] },
113  { include: ["<__algorithm/ranges_minmax_element.h>", "private", "<algorithm>", "public"] },
114  { include: ["<__algorithm/ranges_mismatch.h>", "private", "<algorithm>", "public"] },
115  { include: ["<__algorithm/ranges_move.h>", "private", "<algorithm>", "public"] },
116  { include: ["<__algorithm/ranges_move_backward.h>", "private", "<algorithm>", "public"] },
117  { include: ["<__algorithm/ranges_next_permutation.h>", "private", "<algorithm>", "public"] },
118  { include: ["<__algorithm/ranges_none_of.h>", "private", "<algorithm>", "public"] },
119  { include: ["<__algorithm/ranges_nth_element.h>", "private", "<algorithm>", "public"] },
120  { include: ["<__algorithm/ranges_partial_sort.h>", "private", "<algorithm>", "public"] },
121  { include: ["<__algorithm/ranges_partial_sort_copy.h>", "private", "<algorithm>", "public"] },
122  { include: ["<__algorithm/ranges_partition.h>", "private", "<algorithm>", "public"] },
123  { include: ["<__algorithm/ranges_partition_copy.h>", "private", "<algorithm>", "public"] },
124  { include: ["<__algorithm/ranges_partition_point.h>", "private", "<algorithm>", "public"] },
125  { include: ["<__algorithm/ranges_pop_heap.h>", "private", "<algorithm>", "public"] },
126  { include: ["<__algorithm/ranges_prev_permutation.h>", "private", "<algorithm>", "public"] },
127  { include: ["<__algorithm/ranges_push_heap.h>", "private", "<algorithm>", "public"] },
128  { include: ["<__algorithm/ranges_remove.h>", "private", "<algorithm>", "public"] },
129  { include: ["<__algorithm/ranges_remove_copy.h>", "private", "<algorithm>", "public"] },
130  { include: ["<__algorithm/ranges_remove_copy_if.h>", "private", "<algorithm>", "public"] },
131  { include: ["<__algorithm/ranges_remove_if.h>", "private", "<algorithm>", "public"] },
132  { include: ["<__algorithm/ranges_replace.h>", "private", "<algorithm>", "public"] },
133  { include: ["<__algorithm/ranges_replace_copy.h>", "private", "<algorithm>", "public"] },
134  { include: ["<__algorithm/ranges_replace_copy_if.h>", "private", "<algorithm>", "public"] },
135  { include: ["<__algorithm/ranges_replace_if.h>", "private", "<algorithm>", "public"] },
136  { include: ["<__algorithm/ranges_reverse.h>", "private", "<algorithm>", "public"] },
137  { include: ["<__algorithm/ranges_reverse_copy.h>", "private", "<algorithm>", "public"] },
138  { include: ["<__algorithm/ranges_rotate.h>", "private", "<algorithm>", "public"] },
139  { include: ["<__algorithm/ranges_rotate_copy.h>", "private", "<algorithm>", "public"] },
140  { include: ["<__algorithm/ranges_sample.h>", "private", "<algorithm>", "public"] },
141  { include: ["<__algorithm/ranges_search.h>", "private", "<algorithm>", "public"] },
142  { include: ["<__algorithm/ranges_search_n.h>", "private", "<algorithm>", "public"] },
143  { include: ["<__algorithm/ranges_set_difference.h>", "private", "<algorithm>", "public"] },
144  { include: ["<__algorithm/ranges_set_intersection.h>", "private", "<algorithm>", "public"] },
145  { include: ["<__algorithm/ranges_set_symmetric_difference.h>", "private", "<algorithm>", "public"] },
146  { include: ["<__algorithm/ranges_set_union.h>", "private", "<algorithm>", "public"] },
147  { include: ["<__algorithm/ranges_shuffle.h>", "private", "<algorithm>", "public"] },
148  { include: ["<__algorithm/ranges_sort.h>", "private", "<algorithm>", "public"] },
149  { include: ["<__algorithm/ranges_sort_heap.h>", "private", "<algorithm>", "public"] },
150  { include: ["<__algorithm/ranges_stable_partition.h>", "private", "<algorithm>", "public"] },
151  { include: ["<__algorithm/ranges_stable_sort.h>", "private", "<algorithm>", "public"] },
152  { include: ["<__algorithm/ranges_swap_ranges.h>", "private", "<algorithm>", "public"] },
153  { include: ["<__algorithm/ranges_transform.h>", "private", "<algorithm>", "public"] },
154  { include: ["<__algorithm/ranges_unique.h>", "private", "<algorithm>", "public"] },
155  { include: ["<__algorithm/ranges_unique_copy.h>", "private", "<algorithm>", "public"] },
156  { include: ["<__algorithm/ranges_upper_bound.h>", "private", "<algorithm>", "public"] },
157  { include: ["<__algorithm/remove.h>", "private", "<algorithm>", "public"] },
158  { include: ["<__algorithm/remove_copy.h>", "private", "<algorithm>", "public"] },
159  { include: ["<__algorithm/remove_copy_if.h>", "private", "<algorithm>", "public"] },
160  { include: ["<__algorithm/remove_if.h>", "private", "<algorithm>", "public"] },
161  { include: ["<__algorithm/replace.h>", "private", "<algorithm>", "public"] },
162  { include: ["<__algorithm/replace_copy.h>", "private", "<algorithm>", "public"] },
163  { include: ["<__algorithm/replace_copy_if.h>", "private", "<algorithm>", "public"] },
164  { include: ["<__algorithm/replace_if.h>", "private", "<algorithm>", "public"] },
165  { include: ["<__algorithm/reverse.h>", "private", "<algorithm>", "public"] },
166  { include: ["<__algorithm/reverse_copy.h>", "private", "<algorithm>", "public"] },
167  { include: ["<__algorithm/rotate.h>", "private", "<algorithm>", "public"] },
168  { include: ["<__algorithm/rotate_copy.h>", "private", "<algorithm>", "public"] },
169  { include: ["<__algorithm/sample.h>", "private", "<algorithm>", "public"] },
170  { include: ["<__algorithm/search.h>", "private", "<algorithm>", "public"] },
171  { include: ["<__algorithm/search_n.h>", "private", "<algorithm>", "public"] },
172  { include: ["<__algorithm/set_difference.h>", "private", "<algorithm>", "public"] },
173  { include: ["<__algorithm/set_intersection.h>", "private", "<algorithm>", "public"] },
174  { include: ["<__algorithm/set_symmetric_difference.h>", "private", "<algorithm>", "public"] },
175  { include: ["<__algorithm/set_union.h>", "private", "<algorithm>", "public"] },
176  { include: ["<__algorithm/shift_left.h>", "private", "<algorithm>", "public"] },
177  { include: ["<__algorithm/shift_right.h>", "private", "<algorithm>", "public"] },
178  { include: ["<__algorithm/shuffle.h>", "private", "<algorithm>", "public"] },
179  { include: ["<__algorithm/sift_down.h>", "private", "<algorithm>", "public"] },
180  { include: ["<__algorithm/sort.h>", "private", "<algorithm>", "public"] },
181  { include: ["<__algorithm/sort_heap.h>", "private", "<algorithm>", "public"] },
182  { include: ["<__algorithm/stable_partition.h>", "private", "<algorithm>", "public"] },
183  { include: ["<__algorithm/stable_sort.h>", "private", "<algorithm>", "public"] },
184  { include: ["<__algorithm/swap_ranges.h>", "private", "<algorithm>", "public"] },
185  { include: ["<__algorithm/transform.h>", "private", "<algorithm>", "public"] },
186  { include: ["<__algorithm/uniform_random_bit_generator_adaptor.h>", "private", "<algorithm>", "public"] },
187  { include: ["<__algorithm/unique.h>", "private", "<algorithm>", "public"] },
188  { include: ["<__algorithm/unique_copy.h>", "private", "<algorithm>", "public"] },
189  { include: ["<__algorithm/unwrap_iter.h>", "private", "<algorithm>", "public"] },
190  { include: ["<__algorithm/unwrap_range.h>", "private", "<algorithm>", "public"] },
191  { include: ["<__algorithm/upper_bound.h>", "private", "<algorithm>", "public"] },
192
193  { symbol: ["std::swap", "private", "<algorithm>", "public"] },
194  { symbol: ["std::swap", "private", "<utility>", "public"] },
195  { symbol: ["std::swap", "private", "<string_view>", "public"] },
196
197  { include: ["<__chrono/duration.h>", "private", "<chrono>", "public"] },
198  { include: ["<__chrono/steady_clock.h>", "private", "<chrono>", "public"] },
199  { include: ["<__chrono/time_point.h>", "private", "<chrono>", "public"] },
200
201  { symbol: ["INT32_MAX", "private", "<climits>", "public"]},
202
203  { symbol: ["abs", "private", "<cmath>", "public"]},
204  { symbol: ["fabs", "private", "<cmath>", "public"]},
205  { symbol: ["sqrt", "private", "<cmath>", "public"]},
206
207  { symbol: ["std::abs", "private", "<cmath>", "public"]},
208  { symbol: ["std::abs", "private", "<cstdlib>", "public"]},
209
210  # Prefer cstring over string.h for memcpy and memcmp.
211  { symbol: ["memcpy", "private", "<cstring>", "public"]},
212  { symbol: ["memcmp", "private", "<cstring>", "public"]},
213  { symbol: ["std::memcpy", "private", "<cstring>", "public"]},
214  { symbol: ["std::memcmp", "private", "<cstring>", "public"]},
215
216  # The first of these is the preferred include, but the others are acceptable.
217  { symbol: ["size_t", "private", "<cstddef>", "public"]},
218  { symbol: ["size_t", "private", "<cstdio>", "public"]},
219  { symbol: ["size_t", "private", "<cstdlib>", "public"]},
220  { symbol: ["size_t", "private", "<cstring>", "public"]},
221  { symbol: ["size_t", "private", "<ctime>", "public"]},
222  { symbol: ["size_t", "private", "<cuchar>", "public"]},
223  { symbol: ["size_t", "private", "<cwchar>", "public"]},
224
225  { symbol: ["std::size_t", "private", "<cstddef>", "public"]},
226  { symbol: ["std::size_t", "private", "<cstdio>", "public"]},
227  { symbol: ["std::size_t", "private", "<cstdlib>", "public"]},
228  { symbol: ["std::size_t", "private", "<cstring>", "public"]},
229  { symbol: ["std::size_t", "private", "<ctime>", "public"]},
230  { symbol: ["std::size_t", "private", "<cuchar>", "public"]},
231  { symbol: ["std::size_t", "private", "<cwchar>", "public"]},
232
233  { symbol: ["std::size", "private", "<array>", "public"]},
234  { symbol: ["std::size", "private", "<deque>", "public"]},
235  { symbol: ["std::size", "private", "<forward_list>", "public"]},
236  { symbol: ["std::size", "private", "<iterator>", "public"]},
237  { symbol: ["std::size", "private", "<list>", "public"]},
238  { symbol: ["std::size", "private", "<map>", "public"]},
239  { symbol: ["std::size", "private", "<regex>", "public"]},
240  { symbol: ["std::size", "private", "<set>", "public"]},
241  { symbol: ["std::size", "private", "<span>", "public"]},
242  { symbol: ["std::size", "private", "<string>", "public"]},
243  { symbol: ["std::size", "private", "<string_view>", "public"]},
244  { symbol: ["std::size", "private", "<unordered_map>", "public"]},
245  { symbol: ["std::size", "private", "<unordered_set>", "public"]},
246  { symbol: ["std::size", "private", "<vector>", "public"]},
247
248  { symbol: ["int8_t", "private", "<cstdint>", "public"]},
249  { symbol: ["int16_t", "private", "<cstdint>", "public"]},
250  { symbol: ["int32_t", "private", "<cstdint>", "public"]},
251  { symbol: ["int64_t", "private", "<cstdint>", "public"]},
252  { symbol: ["uint8_t", "private", "<cstdint>", "public"]},
253  { symbol: ["uint16_t", "private", "<cstdint>", "public"]},
254  { symbol: ["uint32_t", "private", "<cstdint>", "public"]},
255  { symbol: ["uint64_t", "private", "<cstdint>", "public"]},
256
257  { include: ["<__stddef_max_align_t.h>", "private", "<cstddef>", "public"] },
258
259  { symbol: ["FILE", "private", "<cstdio>", "public"]},
260
261  { include: ["<__functional/binary_function.h>", "private", "<functional>", "public"] },
262  { include: ["<__functional/binary_negate.h>", "private", "<functional>", "public"] },
263  { include: ["<__functional/binder1st.h>", "private", "<functional>", "public"] },
264  { include: ["<__functional/binder2nd.h>", "private", "<functional>", "public"] },
265  { include: ["<__functional/bind_front.h>", "private", "<functional>", "public"] },
266  { include: ["<__functional/bind.h>", "private", "<functional>", "public"] },
267  { include: ["<__functional/default_searcher.h>", "private", "<functional>", "public"] },
268  { include: ["<__functional/function.h>", "private", "<functional>", "public"] },
269  { include: ["<__functional/hash.h>", "private", "<functional>", "public"] },
270  { include: ["<__functional/identity.h>", "private", "<functional>", "public"] },
271  { include: ["<__functional/invoke.h>", "private", "<functional>", "public"] },
272  { include: ["<__functional/is_transparent.h>", "private", "<functional>", "public"] },
273  { include: ["<__functional/mem_fn.h>", "private", "<functional>", "public"] },
274  { include: ["<__functional/mem_fun_ref.h>", "private", "<functional>", "public"] },
275  { include: ["<__functional/not_fn.h>", "private", "<functional>", "public"] },
276  { include: ["<__functional/operations.h>", "private", "<functional>", "public"] },
277  { include: ["<__functional/perfect_forward.h>", "private", "<functional>", "public"] },
278  { include: ["<__functional/pointer_to_binary_function.h>", "private", "<functional>", "public"] },
279  { include: ["<__functional/pointer_to_unary_function.h>", "private", "<functional>", "public"] },
280  { include: ["<__functional/ranges_operations.h>", "private", "<functional>", "public"] },
281  { include: ["<__functional/reference_wrapper.h>", "private", "<functional>", "public"] },
282  { include: ["<__functional/unary_function.h>", "private", "<functional>", "public"] },
283  { include: ["<__functional/unary_negate.h>", "private", "<functional>", "public"] },
284  { include: ["<__functional/unwrap_ref.h>", "private", "<functional>", "public"] },
285  { include: ["<__functional/weak_result_type.h>", "private", "<functional>", "public"] },
286
287  { include: ["<__iterator/access.h>", "private", "<iterator>", "public"] },
288  { include: ["<__iterator/advance.h>", "private", "<iterator>", "public"] },
289  { include: ["<__iterator/back_insert_iterator.h>", "private", "<iterator>", "public"] },
290  { include: ["<__iterator/bounded_iter.h>", "private", "<iterator>", "public"] },
291  { include: ["<__iterator/common_iterator.h>", "private", "<iterator>", "public"] },
292  { include: ["<__iterator/concepts.h>", "private", "<iterator>", "public"] },
293  { include: ["<__iterator/counted_iterator.h>", "private", "<iterator>", "public"] },
294  { include: ["<__iterator/data.h>", "private", "<iterator>", "public"] },
295  { include: ["<__iterator/default_sentinel.h>", "private", "<iterator>", "public"] },
296  { include: ["<__iterator/distance.h>", "private", "<iterator>", "public"] },
297  { include: ["<__iterator/empty.h>", "private", "<iterator>", "public"] },
298  { include: ["<__iterator/erase_if_container.h>", "private", "<iterator>", "public"] },
299  { include: ["<__iterator/front_insert_iterator.h>", "private", "<iterator>", "public"] },
300  { include: ["<__iterator/incrementable_traits.h>", "private", "<iterator>", "public"] },
301  { include: ["<__iterator/indirectly_comparable.h>", "private", "<iterator>", "public"] },
302  { include: ["<__iterator/insert_iterator.h>", "private", "<iterator>", "public"] },
303  { include: ["<__iterator/istreambuf_iterator.h>", "private", "<iterator>", "public"] },
304  { include: ["<__iterator/istream_iterator.h>", "private", "<iterator>", "public"] },
305  { include: ["<__iterator/iterator.h>", "private", "<iterator>", "public"] },
306  { include: ["<__iterator/iterator_traits.h>", "private", "<iterator>", "public"] },
307  { include: ["<__iterator/iter_move.h>", "private", "<iterator>", "public"] },
308  { include: ["<__iterator/iter_swap.h>", "private", "<iterator>", "public"] },
309  { include: ["<__iterator/mergeable.h>", "private", "<iterator>", "public"] },
310  { include: ["<__iterator/move_iterator.h>", "private", "<iterator>", "public"] },
311  { include: ["<__iterator/move_sentinel.h>", "private", "<iterator>", "public"] },
312  { include: ["<__iterator/next.h>", "private", "<iterator>", "public"] },
313  { include: ["<__iterator/ostreambuf_iterator.h>", "private", "<iterator>", "public"] },
314  { include: ["<__iterator/ostream_iterator.h>", "private", "<iterator>", "public"] },
315  { include: ["<__iterator/permutable.h>", "private", "<iterator>", "public"] },
316  { include: ["<__iterator/prev.h>", "private", "<iterator>", "public"] },
317  { include: ["<__iterator/projected.h>", "private", "<iterator>", "public"] },
318  { include: ["<__iterator/readable_traits.h>", "private", "<iterator>", "public"] },
319  { include: ["<__iterator/reverse_access.h>", "private", "<iterator>", "public"] },
320  { include: ["<__iterator/reverse_iterator.h>", "private", "<iterator>", "public"] },
321  { include: ["<__iterator/sortable.h>", "private", "<iterator>", "public"] },
322  { include: ["<__iterator/unreachable_sentinel.h>", "private", "<iterator>", "public"] },
323  { include: ["<__iterator/wrap_iter.h>", "private", "<iterator>", "public"] },
324
325  # The first of these is the preferred include, but the others are acceptable.
326  { include: ["<__iterator/size.h>", "private", "<array>", "public"] },
327  { include: ["<__iterator/size.h>", "private", "<deque>", "public"] },
328  { include: ["<__iterator/size.h>", "private", "<forward_list>", "public"] },
329  { include: ["<__iterator/size.h>", "private", "<iterator>", "public"] },
330  { include: ["<__iterator/size.h>", "private", "<list>", "public"] },
331  { include: ["<__iterator/size.h>", "private", "<map>", "public"] },
332  { include: ["<__iterator/size.h>", "private", "<regex>", "public"] },
333  { include: ["<__iterator/size.h>", "private", "<set>", "public"] },
334  { include: ["<__iterator/size.h>", "private", "<string>", "public"] },
335  { include: ["<__iterator/size.h>", "private", "<string_view>", "public"] },
336  { include: ["<__iterator/size.h>", "private", "<unordered_map>", "public"] },
337  { include: ["<__iterator/size.h>", "private", "<unordered_set>", "public"] },
338  { include: ["<__iterator/size.h>", "private", "<vector>", "public"] },
339
340  # std::size is available from all of these
341  { symbol: ["std::size", "private", "<iterator>", "public"] },
342  { symbol: ["std::size", "private", "<array>", "public"] },
343  { symbol: ["std::size", "private", "<deque>", "public"] },
344  { symbol: ["std::size", "private", "<forward_list>", "public"] },
345  { symbol: ["std::size", "private", "<list>", "public"] },
346  { symbol: ["std::size", "private", "<map>", "public"] },
347  { symbol: ["std::size", "private", "<regex>", "public"] },
348  { symbol: ["std::size", "private", "<set>", "public"] },
349  { symbol: ["std::size", "private", "<string>", "public"] },
350  { symbol: ["std::size", "private", "<string_view>", "public"] },
351  { symbol: ["std::size", "private", "<unordered_map>", "public"] },
352  { symbol: ["std::size", "private", "<unordered_set>", "public"] },
353  { symbol: ["std::size", "private", "<vector>", "public"] },
354
355  # std::data is available from all of these
356  { symbol: ["std::data", "private", "<iterator>", "public"] },
357  { symbol: ["std::data", "private", "<array>", "public"] },
358  { symbol: ["std::data", "private", "<deque>", "public"] },
359  { symbol: ["std::data", "private", "<forward_list>", "public"] },
360  { symbol: ["std::data", "private", "<list>", "public"] },
361  { symbol: ["std::data", "private", "<map>", "public"] },
362  { symbol: ["std::data", "private", "<regex>", "public"] },
363  { symbol: ["std::data", "private", "<set>", "public"] },
364  { symbol: ["std::data", "private", "<string>", "public"] },
365  { symbol: ["std::data", "private", "<string_view>", "public"] },
366  { symbol: ["std::data", "private", "<unordered_map>", "public"] },
367  { symbol: ["std::data", "private", "<unordered_set>", "public"] },
368  { symbol: ["std::data", "private", "<vector>", "public"] },
369
370  { include: ["<__locale>", "private", "<locale>", "public"] },
371  { symbol: ["locale_t", "private", "<locale.h>", "public"] },
372
373  { include: ["<__numeric/accumulate.h>", "private", "<numeric>", "public"] },
374  { include: ["<__numeric/iota.h>", "private", "<numeric>", "public"] },
375
376  { include: ["<__memory/shared_ptr.h>", "private", "<memory>", "public"] },
377  { include: ["<__memory/unique_ptr.h>", "private", "<memory>", "public"] },
378
379  { include: ["<__random/random_device.h>", "private", "<random>", "public"] },
380
381  { include: ["<__tuple>", "private", "<tuple>", "public"] },
382
383  { include: ["<__tree>", "private", "<set>", "public"] },
384
385  { symbol: ["std::istringstream", "private", "<sstream>", "public"] },
386  { symbol: ["std::ostringstream", "private", "<sstream>", "public"] },
387  { symbol: ["std::stringstream", "private", "<sstream>", "public"] },
388  { symbol: ["std::stringbuf", "private", "<sstream>", "public"] },
389  { symbol: ["std::basic_istringstream", "private", "<sstream>", "public"] },
390  { symbol: ["std::basic_ostringstream", "private", "<sstream>", "public"] },
391  { symbol: ["std::basic_stringstream", "private", "<sstream>", "public"] },
392  { symbol: ["std::basic_stringbuf", "private", "<sstream>", "public"] },
393
394  { symbol: ["va_list", "private", "<stdarg.h>", "public"] },
395
396  { symbol: ["std::string", "private", "<string>", "public"] },
397
398  { include: ["<__fwd/string_view.h>", "private", "<string_view>", "public"] },
399
400  { include: ["<__hash_table>", "private", "<unordered_map>", "public"] },
401
402  { include: ["<__utility/as_const.h>", "private", "<utility>", "public"] },
403  { include: ["<__utility/cmp.h>", "private", "<utility>", "public"] },
404  { include: ["<__utility/__decay_copy.h>", "private", "<utility>", "public"] },
405  { include: ["<__utility/declval.h>", "private", "<utility>", "public"] },
406  { include: ["<__utility/exchange.h>", "private", "<utility>", "public"] },
407  { include: ["<__utility/forward.h>", "private", "<utility>", "public"] },
408  { include: ["<__utility/in_place.h>", "private", "<utility>", "public"] },
409  { include: ["<__utility/integer_sequence.h>", "private", "<utility>", "public"] },
410  { include: ["<__utility/move.h>", "private", "<utility>", "public"] },
411  { include: ["<__utility/pair.h>", "private", "<utility>", "public"] },
412  { include: ["<__utility/piecewise_construct.h>", "private", "<utility>", "public"] },
413  { include: ["<__utility/rel_ops.h>", "private", "<utility>", "public"] },
414  { include: ["<__utility/swap.h>", "private", "<utility>", "public"] },
415  { include: ["<__utility/to_underlying.h>", "private", "<utility>", "public"] },
416
417
418  { include: ["<__type_traits/add_const.h>", "private", "<type_traits>", "public"] },
419  { include: ["<__type_traits/add_cv.h>", "private", "<type_traits>", "public"] },
420  { include: ["<__type_traits/add_lvalue_reference.h>", "private", "<type_traits>", "public"] },
421  { include: ["<__type_traits/add_pointer.h>", "private", "<type_traits>", "public"] },
422  { include: ["<__type_traits/add_rvalue_reference.h>", "private", "<type_traits>", "public"] },
423  { include: ["<__type_traits/add_volatile.h>", "private", "<type_traits>", "public"] },
424  { include: ["<__type_traits/aligned_storage.h>", "private", "<type_traits>", "public"] },
425  { include: ["<__type_traits/aligned_union.h>", "private", "<type_traits>", "public"] },
426  { include: ["<__type_traits/alignment_of.h>", "private", "<type_traits>", "public"] },
427  { include: ["<__type_traits/apply_cv.h>", "private", "<type_traits>", "public"] },
428  { include: ["<__type_traits/common_reference.h>", "private", "<type_traits>", "public"] },
429  { include: ["<__type_traits/common_type.h>", "private", "<type_traits>", "public"] },
430  { include: ["<__type_traits/conditional.h>", "private", "<type_traits>", "public"] },
431  { include: ["<__type_traits/conjunction.h>", "private", "<type_traits>", "public"] },
432  { include: ["<__type_traits/copy_cv.h>", "private", "<type_traits>", "public"] },
433  { include: ["<__type_traits/copy_cvref.h>", "private", "<type_traits>", "public"] },
434  { include: ["<__type_traits/decay.h>", "private", "<type_traits>", "public"] },
435  { include: ["<__type_traits/disjunction.h>", "private", "<type_traits>", "public"] },
436  { include: ["<__type_traits/enable_if.h>", "private", "<type_traits>", "public"] },
437  { include: ["<__type_traits/extent.h>", "private", "<type_traits>", "public"] },
438  { include: ["<__type_traits/has_unique_object_representation.h>", "private", "<type_traits>", "public"] },
439  { include: ["<__type_traits/has_virtual_destructor.h>", "private", "<type_traits>", "public"] },
440  { include: ["<__type_traits/integral_constant.h>", "private", "<type_traits>", "public"] },
441  { include: ["<__type_traits/is_abstract.h>", "private", "<type_traits>", "public"] },
442  { include: ["<__type_traits/is_aggregate.h>", "private", "<type_traits>", "public"] },
443  { include: ["<__type_traits/is_arithmetic.h>", "private", "<type_traits>", "public"] },
444  { include: ["<__type_traits/is_array.h>", "private", "<type_traits>", "public"] },
445  { include: ["<__type_traits/is_assignable.h>", "private", "<type_traits>", "public"] },
446  { include: ["<__type_traits/is_base_of.h>", "private", "<type_traits>", "public"] },
447  { include: ["<__type_traits/is_bounded_array.h>", "private", "<type_traits>", "public"] },
448  { include: ["<__type_traits/is_callable.h>", "private", "<type_traits>", "public"] },
449  { include: ["<__type_traits/is_class.h>", "private", "<type_traits>", "public"] },
450  { include: ["<__type_traits/is_compound.h>", "private", "<type_traits>", "public"] },
451  { include: ["<__type_traits/is_constant_evaluated.h>", "private", "<type_traits>", "public"] },
452  { include: ["<__type_traits/is_const.h>", "private", "<type_traits>", "public"] },
453  { include: ["<__type_traits/is_constructible.h>", "private", "<type_traits>", "public"] },
454  { include: ["<__type_traits/is_convertible.h>", "private", "<type_traits>", "public"] },
455  { include: ["<__type_traits/is_copy_assignable.h>", "private", "<type_traits>", "public"] },
456  { include: ["<__type_traits/is_copy_constructible.h>", "private", "<type_traits>", "public"] },
457  { include: ["<__type_traits/is_core_convertible.h>", "private", "<type_traits>", "public"] },
458  { include: ["<__type_traits/is_default_constructible.h>", "private", "<type_traits>", "public"] },
459  { include: ["<__type_traits/is_destructible.h>", "private", "<type_traits>", "public"] },
460  { include: ["<__type_traits/is_empty.h>", "private", "<type_traits>", "public"] },
461  { include: ["<__type_traits/is_enum.h>", "private", "<type_traits>", "public"] },
462  { include: ["<__type_traits/is_final.h>", "private", "<type_traits>", "public"] },
463  { include: ["<__type_traits/is_floating_point.h>", "private", "<type_traits>", "public"] },
464  { include: ["<__type_traits/is_function.h>", "private", "<type_traits>", "public"] },
465  { include: ["<__type_traits/is_fundamental.h>", "private", "<type_traits>", "public"] },
466  { include: ["<__type_traits/is_integral.h>", "private", "<type_traits>", "public"] },
467  { include: ["<__type_traits/is_literal_type.h>", "private", "<type_traits>", "public"] },
468  { include: ["<__type_traits/is_member_function_pointer.h>", "private", "<type_traits>", "public"] },
469  { include: ["<__type_traits/is_member_object_pointer.h>", "private", "<type_traits>", "public"] },
470  { include: ["<__type_traits/is_member_pointer.h>", "private", "<type_traits>", "public"] },
471  { include: ["<__type_traits/is_move_assignable.h>", "private", "<type_traits>", "public"] },
472  { include: ["<__type_traits/is_move_constructible.h>", "private", "<type_traits>", "public"] },
473  { include: ["<__type_traits/is_nothrow_assignable.h>", "private", "<type_traits>", "public"] },
474  { include: ["<__type_traits/is_nothrow_constructible.h>", "private", "<type_traits>", "public"] },
475  { include: ["<__type_traits/is_nothrow_convertible.h>", "private", "<type_traits>", "public"] },
476  { include: ["<__type_traits/is_nothrow_copy_assignable.h>", "private", "<type_traits>", "public"] },
477  { include: ["<__type_traits/is_nothrow_copy_constructible.h>", "private", "<type_traits>", "public"] },
478  { include: ["<__type_traits/is_nothrow_default_constructible.h>", "private", "<type_traits>", "public"] },
479  { include: ["<__type_traits/is_nothrow_destructible.h>", "private", "<type_traits>", "public"] },
480  { include: ["<__type_traits/is_nothrow_move_assignable.h>", "private", "<type_traits>", "public"] },
481  { include: ["<__type_traits/is_nothrow_move_constructible.h>", "private", "<type_traits>", "public"] },
482  { include: ["<__type_traits/is_null_pointer.h>", "private", "<type_traits>", "public"] },
483  { include: ["<__type_traits/is_object.h>", "private", "<type_traits>", "public"] },
484  { include: ["<__type_traits/is_pod.h>", "private", "<type_traits>", "public"] },
485  { include: ["<__type_traits/is_pointer.h>", "private", "<type_traits>", "public"] },
486  { include: ["<__type_traits/is_polymorphic.h>", "private", "<type_traits>", "public"] },
487  { include: ["<__type_traits/is_primary_template.h>", "private", "<type_traits>", "public"] },
488  { include: ["<__type_traits/is_referenceable.h>", "private", "<type_traits>", "public"] },
489  { include: ["<__type_traits/is_reference.h>", "private", "<type_traits>", "public"] },
490  { include: ["<__type_traits/is_reference_wrapper.h>", "private", "<type_traits>", "public"] },
491  { include: ["<__type_traits/is_same.h>", "private", "<type_traits>", "public"] },
492  { include: ["<__type_traits/is_scalar.h>", "private", "<type_traits>", "public"] },
493  { include: ["<__type_traits/is_scoped_enum.h>", "private", "<type_traits>", "public"] },
494  { include: ["<__type_traits/is_signed.h>", "private", "<type_traits>", "public"] },
495  { include: ["<__type_traits/is_signed_integer.h>", "private", "<type_traits>", "public"] },
496  { include: ["<__type_traits/is_standard_layout.h>", "private", "<type_traits>", "public"] },
497  { include: ["<__type_traits/is_trivial.h>", "private", "<type_traits>", "public"] },
498  { include: ["<__type_traits/is_trivially_assignable.h>", "private", "<type_traits>", "public"] },
499  { include: ["<__type_traits/is_trivially_constructible.h>", "private", "<type_traits>", "public"] },
500  { include: ["<__type_traits/is_trivially_copyable.h>", "private", "<type_traits>", "public"] },
501  { include: ["<__type_traits/is_trivially_copy_assignable.h>", "private", "<type_traits>", "public"] },
502  { include: ["<__type_traits/is_trivially_copy_constructible.h>", "private", "<type_traits>", "public"] },
503  { include: ["<__type_traits/is_trivially_default_constructible.h>", "private", "<type_traits>", "public"] },
504  { include: ["<__type_traits/is_trivially_destructible.h>", "private", "<type_traits>", "public"] },
505  { include: ["<__type_traits/is_trivially_move_assignable.h>", "private", "<type_traits>", "public"] },
506  { include: ["<__type_traits/is_trivially_move_constructible.h>", "private", "<type_traits>", "public"] },
507  { include: ["<__type_traits/is_unbounded_array.h>", "private", "<type_traits>", "public"] },
508  { include: ["<__type_traits/is_union.h>", "private", "<type_traits>", "public"] },
509  { include: ["<__type_traits/is_unsigned.h>", "private", "<type_traits>", "public"] },
510  { include: ["<__type_traits/is_unsigned_integer.h>", "private", "<type_traits>", "public"] },
511  { include: ["<__type_traits/is_valid_expansion.h>", "private", "<type_traits>", "public"] },
512  { include: ["<__type_traits/is_void.h>", "private", "<type_traits>", "public"] },
513  { include: ["<__type_traits/is_volatile.h>", "private", "<type_traits>", "public"] },
514  { include: ["<__type_traits/lazy.h>", "private", "<type_traits>", "public"] },
515  { include: ["<__type_traits/make_32_64_or_128_bit.h>", "private", "<type_traits>", "public"] },
516  { include: ["<__type_traits/make_signed.h>", "private", "<type_traits>", "public"] },
517  { include: ["<__type_traits/make_unsigned.h>", "private", "<type_traits>", "public"] },
518  { include: ["<__type_traits/nat.h>", "private", "<type_traits>", "public"] },
519  { include: ["<__type_traits/negation.h>", "private", "<type_traits>", "public"] },
520  { include: ["<__type_traits/promote.h>", "private", "<type_traits>", "public"] },
521  { include: ["<__type_traits/rank.h>", "private", "<type_traits>", "public"] },
522  { include: ["<__type_traits/remove_all_extents.h>", "private", "<type_traits>", "public"] },
523  { include: ["<__type_traits/remove_const.h>", "private", "<type_traits>", "public"] },
524  { include: ["<__type_traits/remove_cv.h>", "private", "<type_traits>", "public"] },
525  { include: ["<__type_traits/remove_cvref.h>", "private", "<type_traits>", "public"] },
526  { include: ["<__type_traits/remove_extent.h>", "private", "<type_traits>", "public"] },
527  { include: ["<__type_traits/remove_pointer.h>", "private", "<type_traits>", "public"] },
528  { include: ["<__type_traits/remove_reference.h>", "private", "<type_traits>", "public"] },
529  { include: ["<__type_traits/remove_volatile.h>", "private", "<type_traits>", "public"] },
530  { include: ["<__type_traits/type_identity.h>", "private", "<type_traits>", "public"] },
531  { include: ["<__type_traits/type_list.h>", "private", "<type_traits>", "public"] },
532  { include: ["<__type_traits/underlying_type.h>", "private", "<type_traits>", "public"] },
533  { include: ["<__type_traits/void_t.h>", "private", "<type_traits>", "public"] },
534
535  { include: ["<__variant/monostate.h>", "private", "<variant>", "public"] },
536
537  { symbol: ["std::__bit_reference", "private", "<vector>", "public"] },
538  { include: ["<__bit_reference>", "private",  "<vector>", "public"] },
539
540  { include: ["<scripts/pnglibconf.h.prebuilt>", "private", "<pngconf.h>", "public"] },
541
542  # Without these, IWYU won't accept the C++ wrappers and throws
543  # a mysterious "cyclical import" error.
544  # https://github.com/include-what-you-use/include-what-you-use/blob/4c0f39615982c57a9cb313c971c6f45fca1cc1fe/iwyu_include_picker.cc#L573
545  { include: ["<assert.h>", "public", "<cassert>", "public"] },
546  { include: ["<complex.h>", "public", "<ccomplex>", "public"] },
547  { include: ["<ctype.h>", "public", "<cctype>", "public"] },
548  { include: ["<errno.h>", "public", "<cerrno>", "public"] },
549  { include: ["<fenv.h>", "public", "<cfenv>", "public"] },
550  { include: ["<float.h>", "public", "<cfloat>", "public"] },
551  { include: ["<inttypes.h>", "public", "<cinttypes>", "public"] },
552  { include: ["<iso646.h>", "public", "<ciso646>", "public"] },
553  { include: ["<limits.h>", "public", "<climits>", "public"] },
554  { include: ["<locale.h>", "public", "<clocale>", "public"] },
555  { include: ["<math.h>", "public", "<cmath>", "public"] },
556  { include: ["<setjmp.h>", "public", "<csetjmp>", "public"] },
557  { include: ["<signal.h>", "public", "<csignal>", "public"] },
558  { include: ["<stdalign.h>", "public", "<cstdalign>", "public"] },
559  { include: ["<stdarg.h>", "public", "<cstdarg>", "public"] },
560  { include: ["<stdbool.h>", "public", "<cstdbool>", "public"] },
561  { include: ["<stddef.h>", "public", "<cstddef>", "public"] },
562  { include: ["<stdint.h>", "public", "<cstdint>", "public"] },
563  { include: ["<stdio.h>", "public", "<cstdio>", "public"] },
564  { include: ["<stdlib.h>", "public", "<cstdlib>", "public"] },
565  { include: ["<string.h>", "public", "<cstring>", "public"] },
566  { include: ["<tgmath.h>", "public", "<ctgmath>", "public"] },
567  { include: ["<time.h>", "public", "<ctime>", "public"] },
568  { include: ["<uchar.h>", "public", "<cuchar>", "public"] },
569  { include: ["<wchar.h>", "public", "<cwchar>", "public"] },
570  { include: ["<wctype.h>", "public", "<cwctype>", "public"] },
571
572  # From https://github.com/include-what-you-use/include-what-you-use/blob/4c0f39615982c57a9cb313c971c6f45fca1cc1fe/iwyu_include_picker.cc#L327
573  { symbol: ["std::allocator", "private", "<memory>", "public"] },
574  { symbol: ["std::allocator", "private", "<string>", "public"] },
575  { symbol: ["std::allocator", "private", "<vector>", "public"] },
576  { symbol: ["std::allocator", "private", "<map>", "public"] },
577  { symbol: ["std::allocator", "private", "<set>", "public"] },
578  { symbol: ["std::char_traits", "private", "<string>", "public"] },
579  { symbol: ["std::char_traits", "private", "<ostream>", "public"] },
580  { symbol: ["std::char_traits", "private", "<istream>", "public"] },
581
582  { symbol: ["std::time_t", "private", "<ctime>", "public"] },
583  { symbol: ["time_t", "private", "<ctime>", "public"] },
584  { symbol: ["tm", "private", "<ctime>", "public"] },
585
586  # We are pretty forgiving with iostream headers. If we specify
587  # any of them, that is generally sufficient.
588  # https://github.com/include-what-you-use/include-what-you-use/blob/4c0f39615982c57a9cb313c971c6f45fca1cc1fe/iwyu_include_picker.cc#L995
589  {include: ["<ios>", "public", "<istream>", "public"] },
590  {include: ["<ios>", "public", "<ostream>", "public"] },
591  {include: ["<iosfwd>", "public", "<ios>", "public"] },
592  {include: ["<iosfwd>", "public", "<streambuf>", "public"] },
593  {include: ["<istream>", "public", "<fstream>", "public"] },
594  {include: ["<istream>", "public", "<iostream>", "public"] },
595  {include: ["<istream>", "public", "<sstream>", "public"] },
596  {include: ["<ostream>", "public", "<fstream>", "public"] },
597  {include: ["<ostream>", "public", "<iostream>", "public"] },
598  {include: ["<ostream>", "public", "<istream>", "public"] },
599  {include: ["<ostream>", "public", "<sstream>", "public"] },
600  {include: ["<streambuf>", "public", "<ios>", "public"] },
601
602  { symbol: ["inflate", "private", "\"zlib.h\"", "public"] },
603  { symbol: ["inflateEnd", "private", "\"zlib.h\"", "public"] },
604
605  { include: ["<asm/errno-base.h>", "private", "<errno.h>", "public"] },
606
607  # Pretend SK_DEBUG is defined in SkDebug.h
608  { symbol: ["SK_DEBUG", "private", "\"include/private/base/SkDebug.h\"", "public"] },
609  { symbol: ["SK_DEBUG", "private", "\"include/private/base/SkLoadUserConfig.h\"", "public"] },
610
611  # Pretend SK_GANESH is defined in any of these
612  { symbol: ["SK_GANESH", "private", "\"include/private/base/SkLoadUserConfig.h\"", "public"] },
613  { symbol: ["SK_GANESH", "private", "\"include/core/SkTypes.h\"", "public"] },
614
615  { symbol: ["SkScalar", "private", "\"include/core/SkScalar.h\"", "public"] },
616
617  # The TRACE_EVENT macros use std::atomic, but TraceEvent.h already includes <atomic> alongside
618  # the macros themselves; IWYU just can't see through the preprocessor.
619  { symbol: ["std::atomic", "private", "<atomic>", "public"] },
620  { symbol: ["std::atomic", "private", "\"src/core/SkTraceEvent.h\"", "public"] },
621
622  # IWYU seems to get confused on where the namespace sktext is "defined". Any files in
623  # this list are ok.
624  { symbol: ["sktext", "private", "\"src/text/StrikeForGPU.h\"", "public"] },
625  { symbol: ["sktext", "private", "\"src/text/GlyphRun.h\"", "public"] },
626
627  # IWYU gets confused where namespace skia_private is "defined". Start a list, but figure
628  # out if this can be done with a glob.
629  { symbol: ["skia_private", "private", "\"include/private/base/SkTemplates.h\"", "public"] },
630  { symbol: ["skia_private", "private", "\"include/private/base/SkTArray.h\"", "public"] },
631  { symbol: ["skia_private", "private", "\"src/core/SkTHash.h\"", "public"] },
632  { symbol: ["skia_private", "private", "\"src/core/SkTraceEvent.h\"", "public"] },
633
634  { include: ["\"modules/skcms/src/skcms_public.h\"", "private", "\"modules/skcms/skcms.h\"", "public"] },
635
636  { include: ["\"jmorecfg.h\"", "private", "\"jpeglib.h\"", "public"] },
637
638  { include: ["\"chromeconf.h\"", "private", "\"zlib.h\"", "public"] },
639]
640