@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.292
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/fcntl.zig +6 -1
- package/c/inttypes.zig +0 -10
- package/c/math.zig +52 -112
- package/c/pthread.zig +57 -0
- package/c/search.zig +1 -27
- package/c/stdlib/drand48.zig +0 -57
- package/c/stdlib.zig +31 -121
- package/c/string.zig +20 -7
- package/c/strings.zig +0 -38
- package/c/unistd.zig +27 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +14 -13
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +9 -6
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +3 -2
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/build_runner.zig +2 -4
- package/compiler/reduce/Walk.zig +8 -13
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +4 -4
- package/compiler/resinator/errors.zig +7 -7
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/parse.zig +2 -2
- package/compiler/resinator/res.zig +1 -1
- package/compiler/std-docs.zig +1 -1
- package/compiler/test_runner.zig +1 -1
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +6 -2
- package/compiler/translate-c/ast.zig +16 -23
- package/compiler/translate-c/main.zig +1 -1
- package/compiler_rt/addf3.zig +1 -1
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/atomics.zig +1 -1
- package/compiler_rt/comparef.zig +3 -3
- package/compiler_rt/cos.zig +1 -3
- package/compiler_rt/count0bits.zig +1 -1
- package/compiler_rt/divdf3.zig +2 -2
- package/compiler_rt/divsf3.zig +1 -1
- package/compiler_rt/divtf3.zig +1 -1
- package/compiler_rt/divxf3.zig +1 -1
- package/compiler_rt/exp.zig +0 -2
- package/compiler_rt/exp2.zig +0 -2
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -3
- package/compiler_rt/float_from_int.zig +3 -4
- package/compiler_rt/fma.zig +0 -2
- package/compiler_rt/fmax.zig +1 -3
- package/compiler_rt/fmin.zig +1 -3
- package/compiler_rt/fmod.zig +2 -4
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/log.zig +0 -2
- package/compiler_rt/log10.zig +0 -2
- package/compiler_rt/log2.zig +0 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/round.zig +0 -2
- package/compiler_rt/sin.zig +1 -3
- package/compiler_rt/sincos.zig +1 -3
- package/compiler_rt/sqrt.zig +0 -2
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -3
- package/compiler_rt/trunc.zig +0 -2
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- package/docs/wasm/Walk.zig +1 -3
- package/docs/wasm/html_render.zig +1 -2
- package/docs/wasm/markdown/Parser.zig +16 -20
- package/fuzzer.zig +2 -0
- 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/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
- 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/libc/hdr/errno_macros.h +3 -1
- package/libcxx/libc/hdr/stdint_proxy.h +18 -0
- package/libcxx/libc/hdr/types/wchar_t.h +23 -0
- package/libcxx/libc/hdr/wchar_overlay.h +69 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
- package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
- package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
- package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
- package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
- package/libcxx/libc/shared/libc_common.h +5 -0
- package/libcxx/libc/src/__support/CPP/bit.h +50 -12
- package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
- package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
- package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
- package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
- package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
- package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
- package/libcxx/libc/src/__support/big_int.h +14 -14
- package/libcxx/libc/src/__support/common.h +3 -2
- package/libcxx/libc/src/__support/ctype_utils.h +19 -12
- package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
- package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
- package/libcxx/libc/src/__support/libc_assert.h +2 -0
- package/libcxx/libc/src/__support/macros/attributes.h +44 -1
- package/libcxx/libc/src/__support/macros/config.h +23 -0
- package/libcxx/libc/src/__support/macros/null_check.h +1 -2
- package/libcxx/libc/src/__support/macros/optimization.h +3 -0
- package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
- package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
- package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
- package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
- package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
- package/libcxx/libc/src/__support/math_extras.h +20 -4
- package/libcxx/libc/src/__support/str_to_float.h +98 -125
- package/libcxx/libc/src/__support/str_to_integer.h +39 -27
- package/libcxx/libc/src/__support/wctype_utils.h +588 -0
- 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 +42 -20
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +62 -23
- 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/Cache/Path.zig +1 -1
- package/std/Build/Cache.zig +6 -6
- package/std/Build/Step/Compile.zig +18 -20
- package/std/Build/Step/ConfigHeader.zig +1 -1
- package/std/Build/Step/Run.zig +15 -8
- package/std/Build/Step.zig +2 -7
- package/std/Build/Watch/FsEvents.zig +1 -1
- package/std/Build/WebServer.zig +2 -2
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +0 -3
- package/std/Io/Dir.zig +9 -4
- package/std/Io/Dispatch.zig +8 -18
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +0 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +183 -46
- package/std/Io/Uring.zig +18 -20
- package/std/Io/Writer.zig +10 -7
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io/net.zig +11 -11
- package/std/Io.zig +104 -38
- package/std/Random/ChaCha.zig +2 -2
- package/std/Random/benchmark.zig +2 -2
- package/std/Random.zig +6 -6
- package/std/SemanticVersion.zig +1 -1
- package/std/Target/Query.zig +2 -2
- 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 +67 -14
- package/std/Thread.zig +5 -2
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +10 -31
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +86 -69
- package/std/c/haiku.zig +3 -0
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +123 -32
- package/std/compress/flate/Decompress.zig +3 -4
- package/std/compress/zstd/Decompress.zig +7 -9
- package/std/crypto/25519/curve25519.zig +2 -2
- package/std/crypto/25519/edwards25519.zig +3 -3
- package/std/crypto/25519/ristretto255.zig +2 -2
- package/std/crypto/25519/scalar.zig +6 -6
- package/std/crypto/25519/x25519.zig +1 -1
- package/std/crypto/Certificate.zig +14 -2
- package/std/crypto/Sha1.zig +1 -1
- package/std/crypto/aegis.zig +45 -39
- package/std/crypto/aes_ccm.zig +22 -22
- package/std/crypto/aes_gcm.zig +10 -12
- package/std/crypto/aes_ocb.zig +9 -9
- package/std/crypto/argon2.zig +15 -15
- package/std/crypto/ascon.zig +75 -33
- package/std/crypto/bcrypt.zig +20 -10
- package/std/crypto/benchmark.zig +7 -7
- package/std/crypto/blake2.zig +100 -64
- package/std/crypto/cbc_mac.zig +1 -1
- package/std/crypto/chacha20.zig +10 -10
- package/std/crypto/cmac.zig +3 -3
- package/std/crypto/codecs/asn1/Oid.zig +12 -1
- package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
- package/std/crypto/codecs/asn1.zig +1 -1
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +4 -5
- package/std/crypto/ghash_polyval.zig +4 -4
- package/std/crypto/hkdf.zig +1 -1
- package/std/crypto/isap.zig +3 -3
- package/std/crypto/kangarootwelve.zig +1 -1
- package/std/crypto/keccak_p.zig +8 -8
- package/std/crypto/md5.zig +1 -1
- package/std/crypto/ml_dsa.zig +39 -39
- package/std/crypto/ml_kem.zig +12 -34
- package/std/crypto/modes.zig +2 -2
- package/std/crypto/pbkdf2.zig +1 -1
- package/std/crypto/pcurves/common.zig +4 -5
- package/std/crypto/pcurves/p256/scalar.zig +3 -3
- package/std/crypto/pcurves/p384/scalar.zig +2 -2
- package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
- package/std/crypto/pcurves/tests/p256.zig +5 -5
- package/std/crypto/pcurves/tests/p384.zig +5 -5
- package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
- package/std/crypto/salsa20.zig +8 -8
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -2
- package/std/crypto/siphash.zig +1 -1
- package/std/crypto/timing_safe.zig +10 -9
- package/std/crypto/tls/Client.zig +89 -13
- package/std/crypto/tls.zig +1 -1
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf.zig +15 -12
- package/std/debug/Pdb.zig +25 -17
- package/std/debug.zig +14 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +1 -1
- package/std/enums.zig +8 -8
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +14 -10
- package/std/fs/path.zig +7 -5
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/wyhash.zig +2 -2
- package/std/hash/xxhash.zig +0 -6
- package/std/hash_map.zig +20 -1
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +2 -133
- package/std/http/Client.zig +21 -24
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/{builtin.zig → lang.zig} +5 -1
- package/std/leb128.zig +2 -2
- package/std/math/big/int.zig +5 -5
- package/std/math/big.zig +4 -4
- package/std/math/copysign.zig +1 -1
- package/std/math/float.zig +62 -0
- package/std/math/frexp.zig +4 -4
- package/std/math/ilogb.zig +1 -1
- package/std/math/isfinite.zig +1 -1
- package/std/math/isinf.zig +1 -1
- package/std/math/isnan.zig +1 -2
- package/std/math/isnormal.zig +2 -2
- package/std/math/iszero.zig +2 -2
- package/std/math/ldexp.zig +2 -2
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +1 -2
- package/std/math/nextafter.zig +3 -4
- package/std/math/pow.zig +1 -1
- package/std/math/powi.zig +2 -3
- package/std/math/signbit.zig +0 -1
- package/std/math.zig +21 -26
- package/std/mem/Allocator.zig +0 -6
- package/std/mem.zig +31 -31
- package/std/meta/trailer_flags.zig +1 -1
- package/std/meta.zig +4 -36
- package/std/multi_array_list.zig +24 -0
- package/std/os/emscripten.zig +7 -6
- package/std/os/linux/IoUring.zig +2 -0
- package/std/os/linux/aarch64.zig +41 -12
- package/std/os/linux/arc.zig +41 -12
- package/std/os/linux/arm.zig +41 -12
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/hexagon.zig +33 -11
- package/std/os/linux/ioctl.zig +2 -2
- package/std/os/linux/loongarch32.zig +41 -13
- package/std/os/linux/loongarch64.zig +41 -12
- package/std/os/linux/m68k.zig +41 -13
- package/std/os/linux/mips.zig +67 -36
- package/std/os/linux/mips64.zig +60 -29
- package/std/os/linux/mipsn32.zig +60 -29
- package/std/os/linux/or1k.zig +41 -12
- package/std/os/linux/powerpc.zig +41 -12
- package/std/os/linux/powerpc64.zig +41 -12
- package/std/os/linux/riscv32.zig +41 -12
- package/std/os/linux/riscv64.zig +41 -12
- package/std/os/linux/s390x.zig +44 -7
- package/std/os/linux/sparc64.zig +83 -52
- package/std/os/linux/syscalls.zig +26 -1
- package/std/os/linux/thumb.zig +52 -36
- package/std/os/linux/x32.zig +41 -12
- package/std/os/linux/x86.zig +44 -15
- package/std/os/linux/x86_64.zig +41 -12
- package/std/os/linux.zig +416 -450
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/tables/boot_services.zig +9 -8
- package/std/os/uefi/tables/runtime_services.zig +1 -1
- package/std/os/windows.zig +130 -1
- package/std/os.zig +41 -0
- package/std/posix.zig +1 -1
- package/std/process/Environ.zig +1 -1
- package/std/process.zig +5 -4
- package/std/simd.zig +4 -21
- package/std/sort.zig +3 -3
- package/std/start.zig +17 -4
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +2 -2
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +12 -37
- package/std/zig/AstGen.zig +175 -332
- package/std/zig/AstRlAnnotate.zig +1 -22
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/BuiltinFn.zig +0 -32
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCInstallation.zig +34 -12
- package/std/zig/Parse.zig +11 -76
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +65 -132
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/llvm/Builder.zig +39 -33
- package/std/zig/llvm/bitcode_writer.zig +3 -3
- package/std/zig/llvm/ir.zig +8 -8
- 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/std/zig/target.zig +1 -4
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +3 -14
- package/std/zip.zig +5 -5
- package/std/zon/parse.zig +1 -1
- package/zig.h +340 -1
- package/compiler_rt/long_double.zig +0 -37
- 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/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libc/mingw/math/lrintl.c +0 -18
- package/libc/mingw/math/rintl.c +0 -16
- package/libc/mingw/winpthreads/spinlock.c +0 -82
- package/libc/musl/src/linux/tee.c +0 -8
- package/libc/musl/src/math/i386/lrintl.c +0 -8
- package/libc/musl/src/math/i386/rintl.c +0 -7
- package/libc/musl/src/math/lrintl.c +0 -36
- package/libc/musl/src/math/rintl.c +0 -29
- package/libc/musl/src/math/s390x/rintl.c +0 -15
- package/libc/musl/src/math/x32/lrintl.s +0 -7
- package/libc/musl/src/math/x32/rintl.s +0 -6
- package/libc/musl/src/math/x86_64/lrintl.c +0 -8
- package/libc/musl/src/math/x86_64/rintl.c +0 -7
- package/libc/musl/src/string/strdup.c +0 -10
- package/libc/musl/src/string/strndup.c +0 -12
- package/libc/musl/src/string/wcsdup.c +0 -10
- package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
- package/libc/musl/src/thread/pthread_spin_init.c +0 -6
- package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
- package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
- package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
- package/libc/musl/src/unistd/dup2.c +0 -20
- package/libc/musl/src/unistd/dup3.c +0 -26
- package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
- /package/std/{builtin → lang}/assembly.zig +0 -0
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
#include <sys/vt.h>
|
|
77
77
|
#include <linux/cdrom.h>
|
|
78
78
|
#include <linux/fd.h>
|
|
79
|
+
#include <linux/filter.h>
|
|
79
80
|
#if SANITIZER_ANDROID
|
|
80
81
|
#include <linux/fs.h>
|
|
81
82
|
#endif
|
|
@@ -151,16 +152,15 @@ typedef struct user_fpregs elf_fpregset_t;
|
|
|
151
152
|
#if defined(__mips64)
|
|
152
153
|
# include <sys/procfs.h>
|
|
153
154
|
#endif
|
|
154
|
-
#include <
|
|
155
|
-
#include <linux/
|
|
156
|
-
#include <linux/
|
|
157
|
-
#include <linux/
|
|
158
|
-
#include <linux/
|
|
159
|
-
#include <linux/
|
|
160
|
-
#include <
|
|
161
|
-
#include <
|
|
162
|
-
#include <sys/
|
|
163
|
-
#include <sys/ipc.h>
|
|
155
|
+
# include <linux/if_eql.h>
|
|
156
|
+
# include <linux/if_plip.h>
|
|
157
|
+
# include <linux/lp.h>
|
|
158
|
+
# include <linux/mroute.h>
|
|
159
|
+
# include <linux/mroute6.h>
|
|
160
|
+
# include <linux/serial.h>
|
|
161
|
+
# include <sys/ipc.h>
|
|
162
|
+
# include <sys/msg.h>
|
|
163
|
+
# include <sys/user.h>
|
|
164
164
|
#endif // SANITIZER_ANDROID
|
|
165
165
|
|
|
166
166
|
#include <link.h>
|
|
@@ -516,6 +516,7 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
|
|
516
516
|
unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec);
|
|
517
517
|
unsigned struct_synth_info_sz = sizeof(struct synth_info);
|
|
518
518
|
unsigned struct_vt_mode_sz = sizeof(struct vt_mode);
|
|
519
|
+
unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
|
|
519
520
|
#endif // SANITIZER_LINUX
|
|
520
521
|
|
|
521
522
|
#if SANITIZER_GLIBC
|
|
@@ -532,8 +533,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
|
|
532
533
|
unsigned struct_kbsentry_sz = sizeof(struct kbsentry);
|
|
533
534
|
unsigned struct_mtconfiginfo_sz = sizeof(struct mtconfiginfo);
|
|
534
535
|
unsigned struct_nr_parms_struct_sz = sizeof(struct nr_parms_struct);
|
|
535
|
-
unsigned struct_scc_modem_sz = sizeof(struct scc_modem);
|
|
536
|
-
unsigned struct_scc_stat_sz = sizeof(struct scc_stat);
|
|
537
536
|
unsigned struct_serial_multiport_struct_sz
|
|
538
537
|
= sizeof(struct serial_multiport_struct);
|
|
539
538
|
unsigned struct_serial_struct_sz = sizeof(struct serial_struct);
|
|
@@ -543,7 +542,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
|
|
543
542
|
|
|
544
543
|
unsigned struct_audio_buf_info_sz = sizeof(struct audio_buf_info);
|
|
545
544
|
unsigned struct_ppp_stats_sz = sizeof(struct ppp_stats);
|
|
546
|
-
unsigned struct_sock_fprog_sz = sizeof(struct sock_fprog);
|
|
547
545
|
# endif // SANITIZER_GLIBC
|
|
548
546
|
|
|
549
547
|
# if !SANITIZER_ANDROID && !SANITIZER_APPLE && !SANITIZER_HAIKU
|
|
@@ -779,16 +777,16 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
|
|
|
779
777
|
unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER;
|
|
780
778
|
#endif // SOUND_VERSION
|
|
781
779
|
unsigned IOCTL_TCFLSH = TCFLSH;
|
|
782
|
-
|
|
780
|
+
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
|
|
783
781
|
unsigned IOCTL_TCGETS = TCGETS;
|
|
782
|
+
# endif
|
|
784
783
|
unsigned IOCTL_TCSBRK = TCSBRK;
|
|
785
784
|
unsigned IOCTL_TCSBRKP = TCSBRKP;
|
|
786
|
-
|
|
787
|
-
unsigned IOCTL_TCSETAF = TCSETAF;
|
|
788
|
-
unsigned IOCTL_TCSETAW = TCSETAW;
|
|
785
|
+
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
|
|
789
786
|
unsigned IOCTL_TCSETS = TCSETS;
|
|
790
787
|
unsigned IOCTL_TCSETSF = TCSETSF;
|
|
791
788
|
unsigned IOCTL_TCSETSW = TCSETSW;
|
|
789
|
+
# endif
|
|
792
790
|
unsigned IOCTL_TCXONC = TCXONC;
|
|
793
791
|
unsigned IOCTL_TIOCGLCKTRMIOS = TIOCGLCKTRMIOS;
|
|
794
792
|
unsigned IOCTL_TIOCGSOFTCAR = TIOCGSOFTCAR;
|
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
# elif SANITIZER_GLIBC || SANITIZER_ANDROID
|
|
33
33
|
# define SANITIZER_HAS_STAT64 1
|
|
34
34
|
# define SANITIZER_HAS_STATFS64 1
|
|
35
|
+
# elif SANITIZER_HAIKU
|
|
36
|
+
# include <stdint.h>
|
|
35
37
|
# endif
|
|
36
38
|
|
|
37
39
|
# if defined(__sparc__)
|
|
@@ -102,6 +104,8 @@ const unsigned struct_kernel_stat_sz = SANITIZER_ANDROID
|
|
|
102
104
|
? FIRST_32_SECOND_64(104, 128)
|
|
103
105
|
# if defined(_ABIN32) && _MIPS_SIM == _ABIN32
|
|
104
106
|
: FIRST_32_SECOND_64(176, 216);
|
|
107
|
+
# elif SANITIZER_MUSL
|
|
108
|
+
: FIRST_32_SECOND_64(160, 208);
|
|
105
109
|
# else
|
|
106
110
|
: FIRST_32_SECOND_64(160, 216);
|
|
107
111
|
# endif
|
|
@@ -476,6 +480,30 @@ struct __sanitizer_cmsghdr {
|
|
|
476
480
|
int cmsg_level;
|
|
477
481
|
int cmsg_type;
|
|
478
482
|
};
|
|
483
|
+
# elif SANITIZER_MUSL
|
|
484
|
+
struct __sanitizer_msghdr {
|
|
485
|
+
void *msg_name;
|
|
486
|
+
unsigned msg_namelen;
|
|
487
|
+
struct __sanitizer_iovec *msg_iov;
|
|
488
|
+
int msg_iovlen;
|
|
489
|
+
# if SANITIZER_WORDSIZE == 64
|
|
490
|
+
int __pad1;
|
|
491
|
+
# endif
|
|
492
|
+
void *msg_control;
|
|
493
|
+
unsigned msg_controllen;
|
|
494
|
+
# if SANITIZER_WORDSIZE == 64
|
|
495
|
+
int __pad2;
|
|
496
|
+
# endif
|
|
497
|
+
int msg_flags;
|
|
498
|
+
};
|
|
499
|
+
struct __sanitizer_cmsghdr {
|
|
500
|
+
unsigned cmsg_len;
|
|
501
|
+
# if SANITIZER_WORDSIZE == 64
|
|
502
|
+
int __pad1;
|
|
503
|
+
# endif
|
|
504
|
+
int cmsg_level;
|
|
505
|
+
int cmsg_type;
|
|
506
|
+
};
|
|
479
507
|
# else
|
|
480
508
|
// In POSIX, int msg_iovlen; socklen_t msg_controllen; socklen_t cmsg_len; but
|
|
481
509
|
// many implementations don't conform to the standard.
|
|
@@ -603,7 +631,7 @@ typedef unsigned long __sanitizer_sigset_t;
|
|
|
603
631
|
# elif SANITIZER_APPLE
|
|
604
632
|
typedef unsigned __sanitizer_sigset_t;
|
|
605
633
|
# elif SANITIZER_HAIKU
|
|
606
|
-
typedef
|
|
634
|
+
typedef uint64_t __sanitizer_sigset_t;
|
|
607
635
|
# elif SANITIZER_LINUX
|
|
608
636
|
struct __sanitizer_sigset_t {
|
|
609
637
|
// The size is determined by looking at sizeof of real sigset_t on linux.
|
|
@@ -1312,16 +1340,14 @@ extern unsigned IOCTL_SNDCTL_COPR_SENDMSG;
|
|
|
1312
1340
|
extern unsigned IOCTL_SNDCTL_COPR_WCODE;
|
|
1313
1341
|
extern unsigned IOCTL_SNDCTL_COPR_WDATA;
|
|
1314
1342
|
extern unsigned IOCTL_TCFLSH;
|
|
1315
|
-
extern unsigned IOCTL_TCGETA;
|
|
1316
|
-
extern unsigned IOCTL_TCGETS;
|
|
1317
1343
|
extern unsigned IOCTL_TCSBRK;
|
|
1318
1344
|
extern unsigned IOCTL_TCSBRKP;
|
|
1319
|
-
|
|
1320
|
-
extern unsigned
|
|
1321
|
-
extern unsigned IOCTL_TCSETAW;
|
|
1345
|
+
# if SANITIZER_TERMIOS_IOCTL_CONSTANTS
|
|
1346
|
+
extern unsigned IOCTL_TCGETS;
|
|
1322
1347
|
extern unsigned IOCTL_TCSETS;
|
|
1323
1348
|
extern unsigned IOCTL_TCSETSF;
|
|
1324
1349
|
extern unsigned IOCTL_TCSETSW;
|
|
1350
|
+
# endif
|
|
1325
1351
|
extern unsigned IOCTL_TCXONC;
|
|
1326
1352
|
extern unsigned IOCTL_TIOCGLCKTRMIOS;
|
|
1327
1353
|
extern unsigned IOCTL_TIOCGSOFTCAR;
|
|
@@ -225,17 +225,9 @@ void *MapWritableFileToMemory(void *addr, uptr size, fd_t fd, OFF_T offset) {
|
|
|
225
225
|
return (void *)p;
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
|
|
229
|
-
uptr start2, uptr end2) {
|
|
230
|
-
CHECK(start1 <= end1);
|
|
231
|
-
CHECK(start2 <= end2);
|
|
232
|
-
return (end1 < start2) || (end2 < start1);
|
|
233
|
-
}
|
|
234
|
-
|
|
228
|
+
# if !SANITIZER_APPLE
|
|
235
229
|
// FIXME: this is thread-unsafe, but should not cause problems most of the time.
|
|
236
|
-
// When the shadow is mapped only a single thread usually exists
|
|
237
|
-
// several worker threads on Mac, which aren't expected to map big chunks of
|
|
238
|
-
// memory).
|
|
230
|
+
// When the shadow is mapped only a single thread usually exists
|
|
239
231
|
bool MemoryRangeIsAvailable(uptr range_start, uptr range_end) {
|
|
240
232
|
MemoryMappingLayout proc_maps(/*cache_enabled*/true);
|
|
241
233
|
if (proc_maps.Error())
|
|
@@ -251,7 +243,6 @@ bool MemoryRangeIsAvailable(uptr range_start, uptr range_end) {
|
|
|
251
243
|
return true;
|
|
252
244
|
}
|
|
253
245
|
|
|
254
|
-
#if !SANITIZER_APPLE
|
|
255
246
|
void DumpProcessMap() {
|
|
256
247
|
MemoryMappingLayout proc_maps(/*cache_enabled*/true);
|
|
257
248
|
const sptr kBufSize = 4095;
|
|
@@ -265,7 +256,7 @@ void DumpProcessMap() {
|
|
|
265
256
|
Report("End of process memory map.\n");
|
|
266
257
|
UnmapOrDie(filename, kBufSize);
|
|
267
258
|
}
|
|
268
|
-
#endif
|
|
259
|
+
# endif
|
|
269
260
|
|
|
270
261
|
const char *GetPwd() {
|
|
271
262
|
return GetEnv("PWD");
|
|
@@ -67,7 +67,8 @@ uptr internal_ptrace(int request, int pid, void *addr, void *data);
|
|
|
67
67
|
uptr internal_waitpid(int pid, int *status, int options);
|
|
68
68
|
|
|
69
69
|
int internal_fork();
|
|
70
|
-
|
|
70
|
+
bool internal_spawn(const char* argv[], const char* envp[], pid_t* pid,
|
|
71
|
+
fd_t fd_stdin, fd_t fd_stdout);
|
|
71
72
|
|
|
72
73
|
int internal_sysctl(const int *name, unsigned int namelen, void *oldp,
|
|
73
74
|
uptr *oldlenp, const void *newp, uptr newlen);
|
|
@@ -47,6 +47,8 @@ typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
|
|
|
47
47
|
|
|
48
48
|
namespace __sanitizer {
|
|
49
49
|
|
|
50
|
+
[[maybe_unused]] static atomic_uint8_t signal_handler_is_from_sanitizer[64];
|
|
51
|
+
|
|
50
52
|
u32 GetUid() {
|
|
51
53
|
return getuid();
|
|
52
54
|
}
|
|
@@ -210,6 +212,20 @@ void UnsetAlternateSignalStack() {
|
|
|
210
212
|
UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
|
|
211
213
|
}
|
|
212
214
|
|
|
215
|
+
bool IsSignalHandlerFromSanitizer(int signum) {
|
|
216
|
+
return atomic_load(&signal_handler_is_from_sanitizer[signum],
|
|
217
|
+
memory_order_relaxed);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
bool SetSignalHandlerFromSanitizer(int signum, bool new_state) {
|
|
221
|
+
if (signum < 0 || static_cast<unsigned>(signum) >=
|
|
222
|
+
ARRAY_SIZE(signal_handler_is_from_sanitizer))
|
|
223
|
+
return false;
|
|
224
|
+
|
|
225
|
+
return atomic_exchange(&signal_handler_is_from_sanitizer[signum], new_state,
|
|
226
|
+
memory_order_relaxed);
|
|
227
|
+
}
|
|
228
|
+
|
|
213
229
|
static void MaybeInstallSigaction(int signum,
|
|
214
230
|
SignalHandlerType handler) {
|
|
215
231
|
if (GetHandleSignalMode(signum) == kHandleSignalNo) return;
|
|
@@ -223,6 +239,9 @@ static void MaybeInstallSigaction(int signum,
|
|
|
223
239
|
if (common_flags()->use_sigaltstack) sigact.sa_flags |= SA_ONSTACK;
|
|
224
240
|
CHECK_EQ(0, internal_sigaction(signum, &sigact, nullptr));
|
|
225
241
|
VReport(1, "Installed the sigaction for signal %d\n", signum);
|
|
242
|
+
|
|
243
|
+
if (common_flags()->cloak_sanitizer_signal_handlers)
|
|
244
|
+
SetSignalHandlerFromSanitizer(signum, true);
|
|
226
245
|
}
|
|
227
246
|
|
|
228
247
|
void InstallDeadlySignalHandlers(SignalHandlerType handler) {
|
|
@@ -20,18 +20,21 @@
|
|
|
20
20
|
#include <mach/mach.h>
|
|
21
21
|
|
|
22
22
|
// These are not available in older macOS SDKs.
|
|
23
|
-
#ifndef CPU_SUBTYPE_X86_64_H
|
|
24
|
-
#define CPU_SUBTYPE_X86_64_H
|
|
25
|
-
#endif
|
|
26
|
-
#ifndef CPU_SUBTYPE_ARM_V7S
|
|
27
|
-
#define CPU_SUBTYPE_ARM_V7S
|
|
28
|
-
#endif
|
|
29
|
-
#ifndef CPU_SUBTYPE_ARM_V7K
|
|
30
|
-
#define CPU_SUBTYPE_ARM_V7K
|
|
31
|
-
#endif
|
|
32
|
-
#ifndef CPU_TYPE_ARM64
|
|
33
|
-
#define CPU_TYPE_ARM64
|
|
34
|
-
#endif
|
|
23
|
+
# ifndef CPU_SUBTYPE_X86_64_H
|
|
24
|
+
# define CPU_SUBTYPE_X86_64_H ((cpu_subtype_t)8) /* Haswell */
|
|
25
|
+
# endif
|
|
26
|
+
# ifndef CPU_SUBTYPE_ARM_V7S
|
|
27
|
+
# define CPU_SUBTYPE_ARM_V7S ((cpu_subtype_t)11) /* Swift */
|
|
28
|
+
# endif
|
|
29
|
+
# ifndef CPU_SUBTYPE_ARM_V7K
|
|
30
|
+
# define CPU_SUBTYPE_ARM_V7K ((cpu_subtype_t)12)
|
|
31
|
+
# endif
|
|
32
|
+
# ifndef CPU_TYPE_ARM64
|
|
33
|
+
# define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64)
|
|
34
|
+
# endif
|
|
35
|
+
# ifndef CPU_SUBTYPE_ARM64E
|
|
36
|
+
# define CPU_SUBTYPE_ARM64E ((cpu_subtype_t)2)
|
|
37
|
+
# endif
|
|
35
38
|
|
|
36
39
|
namespace __sanitizer {
|
|
37
40
|
|
|
@@ -42,7 +45,6 @@ struct MemoryMappedSegmentData {
|
|
|
42
45
|
const char *current_load_cmd_addr;
|
|
43
46
|
u32 lc_type;
|
|
44
47
|
uptr base_virt_addr;
|
|
45
|
-
uptr addr_mask;
|
|
46
48
|
};
|
|
47
49
|
|
|
48
50
|
template <typename Section>
|
|
@@ -51,12 +53,62 @@ static void NextSectionLoad(LoadedModule *module, MemoryMappedSegmentData *data,
|
|
|
51
53
|
const Section *sc = (const Section *)data->current_load_cmd_addr;
|
|
52
54
|
data->current_load_cmd_addr += sizeof(Section);
|
|
53
55
|
|
|
54
|
-
uptr sec_start =
|
|
56
|
+
uptr sec_start = sc->addr + data->base_virt_addr;
|
|
55
57
|
uptr sec_end = sec_start + sc->size;
|
|
56
58
|
module->addAddressRange(sec_start, sec_end, /*executable=*/false, isWritable,
|
|
57
59
|
sc->sectname);
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
static bool VerifyMemoryMapping(MemoryMappingLayout* mapping) {
|
|
63
|
+
InternalMmapVector<LoadedModule> modules;
|
|
64
|
+
modules.reserve(128); // matches DumpProcessMap
|
|
65
|
+
mapping->DumpListOfModules(&modules);
|
|
66
|
+
|
|
67
|
+
InternalMmapVector<LoadedModule::AddressRange> segments;
|
|
68
|
+
for (uptr i = 0; i < modules.size(); ++i) {
|
|
69
|
+
for (auto& range : modules[i].ranges()) {
|
|
70
|
+
if (range.beg == range.end)
|
|
71
|
+
continue;
|
|
72
|
+
segments.push_back(range);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Verify that none of the segments overlap:
|
|
77
|
+
// 1. Sort the segments by the start address
|
|
78
|
+
// 2. Check that every segment starts after the previous one ends.
|
|
79
|
+
Sort(segments.data(), segments.size(),
|
|
80
|
+
[](LoadedModule::AddressRange& a, LoadedModule::AddressRange& b) {
|
|
81
|
+
return a.beg < b.beg;
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// To avoid spam, we only print the report message once-per-process.
|
|
85
|
+
static bool invalid_module_map_reported = false;
|
|
86
|
+
bool well_formed = true;
|
|
87
|
+
|
|
88
|
+
for (size_t i = 1; i < segments.size(); i++) {
|
|
89
|
+
uptr cur_start = segments[i].beg;
|
|
90
|
+
uptr prev_end = segments[i - 1].end;
|
|
91
|
+
if (cur_start < prev_end) {
|
|
92
|
+
well_formed = false;
|
|
93
|
+
VReport(2, "Overlapping mappings: %s start = %p, %s end = %p\n",
|
|
94
|
+
segments[i].name, (void*)cur_start, segments[i - 1].name,
|
|
95
|
+
(void*)prev_end);
|
|
96
|
+
if (!invalid_module_map_reported) {
|
|
97
|
+
Report(
|
|
98
|
+
"WARN: Invalid dyld module map detected. This is most likely a bug "
|
|
99
|
+
"in the sanitizer.\n");
|
|
100
|
+
Report("WARN: Backtraces may be unreliable.\n");
|
|
101
|
+
invalid_module_map_reported = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
for (auto& m : modules) m.clear();
|
|
107
|
+
|
|
108
|
+
mapping->Reset();
|
|
109
|
+
return well_formed;
|
|
110
|
+
}
|
|
111
|
+
|
|
60
112
|
void MemoryMappedSegment::AddAddressRanges(LoadedModule *module) {
|
|
61
113
|
// Don't iterate over sections when the caller hasn't set up the
|
|
62
114
|
// data pointer, when there are no sections, or when the segment
|
|
@@ -82,6 +134,7 @@ void MemoryMappedSegment::AddAddressRanges(LoadedModule *module) {
|
|
|
82
134
|
|
|
83
135
|
MemoryMappingLayout::MemoryMappingLayout(bool cache_enabled) {
|
|
84
136
|
Reset();
|
|
137
|
+
VerifyMemoryMapping(this);
|
|
85
138
|
}
|
|
86
139
|
|
|
87
140
|
MemoryMappingLayout::~MemoryMappingLayout() {
|
|
@@ -123,7 +176,7 @@ void MemoryMappingLayout::Reset() {
|
|
|
123
176
|
// The dyld load address should be unchanged throughout process execution,
|
|
124
177
|
// and it is expensive to compute once many libraries have been loaded,
|
|
125
178
|
// so cache it here and do not reset.
|
|
126
|
-
static mach_header
|
|
179
|
+
static const mach_header* dyld_hdr = 0;
|
|
127
180
|
static const char kDyldPath[] = "/usr/lib/dyld";
|
|
128
181
|
static const int kDyldImageIdx = -1;
|
|
129
182
|
|
|
@@ -187,17 +240,22 @@ typedef struct dyld_shared_cache_dylib_text_info
|
|
|
187
240
|
|
|
188
241
|
extern bool _dyld_get_shared_cache_uuid(uuid_t uuid);
|
|
189
242
|
extern const void *_dyld_get_shared_cache_range(size_t *length);
|
|
243
|
+
extern intptr_t _dyld_get_image_slide(const struct mach_header* mh);
|
|
190
244
|
extern int dyld_shared_cache_iterate_text(
|
|
191
245
|
const uuid_t cacheUuid,
|
|
192
246
|
void (^callback)(const dyld_shared_cache_dylib_text_info *info));
|
|
247
|
+
SANITIZER_WEAK_IMPORT const struct mach_header* _dyld_get_dyld_header(void);
|
|
193
248
|
} // extern "C"
|
|
194
249
|
|
|
195
|
-
static mach_header
|
|
250
|
+
static const mach_header* GetDyldImageHeaderViaSharedCache() {
|
|
196
251
|
uuid_t uuid;
|
|
197
252
|
bool hasCache = _dyld_get_shared_cache_uuid(uuid);
|
|
198
253
|
if (!hasCache)
|
|
199
254
|
return nullptr;
|
|
200
255
|
|
|
256
|
+
if (&_dyld_get_dyld_header != nullptr)
|
|
257
|
+
return _dyld_get_dyld_header();
|
|
258
|
+
|
|
201
259
|
size_t cacheLength;
|
|
202
260
|
__block uptr cacheStart = (uptr)_dyld_get_shared_cache_range(&cacheLength);
|
|
203
261
|
CHECK(cacheStart && cacheLength);
|
|
@@ -255,23 +313,21 @@ static bool NextSegmentLoad(MemoryMappedSegment *segment,
|
|
|
255
313
|
layout_data->current_load_cmd_count--;
|
|
256
314
|
if (((const load_command *)lc)->cmd == kLCSegment) {
|
|
257
315
|
const SegmentCommand* sc = (const SegmentCommand *)lc;
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
//
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
316
|
+
if (internal_strcmp(sc->segname, "__LINKEDIT") == 0) {
|
|
317
|
+
// The LINKEDIT sections are for internal linker use, and may alias
|
|
318
|
+
// with the LINKEDIT section for other modules. (If we included them,
|
|
319
|
+
// our memory map would contain overlappping sections.)
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
uptr base_virt_addr;
|
|
324
|
+
if (layout_data->current_image == kDyldImageIdx)
|
|
325
|
+
base_virt_addr = (uptr)_dyld_get_image_slide(get_dyld_hdr());
|
|
326
|
+
else
|
|
269
327
|
base_virt_addr =
|
|
270
328
|
(uptr)_dyld_get_image_vmaddr_slide(layout_data->current_image);
|
|
271
|
-
addr_mask = ~0;
|
|
272
|
-
}
|
|
273
329
|
|
|
274
|
-
segment->start =
|
|
330
|
+
segment->start = sc->vmaddr + base_virt_addr;
|
|
275
331
|
segment->end = segment->start + sc->vmsize;
|
|
276
332
|
// Most callers don't need section information, so only fill this struct
|
|
277
333
|
// when required.
|
|
@@ -281,9 +337,9 @@ static bool NextSegmentLoad(MemoryMappedSegment *segment,
|
|
|
281
337
|
(const char *)lc + sizeof(SegmentCommand);
|
|
282
338
|
seg_data->lc_type = kLCSegment;
|
|
283
339
|
seg_data->base_virt_addr = base_virt_addr;
|
|
284
|
-
seg_data->addr_mask = addr_mask;
|
|
285
340
|
internal_strncpy(seg_data->name, sc->segname,
|
|
286
341
|
ARRAY_SIZE(seg_data->name));
|
|
342
|
+
seg_data->name[ARRAY_SIZE(seg_data->name) - 1] = 0;
|
|
287
343
|
}
|
|
288
344
|
|
|
289
345
|
// Return the initial protection.
|
|
@@ -297,6 +353,7 @@ static bool NextSegmentLoad(MemoryMappedSegment *segment,
|
|
|
297
353
|
? kDyldPath
|
|
298
354
|
: _dyld_get_image_name(layout_data->current_image);
|
|
299
355
|
internal_strncpy(segment->filename, src, segment->filename_size);
|
|
356
|
+
segment->filename[segment->filename_size - 1] = 0;
|
|
300
357
|
}
|
|
301
358
|
segment->arch = layout_data->current_arch;
|
|
302
359
|
internal_memcpy(segment->uuid, layout_data->current_uuid, kModuleUUIDSize);
|
|
@@ -311,18 +368,26 @@ ModuleArch ModuleArchFromCpuType(cpu_type_t cputype, cpu_subtype_t cpusubtype) {
|
|
|
311
368
|
case CPU_TYPE_I386:
|
|
312
369
|
return kModuleArchI386;
|
|
313
370
|
case CPU_TYPE_X86_64:
|
|
314
|
-
if (cpusubtype == CPU_SUBTYPE_X86_64_ALL)
|
|
315
|
-
|
|
371
|
+
if (cpusubtype == CPU_SUBTYPE_X86_64_ALL)
|
|
372
|
+
return kModuleArchX86_64;
|
|
373
|
+
if (cpusubtype == CPU_SUBTYPE_X86_64_H)
|
|
374
|
+
return kModuleArchX86_64H;
|
|
316
375
|
CHECK(0 && "Invalid subtype of x86_64");
|
|
317
376
|
return kModuleArchUnknown;
|
|
318
377
|
case CPU_TYPE_ARM:
|
|
319
|
-
if (cpusubtype == CPU_SUBTYPE_ARM_V6)
|
|
320
|
-
|
|
321
|
-
if (cpusubtype ==
|
|
322
|
-
|
|
378
|
+
if (cpusubtype == CPU_SUBTYPE_ARM_V6)
|
|
379
|
+
return kModuleArchARMV6;
|
|
380
|
+
if (cpusubtype == CPU_SUBTYPE_ARM_V7)
|
|
381
|
+
return kModuleArchARMV7;
|
|
382
|
+
if (cpusubtype == CPU_SUBTYPE_ARM_V7S)
|
|
383
|
+
return kModuleArchARMV7S;
|
|
384
|
+
if (cpusubtype == CPU_SUBTYPE_ARM_V7K)
|
|
385
|
+
return kModuleArchARMV7K;
|
|
323
386
|
CHECK(0 && "Invalid subtype of ARM");
|
|
324
387
|
return kModuleArchUnknown;
|
|
325
388
|
case CPU_TYPE_ARM64:
|
|
389
|
+
if (cpusubtype == CPU_SUBTYPE_ARM64E)
|
|
390
|
+
return kModuleArchARM64E;
|
|
326
391
|
return kModuleArchARM64;
|
|
327
392
|
default:
|
|
328
393
|
CHECK(0 && "Invalid CPU type");
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# define SANITIZER_REDEFINE_BUILTINS_H
|
|
16
16
|
|
|
17
17
|
// The asm hack only works with GCC and Clang.
|
|
18
|
-
# if !defined(_WIN32) && !defined(_AIX)
|
|
18
|
+
# if !defined(_WIN32) && !defined(_AIX) && !defined(__APPLE__)
|
|
19
19
|
|
|
20
20
|
asm(R"(
|
|
21
21
|
.set memcpy, __sanitizer_internal_memcpy
|
|
@@ -45,6 +45,8 @@ using namespace __sanitizer;
|
|
|
45
45
|
INTERCEPTOR(uptr, bsd_signal, int signum, uptr handler) {
|
|
46
46
|
SIGNAL_INTERCEPTOR_ENTER();
|
|
47
47
|
if (GetHandleSignalMode(signum) == kHandleSignalExclusive) return 0;
|
|
48
|
+
|
|
49
|
+
// TODO: support cloak_sanitizer_signal_handlers
|
|
48
50
|
SIGNAL_INTERCEPTOR_SIGNAL_IMPL(bsd_signal, signum, handler);
|
|
49
51
|
}
|
|
50
52
|
#define INIT_BSD_SIGNAL COMMON_INTERCEPT_FUNCTION(bsd_signal)
|
|
@@ -56,19 +58,55 @@ INTERCEPTOR(uptr, bsd_signal, int signum, uptr handler) {
|
|
|
56
58
|
INTERCEPTOR(uptr, signal, int signum, uptr handler) {
|
|
57
59
|
SIGNAL_INTERCEPTOR_ENTER();
|
|
58
60
|
if (GetHandleSignalMode(signum) == kHandleSignalExclusive)
|
|
61
|
+
// The user can neither view nor change the signal handler, regardless of
|
|
62
|
+
// the cloak_sanitizer_signal_handlers setting. This differs from
|
|
63
|
+
// sigaction().
|
|
59
64
|
return (uptr) nullptr;
|
|
60
|
-
|
|
65
|
+
|
|
66
|
+
uptr ret = +[](auto signal, int signum, uptr handler) {
|
|
67
|
+
SIGNAL_INTERCEPTOR_SIGNAL_IMPL(signal, signum, handler);
|
|
68
|
+
}(signal, signum, handler);
|
|
69
|
+
|
|
70
|
+
if (ret != sig_err && SetSignalHandlerFromSanitizer(signum, false))
|
|
71
|
+
// If the user sets a signal handler, it becomes uncloaked, even if they
|
|
72
|
+
// reuse a sanitizer's signal handler.
|
|
73
|
+
ret = sig_dfl;
|
|
74
|
+
|
|
75
|
+
return ret;
|
|
61
76
|
}
|
|
62
77
|
#define INIT_SIGNAL COMMON_INTERCEPT_FUNCTION(signal)
|
|
63
78
|
|
|
64
79
|
INTERCEPTOR(int, sigaction_symname, int signum,
|
|
65
80
|
const __sanitizer_sigaction *act, __sanitizer_sigaction *oldact) {
|
|
66
81
|
SIGNAL_INTERCEPTOR_ENTER();
|
|
82
|
+
|
|
67
83
|
if (GetHandleSignalMode(signum) == kHandleSignalExclusive) {
|
|
68
84
|
if (!oldact) return 0;
|
|
69
85
|
act = nullptr;
|
|
86
|
+
// If cloak_sanitizer_signal_handlers=true, the user can neither view nor
|
|
87
|
+
// change the signal handle.
|
|
88
|
+
// If false, the user can view but not change the signal handler. This
|
|
89
|
+
// differs from signal().
|
|
70
90
|
}
|
|
71
|
-
|
|
91
|
+
|
|
92
|
+
int ret = +[](int signum, const __sanitizer_sigaction* act,
|
|
93
|
+
__sanitizer_sigaction* oldact) {
|
|
94
|
+
SIGNAL_INTERCEPTOR_SIGACTION_IMPL(signum, act, oldact);
|
|
95
|
+
}(signum, act, oldact);
|
|
96
|
+
|
|
97
|
+
if (act) {
|
|
98
|
+
if (ret == 0 && SetSignalHandlerFromSanitizer(signum, false)) {
|
|
99
|
+
// If the user sets a signal handler, it becomes uncloaked, even if they
|
|
100
|
+
// reuse a sanitizer's signal handler.
|
|
101
|
+
|
|
102
|
+
if (oldact)
|
|
103
|
+
oldact->handler = reinterpret_cast<__sanitizer_sighandler_ptr>(sig_dfl);
|
|
104
|
+
}
|
|
105
|
+
} else if (ret == 0 && oldact && IsSignalHandlerFromSanitizer(signum)) {
|
|
106
|
+
oldact->handler = reinterpret_cast<__sanitizer_sighandler_ptr>(sig_dfl);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return ret;
|
|
72
110
|
}
|
|
73
111
|
#define INIT_SIGACTION COMMON_INTERCEPT_FUNCTION(sigaction_symname)
|
|
74
112
|
|
|
@@ -38,7 +38,7 @@ class SuspendedThreadsList {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
virtual uptr ThreadCount() const { UNIMPLEMENTED(); }
|
|
41
|
-
virtual
|
|
41
|
+
virtual ThreadID GetThreadID(uptr index) const { UNIMPLEMENTED(); }
|
|
42
42
|
|
|
43
43
|
protected:
|
|
44
44
|
~SuspendedThreadsList() {}
|