@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.
- package/c/stdlib.zig +32 -22
- package/compiler/aro/aro/Compilation.zig +0 -3
- package/compiler/translate-c/ast.zig +5 -2
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +1 -22
- package/docs/wasm/markdown/Parser.zig +5 -9
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +40 -19
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +60 -22
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Step/Compile.zig +18 -19
- package/std/Build/Step/Run.zig +13 -6
- package/std/Build/Step.zig +0 -3
- package/std/Io/Threaded.zig +3 -0
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +11 -2
- package/std/c.zig +7 -0
- package/std/debug/Dwarf.zig +14 -11
- package/std/debug/Pdb.zig +24 -16
- package/std/hash/xxhash.zig +0 -6
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +0 -1
- package/std/mem.zig +1 -2
- package/std/os/linux/x86.zig +2 -2
- package/std/os/windows.zig +130 -1
- package/std/simd.zig +4 -21
- package/std/start.zig +4 -3
- package/std/zig/Ast.zig +5 -7
- package/std/zig/AstGen.zig +20 -14
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/ZonGen.zig +13 -21
- package/std/zig/llvm/Builder.zig +2 -2
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
#if _LIBCPP_HAS_LOCALIZATION
|
|
15
15
|
|
|
16
|
+
# include <__algorithm/copy.h>
|
|
17
|
+
# include <__algorithm/fill_n.h>
|
|
16
18
|
# include <ios>
|
|
17
19
|
|
|
18
20
|
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
@@ -30,12 +32,9 @@ _LIBCPP_HIDE_FROM_ABI _OutputIterator __pad_and_output(
|
|
|
30
32
|
__ns -= __sz;
|
|
31
33
|
else
|
|
32
34
|
__ns = 0;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*__s = __fl;
|
|
37
|
-
for (; __ob < __oe; ++__ob, ++__s)
|
|
38
|
-
*__s = *__ob;
|
|
35
|
+
__s = std::copy(__ob, __op, __s);
|
|
36
|
+
__s = std::fill_n(__s, __ns, __fl);
|
|
37
|
+
__s = std::copy(__op, __oe, __s);
|
|
39
38
|
__iob.width(0);
|
|
40
39
|
return __s;
|
|
41
40
|
}
|
|
@@ -24,7 +24,6 @@
|
|
|
24
24
|
# include <wctype.h>
|
|
25
25
|
#endif
|
|
26
26
|
|
|
27
|
-
/* zig patch: https://github.com/llvm/llvm-project/pull/143055 */
|
|
28
27
|
#if __has_include(<xlocale.h>)
|
|
29
28
|
# include <xlocale.h>
|
|
30
29
|
#endif
|
|
@@ -80,22 +79,9 @@ inline _LIBCPP_HIDE_FROM_ABI long double __strtold(const char* __nptr, char** __
|
|
|
80
79
|
return ::strtold_l(__nptr, __endptr, __loc);
|
|
81
80
|
}
|
|
82
81
|
|
|
83
|
-
inline _LIBCPP_HIDE_FROM_ABI long long __strtoll(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
84
|
-
return ::strtoll_l(__nptr, __endptr, __base, __loc);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
|
88
|
-
__strtoull(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
89
|
-
return ::strtoull_l(__nptr, __endptr, __base, __loc);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
82
|
//
|
|
93
83
|
// Character manipulation functions
|
|
94
84
|
//
|
|
95
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isdigit(int __c, __locale_t __loc) { return ::isdigit_l(__c, __loc); }
|
|
96
|
-
|
|
97
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isxdigit(int __c, __locale_t __loc) { return ::isxdigit_l(__c, __loc); }
|
|
98
|
-
|
|
99
85
|
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
100
86
|
inline _LIBCPP_HIDE_FROM_ABI int __toupper(int __c, __locale_t __loc) { return ::toupper_l(__c, __loc); }
|
|
101
87
|
|
|
@@ -216,12 +202,6 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __
|
|
|
216
202
|
char** __s, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
217
203
|
return ::asprintf_l(__s, __loc, __format, std::forward<_Args>(__args)...); // non-standard
|
|
218
204
|
}
|
|
219
|
-
|
|
220
|
-
template <class... _Args>
|
|
221
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__scanf__, 3, 4) int __sscanf(
|
|
222
|
-
const char* __s, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
223
|
-
return ::sscanf_l(__s, __loc, __format, std::forward<_Args>(__args)...);
|
|
224
|
-
}
|
|
225
205
|
_LIBCPP_DIAGNOSTIC_POP
|
|
226
206
|
#undef _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT
|
|
227
207
|
|
|
@@ -141,13 +141,6 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __
|
|
|
141
141
|
__locale_guard __current(__loc);
|
|
142
142
|
return ::asprintf(__s, __format, std::forward<_Args>(__args)...); // non-standard
|
|
143
143
|
}
|
|
144
|
-
template <class... _Args>
|
|
145
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__scanf__, 3, 4) int __sscanf(
|
|
146
|
-
const char* __s, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
147
|
-
__locale_guard __current(__loc);
|
|
148
|
-
return std::sscanf(__s, __format, std::forward<_Args>(__args)...);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
144
|
_LIBCPP_DIAGNOSTIC_POP
|
|
152
145
|
#undef _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT
|
|
153
146
|
|
|
@@ -94,32 +94,9 @@ inline _LIBCPP_HIDE_FROM_ABI long double __strtold(const char* __nptr, char** __
|
|
|
94
94
|
return ::strtold_l(__nptr, __endptr, __loc);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
inline _LIBCPP_HIDE_FROM_ABI long long __strtoll(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
98
|
-
#if !_LIBCPP_HAS_MUSL_LIBC
|
|
99
|
-
return ::strtoll_l(__nptr, __endptr, __base, __loc);
|
|
100
|
-
#else
|
|
101
|
-
(void)__loc;
|
|
102
|
-
return ::strtoll(__nptr, __endptr, __base);
|
|
103
|
-
#endif
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
|
107
|
-
__strtoull(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
108
|
-
#if !_LIBCPP_HAS_MUSL_LIBC
|
|
109
|
-
return ::strtoull_l(__nptr, __endptr, __base, __loc);
|
|
110
|
-
#else
|
|
111
|
-
(void)__loc;
|
|
112
|
-
return ::strtoull(__nptr, __endptr, __base);
|
|
113
|
-
#endif
|
|
114
|
-
}
|
|
115
|
-
|
|
116
97
|
//
|
|
117
98
|
// Character manipulation functions
|
|
118
99
|
//
|
|
119
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isdigit(int __c, __locale_t __loc) { return isdigit_l(__c, __loc); }
|
|
120
|
-
|
|
121
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isxdigit(int __c, __locale_t __loc) { return isxdigit_l(__c, __loc); }
|
|
122
|
-
|
|
123
100
|
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
124
101
|
inline _LIBCPP_HIDE_FROM_ABI int __toupper(int __c, __locale_t __loc) { return toupper_l(__c, __loc); }
|
|
125
102
|
|
|
@@ -261,20 +238,6 @@ inline _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __asprintf(
|
|
|
261
238
|
va_end(__va);
|
|
262
239
|
return __res;
|
|
263
240
|
}
|
|
264
|
-
|
|
265
|
-
#ifndef _LIBCPP_COMPILER_GCC // GCC complains that this can't be always_inline due to C-style varargs
|
|
266
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
267
|
-
#endif
|
|
268
|
-
inline _LIBCPP_ATTRIBUTE_FORMAT(__scanf__, 3, 4) int __sscanf(
|
|
269
|
-
const char* __s, __locale_t __loc, const char* __format, ...) {
|
|
270
|
-
va_list __va;
|
|
271
|
-
va_start(__va, __format);
|
|
272
|
-
__locale_guard __current(__loc);
|
|
273
|
-
int __res = std::vsscanf(__s, __format, __va);
|
|
274
|
-
va_end(__va);
|
|
275
|
-
return __res;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
241
|
} // namespace __locale
|
|
279
242
|
_LIBCPP_END_NAMESPACE_STD
|
|
280
243
|
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
//===-----------------------------------------------------------------------===//
|
|
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 _LIBCPP___LOCALE_DIR_SUPPORT_NEWLIB_H
|
|
10
|
+
#define _LIBCPP___LOCALE_DIR_SUPPORT_NEWLIB_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
#include <__cstddef/size_t.h>
|
|
14
|
+
#include <__std_mbstate_t.h>
|
|
15
|
+
#include <clocale> // std::lconv
|
|
16
|
+
#include <cstdio>
|
|
17
|
+
#include <cstdlib>
|
|
18
|
+
#include <ctype.h>
|
|
19
|
+
#include <stdarg.h>
|
|
20
|
+
#include <string.h>
|
|
21
|
+
#include <time.h>
|
|
22
|
+
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
23
|
+
# include <cwchar>
|
|
24
|
+
# include <wctype.h>
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
28
|
+
# pragma GCC system_header
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
32
|
+
namespace __locale {
|
|
33
|
+
|
|
34
|
+
struct __locale_guard {
|
|
35
|
+
_LIBCPP_HIDE_FROM_ABI __locale_guard(locale_t& __loc) : __old_loc_(::uselocale(__loc)) {}
|
|
36
|
+
|
|
37
|
+
_LIBCPP_HIDE_FROM_ABI ~__locale_guard() {
|
|
38
|
+
if (__old_loc_)
|
|
39
|
+
::uselocale(__old_loc_);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
locale_t __old_loc_;
|
|
43
|
+
|
|
44
|
+
__locale_guard(__locale_guard const&) = delete;
|
|
45
|
+
__locale_guard& operator=(__locale_guard const&) = delete;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//
|
|
49
|
+
// Locale management
|
|
50
|
+
//
|
|
51
|
+
#define _LIBCPP_COLLATE_MASK LC_COLLATE_MASK
|
|
52
|
+
#define _LIBCPP_CTYPE_MASK LC_CTYPE_MASK
|
|
53
|
+
#define _LIBCPP_MONETARY_MASK LC_MONETARY_MASK
|
|
54
|
+
#define _LIBCPP_NUMERIC_MASK LC_NUMERIC_MASK
|
|
55
|
+
#define _LIBCPP_TIME_MASK LC_TIME_MASK
|
|
56
|
+
#define _LIBCPP_MESSAGES_MASK LC_MESSAGES_MASK
|
|
57
|
+
#define _LIBCPP_ALL_MASK LC_ALL_MASK
|
|
58
|
+
#define _LIBCPP_LC_ALL LC_ALL
|
|
59
|
+
|
|
60
|
+
using __locale_t _LIBCPP_NODEBUG = ::locale_t;
|
|
61
|
+
|
|
62
|
+
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
63
|
+
using __lconv_t _LIBCPP_NODEBUG = std::lconv;
|
|
64
|
+
|
|
65
|
+
inline _LIBCPP_HIDE_FROM_ABI __locale_t __newlocale(int __category_mask, const char* __locale, __locale_t __base) {
|
|
66
|
+
return ::newlocale(__category_mask, __locale, __base);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
inline _LIBCPP_HIDE_FROM_ABI void __freelocale(__locale_t __loc) { ::freelocale(__loc); }
|
|
70
|
+
|
|
71
|
+
inline _LIBCPP_HIDE_FROM_ABI char* __setlocale(int __category, char const* __locale) {
|
|
72
|
+
return ::setlocale(__category, __locale);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
inline _LIBCPP_HIDE_FROM_ABI __lconv_t* __localeconv(__locale_t& __loc) {
|
|
76
|
+
__locale_guard __current(__loc);
|
|
77
|
+
return std::localeconv();
|
|
78
|
+
}
|
|
79
|
+
#endif // _LIBCPP_BUILDING_LIBRARY
|
|
80
|
+
|
|
81
|
+
//
|
|
82
|
+
// Strtonum functions
|
|
83
|
+
//
|
|
84
|
+
inline _LIBCPP_HIDE_FROM_ABI float __strtof(const char* __nptr, char** __endptr, __locale_t __loc) {
|
|
85
|
+
return ::strtof_l(__nptr, __endptr, __loc);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
inline _LIBCPP_HIDE_FROM_ABI double __strtod(const char* __nptr, char** __endptr, __locale_t __loc) {
|
|
89
|
+
return ::strtod_l(__nptr, __endptr, __loc);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
inline _LIBCPP_HIDE_FROM_ABI long double __strtold(const char* __nptr, char** __endptr, __locale_t __loc) {
|
|
93
|
+
return ::strtold_l(__nptr, __endptr, __loc);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
//
|
|
97
|
+
// Character manipulation functions
|
|
98
|
+
//
|
|
99
|
+
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
100
|
+
inline _LIBCPP_HIDE_FROM_ABI int __toupper(int __c, __locale_t __loc) { return toupper_l(__c, __loc); }
|
|
101
|
+
|
|
102
|
+
inline _LIBCPP_HIDE_FROM_ABI int __tolower(int __c, __locale_t __loc) { return tolower_l(__c, __loc); }
|
|
103
|
+
|
|
104
|
+
inline _LIBCPP_HIDE_FROM_ABI int __strcoll(const char* __s1, const char* __s2, __locale_t __loc) {
|
|
105
|
+
return strcoll_l(__s1, __s2, __loc);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t __strxfrm(char* __dest, const char* __src, size_t __n, __locale_t __loc) {
|
|
109
|
+
return strxfrm_l(__dest, __src, __n, __loc);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
113
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswctype(wint_t __c, wctype_t __type, __locale_t __loc) {
|
|
114
|
+
return iswctype_l(__c, __type, __loc);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswspace(wint_t __c, __locale_t __loc) { return iswspace_l(__c, __loc); }
|
|
118
|
+
|
|
119
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswprint(wint_t __c, __locale_t __loc) { return iswprint_l(__c, __loc); }
|
|
120
|
+
|
|
121
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswcntrl(wint_t __c, __locale_t __loc) { return iswcntrl_l(__c, __loc); }
|
|
122
|
+
|
|
123
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswupper(wint_t __c, __locale_t __loc) { return iswupper_l(__c, __loc); }
|
|
124
|
+
|
|
125
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswlower(wint_t __c, __locale_t __loc) { return iswlower_l(__c, __loc); }
|
|
126
|
+
|
|
127
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswalpha(wint_t __c, __locale_t __loc) { return iswalpha_l(__c, __loc); }
|
|
128
|
+
|
|
129
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswblank(wint_t __c, __locale_t __loc) { return iswblank_l(__c, __loc); }
|
|
130
|
+
|
|
131
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswdigit(wint_t __c, __locale_t __loc) { return iswdigit_l(__c, __loc); }
|
|
132
|
+
|
|
133
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswpunct(wint_t __c, __locale_t __loc) { return iswpunct_l(__c, __loc); }
|
|
134
|
+
|
|
135
|
+
inline _LIBCPP_HIDE_FROM_ABI int __iswxdigit(wint_t __c, __locale_t __loc) { return iswxdigit_l(__c, __loc); }
|
|
136
|
+
|
|
137
|
+
inline _LIBCPP_HIDE_FROM_ABI wint_t __towupper(wint_t __c, __locale_t __loc) { return towupper_l(__c, __loc); }
|
|
138
|
+
|
|
139
|
+
inline _LIBCPP_HIDE_FROM_ABI wint_t __towlower(wint_t __c, __locale_t __loc) { return towlower_l(__c, __loc); }
|
|
140
|
+
|
|
141
|
+
inline _LIBCPP_HIDE_FROM_ABI int __wcscoll(const wchar_t* __ws1, const wchar_t* __ws2, __locale_t __loc) {
|
|
142
|
+
return wcscoll_l(__ws1, __ws2, __loc);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t __wcsxfrm(wchar_t* __dest, const wchar_t* __src, size_t __n, __locale_t __loc) {
|
|
146
|
+
return wcsxfrm_l(__dest, __src, __n, __loc);
|
|
147
|
+
}
|
|
148
|
+
# endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
|
149
|
+
|
|
150
|
+
inline _LIBCPP_HIDE_FROM_ABI
|
|
151
|
+
size_t __strftime(char* __s, size_t __max, const char* __format, const struct tm* __tm, __locale_t __loc) {
|
|
152
|
+
return strftime_l(__s, __max, __format, __tm, __loc);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//
|
|
156
|
+
// Other functions
|
|
157
|
+
//
|
|
158
|
+
inline _LIBCPP_HIDE_FROM_ABI decltype(MB_CUR_MAX) __mb_len_max(__locale_t __loc) {
|
|
159
|
+
__locale_guard __current(__loc);
|
|
160
|
+
return MB_CUR_MAX;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
164
|
+
inline _LIBCPP_HIDE_FROM_ABI wint_t __btowc(int __c, __locale_t __loc) {
|
|
165
|
+
__locale_guard __current(__loc);
|
|
166
|
+
return std::btowc(__c);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
inline _LIBCPP_HIDE_FROM_ABI int __wctob(wint_t __c, __locale_t __loc) {
|
|
170
|
+
__locale_guard __current(__loc);
|
|
171
|
+
return std::wctob(__c);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t
|
|
175
|
+
__wcsnrtombs(char* __dest, const wchar_t** __src, size_t __nwc, size_t __len, mbstate_t* __ps, __locale_t __loc) {
|
|
176
|
+
__locale_guard __current(__loc);
|
|
177
|
+
return ::wcsnrtombs(__dest, __src, __nwc, __len, __ps); // non-standard
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t __wcrtomb(char* __s, wchar_t __wc, mbstate_t* __ps, __locale_t __loc) {
|
|
181
|
+
__locale_guard __current(__loc);
|
|
182
|
+
return std::wcrtomb(__s, __wc, __ps);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t
|
|
186
|
+
__mbsnrtowcs(wchar_t* __dest, const char** __src, size_t __nms, size_t __len, mbstate_t* __ps, __locale_t __loc) {
|
|
187
|
+
__locale_guard __current(__loc);
|
|
188
|
+
return ::mbsnrtowcs(__dest, __src, __nms, __len, __ps); // non-standard
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t
|
|
192
|
+
__mbrtowc(wchar_t* __pwc, const char* __s, size_t __n, mbstate_t* __ps, __locale_t __loc) {
|
|
193
|
+
__locale_guard __current(__loc);
|
|
194
|
+
return std::mbrtowc(__pwc, __s, __n, __ps);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
inline _LIBCPP_HIDE_FROM_ABI int __mbtowc(wchar_t* __pwc, const char* __pmb, size_t __max, __locale_t __loc) {
|
|
198
|
+
__locale_guard __current(__loc);
|
|
199
|
+
return std::mbtowc(__pwc, __pmb, __max);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t __mbrlen(const char* __s, size_t __n, mbstate_t* __ps, __locale_t __loc) {
|
|
203
|
+
__locale_guard __current(__loc);
|
|
204
|
+
return std::mbrlen(__s, __n, __ps);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
inline _LIBCPP_HIDE_FROM_ABI size_t
|
|
208
|
+
__mbsrtowcs(wchar_t* __dest, const char** __src, size_t __len, mbstate_t* __ps, __locale_t __loc) {
|
|
209
|
+
__locale_guard __current(__loc);
|
|
210
|
+
return std::mbsrtowcs(__dest, __src, __len, __ps);
|
|
211
|
+
}
|
|
212
|
+
# endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
|
213
|
+
#endif // _LIBCPP_BUILDING_LIBRARY
|
|
214
|
+
|
|
215
|
+
#ifndef _LIBCPP_COMPILER_GCC // GCC complains that this can't be always_inline due to C-style varargs
|
|
216
|
+
_LIBCPP_HIDE_FROM_ABI
|
|
217
|
+
#endif
|
|
218
|
+
inline _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 4, 5) int __snprintf(
|
|
219
|
+
char* __s, size_t __n, __locale_t __loc, const char* __format, ...) {
|
|
220
|
+
va_list __va;
|
|
221
|
+
va_start(__va, __format);
|
|
222
|
+
__locale_guard __current(__loc);
|
|
223
|
+
int __res = std::vsnprintf(__s, __n, __format, __va);
|
|
224
|
+
va_end(__va);
|
|
225
|
+
return __res;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
#ifndef _LIBCPP_COMPILER_GCC // GCC complains that this can't be always_inline due to C-style varargs
|
|
229
|
+
_LIBCPP_HIDE_FROM_ABI
|
|
230
|
+
#endif
|
|
231
|
+
inline _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __asprintf(
|
|
232
|
+
char** __s, __locale_t __loc, const char* __format, ...) {
|
|
233
|
+
va_list __va;
|
|
234
|
+
va_start(__va, __format);
|
|
235
|
+
__locale_guard __current(__loc);
|
|
236
|
+
int __res = ::vasprintf(__s, __format, __va); // non-standard
|
|
237
|
+
va_end(__va);
|
|
238
|
+
return __res;
|
|
239
|
+
}
|
|
240
|
+
} // namespace __locale
|
|
241
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
242
|
+
|
|
243
|
+
#endif // _LIBCPP___LOCALE_DIR_SUPPORT_NEWLIB_H
|
|
@@ -29,10 +29,6 @@ namespace __locale {
|
|
|
29
29
|
//
|
|
30
30
|
// Character manipulation functions
|
|
31
31
|
//
|
|
32
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isdigit(int __c, __locale_t) { return std::isdigit(__c); }
|
|
33
|
-
|
|
34
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isxdigit(int __c, __locale_t) { return std::isxdigit(__c); }
|
|
35
|
-
|
|
36
32
|
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
37
33
|
inline _LIBCPP_HIDE_FROM_ABI int __toupper(int __c, __locale_t) { return std::toupper(__c); }
|
|
38
34
|
|
|
@@ -34,15 +34,6 @@ inline _LIBCPP_HIDE_FROM_ABI long double __strtold(const char* __nptr, char** __
|
|
|
34
34
|
return std::strtold(__nptr, __endptr);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
inline _LIBCPP_HIDE_FROM_ABI long long __strtoll(const char* __nptr, char** __endptr, int __base, __locale_t) {
|
|
38
|
-
return std::strtoll(__nptr, __endptr, __base);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
|
42
|
-
__strtoull(const char* __nptr, char** __endptr, int __base, __locale_t) {
|
|
43
|
-
return std::strtoull(__nptr, __endptr, __base);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
37
|
} // namespace __locale
|
|
47
38
|
_LIBCPP_END_NAMESPACE_STD
|
|
48
39
|
|
|
@@ -186,21 +186,9 @@ inline _LIBCPP_HIDE_FROM_ABI double __strtod(const char* __nptr, char** __endptr
|
|
|
186
186
|
return ::_strtod_l(__nptr, __endptr, __loc);
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
inline _LIBCPP_HIDE_FROM_ABI long long __strtoll(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
190
|
-
return ::_strtoi64_l(__nptr, __endptr, __base, __loc);
|
|
191
|
-
}
|
|
192
|
-
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
|
193
|
-
__strtoull(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
194
|
-
return ::_strtoui64_l(__nptr, __endptr, __base, __loc);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
189
|
//
|
|
198
190
|
// Character manipulation functions
|
|
199
191
|
//
|
|
200
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isdigit(int __c, __locale_t __loc) { return _isdigit_l(__c, __loc); }
|
|
201
|
-
|
|
202
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isxdigit(int __c, __locale_t __loc) { return _isxdigit_l(__c, __loc); }
|
|
203
|
-
|
|
204
192
|
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
205
193
|
inline _LIBCPP_HIDE_FROM_ABI int __toupper(int __c, __locale_t __loc) { return ::_toupper_l(__c, __loc); }
|
|
206
194
|
|
|
@@ -280,23 +268,6 @@ _LIBCPP_EXPORTED_FROM_ABI _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 4, 5) int __snpri
|
|
|
280
268
|
_LIBCPP_EXPORTED_FROM_ABI
|
|
281
269
|
_LIBCPP_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __asprintf(char** __ret, __locale_t __loc, const char* __format, ...);
|
|
282
270
|
|
|
283
|
-
_LIBCPP_DIAGNOSTIC_PUSH
|
|
284
|
-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wgcc-compat")
|
|
285
|
-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wformat-nonliteral") // GCC doesn't support [[gnu::format]] on variadic templates
|
|
286
|
-
#ifdef _LIBCPP_COMPILER_CLANG_BASED
|
|
287
|
-
# define _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(...) _LIBCPP_ATTRIBUTE_FORMAT(__VA_ARGS__)
|
|
288
|
-
#else
|
|
289
|
-
# define _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(...) /* nothing */
|
|
290
|
-
#endif
|
|
291
|
-
|
|
292
|
-
template <class... _Args>
|
|
293
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__scanf__, 3, 4) int __sscanf(
|
|
294
|
-
const char* __dest, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
295
|
-
return ::_sscanf_l(__dest, __format, __loc, std::forward<_Args>(__args)...);
|
|
296
|
-
}
|
|
297
|
-
_LIBCPP_DIAGNOSTIC_POP
|
|
298
|
-
#undef _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT
|
|
299
|
-
|
|
300
271
|
#if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
301
272
|
struct __locale_guard {
|
|
302
273
|
_LIBCPP_HIDE_FROM_ABI __locale_guard(__locale_t __l) : __status(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)) {
|
|
@@ -601,17 +601,13 @@ private:
|
|
|
601
601
|
template <> \
|
|
602
602
|
_LIBCPP_EXPORTED_FROM_ABI __time_get_storage<_CharT>::__time_get_storage(const string&); \
|
|
603
603
|
template <> \
|
|
604
|
-
|
|
604
|
+
void __time_get_storage<_CharT>::init(const ctype<_CharT>&); \
|
|
605
605
|
template <> \
|
|
606
|
-
|
|
607
|
-
char, const ctype<_CharT>&); \
|
|
606
|
+
__time_get_storage<_CharT>::string_type __time_get_storage<_CharT>::__analyze(char, const ctype<_CharT>&); \
|
|
608
607
|
extern template _LIBCPP_EXPORTED_FROM_ABI time_base::dateorder __time_get_storage<_CharT>::__do_date_order() \
|
|
609
608
|
const; \
|
|
610
609
|
extern template _LIBCPP_EXPORTED_FROM_ABI __time_get_storage<_CharT>::__time_get_storage(const char*); \
|
|
611
|
-
extern template _LIBCPP_EXPORTED_FROM_ABI __time_get_storage<_CharT>::__time_get_storage(const string&);
|
|
612
|
-
extern template _LIBCPP_EXPORTED_FROM_ABI void __time_get_storage<_CharT>::init(const ctype<_CharT>&); \
|
|
613
|
-
extern template _LIBCPP_EXPORTED_FROM_ABI __time_get_storage<_CharT>::string_type \
|
|
614
|
-
__time_get_storage<_CharT>::__analyze(char, const ctype<_CharT>&);
|
|
610
|
+
extern template _LIBCPP_EXPORTED_FROM_ABI __time_get_storage<_CharT>::__time_get_storage(const string&);
|
|
615
611
|
|
|
616
612
|
_LIBCPP_TIME_GET_STORAGE_EXPLICIT_INSTANTIATION(char)
|
|
617
613
|
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
@@ -53,7 +53,7 @@ inline _LIBCPP_HIDE_FROM_ABI __promote_t<_A1, _A2> hypot(_A1 __x, _A2 __y) _NOEX
|
|
|
53
53
|
// Computes the three-dimensional hypotenuse: `std::hypot(x,y,z)`.
|
|
54
54
|
// The naive implementation might over-/underflow which is why this implementation is more involved:
|
|
55
55
|
// If the square of an argument might run into issues, we scale the arguments appropriately.
|
|
56
|
-
// See https://
|
|
56
|
+
// See https://llvm.org/PR92782 for a detailed discussion and summary.
|
|
57
57
|
template <class _Real>
|
|
58
58
|
_LIBCPP_HIDE_FROM_ABI _Real __hypot(_Real __x, _Real __y, _Real __z) {
|
|
59
59
|
// Factors needed to determine if over-/underflow might happen
|
|
@@ -58,7 +58,7 @@ inline _LIBCPP_HIDE_FROM_ABI double log10(_A1 __x) _NOEXCEPT {
|
|
|
58
58
|
inline _LIBCPP_HIDE_FROM_ABI int ilogb(float __x) _NOEXCEPT { return __builtin_ilogbf(__x); }
|
|
59
59
|
|
|
60
60
|
template <class = int>
|
|
61
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
61
|
+
_LIBCPP_HIDE_FROM_ABI int ilogb(double __x) _NOEXCEPT {
|
|
62
62
|
return __builtin_ilogb(__x);
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -25,33 +25,26 @@ namespace __math {
|
|
|
25
25
|
|
|
26
26
|
// signbit
|
|
27
27
|
|
|
28
|
-
// TODO(LLVM 22): Remove conditional once support for Clang 19 is dropped.
|
|
29
|
-
#if defined(_LIBCPP_COMPILER_GCC) || __has_constexpr_builtin(__builtin_signbit)
|
|
30
|
-
# define _LIBCPP_SIGNBIT_CONSTEXPR _LIBCPP_CONSTEXPR_SINCE_CXX23
|
|
31
|
-
#else
|
|
32
|
-
# define _LIBCPP_SIGNBIT_CONSTEXPR
|
|
33
|
-
#endif
|
|
34
|
-
|
|
35
28
|
// The universal C runtime (UCRT) in the WinSDK provides floating point overloads
|
|
36
29
|
// for std::signbit(). By defining our overloads as templates, we can work around
|
|
37
30
|
// this issue as templates are less preferred than non-template functions.
|
|
38
31
|
template <class = void>
|
|
39
|
-
[[__nodiscard__]] inline
|
|
32
|
+
[[__nodiscard__]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool signbit(float __x) _NOEXCEPT {
|
|
40
33
|
return __builtin_signbit(__x);
|
|
41
34
|
}
|
|
42
35
|
|
|
43
36
|
template <class = void>
|
|
44
|
-
[[__nodiscard__]] inline
|
|
37
|
+
[[__nodiscard__]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool signbit(double __x) _NOEXCEPT {
|
|
45
38
|
return __builtin_signbit(__x);
|
|
46
39
|
}
|
|
47
40
|
|
|
48
41
|
template <class = void>
|
|
49
|
-
[[__nodiscard__]] inline
|
|
42
|
+
[[__nodiscard__]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool signbit(long double __x) _NOEXCEPT {
|
|
50
43
|
return __builtin_signbit(__x);
|
|
51
44
|
}
|
|
52
45
|
|
|
53
46
|
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
|
|
54
|
-
[[__nodiscard__]] inline
|
|
47
|
+
[[__nodiscard__]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool signbit(_A1 __x) _NOEXCEPT {
|
|
55
48
|
return __x < 0;
|
|
56
49
|
}
|
|
57
50
|
|
|
@@ -189,6 +182,82 @@ template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_ar
|
|
|
189
182
|
return __builtin_isunordered((type)__x, (type)__y);
|
|
190
183
|
}
|
|
191
184
|
|
|
185
|
+
// MS UCRT incorrectly defines some functions in a way not working with integer types. Until C++20, this was worked
|
|
186
|
+
// around by -fdelayed-template-parsing. Since C++20, we can use standard feature "requires" instead.
|
|
187
|
+
|
|
188
|
+
// TODO: Remove the workaround once UCRT fixes these functions. Note that this doesn't seem planned as of 2025-07 per
|
|
189
|
+
// https://developercommunity.visualstudio.com/t/10294165.
|
|
190
|
+
|
|
191
|
+
#if defined(_LIBCPP_MSVCRT) && _LIBCPP_STD_VER >= 20
|
|
192
|
+
namespace __ucrt {
|
|
193
|
+
template <class _A1>
|
|
194
|
+
requires is_integral_v<_A1>
|
|
195
|
+
[[nodiscard]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isfinite(_A1) noexcept {
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
template <class _A1>
|
|
200
|
+
requires is_integral_v<_A1>
|
|
201
|
+
[[nodiscard]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf(_A1) noexcept {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
template <class _A1>
|
|
206
|
+
requires is_integral_v<_A1>
|
|
207
|
+
[[nodiscard]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan(_A1) noexcept {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
template <class _A1>
|
|
212
|
+
requires is_integral_v<_A1>
|
|
213
|
+
[[nodiscard]] inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnormal(_A1 __x) noexcept {
|
|
214
|
+
return __x != 0;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
template <class _A1, class _A2>
|
|
218
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
219
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool isgreater(_A1 __x, _A2 __y) noexcept {
|
|
220
|
+
using type = __promote_t<_A1, _A2>;
|
|
221
|
+
return __builtin_isgreater((type)__x, (type)__y);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
template <class _A1, class _A2>
|
|
225
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
226
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool isgreaterequal(_A1 __x, _A2 __y) noexcept {
|
|
227
|
+
using type = __promote_t<_A1, _A2>;
|
|
228
|
+
return __builtin_isgreaterequal((type)__x, (type)__y);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
template <class _A1, class _A2>
|
|
232
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
233
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool isless(_A1 __x, _A2 __y) noexcept {
|
|
234
|
+
using type = __promote_t<_A1, _A2>;
|
|
235
|
+
return __builtin_isless((type)__x, (type)__y);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
template <class _A1, class _A2>
|
|
239
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
240
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool islessequal(_A1 __x, _A2 __y) noexcept {
|
|
241
|
+
using type = __promote_t<_A1, _A2>;
|
|
242
|
+
return __builtin_islessequal((type)__x, (type)__y);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
template <class _A1, class _A2>
|
|
246
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
247
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool islessgreater(_A1 __x, _A2 __y) noexcept {
|
|
248
|
+
using type = __promote_t<_A1, _A2>;
|
|
249
|
+
return __builtin_islessgreater((type)__x, (type)__y);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
template <class _A1, class _A2>
|
|
253
|
+
requires is_arithmetic_v<_A1> && is_arithmetic_v<_A2>
|
|
254
|
+
[[nodiscard]] inline _LIBCPP_HIDE_FROM_ABI bool isunordered(_A1 __x, _A2 __y) noexcept {
|
|
255
|
+
using type = __promote_t<_A1, _A2>;
|
|
256
|
+
return __builtin_isunordered((type)__x, (type)__y);
|
|
257
|
+
}
|
|
258
|
+
} // namespace __ucrt
|
|
259
|
+
#endif
|
|
260
|
+
|
|
192
261
|
} // namespace __math
|
|
193
262
|
|
|
194
263
|
_LIBCPP_END_NAMESPACE_STD
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
#include <__type_traits/integer_traits.h>
|
|
26
26
|
#include <__type_traits/is_convertible.h>
|
|
27
27
|
#include <__type_traits/is_nothrow_constructible.h>
|
|
28
|
+
#include <__type_traits/is_signed.h>
|
|
28
29
|
#include <__type_traits/make_unsigned.h>
|
|
29
30
|
#include <__utility/integer_sequence.h>
|
|
30
31
|
#include <__utility/unreachable.h>
|
|
@@ -298,11 +299,13 @@ private:
|
|
|
298
299
|
|
|
299
300
|
public:
|
|
300
301
|
// [mdspan.extents.obs], observers of multidimensional index space
|
|
301
|
-
_LIBCPP_HIDE_FROM_ABI static constexpr rank_type rank() noexcept { return __rank_; }
|
|
302
|
-
_LIBCPP_HIDE_FROM_ABI static constexpr rank_type rank_dynamic() noexcept { return __rank_dynamic_; }
|
|
302
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI static constexpr rank_type rank() noexcept { return __rank_; }
|
|
303
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI static constexpr rank_type rank_dynamic() noexcept { return __rank_dynamic_; }
|
|
303
304
|
|
|
304
|
-
_LIBCPP_HIDE_FROM_ABI constexpr index_type extent(rank_type __r) const noexcept {
|
|
305
|
-
|
|
305
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr index_type extent(rank_type __r) const noexcept {
|
|
306
|
+
return __vals_.__value(__r);
|
|
307
|
+
}
|
|
308
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI static constexpr size_t static_extent(rank_type __r) noexcept {
|
|
306
309
|
return _Values::__static_value(__r);
|
|
307
310
|
}
|
|
308
311
|
|
|
@@ -272,11 +272,10 @@ public:
|
|
|
272
272
|
return [&]<size_t... _Pos>(index_sequence<_Pos...>) {
|
|
273
273
|
if ((__extents_.extent(_Pos) * ... * 1) == 0)
|
|
274
274
|
return static_cast<index_type>(0);
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
static_cast<index_type>(0)));
|
|
275
|
+
|
|
276
|
+
return static_cast<index_type>(
|
|
277
|
+
static_cast<index_type>(1) + (((__extents_.extent(_Pos) - static_cast<index_type>(1)) * __strides_[_Pos]) +
|
|
278
|
+
... + static_cast<index_type>(0)));
|
|
280
279
|
}(make_index_sequence<__rank_>());
|
|
281
280
|
}
|
|
282
281
|
}
|