@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
@@ -7,7 +7,8 @@
7
7
  //===----------------------------------------------------------------------===//
8
8
 
9
9
  #include <__config>
10
- #ifdef _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS
10
+ #if !defined(_LIBCPP_OBJECT_FORMAT_COFF) && !defined(_LIBCPP_OBJECT_FORMAT_XCOFF) && \
11
+ _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 5
11
12
  # define _LIBCPP_SHARED_PTR_DEFINE_LEGACY_INLINE_FUNCTIONS
12
13
  #endif
13
14
 
@@ -132,19 +133,16 @@ __sp_mut& __get_sp_mut(const void* p) {
132
133
 
133
134
  #endif // _LIBCPP_HAS_THREADS
134
135
 
135
- void* align(size_t alignment, size_t size, void*& ptr, size_t& space) {
136
- void* r = nullptr;
137
- if (size <= space) {
138
- char* p1 = static_cast<char*>(ptr);
139
- char* p2 = reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(p1 + (alignment - 1)) & -alignment);
140
- size_t d = static_cast<size_t>(p2 - p1);
141
- if (d <= space - size) {
142
- r = p2;
143
- ptr = r;
144
- space -= d;
145
- }
146
- }
147
- return r;
136
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 21
137
+
138
+ _LIBCPP_DIAGNOSTIC_PUSH
139
+ _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wmissing-prototypes")
140
+ // This function only exists for ABI compatibility and we therefore don't provide a declaration in the headers
141
+ _LIBCPP_EXPORTED_FROM_ABI void* align(size_t alignment, size_t size, void*& ptr, size_t& space) {
142
+ return __align_inline::align(alignment, size, ptr, space);
148
143
  }
144
+ _LIBCPP_DIAGNOSTIC_POP
145
+
146
+ #endif
149
147
 
150
148
  _LIBCPP_END_NAMESPACE_STD
@@ -19,7 +19,7 @@
19
19
  #include <__config>
20
20
  #include <__thread/support.h>
21
21
 
22
- #if _LIBCPP_ABI_VERSION == 1 || !_LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION
22
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 9 || !_LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION
23
23
  # define NEEDS_MUTEX_DESTRUCTOR
24
24
  #endif
25
25
 
@@ -6,9 +6,9 @@
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
8
8
 
9
+ #include "include/aligned_alloc.h"
9
10
  #include "include/overridable_function.h"
10
11
  #include <__assert>
11
- #include <__memory/aligned_alloc.h>
12
12
  #include <cstddef>
13
13
  #include <cstdlib>
14
14
  #include <new>
@@ -43,7 +43,7 @@ static void* operator_new_impl(std::size_t size) {
43
43
  return p;
44
44
  }
45
45
 
46
- _LIBCPP_OVERRIDABLE_FUNCTION(void*, operator new, (std::size_t size)) _THROW_BAD_ALLOC {
46
+ OVERRIDABLE_FUNCTION void* operator new(std::size_t size) _THROW_BAD_ALLOC {
47
47
  void* p = operator_new_impl(size);
48
48
  if (p == nullptr)
49
49
  __throw_bad_alloc_shim();
@@ -74,7 +74,7 @@ _LIBCPP_WEAK void* operator new(size_t size, const std::nothrow_t&) noexcept {
74
74
  # endif
75
75
  }
76
76
 
77
- _LIBCPP_OVERRIDABLE_FUNCTION(void*, operator new[], (size_t size)) _THROW_BAD_ALLOC { return ::operator new(size); }
77
+ OVERRIDABLE_FUNCTION void* operator new[](size_t size) _THROW_BAD_ALLOC { return ::operator new(size); }
78
78
 
79
79
  _LIBCPP_WEAK void* operator new[](size_t size, const std::nothrow_t&) noexcept {
80
80
  # if !_LIBCPP_HAS_EXCEPTIONS
@@ -134,7 +134,7 @@ static void* operator_new_aligned_impl(std::size_t size, std::align_val_t alignm
134
134
  return p;
135
135
  }
136
136
 
137
- _LIBCPP_OVERRIDABLE_FUNCTION(void*, operator new, (std::size_t size, std::align_val_t alignment)) _THROW_BAD_ALLOC {
137
+ OVERRIDABLE_FUNCTION void* operator new(std::size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC {
138
138
  void* p = operator_new_aligned_impl(size, alignment);
139
139
  if (p == nullptr)
140
140
  __throw_bad_alloc_shim();
@@ -165,7 +165,7 @@ _LIBCPP_WEAK void* operator new(size_t size, std::align_val_t alignment, const s
165
165
  # endif
166
166
  }
167
167
 
168
- _LIBCPP_OVERRIDABLE_FUNCTION(void*, operator new[], (size_t size, std::align_val_t alignment)) _THROW_BAD_ALLOC {
168
+ OVERRIDABLE_FUNCTION void* operator new[](size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC {
169
169
  return ::operator new(size, alignment);
170
170
  }
171
171
 
@@ -19,6 +19,8 @@ const char* bad_optional_access::what() const noexcept { return "bad_optional_ac
19
19
 
20
20
  #include <__config>
21
21
 
22
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 7
23
+
22
24
  // Preserve std::experimental::bad_optional_access for ABI compatibility
23
25
  // Even though it no longer exists in a header file
24
26
  _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL
@@ -34,3 +36,5 @@ public:
34
36
  bad_optional_access::~bad_optional_access() noexcept = default;
35
37
 
36
38
  _LIBCPP_END_NAMESPACE_EXPERIMENTAL
39
+
40
+ #endif // _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 7
@@ -22,6 +22,14 @@
22
22
  # include <windows.h>
23
23
  #elif __has_include(<unistd.h>)
24
24
  # include <unistd.h>
25
+ # if defined(_NEWLIB_VERSION)
26
+ # if defined(_POSIX_C_SOURCE) && __has_include(<stdio.h>)
27
+ # include <stdio.h>
28
+ # define HAS_FILENO_AND_ISATTY
29
+ # endif
30
+ # else
31
+ # define HAS_FILENO_AND_ISATTY
32
+ # endif
25
33
  #endif
26
34
 
27
35
  _LIBCPP_BEGIN_NAMESPACE_STD
@@ -56,7 +64,7 @@ __write_to_windows_console([[maybe_unused]] FILE* __stream, [[maybe_unused]] wst
56
64
  }
57
65
  # endif // _LIBCPP_HAS_WIDE_CHARACTERS
58
66
 
59
- #elif __has_include(<unistd.h>) // !_LIBCPP_WIN32API
67
+ #elif defined(HAS_FILENO_AND_ISATTY) // !_LIBCPP_WIN32API
60
68
 
61
69
  _LIBCPP_EXPORTED_FROM_ABI bool __is_posix_terminal(FILE* __stream) { return isatty(fileno(__stream)); }
62
70
  #endif
@@ -31,8 +31,6 @@
31
31
  # include <linux/random.h>
32
32
  # include <sys/ioctl.h>
33
33
  # endif
34
- #elif defined(_LIBCPP_USING_NACL_RANDOM)
35
- # include <nacl/nacl_random.h>
36
34
  #elif defined(_LIBCPP_USING_FUCHSIA_CPRNG)
37
35
  # include <zircon/syscalls.h>
38
36
  #endif
@@ -93,30 +91,6 @@ unsigned random_device::operator()() {
93
91
  return r;
94
92
  }
95
93
 
96
- #elif defined(_LIBCPP_USING_NACL_RANDOM)
97
-
98
- random_device::random_device(const string& __token) {
99
- if (__token != "/dev/urandom")
100
- std::__throw_system_error(ENOENT, ("random device not supported " + __token).c_str());
101
- int error = nacl_secure_random_init();
102
- if (error)
103
- std::__throw_system_error(error, ("random device failed to open " + __token).c_str());
104
- }
105
-
106
- random_device::~random_device() {}
107
-
108
- unsigned random_device::operator()() {
109
- unsigned r;
110
- size_t n = sizeof(r);
111
- size_t bytes_written;
112
- int error = nacl_secure_random(&r, n, &bytes_written);
113
- if (error != 0)
114
- std::__throw_system_error(error, "random_device failed getting bytes");
115
- else if (bytes_written != n)
116
- std::__throw_runtime_error("random_device failed to obtain enough bytes");
117
- return r;
118
- }
119
-
120
94
  #elif defined(_LIBCPP_USING_WIN32_RANDOM)
121
95
 
122
96
  random_device::random_device(const string& __token) {
@@ -20,7 +20,7 @@
20
20
 
21
21
  _LIBCPP_BEGIN_NAMESPACE_STD
22
22
 
23
- #ifndef _LIBCPP_ABI_DO_NOT_EXPORT_BASIC_STRING_COMMON
23
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 14
24
24
 
25
25
  template <bool>
26
26
  struct __basic_string_common;
@@ -35,45 +35,30 @@ struct __basic_string_common<true> {
35
35
  void __basic_string_common<true>::__throw_length_error() const { std::__throw_length_error("basic_string"); }
36
36
  void __basic_string_common<true>::__throw_out_of_range() const { std::__throw_out_of_range("basic_string"); }
37
37
 
38
- #endif // _LIBCPP_ABI_DO_NOT_EXPORT_BASIC_STRING_COMMON
38
+ #endif // _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 14
39
39
 
40
40
  // Define legacy ABI functions
41
41
  // ---------------------------
42
42
 
43
- #ifndef _LIBCPP_ABI_STRING_OPTIMIZED_EXTERNAL_INSTANTIATION
43
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 21
44
44
 
45
+ // This initializes the string with [__s, __s + __sz), but capacity() == __reserve. Assumes that __reserve >= __sz.
45
46
  template <class _CharT, class _Traits, class _Allocator>
46
47
  void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz, size_type __reserve) {
47
- if (__libcpp_is_constant_evaluated())
48
- __rep_ = __rep();
49
- if (__reserve > max_size())
50
- __throw_length_error();
51
- pointer __p;
52
- if (__fits_in_sso(__reserve)) {
53
- __set_short_size(__sz);
54
- __p = __get_short_pointer();
55
- } else {
56
- auto __allocation = std::__allocate_at_least(__alloc_, __recommend(__reserve) + 1);
57
- __p = __allocation.ptr;
58
- __begin_lifetime(__p, __allocation.count);
59
- __set_long_pointer(__p);
60
- __set_long_cap(__allocation.count);
61
- __set_long_size(__sz);
62
- }
48
+ pointer __p = __init_internal_buffer(__reserve);
49
+ __annotate_delete();
50
+ __set_size(__sz);
63
51
  traits_type::copy(std::__to_address(__p), __s, __sz);
64
52
  traits_type::assign(__p[__sz], value_type());
65
53
  __annotate_new(__sz);
66
54
  }
67
55
 
68
- # define STRING_LEGACY_API(CharT) \
69
- template _LIBCPP_EXPORTED_FROM_ABI void basic_string<CharT>::__init(const value_type*, size_type, size_type)
70
-
71
- STRING_LEGACY_API(char);
56
+ template _LIBCPP_EXPORTED_FROM_ABI void basic_string<char>::__init(const value_type*, size_type, size_type);
72
57
  # if _LIBCPP_HAS_WIDE_CHARACTERS
73
- STRING_LEGACY_API(wchar_t);
58
+ template _LIBCPP_EXPORTED_FROM_ABI void basic_string<wchar_t>::__init(const value_type*, size_type, size_type);
74
59
  # endif
75
60
 
76
- #endif // _LIBCPP_ABI_STRING_OPTIMIZED_EXTERNAL_INSTANTIATION
61
+ #endif // _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 21
77
62
 
78
63
  #define _LIBCPP_EXTERN_TEMPLATE_DEFINE(...) template _LIBCPP_EXPORTED_FROM_ABI __VA_ARGS__;
79
64
  #ifdef _LIBCPP_ABI_STRING_OPTIMIZED_EXTERNAL_INSTANTIATION
@@ -8,6 +8,8 @@
8
8
  //===----------------------------------------------------------------------===//
9
9
 
10
10
  #include <__verbose_abort>
11
+ #include <exception>
12
+ #include "include/atomic_support.h"
11
13
 
12
14
  namespace std {
13
15
 
@@ -11,6 +11,9 @@
11
11
  # error header can only be used when targeting libstdc++ or libsupc++
12
12
  #endif
13
13
 
14
+ #include <exception>
15
+ #include <new>
16
+
14
17
  namespace std {
15
18
 
16
19
  bad_alloc::bad_alloc() noexcept {}
@@ -7,6 +7,10 @@
7
7
  //
8
8
  //===----------------------------------------------------------------------===//
9
9
 
10
+ #include <exception>
11
+
12
+ #include <cxxabi.h>
13
+
10
14
  #ifndef _LIBCPPABI_VERSION
11
15
  # error this header can only be used with libc++abi
12
16
  #endif
@@ -17,9 +21,9 @@ bool uncaught_exception() noexcept { return uncaught_exceptions() > 0; }
17
21
 
18
22
  int uncaught_exceptions() noexcept {
19
23
  #if _LIBCPPABI_VERSION > 1001
20
- return __cxa_uncaught_exceptions();
24
+ return abi::__cxa_uncaught_exceptions();
21
25
  #else
22
- return __cxa_uncaught_exception() ? 1 : 0;
26
+ return abi::__cxa_uncaught_exception() ? 1 : 0;
23
27
  #endif
24
28
  }
25
29
 
@@ -11,6 +11,8 @@
11
11
  # error this header may only be used when targeting libcxxrt
12
12
  #endif
13
13
 
14
+ #include <exception>
15
+
14
16
  namespace std {
15
17
 
16
18
  bad_exception::~bad_exception() noexcept {}
@@ -12,6 +12,8 @@
12
12
  #endif
13
13
 
14
14
  #include <__verbose_abort>
15
+ #include <exception>
16
+ #include <new>
15
17
 
16
18
  extern "C" {
17
19
  typedef void(__cdecl* terminate_handler)();
@@ -7,22 +7,21 @@
7
7
  //
8
8
  //===----------------------------------------------------------------------===//
9
9
 
10
- #ifndef HAVE_DEPENDENT_EH_ABI
11
- # error this header may only be used with libc++abi or libcxxrt
12
- #endif
10
+ #include <cxxabi.h>
11
+ #include <exception>
13
12
 
14
13
  namespace std {
15
14
 
16
- exception_ptr::~exception_ptr() noexcept { __cxa_decrement_exception_refcount(__ptr_); }
15
+ exception_ptr::~exception_ptr() noexcept { abi::__cxa_decrement_exception_refcount(__ptr_); }
17
16
 
18
17
  exception_ptr::exception_ptr(const exception_ptr& other) noexcept : __ptr_(other.__ptr_) {
19
- __cxa_increment_exception_refcount(__ptr_);
18
+ abi::__cxa_increment_exception_refcount(__ptr_);
20
19
  }
21
20
 
22
21
  exception_ptr& exception_ptr::operator=(const exception_ptr& other) noexcept {
23
22
  if (__ptr_ != other.__ptr_) {
24
- __cxa_increment_exception_refcount(other.__ptr_);
25
- __cxa_decrement_exception_refcount(__ptr_);
23
+ abi::__cxa_increment_exception_refcount(other.__ptr_);
24
+ abi::__cxa_decrement_exception_refcount(__ptr_);
26
25
  __ptr_ = other.__ptr_;
27
26
  }
28
27
  return *this;
@@ -31,7 +30,7 @@ exception_ptr& exception_ptr::operator=(const exception_ptr& other) noexcept {
31
30
  exception_ptr exception_ptr::__from_native_exception_pointer(void* __e) noexcept {
32
31
  exception_ptr ptr;
33
32
  ptr.__ptr_ = __e;
34
- __cxa_increment_exception_refcount(ptr.__ptr_);
33
+ abi::__cxa_increment_exception_refcount(ptr.__ptr_);
35
34
 
36
35
  return ptr;
37
36
  }
@@ -51,12 +50,12 @@ exception_ptr current_exception() noexcept {
51
50
  // this whole function would be just:
52
51
  // return exception_ptr(__cxa_current_primary_exception());
53
52
  exception_ptr ptr;
54
- ptr.__ptr_ = __cxa_current_primary_exception();
53
+ ptr.__ptr_ = abi::__cxa_current_primary_exception();
55
54
  return ptr;
56
55
  }
57
56
 
58
57
  void rethrow_exception(exception_ptr p) {
59
- __cxa_rethrow_primary_exception(p.__ptr_);
58
+ abi::__cxa_rethrow_primary_exception(p.__ptr_);
60
59
  // if p.__ptr_ is NULL, above returns so we terminate
61
60
  terminate();
62
61
  }
@@ -16,6 +16,8 @@
16
16
  // stable ABI), and its rethrow_exception(std::__exception_ptr::exception_ptr)
17
17
  // function.
18
18
 
19
+ #include <exception>
20
+
19
21
  namespace std {
20
22
 
21
23
  namespace __exception_ptr {
@@ -7,6 +7,7 @@
7
7
  //
8
8
  //===----------------------------------------------------------------------===//
9
9
 
10
+ #include <exception>
10
11
  #include <stdio.h>
11
12
  #include <stdlib.h>
12
13
 
@@ -8,6 +8,7 @@
8
8
  //===----------------------------------------------------------------------===//
9
9
 
10
10
  #include <__verbose_abort>
11
+ #include <exception>
11
12
 
12
13
  namespace std {
13
14
 
@@ -144,7 +144,7 @@ int __snprintf(char* ret, size_t n, __locale_t loc, const char* format, ...) {
144
144
  // Like sprintf, but when return value >= 0 it returns
145
145
  // a pointer to a malloc'd string in *sptr.
146
146
  // If return >= 0, use free to delete *sptr.
147
- int __libcpp_vasprintf(char** sptr, const char* __restrict format, va_list ap) {
147
+ static int __libcpp_vasprintf(char** sptr, const char* __restrict format, va_list ap) {
148
148
  *sptr = nullptr;
149
149
  // Query the count required.
150
150
  va_list ap_copy;
@@ -95,6 +95,8 @@ std::optional<errc> __win_err_to_errc(int err) {
95
95
  return errc::no_lock_available;
96
96
  case ERROR_NEGATIVE_SEEK:
97
97
  return errc::invalid_argument;
98
+ case ERROR_NETNAME_DELETED:
99
+ return errc::no_such_file_or_directory;
98
100
  case ERROR_NOACCESS:
99
101
  return errc::permission_denied;
100
102
  case ERROR_NOT_ENOUGH_MEMORY:
@@ -74,9 +74,7 @@ unsigned thread::hardware_concurrency() noexcept {
74
74
  return 0;
75
75
  return static_cast<unsigned>(result);
76
76
  #elif defined(_LIBCPP_WIN32API)
77
- SYSTEM_INFO info;
78
- GetSystemInfo(&info);
79
- return info.dwNumberOfProcessors;
77
+ return static_cast<unsigned>(GetActiveProcessorCount(ALL_PROCESSOR_GROUPS));
80
78
  #else // defined(CTL_HW) && defined(HW_NCPU)
81
79
  // TODO: grovel through /proc or check cpuid on x86 and similar
82
80
  // instructions on other architectures.
@@ -10,8 +10,7 @@
10
10
 
11
11
  _LIBCPP_BEGIN_NAMESPACE_STD
12
12
 
13
- // These two symbols are part of the v1 ABI but not part of the >=v2 ABI.
14
- #if _LIBCPP_ABI_VERSION == 1
13
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 9
15
14
  template _LIBCPP_EXPORTED_FROM_ABI valarray<size_t>::valarray(size_t);
16
15
  template _LIBCPP_EXPORTED_FROM_ABI valarray<size_t>::~valarray();
17
16
  #endif
@@ -10,7 +10,7 @@
10
10
 
11
11
  _LIBCPP_BEGIN_NAMESPACE_STD
12
12
 
13
- #ifndef _LIBCPP_ABI_DO_NOT_EXPORT_VECTOR_BASE_COMMON
13
+ #if _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 15
14
14
 
15
15
  template <bool>
16
16
  struct __vector_base_common;
@@ -25,6 +25,6 @@ void __vector_base_common<true>::__throw_length_error() const { std::__throw_len
25
25
 
26
26
  void __vector_base_common<true>::__throw_out_of_range() const { std::__throw_out_of_range("vector"); }
27
27
 
28
- #endif // _LIBCPP_ABI_DO_NOT_EXPORT_VECTOR_BASE_COMMON
28
+ #endif // _LIBCPP_AVAILABILITY_MINIMUM_HEADER_VERSION < 15
29
29
 
30
30
  _LIBCPP_END_NAMESPACE_STD
@@ -14,10 +14,6 @@
14
14
  #define _LIBCXXABI_ARM_EHABI
15
15
  #endif
16
16
 
17
- #if !defined(__has_attribute)
18
- #define __has_attribute(_attribute_) 0
19
- #endif
20
-
21
17
  #if defined(__clang__)
22
18
  # define _LIBCXXABI_COMPILER_CLANG
23
19
  # ifndef __apple_build_version__
@@ -25,10 +21,6 @@
25
21
  # endif
26
22
  #elif defined(__GNUC__)
27
23
  # define _LIBCXXABI_COMPILER_GCC
28
- #elif defined(_MSC_VER)
29
- # define _LIBCXXABI_COMPILER_MSVC
30
- #elif defined(__IBMCPP__)
31
- # define _LIBCXXABI_COMPILER_IBM
32
24
  #endif
33
25
 
34
26
  #if defined(_WIN32)
@@ -66,17 +58,7 @@
66
58
  #endif
67
59
  #endif
68
60
 
69
- #if defined(_LIBCXXABI_COMPILER_MSVC)
70
- #define _LIBCXXABI_WEAK
71
- #else
72
61
  #define _LIBCXXABI_WEAK __attribute__((__weak__))
73
- #endif
74
-
75
- #if defined(__clang__)
76
- #define _LIBCXXABI_COMPILER_CLANG
77
- #elif defined(__GNUC__)
78
- #define _LIBCXXABI_COMPILER_GCC
79
- #endif
80
62
 
81
63
  #if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG)
82
64
  #define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi")))
@@ -89,11 +71,7 @@
89
71
  # define _LIBCXXABI_GUARD_ABI_ARM
90
72
  #endif
91
73
 
92
- #if defined(_LIBCXXABI_COMPILER_CLANG)
93
- # if !__has_feature(cxx_exceptions)
94
- # define _LIBCXXABI_NO_EXCEPTIONS
95
- # endif
96
- #elif defined(_LIBCXXABI_COMPILER_GCC) && !defined(__EXCEPTIONS)
74
+ #if !defined(__cpp_exceptions) || __cpp_exceptions < 199711L
97
75
  # define _LIBCXXABI_NO_EXCEPTIONS
98
76
  #endif
99
77
 
@@ -103,6 +81,47 @@
103
81
  #define _LIBCXXABI_DTOR_FUNC
104
82
  #endif
105
83
 
84
+ #if __has_include(<ptrauth.h>)
85
+ # include <ptrauth.h>
86
+ #endif
87
+
88
+ #if __has_feature(ptrauth_calls)
89
+
90
+ // ptrauth_string_discriminator("__cxa_exception::actionRecord") == 0xFC91
91
+ # define __ptrauth_cxxabi_action_record __ptrauth(ptrauth_key_process_dependent_data, 1, 0xFC91)
92
+
93
+ // ptrauth_string_discriminator("__cxa_exception::languageSpecificData") == 0xE8EE
94
+ # define __ptrauth_cxxabi_lsd __ptrauth(ptrauth_key_process_dependent_data, 1, 0xE8EE)
95
+
96
+ // ptrauth_string_discriminator("__cxa_exception::catchTemp") == 0xFA58
97
+ # define __ptrauth_cxxabi_catch_temp_disc 0xFA58
98
+ # define __ptrauth_cxxabi_catch_temp_key ptrauth_key_process_dependent_data
99
+ # define __ptrauth_cxxabi_catch_temp __ptrauth(__ptrauth_cxxabi_catch_temp_key, 1, __ptrauth_cxxabi_catch_temp_disc)
100
+
101
+ // ptrauth_string_discriminator("__cxa_exception::adjustedPtr") == 0x99E4
102
+ # define __ptrauth_cxxabi_adjusted_ptr __ptrauth(ptrauth_key_process_dependent_data, 1, 0x99E4)
103
+
104
+ // ptrauth_string_discriminator("__cxa_exception::unexpectedHandler") == 0x99A9
105
+ # define __ptrauth_cxxabi_unexpected_handler __ptrauth(ptrauth_key_function_pointer, 1, 0x99A9)
106
+
107
+ // ptrauth_string_discriminator("__cxa_exception::terminateHandler") == 0x0886)
108
+ # define __ptrauth_cxxabi_terminate_handler __ptrauth(ptrauth_key_function_pointer, 1, 0x886)
109
+
110
+ // ptrauth_string_discriminator("__cxa_exception::exceptionDestructor") == 0xC088
111
+ # define __ptrauth_cxxabi_exception_destructor __ptrauth(ptrauth_key_function_pointer, 1, 0xC088)
112
+
113
+ #else
114
+
115
+ # define __ptrauth_cxxabi_action_record
116
+ # define __ptrauth_cxxabi_lsd
117
+ # define __ptrauth_cxxabi_catch_temp
118
+ # define __ptrauth_cxxabi_adjusted_ptr
119
+ # define __ptrauth_cxxabi_unexpected_handler
120
+ # define __ptrauth_cxxabi_terminate_handler
121
+ # define __ptrauth_cxxabi_exception_destructor
122
+
123
+ #endif
124
+
106
125
  #if __cplusplus < 201103L
107
126
  # define _LIBCXXABI_NOEXCEPT throw()
108
127
  #else
@@ -192,7 +192,9 @@ void *__cxa_allocate_exception(size_t thrown_size) throw() {
192
192
  std::terminate();
193
193
  __cxa_exception *exception_header =
194
194
  static_cast<__cxa_exception *>((void *)(raw_buffer + header_offset));
195
- ::memset(exception_header, 0, actual_size);
195
+ // We warn on memset to a non-trivially castable type. We might want to
196
+ // change that diagnostic to not fire on a trivially obvious zero fill.
197
+ ::memset(static_cast<void*>(exception_header), 0, actual_size);
196
198
  return thrown_object_from_cxa_exception(exception_header);
197
199
  }
198
200
 
@@ -226,7 +228,7 @@ __cxa_exception* __cxa_init_primary_exception(void* object, std::type_info* tinf
226
228
  }
227
229
 
228
230
  // This function shall allocate a __cxa_dependent_exception and
229
- // return a pointer to it. (Really to the object, not past its' end).
231
+ // return a pointer to it. (Really to the object, not past its end).
230
232
  // Otherwise, it will work like __cxa_allocate_exception.
231
233
  void * __cxa_allocate_dependent_exception () {
232
234
  size_t actual_size = sizeof(__cxa_dependent_exception);
@@ -47,10 +47,10 @@ struct _LIBCXXABI_HIDDEN __cxa_exception {
47
47
  // In Wasm, a destructor returns its argument
48
48
  void *(_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *);
49
49
  #else
50
- void (_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *);
50
+ void (_LIBCXXABI_DTOR_FUNC *__ptrauth_cxxabi_exception_destructor exceptionDestructor)(void *);
51
51
  #endif
52
- std::unexpected_handler unexpectedHandler;
53
- std::terminate_handler terminateHandler;
52
+ std::unexpected_handler __ptrauth_cxxabi_unexpected_handler unexpectedHandler;
53
+ std::terminate_handler __ptrauth_cxxabi_terminate_handler terminateHandler;
54
54
 
55
55
  __cxa_exception *nextException;
56
56
 
@@ -61,10 +61,10 @@ struct _LIBCXXABI_HIDDEN __cxa_exception {
61
61
  int propagationCount;
62
62
  #else
63
63
  int handlerSwitchValue;
64
- const unsigned char *actionRecord;
65
- const unsigned char *languageSpecificData;
66
- void *catchTemp;
67
- void *adjustedPtr;
64
+ const unsigned char *__ptrauth_cxxabi_action_record actionRecord;
65
+ const unsigned char *__ptrauth_cxxabi_lsd languageSpecificData;
66
+ void *__ptrauth_cxxabi_catch_temp catchTemp;
67
+ void *__ptrauth_cxxabi_adjusted_ptr adjustedPtr;
68
68
  #endif
69
69
 
70
70
  #if !defined(__LP64__) && !defined(_WIN64) && !defined(_LIBCXXABI_ARM_EHABI)
@@ -79,6 +79,8 @@ struct _LIBCXXABI_HIDDEN __cxa_exception {
79
79
  // http://sourcery.mentor.com/archives/cxx-abi-dev/msg01924.html
80
80
  // The layout of this structure MUST match the layout of __cxa_exception, with
81
81
  // primaryException instead of referenceCount.
82
+ // The pointer authentication schemas specified here must also match those of
83
+ // the corresponding members in __cxa_exception.
82
84
  struct _LIBCXXABI_HIDDEN __cxa_dependent_exception {
83
85
  #if defined(__LP64__) || defined(_WIN64) || defined(_LIBCXXABI_ARM_EHABI)
84
86
  void* reserve; // padding.
@@ -86,9 +88,9 @@ struct _LIBCXXABI_HIDDEN __cxa_dependent_exception {
86
88
  #endif
87
89
 
88
90
  std::type_info *exceptionType;
89
- void (_LIBCXXABI_DTOR_FUNC *exceptionDestructor)(void *);
90
- std::unexpected_handler unexpectedHandler;
91
- std::terminate_handler terminateHandler;
91
+ void (_LIBCXXABI_DTOR_FUNC *__ptrauth_cxxabi_exception_destructor exceptionDestructor)(void *);
92
+ std::unexpected_handler __ptrauth_cxxabi_unexpected_handler unexpectedHandler;
93
+ std::terminate_handler __ptrauth_cxxabi_terminate_handler terminateHandler;
92
94
 
93
95
  __cxa_exception *nextException;
94
96
 
@@ -99,10 +101,10 @@ struct _LIBCXXABI_HIDDEN __cxa_dependent_exception {
99
101
  int propagationCount;
100
102
  #else
101
103
  int handlerSwitchValue;
102
- const unsigned char *actionRecord;
103
- const unsigned char *languageSpecificData;
104
- void * catchTemp;
105
- void *adjustedPtr;
104
+ const unsigned char *__ptrauth_cxxabi_action_record actionRecord;
105
+ const unsigned char *__ptrauth_cxxabi_lsd languageSpecificData;
106
+ void *__ptrauth_cxxabi_catch_temp catchTemp;
107
+ void *__ptrauth_cxxabi_adjusted_ptr adjustedPtr;
106
108
  #endif
107
109
 
108
110
  #if !defined(__LP64__) && !defined(_WIN64) && !defined(_LIBCXXABI_ARM_EHABI)