@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.215

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/c/stdlib.zig +32 -22
  2. package/compiler/aro/aro/Compilation.zig +0 -3
  3. package/compiler/translate-c/ast.zig +5 -2
  4. package/compiler_rt/arm.zig +3 -3
  5. package/compiler_rt/trunctfhf2.zig +3 -0
  6. package/compiler_rt.zig +1 -22
  7. package/docs/wasm/markdown/Parser.zig +5 -9
  8. package/include/__clang_spirv_builtins.h +12 -12
  9. package/include/__float_float.h +176 -0
  10. package/include/__float_header_macro.h +12 -0
  11. package/include/__float_infinity_nan.h +20 -0
  12. package/include/amo.h +131 -0
  13. package/include/amxavx512intrin.h +215 -1
  14. package/include/amxintrin.h +0 -2
  15. package/include/arm_acle.h +37 -27
  16. package/include/arm_neon.h +218 -82
  17. package/include/arm_sme.h +8 -8
  18. package/include/arm_sve.h +4162 -3782
  19. package/include/avx10_2_512bf16intrin.h +19 -12
  20. package/include/avx10_2_512convertintrin.h +1 -1
  21. package/include/avx10_2_512niintrin.h +31 -31
  22. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  23. package/include/avx10_2bf16intrin.h +54 -45
  24. package/include/avx10_2convertintrin.h +2 -2
  25. package/include/avx10_2copyintrin.h +1 -1
  26. package/include/avx10_2niintrin.h +14 -14
  27. package/include/avx10_2satcvtdsintrin.h +2 -2
  28. package/include/avx2intrin.h +275 -377
  29. package/include/avx512bf16intrin.h +25 -16
  30. package/include/avx512bitalgintrin.h +19 -30
  31. package/include/avx512bwintrin.h +386 -505
  32. package/include/avx512cdintrin.h +42 -55
  33. package/include/avx512dqintrin.h +132 -161
  34. package/include/avx512fintrin.h +1015 -1424
  35. package/include/avx512fp16intrin.h +112 -110
  36. package/include/avx512ifmaintrin.h +32 -34
  37. package/include/avx512ifmavlintrin.h +73 -46
  38. package/include/avx512vbmi2intrin.h +43 -32
  39. package/include/avx512vbmiintrin.h +19 -27
  40. package/include/avx512vbmivlintrin.h +35 -49
  41. package/include/avx512vlbf16intrin.h +32 -22
  42. package/include/avx512vlbitalgintrin.h +37 -53
  43. package/include/avx512vlbwintrin.h +470 -573
  44. package/include/avx512vlcdintrin.h +74 -102
  45. package/include/avx512vldqintrin.h +110 -127
  46. package/include/avx512vlfp16intrin.h +130 -111
  47. package/include/avx512vlintrin.h +945 -1299
  48. package/include/avx512vlvbmi2intrin.h +78 -63
  49. package/include/avx512vlvnniintrin.h +21 -18
  50. package/include/avx512vlvp2intersectintrin.h +2 -2
  51. package/include/avx512vnniintrin.h +10 -10
  52. package/include/avx512vp2intersectintrin.h +1 -2
  53. package/include/avx512vpopcntdqintrin.h +8 -10
  54. package/include/avx512vpopcntdqvlintrin.h +17 -15
  55. package/include/avxifmaintrin.h +16 -0
  56. package/include/avxintrin.h +165 -241
  57. package/include/avxvnniint16intrin.h +118 -99
  58. package/include/avxvnniint8intrin.h +56 -32
  59. package/include/avxvnniintrin.h +16 -8
  60. package/include/cpuid.h +101 -4
  61. package/include/emmintrin.h +168 -168
  62. package/include/f16cintrin.h +23 -9
  63. package/include/float.h +16 -155
  64. package/include/fma4intrin.h +98 -96
  65. package/include/fmaintrin.h +96 -66
  66. package/include/gfniintrin.h +21 -16
  67. package/include/hexagon_types.h +23 -20
  68. package/include/hvx_hexagon_protos.h +649 -860
  69. package/include/immintrin.h +0 -12
  70. package/include/intrin.h +4 -0
  71. package/include/lasxintrin.h +113 -0
  72. package/include/llvm_libc_wrappers/assert.h +3 -5
  73. package/include/llvm_libc_wrappers/ctype.h +3 -115
  74. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  75. package/include/llvm_libc_wrappers/stdio.h +10 -38
  76. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  77. package/include/llvm_libc_wrappers/string.h +2 -70
  78. package/include/llvm_libc_wrappers/time.h +4 -10
  79. package/include/mmintrin.h +188 -257
  80. package/include/module.modulemap +23 -4
  81. package/include/movrs_avx10_2_512intrin.h +2 -2
  82. package/include/movrs_avx10_2intrin.h +4 -4
  83. package/include/pmmintrin.h +12 -24
  84. package/include/ptrauth.h +16 -2
  85. package/include/riscv_mips.h +34 -0
  86. package/include/riscv_nds.h +89 -0
  87. package/include/sifive_vector.h +58 -2
  88. package/include/sm4evexintrin.h +2 -2
  89. package/include/smmintrin.h +77 -59
  90. package/include/spirvintrin.h +194 -0
  91. package/include/stddefer.h +19 -0
  92. package/include/tmmintrin.h +116 -147
  93. package/include/vaesintrin.h +1 -2
  94. package/include/xmmintrin.h +44 -70
  95. package/include/xopintrin.h +20 -10
  96. package/libcxx/include/__algorithm/all_of.h +11 -5
  97. package/libcxx/include/__algorithm/comp.h +4 -0
  98. package/libcxx/include/__algorithm/copy.h +28 -147
  99. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  100. package/libcxx/include/__algorithm/copy_n.h +50 -16
  101. package/libcxx/include/__algorithm/count.h +2 -2
  102. package/libcxx/include/__algorithm/equal.h +43 -55
  103. package/libcxx/include/__algorithm/fill.h +26 -8
  104. package/libcxx/include/__algorithm/fill_n.h +32 -46
  105. package/libcxx/include/__algorithm/find.h +96 -39
  106. package/libcxx/include/__algorithm/find_end.h +105 -0
  107. package/libcxx/include/__algorithm/for_each.h +18 -24
  108. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  109. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  110. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  111. package/libcxx/include/__algorithm/generate.h +4 -2
  112. package/libcxx/include/__algorithm/generate_n.h +19 -6
  113. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  114. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  115. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  116. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  117. package/libcxx/include/__algorithm/make_heap.h +16 -4
  118. package/libcxx/include/__algorithm/mismatch.h +2 -2
  119. package/libcxx/include/__algorithm/move.h +8 -19
  120. package/libcxx/include/__algorithm/move_backward.h +9 -24
  121. package/libcxx/include/__algorithm/none_of.h +4 -4
  122. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  123. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  124. package/libcxx/include/__algorithm/pstl.h +9 -9
  125. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  126. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  127. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  128. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  129. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  130. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  131. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  132. package/libcxx/include/__algorithm/rotate.h +27 -44
  133. package/libcxx/include/__algorithm/search_n.h +49 -37
  134. package/libcxx/include/__algorithm/sift_down.h +19 -18
  135. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  136. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  137. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  138. package/libcxx/include/__assertion_handler +31 -4
  139. package/libcxx/include/__atomic/atomic.h +36 -60
  140. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  141. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  142. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  143. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  144. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  145. package/libcxx/include/__atomic/contention_t.h +27 -3
  146. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  147. package/libcxx/include/__bit/countl.h +1 -2
  148. package/libcxx/include/__bit/countr.h +1 -2
  149. package/libcxx/include/__bit/has_single_bit.h +1 -1
  150. package/libcxx/include/__bit/popcount.h +0 -1
  151. package/libcxx/include/__bit/rotate.h +15 -26
  152. package/libcxx/include/__bit_reference +207 -18
  153. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  154. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  155. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  156. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  157. package/libcxx/include/__charconv/traits.h +3 -24
  158. package/libcxx/include/__chrono/day.h +11 -0
  159. package/libcxx/include/__chrono/duration.h +58 -33
  160. package/libcxx/include/__chrono/file_clock.h +4 -2
  161. package/libcxx/include/__chrono/is_clock.h +72 -0
  162. package/libcxx/include/__chrono/leap_second.h +13 -0
  163. package/libcxx/include/__chrono/month.h +13 -0
  164. package/libcxx/include/__chrono/month_weekday.h +22 -0
  165. package/libcxx/include/__chrono/monthday.h +20 -0
  166. package/libcxx/include/__chrono/steady_clock.h +1 -1
  167. package/libcxx/include/__chrono/system_clock.h +3 -3
  168. package/libcxx/include/__chrono/time_point.h +37 -13
  169. package/libcxx/include/__chrono/weekday.h +25 -0
  170. package/libcxx/include/__chrono/year.h +11 -0
  171. package/libcxx/include/__chrono/year_month.h +13 -0
  172. package/libcxx/include/__chrono/year_month_day.h +23 -0
  173. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  174. package/libcxx/include/__chrono/zoned_time.h +16 -0
  175. package/libcxx/include/__compare/is_eq.h +6 -6
  176. package/libcxx/include/__compare/strong_order.h +12 -30
  177. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  178. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  179. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  180. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  181. package/libcxx/include/__config +63 -280
  182. package/libcxx/include/__configuration/abi.h +14 -24
  183. package/libcxx/include/__configuration/availability.h +65 -118
  184. package/libcxx/include/__configuration/compiler.h +6 -6
  185. package/libcxx/include/__configuration/experimental.h +38 -0
  186. package/libcxx/include/__configuration/hardening.h +215 -0
  187. package/libcxx/include/__configuration/language.h +3 -0
  188. package/libcxx/include/__configuration/platform.h +9 -16
  189. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  190. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  191. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  192. package/libcxx/include/__exception/exception.h +6 -4
  193. package/libcxx/include/__exception/exception_ptr.h +27 -5
  194. package/libcxx/include/__exception/nested_exception.h +2 -2
  195. package/libcxx/include/__exception/operations.h +5 -5
  196. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  197. package/libcxx/include/__expected/expected.h +62 -64
  198. package/libcxx/include/__expected/unexpected.h +4 -4
  199. package/libcxx/include/__filesystem/copy_options.h +4 -4
  200. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  201. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  202. package/libcxx/include/__filesystem/directory_options.h +7 -4
  203. package/libcxx/include/__filesystem/file_status.h +3 -3
  204. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  205. package/libcxx/include/__filesystem/operations.h +97 -66
  206. package/libcxx/include/__filesystem/path.h +68 -64
  207. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  208. package/libcxx/include/__filesystem/perm_options.h +4 -4
  209. package/libcxx/include/__filesystem/perms.h +4 -4
  210. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  211. package/libcxx/include/__filesystem/space_info.h +1 -1
  212. package/libcxx/include/__filesystem/u8path.h +12 -14
  213. package/libcxx/include/__flat_map/flat_map.h +88 -71
  214. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  215. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  216. package/libcxx/include/__flat_map/utils.h +1 -0
  217. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  218. package/libcxx/include/__flat_set/flat_set.h +86 -68
  219. package/libcxx/include/__format/concepts.h +0 -14
  220. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  221. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  222. package/libcxx/include/__format/format_arg.h +7 -10
  223. package/libcxx/include/__format/format_args.h +1 -1
  224. package/libcxx/include/__format/format_context.h +5 -5
  225. package/libcxx/include/__format/format_parse_context.h +2 -2
  226. package/libcxx/include/__format/formatter_output.h +30 -34
  227. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  228. package/libcxx/include/__format/range_default_formatter.h +2 -41
  229. package/libcxx/include/__format/range_format.h +71 -0
  230. package/libcxx/include/__format/range_formatter.h +1 -0
  231. package/libcxx/include/__format/width_estimation_table.h +4 -2
  232. package/libcxx/include/__functional/bind.h +10 -15
  233. package/libcxx/include/__functional/bind_back.h +1 -1
  234. package/libcxx/include/__functional/bind_front.h +1 -1
  235. package/libcxx/include/__functional/function.h +57 -75
  236. package/libcxx/include/__functional/hash.h +1 -10
  237. package/libcxx/include/__functional/identity.h +1 -1
  238. package/libcxx/include/__functional/is_transparent.h +8 -0
  239. package/libcxx/include/__functional/mem_fn.h +2 -1
  240. package/libcxx/include/__functional/operations.h +18 -0
  241. package/libcxx/include/__functional/ranges_operations.h +7 -0
  242. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  243. package/libcxx/include/__functional/weak_result_type.h +14 -28
  244. package/libcxx/include/__fwd/ios.h +1 -1
  245. package/libcxx/include/__fwd/tuple.h +14 -0
  246. package/libcxx/include/__hash_table +371 -357
  247. package/libcxx/include/__ios/fpos.h +4 -4
  248. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  249. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  250. package/libcxx/include/__iterator/concepts.h +6 -9
  251. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  252. package/libcxx/include/__iterator/distance.h +40 -18
  253. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  254. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  255. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  256. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  257. package/libcxx/include/__iterator/iter_move.h +1 -1
  258. package/libcxx/include/__iterator/iterator.h +13 -0
  259. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  260. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  261. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  262. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  263. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  264. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  265. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  266. package/libcxx/include/__locale +3 -10
  267. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  268. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  269. package/libcxx/include/__locale_dir/messages.h +1 -1
  270. package/libcxx/include/__locale_dir/money.h +2 -2
  271. package/libcxx/include/__locale_dir/num.h +190 -243
  272. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  273. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  274. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  275. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  276. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  277. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  278. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  279. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  280. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  281. package/libcxx/include/__locale_dir/time.h +3 -7
  282. package/libcxx/include/__math/hypot.h +1 -1
  283. package/libcxx/include/__math/logarithms.h +1 -1
  284. package/libcxx/include/__math/traits.h +80 -11
  285. package/libcxx/include/__mdspan/extents.h +7 -4
  286. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  287. package/libcxx/include/__mdspan/mdspan.h +29 -23
  288. package/libcxx/include/__memory/addressof.h +7 -5
  289. package/libcxx/include/__memory/align.h +18 -1
  290. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  291. package/libcxx/include/__memory/allocator.h +14 -26
  292. package/libcxx/include/__memory/allocator_traits.h +6 -4
  293. package/libcxx/include/__memory/compressed_pair.h +15 -9
  294. package/libcxx/include/__memory/construct_at.h +12 -23
  295. package/libcxx/include/__memory/inout_ptr.h +1 -1
  296. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  297. package/libcxx/include/__memory/out_ptr.h +1 -1
  298. package/libcxx/include/__memory/pointer_traits.h +1 -1
  299. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  300. package/libcxx/include/__memory/shared_count.h +9 -30
  301. package/libcxx/include/__memory/shared_ptr.h +100 -145
  302. package/libcxx/include/__memory/temp_value.h +1 -2
  303. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  304. package/libcxx/include/__memory/unique_ptr.h +14 -16
  305. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  306. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  307. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  308. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  309. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  310. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  311. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  312. package/libcxx/include/__mutex/mutex.h +2 -2
  313. package/libcxx/include/__mutex/once_flag.h +14 -11
  314. package/libcxx/include/__mutex/tag_types.h +3 -3
  315. package/libcxx/include/__mutex/unique_lock.h +8 -7
  316. package/libcxx/include/__new/align_val_t.h +6 -0
  317. package/libcxx/include/__new/allocate.h +1 -2
  318. package/libcxx/include/__new/exceptions.h +8 -2
  319. package/libcxx/include/__new/global_new_delete.h +4 -11
  320. package/libcxx/include/__new/interference_size.h +0 -4
  321. package/libcxx/include/__new/launder.h +3 -5
  322. package/libcxx/include/__new/nothrow_t.h +1 -1
  323. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  324. package/libcxx/include/__numeric/midpoint.h +9 -14
  325. package/libcxx/include/__numeric/pstl.h +2 -2
  326. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  327. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  328. package/libcxx/include/__pstl/backends/default.h +14 -14
  329. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  330. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  331. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  332. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  333. package/libcxx/include/__random/binomial_distribution.h +10 -4
  334. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  335. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  336. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  337. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  338. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  339. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  340. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  341. package/libcxx/include/__ranges/common_view.h +7 -7
  342. package/libcxx/include/__ranges/drop_view.h +8 -8
  343. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  344. package/libcxx/include/__ranges/elements_of.h +49 -0
  345. package/libcxx/include/__ranges/empty_view.h +5 -5
  346. package/libcxx/include/__ranges/filter_view.h +10 -10
  347. package/libcxx/include/__ranges/iota_view.h +41 -22
  348. package/libcxx/include/__ranges/owning_view.h +15 -15
  349. package/libcxx/include/__ranges/ref_view.h +6 -6
  350. package/libcxx/include/__ranges/repeat_view.h +17 -10
  351. package/libcxx/include/__ranges/single_view.h +8 -8
  352. package/libcxx/include/__ranges/take_view.h +9 -9
  353. package/libcxx/include/__ranges/transform_view.h +1 -2
  354. package/libcxx/include/__ranges/view_interface.h +10 -10
  355. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  356. package/libcxx/include/__ranges/zip_view.h +20 -20
  357. package/libcxx/include/__split_buffer +612 -240
  358. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  359. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  360. package/libcxx/include/__stop_token/stop_source.h +1 -1
  361. package/libcxx/include/__stop_token/stop_state.h +4 -4
  362. package/libcxx/include/__stop_token/stop_token.h +1 -1
  363. package/libcxx/include/__string/char_traits.h +51 -31
  364. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  365. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  366. package/libcxx/include/__system_error/error_category.h +8 -8
  367. package/libcxx/include/__system_error/error_code.h +5 -5
  368. package/libcxx/include/__system_error/error_condition.h +4 -4
  369. package/libcxx/include/__system_error/system_error.h +1 -1
  370. package/libcxx/include/__thread/id.h +1 -1
  371. package/libcxx/include/__thread/jthread.h +1 -1
  372. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  373. package/libcxx/include/__thread/support/c11.h +8 -8
  374. package/libcxx/include/__thread/support/pthread.h +8 -8
  375. package/libcxx/include/__thread/support/windows.h +8 -8
  376. package/libcxx/include/__thread/thread.h +13 -8
  377. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  378. package/libcxx/include/__tree +849 -701
  379. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  380. package/libcxx/include/__tuple/tuple_element.h +0 -12
  381. package/libcxx/include/__tuple/tuple_size.h +0 -4
  382. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  383. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  384. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  385. package/libcxx/include/__type_traits/invoke.h +8 -0
  386. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  387. package/libcxx/include/__type_traits/is_array.h +26 -0
  388. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  389. package/libcxx/include/__type_traits/is_final.h +1 -1
  390. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  391. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  392. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  393. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  394. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  395. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  396. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  397. package/libcxx/include/__utility/cmp.h +19 -7
  398. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  399. package/libcxx/include/__utility/in_place.h +1 -1
  400. package/libcxx/include/__utility/integer_sequence.h +56 -41
  401. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  402. package/libcxx/include/__utility/pair.h +22 -25
  403. package/libcxx/include/__utility/scope_guard.h +2 -0
  404. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  405. package/libcxx/include/__vector/vector.h +187 -160
  406. package/libcxx/include/__vector/vector_bool.h +76 -83
  407. package/libcxx/include/any +118 -155
  408. package/libcxx/include/array +88 -56
  409. package/libcxx/include/atomic +2 -0
  410. package/libcxx/include/barrier +20 -24
  411. package/libcxx/include/bitset +49 -30
  412. package/libcxx/include/ccomplex +3 -11
  413. package/libcxx/include/chrono +47 -0
  414. package/libcxx/include/ciso646 +3 -6
  415. package/libcxx/include/complex +77 -65
  416. package/libcxx/include/complex.h +10 -10
  417. package/libcxx/include/condition_variable +3 -3
  418. package/libcxx/include/cstdalign +3 -10
  419. package/libcxx/include/cstdbool +3 -10
  420. package/libcxx/include/ctgmath +2 -11
  421. package/libcxx/include/ctype.h +24 -24
  422. package/libcxx/include/cwchar +2 -2
  423. package/libcxx/include/deque +109 -225
  424. package/libcxx/include/errno.h +269 -269
  425. package/libcxx/include/exception +4 -1
  426. package/libcxx/include/ext/hash_map +7 -48
  427. package/libcxx/include/ext/hash_set +2 -8
  428. package/libcxx/include/fenv.h +43 -43
  429. package/libcxx/include/flat_map +663 -11
  430. package/libcxx/include/flat_set +543 -8
  431. package/libcxx/include/float.h +16 -16
  432. package/libcxx/include/forward_list +33 -53
  433. package/libcxx/include/fstream +57 -42
  434. package/libcxx/include/future +41 -51
  435. package/libcxx/include/initializer_list +9 -3
  436. package/libcxx/include/inttypes.h +16 -16
  437. package/libcxx/include/ios +28 -28
  438. package/libcxx/include/istream +19 -13
  439. package/libcxx/include/iterator +10 -0
  440. package/libcxx/include/latch +7 -5
  441. package/libcxx/include/limits +4 -4
  442. package/libcxx/include/list +61 -79
  443. package/libcxx/include/map +386 -274
  444. package/libcxx/include/math.h +19 -0
  445. package/libcxx/include/mdspan +1 -5
  446. package/libcxx/include/mutex +29 -19
  447. package/libcxx/include/optional +644 -149
  448. package/libcxx/include/print +9 -5
  449. package/libcxx/include/queue +39 -37
  450. package/libcxx/include/ranges +48 -0
  451. package/libcxx/include/regex +33 -31
  452. package/libcxx/include/scoped_allocator +16 -11
  453. package/libcxx/include/semaphore +15 -18
  454. package/libcxx/include/set +220 -192
  455. package/libcxx/include/shared_mutex +3 -8
  456. package/libcxx/include/span +53 -37
  457. package/libcxx/include/sstream +34 -28
  458. package/libcxx/include/stack +13 -15
  459. package/libcxx/include/stddef.h +10 -10
  460. package/libcxx/include/stdexcept +2 -2
  461. package/libcxx/include/stdio.h +20 -21
  462. package/libcxx/include/streambuf +59 -19
  463. package/libcxx/include/string +574 -573
  464. package/libcxx/include/string_view +113 -89
  465. package/libcxx/include/strstream +10 -10
  466. package/libcxx/include/syncstream +4 -4
  467. package/libcxx/include/tgmath.h +12 -12
  468. package/libcxx/include/tuple +242 -212
  469. package/libcxx/include/type_traits +8 -2
  470. package/libcxx/include/typeindex +5 -3
  471. package/libcxx/include/typeinfo +92 -89
  472. package/libcxx/include/unordered_map +179 -304
  473. package/libcxx/include/unordered_set +168 -195
  474. package/libcxx/include/utility +12 -0
  475. package/libcxx/include/valarray +106 -161
  476. package/libcxx/include/variant +25 -33
  477. package/libcxx/include/version +41 -24
  478. package/libcxx/include/wctype.h +29 -29
  479. package/libcxx/src/any.cpp +4 -0
  480. package/libcxx/src/atomic.cpp +365 -80
  481. package/libcxx/src/barrier.cpp +4 -3
  482. package/libcxx/src/charconv.cpp +6 -3
  483. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  484. package/libcxx/src/error_category.cpp +3 -1
  485. package/libcxx/src/exception.cpp +2 -10
  486. package/libcxx/src/experimental/time_zone.cpp +1 -1
  487. package/libcxx/src/experimental/tzdb.cpp +4 -1
  488. package/libcxx/src/filesystem/error.h +4 -22
  489. package/libcxx/src/filesystem/format_string.h +9 -18
  490. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  491. package/libcxx/src/filesystem/operations.cpp +2 -9
  492. package/libcxx/src/filesystem/path.cpp +3 -1
  493. package/libcxx/src/include/aligned_alloc.h +65 -0
  494. package/libcxx/src/include/config_elast.h +1 -1
  495. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  496. package/libcxx/src/include/overridable_function.h +8 -10
  497. package/libcxx/src/iostream.cpp +56 -37
  498. package/libcxx/src/locale.cpp +213 -196
  499. package/libcxx/src/memory.cpp +12 -14
  500. package/libcxx/src/mutex_destructor.cpp +1 -1
  501. package/libcxx/src/new.cpp +5 -5
  502. package/libcxx/src/optional.cpp +4 -0
  503. package/libcxx/src/print.cpp +9 -1
  504. package/libcxx/src/random.cpp +0 -26
  505. package/libcxx/src/string.cpp +10 -25
  506. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  507. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  508. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  509. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  510. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  511. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  512. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  513. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  514. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  515. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  516. package/libcxx/src/system_error.cpp +2 -0
  517. package/libcxx/src/thread.cpp +1 -3
  518. package/libcxx/src/valarray.cpp +1 -2
  519. package/libcxx/src/vector.cpp +2 -2
  520. package/libcxxabi/include/__cxxabi_config.h +42 -23
  521. package/libcxxabi/src/cxa_exception.cpp +4 -2
  522. package/libcxxabi/src/cxa_exception.h +16 -14
  523. package/libcxxabi/src/cxa_personality.cpp +126 -9
  524. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  525. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  526. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  527. package/libcxxabi/src/demangle/Utility.h +21 -7
  528. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  529. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  530. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  531. package/libtsan/LICENSE.TXT +311 -0
  532. package/libtsan/builtins/assembly.h +41 -8
  533. package/libtsan/interception/interception_win.cpp +4 -0
  534. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  535. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  536. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  537. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  538. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  539. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  540. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  541. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  542. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  543. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  544. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  545. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  546. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  547. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  548. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  549. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  550. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  551. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  552. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  553. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  554. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  555. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  556. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  557. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  558. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  559. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  560. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  561. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  562. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  563. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  564. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  565. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  566. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  567. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  568. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  569. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  570. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  571. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  572. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  573. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  574. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  575. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  576. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  577. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  578. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  579. package/libtsan/tsan_debugging.cpp +2 -2
  580. package/libtsan/tsan_flags.cpp +37 -0
  581. package/libtsan/tsan_flags.h +8 -0
  582. package/libtsan/tsan_flags.inc +12 -0
  583. package/libtsan/tsan_interceptors.h +9 -1
  584. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  585. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  586. package/libtsan/tsan_interface.h +3 -3
  587. package/libtsan/tsan_interface_ann.cpp +23 -9
  588. package/libtsan/tsan_mman.cpp +18 -4
  589. package/libtsan/tsan_platform.h +44 -7
  590. package/libtsan/tsan_platform_linux.cpp +42 -14
  591. package/libtsan/tsan_platform_mac.cpp +16 -3
  592. package/libtsan/tsan_report.h +14 -1
  593. package/libtsan/tsan_rtl.cpp +14 -0
  594. package/libtsan/tsan_rtl.h +7 -2
  595. package/libtsan/tsan_rtl_aarch64.S +3 -5
  596. package/libtsan/tsan_rtl_access.cpp +8 -3
  597. package/libtsan/tsan_rtl_amd64.S +2 -0
  598. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  599. package/libtsan/tsan_rtl_report.cpp +132 -65
  600. package/libtsan/tsan_rtl_thread.cpp +31 -9
  601. package/libtsan/tsan_symbolize.cpp +1 -1
  602. package/libtsan/tsan_symbolize.h +1 -1
  603. package/libtsan/tsan_trace.h +1 -1
  604. package/libunwind/include/__libunwind_config.h +11 -2
  605. package/libunwind/include/libunwind.h +117 -11
  606. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  607. package/libunwind/src/AddressSpace.hpp +40 -19
  608. package/libunwind/src/CompactUnwinder.hpp +16 -5
  609. package/libunwind/src/DwarfInstructions.hpp +24 -13
  610. package/libunwind/src/DwarfParser.hpp +60 -22
  611. package/libunwind/src/EHHeaderParser.hpp +7 -4
  612. package/libunwind/src/Registers.hpp +226 -22
  613. package/libunwind/src/Unwind-seh.cpp +6 -7
  614. package/libunwind/src/Unwind-wasm.c +7 -7
  615. package/libunwind/src/UnwindCursor.hpp +167 -49
  616. package/libunwind/src/UnwindLevel1.c +46 -17
  617. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  618. package/libunwind/src/UnwindRegistersSave.S +86 -2
  619. package/libunwind/src/assembly.h +5 -1
  620. package/libunwind/src/config.h +9 -0
  621. package/libunwind/src/gcc_personality_v0.c +79 -6
  622. package/libunwind/src/libunwind.cpp +104 -4
  623. package/libunwind/src/libunwind_ext.h +7 -1
  624. package/libunwind/src/shadow_stack_unwind.h +2 -2
  625. package/lldb/pretty_printers.py +948 -0
  626. package/package.json +1 -1
  627. package/std/Build/Step/Compile.zig +18 -19
  628. package/std/Build/Step/Run.zig +13 -6
  629. package/std/Build/Step.zig +0 -3
  630. package/std/Io/Threaded.zig +3 -0
  631. package/std/Target/aarch64.zig +620 -77
  632. package/std/Target/amdgcn.zig +421 -21
  633. package/std/Target/arm.zig +40 -6
  634. package/std/Target/bpf.zig +6 -0
  635. package/std/Target/hexagon.zig +41 -6
  636. package/std/Target/loongarch.zig +18 -0
  637. package/std/Target/mips.zig +6 -0
  638. package/std/Target/nvptx.zig +58 -35
  639. package/std/Target/powerpc.zig +27 -19
  640. package/std/Target/riscv.zig +415 -177
  641. package/std/Target/sparc.zig +17 -0
  642. package/std/Target/wasm.zig +7 -0
  643. package/std/Target/x86.zig +200 -31
  644. package/std/Target/xtensa.zig +65 -0
  645. package/std/Target.zig +11 -2
  646. package/std/c.zig +7 -0
  647. package/std/debug/Dwarf.zig +14 -11
  648. package/std/debug/Pdb.zig +24 -16
  649. package/std/hash/xxhash.zig +0 -6
  650. package/std/math/log10.zig +0 -2
  651. package/std/math/modf.zig +0 -1
  652. package/std/mem.zig +1 -2
  653. package/std/os/linux/x86.zig +2 -2
  654. package/std/os/windows.zig +130 -1
  655. package/std/simd.zig +4 -21
  656. package/std/start.zig +4 -3
  657. package/std/zig/Ast.zig +5 -7
  658. package/std/zig/AstGen.zig +20 -14
  659. package/std/zig/ErrorBundle.zig +6 -2
  660. package/std/zig/ZonGen.zig +13 -21
  661. package/std/zig/llvm/Builder.zig +2 -2
  662. package/std/zig/system/arm.zig +56 -2
  663. package/std/zig/system/windows.zig +34 -1
  664. package/std/zig/system/x86.zig +60 -16
  665. package/std/zig/system.zig +0 -10
  666. package/include/amxbf16transposeintrin.h +0 -94
  667. package/include/amxcomplextransposeintrin.h +0 -303
  668. package/include/amxfp16transposeintrin.h +0 -94
  669. package/include/amxmovrstransposeintrin.h +0 -200
  670. package/include/amxtf32transposeintrin.h +0 -105
  671. package/include/amxtransposeintrin.h +0 -248
  672. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  673. package/std/Build/Step/CheckObject.zig +0 -2764
@@ -119,6 +119,7 @@ protected:
119
119
  # include <__locale>
120
120
  # include <__type_traits/is_same.h>
121
121
  # include <__utility/is_valid_range.h>
122
+ # include <__utility/scope_guard.h>
122
123
  # include <climits>
123
124
  # include <ios>
124
125
  # include <iosfwd>
@@ -149,47 +150,56 @@ public:
149
150
  virtual ~basic_streambuf() {}
150
151
 
151
152
  // 27.6.2.2.1 locales:
152
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 locale pubimbue(const locale& __loc) {
153
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 locale pubimbue(const locale& __loc) {
153
154
  imbue(__loc);
154
155
  locale __r = __loc_;
155
156
  __loc_ = __loc;
156
157
  return __r;
157
158
  }
158
159
 
159
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 locale getloc() const { return __loc_; }
160
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 locale getloc() const { return __loc_; }
160
161
 
161
162
  // 27.6.2.2.2 buffer and positioning:
162
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 basic_streambuf* pubsetbuf(char_type* __s, streamsize __n) {
163
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 basic_streambuf* pubsetbuf(char_type* __s, streamsize __n) {
163
164
  return setbuf(__s, __n);
164
165
  }
165
166
 
166
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 pos_type
167
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 pos_type
167
168
  pubseekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __which = ios_base::in | ios_base::out) {
168
169
  return seekoff(__off, __way, __which);
169
170
  }
170
171
 
171
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 pos_type
172
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 pos_type
172
173
  pubseekpos(pos_type __sp, ios_base::openmode __which = ios_base::in | ios_base::out) {
173
174
  return seekpos(__sp, __which);
174
175
  }
175
176
 
176
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int pubsync() { return sync(); }
177
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int pubsync() { return sync(); }
177
178
 
178
179
  // Get and put areas:
179
180
  // 27.6.2.2.3 Get area:
180
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 streamsize in_avail() {
181
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 streamsize in_avail() {
182
+ __check_invariants();
183
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
184
+
181
185
  if (gptr() < egptr())
182
186
  return static_cast<streamsize>(egptr() - gptr());
183
187
  return showmanyc();
184
188
  }
185
189
 
186
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type snextc() {
190
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type snextc() {
191
+ __check_invariants();
192
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
193
+
187
194
  if (sbumpc() == traits_type::eof())
188
195
  return traits_type::eof();
189
196
  return sgetc();
190
197
  }
191
198
 
192
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type sbumpc() {
199
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type sbumpc() {
200
+ __check_invariants();
201
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
202
+
193
203
  if (gptr() == egptr())
194
204
  return uflow();
195
205
  int_type __c = traits_type::to_int_type(*gptr());
@@ -197,23 +207,32 @@ public:
197
207
  return __c;
198
208
  }
199
209
 
200
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type sgetc() {
210
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type sgetc() {
211
+ __check_invariants();
212
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
213
+
201
214
  if (gptr() == egptr())
202
215
  return underflow();
203
216
  return traits_type::to_int_type(*gptr());
204
217
  }
205
218
 
206
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 streamsize sgetn(char_type* __s, streamsize __n) { return xsgetn(__s, __n); }
219
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 streamsize sgetn(char_type* __s, streamsize __n) { return xsgetn(__s, __n); }
207
220
 
208
221
  // 27.6.2.2.4 Putback:
209
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type sputbackc(char_type __c) {
222
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type sputbackc(char_type __c) {
223
+ __check_invariants();
224
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
225
+
210
226
  if (eback() == gptr() || !traits_type::eq(__c, *(gptr() - 1)))
211
227
  return pbackfail(traits_type::to_int_type(__c));
212
228
  this->gbump(-1);
213
229
  return traits_type::to_int_type(*gptr());
214
230
  }
215
231
 
216
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type sungetc() {
232
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type sungetc() {
233
+ __check_invariants();
234
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
235
+
217
236
  if (eback() == gptr())
218
237
  return pbackfail();
219
238
  this->gbump(-1);
@@ -221,7 +240,10 @@ public:
221
240
  }
222
241
 
223
242
  // 27.6.2.2.5 Put area:
224
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 int_type sputc(char_type __c) {
243
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 int_type sputc(char_type __c) {
244
+ __check_invariants();
245
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
246
+
225
247
  if (pptr() == epptr())
226
248
  return overflow(traits_type::to_int_type(__c));
227
249
  *pptr() = __c;
@@ -229,7 +251,7 @@ public:
229
251
  return traits_type::to_int_type(__c);
230
252
  }
231
253
 
232
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 streamsize sputn(const char_type* __s, streamsize __n) {
254
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 streamsize sputn(const char_type* __s, streamsize __n) {
233
255
  return xsputn(__s, __n);
234
256
  }
235
257
 
@@ -270,12 +292,12 @@ protected:
270
292
  _LIBCPP_HIDE_FROM_ABI char_type* gptr() const { return __ninp_; }
271
293
  _LIBCPP_HIDE_FROM_ABI char_type* egptr() const { return __einp_; }
272
294
 
273
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 void gbump(int __n) { __ninp_ += __n; }
295
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 void gbump(int __n) { __ninp_ += __n; }
274
296
 
275
297
  // gbump takes an int, so it might not be able to represent the offset we want to add.
276
298
  _LIBCPP_HIDE_FROM_ABI void __gbump_ptrdiff(ptrdiff_t __n) { __ninp_ += __n; }
277
299
 
278
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) {
300
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) {
279
301
  _LIBCPP_ASSERT_VALID_INPUT_RANGE(std::__is_valid_range(__gbeg, __gnext), "[gbeg, gnext) must be a valid range");
280
302
  _LIBCPP_ASSERT_VALID_INPUT_RANGE(std::__is_valid_range(__gbeg, __gend), "[gbeg, gend) must be a valid range");
281
303
  _LIBCPP_ASSERT_VALID_INPUT_RANGE(std::__is_valid_range(__gnext, __gend), "[gnext, gend) must be a valid range");
@@ -289,11 +311,11 @@ protected:
289
311
  _LIBCPP_HIDE_FROM_ABI char_type* pptr() const { return __nout_; }
290
312
  _LIBCPP_HIDE_FROM_ABI char_type* epptr() const { return __eout_; }
291
313
 
292
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 void pbump(int __n) { __nout_ += __n; }
314
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 void pbump(int __n) { __nout_ += __n; }
293
315
 
294
316
  _LIBCPP_HIDE_FROM_ABI void __pbump(streamsize __n) { __nout_ += __n; }
295
317
 
296
- inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1 void setp(char_type* __pbeg, char_type* __pend) {
318
+ inline _LIBCPP_HIDE_FROM_ABI_SINCE_LLVM8 void setp(char_type* __pbeg, char_type* __pend) {
297
319
  _LIBCPP_ASSERT_VALID_INPUT_RANGE(std::__is_valid_range(__pbeg, __pend), "[pbeg, pend) must be a valid range");
298
320
  __bout_ = __nout_ = __pbeg;
299
321
  __eout_ = __pend;
@@ -317,6 +339,9 @@ protected:
317
339
  virtual streamsize showmanyc() { return 0; }
318
340
 
319
341
  virtual streamsize xsgetn(char_type* __s, streamsize __n) {
342
+ __check_invariants();
343
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
344
+
320
345
  int_type __c;
321
346
  streamsize __i = 0;
322
347
  while (__i < __n) {
@@ -338,6 +363,9 @@ protected:
338
363
 
339
364
  virtual int_type underflow() { return traits_type::eof(); }
340
365
  virtual int_type uflow() {
366
+ __check_invariants();
367
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
368
+
341
369
  if (underflow() == traits_type::eof())
342
370
  return traits_type::eof();
343
371
  int_type __c = traits_type::to_int_type(*gptr());
@@ -350,6 +378,9 @@ protected:
350
378
 
351
379
  // 27.6.2.4.5 Put area:
352
380
  virtual streamsize xsputn(const char_type* __s, streamsize __n) {
381
+ __check_invariants();
382
+ auto __guard = std::__make_scope_guard([this] { this->__check_invariants(); });
383
+
353
384
  streamsize __i = 0;
354
385
  while (__i < __n) {
355
386
  if (pptr() >= epptr()) {
@@ -370,6 +401,15 @@ protected:
370
401
 
371
402
  virtual int_type overflow(int_type = traits_type::eof()) { return traits_type::eof(); }
372
403
 
404
+ // This function checks some invariants of the class (it isn't exhaustive).
405
+ _LIBCPP_HIDE_FROM_ABI void __check_invariants() const {
406
+ _LIBCPP_ASSERT_INTERNAL(pbase() <= pptr(), "this is an invariant of the class");
407
+ _LIBCPP_ASSERT_INTERNAL(pptr() <= epptr(), "this is an invariant of the class");
408
+
409
+ _LIBCPP_ASSERT_INTERNAL(eback() <= gptr(), "this is an invariant of the class");
410
+ _LIBCPP_ASSERT_INTERNAL(gptr() <= egptr(), "this is an invariant of the class");
411
+ }
412
+
373
413
  private:
374
414
  locale __loc_;
375
415
  char_type* __binp_ = nullptr;