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

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 (713) 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/libc/hdr/errno_macros.h +3 -1
  480. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  481. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  482. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  483. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  484. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  485. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  486. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  487. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  488. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  489. package/libcxx/libc/shared/libc_common.h +5 -0
  490. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  491. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  492. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  493. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  494. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  495. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  496. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  497. package/libcxx/libc/src/__support/big_int.h +14 -14
  498. package/libcxx/libc/src/__support/common.h +3 -2
  499. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  500. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  501. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  502. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  503. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  504. package/libcxx/libc/src/__support/macros/config.h +23 -0
  505. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  506. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  507. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  508. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  509. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  510. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  511. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  512. package/libcxx/libc/src/__support/math_extras.h +20 -4
  513. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  514. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  515. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  516. package/libcxx/src/any.cpp +4 -0
  517. package/libcxx/src/atomic.cpp +365 -80
  518. package/libcxx/src/barrier.cpp +4 -3
  519. package/libcxx/src/charconv.cpp +6 -3
  520. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  521. package/libcxx/src/error_category.cpp +3 -1
  522. package/libcxx/src/exception.cpp +2 -10
  523. package/libcxx/src/experimental/time_zone.cpp +1 -1
  524. package/libcxx/src/experimental/tzdb.cpp +4 -1
  525. package/libcxx/src/filesystem/error.h +4 -22
  526. package/libcxx/src/filesystem/format_string.h +9 -18
  527. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  528. package/libcxx/src/filesystem/operations.cpp +2 -9
  529. package/libcxx/src/filesystem/path.cpp +3 -1
  530. package/libcxx/src/include/aligned_alloc.h +65 -0
  531. package/libcxx/src/include/config_elast.h +1 -1
  532. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  533. package/libcxx/src/include/overridable_function.h +8 -10
  534. package/libcxx/src/iostream.cpp +56 -37
  535. package/libcxx/src/locale.cpp +213 -196
  536. package/libcxx/src/memory.cpp +12 -14
  537. package/libcxx/src/mutex_destructor.cpp +1 -1
  538. package/libcxx/src/new.cpp +5 -5
  539. package/libcxx/src/optional.cpp +4 -0
  540. package/libcxx/src/print.cpp +9 -1
  541. package/libcxx/src/random.cpp +0 -26
  542. package/libcxx/src/string.cpp +10 -25
  543. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  544. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  545. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  546. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  547. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  548. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  549. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  550. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  551. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  552. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  553. package/libcxx/src/system_error.cpp +2 -0
  554. package/libcxx/src/thread.cpp +1 -3
  555. package/libcxx/src/valarray.cpp +1 -2
  556. package/libcxx/src/vector.cpp +2 -2
  557. package/libcxxabi/include/__cxxabi_config.h +42 -23
  558. package/libcxxabi/src/cxa_exception.cpp +4 -2
  559. package/libcxxabi/src/cxa_exception.h +16 -14
  560. package/libcxxabi/src/cxa_personality.cpp +126 -9
  561. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  562. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  563. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  564. package/libcxxabi/src/demangle/Utility.h +21 -7
  565. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  566. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  567. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  568. package/libtsan/LICENSE.TXT +311 -0
  569. package/libtsan/builtins/assembly.h +41 -8
  570. package/libtsan/interception/interception_win.cpp +4 -0
  571. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  572. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  573. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  574. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  575. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  576. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  577. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  578. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  579. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  580. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  581. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  582. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  583. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  584. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  585. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  586. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  587. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  588. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  589. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  590. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  591. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  592. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  593. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  594. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  595. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  596. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  597. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  598. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  599. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  600. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  601. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  602. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  603. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  604. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  605. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  606. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  607. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  608. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  609. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  610. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  611. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  612. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  613. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  614. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  615. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  616. package/libtsan/tsan_debugging.cpp +2 -2
  617. package/libtsan/tsan_flags.cpp +37 -0
  618. package/libtsan/tsan_flags.h +8 -0
  619. package/libtsan/tsan_flags.inc +12 -0
  620. package/libtsan/tsan_interceptors.h +9 -1
  621. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  622. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  623. package/libtsan/tsan_interface.h +3 -3
  624. package/libtsan/tsan_interface_ann.cpp +23 -9
  625. package/libtsan/tsan_mman.cpp +18 -4
  626. package/libtsan/tsan_platform.h +44 -7
  627. package/libtsan/tsan_platform_linux.cpp +42 -14
  628. package/libtsan/tsan_platform_mac.cpp +16 -3
  629. package/libtsan/tsan_report.h +14 -1
  630. package/libtsan/tsan_rtl.cpp +14 -0
  631. package/libtsan/tsan_rtl.h +7 -2
  632. package/libtsan/tsan_rtl_aarch64.S +3 -5
  633. package/libtsan/tsan_rtl_access.cpp +8 -3
  634. package/libtsan/tsan_rtl_amd64.S +2 -0
  635. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  636. package/libtsan/tsan_rtl_report.cpp +132 -65
  637. package/libtsan/tsan_rtl_thread.cpp +31 -9
  638. package/libtsan/tsan_symbolize.cpp +1 -1
  639. package/libtsan/tsan_symbolize.h +1 -1
  640. package/libtsan/tsan_trace.h +1 -1
  641. package/libunwind/include/__libunwind_config.h +11 -2
  642. package/libunwind/include/libunwind.h +117 -11
  643. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  644. package/libunwind/src/AddressSpace.hpp +42 -20
  645. package/libunwind/src/CompactUnwinder.hpp +16 -5
  646. package/libunwind/src/DwarfInstructions.hpp +24 -13
  647. package/libunwind/src/DwarfParser.hpp +62 -23
  648. package/libunwind/src/EHHeaderParser.hpp +7 -4
  649. package/libunwind/src/Registers.hpp +226 -22
  650. package/libunwind/src/Unwind-seh.cpp +6 -7
  651. package/libunwind/src/Unwind-wasm.c +7 -7
  652. package/libunwind/src/UnwindCursor.hpp +167 -49
  653. package/libunwind/src/UnwindLevel1.c +46 -17
  654. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  655. package/libunwind/src/UnwindRegistersSave.S +86 -2
  656. package/libunwind/src/assembly.h +5 -1
  657. package/libunwind/src/config.h +9 -0
  658. package/libunwind/src/gcc_personality_v0.c +79 -6
  659. package/libunwind/src/libunwind.cpp +104 -4
  660. package/libunwind/src/libunwind_ext.h +7 -1
  661. package/libunwind/src/shadow_stack_unwind.h +2 -2
  662. package/lldb/pretty_printers.py +948 -0
  663. package/package.json +1 -1
  664. package/std/Build/Step/Compile.zig +18 -19
  665. package/std/Build/Step/Run.zig +13 -6
  666. package/std/Build/Step.zig +0 -3
  667. package/std/Io/Threaded.zig +3 -0
  668. package/std/Target/aarch64.zig +620 -77
  669. package/std/Target/amdgcn.zig +421 -21
  670. package/std/Target/arm.zig +40 -6
  671. package/std/Target/bpf.zig +6 -0
  672. package/std/Target/hexagon.zig +41 -6
  673. package/std/Target/loongarch.zig +18 -0
  674. package/std/Target/mips.zig +6 -0
  675. package/std/Target/nvptx.zig +58 -35
  676. package/std/Target/powerpc.zig +27 -19
  677. package/std/Target/riscv.zig +415 -177
  678. package/std/Target/sparc.zig +17 -0
  679. package/std/Target/wasm.zig +7 -0
  680. package/std/Target/x86.zig +200 -31
  681. package/std/Target/xtensa.zig +65 -0
  682. package/std/Target.zig +16 -8
  683. package/std/c.zig +7 -0
  684. package/std/crypto/ml_kem.zig +0 -15
  685. package/std/debug/Dwarf.zig +14 -11
  686. package/std/debug/Pdb.zig +24 -16
  687. package/std/hash/xxhash.zig +0 -6
  688. package/std/math/log10.zig +0 -2
  689. package/std/math/modf.zig +1 -2
  690. package/std/mem.zig +1 -2
  691. package/std/os/linux/x86.zig +2 -2
  692. package/std/os/windows.zig +130 -1
  693. package/std/simd.zig +4 -21
  694. package/std/start.zig +4 -3
  695. package/std/zig/Ast.zig +5 -7
  696. package/std/zig/AstGen.zig +20 -14
  697. package/std/zig/ErrorBundle.zig +6 -2
  698. package/std/zig/ZonGen.zig +13 -21
  699. package/std/zig/llvm/Builder.zig +2 -2
  700. package/std/zig/system/arm.zig +56 -2
  701. package/std/zig/system/windows.zig +34 -1
  702. package/std/zig/system/x86.zig +60 -16
  703. package/std/zig/system.zig +0 -10
  704. package/std/zig/target.zig +1 -2
  705. package/std/zon/parse.zig +1 -1
  706. package/include/amxbf16transposeintrin.h +0 -94
  707. package/include/amxcomplextransposeintrin.h +0 -303
  708. package/include/amxfp16transposeintrin.h +0 -94
  709. package/include/amxmovrstransposeintrin.h +0 -200
  710. package/include/amxtf32transposeintrin.h +0 -105
  711. package/include/amxtransposeintrin.h +0 -248
  712. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  713. package/std/Build/Step/CheckObject.zig +0 -2764
@@ -0,0 +1,20 @@
1
+ //===-- Detection of _Complex _Float16 compiler builtin type --------------===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #ifndef LLVM_LIBC_MACROS_CFLOAT16_MACROS_H
10
+ #define LLVM_LIBC_MACROS_CFLOAT16_MACROS_H
11
+
12
+ #if defined(__FLT16_MANT_DIG__) && \
13
+ (!defined(__GNUC__) || __GNUC__ >= 13 || \
14
+ (defined(__clang__) && __clang_major__ >= 14)) && \
15
+ !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv) && \
16
+ !defined(_WIN32)
17
+ #define LIBC_TYPES_HAS_CFLOAT16
18
+ #endif
19
+
20
+ #endif // LLVM_LIBC_MACROS_CFLOAT16_MACROS_H
@@ -0,0 +1,18 @@
1
+ //===-- Macros defined in wchar.h header file -----------------------------===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #ifndef LLVM_LIBC_MACROS_WCHAR_MACROS_H
10
+ #define LLVM_LIBC_MACROS_WCHAR_MACROS_H
11
+
12
+ #include "../llvm-libc-types/wint_t.h"
13
+
14
+ #ifndef WEOF
15
+ #define WEOF ((wint_t)(0xffffffffu))
16
+ #endif
17
+
18
+ #endif // LLVM_LIBC_MACROS_WCHAR_MACROS_H
@@ -9,36 +9,19 @@
9
9
  #ifndef LLVM_LIBC_TYPES_CFLOAT128_H
10
10
  #define LLVM_LIBC_TYPES_CFLOAT128_H
11
11
 
12
- #include "../llvm-libc-macros/float-macros.h" // LDBL_MANT_DIG
12
+ #include "../llvm-libc-macros/cfloat128-macros.h"
13
13
 
14
- // Currently, the complex variant of C23 `_Float128` type is only defined as a
15
- // built-in type in GCC 7 or later, for C and in GCC 13 or later, for C++. For
16
- // clang, the complex variant of `__float128` is defined instead, and only on
17
- // x86-64 targets for clang 11 or later.
18
- //
19
- // TODO: Update the complex variant of C23 `_Float128` type detection again when
20
- // clang supports it.
21
- #ifdef __clang__
22
- #if (__clang_major__ >= 11) && \
23
- (defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__))
24
- // Use _Complex __float128 type. clang uses __SIZEOF_FLOAT128__ or __FLOAT128__
25
- // macro to notify the availability of __float128 type:
26
- // https://reviews.llvm.org/D15120
27
- #define LIBC_TYPES_HAS_CFLOAT128
14
+ #ifdef LIBC_TYPES_HAS_CFLOAT128
15
+ #ifndef LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE
16
+ #if defined(__GNUC__) && !defined(__clang__)
17
+ // Remove the workaround when https://gcc.gnu.org/PR32187 gets fixed.
18
+ typedef __typeof__(_Complex __float128) cfloat128;
19
+ #else // ^^^ workaround / no workaround vvv
28
20
  typedef _Complex __float128 cfloat128;
29
- #endif
30
- #elif defined(__GNUC__)
31
- #if (defined(__STDC_IEC_60559_COMPLEX__) || defined(__SIZEOF_FLOAT128__)) && \
32
- (__GNUC__ >= 13 || (!defined(__cplusplus)))
33
- #define LIBC_TYPES_HAS_CFLOAT128
34
- typedef _Complex _Float128 cfloat128;
35
- #endif
36
- #endif
37
-
38
- #if !defined(LIBC_TYPES_HAS_CFLOAT128) && (LDBL_MANT_DIG == 113)
39
- #define LIBC_TYPES_HAS_CFLOAT128
40
- #define LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE
21
+ #endif // ^^^ no workaround ^^^
22
+ #else
41
23
  typedef _Complex long double cfloat128;
42
- #endif
24
+ #endif // LIBC_TYPES_CFLOAT128_IS_COMPLEX_LONG_DOUBLE
25
+ #endif // LIBC_TYPES_HAS_CFLOAT128
43
26
 
44
27
  #endif // LLVM_LIBC_TYPES_CFLOAT128_H
@@ -9,13 +9,10 @@
9
9
  #ifndef LLVM_LIBC_TYPES_CFLOAT16_H
10
10
  #define LLVM_LIBC_TYPES_CFLOAT16_H
11
11
 
12
- #if defined(__FLT16_MANT_DIG__) && \
13
- (!defined(__GNUC__) || __GNUC__ >= 13 || \
14
- (defined(__clang__) && __clang_major__ >= 14)) && \
15
- !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv) && \
16
- !defined(_WIN32)
17
- #define LIBC_TYPES_HAS_CFLOAT16
12
+ #include "../llvm-libc-macros/cfloat16-macros.h"
13
+
14
+ #ifdef LIBC_TYPES_HAS_CFLOAT16
18
15
  typedef _Complex _Float16 cfloat16;
19
- #endif
16
+ #endif // LIBC_TYPES_HAS_CFLOAT16
20
17
 
21
18
  #endif // LLVM_LIBC_TYPES_CFLOAT16_H
@@ -0,0 +1,14 @@
1
+ //===-- Definition of wint_t types ----------------------------------------===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
9
+ #ifndef LLVM_LIBC_TYPES_WINT_T_H
10
+ #define LLVM_LIBC_TYPES_WINT_T_H
11
+
12
+ typedef __WINT_TYPE__ wint_t;
13
+
14
+ #endif // LLVM_LIBC_TYPES_WINT_T_H
@@ -19,6 +19,11 @@
19
19
  #define LIBC_ERRNO_MODE LIBC_ERRNO_MODE_SYSTEM_INLINE
20
20
  #endif // LIBC_ERRNO_MODE
21
21
 
22
+ // Use system fenv functions in math implementations.
23
+ #ifndef LIBC_MATH_USE_SYSTEM_FENV
24
+ #define LIBC_MATH_USE_SYSTEM_FENV
25
+ #endif // LIBC_MATH_USE_SYSTEM_FENV
26
+
22
27
  #ifndef LIBC_NAMESPACE
23
28
  #define LIBC_NAMESPACE __llvm_libc
24
29
  #endif // LIBC_NAMESPACE
@@ -11,14 +11,14 @@
11
11
  #ifndef LLVM_LIBC_SRC___SUPPORT_CPP_BIT_H
12
12
  #define LLVM_LIBC_SRC___SUPPORT_CPP_BIT_H
13
13
 
14
+ #include "hdr/stdint_proxy.h"
14
15
  #include "src/__support/CPP/limits.h" // numeric_limits
15
16
  #include "src/__support/CPP/type_traits.h"
16
17
  #include "src/__support/macros/attributes.h"
17
18
  #include "src/__support/macros/config.h"
19
+ #include "src/__support/macros/properties/compiler.h"
18
20
  #include "src/__support/macros/sanitizer.h"
19
21
 
20
- #include <stdint.h>
21
-
22
22
  namespace LIBC_NAMESPACE_DECL {
23
23
  namespace cpp {
24
24
 
@@ -26,6 +26,16 @@ namespace cpp {
26
26
  #define LLVM_LIBC_HAS_BUILTIN_MEMCPY_INLINE
27
27
  #endif
28
28
 
29
+ template <unsigned N>
30
+ LIBC_INLINE static void inline_copy(const char *from, char *to) {
31
+ #if __has_builtin(__builtin_memcpy_inline)
32
+ __builtin_memcpy_inline(to, from, N);
33
+ #else
34
+ for (unsigned i = 0; i < N; ++i)
35
+ to[i] = from[i];
36
+ #endif // __has_builtin(__builtin_memcpy_inline)
37
+ }
38
+
29
39
  // This implementation of bit_cast requires trivially-constructible To, to avoid
30
40
  // UB in the implementation.
31
41
  template <typename To, typename From>
@@ -37,22 +47,32 @@ LIBC_INLINE constexpr cpp::enable_if_t<
37
47
  To>
38
48
  bit_cast(const From &from) {
39
49
  MSAN_UNPOISON(&from, sizeof(From));
40
- #if __has_builtin(__builtin_bit_cast)
50
+ #if __has_builtin(__builtin_bit_cast) || defined(LIBC_COMPILER_IS_MSVC)
41
51
  return __builtin_bit_cast(To, from);
42
52
  #else
43
- To to;
53
+ To to{};
44
54
  char *dst = reinterpret_cast<char *>(&to);
45
55
  const char *src = reinterpret_cast<const char *>(&from);
46
- #if __has_builtin(__builtin_memcpy_inline)
47
- __builtin_memcpy_inline(dst, src, sizeof(To));
48
- #else
49
- for (unsigned i = 0; i < sizeof(To); ++i)
50
- dst[i] = src[i];
51
- #endif // __has_builtin(__builtin_memcpy_inline)
56
+ inline_copy<sizeof(From)>(src, dst);
52
57
  return to;
53
58
  #endif // __has_builtin(__builtin_bit_cast)
54
59
  }
55
60
 
61
+ // The following simple bit copy from a smaller type to maybe-larger type.
62
+ template <typename To, typename From>
63
+ LIBC_INLINE constexpr cpp::enable_if_t<
64
+ (sizeof(To) >= sizeof(From)) &&
65
+ cpp::is_trivially_constructible<To>::value &&
66
+ cpp::is_trivially_copyable<To>::value &&
67
+ cpp::is_trivially_copyable<From>::value,
68
+ void>
69
+ bit_copy(const From &from, To &to) {
70
+ MSAN_UNPOISON(&from, sizeof(From));
71
+ char *dst = reinterpret_cast<char *>(&to);
72
+ const char *src = reinterpret_cast<const char *>(&from);
73
+ inline_copy<sizeof(From)>(src, dst);
74
+ }
75
+
56
76
  template <typename T>
57
77
  [[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>,
58
78
  bool>
@@ -105,10 +125,16 @@ countr_zero(T value) {
105
125
  }
106
126
  #if __has_builtin(__builtin_ctzs)
107
127
  ADD_SPECIALIZATION(countr_zero, unsigned short, __builtin_ctzs)
108
- #endif
128
+ #endif // __has_builtin(__builtin_ctzs)
129
+ #if __has_builtin(__builtin_ctz)
109
130
  ADD_SPECIALIZATION(countr_zero, unsigned int, __builtin_ctz)
131
+ #endif // __has_builtin(__builtin_ctz)
132
+ #if __has_builtin(__builtin_ctzl)
110
133
  ADD_SPECIALIZATION(countr_zero, unsigned long, __builtin_ctzl)
134
+ #endif // __has_builtin(__builtin_ctzl)
135
+ #if __has_builtin(__builtin_ctzll)
111
136
  ADD_SPECIALIZATION(countr_zero, unsigned long long, __builtin_ctzll)
137
+ #endif // __has_builtin(__builtin_ctzll)
112
138
  #endif // __has_builtin(__builtin_ctzg)
113
139
 
114
140
  /// Count number of 0's from the most significant bit to the least
@@ -144,10 +170,16 @@ countl_zero(T value) {
144
170
  }
145
171
  #if __has_builtin(__builtin_clzs)
146
172
  ADD_SPECIALIZATION(countl_zero, unsigned short, __builtin_clzs)
147
- #endif
173
+ #endif // __has_builtin(__builtin_clzs)
174
+ #if __has_builtin(__builtin_clz)
148
175
  ADD_SPECIALIZATION(countl_zero, unsigned int, __builtin_clz)
176
+ #endif // __has_builtin(__builtin_clz)
177
+ #if __has_builtin(__builtin_clzl)
149
178
  ADD_SPECIALIZATION(countl_zero, unsigned long, __builtin_clzl)
179
+ #endif // __has_builtin(__builtin_clzl)
180
+ #if __has_builtin(__builtin_clzll)
150
181
  ADD_SPECIALIZATION(countl_zero, unsigned long long, __builtin_clzll)
182
+ #endif // __has_builtin(__builtin_clzll)
151
183
  #endif // __has_builtin(__builtin_clzg)
152
184
 
153
185
  #undef ADD_SPECIALIZATION
@@ -284,11 +316,17 @@ popcount(T value) {
284
316
  [[nodiscard]] LIBC_INLINE constexpr int popcount<TYPE>(TYPE value) { \
285
317
  return BUILTIN(value); \
286
318
  }
319
+ #if __has_builtin(__builtin_popcount)
287
320
  ADD_SPECIALIZATION(unsigned char, __builtin_popcount)
288
321
  ADD_SPECIALIZATION(unsigned short, __builtin_popcount)
289
322
  ADD_SPECIALIZATION(unsigned, __builtin_popcount)
323
+ #endif // __builtin_popcount
324
+ #if __has_builtin(__builtin_popcountl)
290
325
  ADD_SPECIALIZATION(unsigned long, __builtin_popcountl)
326
+ #endif // __builtin_popcountl
327
+ #if __has_builtin(__builtin_popcountll)
291
328
  ADD_SPECIALIZATION(unsigned long long, __builtin_popcountll)
329
+ #endif // __builtin_popcountll
292
330
  #endif // __builtin_popcountg
293
331
  #undef ADD_SPECIALIZATION
294
332
 
@@ -13,12 +13,17 @@
13
13
  #include "src/__support/macros/attributes.h"
14
14
  #include "src/__support/macros/config.h"
15
15
  // LIBC_TYPES_HAS_CFLOAT16 && LIBC_TYPES_HAS_CFLOAT128
16
+ #include "src/__support/macros/properties/compiler.h"
16
17
  #include "src/__support/macros/properties/complex_types.h"
17
18
 
18
19
  namespace LIBC_NAMESPACE_DECL {
19
20
  namespace cpp {
20
21
 
21
22
  // is_complex
23
+ #ifdef LIBC_COMPILER_IS_MSVC
24
+ // TODO: Add support for complex types with MSVC.
25
+ template <typename T> struct is_complex : false_type {};
26
+ #else
22
27
  template <typename T> struct is_complex {
23
28
  private:
24
29
  template <typename Head, typename... Args>
@@ -40,6 +45,8 @@ public:
40
45
  #endif
41
46
  >();
42
47
  };
48
+ #endif // LIBC_COMPILER_IS_MSVC
49
+
43
50
  template <typename T>
44
51
  LIBC_INLINE_VAR constexpr bool is_complex_v = is_complex<T>::value;
45
52
  template <typename T1, typename T2>
@@ -15,6 +15,7 @@
15
15
  #include "src/__support/CPP/type_traits/remove_all_extents.h"
16
16
  #include "src/__support/CPP/type_traits/true_type.h"
17
17
  #include "src/__support/CPP/type_traits/type_identity.h"
18
+ #include "src/__support/CPP/utility/declval.h"
18
19
  #include "src/__support/macros/attributes.h"
19
20
  #include "src/__support/macros/config.h"
20
21
 
@@ -22,7 +23,7 @@ namespace LIBC_NAMESPACE_DECL {
22
23
  namespace cpp {
23
24
 
24
25
  // is_destructible
25
- #if __has_builtin(__is_destructible)
26
+ #if __has_builtin(__is_destructible) || defined(LIBC_COMPILER_IS_MSVC)
26
27
  template <typename T>
27
28
  struct is_destructible : bool_constant<__is_destructible(T)> {};
28
29
  #else
@@ -16,6 +16,8 @@
16
16
  #include "src/__support/macros/attributes.h"
17
17
  #include "src/__support/macros/config.h"
18
18
 
19
+ #include <stddef.h>
20
+
19
21
  namespace LIBC_NAMESPACE_DECL {
20
22
  namespace cpp {
21
23
 
@@ -46,6 +48,10 @@ public:
46
48
  LIBC_INLINE constexpr bool operator()() const { return is_unsigned::value; }
47
49
  };
48
50
  #endif // LIBC_COMPILER_HAS_FIXED_POINT
51
+ #if LIBC_HAS_VECTOR_TYPE
52
+ template <typename T, size_t N>
53
+ struct is_unsigned<T [[clang::ext_vector_type(N)]]> : bool_constant<false> {};
54
+ #endif
49
55
 
50
56
  template <typename T>
51
57
  LIBC_INLINE_VAR constexpr bool is_unsigned_v = is_unsigned<T>::value;
@@ -5,12 +5,15 @@
5
5
  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
6
  //
7
7
  //===----------------------------------------------------------------------===//
8
+
8
9
  #ifndef LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_INTEGER_SEQUENCE_H
9
10
  #define LLVM_LIBC_SRC___SUPPORT_CPP_UTILITY_INTEGER_SEQUENCE_H
10
11
 
11
12
  #include "src/__support/CPP/type_traits/is_integral.h"
12
13
  #include "src/__support/macros/config.h"
13
14
 
15
+ #include <stddef.h>
16
+
14
17
  namespace LIBC_NAMESPACE_DECL {
15
18
  namespace cpp {
16
19
 
@@ -34,6 +37,13 @@ template <typename T, int N>
34
37
  using make_integer_sequence =
35
38
  typename detail::make_integer_sequence<T, N - 1>::type;
36
39
 
40
+ // index sequence
41
+ template <size_t... Ints>
42
+ using index_sequence = integer_sequence<size_t, Ints...>;
43
+ template <int N>
44
+ using make_index_sequence =
45
+ typename detail::make_integer_sequence<size_t, N - 1>::type;
46
+
37
47
  } // namespace cpp
38
48
  } // namespace LIBC_NAMESPACE_DECL
39
49
 
@@ -15,6 +15,7 @@
15
15
  #ifndef LLVM_LIBC_SRC___SUPPORT_FPUTIL_FPBITS_H
16
16
  #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_FPBITS_H
17
17
 
18
+ #include "hdr/stdint_proxy.h"
18
19
  #include "src/__support/CPP/bit.h"
19
20
  #include "src/__support/CPP/type_traits.h"
20
21
  #include "src/__support/common.h"
@@ -26,8 +27,6 @@
26
27
  #include "src/__support/sign.h" // Sign
27
28
  #include "src/__support/uint128.h"
28
29
 
29
- #include <stdint.h>
30
-
31
30
  namespace LIBC_NAMESPACE_DECL {
32
31
  namespace fputil {
33
32
 
@@ -790,16 +789,16 @@ struct FPRep : public FPRepImpl<fp_type, FPRep<fp_type>> {
790
789
  // Returns the FPType corresponding to C++ type T on the host.
791
790
  template <typename T> LIBC_INLINE static constexpr FPType get_fp_type() {
792
791
  using UnqualT = cpp::remove_cv_t<T>;
793
- if constexpr (cpp::is_same_v<UnqualT, float> && __FLT_MANT_DIG__ == 24)
792
+ if constexpr (cpp::is_same_v<UnqualT, float> && FLT_MANT_DIG == 24)
794
793
  return FPType::IEEE754_Binary32;
795
- else if constexpr (cpp::is_same_v<UnqualT, double> && __DBL_MANT_DIG__ == 53)
794
+ else if constexpr (cpp::is_same_v<UnqualT, double> && DBL_MANT_DIG == 53)
796
795
  return FPType::IEEE754_Binary64;
797
796
  else if constexpr (cpp::is_same_v<UnqualT, long double>) {
798
- if constexpr (__LDBL_MANT_DIG__ == 53)
797
+ if constexpr (LDBL_MANT_DIG == 53)
799
798
  return FPType::IEEE754_Binary64;
800
- else if constexpr (__LDBL_MANT_DIG__ == 64)
799
+ else if constexpr (LDBL_MANT_DIG == 64)
801
800
  return FPType::X86_Binary80;
802
- else if constexpr (__LDBL_MANT_DIG__ == 113)
801
+ else if constexpr (LDBL_MANT_DIG == 113)
803
802
  return FPType::IEEE754_Binary128;
804
803
  }
805
804
  #if defined(LIBC_TYPES_HAS_FLOAT16)
@@ -10,18 +10,21 @@
10
10
  #define LLVM_LIBC_SRC___SUPPORT_FPUTIL_ROUNDING_MODE_H
11
11
 
12
12
  #include "hdr/fenv_macros.h"
13
+ #include "src/__support/CPP/type_traits.h" // is_constant_evaluated
13
14
  #include "src/__support/macros/attributes.h" // LIBC_INLINE
14
15
  #include "src/__support/macros/config.h"
15
16
 
16
17
  namespace LIBC_NAMESPACE_DECL {
17
18
  namespace fputil {
18
19
 
20
+ namespace generic {
21
+
19
22
  // Quick free-standing test whether fegetround() == FE_UPWARD.
20
23
  // Using the following observation:
21
24
  // 1.0f + 2^-25 = 1.0f for FE_TONEAREST, FE_DOWNWARD, FE_TOWARDZERO
22
25
  // = 0x1.000002f for FE_UPWARD.
23
26
  LIBC_INLINE bool fenv_is_round_up() {
24
- volatile float x = 0x1.0p-25f;
27
+ static volatile float x = 0x1.0p-25f;
25
28
  return (1.0f + x != 1.0f);
26
29
  }
27
30
 
@@ -30,7 +33,7 @@ LIBC_INLINE bool fenv_is_round_up() {
30
33
  // -1.0f - 2^-25 = -1.0f for FE_TONEAREST, FE_UPWARD, FE_TOWARDZERO
31
34
  // = -0x1.000002f for FE_DOWNWARD.
32
35
  LIBC_INLINE bool fenv_is_round_down() {
33
- volatile float x = 0x1.0p-25f;
36
+ static volatile float x = 0x1.0p-25f;
34
37
  return (-1.0f - x != -1.0f);
35
38
  }
36
39
 
@@ -42,8 +45,8 @@ LIBC_INLINE bool fenv_is_round_down() {
42
45
  // = 0x1.0ffffep-1f for FE_DOWNWARD, FE_TOWARDZERO
43
46
  LIBC_INLINE bool fenv_is_round_to_nearest() {
44
47
  static volatile float x = 0x1.0p-24f;
45
- float y = x;
46
- return (1.5f + y == 1.5f - y);
48
+ float y = 1.5f + x;
49
+ return (y == 1.5f - x);
47
50
  }
48
51
 
49
52
  // Quick free-standing test whether fegetround() == FE_TOWARDZERO.
@@ -75,6 +78,49 @@ LIBC_INLINE int quick_get_round() {
75
78
  return (2.0f + y == 2.0f) ? FE_TONEAREST : FE_UPWARD;
76
79
  }
77
80
 
81
+ } // namespace generic
82
+
83
+ LIBC_INLINE static constexpr bool fenv_is_round_up() {
84
+ if (cpp::is_constant_evaluated()) {
85
+ return false;
86
+ } else {
87
+ return generic::fenv_is_round_up();
88
+ }
89
+ }
90
+
91
+ LIBC_INLINE static constexpr bool fenv_is_round_down() {
92
+ if (cpp::is_constant_evaluated()) {
93
+ return false;
94
+ } else {
95
+ return generic::fenv_is_round_down();
96
+ }
97
+ }
98
+
99
+ LIBC_INLINE static constexpr bool fenv_is_round_to_nearest() {
100
+ if (cpp::is_constant_evaluated()) {
101
+ return true;
102
+ } else {
103
+ return generic::fenv_is_round_to_nearest();
104
+ }
105
+ }
106
+
107
+ LIBC_INLINE static constexpr bool fenv_is_round_to_zero() {
108
+ if (cpp::is_constant_evaluated()) {
109
+ return false;
110
+ } else {
111
+ return generic::fenv_is_round_to_zero();
112
+ }
113
+ }
114
+
115
+ // Quick free standing get rounding mode based on the above observations.
116
+ LIBC_INLINE static constexpr int quick_get_round() {
117
+ if (cpp::is_constant_evaluated()) {
118
+ return FE_TONEAREST;
119
+ } else {
120
+ return generic::quick_get_round();
121
+ }
122
+ }
123
+
78
124
  } // namespace fputil
79
125
  } // namespace LIBC_NAMESPACE_DECL
80
126
 
@@ -9,6 +9,7 @@
9
9
  #ifndef LLVM_LIBC_SRC___SUPPORT_BIG_INT_H
10
10
  #define LLVM_LIBC_SRC___SUPPORT_BIG_INT_H
11
11
 
12
+ #include "hdr/stdint_proxy.h"
12
13
  #include "src/__support/CPP/array.h"
13
14
  #include "src/__support/CPP/bit.h" // countl_zero
14
15
  #include "src/__support/CPP/limits.h"
@@ -23,7 +24,6 @@
23
24
  #include "src/__support/number_pair.h"
24
25
 
25
26
  #include <stddef.h> // For size_t
26
- #include <stdint.h>
27
27
 
28
28
  namespace LIBC_NAMESPACE_DECL {
29
29
 
@@ -95,10 +95,10 @@ LIBC_INLINE constexpr DoubleWide<word> mul2(word a, word b) {
95
95
  #endif
96
96
  else {
97
97
  using half_word = half_width_t<word>;
98
- const auto shiftl = [](word value) -> word {
98
+ constexpr auto shiftl = [](word value) -> word {
99
99
  return value << cpp::numeric_limits<half_word>::digits;
100
100
  };
101
- const auto shiftr = [](word value) -> word {
101
+ constexpr auto shiftr = [](word value) -> word {
102
102
  return value >> cpp::numeric_limits<half_word>::digits;
103
103
  };
104
104
  // Here we do a one digit multiplication where 'a' and 'b' are of type
@@ -111,19 +111,19 @@ LIBC_INLINE constexpr DoubleWide<word> mul2(word a, word b) {
111
111
  // c result
112
112
  // We convert 'lo' and 'hi' from 'half_word' to 'word' so multiplication
113
113
  // doesn't overflow.
114
- const word a_lo = lo(a);
115
- const word b_lo = lo(b);
116
- const word a_hi = hi(a);
117
- const word b_hi = hi(b);
118
- const word step1 = b_lo * a_lo; // no overflow;
119
- const word step2 = b_lo * a_hi; // no overflow;
120
- const word step3 = b_hi * a_lo; // no overflow;
121
- const word step4 = b_hi * a_hi; // no overflow;
114
+ word a_lo = lo(a);
115
+ word b_lo = lo(b);
116
+ word a_hi = hi(a);
117
+ word b_hi = hi(b);
118
+ word step1 = b_lo * a_lo; // no overflow;
119
+ word step2 = b_lo * a_hi; // no overflow;
120
+ word step3 = b_hi * a_lo; // no overflow;
121
+ word step4 = b_hi * a_hi; // no overflow;
122
122
  word lo_digit = step1;
123
123
  word hi_digit = step4;
124
- const word no_carry = 0;
125
- word carry;
126
- word _; // unused carry variable.
124
+ word no_carry = 0;
125
+ word carry = 0;
126
+ [[maybe_unused]] word _ = 0; // unused carry variable.
127
127
  lo_digit = add_with_carry<word>(lo_digit, shiftl(step2), no_carry, carry);
128
128
  hi_digit = add_with_carry<word>(hi_digit, shiftr(step2), carry, _);
129
129
  lo_digit = add_with_carry<word>(lo_digit, shiftl(step3), no_carry, carry);
@@ -16,6 +16,7 @@
16
16
  #include "src/__support/macros/attributes.h"
17
17
  #include "src/__support/macros/config.h"
18
18
  #include "src/__support/macros/properties/architectures.h"
19
+ #include "src/__support/macros/properties/compiler.h"
19
20
 
20
21
  #ifndef LLVM_LIBC_FUNCTION_ATTR
21
22
  #define LLVM_LIBC_FUNCTION_ATTR
@@ -41,12 +42,12 @@
41
42
  // to cleanly export and alias the C++ symbol `LIBC_NAMESPACE::func` with the C
42
43
  // symbol `func`. So for public packaging on MacOS, we will only export the C
43
44
  // symbol. Moreover, a C symbol `func` in macOS is mangled as `_func`.
44
- #if defined(LIBC_COPT_PUBLIC_PACKAGING)
45
+ #if defined(LIBC_COPT_PUBLIC_PACKAGING) && !defined(LIBC_COMPILER_IS_MSVC)
45
46
  #ifndef __APPLE__
46
47
  #define LLVM_LIBC_FUNCTION_IMPL(type, name, arglist) \
47
48
  LLVM_LIBC_ATTR(name) \
48
49
  LLVM_LIBC_FUNCTION_ATTR decltype(LIBC_NAMESPACE::name) \
49
- __##name##_impl__ __asm__(#name); \
50
+ __##name##_impl__ asm(#name); \
50
51
  decltype(LIBC_NAMESPACE::name) name [[gnu::alias(#name)]]; \
51
52
  type __##name##_impl__ arglist
52
53
  #else // __APPLE__