summaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp
diff options
context:
space:
mode:
authormonster <[email protected]>2022-07-07 14:41:37 +0300
committermonster <[email protected]>2022-07-07 14:41:37 +0300
commit06e5c21a835c0e923506c4ff27929f34e00761c2 (patch)
tree75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/libs/cxxsupp
parent03f024c4412e3aa613bb543cf1660176320ba8f4 (diff)
fix ya.make
Diffstat (limited to 'contrib/libs/cxxsupp')
-rw-r--r--contrib/libs/cxxsupp/.yandex_meta/devtools.copyrights.report114
-rw-r--r--contrib/libs/cxxsupp/.yandex_meta/devtools.licenses.report1656
-rw-r--r--contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.copyrights.report67
-rw-r--r--contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.licenses.report842
-rw-r--r--contrib/libs/cxxsupp/builtins/.yandex_meta/licenses.list.txt439
-rw-r--r--contrib/libs/cxxsupp/builtins/CMakeLists.txt2
-rw-r--r--contrib/libs/cxxsupp/builtins/absvdi2.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/absvsi2.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/absvti2.c34
-rw-r--r--contrib/libs/cxxsupp/builtins/adddf3.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/addsf3.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/addvdi3.c36
-rw-r--r--contrib/libs/cxxsupp/builtins/addvsi3.c36
-rw-r--r--contrib/libs/cxxsupp/builtins/addvti3.c40
-rw-r--r--contrib/libs/cxxsupp/builtins/apple_versioning.c350
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/adddf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/addsf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmp.S96
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmpeq_check_nan.c16
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmp.S91
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmpeq_check_nan.c16
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_dcmp.S40
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_div0.c43
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_drsub.c19
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_fcmp.S40
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_frsub.c19
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_idivmod.S28
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_ldivmod.S31
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_memcmp.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_memcpy.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_memmove.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_memset.S34
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_uidivmod.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/aeabi_uldivmod.S31
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/bswapdi2.S47
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/bswapsi2.S39
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/clzdi2.S97
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/clzsi2.S76
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/comparesf2.S148
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/divdf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/divmodsi4.S74
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/divsf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/divsi3.S65
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/eqdf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/eqsf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/extendsfdf2vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/fixdfsivfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/fixsfsivfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/fixunsdfsivfp.S27
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/fixunssfsivfp.S27
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/floatsidfvfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/floatsisfvfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/floatunssidfvfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/floatunssisfvfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/gedf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/gesf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/gtdf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/gtsf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/ledf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/lesf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/ltdf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/ltsf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/modsi3.S63
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/muldf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/mulsf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/nedf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/negdf2vfp.S23
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/negsf2vfp.S23
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/nesf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/restore_vfp_d8_d15_regs.S33
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/save_vfp_d8_d15_regs.S33
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/softfloat-alias.list21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/subdf3vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/subsf3vfp.S27
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/switch16.S44
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/switch32.S44
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/switch8.S42
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/switchu8.S42
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync-ops.h64
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_4.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_8.S24
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_4.S19
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_8.S23
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_8.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_8.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_8.S24
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_8.S24
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_4.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_8.S24
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_8.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_8.S21
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_4.S20
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_8.S24
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/sync_synchronize.S35
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/truncdfsf2vfp.S26
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/udivmodsi4.S184
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/udivsi3.S170
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/umodsi3.S161
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/unorddf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm/unordsf2vfp.S29
-rw-r--r--contrib/libs/cxxsupp/builtins/arm64/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/armv6m/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/ashldi3.c43
-rw-r--r--contrib/libs/cxxsupp/builtins/ashrdi3.c44
-rw-r--r--contrib/libs/cxxsupp/builtins/ashrti3.c46
-rw-r--r--contrib/libs/cxxsupp/builtins/assembly.h158
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic.c331
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_flag_clear.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_flag_clear_explicit.c28
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set_explicit.c28
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_signal_fence.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/atomic_thread_fence.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/clear_cache.c159
-rw-r--r--contrib/libs/cxxsupp/builtins/clzdi2.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/clzsi2.c53
-rw-r--r--contrib/libs/cxxsupp/builtins/cmpdi2.c51
-rw-r--r--contrib/libs/cxxsupp/builtins/cmpti2.c42
-rw-r--r--contrib/libs/cxxsupp/builtins/comparedf2.c146
-rw-r--r--contrib/libs/cxxsupp/builtins/comparesf2.c145
-rw-r--r--contrib/libs/cxxsupp/builtins/ctzdi2.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/ctzsi2.c57
-rw-r--r--contrib/libs/cxxsupp/builtins/ctzti2.c33
-rw-r--r--contrib/libs/cxxsupp/builtins/divdf3.c185
-rw-r--r--contrib/libs/cxxsupp/builtins/divdi3.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/divmoddi4.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/divmodsi4.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/divsf3.c169
-rw-r--r--contrib/libs/cxxsupp/builtins/divsi3.c37
-rw-r--r--contrib/libs/cxxsupp/builtins/divtc3.c60
-rw-r--r--contrib/libs/cxxsupp/builtins/emutls.c183
-rw-r--r--contrib/libs/cxxsupp/builtins/enable_execute_stack.c72
-rw-r--r--contrib/libs/cxxsupp/builtins/eprintf.c35
-rw-r--r--contrib/libs/cxxsupp/builtins/extendhfsf2.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/extendsfdf2.c19
-rw-r--r--contrib/libs/cxxsupp/builtins/ffsdi2.c33
-rw-r--r--contrib/libs/cxxsupp/builtins/ffsti2.c37
-rw-r--r--contrib/libs/cxxsupp/builtins/fixdfdi.c46
-rw-r--r--contrib/libs/cxxsupp/builtins/fixdfsi.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/fixsfdi.c47
-rw-r--r--contrib/libs/cxxsupp/builtins/fixsfsi.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/fixtfti.c23
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunsdfdi.c44
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunsdfsi.c21
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunssfdi.c45
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunssfsi.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunsxfdi.c46
-rw-r--r--contrib/libs/cxxsupp/builtins/fixunsxfsi.c45
-rw-r--r--contrib/libs/cxxsupp/builtins/fixxfdi.c48
-rw-r--r--contrib/libs/cxxsupp/builtins/fixxfti.c51
-rw-r--r--contrib/libs/cxxsupp/builtins/floatdidf.c107
-rw-r--r--contrib/libs/cxxsupp/builtins/floatdisf.c80
-rw-r--r--contrib/libs/cxxsupp/builtins/floatdixf.c46
-rw-r--r--contrib/libs/cxxsupp/builtins/floatsidf.c53
-rw-r--r--contrib/libs/cxxsupp/builtins/floatsisf.c59
-rw-r--r--contrib/libs/cxxsupp/builtins/floattixf.c84
-rw-r--r--contrib/libs/cxxsupp/builtins/floatundidf.c106
-rw-r--r--contrib/libs/cxxsupp/builtins/floatundisf.c77
-rw-r--r--contrib/libs/cxxsupp/builtins/floatundixf.c42
-rw-r--r--contrib/libs/cxxsupp/builtins/floatunsidf.c42
-rw-r--r--contrib/libs/cxxsupp/builtins/floatunsisf.c50
-rw-r--r--contrib/libs/cxxsupp/builtins/floatuntixf.c81
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/ashldi3.S58
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/ashrdi3.S69
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/chkstk.S34
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/chkstk2.S40
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/divdi3.S162
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatdidf.S39
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatdisf.S32
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatdixf.S30
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatundidf.S52
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatundisf.S105
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/floatundixf.S43
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/lshrdi3.S59
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/moddi3.S166
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/muldi3.S30
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/udivdi3.S115
-rw-r--r--contrib/libs/cxxsupp/builtins/i386/umoddi3.S126
-rw-r--r--contrib/libs/cxxsupp/builtins/lshrdi3.c43
-rw-r--r--contrib/libs/cxxsupp/builtins/moddi3.c30
-rw-r--r--contrib/libs/cxxsupp/builtins/modsi3.c23
-rw-r--r--contrib/libs/cxxsupp/builtins/muldf3.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/muldi3.c56
-rw-r--r--contrib/libs/cxxsupp/builtins/mulodi4.c58
-rw-r--r--contrib/libs/cxxsupp/builtins/mulosi4.c58
-rw-r--r--contrib/libs/cxxsupp/builtins/mulsf3.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/multc3.c68
-rw-r--r--contrib/libs/cxxsupp/builtins/multi3.c58
-rw-r--r--contrib/libs/cxxsupp/builtins/mulvdi3.c56
-rw-r--r--contrib/libs/cxxsupp/builtins/mulvsi3.c56
-rw-r--r--contrib/libs/cxxsupp/builtins/mulvti3.c60
-rw-r--r--contrib/libs/cxxsupp/builtins/negdf2.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/negdi2.c26
-rw-r--r--contrib/libs/cxxsupp/builtins/negsf2.c22
-rw-r--r--contrib/libs/cxxsupp/builtins/negti2.c30
-rw-r--r--contrib/libs/cxxsupp/builtins/negvdi2.c28
-rw-r--r--contrib/libs/cxxsupp/builtins/negvsi2.c28
-rw-r--r--contrib/libs/cxxsupp/builtins/negvti2.c32
-rw-r--r--contrib/libs/cxxsupp/builtins/paritydi2.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/paritysi2.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/parityti2.c29
-rw-r--r--contrib/libs/cxxsupp/builtins/popcountsi2.c33
-rw-r--r--contrib/libs/cxxsupp/builtins/popcountti2.c44
-rw-r--r--contrib/libs/cxxsupp/builtins/powidf2.c34
-rw-r--r--contrib/libs/cxxsupp/builtins/powisf2.c34
-rw-r--r--contrib/libs/cxxsupp/builtins/powitf2.c38
-rw-r--r--contrib/libs/cxxsupp/builtins/powixf2.c38
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/DD.h45
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/divtc3.c91
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/fixtfdi.c104
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/fixunstfdi.c59
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/floatditf.c36
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/floatunditf.c41
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/gcc_qadd.c76
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/gcc_qdiv.c55
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/gcc_qmul.c53
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/gcc_qsub.c76
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/multc3.c90
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/restFP.S43
-rw-r--r--contrib/libs/cxxsupp/builtins/ppc/saveFP.S40
-rw-r--r--contrib/libs/cxxsupp/builtins/subdf3.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/subsf3.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/subvdi3.c36
-rw-r--r--contrib/libs/cxxsupp/builtins/subvsi3.c36
-rw-r--r--contrib/libs/cxxsupp/builtins/subvti3.c40
-rw-r--r--contrib/libs/cxxsupp/builtins/trampoline_setup.c48
-rw-r--r--contrib/libs/cxxsupp/builtins/truncdfhf2.c18
-rw-r--r--contrib/libs/cxxsupp/builtins/truncdfsf2.c18
-rw-r--r--contrib/libs/cxxsupp/builtins/truncsfhf2.c24
-rw-r--r--contrib/libs/cxxsupp/builtins/ucmpdi2.c51
-rw-r--r--contrib/libs/cxxsupp/builtins/ucmpti2.c42
-rw-r--r--contrib/libs/cxxsupp/builtins/udivdi3.c23
-rw-r--r--contrib/libs/cxxsupp/builtins/udivmoddi4.c231
-rw-r--r--contrib/libs/cxxsupp/builtins/udivmodsi4.c27
-rw-r--r--contrib/libs/cxxsupp/builtins/udivsi3.c66
-rw-r--r--contrib/libs/cxxsupp/builtins/umoddi3.c25
-rw-r--r--contrib/libs/cxxsupp/builtins/umodsi3.c23
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/Makefile.mk20
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/chkstk.S39
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/chkstk2.S42
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatdidf.c16
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatdisf.c14
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatdixf.c16
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatundidf.S49
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatundisf.S35
-rw-r--r--contrib/libs/cxxsupp/builtins/x86_64/floatundixf.S68
-rw-r--r--contrib/libs/cxxsupp/libcxx/.clang-format20
-rw-r--r--contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.copyrights.report70
-rw-r--r--contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.licenses.report2348
-rw-r--r--contrib/libs/cxxsupp/libcxx/.yandex_meta/licenses.list.txt519
-rw-r--r--contrib/libs/cxxsupp/libcxx/glibcxx_eh_cxx17.cpp17
-rwxr-xr-xcontrib/libs/cxxsupp/libcxx/import22
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__config_site.in39
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_handle.h202
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_traits.h53
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__coroutine/noop_coroutine_handle.h112
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__coroutine/trivial_awaitables.h46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__libcpp_version1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/pointer_safety.h52
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/all.h82
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/common_view.h135
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/copyable_box.h178
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/counted.h81
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/drop_view.h127
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/empty.h82
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/empty_view.h45
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/iota_view.h408
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/join_view.h350
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/non_propagating_cache.h114
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/owning_view.h81
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/range_adaptor.h73
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/rbegin.h130
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/ref_view.h86
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/rend.h134
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/reverse_view.h190
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/single_view.h81
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/subrange.h289
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/take_view.h185
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/transform_view.h440
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/view_interface.h195
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/views.h35
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__support/solaris/floatingpoint.h13
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__support/solaris/wchar.h46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/coroutine52
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/csetjmp47
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/cstdbool31
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/ctgmath28
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/execution24
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/__memory117
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/algorithm52
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/coroutine334
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/deque46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/filesystem1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/forward_list46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/functional430
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/iterator119
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/list46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/map56
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/memory_resource419
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/propagate_const576
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/regex63
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/set56
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/simd1572
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/string63
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/type_traits154
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/unordered_map64
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/unordered_set58
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/utility46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/experimental/vector46
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/ext/__hash134
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/ext/hash_map984
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/ext/hash_set663
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/latch113
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/module.modulemap1104
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/numbers133
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/ranges275
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/scoped_allocator694
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/semaphore188
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/tgmath.h36
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/use_ansi.h3
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource.cpp147
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource_init_helper.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/int128_builtins.cpp54
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/ibm/mbsnrtowcs.cpp95
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/ibm/wcsnrtombs.cpp93
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/ibm/xlocale_zos.cpp137
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/solaris/mbsnrtowcs.inc76
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/solaris/wcsnrtombs.inc92
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/solaris/xlocale.cpp68
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/win32/atomic_win32.cpp31
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/win32/locale_win32.cpp141
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/win32/new_win32.cpp28
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/win32/support.cpp172
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/win32/thread_win32.cpp274
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.copyrights.report56
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.licenses.report294
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/.yandex_meta/licenses.list.txt381
-rw-r--r--contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.copyrights.report72
-rw-r--r--contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.licenses.report91
-rw-r--r--contrib/libs/cxxsupp/libcxxrt/.yandex_meta/licenses.list.txt82
-rw-r--r--contrib/libs/cxxsupp/libgcc/cxxabi.cpp13
-rw-r--r--contrib/libs/cxxsupp/libgcc/cxxabi.h6
-rw-r--r--contrib/libs/cxxsupp/libgcc/stdcxx_bits.cpp12
-rw-r--r--contrib/libs/cxxsupp/libgcc/stdcxx_bits.h11
-rw-r--r--contrib/libs/cxxsupp/libsan/generate_symbolizer.py12
-rw-r--r--contrib/libs/cxxsupp/libsan/inject.c8
-rw-r--r--contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.copyrights.report42
-rw-r--r--contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.licenses.report515
-rw-r--r--contrib/libs/cxxsupp/openmp/.yandex_meta/licenses.list.txt371
-rw-r--r--contrib/libs/cxxsupp/system_stl/include/stlfwd14
359 files changed, 1 insertions, 34491 deletions
diff --git a/contrib/libs/cxxsupp/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index 9995dec32d5..00000000000
--- a/contrib/libs/cxxsupp/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,114 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL 1d5ea88b15cad450fcd61657e1cf38f0
-BELONGS libcxxrt/ya.make
- License text:
- * Copyright 2010-2011 PathScale, Inc. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxxrt/LICENSE [3:3]
- libcxxrt/auxhelper.cc [2:2]
- libcxxrt/dwarf_eh.h [2:2]
- libcxxrt/dynamic_cast.cc [2:2]
- libcxxrt/exception.cc [2:2]
- libcxxrt/memory.cc [2:2]
- libcxxrt/stdexcept.cc [2:2]
- libcxxrt/stdexcept.h [2:2]
- libcxxrt/typeinfo.h [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL 5efdfd987a88b455d2c1b8018df2035e
-BELONGS libcxxrt/ya.make
- License text:
- * Copyright 2012 David Chisnall. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxxrt/cxxabi.h [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL 69053d6417df98873c8a8b466c648c78
-BELONGS libcxxrt/ya.make
- License text:
- * Copyright 2010-2012 PathScale, Inc. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxxrt/guard.cc [2:2]
- libcxxrt/typeinfo.cc [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL 7e6a182a2f65f965d96f2755976c1829
-BELONGS libcxx/ya.make
- License text:
- * FreeBSD libc. These are covered by the following copyright:
- *
- * Copyright (c) 2002-2004 Tim J. Robbins.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxx/src/support/solaris/mbsnrtowcs.inc [5:7]
- libcxx/src/support/solaris/wcsnrtombs.inc [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL ebc015cad7377d32e7b2fc0ae5293aa1
-BELONGS libcxx/ya.make
-FILE_INCLUDE libcxx/CREDITS.TXT found in files: libcxx/LICENSE.TXT at line 252
-FILE_IGNORE libcxxabi/CREDITS.TXT found in files: libcxx/LICENSE.TXT at line 252
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxx/LICENSE.TXT [252:252]
-
-KEEP COPYRIGHT_SERVICE_LABEL f52c727d32a7eaf5a8de6bc96b82797c
-BELONGS libcxx/ya.make
-FILE_INCLUDE libcxx/CREDITS.TXT found in files: libcxx/LICENSE.TXT at line 293
-FILE_IGNORE libcxxabi/CREDITS.TXT found in files: libcxx/LICENSE.TXT at line 293
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- libcxx/LICENSE.TXT [293:293]
diff --git a/contrib/libs/cxxsupp/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index 5322307293f..00000000000
--- a/contrib/libs/cxxsupp/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,1656 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP NCSA AND MIT 0791db4b6d90edd44c715bba1e426f74
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/extractExternal.cpp at line 11, openmp/include/30/omp.h.var at line 11, openmp/include/40/omp.h.var at line 11, openmp/include/41/omp.h.var at line 11, openmp/kmp.h at line 12, openmp/kmp_affinity.cpp at line 11, openmp/kmp_affinity.h at line 11, openmp/kmp_alloc.c at line 11, openmp/kmp_atomic.c at line 11, openmp/kmp_atomic.h at line 11, openmp/kmp_barrier.cpp at line 11, openmp/kmp_cancel.cpp at line 7, openmp/kmp_config.h at line 9, openmp/kmp_csupport.c at line 11, openmp/kmp_debug.c at line 11, openmp/kmp_debug.h at line 11, openmp/kmp_debugger.c at line 12, openmp/kmp_debugger.h at line 12, openmp/kmp_dispatch.cpp at line 11, openmp/kmp_environment.c at line 11, openmp/kmp_environment.h at line 11, openmp/kmp_error.c at line 11, openmp/kmp_error.h at line 11, openmp/kmp_ftn_cdecl.c at line 11, openmp/kmp_ftn_entry.h at line 11, openmp/kmp_ftn_extra.c at line 11, openmp/kmp_ftn_os.h at line 11, openmp/kmp_ftn_stdcall.c at line 11, openmp/kmp_global.c at line 11, openmp/kmp_gsupport.c at line 11, openmp/kmp_i18n.c at line 11, openmp/kmp_i18n.h at line 11, openmp/kmp_import.c at line 11, openmp/kmp_io.c at line 11, openmp/kmp_io.h at line 11, openmp/kmp_itt.c at line 14, openmp/kmp_itt.h at line 12, openmp/kmp_itt.inl at line 12, openmp/kmp_lock.cpp at line 11, openmp/kmp_lock.h at line 11, openmp/kmp_omp.h at line 13, openmp/kmp_os.h at line 11, openmp/kmp_platform.h at line 10, openmp/kmp_runtime.c at line 11, openmp/kmp_safe_c_api.h at line 7, openmp/kmp_sched.cpp at line 11, openmp/kmp_settings.c at line 11, openmp/kmp_settings.h at line 11, openmp/kmp_stats.cpp at line 11, openmp/kmp_stats.h at line 14, openmp/kmp_stats_timing.cpp at line 11, openmp/kmp_stats_timing.h at line 14, openmp/kmp_str.c at line 11, openmp/kmp_str.h at line 11, openmp/kmp_stub.c at line 11, openmp/kmp_stub.h at line 11, openmp/kmp_taskdeps.cpp at line 11, openmp/kmp_tasking.c at line 11, openmp/kmp_taskq.c at line 11, openmp/kmp_threadprivate.c at line 11, openmp/kmp_utility.c at line 11, openmp/kmp_version.c at line 11, openmp/kmp_version.h at line 11, openmp/kmp_wait_release.cpp at line 11, openmp/kmp_wait_release.h at line 11, openmp/kmp_wrapper_getpid.h at line 11, openmp/kmp_wrapper_malloc.h at line 12, openmp/omp.h at line 11, openmp/test-touch.c at line 9, openmp/thirdparty/ittnotify/disable_warnings.h at line 7, openmp/thirdparty/ittnotify/ittnotify.h at line 7, openmp/thirdparty/ittnotify/ittnotify_config.h at line 7, openmp/thirdparty/ittnotify/ittnotify_static.c at line 7, openmp/thirdparty/ittnotify/ittnotify_types.h at line 7, openmp/thirdparty/ittnotify/legacy/ittnotify.h at line 7, openmp/z_Linux_util.c at line 11, openmp/z_Windows_NT-586_util.c at line 11, openmp/z_Windows_NT_util.c at line 11
- License text:
- // This file is dual licensed under the MIT and the University of Illinois Open
- // Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/extractExternal.cpp [10:11]
- openmp/include/30/omp.h.var [10:11]
- openmp/include/40/omp.h.var [10:11]
- openmp/include/41/omp.h.var [10:11]
- openmp/kmp.h [11:12]
- openmp/kmp_affinity.cpp [10:11]
- openmp/kmp_affinity.h [10:11]
- openmp/kmp_alloc.c [10:11]
- openmp/kmp_atomic.c [10:11]
- openmp/kmp_atomic.h [10:11]
- openmp/kmp_barrier.cpp [10:11]
- openmp/kmp_cancel.cpp [6:7]
- openmp/kmp_config.h [8:9]
- openmp/kmp_csupport.c [10:11]
- openmp/kmp_debug.c [10:11]
- openmp/kmp_debug.h [10:11]
- openmp/kmp_debugger.c [11:12]
- openmp/kmp_debugger.h [11:12]
- openmp/kmp_dispatch.cpp [10:11]
- openmp/kmp_environment.c [10:11]
- openmp/kmp_environment.h [10:11]
- openmp/kmp_error.c [10:11]
- openmp/kmp_error.h [10:11]
- openmp/kmp_ftn_cdecl.c [10:11]
- openmp/kmp_ftn_entry.h [10:11]
- openmp/kmp_ftn_extra.c [10:11]
- openmp/kmp_ftn_os.h [10:11]
- openmp/kmp_ftn_stdcall.c [10:11]
- openmp/kmp_global.c [10:11]
- openmp/kmp_gsupport.c [10:11]
- openmp/kmp_i18n.c [10:11]
- openmp/kmp_i18n.h [10:11]
- openmp/kmp_import.c [10:11]
- openmp/kmp_io.c [10:11]
- openmp/kmp_io.h [10:11]
- openmp/kmp_itt.c [13:14]
- openmp/kmp_itt.h [11:12]
- openmp/kmp_itt.inl [11:12]
- openmp/kmp_lock.cpp [10:11]
- openmp/kmp_lock.h [10:11]
- openmp/kmp_omp.h [12:13]
- openmp/kmp_os.h [10:11]
- openmp/kmp_platform.h [9:10]
- openmp/kmp_runtime.c [10:11]
- openmp/kmp_safe_c_api.h [6:7]
- openmp/kmp_sched.cpp [10:11]
- openmp/kmp_settings.c [10:11]
- openmp/kmp_settings.h [10:11]
- openmp/kmp_stats.cpp [10:11]
- openmp/kmp_stats.h [13:14]
- openmp/kmp_stats_timing.cpp [10:11]
- openmp/kmp_stats_timing.h [13:14]
- openmp/kmp_str.c [10:11]
- openmp/kmp_str.h [10:11]
- openmp/kmp_stub.c [10:11]
- openmp/kmp_stub.h [10:11]
- openmp/kmp_taskdeps.cpp [10:11]
- openmp/kmp_tasking.c [10:11]
- openmp/kmp_taskq.c [10:11]
- openmp/kmp_threadprivate.c [10:11]
- openmp/kmp_utility.c [10:11]
- openmp/kmp_version.c [10:11]
- openmp/kmp_version.h [10:11]
- openmp/kmp_wait_release.cpp [10:11]
- openmp/kmp_wait_release.h [10:11]
- openmp/kmp_wrapper_getpid.h [10:11]
- openmp/kmp_wrapper_malloc.h [11:12]
- openmp/omp.h [10:11]
- openmp/test-touch.c [8:9]
- openmp/thirdparty/ittnotify/disable_warnings.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify_config.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify_static.c [6:7]
- openmp/thirdparty/ittnotify/ittnotify_types.h [6:7]
- openmp/thirdparty/ittnotify/legacy/ittnotify.h [6:7]
- openmp/z_Linux_util.c [10:11]
- openmp/z_Windows_NT-586_util.c [10:11]
- openmp/z_Windows_NT_util.c [10:11]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/extractExternal.cpp [10:11]
- openmp/include/30/omp.h.var [10:11]
- openmp/include/40/omp.h.var [10:11]
- openmp/include/41/omp.h.var [10:11]
- openmp/kmp.h [11:12]
- openmp/kmp_affinity.cpp [10:11]
- openmp/kmp_affinity.h [10:11]
- openmp/kmp_alloc.c [10:11]
- openmp/kmp_atomic.c [10:11]
- openmp/kmp_atomic.h [10:11]
- openmp/kmp_barrier.cpp [10:11]
- openmp/kmp_cancel.cpp [6:7]
- openmp/kmp_config.h [8:9]
- openmp/kmp_csupport.c [10:11]
- openmp/kmp_debug.c [10:11]
- openmp/kmp_debug.h [10:11]
- openmp/kmp_debugger.c [11:12]
- openmp/kmp_debugger.h [11:12]
- openmp/kmp_dispatch.cpp [10:11]
- openmp/kmp_environment.c [10:11]
- openmp/kmp_environment.h [10:11]
- openmp/kmp_error.c [10:11]
- openmp/kmp_error.h [10:11]
- openmp/kmp_ftn_cdecl.c [10:11]
- openmp/kmp_ftn_entry.h [10:11]
- openmp/kmp_ftn_extra.c [10:11]
- openmp/kmp_ftn_os.h [10:11]
- openmp/kmp_ftn_stdcall.c [10:11]
- openmp/kmp_global.c [10:11]
- openmp/kmp_gsupport.c [10:11]
- openmp/kmp_i18n.c [10:11]
- openmp/kmp_i18n.h [10:11]
- openmp/kmp_import.c [10:11]
- openmp/kmp_io.c [10:11]
- openmp/kmp_io.h [10:11]
- openmp/kmp_itt.c [13:14]
- openmp/kmp_itt.h [11:12]
- openmp/kmp_itt.inl [11:12]
- openmp/kmp_lock.cpp [10:11]
- openmp/kmp_lock.h [10:11]
- openmp/kmp_omp.h [12:13]
- openmp/kmp_os.h [10:11]
- openmp/kmp_platform.h [9:10]
- openmp/kmp_runtime.c [10:11]
- openmp/kmp_safe_c_api.h [6:7]
- openmp/kmp_sched.cpp [10:11]
- openmp/kmp_settings.c [10:11]
- openmp/kmp_settings.h [10:11]
- openmp/kmp_stats.cpp [10:11]
- openmp/kmp_stats.h [13:14]
- openmp/kmp_stats_timing.cpp [10:11]
- openmp/kmp_stats_timing.h [13:14]
- openmp/kmp_str.c [10:11]
- openmp/kmp_str.h [10:11]
- openmp/kmp_stub.c [10:11]
- openmp/kmp_stub.h [10:11]
- openmp/kmp_taskdeps.cpp [10:11]
- openmp/kmp_tasking.c [10:11]
- openmp/kmp_taskq.c [10:11]
- openmp/kmp_threadprivate.c [10:11]
- openmp/kmp_utility.c [10:11]
- openmp/kmp_version.c [10:11]
- openmp/kmp_version.h [10:11]
- openmp/kmp_wait_release.cpp [10:11]
- openmp/kmp_wait_release.h [10:11]
- openmp/kmp_wrapper_getpid.h [10:11]
- openmp/kmp_wrapper_malloc.h [11:12]
- openmp/omp.h [10:11]
- openmp/test-touch.c [8:9]
- openmp/thirdparty/ittnotify/disable_warnings.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify_config.h [6:7]
- openmp/thirdparty/ittnotify/ittnotify_static.c [6:7]
- openmp/thirdparty/ittnotify/ittnotify_types.h [6:7]
- openmp/thirdparty/ittnotify/legacy/ittnotify.h [6:7]
- openmp/z_Linux_util.c [10:11]
- openmp/z_Windows_NT-586_util.c [10:11]
- openmp/z_Windows_NT_util.c [10:11]
-
-KEEP NCSA AND MIT 1f7e00acb6cda5de868d4d4c1ffe3c2b
-BELONGS libcxx/ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- libcxx/LICENSE.TXT [240:245]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- libcxx/LICENSE.TXT [240:245]
-
-KEEP NCSA AND MIT 479de2cae020eacfac58212c03d33ab1
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/thirdparty/ittnotify/ittnotify_static.h at line 7
- License text:
- // This file is dual licensed under the MIT and the University of Illinois Open
- // Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/thirdparty/ittnotify/ittnotify_static.h [6:7]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/thirdparty/ittnotify/ittnotify_static.h [6:7]
-
-KEEP NCSA 5a35b4c0d3b3923cac31a5a371332ca2
-BELONGS libcxx/ya.make
- License text:
- Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- libcxx/LICENSE.TXT [237:237]
-
-KEEP BSD-2-Clause 5a4c43ebab4641c8f908bfd9c8d25cec
-BELONGS libcxxrt/ya.make
-FILE_IGNORE libcxx/include/experimental/list found in files: libcxxrt/exception.cc at line 11, libcxxrt/exception.cc at line 8
-FILE_IGNORE libcxx/include/list found in files: libcxxrt/exception.cc at line 11, libcxxrt/exception.cc at line 8
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxxrt/exception.cc at line 14, libcxxrt/exception.cc at line 17
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- libcxxrt/exception.cc [4:24]
-
-KEEP MIT 5debb370f50e1dfd24ff5144233a2ef6
-BELONGS libcxx/ya.make
-FILE_IGNORE libcxx/include/any found in files: libcxx/LICENSE.TXT at line 295
-FILE_INCLUDE libcxxrt/AUTHORS found in files: libcxx/LICENSE.TXT at line 308
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxx/LICENSE.TXT at line 308
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- libcxx/LICENSE.TXT [295:311]
-
-KEEP NCSA AND MIT 61ab203794bd26e0aab2c6b954e30d9a
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/libomp.rc.var at line 9, openmp/z_Linux_asm.s at line 10
- License text:
- //// This file is dual licensed under the MIT and the University of Illinois Open
- //// Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/libomp.rc.var [8:9]
- openmp/z_Linux_asm.s [9:10]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/libomp.rc.var [8:9]
- openmp/z_Linux_asm.s [9:10]
-
-KEEP Apache-2.0 WITH LLVM-exception 705a75a25bce12b12334e8fc577d8a46
-BELONGS libcxx/ya.make
- License text:
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/src/filesystem/int128_builtins.cpp [3:4]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/src/filesystem/int128_builtins.cpp [3:4]
-
-KEEP Apache-2.0 WITH LLVM-exception 755ab7da3ff8c5d6ae90bdbebd177e49
-BELONGS libcxx/ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/include/__availability [4:5]
- libcxx/include/__bit_reference [4:5]
- libcxx/include/__bsd_locale_defaults.h [4:5]
- libcxx/include/__bsd_locale_fallbacks.h [4:5]
- libcxx/include/__config [4:5]
- libcxx/include/__config_site.in [3:4]
- libcxx/include/__debug [4:5]
- libcxx/include/__errc [4:5]
- libcxx/include/__functional_03 [4:5]
- libcxx/include/__functional_base [4:5]
- libcxx/include/__functional_base_03 [4:5]
- libcxx/include/__hash_table [4:5]
- libcxx/include/__locale [4:5]
- libcxx/include/__memory/allocator_traits.h [4:5]
- libcxx/include/__memory/base.h [4:5]
- libcxx/include/__memory/pointer_traits.h [4:5]
- libcxx/include/__memory/utilities.h [4:5]
- libcxx/include/__mutex_base [4:5]
- libcxx/include/__node_handle [4:5]
- libcxx/include/__nullptr [4:5]
- libcxx/include/__sso_allocator [4:5]
- libcxx/include/__std_stream [4:5]
- libcxx/include/__string [4:5]
- libcxx/include/__threading_support [4:5]
- libcxx/include/__tree [4:5]
- libcxx/include/__tuple [4:5]
- libcxx/include/__undef_macros [4:5]
- libcxx/include/algorithm [4:5]
- libcxx/include/any [4:5]
- libcxx/include/array [4:5]
- libcxx/include/atomic [4:5]
- libcxx/include/barrier [4:5]
- libcxx/include/bit [4:5]
- libcxx/include/bitset [4:5]
- libcxx/include/cassert [4:5]
- libcxx/include/ccomplex [4:5]
- libcxx/include/cctype [4:5]
- libcxx/include/cerrno [4:5]
- libcxx/include/cfenv [4:5]
- libcxx/include/cfloat [4:5]
- libcxx/include/charconv [4:5]
- libcxx/include/chrono [4:5]
- libcxx/include/cinttypes [4:5]
- libcxx/include/ciso646 [4:5]
- libcxx/include/climits [4:5]
- libcxx/include/clocale [4:5]
- libcxx/include/cmath [4:5]
- libcxx/include/codecvt [4:5]
- libcxx/include/compare [4:5]
- libcxx/include/complex [4:5]
- libcxx/include/complex.h [4:5]
- libcxx/include/concepts [4:5]
- libcxx/include/condition_variable [4:5]
- libcxx/include/csetjmp [4:5]
- libcxx/include/csignal [4:5]
- libcxx/include/cstdarg [4:5]
- libcxx/include/cstdbool [4:5]
- libcxx/include/cstddef [4:5]
- libcxx/include/cstdint [4:5]
- libcxx/include/cstdio [4:5]
- libcxx/include/cstdlib [4:5]
- libcxx/include/cstring [4:5]
- libcxx/include/ctgmath [4:5]
- libcxx/include/ctime [4:5]
- libcxx/include/ctype.h [4:5]
- libcxx/include/cwchar [4:5]
- libcxx/include/cwctype [4:5]
- libcxx/include/deque [4:5]
- libcxx/include/errno.h [4:5]
- libcxx/include/exception [4:5]
- libcxx/include/execution [4:5]
- libcxx/include/experimental/__memory [4:5]
- libcxx/include/experimental/algorithm [4:5]
- libcxx/include/experimental/coroutine [4:5]
- libcxx/include/experimental/deque [4:5]
- libcxx/include/experimental/filesystem [4:5]
- libcxx/include/experimental/forward_list [4:5]
- libcxx/include/experimental/functional [4:5]
- libcxx/include/experimental/iterator [4:5]
- libcxx/include/experimental/list [4:5]
- libcxx/include/experimental/map [4:5]
- libcxx/include/experimental/memory_resource [4:5]
- libcxx/include/experimental/propagate_const [4:5]
- libcxx/include/experimental/regex [4:5]
- libcxx/include/experimental/set [4:5]
- libcxx/include/experimental/simd [4:5]
- libcxx/include/experimental/string [4:5]
- libcxx/include/experimental/type_traits [4:5]
- libcxx/include/experimental/unordered_map [4:5]
- libcxx/include/experimental/unordered_set [4:5]
- libcxx/include/experimental/utility [4:5]
- libcxx/include/experimental/vector [4:5]
- libcxx/include/ext/__hash [4:5]
- libcxx/include/ext/hash_map [4:5]
- libcxx/include/ext/hash_set [4:5]
- libcxx/include/filesystem [4:5]
- libcxx/include/float.h [4:5]
- libcxx/include/forward_list [4:5]
- libcxx/include/fstream [4:5]
- libcxx/include/functional [4:5]
- libcxx/include/future [4:5]
- libcxx/include/initializer_list [4:5]
- libcxx/include/inttypes.h [4:5]
- libcxx/include/iomanip [4:5]
- libcxx/include/ios [4:5]
- libcxx/include/iosfwd [4:5]
- libcxx/include/iostream [4:5]
- libcxx/include/istream [4:5]
- libcxx/include/iterator [4:5]
- libcxx/include/latch [4:5]
- libcxx/include/limits [4:5]
- libcxx/include/limits.h [4:5]
- libcxx/include/list [4:5]
- libcxx/include/locale [4:5]
- libcxx/include/locale.h [4:5]
- libcxx/include/map [4:5]
- libcxx/include/math.h [4:5]
- libcxx/include/memory [4:5]
- libcxx/include/mutex [4:5]
- libcxx/include/new [4:5]
- libcxx/include/numbers [4:5]
- libcxx/include/numeric [4:5]
- libcxx/include/optional [4:5]
- libcxx/include/ostream [4:5]
- libcxx/include/queue [4:5]
- libcxx/include/random [4:5]
- libcxx/include/ratio [4:5]
- libcxx/include/regex [4:5]
- libcxx/include/scoped_allocator [4:5]
- libcxx/include/semaphore [4:5]
- libcxx/include/set [4:5]
- libcxx/include/setjmp.h [4:5]
- libcxx/include/shared_mutex [4:5]
- libcxx/include/span [4:5]
- libcxx/include/sstream [4:5]
- libcxx/include/stack [4:5]
- libcxx/include/stdbool.h [4:5]
- libcxx/include/stddef.h [4:5]
- libcxx/include/stdexcept [4:5]
- libcxx/include/stdint.h [4:5]
- libcxx/include/stdio.h [4:5]
- libcxx/include/stdlib.h [4:5]
- libcxx/include/streambuf [4:5]
- libcxx/include/string [4:5]
- libcxx/include/string.h [4:5]
- libcxx/include/string_view [4:5]
- libcxx/include/strstream [4:5]
- libcxx/include/support/android/locale_bionic.h [4:5]
- libcxx/include/support/fuchsia/xlocale.h [4:5]
- libcxx/include/support/ibm/limits.h [4:5]
- libcxx/include/support/ibm/locale_mgmt_aix.h [4:5]
- libcxx/include/support/ibm/nanosleep.h [4:5]
- libcxx/include/support/ibm/support.h [4:5]
- libcxx/include/support/ibm/xlocale.h [4:5]
- libcxx/include/support/musl/xlocale.h [4:5]
- libcxx/include/support/newlib/xlocale.h [3:4]
- libcxx/include/support/nuttx/xlocale.h [4:5]
- libcxx/include/support/solaris/floatingpoint.h [3:4]
- libcxx/include/support/solaris/wchar.h [3:4]
- libcxx/include/support/solaris/xlocale.h [3:4]
- libcxx/include/support/win32/limits_msvc_win32.h [4:5]
- libcxx/include/support/win32/locale_win32.h [4:5]
- libcxx/include/support/xlocale/__nop_locale_mgmt.h [4:5]
- libcxx/include/support/xlocale/__posix_l_fallback.h [4:5]
- libcxx/include/support/xlocale/__strtonum_fallback.h [4:5]
- libcxx/include/system_error [4:5]
- libcxx/include/tgmath.h [4:5]
- libcxx/include/thread [4:5]
- libcxx/include/tuple [4:5]
- libcxx/include/type_traits [4:5]
- libcxx/include/typeindex [4:5]
- libcxx/include/typeinfo [4:5]
- libcxx/include/unordered_map [4:5]
- libcxx/include/unordered_set [4:5]
- libcxx/include/utility [4:5]
- libcxx/include/valarray [4:5]
- libcxx/include/variant [4:5]
- libcxx/include/vector [4:5]
- libcxx/include/version [4:5]
- libcxx/include/wchar.h [4:5]
- libcxx/include/wctype.h [4:5]
- libcxx/src/algorithm.cpp [3:4]
- libcxx/src/any.cpp [3:4]
- libcxx/src/atomic.cpp [3:4]
- libcxx/src/barrier.cpp [3:4]
- libcxx/src/bind.cpp [3:4]
- libcxx/src/charconv.cpp [3:4]
- libcxx/src/chrono.cpp [3:4]
- libcxx/src/condition_variable.cpp [3:4]
- libcxx/src/condition_variable_destructor.cpp [3:4]
- libcxx/src/debug.cpp [3:4]
- libcxx/src/exception.cpp [3:4]
- libcxx/src/experimental/memory_resource.cpp [3:4]
- libcxx/src/filesystem/directory_iterator.cpp [3:4]
- libcxx/src/filesystem/filesystem_common.h [3:4]
- libcxx/src/filesystem/operations.cpp [3:4]
- libcxx/src/functional.cpp [3:4]
- libcxx/src/future.cpp [3:4]
- libcxx/src/hash.cpp [3:4]
- libcxx/src/include/apple_availability.h [3:4]
- libcxx/src/include/atomic_support.h [3:4]
- libcxx/src/include/config_elast.h [3:4]
- libcxx/src/include/refstring.h [3:4]
- libcxx/src/ios.cpp [3:4]
- libcxx/src/ios.instantiations.cpp [3:4]
- libcxx/src/iostream.cpp [3:4]
- libcxx/src/locale.cpp [3:4]
- libcxx/src/memory.cpp [3:4]
- libcxx/src/mutex.cpp [3:4]
- libcxx/src/mutex_destructor.cpp [3:4]
- libcxx/src/new.cpp [3:4]
- libcxx/src/optional.cpp [3:4]
- libcxx/src/random.cpp [3:4]
- libcxx/src/random_shuffle.cpp [3:4]
- libcxx/src/regex.cpp [3:4]
- libcxx/src/shared_mutex.cpp [3:4]
- libcxx/src/stdexcept.cpp [3:4]
- libcxx/src/string.cpp [3:4]
- libcxx/src/strstream.cpp [3:4]
- libcxx/src/support/runtime/exception_fallback.ipp [4:5]
- libcxx/src/support/runtime/exception_glibcxx.ipp [4:5]
- libcxx/src/support/runtime/exception_libcxxabi.ipp [4:5]
- libcxx/src/support/runtime/exception_libcxxrt.ipp [4:5]
- libcxx/src/support/runtime/exception_msvc.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_cxxabi.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_glibcxx.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_msvc.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_unimplemented.ipp [4:5]
- libcxx/src/support/runtime/new_handler_fallback.ipp [4:5]
- libcxx/src/support/runtime/stdexcept_default.ipp [3:4]
- libcxx/src/support/runtime/stdexcept_vcruntime.ipp [3:4]
- libcxx/src/support/solaris/xlocale.cpp [3:4]
- libcxx/src/support/win32/locale_win32.cpp [4:5]
- libcxx/src/support/win32/support.cpp [4:5]
- libcxx/src/support/win32/thread_win32.cpp [4:5]
- libcxx/src/system_error.cpp [3:4]
- libcxx/src/thread.cpp [3:4]
- libcxx/src/typeinfo.cpp [3:4]
- libcxx/src/utility.cpp [3:4]
- libcxx/src/valarray.cpp [3:4]
- libcxx/src/variant.cpp [3:4]
- libcxx/src/vector.cpp [3:4]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/include/__availability [4:5]
- libcxx/include/__bit_reference [4:5]
- libcxx/include/__bsd_locale_defaults.h [4:5]
- libcxx/include/__bsd_locale_fallbacks.h [4:5]
- libcxx/include/__config [4:5]
- libcxx/include/__config_site.in [3:4]
- libcxx/include/__debug [4:5]
- libcxx/include/__errc [4:5]
- libcxx/include/__functional_03 [4:5]
- libcxx/include/__functional_base [4:5]
- libcxx/include/__functional_base_03 [4:5]
- libcxx/include/__hash_table [4:5]
- libcxx/include/__locale [4:5]
- libcxx/include/__memory/allocator_traits.h [4:5]
- libcxx/include/__memory/base.h [4:5]
- libcxx/include/__memory/pointer_traits.h [4:5]
- libcxx/include/__memory/utilities.h [4:5]
- libcxx/include/__mutex_base [4:5]
- libcxx/include/__node_handle [4:5]
- libcxx/include/__nullptr [4:5]
- libcxx/include/__sso_allocator [4:5]
- libcxx/include/__std_stream [4:5]
- libcxx/include/__string [4:5]
- libcxx/include/__threading_support [4:5]
- libcxx/include/__tree [4:5]
- libcxx/include/__tuple [4:5]
- libcxx/include/__undef_macros [4:5]
- libcxx/include/algorithm [4:5]
- libcxx/include/any [4:5]
- libcxx/include/array [4:5]
- libcxx/include/atomic [4:5]
- libcxx/include/barrier [4:5]
- libcxx/include/bit [4:5]
- libcxx/include/bitset [4:5]
- libcxx/include/cassert [4:5]
- libcxx/include/ccomplex [4:5]
- libcxx/include/cctype [4:5]
- libcxx/include/cerrno [4:5]
- libcxx/include/cfenv [4:5]
- libcxx/include/cfloat [4:5]
- libcxx/include/charconv [4:5]
- libcxx/include/chrono [4:5]
- libcxx/include/cinttypes [4:5]
- libcxx/include/ciso646 [4:5]
- libcxx/include/climits [4:5]
- libcxx/include/clocale [4:5]
- libcxx/include/cmath [4:5]
- libcxx/include/codecvt [4:5]
- libcxx/include/compare [4:5]
- libcxx/include/complex [4:5]
- libcxx/include/complex.h [4:5]
- libcxx/include/concepts [4:5]
- libcxx/include/condition_variable [4:5]
- libcxx/include/csetjmp [4:5]
- libcxx/include/csignal [4:5]
- libcxx/include/cstdarg [4:5]
- libcxx/include/cstdbool [4:5]
- libcxx/include/cstddef [4:5]
- libcxx/include/cstdint [4:5]
- libcxx/include/cstdio [4:5]
- libcxx/include/cstdlib [4:5]
- libcxx/include/cstring [4:5]
- libcxx/include/ctgmath [4:5]
- libcxx/include/ctime [4:5]
- libcxx/include/ctype.h [4:5]
- libcxx/include/cwchar [4:5]
- libcxx/include/cwctype [4:5]
- libcxx/include/deque [4:5]
- libcxx/include/errno.h [4:5]
- libcxx/include/exception [4:5]
- libcxx/include/execution [4:5]
- libcxx/include/experimental/__memory [4:5]
- libcxx/include/experimental/algorithm [4:5]
- libcxx/include/experimental/coroutine [4:5]
- libcxx/include/experimental/deque [4:5]
- libcxx/include/experimental/filesystem [4:5]
- libcxx/include/experimental/forward_list [4:5]
- libcxx/include/experimental/functional [4:5]
- libcxx/include/experimental/iterator [4:5]
- libcxx/include/experimental/list [4:5]
- libcxx/include/experimental/map [4:5]
- libcxx/include/experimental/memory_resource [4:5]
- libcxx/include/experimental/propagate_const [4:5]
- libcxx/include/experimental/regex [4:5]
- libcxx/include/experimental/set [4:5]
- libcxx/include/experimental/simd [4:5]
- libcxx/include/experimental/string [4:5]
- libcxx/include/experimental/type_traits [4:5]
- libcxx/include/experimental/unordered_map [4:5]
- libcxx/include/experimental/unordered_set [4:5]
- libcxx/include/experimental/utility [4:5]
- libcxx/include/experimental/vector [4:5]
- libcxx/include/ext/__hash [4:5]
- libcxx/include/ext/hash_map [4:5]
- libcxx/include/ext/hash_set [4:5]
- libcxx/include/filesystem [4:5]
- libcxx/include/float.h [4:5]
- libcxx/include/forward_list [4:5]
- libcxx/include/fstream [4:5]
- libcxx/include/functional [4:5]
- libcxx/include/future [4:5]
- libcxx/include/initializer_list [4:5]
- libcxx/include/inttypes.h [4:5]
- libcxx/include/iomanip [4:5]
- libcxx/include/ios [4:5]
- libcxx/include/iosfwd [4:5]
- libcxx/include/iostream [4:5]
- libcxx/include/istream [4:5]
- libcxx/include/iterator [4:5]
- libcxx/include/latch [4:5]
- libcxx/include/limits [4:5]
- libcxx/include/limits.h [4:5]
- libcxx/include/list [4:5]
- libcxx/include/locale [4:5]
- libcxx/include/locale.h [4:5]
- libcxx/include/map [4:5]
- libcxx/include/math.h [4:5]
- libcxx/include/memory [4:5]
- libcxx/include/mutex [4:5]
- libcxx/include/new [4:5]
- libcxx/include/numbers [4:5]
- libcxx/include/numeric [4:5]
- libcxx/include/optional [4:5]
- libcxx/include/ostream [4:5]
- libcxx/include/queue [4:5]
- libcxx/include/random [4:5]
- libcxx/include/ratio [4:5]
- libcxx/include/regex [4:5]
- libcxx/include/scoped_allocator [4:5]
- libcxx/include/semaphore [4:5]
- libcxx/include/set [4:5]
- libcxx/include/setjmp.h [4:5]
- libcxx/include/shared_mutex [4:5]
- libcxx/include/span [4:5]
- libcxx/include/sstream [4:5]
- libcxx/include/stack [4:5]
- libcxx/include/stdbool.h [4:5]
- libcxx/include/stddef.h [4:5]
- libcxx/include/stdexcept [4:5]
- libcxx/include/stdint.h [4:5]
- libcxx/include/stdio.h [4:5]
- libcxx/include/stdlib.h [4:5]
- libcxx/include/streambuf [4:5]
- libcxx/include/string [4:5]
- libcxx/include/string.h [4:5]
- libcxx/include/string_view [4:5]
- libcxx/include/strstream [4:5]
- libcxx/include/support/android/locale_bionic.h [4:5]
- libcxx/include/support/fuchsia/xlocale.h [4:5]
- libcxx/include/support/ibm/limits.h [4:5]
- libcxx/include/support/ibm/locale_mgmt_aix.h [4:5]
- libcxx/include/support/ibm/nanosleep.h [4:5]
- libcxx/include/support/ibm/support.h [4:5]
- libcxx/include/support/ibm/xlocale.h [4:5]
- libcxx/include/support/musl/xlocale.h [4:5]
- libcxx/include/support/newlib/xlocale.h [3:4]
- libcxx/include/support/nuttx/xlocale.h [4:5]
- libcxx/include/support/solaris/floatingpoint.h [3:4]
- libcxx/include/support/solaris/wchar.h [3:4]
- libcxx/include/support/solaris/xlocale.h [3:4]
- libcxx/include/support/win32/limits_msvc_win32.h [4:5]
- libcxx/include/support/win32/locale_win32.h [4:5]
- libcxx/include/support/xlocale/__nop_locale_mgmt.h [4:5]
- libcxx/include/support/xlocale/__posix_l_fallback.h [4:5]
- libcxx/include/support/xlocale/__strtonum_fallback.h [4:5]
- libcxx/include/system_error [4:5]
- libcxx/include/tgmath.h [4:5]
- libcxx/include/thread [4:5]
- libcxx/include/tuple [4:5]
- libcxx/include/type_traits [4:5]
- libcxx/include/typeindex [4:5]
- libcxx/include/typeinfo [4:5]
- libcxx/include/unordered_map [4:5]
- libcxx/include/unordered_set [4:5]
- libcxx/include/utility [4:5]
- libcxx/include/valarray [4:5]
- libcxx/include/variant [4:5]
- libcxx/include/vector [4:5]
- libcxx/include/version [4:5]
- libcxx/include/wchar.h [4:5]
- libcxx/include/wctype.h [4:5]
- libcxx/src/algorithm.cpp [3:4]
- libcxx/src/any.cpp [3:4]
- libcxx/src/atomic.cpp [3:4]
- libcxx/src/barrier.cpp [3:4]
- libcxx/src/bind.cpp [3:4]
- libcxx/src/charconv.cpp [3:4]
- libcxx/src/chrono.cpp [3:4]
- libcxx/src/condition_variable.cpp [3:4]
- libcxx/src/condition_variable_destructor.cpp [3:4]
- libcxx/src/debug.cpp [3:4]
- libcxx/src/exception.cpp [3:4]
- libcxx/src/experimental/memory_resource.cpp [3:4]
- libcxx/src/filesystem/directory_iterator.cpp [3:4]
- libcxx/src/filesystem/filesystem_common.h [3:4]
- libcxx/src/filesystem/operations.cpp [3:4]
- libcxx/src/functional.cpp [3:4]
- libcxx/src/future.cpp [3:4]
- libcxx/src/hash.cpp [3:4]
- libcxx/src/include/apple_availability.h [3:4]
- libcxx/src/include/atomic_support.h [3:4]
- libcxx/src/include/config_elast.h [3:4]
- libcxx/src/include/refstring.h [3:4]
- libcxx/src/ios.cpp [3:4]
- libcxx/src/ios.instantiations.cpp [3:4]
- libcxx/src/iostream.cpp [3:4]
- libcxx/src/locale.cpp [3:4]
- libcxx/src/memory.cpp [3:4]
- libcxx/src/mutex.cpp [3:4]
- libcxx/src/mutex_destructor.cpp [3:4]
- libcxx/src/new.cpp [3:4]
- libcxx/src/optional.cpp [3:4]
- libcxx/src/random.cpp [3:4]
- libcxx/src/random_shuffle.cpp [3:4]
- libcxx/src/regex.cpp [3:4]
- libcxx/src/shared_mutex.cpp [3:4]
- libcxx/src/stdexcept.cpp [3:4]
- libcxx/src/string.cpp [3:4]
- libcxx/src/strstream.cpp [3:4]
- libcxx/src/support/runtime/exception_fallback.ipp [4:5]
- libcxx/src/support/runtime/exception_glibcxx.ipp [4:5]
- libcxx/src/support/runtime/exception_libcxxabi.ipp [4:5]
- libcxx/src/support/runtime/exception_libcxxrt.ipp [4:5]
- libcxx/src/support/runtime/exception_msvc.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_cxxabi.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_glibcxx.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_msvc.ipp [4:5]
- libcxx/src/support/runtime/exception_pointer_unimplemented.ipp [4:5]
- libcxx/src/support/runtime/new_handler_fallback.ipp [4:5]
- libcxx/src/support/runtime/stdexcept_default.ipp [3:4]
- libcxx/src/support/runtime/stdexcept_vcruntime.ipp [3:4]
- libcxx/src/support/solaris/xlocale.cpp [3:4]
- libcxx/src/support/win32/locale_win32.cpp [4:5]
- libcxx/src/support/win32/support.cpp [4:5]
- libcxx/src/support/win32/thread_win32.cpp [4:5]
- libcxx/src/system_error.cpp [3:4]
- libcxx/src/thread.cpp [3:4]
- libcxx/src/typeinfo.cpp [3:4]
- libcxx/src/utility.cpp [3:4]
- libcxx/src/valarray.cpp [3:4]
- libcxx/src/variant.cpp [3:4]
- libcxx/src/vector.cpp [3:4]
-
-KEEP Apache-2.0 WITH LLVM-exception 8494a9caed330d9a4f40e19cce7dc770
-BELONGS libcxx/ya.make
-FILE_INCLUDE libcxx/include/exception found in files: libcxx/LICENSE.TXT at line 210
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TEXT
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/LICENSE.TXT [208:222]
-
-KEEP Apache-2.0 WITH LLVM-exception 86617d55e1d949711c543404d91f4cea
-BELONGS libcxx/ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/include/experimental/__config [6:6]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/include/experimental/__config [6:6]
-
-KEEP BSD-3-Clause 88f80886d9ea21e0b7205bd3730230e4
-BELONGS libcxxrt/ya.make
- License text:
- The BSD License
- Scancode info:
- Original SPDX id: BSD-3-Clause
- Score : 99.00
- Match type : REFERENCE
- Links : http://www.opensource.org/licenses/BSD-3-Clause, https://spdx.org/licenses/BSD-3-Clause
- Files with this license:
- libcxxrt/LICENSE [1:1]
-
-KEEP BSD-2-Clause 8cedb6171c06f89f0e6eefd60e5f79d5
-BELONGS libcxxrt/ya.make
-FILE_IGNORE libcxx/include/experimental/list found in files: libcxxrt/auxhelper.cc at line 11, libcxxrt/auxhelper.cc at line 8, libcxxrt/dwarf_eh.h at line 11, libcxxrt/dwarf_eh.h at line 8, libcxxrt/dynamic_cast.cc at line 11, libcxxrt/dynamic_cast.cc at line 8, libcxxrt/guard.cc at line 11, libcxxrt/guard.cc at line 8, libcxxrt/memory.cc at line 11, libcxxrt/memory.cc at line 8, libcxxrt/stdexcept.cc at line 11, libcxxrt/stdexcept.cc at line 8, libcxxrt/stdexcept.h at line 11, libcxxrt/stdexcept.h at line 8, libcxxrt/typeinfo.cc at line 11, libcxxrt/typeinfo.cc at line 8, libcxxrt/typeinfo.h at line 11, libcxxrt/typeinfo.h at line 8
-FILE_IGNORE libcxx/include/list found in files: libcxxrt/auxhelper.cc at line 11, libcxxrt/auxhelper.cc at line 8, libcxxrt/dwarf_eh.h at line 11, libcxxrt/dwarf_eh.h at line 8, libcxxrt/dynamic_cast.cc at line 11, libcxxrt/dynamic_cast.cc at line 8, libcxxrt/guard.cc at line 11, libcxxrt/guard.cc at line 8, libcxxrt/memory.cc at line 11, libcxxrt/memory.cc at line 8, libcxxrt/stdexcept.cc at line 11, libcxxrt/stdexcept.cc at line 8, libcxxrt/stdexcept.h at line 11, libcxxrt/stdexcept.h at line 8, libcxxrt/typeinfo.cc at line 11, libcxxrt/typeinfo.cc at line 8, libcxxrt/typeinfo.h at line 11, libcxxrt/typeinfo.h at line 8
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxxrt/auxhelper.cc at line 14, libcxxrt/auxhelper.cc at line 17, libcxxrt/dwarf_eh.h at line 14, libcxxrt/dwarf_eh.h at line 17, libcxxrt/dynamic_cast.cc at line 14, libcxxrt/dynamic_cast.cc at line 17, libcxxrt/guard.cc at line 14, libcxxrt/guard.cc at line 17, libcxxrt/memory.cc at line 14, libcxxrt/memory.cc at line 17, libcxxrt/stdexcept.cc at line 14, libcxxrt/stdexcept.cc at line 17, libcxxrt/stdexcept.h at line 14, libcxxrt/stdexcept.h at line 17, libcxxrt/typeinfo.cc at line 14, libcxxrt/typeinfo.cc at line 17, libcxxrt/typeinfo.h at line 14, libcxxrt/typeinfo.h at line 17
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- libcxxrt/auxhelper.cc [4:24]
- libcxxrt/dwarf_eh.h [4:24]
- libcxxrt/dynamic_cast.cc [4:24]
- libcxxrt/guard.cc [4:24]
- libcxxrt/memory.cc [4:24]
- libcxxrt/stdexcept.cc [4:24]
- libcxxrt/stdexcept.h [4:24]
- libcxxrt/typeinfo.cc [4:24]
- libcxxrt/typeinfo.h [4:24]
-
-KEEP MIT 8ee097b6bcb3429ad39c4dbd5cc0e35e
-BELONGS libcxxrt/ya.make
-FILE_IGNORE libcxx/include/any found in files: libcxxrt/cxxabi.h at line 4
-FILE_INCLUDE libcxxrt/AUTHORS found in files: libcxxrt/cxxabi.h at line 17
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxxrt/cxxabi.h at line 17
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- libcxxrt/cxxabi.h [4:20]
-
-KEEP Apache-2.0 9ac77f65a898755c7eed97099caded94
-BELONGS libcxx/ya.make
-FILE_INCLUDE libcxx/import found in files: libcxx/LICENSE.TXT at line 81
-FILE_IGNORE libcxx/include/any found in files: libcxx/LICENSE.TXT at line 101, libcxx/LICENSE.TXT at line 104, libcxx/LICENSE.TXT at line 107, libcxx/LICENSE.TXT at line 111, libcxx/LICENSE.TXT at line 114, libcxx/LICENSE.TXT at line 130, libcxx/LICENSE.TXT at line 135, libcxx/LICENSE.TXT at line 137, libcxx/LICENSE.TXT at line 139, libcxx/LICENSE.TXT at line 151, libcxx/LICENSE.TXT at line 154, libcxx/LICENSE.TXT at line 160, libcxx/LICENSE.TXT at line 161, libcxx/LICENSE.TXT at line 162, libcxx/LICENSE.TXT at line 165, libcxx/LICENSE.TXT at line 175, libcxx/LICENSE.TXT at line 176, libcxx/LICENSE.TXT at line 178, libcxx/LICENSE.TXT at line 34, libcxx/LICENSE.TXT at line 44, libcxx/LICENSE.TXT at line 52, libcxx/LICENSE.TXT at line 53, libcxx/LICENSE.TXT at line 58, libcxx/LICENSE.TXT at line 66, libcxx/LICENSE.TXT at line 86, libcxx/LICENSE.TXT at line 89, libcxx/LICENSE.TXT at line 94, libcxx/LICENSE.TXT at line 98
-FILE_IGNORE libcxx/include/version found in files: libcxx/LICENSE.TXT at line 53
- # any and version - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TEXT
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/LICENSE.TXT [5:205]
-
-KEEP NCSA AND MIT 9d5ffd6253d2b406a8bc3bbf3cb4f38b
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/include/30/omp_lib.f.var at line 9, openmp/include/30/omp_lib.f90.var at line 9, openmp/include/30/omp_lib.h.var at line 9, openmp/include/40/omp_lib.f.var at line 9, openmp/include/40/omp_lib.f90.var at line 9, openmp/include/40/omp_lib.h.var at line 9, openmp/include/41/omp_lib.f.var at line 9, openmp/include/41/omp_lib.f90.var at line 9, openmp/include/41/omp_lib.h.var at line 9
- License text:
- !// This file is dual licensed under the MIT and the University of Illinois Open
- !// Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/include/30/omp_lib.f.var [8:9]
- openmp/include/30/omp_lib.f90.var [8:9]
- openmp/include/30/omp_lib.h.var [8:9]
- openmp/include/40/omp_lib.f.var [8:9]
- openmp/include/40/omp_lib.f90.var [8:9]
- openmp/include/40/omp_lib.h.var [8:9]
- openmp/include/41/omp_lib.f.var [8:9]
- openmp/include/41/omp_lib.f90.var [8:9]
- openmp/include/41/omp_lib.h.var [8:9]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/include/30/omp_lib.f.var [8:9]
- openmp/include/30/omp_lib.f90.var [8:9]
- openmp/include/30/omp_lib.h.var [8:9]
- openmp/include/40/omp_lib.f.var [8:9]
- openmp/include/40/omp_lib.f90.var [8:9]
- openmp/include/40/omp_lib.h.var [8:9]
- openmp/include/41/omp_lib.f.var [8:9]
- openmp/include/41/omp_lib.f90.var [8:9]
- openmp/include/41/omp_lib.h.var [8:9]
-
-KEEP NCSA b160d8bd561da097b0edd40b062e1c84
-BELONGS libcxx/ya.make
-FILE_IGNORE libcxx/include/any found in files: libcxx/LICENSE.TXT at line 264
-FILE_IGNORE libcxx/include/experimental/list found in files: libcxx/LICENSE.TXT at line 272, libcxx/LICENSE.TXT at line 275
-FILE_IGNORE libcxx/include/list found in files: libcxx/LICENSE.TXT at line 272, libcxx/LICENSE.TXT at line 275
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxx/LICENSE.TXT at line 286
- # any and list - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : TEXT
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- libcxx/LICENSE.TXT [264:289]
-
-KEEP BSD-2-Clause AND MIT b1ce5ac90fd7360272c132242b0d10e9
-BELONGS libcxx/ya.make
- License text:
- 2-clause BSD license instead of the MIT/UUIC license that the rest of libc++ is
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : REFERENCE
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- libcxx/src/support/solaris/README [3:3]
- Scancode info:
- Original SPDX id: MIT
- Score : 75.00
- Match type : REFERENCE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- libcxx/src/support/solaris/README [3:3]
-
-KEEP Apache-2.0 WITH LLVM-exception b4f32daeb289687c0be6afeacb7df231
-BELONGS libcxx/ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/include/experimental/__config [4:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/include/experimental/__config [4:5]
-
-KEEP Apache-2.0 WITH LLVM-exception b7566a1930e050e1090162bf1d543650
-BELONGS libcxx/ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/include/__availability [6:6]
- libcxx/include/__bit_reference [6:6]
- libcxx/include/__bsd_locale_defaults.h [6:6]
- libcxx/include/__bsd_locale_fallbacks.h [6:6]
- libcxx/include/__config [6:6]
- libcxx/include/__config_site.in [5:5]
- libcxx/include/__debug [6:6]
- libcxx/include/__errc [6:6]
- libcxx/include/__functional_03 [6:6]
- libcxx/include/__functional_base [6:6]
- libcxx/include/__functional_base_03 [6:6]
- libcxx/include/__hash_table [6:6]
- libcxx/include/__locale [6:6]
- libcxx/include/__memory/allocator_traits.h [6:6]
- libcxx/include/__memory/base.h [6:6]
- libcxx/include/__memory/pointer_traits.h [6:6]
- libcxx/include/__memory/utilities.h [6:6]
- libcxx/include/__mutex_base [6:6]
- libcxx/include/__node_handle [6:6]
- libcxx/include/__nullptr [6:6]
- libcxx/include/__sso_allocator [6:6]
- libcxx/include/__std_stream [6:6]
- libcxx/include/__string [6:6]
- libcxx/include/__threading_support [6:6]
- libcxx/include/__tree [6:6]
- libcxx/include/__tuple [6:6]
- libcxx/include/__undef_macros [6:6]
- libcxx/include/algorithm [6:6]
- libcxx/include/any [6:6]
- libcxx/include/array [6:6]
- libcxx/include/atomic [6:6]
- libcxx/include/barrier [6:6]
- libcxx/include/bit [6:6]
- libcxx/include/bitset [6:6]
- libcxx/include/cassert [6:6]
- libcxx/include/ccomplex [6:6]
- libcxx/include/cctype [6:6]
- libcxx/include/cerrno [6:6]
- libcxx/include/cfenv [6:6]
- libcxx/include/cfloat [6:6]
- libcxx/include/charconv [6:6]
- libcxx/include/chrono [6:6]
- libcxx/include/cinttypes [6:6]
- libcxx/include/ciso646 [6:6]
- libcxx/include/climits [6:6]
- libcxx/include/clocale [6:6]
- libcxx/include/cmath [6:6]
- libcxx/include/codecvt [6:6]
- libcxx/include/compare [6:6]
- libcxx/include/complex [6:6]
- libcxx/include/complex.h [6:6]
- libcxx/include/concepts [6:6]
- libcxx/include/condition_variable [6:6]
- libcxx/include/csetjmp [6:6]
- libcxx/include/csignal [6:6]
- libcxx/include/cstdarg [6:6]
- libcxx/include/cstdbool [6:6]
- libcxx/include/cstddef [6:6]
- libcxx/include/cstdint [6:6]
- libcxx/include/cstdio [6:6]
- libcxx/include/cstdlib [6:6]
- libcxx/include/cstring [6:6]
- libcxx/include/ctgmath [6:6]
- libcxx/include/ctime [6:6]
- libcxx/include/ctype.h [6:6]
- libcxx/include/cwchar [6:6]
- libcxx/include/cwctype [6:6]
- libcxx/include/deque [6:6]
- libcxx/include/errno.h [6:6]
- libcxx/include/exception [6:6]
- libcxx/include/execution [6:6]
- libcxx/include/experimental/__memory [6:6]
- libcxx/include/experimental/algorithm [6:6]
- libcxx/include/experimental/coroutine [6:6]
- libcxx/include/experimental/deque [6:6]
- libcxx/include/experimental/filesystem [6:6]
- libcxx/include/experimental/forward_list [6:6]
- libcxx/include/experimental/functional [6:6]
- libcxx/include/experimental/iterator [6:6]
- libcxx/include/experimental/list [6:6]
- libcxx/include/experimental/map [6:6]
- libcxx/include/experimental/memory_resource [6:6]
- libcxx/include/experimental/propagate_const [6:6]
- libcxx/include/experimental/regex [6:6]
- libcxx/include/experimental/set [6:6]
- libcxx/include/experimental/simd [6:6]
- libcxx/include/experimental/string [6:6]
- libcxx/include/experimental/type_traits [6:6]
- libcxx/include/experimental/unordered_map [6:6]
- libcxx/include/experimental/unordered_set [6:6]
- libcxx/include/experimental/utility [6:6]
- libcxx/include/experimental/vector [6:6]
- libcxx/include/ext/__hash [6:6]
- libcxx/include/ext/hash_map [6:6]
- libcxx/include/ext/hash_set [6:6]
- libcxx/include/filesystem [6:6]
- libcxx/include/float.h [6:6]
- libcxx/include/forward_list [6:6]
- libcxx/include/fstream [6:6]
- libcxx/include/functional [6:6]
- libcxx/include/future [6:6]
- libcxx/include/initializer_list [6:6]
- libcxx/include/inttypes.h [6:6]
- libcxx/include/iomanip [6:6]
- libcxx/include/ios [6:6]
- libcxx/include/iosfwd [6:6]
- libcxx/include/iostream [6:6]
- libcxx/include/istream [6:6]
- libcxx/include/iterator [6:6]
- libcxx/include/latch [6:6]
- libcxx/include/limits [6:6]
- libcxx/include/limits.h [6:6]
- libcxx/include/list [6:6]
- libcxx/include/locale [6:6]
- libcxx/include/locale.h [6:6]
- libcxx/include/map [6:6]
- libcxx/include/math.h [6:6]
- libcxx/include/memory [6:6]
- libcxx/include/mutex [6:6]
- libcxx/include/new [6:6]
- libcxx/include/numbers [6:6]
- libcxx/include/numeric [6:6]
- libcxx/include/optional [6:6]
- libcxx/include/ostream [6:6]
- libcxx/include/queue [6:6]
- libcxx/include/random [6:6]
- libcxx/include/ratio [6:6]
- libcxx/include/regex [6:6]
- libcxx/include/scoped_allocator [6:6]
- libcxx/include/semaphore [6:6]
- libcxx/include/set [6:6]
- libcxx/include/setjmp.h [6:6]
- libcxx/include/shared_mutex [6:6]
- libcxx/include/span [6:6]
- libcxx/include/sstream [6:6]
- libcxx/include/stack [6:6]
- libcxx/include/stdbool.h [6:6]
- libcxx/include/stddef.h [6:6]
- libcxx/include/stdexcept [6:6]
- libcxx/include/stdint.h [6:6]
- libcxx/include/stdio.h [6:6]
- libcxx/include/stdlib.h [6:6]
- libcxx/include/streambuf [6:6]
- libcxx/include/string [6:6]
- libcxx/include/string.h [6:6]
- libcxx/include/string_view [6:6]
- libcxx/include/strstream [6:6]
- libcxx/include/support/android/locale_bionic.h [6:6]
- libcxx/include/support/fuchsia/xlocale.h [6:6]
- libcxx/include/support/ibm/limits.h [6:6]
- libcxx/include/support/ibm/locale_mgmt_aix.h [6:6]
- libcxx/include/support/ibm/nanosleep.h [6:6]
- libcxx/include/support/ibm/support.h [6:6]
- libcxx/include/support/ibm/xlocale.h [6:6]
- libcxx/include/support/musl/xlocale.h [6:6]
- libcxx/include/support/newlib/xlocale.h [5:5]
- libcxx/include/support/nuttx/xlocale.h [6:6]
- libcxx/include/support/solaris/floatingpoint.h [5:5]
- libcxx/include/support/solaris/wchar.h [5:5]
- libcxx/include/support/solaris/xlocale.h [5:5]
- libcxx/include/support/win32/limits_msvc_win32.h [6:6]
- libcxx/include/support/win32/locale_win32.h [6:6]
- libcxx/include/support/xlocale/__nop_locale_mgmt.h [6:6]
- libcxx/include/support/xlocale/__posix_l_fallback.h [6:6]
- libcxx/include/support/xlocale/__strtonum_fallback.h [6:6]
- libcxx/include/system_error [6:6]
- libcxx/include/tgmath.h [6:6]
- libcxx/include/thread [6:6]
- libcxx/include/tuple [6:6]
- libcxx/include/type_traits [6:6]
- libcxx/include/typeindex [6:6]
- libcxx/include/typeinfo [6:6]
- libcxx/include/unordered_map [6:6]
- libcxx/include/unordered_set [6:6]
- libcxx/include/utility [6:6]
- libcxx/include/valarray [6:6]
- libcxx/include/variant [6:6]
- libcxx/include/vector [6:6]
- libcxx/include/version [6:6]
- libcxx/include/wchar.h [6:6]
- libcxx/include/wctype.h [6:6]
- libcxx/src/algorithm.cpp [5:5]
- libcxx/src/any.cpp [5:5]
- libcxx/src/atomic.cpp [5:5]
- libcxx/src/barrier.cpp [5:5]
- libcxx/src/bind.cpp [5:5]
- libcxx/src/charconv.cpp [5:5]
- libcxx/src/chrono.cpp [5:5]
- libcxx/src/condition_variable.cpp [5:5]
- libcxx/src/condition_variable_destructor.cpp [5:5]
- libcxx/src/debug.cpp [5:5]
- libcxx/src/exception.cpp [5:5]
- libcxx/src/experimental/memory_resource.cpp [5:5]
- libcxx/src/filesystem/directory_iterator.cpp [5:5]
- libcxx/src/filesystem/filesystem_common.h [5:5]
- libcxx/src/filesystem/operations.cpp [5:5]
- libcxx/src/functional.cpp [5:5]
- libcxx/src/future.cpp [5:5]
- libcxx/src/hash.cpp [5:5]
- libcxx/src/include/apple_availability.h [5:5]
- libcxx/src/include/atomic_support.h [5:5]
- libcxx/src/include/config_elast.h [5:5]
- libcxx/src/include/refstring.h [5:5]
- libcxx/src/ios.cpp [5:5]
- libcxx/src/ios.instantiations.cpp [5:5]
- libcxx/src/iostream.cpp [5:5]
- libcxx/src/locale.cpp [5:5]
- libcxx/src/memory.cpp [5:5]
- libcxx/src/mutex.cpp [5:5]
- libcxx/src/mutex_destructor.cpp [5:5]
- libcxx/src/new.cpp [5:5]
- libcxx/src/optional.cpp [5:5]
- libcxx/src/random.cpp [5:5]
- libcxx/src/random_shuffle.cpp [5:5]
- libcxx/src/regex.cpp [5:5]
- libcxx/src/shared_mutex.cpp [5:5]
- libcxx/src/stdexcept.cpp [5:5]
- libcxx/src/string.cpp [5:5]
- libcxx/src/strstream.cpp [5:5]
- libcxx/src/support/runtime/exception_fallback.ipp [6:6]
- libcxx/src/support/runtime/exception_glibcxx.ipp [6:6]
- libcxx/src/support/runtime/exception_libcxxabi.ipp [6:6]
- libcxx/src/support/runtime/exception_libcxxrt.ipp [6:6]
- libcxx/src/support/runtime/exception_msvc.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_cxxabi.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_glibcxx.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_msvc.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_unimplemented.ipp [6:6]
- libcxx/src/support/runtime/new_handler_fallback.ipp [6:6]
- libcxx/src/support/runtime/stdexcept_default.ipp [5:5]
- libcxx/src/support/runtime/stdexcept_vcruntime.ipp [5:5]
- libcxx/src/support/solaris/xlocale.cpp [5:5]
- libcxx/src/support/win32/locale_win32.cpp [6:6]
- libcxx/src/support/win32/support.cpp [6:6]
- libcxx/src/support/win32/thread_win32.cpp [6:6]
- libcxx/src/system_error.cpp [5:5]
- libcxx/src/thread.cpp [5:5]
- libcxx/src/typeinfo.cpp [5:5]
- libcxx/src/utility.cpp [5:5]
- libcxx/src/valarray.cpp [5:5]
- libcxx/src/variant.cpp [5:5]
- libcxx/src/vector.cpp [5:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/include/__availability [6:6]
- libcxx/include/__bit_reference [6:6]
- libcxx/include/__bsd_locale_defaults.h [6:6]
- libcxx/include/__bsd_locale_fallbacks.h [6:6]
- libcxx/include/__config [6:6]
- libcxx/include/__config_site.in [5:5]
- libcxx/include/__debug [6:6]
- libcxx/include/__errc [6:6]
- libcxx/include/__functional_03 [6:6]
- libcxx/include/__functional_base [6:6]
- libcxx/include/__functional_base_03 [6:6]
- libcxx/include/__hash_table [6:6]
- libcxx/include/__locale [6:6]
- libcxx/include/__memory/allocator_traits.h [6:6]
- libcxx/include/__memory/base.h [6:6]
- libcxx/include/__memory/pointer_traits.h [6:6]
- libcxx/include/__memory/utilities.h [6:6]
- libcxx/include/__mutex_base [6:6]
- libcxx/include/__node_handle [6:6]
- libcxx/include/__nullptr [6:6]
- libcxx/include/__sso_allocator [6:6]
- libcxx/include/__std_stream [6:6]
- libcxx/include/__string [6:6]
- libcxx/include/__threading_support [6:6]
- libcxx/include/__tree [6:6]
- libcxx/include/__tuple [6:6]
- libcxx/include/__undef_macros [6:6]
- libcxx/include/algorithm [6:6]
- libcxx/include/any [6:6]
- libcxx/include/array [6:6]
- libcxx/include/atomic [6:6]
- libcxx/include/barrier [6:6]
- libcxx/include/bit [6:6]
- libcxx/include/bitset [6:6]
- libcxx/include/cassert [6:6]
- libcxx/include/ccomplex [6:6]
- libcxx/include/cctype [6:6]
- libcxx/include/cerrno [6:6]
- libcxx/include/cfenv [6:6]
- libcxx/include/cfloat [6:6]
- libcxx/include/charconv [6:6]
- libcxx/include/chrono [6:6]
- libcxx/include/cinttypes [6:6]
- libcxx/include/ciso646 [6:6]
- libcxx/include/climits [6:6]
- libcxx/include/clocale [6:6]
- libcxx/include/cmath [6:6]
- libcxx/include/codecvt [6:6]
- libcxx/include/compare [6:6]
- libcxx/include/complex [6:6]
- libcxx/include/complex.h [6:6]
- libcxx/include/concepts [6:6]
- libcxx/include/condition_variable [6:6]
- libcxx/include/csetjmp [6:6]
- libcxx/include/csignal [6:6]
- libcxx/include/cstdarg [6:6]
- libcxx/include/cstdbool [6:6]
- libcxx/include/cstddef [6:6]
- libcxx/include/cstdint [6:6]
- libcxx/include/cstdio [6:6]
- libcxx/include/cstdlib [6:6]
- libcxx/include/cstring [6:6]
- libcxx/include/ctgmath [6:6]
- libcxx/include/ctime [6:6]
- libcxx/include/ctype.h [6:6]
- libcxx/include/cwchar [6:6]
- libcxx/include/cwctype [6:6]
- libcxx/include/deque [6:6]
- libcxx/include/errno.h [6:6]
- libcxx/include/exception [6:6]
- libcxx/include/execution [6:6]
- libcxx/include/experimental/__memory [6:6]
- libcxx/include/experimental/algorithm [6:6]
- libcxx/include/experimental/coroutine [6:6]
- libcxx/include/experimental/deque [6:6]
- libcxx/include/experimental/filesystem [6:6]
- libcxx/include/experimental/forward_list [6:6]
- libcxx/include/experimental/functional [6:6]
- libcxx/include/experimental/iterator [6:6]
- libcxx/include/experimental/list [6:6]
- libcxx/include/experimental/map [6:6]
- libcxx/include/experimental/memory_resource [6:6]
- libcxx/include/experimental/propagate_const [6:6]
- libcxx/include/experimental/regex [6:6]
- libcxx/include/experimental/set [6:6]
- libcxx/include/experimental/simd [6:6]
- libcxx/include/experimental/string [6:6]
- libcxx/include/experimental/type_traits [6:6]
- libcxx/include/experimental/unordered_map [6:6]
- libcxx/include/experimental/unordered_set [6:6]
- libcxx/include/experimental/utility [6:6]
- libcxx/include/experimental/vector [6:6]
- libcxx/include/ext/__hash [6:6]
- libcxx/include/ext/hash_map [6:6]
- libcxx/include/ext/hash_set [6:6]
- libcxx/include/filesystem [6:6]
- libcxx/include/float.h [6:6]
- libcxx/include/forward_list [6:6]
- libcxx/include/fstream [6:6]
- libcxx/include/functional [6:6]
- libcxx/include/future [6:6]
- libcxx/include/initializer_list [6:6]
- libcxx/include/inttypes.h [6:6]
- libcxx/include/iomanip [6:6]
- libcxx/include/ios [6:6]
- libcxx/include/iosfwd [6:6]
- libcxx/include/iostream [6:6]
- libcxx/include/istream [6:6]
- libcxx/include/iterator [6:6]
- libcxx/include/latch [6:6]
- libcxx/include/limits [6:6]
- libcxx/include/limits.h [6:6]
- libcxx/include/list [6:6]
- libcxx/include/locale [6:6]
- libcxx/include/locale.h [6:6]
- libcxx/include/map [6:6]
- libcxx/include/math.h [6:6]
- libcxx/include/memory [6:6]
- libcxx/include/mutex [6:6]
- libcxx/include/new [6:6]
- libcxx/include/numbers [6:6]
- libcxx/include/numeric [6:6]
- libcxx/include/optional [6:6]
- libcxx/include/ostream [6:6]
- libcxx/include/queue [6:6]
- libcxx/include/random [6:6]
- libcxx/include/ratio [6:6]
- libcxx/include/regex [6:6]
- libcxx/include/scoped_allocator [6:6]
- libcxx/include/semaphore [6:6]
- libcxx/include/set [6:6]
- libcxx/include/setjmp.h [6:6]
- libcxx/include/shared_mutex [6:6]
- libcxx/include/span [6:6]
- libcxx/include/sstream [6:6]
- libcxx/include/stack [6:6]
- libcxx/include/stdbool.h [6:6]
- libcxx/include/stddef.h [6:6]
- libcxx/include/stdexcept [6:6]
- libcxx/include/stdint.h [6:6]
- libcxx/include/stdio.h [6:6]
- libcxx/include/stdlib.h [6:6]
- libcxx/include/streambuf [6:6]
- libcxx/include/string [6:6]
- libcxx/include/string.h [6:6]
- libcxx/include/string_view [6:6]
- libcxx/include/strstream [6:6]
- libcxx/include/support/android/locale_bionic.h [6:6]
- libcxx/include/support/fuchsia/xlocale.h [6:6]
- libcxx/include/support/ibm/limits.h [6:6]
- libcxx/include/support/ibm/locale_mgmt_aix.h [6:6]
- libcxx/include/support/ibm/nanosleep.h [6:6]
- libcxx/include/support/ibm/support.h [6:6]
- libcxx/include/support/ibm/xlocale.h [6:6]
- libcxx/include/support/musl/xlocale.h [6:6]
- libcxx/include/support/newlib/xlocale.h [5:5]
- libcxx/include/support/nuttx/xlocale.h [6:6]
- libcxx/include/support/solaris/floatingpoint.h [5:5]
- libcxx/include/support/solaris/wchar.h [5:5]
- libcxx/include/support/solaris/xlocale.h [5:5]
- libcxx/include/support/win32/limits_msvc_win32.h [6:6]
- libcxx/include/support/win32/locale_win32.h [6:6]
- libcxx/include/support/xlocale/__nop_locale_mgmt.h [6:6]
- libcxx/include/support/xlocale/__posix_l_fallback.h [6:6]
- libcxx/include/support/xlocale/__strtonum_fallback.h [6:6]
- libcxx/include/system_error [6:6]
- libcxx/include/tgmath.h [6:6]
- libcxx/include/thread [6:6]
- libcxx/include/tuple [6:6]
- libcxx/include/type_traits [6:6]
- libcxx/include/typeindex [6:6]
- libcxx/include/typeinfo [6:6]
- libcxx/include/unordered_map [6:6]
- libcxx/include/unordered_set [6:6]
- libcxx/include/utility [6:6]
- libcxx/include/valarray [6:6]
- libcxx/include/variant [6:6]
- libcxx/include/vector [6:6]
- libcxx/include/version [6:6]
- libcxx/include/wchar.h [6:6]
- libcxx/include/wctype.h [6:6]
- libcxx/src/algorithm.cpp [5:5]
- libcxx/src/any.cpp [5:5]
- libcxx/src/atomic.cpp [5:5]
- libcxx/src/barrier.cpp [5:5]
- libcxx/src/bind.cpp [5:5]
- libcxx/src/charconv.cpp [5:5]
- libcxx/src/chrono.cpp [5:5]
- libcxx/src/condition_variable.cpp [5:5]
- libcxx/src/condition_variable_destructor.cpp [5:5]
- libcxx/src/debug.cpp [5:5]
- libcxx/src/exception.cpp [5:5]
- libcxx/src/experimental/memory_resource.cpp [5:5]
- libcxx/src/filesystem/directory_iterator.cpp [5:5]
- libcxx/src/filesystem/filesystem_common.h [5:5]
- libcxx/src/filesystem/operations.cpp [5:5]
- libcxx/src/functional.cpp [5:5]
- libcxx/src/future.cpp [5:5]
- libcxx/src/hash.cpp [5:5]
- libcxx/src/include/apple_availability.h [5:5]
- libcxx/src/include/atomic_support.h [5:5]
- libcxx/src/include/config_elast.h [5:5]
- libcxx/src/include/refstring.h [5:5]
- libcxx/src/ios.cpp [5:5]
- libcxx/src/ios.instantiations.cpp [5:5]
- libcxx/src/iostream.cpp [5:5]
- libcxx/src/locale.cpp [5:5]
- libcxx/src/memory.cpp [5:5]
- libcxx/src/mutex.cpp [5:5]
- libcxx/src/mutex_destructor.cpp [5:5]
- libcxx/src/new.cpp [5:5]
- libcxx/src/optional.cpp [5:5]
- libcxx/src/random.cpp [5:5]
- libcxx/src/random_shuffle.cpp [5:5]
- libcxx/src/regex.cpp [5:5]
- libcxx/src/shared_mutex.cpp [5:5]
- libcxx/src/stdexcept.cpp [5:5]
- libcxx/src/string.cpp [5:5]
- libcxx/src/strstream.cpp [5:5]
- libcxx/src/support/runtime/exception_fallback.ipp [6:6]
- libcxx/src/support/runtime/exception_glibcxx.ipp [6:6]
- libcxx/src/support/runtime/exception_libcxxabi.ipp [6:6]
- libcxx/src/support/runtime/exception_libcxxrt.ipp [6:6]
- libcxx/src/support/runtime/exception_msvc.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_cxxabi.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_glibcxx.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_msvc.ipp [6:6]
- libcxx/src/support/runtime/exception_pointer_unimplemented.ipp [6:6]
- libcxx/src/support/runtime/new_handler_fallback.ipp [6:6]
- libcxx/src/support/runtime/stdexcept_default.ipp [5:5]
- libcxx/src/support/runtime/stdexcept_vcruntime.ipp [5:5]
- libcxx/src/support/solaris/xlocale.cpp [5:5]
- libcxx/src/support/win32/locale_win32.cpp [6:6]
- libcxx/src/support/win32/support.cpp [6:6]
- libcxx/src/support/win32/thread_win32.cpp [6:6]
- libcxx/src/system_error.cpp [5:5]
- libcxx/src/thread.cpp [5:5]
- libcxx/src/typeinfo.cpp [5:5]
- libcxx/src/utility.cpp [5:5]
- libcxx/src/valarray.cpp [5:5]
- libcxx/src/variant.cpp [5:5]
- libcxx/src/vector.cpp [5:5]
-
-KEEP Apache-2.0 WITH LLVM-exception c1e6c6536fcc444f916047679115c618
-BELONGS libcxx/ya.make
- License text:
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/src/filesystem/int128_builtins.cpp [5:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/src/filesystem/int128_builtins.cpp [5:5]
-
-KEEP NCSA c26d0b72f92421989c4471ae0acbc943
-BELONGS libcxx/ya.make
- License text:
- University of Illinois/NCSA
- Open Source License
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- libcxx/LICENSE.TXT [249:250]
-
-KEEP NCSA AND MIT d2725783fa0a2f24d855943aac3dbdf9
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/z_Windows_NT-586_asm.asm at line 10
- License text:
- ;// This file is dual licensed under the MIT and the University of Illinois Open
- ;// Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/z_Windows_NT-586_asm.asm [9:10]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/z_Windows_NT-586_asm.asm [9:10]
-
-SKIP LicenseRef-scancode-unknown-license-reference d4fd839c20b32e384ccf02a801e876d1
-BELONGS libcxx/ya.make
- # part of bsd-2-clause text
- License text:
- distributed under.
- Scancode info:
- Original SPDX id: LicenseRef-scancode-unknown-license-reference
- Score : 11.00
- Match type : INTRO
- Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/unknown-license-reference.LICENSE
- Files with this license:
- libcxx/src/support/solaris/README [4:4]
-
-KEEP Apache-2.0 WITH LLVM-exception df18889e552d44a4679aff552267f802
-BELONGS libcxx/ya.make
- License text:
- The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- libcxx/LICENSE.TXT [2:2]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- libcxx/LICENSE.TXT [2:2]
-
-KEEP NCSA AND MIT e56769dac6aaa0678164025adda8a1da
-BELONGS openmp/ya.make
-FILE_INCLUDE builtins/LICENSE.txt found in files: openmp/i18n/en_US.txt at line 9
- License text:
- \#// This file is dual licensed under the MIT and the University of Illinois Open
- \#// Source Licenses. See LICENSE.txt for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- openmp/i18n/en_US.txt [8:9]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- openmp/i18n/en_US.txt [8:9]
-
-KEEP BSD-2-Clause f59cebb43ee786218189ac014af76fbb
-BELONGS libcxx/ya.make
-FILE_IGNORE libcxx/include/experimental/list found in files: libcxx/src/support/solaris/mbsnrtowcs.inc at line 13, libcxx/src/support/solaris/mbsnrtowcs.inc at line 15, libcxx/src/support/solaris/wcsnrtombs.inc at line 10, libcxx/src/support/solaris/wcsnrtombs.inc at line 8
-FILE_IGNORE libcxx/include/list found in files: libcxx/src/support/solaris/mbsnrtowcs.inc at line 13, libcxx/src/support/solaris/mbsnrtowcs.inc at line 15, libcxx/src/support/solaris/wcsnrtombs.inc at line 10, libcxx/src/support/solaris/wcsnrtombs.inc at line 8
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- libcxx/src/support/solaris/mbsnrtowcs.inc [9:28]
- libcxx/src/support/solaris/wcsnrtombs.inc [4:23]
-
-KEEP BSD-2-Clause-Views fa822847a0868c8922cbd110b73455fc
-BELONGS libcxxrt/ya.make
-FILE_IGNORE libcxx/include/experimental/list found in files: libcxxrt/LICENSE at line 7, libcxxrt/LICENSE at line 8
-FILE_IGNORE libcxx/include/list found in files: libcxxrt/LICENSE at line 7, libcxxrt/LICENSE at line 8
-FILE_INCLUDE libcxxrt/COPYRIGHT found in files: libcxxrt/LICENSE at line 12
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause-Views
- Score : 98.16
- Match type : TEXT
- Links : https://github.com/protegeproject/protege/blob/master/license.txt, https://spdx.org/licenses/BSD-2-Clause-Views, https://www.freebsd.org/copyright/freebsd-license.html
- Files with this license:
- libcxxrt/LICENSE [5:14]
diff --git a/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index 3a00c42eca3..00000000000
--- a/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,67 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL 6abb44b35108cb004d9a12213d837344
-BELONGS ya.make
- License text:
- Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.os_version_check.c.txt [17:17]
-
-KEEP COPYRIGHT_SERVICE_LABEL debfce3edcb19585edc08c5b1d986c0b
-BELONGS ya.make
- License text:
- Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [293:293]
- LICENSE.os_version_check.c.txt [58:58]
- LICENSE.txt [17:17]
- LICENSE.txt [58:58]
-
-KEEP COPYRIGHT_SERVICE_LABEL ebc015cad7377d32e7b2fc0ae5293aa1
-BELONGS ya.make
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [252:252]
diff --git a/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index c9cfdfa9d4b..00000000000
--- a/contrib/libs/cxxsupp/builtins/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,842 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP NCSA 1975f079a20b2f4a333fa0d9e510d9fa
-BELONGS ya.make
- License text:
- \# This file is distributed under the University of Illinois Open Source
- \# License. See LICENSE.TXT for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 94.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- arm/Makefile.mk [5:6]
- arm64/Makefile.mk [5:6]
- armv6m/Makefile.mk [5:6]
- i386/Makefile.mk [5:6]
- ppc/Makefile.mk [5:6]
- x86_64/Makefile.mk [5:6]
-
-KEEP NCSA AND MIT 27a91d3feda74cb7f51826c55ccf86e1
-BELONGS ya.make
- License text:
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- absvdi2.c [5:6]
- absvsi2.c [5:6]
- absvti2.c [5:6]
- addvdi3.c [5:6]
- addvsi3.c [5:6]
- addvti3.c [5:6]
- apple_versioning.c [5:6]
- arm/aeabi_div0.c [5:6]
- arm/clzdi2.S [5:6]
- arm/clzsi2.S [5:6]
- arm/divmodsi4.S [5:6]
- arm/divsi3.S [5:6]
- arm/modsi3.S [5:6]
- arm/sync-ops.h [5:6]
- arm/sync_fetch_and_add_4.S [5:6]
- arm/sync_fetch_and_add_8.S [5:6]
- arm/sync_fetch_and_and_4.S [5:6]
- arm/sync_fetch_and_and_8.S [5:6]
- arm/sync_fetch_and_max_4.S [5:6]
- arm/sync_fetch_and_max_8.S [5:6]
- arm/sync_fetch_and_min_4.S [5:6]
- arm/sync_fetch_and_min_8.S [5:6]
- arm/sync_fetch_and_nand_4.S [5:6]
- arm/sync_fetch_and_nand_8.S [5:6]
- arm/sync_fetch_and_or_4.S [5:6]
- arm/sync_fetch_and_or_8.S [5:6]
- arm/sync_fetch_and_sub_4.S [5:6]
- arm/sync_fetch_and_sub_8.S [5:6]
- arm/sync_fetch_and_umax_4.S [5:6]
- arm/sync_fetch_and_umax_8.S [5:6]
- arm/sync_fetch_and_umin_4.S [5:6]
- arm/sync_fetch_and_umin_8.S [5:6]
- arm/sync_fetch_and_xor_4.S [5:6]
- arm/sync_fetch_and_xor_8.S [5:6]
- arm/udivmodsi4.S [5:6]
- arm/udivsi3.S [5:6]
- arm/umodsi3.S [5:6]
- ashldi3.c [5:6]
- ashlti3.c [5:6]
- ashrdi3.c [5:6]
- ashrti3.c [5:6]
- assembly.h [5:6]
- atomic.c [5:6]
- atomic_flag_clear.c [5:6]
- atomic_flag_clear_explicit.c [5:6]
- atomic_flag_test_and_set.c [5:6]
- atomic_flag_test_and_set_explicit.c [5:6]
- atomic_signal_fence.c [5:6]
- atomic_thread_fence.c [5:6]
- clear_cache.c [5:6]
- clzdi2.c [5:6]
- clzsi2.c [5:6]
- clzti2.c [5:6]
- cmpdi2.c [5:6]
- cmpti2.c [5:6]
- ctzdi2.c [5:6]
- ctzsi2.c [5:6]
- ctzti2.c [5:6]
- divdc3.c [5:6]
- divdi3.c [5:6]
- divmoddi4.c [5:6]
- divmodsi4.c [5:6]
- divsc3.c [5:6]
- divsi3.c [5:6]
- divtc3.c [5:6]
- divti3.c [5:6]
- divxc3.c [5:6]
- emutls.c [5:6]
- enable_execute_stack.c [5:6]
- eprintf.c [5:6]
- ffsdi2.c [5:6]
- ffsti2.c [5:6]
- fixdfdi.c [5:6]
- fixdfsi.c [5:6]
- fixdfti.c [5:6]
- fixsfdi.c [5:6]
- fixsfsi.c [5:6]
- fixsfti.c [5:6]
- fixtfdi.c [5:6]
- fixtfsi.c [5:6]
- fixtfti.c [5:6]
- fixunsdfdi.c [5:6]
- fixunsdfsi.c [5:6]
- fixunsdfti.c [5:6]
- fixunssfdi.c [5:6]
- fixunssfsi.c [5:6]
- fixunssfti.c [5:6]
- fixunstfdi.c [5:6]
- fixunstfsi.c [5:6]
- fixunstfti.c [5:6]
- fixunsxfdi.c [5:6]
- fixunsxfsi.c [5:6]
- fixunsxfti.c [5:6]
- fixxfdi.c [5:6]
- fixxfti.c [5:6]
- floatdidf.c [5:6]
- floatdisf.c [5:6]
- floatdixf.c [5:6]
- floattidf.c [5:6]
- floattisf.c [5:6]
- floattixf.c [5:6]
- floatundidf.c [5:6]
- floatundisf.c [5:6]
- floatundixf.c [5:6]
- floatuntidf.c [5:6]
- floatuntisf.c [5:6]
- floatuntixf.c [5:6]
- gcc_personality_v0.c [5:6]
- int_endianness.h [5:6]
- int_lib.h [5:6]
- int_math.h [5:6]
- int_types.h [5:6]
- int_util.c [5:6]
- int_util.h [5:6]
- lshrdi3.c [5:6]
- lshrti3.c [5:6]
- moddi3.c [5:6]
- modsi3.c [5:6]
- modti3.c [5:6]
- muldc3.c [5:6]
- muldi3.c [5:6]
- mulodi4.c [5:6]
- mulosi4.c [5:6]
- muloti4.c [5:6]
- mulsc3.c [5:6]
- multc3.c [5:6]
- multi3.c [5:6]
- mulvdi3.c [5:6]
- mulvsi3.c [5:6]
- mulvti3.c [5:6]
- mulxc3.c [5:6]
- negdi2.c [5:6]
- negti2.c [5:6]
- negvdi2.c [5:6]
- negvsi2.c [5:6]
- negvti2.c [5:6]
- os_version_check.c [5:6]
- paritydi2.c [5:6]
- paritysi2.c [5:6]
- parityti2.c [5:6]
- popcountdi2.c [5:6]
- popcountsi2.c [5:6]
- popcountti2.c [5:6]
- powidf2.c [5:6]
- powisf2.c [5:6]
- powitf2.c [5:6]
- powixf2.c [5:6]
- subvdi3.c [5:6]
- subvsi3.c [5:6]
- subvti3.c [5:6]
- trampoline_setup.c [5:6]
- ucmpdi2.c [5:6]
- ucmpti2.c [5:6]
- udivdi3.c [5:6]
- udivmoddi4.c [5:6]
- udivmodsi4.c [5:6]
- udivmodti4.c [5:6]
- udivsi3.c [5:6]
- udivti3.c [5:6]
- umoddi3.c [5:6]
- umodsi3.c [5:6]
- umodti3.c [5:6]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- absvdi2.c [5:6]
- absvsi2.c [5:6]
- absvti2.c [5:6]
- addvdi3.c [5:6]
- addvsi3.c [5:6]
- addvti3.c [5:6]
- apple_versioning.c [5:6]
- arm/aeabi_div0.c [5:6]
- arm/clzdi2.S [5:6]
- arm/clzsi2.S [5:6]
- arm/divmodsi4.S [5:6]
- arm/divsi3.S [5:6]
- arm/modsi3.S [5:6]
- arm/sync-ops.h [5:6]
- arm/sync_fetch_and_add_4.S [5:6]
- arm/sync_fetch_and_add_8.S [5:6]
- arm/sync_fetch_and_and_4.S [5:6]
- arm/sync_fetch_and_and_8.S [5:6]
- arm/sync_fetch_and_max_4.S [5:6]
- arm/sync_fetch_and_max_8.S [5:6]
- arm/sync_fetch_and_min_4.S [5:6]
- arm/sync_fetch_and_min_8.S [5:6]
- arm/sync_fetch_and_nand_4.S [5:6]
- arm/sync_fetch_and_nand_8.S [5:6]
- arm/sync_fetch_and_or_4.S [5:6]
- arm/sync_fetch_and_or_8.S [5:6]
- arm/sync_fetch_and_sub_4.S [5:6]
- arm/sync_fetch_and_sub_8.S [5:6]
- arm/sync_fetch_and_umax_4.S [5:6]
- arm/sync_fetch_and_umax_8.S [5:6]
- arm/sync_fetch_and_umin_4.S [5:6]
- arm/sync_fetch_and_umin_8.S [5:6]
- arm/sync_fetch_and_xor_4.S [5:6]
- arm/sync_fetch_and_xor_8.S [5:6]
- arm/udivmodsi4.S [5:6]
- arm/udivsi3.S [5:6]
- arm/umodsi3.S [5:6]
- ashldi3.c [5:6]
- ashlti3.c [5:6]
- ashrdi3.c [5:6]
- ashrti3.c [5:6]
- assembly.h [5:6]
- atomic.c [5:6]
- atomic_flag_clear.c [5:6]
- atomic_flag_clear_explicit.c [5:6]
- atomic_flag_test_and_set.c [5:6]
- atomic_flag_test_and_set_explicit.c [5:6]
- atomic_signal_fence.c [5:6]
- atomic_thread_fence.c [5:6]
- clear_cache.c [5:6]
- clzdi2.c [5:6]
- clzsi2.c [5:6]
- clzti2.c [5:6]
- cmpdi2.c [5:6]
- cmpti2.c [5:6]
- ctzdi2.c [5:6]
- ctzsi2.c [5:6]
- ctzti2.c [5:6]
- divdc3.c [5:6]
- divdi3.c [5:6]
- divmoddi4.c [5:6]
- divmodsi4.c [5:6]
- divsc3.c [5:6]
- divsi3.c [5:6]
- divtc3.c [5:6]
- divti3.c [5:6]
- divxc3.c [5:6]
- emutls.c [5:6]
- enable_execute_stack.c [5:6]
- eprintf.c [5:6]
- ffsdi2.c [5:6]
- ffsti2.c [5:6]
- fixdfdi.c [5:6]
- fixdfsi.c [5:6]
- fixdfti.c [5:6]
- fixsfdi.c [5:6]
- fixsfsi.c [5:6]
- fixsfti.c [5:6]
- fixtfdi.c [5:6]
- fixtfsi.c [5:6]
- fixtfti.c [5:6]
- fixunsdfdi.c [5:6]
- fixunsdfsi.c [5:6]
- fixunsdfti.c [5:6]
- fixunssfdi.c [5:6]
- fixunssfsi.c [5:6]
- fixunssfti.c [5:6]
- fixunstfdi.c [5:6]
- fixunstfsi.c [5:6]
- fixunstfti.c [5:6]
- fixunsxfdi.c [5:6]
- fixunsxfsi.c [5:6]
- fixunsxfti.c [5:6]
- fixxfdi.c [5:6]
- fixxfti.c [5:6]
- floatdidf.c [5:6]
- floatdisf.c [5:6]
- floatdixf.c [5:6]
- floattidf.c [5:6]
- floattisf.c [5:6]
- floattixf.c [5:6]
- floatundidf.c [5:6]
- floatundisf.c [5:6]
- floatundixf.c [5:6]
- floatuntidf.c [5:6]
- floatuntisf.c [5:6]
- floatuntixf.c [5:6]
- gcc_personality_v0.c [5:6]
- int_endianness.h [5:6]
- int_lib.h [5:6]
- int_math.h [5:6]
- int_types.h [5:6]
- int_util.c [5:6]
- int_util.h [5:6]
- lshrdi3.c [5:6]
- lshrti3.c [5:6]
- moddi3.c [5:6]
- modsi3.c [5:6]
- modti3.c [5:6]
- muldc3.c [5:6]
- muldi3.c [5:6]
- mulodi4.c [5:6]
- mulosi4.c [5:6]
- muloti4.c [5:6]
- mulsc3.c [5:6]
- multc3.c [5:6]
- multi3.c [5:6]
- mulvdi3.c [5:6]
- mulvsi3.c [5:6]
- mulvti3.c [5:6]
- mulxc3.c [5:6]
- negdi2.c [5:6]
- negti2.c [5:6]
- negvdi2.c [5:6]
- negvsi2.c [5:6]
- negvti2.c [5:6]
- os_version_check.c [5:6]
- paritydi2.c [5:6]
- paritysi2.c [5:6]
- parityti2.c [5:6]
- popcountdi2.c [5:6]
- popcountsi2.c [5:6]
- popcountti2.c [5:6]
- powidf2.c [5:6]
- powisf2.c [5:6]
- powitf2.c [5:6]
- powixf2.c [5:6]
- subvdi3.c [5:6]
- subvsi3.c [5:6]
- subvti3.c [5:6]
- trampoline_setup.c [5:6]
- ucmpdi2.c [5:6]
- ucmpti2.c [5:6]
- udivdi3.c [5:6]
- udivmoddi4.c [5:6]
- udivmodsi4.c [5:6]
- udivmodti4.c [5:6]
- udivsi3.c [5:6]
- udivti3.c [5:6]
- umoddi3.c [5:6]
- umodsi3.c [5:6]
- umodti3.c [5:6]
-
-KEEP NCSA 281d1ec07e86b61c925d7c514deecb25
-BELONGS ya.make
-FILE_INCLUDE LICENSE.txt found in files: README.txt at line 8
- License text:
- Compiler-RT is open source software. You may freely distribute it under the
- terms of the license agreement found in LICENSE.txt.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- README.txt [7:8]
-
-KEEP NCSA 5a35b4c0d3b3923cac31a5a371332ca2
-BELONGS ya.make
- License text:
- Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [237:237]
-
-KEEP NCSA 5b89aaa4f22bc812b081b9e1de7d0a13
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.os_version_check.c.txt [81:90]
- LICENSE.txt [81:90]
-
-KEEP MIT 5debb370f50e1dfd24ff5144233a2ef6
-BELONGS ya.make
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [295:311]
- LICENSE.os_version_check.c.txt [60:76]
- LICENSE.txt [60:76]
-
-KEEP NCSA AND MIT 72d4e9e6f06ffb6f0c77cb800c3ac442
-BELONGS ya.make
- License text:
- // This file is dual licensed under the MIT and the University of Illinois Open
- // Source Licenses. See LICENSE.TXT for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- adddf3.c [5:6]
- addsf3.c [5:6]
- addtf3.c [5:6]
- arm/adddf3vfp.S [5:6]
- arm/addsf3vfp.S [5:6]
- arm/aeabi_cdcmp.S [5:6]
- arm/aeabi_cdcmpeq_check_nan.c [5:6]
- arm/aeabi_cfcmp.S [5:6]
- arm/aeabi_cfcmpeq_check_nan.c [5:6]
- arm/aeabi_dcmp.S [5:6]
- arm/aeabi_drsub.c [5:6]
- arm/aeabi_fcmp.S [5:6]
- arm/aeabi_frsub.c [5:6]
- arm/aeabi_idivmod.S [5:6]
- arm/aeabi_ldivmod.S [5:6]
- arm/aeabi_memcmp.S [5:6]
- arm/aeabi_memcpy.S [5:6]
- arm/aeabi_memmove.S [5:6]
- arm/aeabi_memset.S [5:6]
- arm/aeabi_uidivmod.S [5:6]
- arm/aeabi_uldivmod.S [5:6]
- arm/bswapdi2.S [5:6]
- arm/bswapsi2.S [5:6]
- arm/comparesf2.S [5:6]
- arm/divdf3vfp.S [5:6]
- arm/divsf3vfp.S [5:6]
- arm/eqdf2vfp.S [5:6]
- arm/eqsf2vfp.S [5:6]
- arm/extendsfdf2vfp.S [5:6]
- arm/fixdfsivfp.S [5:6]
- arm/fixsfsivfp.S [5:6]
- arm/fixunsdfsivfp.S [5:6]
- arm/fixunssfsivfp.S [5:6]
- arm/floatsidfvfp.S [5:6]
- arm/floatsisfvfp.S [5:6]
- arm/floatunssidfvfp.S [5:6]
- arm/floatunssisfvfp.S [5:6]
- arm/gedf2vfp.S [5:6]
- arm/gesf2vfp.S [5:6]
- arm/gtdf2vfp.S [5:6]
- arm/gtsf2vfp.S [5:6]
- arm/ledf2vfp.S [5:6]
- arm/lesf2vfp.S [5:6]
- arm/ltdf2vfp.S [5:6]
- arm/ltsf2vfp.S [5:6]
- arm/muldf3vfp.S [5:6]
- arm/mulsf3vfp.S [5:6]
- arm/nedf2vfp.S [5:6]
- arm/negdf2vfp.S [5:6]
- arm/negsf2vfp.S [5:6]
- arm/nesf2vfp.S [5:6]
- arm/restore_vfp_d8_d15_regs.S [5:6]
- arm/save_vfp_d8_d15_regs.S [5:6]
- arm/subdf3vfp.S [5:6]
- arm/subsf3vfp.S [5:6]
- arm/switch16.S [5:6]
- arm/switch32.S [5:6]
- arm/switch8.S [5:6]
- arm/switchu8.S [5:6]
- arm/sync_synchronize.S [5:6]
- arm/truncdfsf2vfp.S [5:6]
- arm/unorddf2vfp.S [5:6]
- arm/unordsf2vfp.S [5:6]
- comparedf2.c [5:6]
- comparesf2.c [5:6]
- comparetf2.c [5:6]
- divdf3.c [5:6]
- divsf3.c [5:6]
- divtf3.c [5:6]
- extenddftf2.c [5:6]
- extendhfsf2.c [5:6]
- extendsfdf2.c [5:6]
- extendsftf2.c [5:6]
- floatditf.c [5:6]
- floatsidf.c [5:6]
- floatsisf.c [5:6]
- floatsitf.c [5:6]
- floatunditf.c [5:6]
- floatunsidf.c [5:6]
- floatunsisf.c [5:6]
- floatunsitf.c [5:6]
- fp_add_impl.inc [5:6]
- fp_extend.h [5:6]
- fp_extend_impl.inc [5:6]
- fp_fixint_impl.inc [5:6]
- fp_fixuint_impl.inc [5:6]
- fp_lib.h [5:6]
- fp_mul_impl.inc [5:6]
- fp_trunc.h [5:6]
- fp_trunc_impl.inc [5:6]
- i386/ashldi3.S [1:2]
- i386/ashrdi3.S [1:2]
- i386/chkstk.S [1:2]
- i386/chkstk2.S [1:2]
- i386/divdi3.S [1:2]
- i386/floatdidf.S [1:2]
- i386/floatdisf.S [1:2]
- i386/floatdixf.S [1:2]
- i386/floatundidf.S [5:6]
- i386/floatundisf.S [1:2]
- i386/floatundixf.S [1:2]
- i386/lshrdi3.S [1:2]
- i386/moddi3.S [1:2]
- i386/muldi3.S [1:2]
- i386/udivdi3.S [1:2]
- i386/umoddi3.S [1:2]
- muldf3.c [5:6]
- mulsf3.c [5:6]
- multf3.c [5:6]
- negdf2.c [5:6]
- negsf2.c [5:6]
- ppc/restFP.S [5:6]
- ppc/saveFP.S [5:6]
- subdf3.c [5:6]
- subsf3.c [5:6]
- subtf3.c [5:6]
- truncdfhf2.c [5:6]
- truncdfsf2.c [5:6]
- truncsfhf2.c [5:6]
- trunctfdf2.c [5:6]
- trunctfsf2.c [5:6]
- x86_64/chkstk.S [1:2]
- x86_64/chkstk2.S [1:2]
- x86_64/floatundidf.S [5:6]
- x86_64/floatundisf.S [1:2]
- x86_64/floatundixf.S [1:2]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- adddf3.c [5:6]
- addsf3.c [5:6]
- addtf3.c [5:6]
- arm/adddf3vfp.S [5:6]
- arm/addsf3vfp.S [5:6]
- arm/aeabi_cdcmp.S [5:6]
- arm/aeabi_cdcmpeq_check_nan.c [5:6]
- arm/aeabi_cfcmp.S [5:6]
- arm/aeabi_cfcmpeq_check_nan.c [5:6]
- arm/aeabi_dcmp.S [5:6]
- arm/aeabi_drsub.c [5:6]
- arm/aeabi_fcmp.S [5:6]
- arm/aeabi_frsub.c [5:6]
- arm/aeabi_idivmod.S [5:6]
- arm/aeabi_ldivmod.S [5:6]
- arm/aeabi_memcmp.S [5:6]
- arm/aeabi_memcpy.S [5:6]
- arm/aeabi_memmove.S [5:6]
- arm/aeabi_memset.S [5:6]
- arm/aeabi_uidivmod.S [5:6]
- arm/aeabi_uldivmod.S [5:6]
- arm/bswapdi2.S [5:6]
- arm/bswapsi2.S [5:6]
- arm/comparesf2.S [5:6]
- arm/divdf3vfp.S [5:6]
- arm/divsf3vfp.S [5:6]
- arm/eqdf2vfp.S [5:6]
- arm/eqsf2vfp.S [5:6]
- arm/extendsfdf2vfp.S [5:6]
- arm/fixdfsivfp.S [5:6]
- arm/fixsfsivfp.S [5:6]
- arm/fixunsdfsivfp.S [5:6]
- arm/fixunssfsivfp.S [5:6]
- arm/floatsidfvfp.S [5:6]
- arm/floatsisfvfp.S [5:6]
- arm/floatunssidfvfp.S [5:6]
- arm/floatunssisfvfp.S [5:6]
- arm/gedf2vfp.S [5:6]
- arm/gesf2vfp.S [5:6]
- arm/gtdf2vfp.S [5:6]
- arm/gtsf2vfp.S [5:6]
- arm/ledf2vfp.S [5:6]
- arm/lesf2vfp.S [5:6]
- arm/ltdf2vfp.S [5:6]
- arm/ltsf2vfp.S [5:6]
- arm/muldf3vfp.S [5:6]
- arm/mulsf3vfp.S [5:6]
- arm/nedf2vfp.S [5:6]
- arm/negdf2vfp.S [5:6]
- arm/negsf2vfp.S [5:6]
- arm/nesf2vfp.S [5:6]
- arm/restore_vfp_d8_d15_regs.S [5:6]
- arm/save_vfp_d8_d15_regs.S [5:6]
- arm/subdf3vfp.S [5:6]
- arm/subsf3vfp.S [5:6]
- arm/switch16.S [5:6]
- arm/switch32.S [5:6]
- arm/switch8.S [5:6]
- arm/switchu8.S [5:6]
- arm/sync_synchronize.S [5:6]
- arm/truncdfsf2vfp.S [5:6]
- arm/unorddf2vfp.S [5:6]
- arm/unordsf2vfp.S [5:6]
- comparedf2.c [5:6]
- comparesf2.c [5:6]
- comparetf2.c [5:6]
- divdf3.c [5:6]
- divsf3.c [5:6]
- divtf3.c [5:6]
- extenddftf2.c [5:6]
- extendhfsf2.c [5:6]
- extendsfdf2.c [5:6]
- extendsftf2.c [5:6]
- floatditf.c [5:6]
- floatsidf.c [5:6]
- floatsisf.c [5:6]
- floatsitf.c [5:6]
- floatunditf.c [5:6]
- floatunsidf.c [5:6]
- floatunsisf.c [5:6]
- floatunsitf.c [5:6]
- fp_add_impl.inc [5:6]
- fp_extend.h [5:6]
- fp_extend_impl.inc [5:6]
- fp_fixint_impl.inc [5:6]
- fp_fixuint_impl.inc [5:6]
- fp_lib.h [5:6]
- fp_mul_impl.inc [5:6]
- fp_trunc.h [5:6]
- fp_trunc_impl.inc [5:6]
- i386/ashldi3.S [1:2]
- i386/ashrdi3.S [1:2]
- i386/chkstk.S [1:2]
- i386/chkstk2.S [1:2]
- i386/divdi3.S [1:2]
- i386/floatdidf.S [1:2]
- i386/floatdisf.S [1:2]
- i386/floatdixf.S [1:2]
- i386/floatundidf.S [5:6]
- i386/floatundisf.S [1:2]
- i386/floatundixf.S [1:2]
- i386/lshrdi3.S [1:2]
- i386/moddi3.S [1:2]
- i386/muldi3.S [1:2]
- i386/udivdi3.S [1:2]
- i386/umoddi3.S [1:2]
- muldf3.c [5:6]
- mulsf3.c [5:6]
- multf3.c [5:6]
- negdf2.c [5:6]
- negsf2.c [5:6]
- ppc/restFP.S [5:6]
- ppc/saveFP.S [5:6]
- subdf3.c [5:6]
- subsf3.c [5:6]
- subtf3.c [5:6]
- truncdfhf2.c [5:6]
- truncdfsf2.c [5:6]
- truncsfhf2.c [5:6]
- trunctfdf2.c [5:6]
- trunctfsf2.c [5:6]
- x86_64/chkstk.S [1:2]
- x86_64/chkstk2.S [1:2]
- x86_64/floatundidf.S [5:6]
- x86_64/floatundisf.S [1:2]
- x86_64/floatundixf.S [1:2]
-
-KEEP Apache-2.0 WITH LLVM-exception 8494a9caed330d9a4f40e19cce7dc770
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TEXT
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [208:222]
-
-KEEP NCSA 866c17e668b5e51841e1c1979de94aa1
-BELONGS ya.make
- License text:
- /* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 94.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- ppc/divtc3.c [1:2]
- ppc/fixtfdi.c [1:2]
- ppc/fixunstfdi.c [1:2]
- ppc/floatditf.c [1:2]
- ppc/floatunditf.c [1:2]
- ppc/gcc_qdiv.c [1:2]
- ppc/gcc_qmul.c [1:2]
- ppc/gcc_qsub.c [1:2]
- ppc/multc3.c [1:2]
- x86_64/floatdidf.c [1:2]
- x86_64/floatdisf.c [1:2]
- x86_64/floatdixf.c [1:2]
-
-KEEP Apache-2.0 9ac77f65a898755c7eed97099caded94
-BELONGS ya.make
- # any and version - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TEXT
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [5:205]
-
-KEEP NCSA AND MIT acaf5a1ddffd6829f7ebecb9e50c6c5f
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [240:245]
- LICENSE.os_version_check.c.txt [5:10]
- LICENSE.txt [5:10]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [240:245]
- LICENSE.os_version_check.c.txt [5:10]
- LICENSE.txt [5:10]
-
-KEEP NCSA b160d8bd561da097b0edd40b062e1c84
-BELONGS ya.make
- # any and list - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : TEXT
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [264:289]
- LICENSE.os_version_check.c.txt [29:54]
- LICENSE.txt [29:54]
-
-KEEP NCSA c26d0b72f92421989c4471ae0acbc943
-BELONGS ya.make
- License text:
- University of Illinois/NCSA
- Open Source License
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [249:250]
- LICENSE.os_version_check.c.txt [14:15]
- LICENSE.txt [14:15]
-
-KEEP Apache-2.0 WITH LLVM-exception df18889e552d44a4679aff552267f802
-BELONGS ya.make
- License text:
- The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [2:2]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.os_version_check.c.patch.txt [2:2]
-
-KEEP NCSA efa7c9a4e646ac38725d00250dd0b1a5
-BELONGS ya.make
- License text:
- /* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- Scancode info:
- Original SPDX id: NCSA
- Score : 94.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- ppc/gcc_qadd.c [1:2]
diff --git a/contrib/libs/cxxsupp/builtins/.yandex_meta/licenses.list.txt b/contrib/libs/cxxsupp/builtins/.yandex_meta/licenses.list.txt
deleted file mode 100644
index ee63781e186..00000000000
--- a/contrib/libs/cxxsupp/builtins/.yandex_meta/licenses.list.txt
+++ /dev/null
@@ -1,439 +0,0 @@
-====================Apache-2.0====================
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
----- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
-
-
-====================File: LICENSE.txt====================
-==============================================================================
-compiler_rt License
-==============================================================================
-
-The compiler_rt library is dual licensed under both the University of Illinois
-"BSD-Like" license and the MIT license. As a user of this code you may choose
-to use it under either license. As a contributor, you agree to allow your code
-to be used under both.
-
-Full text of the relevant licenses is included below.
-
-==============================================================================
-
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
-
-All rights reserved.
-
-Developed by:
-
- LLVM Team
-
- University of Illinois at Urbana-Champaign
-
- http://llvm.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-==============================================================================
-
-Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-==============================================================================
-Copyrights and Licenses for Third Party Software Distributed with LLVM:
-==============================================================================
-The LLVM software contains code written by third parties. Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the LLVM Team or the
-University of Illinois to endorse or promote products derived from this
-Software.
-
-
-
-====================MIT====================
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-====================NCSA====================
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-
-
-====================NCSA====================
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
-
-
-====================NCSA====================
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
-
-
-====================NCSA====================
-Compiler-RT is open source software. You may freely distribute it under the
-terms of the license agreement found in LICENSE.txt.
-
-
-====================NCSA====================
-Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
-
-
-====================NCSA====================
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-
-====================NCSA====================
-The LLVM software contains code written by third parties. Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the LLVM Team or the
-University of Illinois to endorse or promote products derived from this
-Software.
-
-
-====================NCSA====================
-University of Illinois/NCSA
-Open Source License
-
-
-====================NCSA AND MIT====================
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
-
-
-====================NCSA AND MIT====================
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-
-====================NCSA AND MIT====================
-The compiler_rt library is dual licensed under both the University of Illinois
-"BSD-Like" license and the MIT license. As a user of this code you may choose
-to use it under either license. As a contributor, you agree to allow your code
-to be used under both.
-
-Full text of the relevant licenses is included below.
diff --git a/contrib/libs/cxxsupp/builtins/CMakeLists.txt b/contrib/libs/cxxsupp/builtins/CMakeLists.txt
index fc7b1ee73ce..a681d385f3e 100644
--- a/contrib/libs/cxxsupp/builtins/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/builtins/CMakeLists.txt
@@ -8,6 +8,6 @@
if (APPLE)
include(CMakeLists.darwin.txt)
-elseif (UNIX AND NOT APPLE)
+elseif (UNIX)
include(CMakeLists.linux.txt)
endif()
diff --git a/contrib/libs/cxxsupp/builtins/absvdi2.c b/contrib/libs/cxxsupp/builtins/absvdi2.c
deleted file mode 100644
index 682c2355d2a..00000000000
--- a/contrib/libs/cxxsupp/builtins/absvdi2.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*===-- absvdi2.c - Implement __absvdi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- * This file implements __absvdi2 for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: absolute value */
-
-/* Effects: aborts if abs(x) < 0 */
-
-COMPILER_RT_ABI di_int
-__absvdi2(di_int a)
-{
- const int N = (int)(sizeof(di_int) * CHAR_BIT);
- if (a == ((di_int)1 << (N-1)))
- compilerrt_abort();
- const di_int t = a >> (N - 1);
- return (a ^ t) - t;
-}
diff --git a/contrib/libs/cxxsupp/builtins/absvsi2.c b/contrib/libs/cxxsupp/builtins/absvsi2.c
deleted file mode 100644
index 4812af81598..00000000000
--- a/contrib/libs/cxxsupp/builtins/absvsi2.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ===-- absvsi2.c - Implement __absvsi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __absvsi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: absolute value */
-
-/* Effects: aborts if abs(x) < 0 */
-
-COMPILER_RT_ABI si_int
-__absvsi2(si_int a)
-{
- const int N = (int)(sizeof(si_int) * CHAR_BIT);
- if (a == (1 << (N-1)))
- compilerrt_abort();
- const si_int t = a >> (N - 1);
- return (a ^ t) - t;
-}
diff --git a/contrib/libs/cxxsupp/builtins/absvti2.c b/contrib/libs/cxxsupp/builtins/absvti2.c
deleted file mode 100644
index 7927770c9ab..00000000000
--- a/contrib/libs/cxxsupp/builtins/absvti2.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ===-- absvti2.c - Implement __absvdi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __absvti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: absolute value */
-
-/* Effects: aborts if abs(x) < 0 */
-
-COMPILER_RT_ABI ti_int
-__absvti2(ti_int a)
-{
- const int N = (int)(sizeof(ti_int) * CHAR_BIT);
- if (a == ((ti_int)1 << (N-1)))
- compilerrt_abort();
- const ti_int s = a >> (N - 1);
- return (a ^ s) - s;
-}
-
-#endif /* CRT_HAS_128BIT */
-
diff --git a/contrib/libs/cxxsupp/builtins/adddf3.c b/contrib/libs/cxxsupp/builtins/adddf3.c
deleted file mode 100644
index 8b7aae0a6f8..00000000000
--- a/contrib/libs/cxxsupp/builtins/adddf3.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/adddf3.c - Double-precision addition ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements double-precision soft-float addition with the IEEE-754
-// default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_add_impl.inc"
-
-ARM_EABI_FNALIAS(dadd, adddf3)
-
-COMPILER_RT_ABI double __adddf3(double a, double b){
- return __addXf3__(a, b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/addsf3.c b/contrib/libs/cxxsupp/builtins/addsf3.c
deleted file mode 100644
index 0f5d6ea4097..00000000000
--- a/contrib/libs/cxxsupp/builtins/addsf3.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/addsf3.c - Single-precision addition ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements single-precision soft-float addition with the IEEE-754
-// default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_add_impl.inc"
-
-ARM_EABI_FNALIAS(fadd, addsf3)
-
-COMPILER_RT_ABI float __addsf3(float a, float b) {
- return __addXf3__(a, b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/addvdi3.c b/contrib/libs/cxxsupp/builtins/addvdi3.c
deleted file mode 100644
index 0da38945679..00000000000
--- a/contrib/libs/cxxsupp/builtins/addvdi3.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ===-- addvdi3.c - Implement __addvdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __addvdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a + b */
-
-/* Effects: aborts if a + b overflows */
-
-COMPILER_RT_ABI di_int
-__addvdi3(di_int a, di_int b)
-{
- di_int s = (du_int) a + (du_int) b;
- if (b >= 0)
- {
- if (s < a)
- compilerrt_abort();
- }
- else
- {
- if (s >= a)
- compilerrt_abort();
- }
- return s;
-}
diff --git a/contrib/libs/cxxsupp/builtins/addvsi3.c b/contrib/libs/cxxsupp/builtins/addvsi3.c
deleted file mode 100644
index 94ca726f42b..00000000000
--- a/contrib/libs/cxxsupp/builtins/addvsi3.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ===-- addvsi3.c - Implement __addvsi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __addvsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a + b */
-
-/* Effects: aborts if a + b overflows */
-
-COMPILER_RT_ABI si_int
-__addvsi3(si_int a, si_int b)
-{
- si_int s = (su_int) a + (su_int) b;
- if (b >= 0)
- {
- if (s < a)
- compilerrt_abort();
- }
- else
- {
- if (s >= a)
- compilerrt_abort();
- }
- return s;
-}
diff --git a/contrib/libs/cxxsupp/builtins/addvti3.c b/contrib/libs/cxxsupp/builtins/addvti3.c
deleted file mode 100644
index c224de60aab..00000000000
--- a/contrib/libs/cxxsupp/builtins/addvti3.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* ===-- addvti3.c - Implement __addvti3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __addvti3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: a + b */
-
-/* Effects: aborts if a + b overflows */
-
-COMPILER_RT_ABI ti_int
-__addvti3(ti_int a, ti_int b)
-{
- ti_int s = (tu_int) a + (tu_int) b;
- if (b >= 0)
- {
- if (s < a)
- compilerrt_abort();
- }
- else
- {
- if (s >= a)
- compilerrt_abort();
- }
- return s;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/apple_versioning.c b/contrib/libs/cxxsupp/builtins/apple_versioning.c
deleted file mode 100644
index 3797a1ab02d..00000000000
--- a/contrib/libs/cxxsupp/builtins/apple_versioning.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/* ===-- apple_versioning.c - Adds versioning symbols for ld ---------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-
-#if __APPLE__
- #include <Availability.h>
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED
- #define NOT_HERE_BEFORE_10_6(sym)
- #define NOT_HERE_IN_10_8_AND_EARLIER(sym) \
- extern const char sym##_tmp61 __asm("$ld$hide$os6.1$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp61 = 0; \
- extern const char sym##_tmp60 __asm("$ld$hide$os6.0$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp60 = 0; \
- extern const char sym##_tmp51 __asm("$ld$hide$os5.1$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp51 = 0; \
- extern const char sym##_tmp50 __asm("$ld$hide$os5.0$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp50 = 0;
- #else
- #define NOT_HERE_BEFORE_10_6(sym) \
- extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
- extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
- #define NOT_HERE_IN_10_8_AND_EARLIER(sym) \
- extern const char sym##_tmp8 __asm("$ld$hide$os10.8$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp8 = 0; \
- extern const char sym##_tmp7 __asm("$ld$hide$os10.7$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp7 = 0; \
- extern const char sym##_tmp6 __asm("$ld$hide$os10.6$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp6 = 0;
- #endif
-
-
-/* Symbols in libSystem.dylib in 10.6 and later,
- * but are in libgcc_s.dylib in earlier versions
- */
-
-NOT_HERE_BEFORE_10_6(__absvdi2)
-NOT_HERE_BEFORE_10_6(__absvsi2)
-NOT_HERE_BEFORE_10_6(__absvti2)
-NOT_HERE_BEFORE_10_6(__addvdi3)
-NOT_HERE_BEFORE_10_6(__addvsi3)
-NOT_HERE_BEFORE_10_6(__addvti3)
-NOT_HERE_BEFORE_10_6(__ashldi3)
-NOT_HERE_BEFORE_10_6(__ashlti3)
-NOT_HERE_BEFORE_10_6(__ashrdi3)
-NOT_HERE_BEFORE_10_6(__ashrti3)
-NOT_HERE_BEFORE_10_6(__clear_cache)
-NOT_HERE_BEFORE_10_6(__clzdi2)
-NOT_HERE_BEFORE_10_6(__clzsi2)
-NOT_HERE_BEFORE_10_6(__clzti2)
-NOT_HERE_BEFORE_10_6(__cmpdi2)
-NOT_HERE_BEFORE_10_6(__cmpti2)
-NOT_HERE_BEFORE_10_6(__ctzdi2)
-NOT_HERE_BEFORE_10_6(__ctzsi2)
-NOT_HERE_BEFORE_10_6(__ctzti2)
-NOT_HERE_BEFORE_10_6(__divdc3)
-NOT_HERE_BEFORE_10_6(__divdi3)
-NOT_HERE_BEFORE_10_6(__divsc3)
-NOT_HERE_BEFORE_10_6(__divtc3)
-NOT_HERE_BEFORE_10_6(__divti3)
-NOT_HERE_BEFORE_10_6(__divxc3)
-NOT_HERE_BEFORE_10_6(__enable_execute_stack)
-NOT_HERE_BEFORE_10_6(__ffsdi2)
-NOT_HERE_BEFORE_10_6(__ffsti2)
-NOT_HERE_BEFORE_10_6(__fixdfdi)
-NOT_HERE_BEFORE_10_6(__fixdfti)
-NOT_HERE_BEFORE_10_6(__fixsfdi)
-NOT_HERE_BEFORE_10_6(__fixsfti)
-NOT_HERE_BEFORE_10_6(__fixtfdi)
-NOT_HERE_BEFORE_10_6(__fixunsdfdi)
-NOT_HERE_BEFORE_10_6(__fixunsdfsi)
-NOT_HERE_BEFORE_10_6(__fixunsdfti)
-NOT_HERE_BEFORE_10_6(__fixunssfdi)
-NOT_HERE_BEFORE_10_6(__fixunssfsi)
-NOT_HERE_BEFORE_10_6(__fixunssfti)
-NOT_HERE_BEFORE_10_6(__fixunstfdi)
-NOT_HERE_BEFORE_10_6(__fixunsxfdi)
-NOT_HERE_BEFORE_10_6(__fixunsxfsi)
-NOT_HERE_BEFORE_10_6(__fixunsxfti)
-NOT_HERE_BEFORE_10_6(__fixxfdi)
-NOT_HERE_BEFORE_10_6(__fixxfti)
-NOT_HERE_BEFORE_10_6(__floatdidf)
-NOT_HERE_BEFORE_10_6(__floatdisf)
-NOT_HERE_BEFORE_10_6(__floatditf)
-NOT_HERE_BEFORE_10_6(__floatdixf)
-NOT_HERE_BEFORE_10_6(__floattidf)
-NOT_HERE_BEFORE_10_6(__floattisf)
-NOT_HERE_BEFORE_10_6(__floattixf)
-NOT_HERE_BEFORE_10_6(__floatundidf)
-NOT_HERE_BEFORE_10_6(__floatundisf)
-NOT_HERE_BEFORE_10_6(__floatunditf)
-NOT_HERE_BEFORE_10_6(__floatundixf)
-NOT_HERE_BEFORE_10_6(__floatuntidf)
-NOT_HERE_BEFORE_10_6(__floatuntisf)
-NOT_HERE_BEFORE_10_6(__floatuntixf)
-NOT_HERE_BEFORE_10_6(__gcc_personality_v0)
-NOT_HERE_BEFORE_10_6(__lshrdi3)
-NOT_HERE_BEFORE_10_6(__lshrti3)
-NOT_HERE_BEFORE_10_6(__moddi3)
-NOT_HERE_BEFORE_10_6(__modti3)
-NOT_HERE_BEFORE_10_6(__muldc3)
-NOT_HERE_BEFORE_10_6(__muldi3)
-NOT_HERE_BEFORE_10_6(__mulsc3)
-NOT_HERE_BEFORE_10_6(__multc3)
-NOT_HERE_BEFORE_10_6(__multi3)
-NOT_HERE_BEFORE_10_6(__mulvdi3)
-NOT_HERE_BEFORE_10_6(__mulvsi3)
-NOT_HERE_BEFORE_10_6(__mulvti3)
-NOT_HERE_BEFORE_10_6(__mulxc3)
-NOT_HERE_BEFORE_10_6(__negdi2)
-NOT_HERE_BEFORE_10_6(__negti2)
-NOT_HERE_BEFORE_10_6(__negvdi2)
-NOT_HERE_BEFORE_10_6(__negvsi2)
-NOT_HERE_BEFORE_10_6(__negvti2)
-NOT_HERE_BEFORE_10_6(__paritydi2)
-NOT_HERE_BEFORE_10_6(__paritysi2)
-NOT_HERE_BEFORE_10_6(__parityti2)
-NOT_HERE_BEFORE_10_6(__popcountdi2)
-NOT_HERE_BEFORE_10_6(__popcountsi2)
-NOT_HERE_BEFORE_10_6(__popcountti2)
-NOT_HERE_BEFORE_10_6(__powidf2)
-NOT_HERE_BEFORE_10_6(__powisf2)
-NOT_HERE_BEFORE_10_6(__powitf2)
-NOT_HERE_BEFORE_10_6(__powixf2)
-NOT_HERE_BEFORE_10_6(__subvdi3)
-NOT_HERE_BEFORE_10_6(__subvsi3)
-NOT_HERE_BEFORE_10_6(__subvti3)
-NOT_HERE_BEFORE_10_6(__ucmpdi2)
-NOT_HERE_BEFORE_10_6(__ucmpti2)
-NOT_HERE_BEFORE_10_6(__udivdi3)
-NOT_HERE_BEFORE_10_6(__udivmoddi4)
-NOT_HERE_BEFORE_10_6(__udivmodti4)
-NOT_HERE_BEFORE_10_6(__udivti3)
-NOT_HERE_BEFORE_10_6(__umoddi3)
-NOT_HERE_BEFORE_10_6(__umodti3)
-
-
-#if __ppc__
-NOT_HERE_BEFORE_10_6(__gcc_qadd)
-NOT_HERE_BEFORE_10_6(__gcc_qdiv)
-NOT_HERE_BEFORE_10_6(__gcc_qmul)
-NOT_HERE_BEFORE_10_6(__gcc_qsub)
-NOT_HERE_BEFORE_10_6(__trampoline_setup)
-#endif /* __ppc__ */
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_8)
-
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_1)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_2)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_4)
-NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_8)
-
-
-#if __arm__ && __DYNAMIC__
- #define NOT_HERE_UNTIL_AFTER_4_3(sym) \
- extern const char sym##_tmp1 __asm("$ld$hide$os3.0$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp1 = 0; \
- extern const char sym##_tmp2 __asm("$ld$hide$os3.1$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp2 = 0; \
- extern const char sym##_tmp3 __asm("$ld$hide$os3.2$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp3 = 0; \
- extern const char sym##_tmp4 __asm("$ld$hide$os4.0$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
- extern const char sym##_tmp5 __asm("$ld$hide$os4.1$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp5 = 0; \
- extern const char sym##_tmp6 __asm("$ld$hide$os4.2$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp6 = 0; \
- extern const char sym##_tmp7 __asm("$ld$hide$os4.3$_" #sym ); \
- __attribute__((visibility("default"))) const char sym##_tmp7 = 0;
-
-NOT_HERE_UNTIL_AFTER_4_3(__absvdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__absvsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__adddf3)
-NOT_HERE_UNTIL_AFTER_4_3(__adddf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__addsf3)
-NOT_HERE_UNTIL_AFTER_4_3(__addsf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__addvdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__addvsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__ashldi3)
-NOT_HERE_UNTIL_AFTER_4_3(__ashrdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__bswapdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__bswapsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__clzdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__clzsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__cmpdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__ctzdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__ctzsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__divdc3)
-NOT_HERE_UNTIL_AFTER_4_3(__divdf3)
-NOT_HERE_UNTIL_AFTER_4_3(__divdf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__divdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__divsc3)
-NOT_HERE_UNTIL_AFTER_4_3(__divsf3)
-NOT_HERE_UNTIL_AFTER_4_3(__divsf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__divsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__eqdf2)
-NOT_HERE_UNTIL_AFTER_4_3(__eqdf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__eqsf2)
-NOT_HERE_UNTIL_AFTER_4_3(__eqsf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2)
-NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__ffsdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__fixdfdi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixdfsi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixdfsivfp)
-NOT_HERE_UNTIL_AFTER_4_3(__fixsfdi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixsfsi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixsfsivfp)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfdi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsivfp)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunssfdi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsi)
-NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsivfp)
-NOT_HERE_UNTIL_AFTER_4_3(__floatdidf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatdisf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatsidf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatsidfvfp)
-NOT_HERE_UNTIL_AFTER_4_3(__floatsisf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatsisfvfp)
-NOT_HERE_UNTIL_AFTER_4_3(__floatundidf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatundisf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatunsidf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatunsisf)
-NOT_HERE_UNTIL_AFTER_4_3(__floatunssidfvfp)
-NOT_HERE_UNTIL_AFTER_4_3(__floatunssisfvfp)
-NOT_HERE_UNTIL_AFTER_4_3(__gedf2)
-NOT_HERE_UNTIL_AFTER_4_3(__gedf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__gesf2)
-NOT_HERE_UNTIL_AFTER_4_3(__gesf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__gtdf2)
-NOT_HERE_UNTIL_AFTER_4_3(__gtdf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__gtsf2)
-NOT_HERE_UNTIL_AFTER_4_3(__gtsf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__ledf2)
-NOT_HERE_UNTIL_AFTER_4_3(__ledf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__lesf2)
-NOT_HERE_UNTIL_AFTER_4_3(__lesf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__lshrdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__ltdf2)
-NOT_HERE_UNTIL_AFTER_4_3(__ltdf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__ltsf2)
-NOT_HERE_UNTIL_AFTER_4_3(__ltsf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__moddi3)
-NOT_HERE_UNTIL_AFTER_4_3(__modsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__muldc3)
-NOT_HERE_UNTIL_AFTER_4_3(__muldf3)
-NOT_HERE_UNTIL_AFTER_4_3(__muldf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__muldi3)
-NOT_HERE_UNTIL_AFTER_4_3(__mulsc3)
-NOT_HERE_UNTIL_AFTER_4_3(__mulsf3)
-NOT_HERE_UNTIL_AFTER_4_3(__mulsf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__mulvdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__mulvsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__nedf2)
-NOT_HERE_UNTIL_AFTER_4_3(__nedf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__negdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__negvdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__negvsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__nesf2)
-NOT_HERE_UNTIL_AFTER_4_3(__nesf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__paritydi2)
-NOT_HERE_UNTIL_AFTER_4_3(__paritysi2)
-NOT_HERE_UNTIL_AFTER_4_3(__popcountdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__popcountsi2)
-NOT_HERE_UNTIL_AFTER_4_3(__powidf2)
-NOT_HERE_UNTIL_AFTER_4_3(__powisf2)
-NOT_HERE_UNTIL_AFTER_4_3(__subdf3)
-NOT_HERE_UNTIL_AFTER_4_3(__subdf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__subsf3)
-NOT_HERE_UNTIL_AFTER_4_3(__subsf3vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__subvdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__subvsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2)
-NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__ucmpdi2)
-NOT_HERE_UNTIL_AFTER_4_3(__udivdi3)
-NOT_HERE_UNTIL_AFTER_4_3(__udivmoddi4)
-NOT_HERE_UNTIL_AFTER_4_3(__udivsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__umoddi3)
-NOT_HERE_UNTIL_AFTER_4_3(__umodsi3)
-NOT_HERE_UNTIL_AFTER_4_3(__unorddf2)
-NOT_HERE_UNTIL_AFTER_4_3(__unorddf2vfp)
-NOT_HERE_UNTIL_AFTER_4_3(__unordsf2)
-NOT_HERE_UNTIL_AFTER_4_3(__unordsf2vfp)
-
-NOT_HERE_UNTIL_AFTER_4_3(__divmodsi4)
-NOT_HERE_UNTIL_AFTER_4_3(__udivmodsi4)
-#endif // __arm__ && __DYNAMIC__
-
-
-
-
-
-#else /* !__APPLE__ */
-
-extern int avoid_empty_file;
-
-#endif /* !__APPLE__*/
diff --git a/contrib/libs/cxxsupp/builtins/arm/Makefile.mk b/contrib/libs/cxxsupp/builtins/arm/Makefile.mk
deleted file mode 100644
index ed2e8323e39..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/arm/Makefile.mk -------------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := armv5 armv6 armv7 armv7k armv7m armv7em armv7s
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/arm/adddf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/adddf3vfp.S
deleted file mode 100644
index 2825ae92cd5..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/adddf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- adddf3vfp.S - Implement adddf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// double __adddf3vfp(double a, double b) { return a + b; }
-//
-// Adds two double precision floating point numbers using the Darwin
-// calling convention where double arguments are passsed in GPR pairs
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__adddf3vfp)
- vmov d6, r0, r1 // move first param from r0/r1 pair into d6
- vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vadd.f64 d6, d6, d7
- vmov r0, r1, d6 // move result back to r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__adddf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/addsf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/addsf3vfp.S
deleted file mode 100644
index bff5a7e0fbe..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/addsf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- addsf3vfp.S - Implement addsf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __addsf3vfp(float a, float b);
-//
-// Adds two single precision floating point numbers using the Darwin
-// calling convention where single arguments are passsed in GPRs
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__addsf3vfp)
- vmov s14, r0 // move first param from r0 into float register
- vmov s15, r1 // move second param from r1 into float register
- vadd.f32 s14, s14, s15
- vmov r0, s14 // move result back to r0
- bx lr
-END_COMPILERRT_FUNCTION(__addsf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmp.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmp.S
deleted file mode 100644
index 036a6f542f7..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmp.S
+++ /dev/null
@@ -1,96 +0,0 @@
-//===-- aeabi_cdcmp.S - EABI cdcmp* implementation ------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
-#error big endian support not implemented
-#endif
-
-#define APSR_Z (1 << 30)
-#define APSR_C (1 << 29)
-
-// void __aeabi_cdcmpeq(double a, double b) {
-// if (isnan(a) || isnan(b)) {
-// Z = 0; C = 1;
-// } else {
-// __aeabi_cdcmple(a, b);
-// }
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmpeq)
- push {r0-r3, lr}
- bl __aeabi_cdcmpeq_check_nan
- cmp r0, #1
- pop {r0-r3, lr}
-
- // NaN has been ruled out, so __aeabi_cdcmple can't trap
- bne __aeabi_cdcmple
-
- msr CPSR_f, #APSR_C
- JMP(lr)
-END_COMPILERRT_FUNCTION(__aeabi_cdcmpeq)
-
-
-// void __aeabi_cdcmple(double a, double b) {
-// if (__aeabi_dcmplt(a, b)) {
-// Z = 0; C = 0;
-// } else if (__aeabi_dcmpeq(a, b)) {
-// Z = 1; C = 1;
-// } else {
-// Z = 0; C = 1;
-// }
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmple)
- // Per the RTABI, this function must preserve r0-r11.
- // Save lr in the same instruction for compactness
- push {r0-r3, lr}
-
- bl __aeabi_dcmplt
- cmp r0, #1
- moveq ip, #0
- beq 1f
-
- ldm sp, {r0-r3}
- bl __aeabi_dcmpeq
- cmp r0, #1
- moveq ip, #(APSR_C | APSR_Z)
- movne ip, #(APSR_C)
-
-1:
- msr CPSR_f, ip
- pop {r0-r3}
- POP_PC()
-END_COMPILERRT_FUNCTION(__aeabi_cdcmple)
-
-// int __aeabi_cdrcmple(double a, double b) {
-// return __aeabi_cdcmple(b, a);
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
- // Swap r0 and r2
- mov ip, r0
- mov r0, r2
- mov r2, ip
-
- // Swap r1 and r3
- mov ip, r1
- mov r1, r3
- mov r3, ip
-
- b __aeabi_cdcmple
-END_COMPILERRT_FUNCTION(__aeabi_cdrcmple)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmpeq_check_nan.c b/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmpeq_check_nan.c
deleted file mode 100644
index 577f6b2c553..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_cdcmpeq_check_nan.c
+++ /dev/null
@@ -1,16 +0,0 @@
-//===-- lib/arm/aeabi_cdcmpeq_helper.c - Helper for cdcmpeq ---------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdint.h>
-
-__attribute__((pcs("aapcs")))
-__attribute__((visibility("hidden")))
-int __aeabi_cdcmpeq_check_nan(double a, double b) {
- return __builtin_isnan(a) || __builtin_isnan(b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmp.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmp.S
deleted file mode 100644
index 43594e5c393..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmp.S
+++ /dev/null
@@ -1,91 +0,0 @@
-//===-- aeabi_cfcmp.S - EABI cfcmp* implementation ------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-#if __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
-#error big endian support not implemented
-#endif
-
-#define APSR_Z (1 << 30)
-#define APSR_C (1 << 29)
-
-// void __aeabi_cfcmpeq(float a, float b) {
-// if (isnan(a) || isnan(b)) {
-// Z = 0; C = 1;
-// } else {
-// __aeabi_cfcmple(a, b);
-// }
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmpeq)
- push {r0-r3, lr}
- bl __aeabi_cfcmpeq_check_nan
- cmp r0, #1
- pop {r0-r3, lr}
-
- // NaN has been ruled out, so __aeabi_cfcmple can't trap
- bne __aeabi_cfcmple
-
- msr CPSR_f, #APSR_C
- JMP(lr)
-END_COMPILERRT_FUNCTION(__aeabi_cfcmpeq)
-
-
-// void __aeabi_cfcmple(float a, float b) {
-// if (__aeabi_fcmplt(a, b)) {
-// Z = 0; C = 0;
-// } else if (__aeabi_fcmpeq(a, b)) {
-// Z = 1; C = 1;
-// } else {
-// Z = 0; C = 1;
-// }
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmple)
- // Per the RTABI, this function must preserve r0-r11.
- // Save lr in the same instruction for compactness
- push {r0-r3, lr}
-
- bl __aeabi_fcmplt
- cmp r0, #1
- moveq ip, #0
- beq 1f
-
- ldm sp, {r0-r3}
- bl __aeabi_fcmpeq
- cmp r0, #1
- moveq ip, #(APSR_C | APSR_Z)
- movne ip, #(APSR_C)
-
-1:
- msr CPSR_f, ip
- pop {r0-r3}
- POP_PC()
-END_COMPILERRT_FUNCTION(__aeabi_cfcmple)
-
-// int __aeabi_cfrcmple(float a, float b) {
-// return __aeabi_cfcmple(b, a);
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
- // Swap r0 and r1
- mov ip, r0
- mov r0, r1
- mov r1, ip
-
- b __aeabi_cfcmple
-END_COMPILERRT_FUNCTION(__aeabi_cfrcmple)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmpeq_check_nan.c b/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmpeq_check_nan.c
deleted file mode 100644
index 992e31fbd8d..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_cfcmpeq_check_nan.c
+++ /dev/null
@@ -1,16 +0,0 @@
-//===-- lib/arm/aeabi_cfcmpeq_helper.c - Helper for cdcmpeq ---------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdint.h>
-
-__attribute__((pcs("aapcs")))
-__attribute__((visibility("hidden")))
-int __aeabi_cfcmpeq_check_nan(float a, float b) {
- return __builtin_isnan(a) || __builtin_isnan(b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_dcmp.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_dcmp.S
deleted file mode 100644
index 310c35b7493..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_dcmp.S
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- aeabi_dcmp.S - EABI dcmp* implementation ---------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// int __aeabi_dcmp{eq,lt,le,ge,gt}(double a, double b) {
-// int result = __{eq,lt,le,ge,gt}df2(a, b);
-// if (result {==,<,<=,>=,>} 0) {
-// return 1;
-// } else {
-// return 0;
-// }
-// }
-
-#define DEFINE_AEABI_DCMP(cond) \
- .syntax unified SEPARATOR \
- .p2align 2 SEPARATOR \
-DEFINE_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond) \
- push { r4, lr } SEPARATOR \
- bl SYMBOL_NAME(__ ## cond ## df2) SEPARATOR \
- cmp r0, #0 SEPARATOR \
- b ## cond 1f SEPARATOR \
- mov r0, #0 SEPARATOR \
- pop { r4, pc } SEPARATOR \
-1: SEPARATOR \
- mov r0, #1 SEPARATOR \
- pop { r4, pc } SEPARATOR \
-END_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond)
-
-DEFINE_AEABI_DCMP(eq)
-DEFINE_AEABI_DCMP(lt)
-DEFINE_AEABI_DCMP(le)
-DEFINE_AEABI_DCMP(ge)
-DEFINE_AEABI_DCMP(gt)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_div0.c b/contrib/libs/cxxsupp/builtins/arm/aeabi_div0.c
deleted file mode 100644
index ccc95fa5c12..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_div0.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ===-- aeabi_div0.c - ARM Runtime ABI support routines for compiler-rt ---===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements the division by zero helper routines as specified by the
- * Run-time ABI for the ARM Architecture.
- *
- * ===----------------------------------------------------------------------===
- */
-
-/*
- * RTABI 4.3.2 - Division by zero
- *
- * The *div0 functions:
- * - Return the value passed to them as a parameter
- * - Or, return a fixed value defined by the execution environment (such as 0)
- * - Or, raise a signal (often SIGFPE) or throw an exception, and do not return
- *
- * An application may provide its own implementations of the *div0 functions to
- * for a particular behaviour from the *div and *divmod functions called out of
- * line.
- */
-
-/* provide an unused declaration to pacify pendantic compilation */
-extern unsigned char declaration;
-
-#if defined(__ARM_EABI__)
-int __attribute__((weak)) __attribute__((visibility("hidden")))
-__aeabi_idiv0(int return_value) {
- return return_value;
-}
-
-long long __attribute__((weak)) __attribute__((visibility("hidden")))
-__aeabi_ldiv0(long long return_value) {
- return return_value;
-}
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_drsub.c b/contrib/libs/cxxsupp/builtins/arm/aeabi_drsub.c
deleted file mode 100644
index fc17d5a4cc7..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_drsub.c
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- lib/arm/aeabi_drsub.c - Double-precision subtraction --------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "../fp_lib.h"
-
-COMPILER_RT_ABI fp_t
-__aeabi_dsub(fp_t, fp_t);
-
-COMPILER_RT_ABI fp_t
-__aeabi_drsub(fp_t a, fp_t b) {
- return __aeabi_dsub(b, a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_fcmp.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_fcmp.S
deleted file mode 100644
index 55f49a2b5af..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_fcmp.S
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- aeabi_fcmp.S - EABI fcmp* implementation ---------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// int __aeabi_fcmp{eq,lt,le,ge,gt}(float a, float b) {
-// int result = __{eq,lt,le,ge,gt}sf2(a, b);
-// if (result {==,<,<=,>=,>} 0) {
-// return 1;
-// } else {
-// return 0;
-// }
-// }
-
-#define DEFINE_AEABI_FCMP(cond) \
- .syntax unified SEPARATOR \
- .p2align 2 SEPARATOR \
-DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmp ## cond) \
- push { r4, lr } SEPARATOR \
- bl SYMBOL_NAME(__ ## cond ## sf2) SEPARATOR \
- cmp r0, #0 SEPARATOR \
- b ## cond 1f SEPARATOR \
- mov r0, #0 SEPARATOR \
- pop { r4, pc } SEPARATOR \
-1: SEPARATOR \
- mov r0, #1 SEPARATOR \
- pop { r4, pc } SEPARATOR \
-END_COMPILERRT_FUNCTION(__aeabi_fcmp ## cond)
-
-DEFINE_AEABI_FCMP(eq)
-DEFINE_AEABI_FCMP(lt)
-DEFINE_AEABI_FCMP(le)
-DEFINE_AEABI_FCMP(ge)
-DEFINE_AEABI_FCMP(gt)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_frsub.c b/contrib/libs/cxxsupp/builtins/arm/aeabi_frsub.c
deleted file mode 100644
index 64258dc7e07..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_frsub.c
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- lib/arm/aeabi_frsub.c - Single-precision subtraction --------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "../fp_lib.h"
-
-COMPILER_RT_ABI fp_t
-__aeabi_fsub(fp_t, fp_t);
-
-COMPILER_RT_ABI fp_t
-__aeabi_frsub(fp_t a, fp_t b) {
- return __aeabi_fsub(b, a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_idivmod.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_idivmod.S
deleted file mode 100644
index 384add38279..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_idivmod.S
+++ /dev/null
@@ -1,28 +0,0 @@
-//===-- aeabi_idivmod.S - EABI idivmod implementation ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// struct { int quot, int rem} __aeabi_idivmod(int numerator, int denominator) {
-// int rem, quot;
-// quot = __divmodsi4(numerator, denominator, &rem);
-// return {quot, rem};
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_idivmod)
- push { lr }
- sub sp, sp, #4
- mov r2, sp
- bl SYMBOL_NAME(__divmodsi4)
- ldr r1, [sp]
- add sp, sp, #4
- pop { pc }
-END_COMPILERRT_FUNCTION(__aeabi_idivmod)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_ldivmod.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_ldivmod.S
deleted file mode 100644
index ad06f1de2af..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_ldivmod.S
+++ /dev/null
@@ -1,31 +0,0 @@
-//===-- aeabi_ldivmod.S - EABI ldivmod implementation ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// struct { int64_t quot, int64_t rem}
-// __aeabi_ldivmod(int64_t numerator, int64_t denominator) {
-// int64_t rem, quot;
-// quot = __divmoddi4(numerator, denominator, &rem);
-// return {quot, rem};
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_ldivmod)
- push {r11, lr}
- sub sp, sp, #16
- add r12, sp, #8
- str r12, [sp]
- bl SYMBOL_NAME(__divmoddi4)
- ldr r2, [sp, #8]
- ldr r3, [sp, #12]
- add sp, sp, #16
- pop {r11, pc}
-END_COMPILERRT_FUNCTION(__aeabi_ldivmod)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_memcmp.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_memcmp.S
deleted file mode 100644
index 051ce435bab..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_memcmp.S
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- aeabi_memcmp.S - EABI memcmp implementation -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// void __aeabi_memcmp(void *dest, void *src, size_t n) { memcmp(dest, src, n); }
-
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_memcmp)
- b memcmp
-END_COMPILERRT_FUNCTION(__aeabi_memcmp)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_memcpy.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_memcpy.S
deleted file mode 100644
index cf02332490a..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_memcpy.S
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- aeabi_memcpy.S - EABI memcpy implementation -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// void __aeabi_memcpy(void *dest, void *src, size_t n) { memcpy(dest, src, n); }
-
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_memcpy)
- b memcpy
-END_COMPILERRT_FUNCTION(__aeabi_memcpy)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy4, __aeabi_memcpy)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __aeabi_memcpy)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_memmove.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_memmove.S
deleted file mode 100644
index 4dda06f75d0..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_memmove.S
+++ /dev/null
@@ -1,20 +0,0 @@
-//===-- aeabi_memmove.S - EABI memmove implementation --------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===---------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// void __aeabi_memmove(void *dest, void *src, size_t n) { memmove(dest, src, n); }
-
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_memmove)
- b memmove
-END_COMPILERRT_FUNCTION(__aeabi_memmove)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_memset.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_memset.S
deleted file mode 100644
index c8b49c7809a..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_memset.S
+++ /dev/null
@@ -1,34 +0,0 @@
-//===-- aeabi_memset.S - EABI memset implementation -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// void __aeabi_memset(void *dest, size_t n, int c) { memset(dest, c, n); }
-// void __aeabi_memclr(void *dest, size_t n) { __aeabi_memset(dest, n, 0); }
-
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_memset)
- mov r3, r1
- mov r1, r2
- mov r2, r3
- b memset
-END_COMPILERRT_FUNCTION(__aeabi_memset)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memset4, __aeabi_memset)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memset8, __aeabi_memset)
-
-DEFINE_COMPILERRT_FUNCTION(__aeabi_memclr)
- mov r2, r1
- mov r1, #0
- b memset
-END_COMPILERRT_FUNCTION(__aeabi_memclr)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr4, __aeabi_memclr)
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __aeabi_memclr)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_uidivmod.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_uidivmod.S
deleted file mode 100644
index 8ea474d91c6..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_uidivmod.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- aeabi_uidivmod.S - EABI uidivmod implementation -------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// struct { unsigned quot, unsigned rem}
-// __aeabi_uidivmod(unsigned numerator, unsigned denominator) {
-// unsigned rem, quot;
-// quot = __udivmodsi4(numerator, denominator, &rem);
-// return {quot, rem};
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_uidivmod)
- push { lr }
- sub sp, sp, #4
- mov r2, sp
- bl SYMBOL_NAME(__udivmodsi4)
- ldr r1, [sp]
- add sp, sp, #4
- pop { pc }
-END_COMPILERRT_FUNCTION(__aeabi_uidivmod)
diff --git a/contrib/libs/cxxsupp/builtins/arm/aeabi_uldivmod.S b/contrib/libs/cxxsupp/builtins/arm/aeabi_uldivmod.S
deleted file mode 100644
index 4e1f8e2a673..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/aeabi_uldivmod.S
+++ /dev/null
@@ -1,31 +0,0 @@
-//===-- aeabi_uldivmod.S - EABI uldivmod implementation -------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// struct { uint64_t quot, uint64_t rem}
-// __aeabi_uldivmod(uint64_t numerator, uint64_t denominator) {
-// uint64_t rem, quot;
-// quot = __udivmoddi4(numerator, denominator, &rem);
-// return {quot, rem};
-// }
-
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__aeabi_uldivmod)
- push {r11, lr}
- sub sp, sp, #16
- add r12, sp, #8
- str r12, [sp]
- bl SYMBOL_NAME(__udivmoddi4)
- ldr r2, [sp, #8]
- ldr r3, [sp, #12]
- add sp, sp, #16
- pop {r11, pc}
-END_COMPILERRT_FUNCTION(__aeabi_uldivmod)
diff --git a/contrib/libs/cxxsupp/builtins/arm/bswapdi2.S b/contrib/libs/cxxsupp/builtins/arm/bswapdi2.S
deleted file mode 100644
index 86f3bba8c29..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/bswapdi2.S
+++ /dev/null
@@ -1,47 +0,0 @@
-//===------- bswapdi2 - Implement bswapdi2 --------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-//
-// extern uint64_t __bswapdi2(uint64_t);
-//
-// Reverse all the bytes in a 64-bit integer.
-//
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__bswapdi2)
-#else
-DEFINE_COMPILERRT_FUNCTION(__bswapdi2)
-#endif
-#if __ARM_ARCH < 6
- // before armv6 does not have "rev" instruction
- // r2 = rev(r0)
- eor r2, r0, r0, ror #16
- bic r2, r2, #0xff0000
- mov r2, r2, lsr #8
- eor r2, r2, r0, ror #8
- // r0 = rev(r1)
- eor r0, r1, r1, ror #16
- bic r0, r0, #0xff0000
- mov r0, r0, lsr #8
- eor r0, r0, r1, ror #8
-#else
- rev r2, r0 // r2 = rev(r0)
- rev r0, r1 // r0 = rev(r1)
-#endif
- mov r1, r2 // r1 = r2 = rev(r0)
- JMP(lr)
-END_COMPILERRT_FUNCTION(__bswapdi2)
diff --git a/contrib/libs/cxxsupp/builtins/arm/bswapsi2.S b/contrib/libs/cxxsupp/builtins/arm/bswapsi2.S
deleted file mode 100644
index 59ba8158fd5..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/bswapsi2.S
+++ /dev/null
@@ -1,39 +0,0 @@
-//===------- bswapsi2 - Implement bswapsi2 --------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-//
-// extern uint32_t __bswapsi2(uint32_t);
-//
-// Reverse all the bytes in a 32-bit integer.
-//
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__bswapsi2)
-#else
-DEFINE_COMPILERRT_FUNCTION(__bswapsi2)
-#endif
-#if __ARM_ARCH < 6
- // before armv6 does not have "rev" instruction
- eor r1, r0, r0, ror #16
- bic r1, r1, #0xff0000
- mov r1, r1, lsr #8
- eor r0, r1, r0, ror #8
-#else
- rev r0, r0
-#endif
- JMP(lr)
-END_COMPILERRT_FUNCTION(__bswapsi2)
diff --git a/contrib/libs/cxxsupp/builtins/arm/clzdi2.S b/contrib/libs/cxxsupp/builtins/arm/clzdi2.S
deleted file mode 100644
index a55abac0469..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/clzdi2.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/* ===-- clzdi2.c - Implement __clzdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements count leading zeros for 64bit arguments.
- *
- * ===----------------------------------------------------------------------===
- */
-#include "../assembly.h"
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__clzdi2)
-#else
-DEFINE_COMPILERRT_FUNCTION(__clzdi2)
-#endif
-#ifdef __ARM_FEATURE_CLZ
-#ifdef __ARMEB__
- cmp r0, 0
- itee ne
- clzne r0, r0
- clzeq r0, r1
- addeq r0, r0, 32
-#else
- cmp r1, 0
- itee ne
- clzne r0, r1
- clzeq r0, r0
- addeq r0, r0, 32
-#endif
- JMP(lr)
-#else
- /* Assumption: n != 0 */
-
- /*
- * r0: n
- * r1: upper half of n, overwritten after check
- * r1: count of leading zeros in n + 1
- * r2: scratch register for shifted r0
- */
-#ifdef __ARMEB__
- cmp r0, 0
- moveq r0, r1
-#else
- cmp r1, 0
- movne r0, r1
-#endif
- movne r1, 1
- moveq r1, 33
-
- /*
- * Basic block:
- * if ((r0 >> SHIFT) == 0)
- * r1 += SHIFT;
- * else
- * r0 >>= SHIFT;
- * for descending powers of two as SHIFT.
- */
-#define BLOCK(shift) \
- lsrs r2, r0, shift; \
- movne r0, r2; \
- addeq r1, shift \
-
- BLOCK(16)
- BLOCK(8)
- BLOCK(4)
- BLOCK(2)
-
- /*
- * The basic block invariants at this point are (r0 >> 2) == 0 and
- * r0 != 0. This means 1 <= r0 <= 3 and 0 <= (r0 >> 1) <= 1.
- *
- * r0 | (r0 >> 1) == 0 | (r0 >> 1) == 1 | -(r0 >> 1) | 1 - (r0 >> 1)
- * ---+----------------+----------------+------------+--------------
- * 1 | 1 | 0 | 0 | 1
- * 2 | 0 | 1 | -1 | 0
- * 3 | 0 | 1 | -1 | 0
- *
- * The r1's initial value of 1 compensates for the 1 here.
- */
- sub r0, r1, r0, lsr #1
-
- JMP(lr)
-#endif // __ARM_FEATURE_CLZ
-END_COMPILERRT_FUNCTION(__clzdi2)
diff --git a/contrib/libs/cxxsupp/builtins/arm/clzsi2.S b/contrib/libs/cxxsupp/builtins/arm/clzsi2.S
deleted file mode 100644
index 1cd379bfb0a..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/clzsi2.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ===-- clzsi2.c - Implement __clzsi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements count leading zeros for 32bit arguments.
- *
- * ===----------------------------------------------------------------------===
- */
-#include "../assembly.h"
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__clzsi2)
-#else
-DEFINE_COMPILERRT_FUNCTION(__clzsi2)
-#endif
-#ifdef __ARM_FEATURE_CLZ
- clz r0, r0
- JMP(lr)
-#else
- /* Assumption: n != 0 */
-
- /*
- * r0: n
- * r1: count of leading zeros in n + 1
- * r2: scratch register for shifted r0
- */
- mov r1, 1
-
- /*
- * Basic block:
- * if ((r0 >> SHIFT) == 0)
- * r1 += SHIFT;
- * else
- * r0 >>= SHIFT;
- * for descending powers of two as SHIFT.
- */
-
-#define BLOCK(shift) \
- lsrs r2, r0, shift; \
- movne r0, r2; \
- addeq r1, shift \
-
- BLOCK(16)
- BLOCK(8)
- BLOCK(4)
- BLOCK(2)
-
- /*
- * The basic block invariants at this point are (r0 >> 2) == 0 and
- * r0 != 0. This means 1 <= r0 <= 3 and 0 <= (r0 >> 1) <= 1.
- *
- * r0 | (r0 >> 1) == 0 | (r0 >> 1) == 1 | -(r0 >> 1) | 1 - (r0 >> 1)
- * ---+----------------+----------------+------------+--------------
- * 1 | 1 | 0 | 0 | 1
- * 2 | 0 | 1 | -1 | 0
- * 3 | 0 | 1 | -1 | 0
- *
- * The r1's initial value of 1 compensates for the 1 here.
- */
- sub r0, r1, r0, lsr #1
-
- JMP(lr)
-#endif // __ARM_FEATURE_CLZ
-END_COMPILERRT_FUNCTION(__clzsi2)
diff --git a/contrib/libs/cxxsupp/builtins/arm/comparesf2.S b/contrib/libs/cxxsupp/builtins/arm/comparesf2.S
deleted file mode 100644
index cf71d36e051..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/comparesf2.S
+++ /dev/null
@@ -1,148 +0,0 @@
-//===-- comparesf2.S - Implement single-precision soft-float comparisons --===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the following soft-fp_t comparison routines:
-//
-// __eqsf2 __gesf2 __unordsf2
-// __lesf2 __gtsf2
-// __ltsf2
-// __nesf2
-//
-// The semantics of the routines grouped in each column are identical, so there
-// is a single implementation for each, with multiple names.
-//
-// The routines behave as follows:
-//
-// __lesf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// 1 if either a or b is NaN
-//
-// __gesf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// -1 if either a or b is NaN
-//
-// __unordsf2(a,b) returns 0 if both a and b are numbers
-// 1 if either a or b is NaN
-//
-// Note that __lesf2( ) and __gesf2( ) are identical except in their handling of
-// NaN values.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-.syntax unified
-
-.p2align 2
-DEFINE_COMPILERRT_FUNCTION(__eqsf2)
- // Make copies of a and b with the sign bit shifted off the top. These will
- // be used to detect zeros and NaNs.
- mov r2, r0, lsl #1
- mov r3, r1, lsl #1
-
- // We do the comparison in three stages (ignoring NaN values for the time
- // being). First, we orr the absolute values of a and b; this sets the Z
- // flag if both a and b are zero (of either sign). The shift of r3 doesn't
- // effect this at all, but it *does* make sure that the C flag is clear for
- // the subsequent operations.
- orrs r12, r2, r3, lsr #1
-
- // Next, we check if a and b have the same or different signs. If they have
- // opposite signs, this eor will set the N flag.
- it ne
- eorsne r12, r0, r1
-
- // If a and b are equal (either both zeros or bit identical; again, we're
- // ignoring NaNs for now), this subtract will zero out r0. If they have the
- // same sign, the flags are updated as they would be for a comparison of the
- // absolute values of a and b.
- it pl
- subspl r0, r2, r3
-
- // If a is smaller in magnitude than b and both have the same sign, place
- // the negation of the sign of b in r0. Thus, if both are negative and
- // a > b, this sets r0 to 0; if both are positive and a < b, this sets
- // r0 to -1.
- //
- // This is also done if a and b have opposite signs and are not both zero,
- // because in that case the subtract was not performed and the C flag is
- // still clear from the shift argument in orrs; if a is positive and b
- // negative, this places 0 in r0; if a is negative and b positive, -1 is
- // placed in r0.
- it lo
- mvnlo r0, r1, asr #31
-
- // If a is greater in magnitude than b and both have the same sign, place
- // the sign of b in r0. Thus, if both are negative and a < b, -1 is placed
- // in r0, which is the desired result. Conversely, if both are positive
- // and a > b, zero is placed in r0.
- it hi
- movhi r0, r1, asr #31
-
- // If you've been keeping track, at this point r0 contains -1 if a < b and
- // 0 if a >= b. All that remains to be done is to set it to 1 if a > b.
- // If a == b, then the Z flag is set, so we can get the correct final value
- // into r0 by simply or'ing with 1 if Z is clear.
- it ne
- orrne r0, r0, #1
-
- // Finally, we need to deal with NaNs. If either argument is NaN, replace
- // the value in r0 with 1.
- cmp r2, #0xff000000
- ite ls
- cmpls r3, #0xff000000
- movhi r0, #1
- JMP(lr)
-END_COMPILERRT_FUNCTION(__eqsf2)
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__lesf2, __eqsf2)
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__ltsf2, __eqsf2)
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__nesf2, __eqsf2)
-
-.p2align 2
-DEFINE_COMPILERRT_FUNCTION(__gtsf2)
- // Identical to the preceding except in that we return -1 for NaN values.
- // Given that the two paths share so much code, one might be tempted to
- // unify them; however, the extra code needed to do so makes the code size
- // to performance tradeoff very hard to justify for such small functions.
- mov r2, r0, lsl #1
- mov r3, r1, lsl #1
- orrs r12, r2, r3, lsr #1
- it ne
- eorsne r12, r0, r1
- it pl
- subspl r0, r2, r3
- it lo
- mvnlo r0, r1, asr #31
- it hi
- movhi r0, r1, asr #31
- it ne
- orrne r0, r0, #1
- cmp r2, #0xff000000
- ite ls
- cmpls r3, #0xff000000
- movhi r0, #-1
- JMP(lr)
-END_COMPILERRT_FUNCTION(__gtsf2)
-DEFINE_COMPILERRT_FUNCTION_ALIAS(__gesf2, __gtsf2)
-
-.p2align 2
-DEFINE_COMPILERRT_FUNCTION(__unordsf2)
- // Return 1 for NaN values, 0 otherwise.
- mov r2, r0, lsl #1
- mov r3, r1, lsl #1
- mov r0, #0
- cmp r2, #0xff000000
- ite ls
- cmpls r3, #0xff000000
- movhi r0, #1
- JMP(lr)
-END_COMPILERRT_FUNCTION(__unordsf2)
-
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fcmpun, __unordsf2)
diff --git a/contrib/libs/cxxsupp/builtins/arm/divdf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/divdf3vfp.S
deleted file mode 100644
index 6eebef167a2..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/divdf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- divdf3vfp.S - Implement divdf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __divdf3vfp(double a, double b);
-//
-// Divides two double precision floating point numbers using the Darwin
-// calling convention where double arguments are passsed in GPR pairs
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__divdf3vfp)
- vmov d6, r0, r1 // move first param from r0/r1 pair into d6
- vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vdiv.f64 d5, d6, d7
- vmov r0, r1, d5 // move result back to r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__divdf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/divmodsi4.S b/contrib/libs/cxxsupp/builtins/arm/divmodsi4.S
deleted file mode 100644
index 646b9ab78fb..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/divmodsi4.S
+++ /dev/null
@@ -1,74 +0,0 @@
-/*===-- divmodsi4.S - 32-bit signed integer divide and modulus ------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __divmodsi4 (32-bit signed integer divide and
- * modulus) function for the ARM architecture. A naive digit-by-digit
- * computation is employed for simplicity.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
-#define ESTABLISH_FRAME \
- push {r4-r7, lr} ;\
- add r7, sp, #12
-#define CLEAR_FRAME_AND_RETURN \
- pop {r4-r7, pc}
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-@ int __divmodsi4(int divident, int divisor, int *remainder)
-@ Calculate the quotient and remainder of the (signed) division. The return
-@ value is the quotient, the remainder is placed in the variable.
-
- .p2align 3
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__divmodsi4)
-#else
-DEFINE_COMPILERRT_FUNCTION(__divmodsi4)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1, r1
- beq LOCAL_LABEL(divzero)
- mov r3, r0
- sdiv r0, r3, r1
- mls r1, r0, r1, r3
- str r1, [r2]
- bx lr
-LOCAL_LABEL(divzero):
- mov r0, #0
- bx lr
-#else
- ESTABLISH_FRAME
-// Set aside the sign of the quotient and modulus, and the address for the
-// modulus.
- eor r4, r0, r1
- mov r5, r0
- mov r6, r2
-// Take the absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
- eor ip, r0, r0, asr #31
- eor lr, r1, r1, asr #31
- sub r0, ip, r0, asr #31
- sub r1, lr, r1, asr #31
-// Unsigned divmod:
- bl SYMBOL_NAME(__udivmodsi4)
-// Apply the sign of quotient and modulus
- ldr r1, [r6]
- eor r0, r0, r4, asr #31
- eor r1, r1, r5, asr #31
- sub r0, r0, r4, asr #31
- sub r1, r1, r5, asr #31
- str r1, [r6]
- CLEAR_FRAME_AND_RETURN
-#endif
-END_COMPILERRT_FUNCTION(__divmodsi4)
diff --git a/contrib/libs/cxxsupp/builtins/arm/divsf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/divsf3vfp.S
deleted file mode 100644
index fdbaebc8837..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/divsf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- divsf3vfp.S - Implement divsf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __divsf3vfp(float a, float b);
-//
-// Divides two single precision floating point numbers using the Darwin
-// calling convention where single arguments are passsed like 32-bit ints.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
- vmov s14, r0 // move first param from r0 into float register
- vmov s15, r1 // move second param from r1 into float register
- vdiv.f32 s13, s14, s15
- vmov r0, s13 // move result back to r0
- bx lr
-END_COMPILERRT_FUNCTION(__divsf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/divsi3.S b/contrib/libs/cxxsupp/builtins/arm/divsi3.S
deleted file mode 100644
index adf8f94fc7b..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/divsi3.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/*===-- divsi3.S - 32-bit signed integer divide ---------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __divsi3 (32-bit signed integer divide) function
- * for the ARM architecture as a wrapper around the unsigned routine.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
-#define ESTABLISH_FRAME \
- push {r4, r7, lr} ;\
- add r7, sp, #4
-#define CLEAR_FRAME_AND_RETURN \
- pop {r4, r7, pc}
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
- .p2align 3
-// Ok, APCS and AAPCS agree on 32 bit args, so it's safe to use the same routine.
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_idiv, __divsi3)
-
-@ int __divsi3(int divident, int divisor)
-@ Calculate and return the quotient of the (signed) division.
-
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__divsi3)
-#else
-DEFINE_COMPILERRT_FUNCTION(__divsi3)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1,r1
- beq LOCAL_LABEL(divzero)
- sdiv r0, r0, r1
- bx lr
-LOCAL_LABEL(divzero):
- mov r0,#0
- bx lr
-#else
-ESTABLISH_FRAME
-// Set aside the sign of the quotient.
- eor r4, r0, r1
-// Take absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
- eor r2, r0, r0, asr #31
- eor r3, r1, r1, asr #31
- sub r0, r2, r0, asr #31
- sub r1, r3, r1, asr #31
-// abs(a) / abs(b)
- bl SYMBOL_NAME(__udivsi3)
-// Apply sign of quotient to result and return.
- eor r0, r0, r4, asr #31
- sub r0, r0, r4, asr #31
- CLEAR_FRAME_AND_RETURN
-#endif
-END_COMPILERRT_FUNCTION(__divsi3)
diff --git a/contrib/libs/cxxsupp/builtins/arm/eqdf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/eqdf2vfp.S
deleted file mode 100644
index 7f2fbc3072d..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/eqdf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- eqdf2vfp.S - Implement eqdf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __eqdf2vfp(double a, double b);
-//
-// Returns one iff a == b and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- moveq r0, #1 // set result register to 1 if equal
- movne r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__eqdf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/eqsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/eqsf2vfp.S
deleted file mode 100644
index a318b336ae9..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/eqsf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- eqsf2vfp.S - Implement eqsf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __eqsf2vfp(float a, float b);
-//
-// Returns one iff a == b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- moveq r0, #1 // set result register to 1 if equal
- movne r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__eqsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/extendsfdf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/extendsfdf2vfp.S
deleted file mode 100644
index b998e589459..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/extendsfdf2vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- extendsfdf2vfp.S - Implement extendsfdf2vfp -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __extendsfdf2vfp(float a);
-//
-// Converts single precision float to double precision result.
-// Uses Darwin calling convention where a single precision parameter is
-// passed in a GPR and a double precision result is returned in R0/R1 pair.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__extendsfdf2vfp)
- vmov s15, r0 // load float register from R0
- vcvt.f64.f32 d7, s15 // convert single to double
- vmov r0, r1, d7 // return result in r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__extendsfdf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/fixdfsivfp.S b/contrib/libs/cxxsupp/builtins/arm/fixdfsivfp.S
deleted file mode 100644
index e3bd8e05e01..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/fixdfsivfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- fixdfsivfp.S - Implement fixdfsivfp -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __fixdfsivfp(double a);
-//
-// Converts double precision float to a 32-bit int rounding towards zero.
-// Uses Darwin calling convention where a double precision parameter is
-// passed in GPR register pair.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__fixdfsivfp)
- vmov d7, r0, r1 // load double register from R0/R1
- vcvt.s32.f64 s15, d7 // convert double to 32-bit int into s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__fixdfsivfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/fixsfsivfp.S b/contrib/libs/cxxsupp/builtins/arm/fixsfsivfp.S
deleted file mode 100644
index 3d0d0f56d23..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/fixsfsivfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- fixsfsivfp.S - Implement fixsfsivfp -----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __fixsfsivfp(float a);
-//
-// Converts single precision float to a 32-bit int rounding towards zero.
-// Uses Darwin calling convention where a single precision parameter is
-// passed in a GPR..
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__fixsfsivfp)
- vmov s15, r0 // load float register from R0
- vcvt.s32.f32 s15, s15 // convert single to 32-bit int into s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__fixsfsivfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/fixunsdfsivfp.S b/contrib/libs/cxxsupp/builtins/arm/fixunsdfsivfp.S
deleted file mode 100644
index 35dda5b9b03..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/fixunsdfsivfp.S
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- fixunsdfsivfp.S - Implement fixunsdfsivfp -------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern unsigned int __fixunsdfsivfp(double a);
-//
-// Converts double precision float to a 32-bit unsigned int rounding towards
-// zero. All negative values become zero.
-// Uses Darwin calling convention where a double precision parameter is
-// passed in GPR register pair.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__fixunsdfsivfp)
- vmov d7, r0, r1 // load double register from R0/R1
- vcvt.u32.f64 s15, d7 // convert double to 32-bit int into s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__fixunsdfsivfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/fixunssfsivfp.S b/contrib/libs/cxxsupp/builtins/arm/fixunssfsivfp.S
deleted file mode 100644
index 5c3a7d926fc..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/fixunssfsivfp.S
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- fixunssfsivfp.S - Implement fixunssfsivfp -------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern unsigned int __fixunssfsivfp(float a);
-//
-// Converts single precision float to a 32-bit unsigned int rounding towards
-// zero. All negative values become zero.
-// Uses Darwin calling convention where a single precision parameter is
-// passed in a GPR..
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__fixunssfsivfp)
- vmov s15, r0 // load float register from R0
- vcvt.u32.f32 s15, s15 // convert single to 32-bit unsigned into s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__fixunssfsivfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/floatsidfvfp.S b/contrib/libs/cxxsupp/builtins/arm/floatsidfvfp.S
deleted file mode 100644
index d69184914cc..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/floatsidfvfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- floatsidfvfp.S - Implement floatsidfvfp ---------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __floatsidfvfp(int a);
-//
-// Converts a 32-bit int to a double precision float.
-// Uses Darwin calling convention where a double precision result is
-// return in GPR register pair.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__floatsidfvfp)
- vmov s15, r0 // move int to float register s15
- vcvt.f64.s32 d7, s15 // convert 32-bit int in s15 to double in d7
- vmov r0, r1, d7 // move d7 to result register pair r0/r1
- bx lr
-END_COMPILERRT_FUNCTION(__floatsidfvfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/floatsisfvfp.S b/contrib/libs/cxxsupp/builtins/arm/floatsisfvfp.S
deleted file mode 100644
index 4a0cb39d0eb..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/floatsisfvfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- floatsisfvfp.S - Implement floatsisfvfp ---------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __floatsisfvfp(int a);
-//
-// Converts single precision float to a 32-bit int rounding towards zero.
-// Uses Darwin calling convention where a single precision result is
-// return in a GPR..
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__floatsisfvfp)
- vmov s15, r0 // move int to float register s15
- vcvt.f32.s32 s15, s15 // convert 32-bit int in s15 to float in s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__floatsisfvfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/floatunssidfvfp.S b/contrib/libs/cxxsupp/builtins/arm/floatunssidfvfp.S
deleted file mode 100644
index d92969ea345..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/floatunssidfvfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- floatunssidfvfp.S - Implement floatunssidfvfp ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __floatunssidfvfp(unsigned int a);
-//
-// Converts a 32-bit int to a double precision float.
-// Uses Darwin calling convention where a double precision result is
-// return in GPR register pair.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
- vmov s15, r0 // move int to float register s15
- vcvt.f64.u32 d7, s15 // convert 32-bit int in s15 to double in d7
- vmov r0, r1, d7 // move d7 to result register pair r0/r1
- bx lr
-END_COMPILERRT_FUNCTION(__floatunssidfvfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/floatunssisfvfp.S b/contrib/libs/cxxsupp/builtins/arm/floatunssisfvfp.S
deleted file mode 100644
index f6aeba56ae1..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/floatunssisfvfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- floatunssisfvfp.S - Implement floatunssisfvfp ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __floatunssisfvfp(unsigned int a);
-//
-// Converts single precision float to a 32-bit int rounding towards zero.
-// Uses Darwin calling convention where a single precision result is
-// return in a GPR..
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
- vmov s15, r0 // move int to float register s15
- vcvt.f32.u32 s15, s15 // convert 32-bit int in s15 to float in s15
- vmov r0, s15 // move s15 to result register
- bx lr
-END_COMPILERRT_FUNCTION(__floatunssisfvfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/gedf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/gedf2vfp.S
deleted file mode 100644
index 9e235270175..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/gedf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- gedf2vfp.S - Implement gedf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __gedf2vfp(double a, double b);
-//
-// Returns one iff a >= b and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movge r0, #1 // set result register to 1 if greater than or equal
- movlt r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__gedf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/gesf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/gesf2vfp.S
deleted file mode 100644
index 0ff60847788..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/gesf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- gesf2vfp.S - Implement gesf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __gesf2vfp(float a, float b);
-//
-// Returns one iff a >= b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movge r0, #1 // set result register to 1 if greater than or equal
- movlt r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__gesf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/gtdf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/gtdf2vfp.S
deleted file mode 100644
index 3dc5d5b5922..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/gtdf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- gtdf2vfp.S - Implement gtdf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __gtdf2vfp(double a, double b);
-//
-// Returns one iff a > b and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movgt r0, #1 // set result register to 1 if equal
- movle r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__gtdf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/gtsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/gtsf2vfp.S
deleted file mode 100644
index ddd843acf59..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/gtsf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- gtsf2vfp.S - Implement gtsf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __gtsf2vfp(float a, float b);
-//
-// Returns one iff a > b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movgt r0, #1 // set result register to 1 if equal
- movle r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__gtsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/ledf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/ledf2vfp.S
deleted file mode 100644
index b06ff6db5a3..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/ledf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- ledf2vfp.S - Implement ledf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __ledf2vfp(double a, double b);
-//
-// Returns one iff a <= b and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movls r0, #1 // set result register to 1 if equal
- movhi r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__ledf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/lesf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/lesf2vfp.S
deleted file mode 100644
index 9b33c0c5369..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/lesf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- lesf2vfp.S - Implement lesf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __lesf2vfp(float a, float b);
-//
-// Returns one iff a <= b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movls r0, #1 // set result register to 1 if equal
- movhi r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__lesf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/ltdf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/ltdf2vfp.S
deleted file mode 100644
index 9f794b026a4..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/ltdf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- ltdf2vfp.S - Implement ltdf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __ltdf2vfp(double a, double b);
-//
-// Returns one iff a < b and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movmi r0, #1 // set result register to 1 if equal
- movpl r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__ltdf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/ltsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/ltsf2vfp.S
deleted file mode 100644
index ba190d9d8dc..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/ltsf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- ltsf2vfp.S - Implement ltsf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __ltsf2vfp(float a, float b);
-//
-// Returns one iff a < b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movmi r0, #1 // set result register to 1 if equal
- movpl r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__ltsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/modsi3.S b/contrib/libs/cxxsupp/builtins/arm/modsi3.S
deleted file mode 100644
index 295a227d862..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/modsi3.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/*===-- modsi3.S - 32-bit signed integer modulus --------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __modsi3 (32-bit signed integer modulus) function
- * for the ARM architecture as a wrapper around the unsigned routine.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
-#define ESTABLISH_FRAME \
- push {r4, r7, lr} ;\
- add r7, sp, #4
-#define CLEAR_FRAME_AND_RETURN \
- pop {r4, r7, pc}
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-@ int __modsi3(int divident, int divisor)
-@ Calculate and return the remainder of the (signed) division.
-
- .p2align 3
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__modsi3)
-#else
-DEFINE_COMPILERRT_FUNCTION(__modsi3)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1, r1
- beq LOCAL_LABEL(divzero)
- sdiv r2, r0, r1
- mls r0, r2, r1, r0
- bx lr
-LOCAL_LABEL(divzero):
- mov r0, #0
- bx lr
-#else
- ESTABLISH_FRAME
- // Set aside the sign of the dividend.
- mov r4, r0
- // Take absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31).
- eor r2, r0, r0, asr #31
- eor r3, r1, r1, asr #31
- sub r0, r2, r0, asr #31
- sub r1, r3, r1, asr #31
- // abs(a) % abs(b)
- bl SYMBOL_NAME(__umodsi3)
- // Apply sign of dividend to result and return.
- eor r0, r0, r4, asr #31
- sub r0, r0, r4, asr #31
- CLEAR_FRAME_AND_RETURN
-#endif
-END_COMPILERRT_FUNCTION(__modsi3)
diff --git a/contrib/libs/cxxsupp/builtins/arm/muldf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/muldf3vfp.S
deleted file mode 100644
index 636cc711ac1..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/muldf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- muldf3vfp.S - Implement muldf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __muldf3vfp(double a, double b);
-//
-// Multiplies two double precision floating point numbers using the Darwin
-// calling convention where double arguments are passsed in GPR pairs
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__muldf3vfp)
- vmov d6, r0, r1 // move first param from r0/r1 pair into d6
- vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vmul.f64 d6, d6, d7
- vmov r0, r1, d6 // move result back to r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__muldf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/mulsf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/mulsf3vfp.S
deleted file mode 100644
index 7f4008266bf..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/mulsf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- mulsf3vfp.S - Implement mulsf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __mulsf3vfp(float a, float b);
-//
-// Multiplies two single precision floating point numbers using the Darwin
-// calling convention where single arguments are passsed like 32-bit ints.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__mulsf3vfp)
- vmov s14, r0 // move first param from r0 into float register
- vmov s15, r1 // move second param from r1 into float register
- vmul.f32 s13, s14, s15
- vmov r0, s13 // move result back to r0
- bx lr
-END_COMPILERRT_FUNCTION(__mulsf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/nedf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/nedf2vfp.S
deleted file mode 100644
index 7ab2f5501ce..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/nedf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- nedf2vfp.S - Implement nedf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __nedf2vfp(double a, double b);
-//
-// Returns zero if a and b are unequal and neither is NaN.
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movne r0, #1 // set result register to 0 if unequal
- moveq r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__nedf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/negdf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/negdf2vfp.S
deleted file mode 100644
index 56d73c67617..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/negdf2vfp.S
+++ /dev/null
@@ -1,23 +0,0 @@
-//===-- negdf2vfp.S - Implement negdf2vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __negdf2vfp(double a, double b);
-//
-// Returns the negation a double precision floating point numbers using the
-// Darwin calling convention where double arguments are passsed in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__negdf2vfp)
- eor r1, r1, #-2147483648 // flip sign bit on double in r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__negdf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/negsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/negsf2vfp.S
deleted file mode 100644
index a6e32e1ff89..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/negsf2vfp.S
+++ /dev/null
@@ -1,23 +0,0 @@
-//===-- negsf2vfp.S - Implement negsf2vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __negsf2vfp(float a);
-//
-// Returns the negation of a single precision floating point numbers using the
-// Darwin calling convention where single arguments are passsed like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__negsf2vfp)
- eor r0, r0, #-2147483648 // flip sign bit on float in r0
- bx lr
-END_COMPILERRT_FUNCTION(__negsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/nesf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/nesf2vfp.S
deleted file mode 100644
index 9fe8ecdefb3..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/nesf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- nesf2vfp.S - Implement nesf2vfp -----------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __nesf2vfp(float a, float b);
-//
-// Returns one iff a != b and neither is NaN.
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movne r0, #1 // set result register to 1 if unequal
- moveq r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__nesf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/restore_vfp_d8_d15_regs.S b/contrib/libs/cxxsupp/builtins/arm/restore_vfp_d8_d15_regs.S
deleted file mode 100644
index 0f6ea513616..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/restore_vfp_d8_d15_regs.S
+++ /dev/null
@@ -1,33 +0,0 @@
-//===-- save_restore_regs.S - Implement save/restore* ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling C++ functions that need to handle thrown exceptions the
-// compiler is required to save all registers and call __Unwind_SjLj_Register
-// in the function prolog. But when compiling for thumb1, there are
-// no instructions to access the floating point registers, so the
-// compiler needs to add a call to the helper function _save_vfp_d8_d15_regs
-// written in ARM to save the float registers. In the epilog, the compiler
-// must also add a call to __restore_vfp_d8_d15_regs to restore those registers.
-//
-
- .text
- .syntax unified
-
-//
-// Restore registers d8-d15 from stack
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__restore_vfp_d8_d15_regs)
- vldmia sp!, {d8-d15} // pop registers d8-d15 off stack
- bx lr // return to prolog
-END_COMPILERRT_FUNCTION(__restore_vfp_d8_d15_regs)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/save_vfp_d8_d15_regs.S b/contrib/libs/cxxsupp/builtins/arm/save_vfp_d8_d15_regs.S
deleted file mode 100644
index f1d90e75808..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/save_vfp_d8_d15_regs.S
+++ /dev/null
@@ -1,33 +0,0 @@
-//===-- save_restore_regs.S - Implement save/restore* ---------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling C++ functions that need to handle thrown exceptions the
-// compiler is required to save all registers and call __Unwind_SjLj_Register
-// in the function prolog. But when compiling for thumb1, there are
-// no instructions to access the floating point registers, so the
-// compiler needs to add a call to the helper function _save_vfp_d8_d15_regs
-// written in ARM to save the float registers. In the epilog, the compiler
-// must also add a call to __restore_vfp_d8_d15_regs to restore those registers.
-//
-
- .text
- .syntax unified
-
-//
-// Save registers d8-d15 onto stack
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__save_vfp_d8_d15_regs)
- vstmdb sp!, {d8-d15} // push registers d8-d15 onto stack
- bx lr // return to prolog
-END_COMPILERRT_FUNCTION(__save_vfp_d8_d15_regs)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/softfloat-alias.list b/contrib/libs/cxxsupp/builtins/arm/softfloat-alias.list
deleted file mode 100644
index cc6a4b3cdd2..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/softfloat-alias.list
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# These are soft float functions which can be
-# aliased to the *vfp functions on arm processors
-# that support floating point instructions.
-#
-___adddf3vfp ___adddf3
-___addsf3vfp ___addsf3
-___divdf3vfp ___divdf3
-___divsf3vfp ___divsf3
-___extendsfdf2vfp ___extendsfdf2
-___fixdfsivfp ___fixdfsi
-___fixsfsivfp ___fixsfsi
-___floatsidfvfp ___floatsidf
-___floatsisfvfp ___floatsisf
-___muldf3vfp ___muldf3
-___mulsf3vfp ___mulsf3
-___subdf3vfp ___subdf3
-___subsf3vfp ___subsf3
-___truncdfsf2vfp ___truncdfsf2
-___floatunssidfvfp ___floatunsidf
-___floatunssisfvfp ___floatunsisf
diff --git a/contrib/libs/cxxsupp/builtins/arm/subdf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/subdf3vfp.S
deleted file mode 100644
index 5f3c0f70dbc..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/subdf3vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- subdf3vfp.S - Implement subdf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern double __subdf3vfp(double a, double b);
-//
-// Returns difference between two double precision floating point numbers using
-// the Darwin calling convention where double arguments are passsed in GPR pairs
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__subdf3vfp)
- vmov d6, r0, r1 // move first param from r0/r1 pair into d6
- vmov d7, r2, r3 // move second param from r2/r3 pair into d7
- vsub.f64 d6, d6, d7
- vmov r0, r1, d6 // move result back to r0/r1 pair
- bx lr
-END_COMPILERRT_FUNCTION(__subdf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/subsf3vfp.S b/contrib/libs/cxxsupp/builtins/arm/subsf3vfp.S
deleted file mode 100644
index d6e06df5192..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/subsf3vfp.S
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- subsf3vfp.S - Implement subsf3vfp ---------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __subsf3vfp(float a, float b);
-//
-// Returns the difference between two single precision floating point numbers
-// using the Darwin calling convention where single arguments are passsed
-// like 32-bit ints.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__subsf3vfp)
- vmov s14, r0 // move first param from r0 into float register
- vmov s15, r1 // move second param from r1 into float register
- vsub.f32 s14, s14, s15
- vmov r0, s14 // move result back to r0
- bx lr
-END_COMPILERRT_FUNCTION(__subsf3vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/switch16.S b/contrib/libs/cxxsupp/builtins/arm/switch16.S
deleted file mode 100644
index 3c3a6b10612..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/switch16.S
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- switch.S - Implement switch* --------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling switch statements in thumb mode, the compiler
-// can use these __switch* helper functions The compiler emits a blx to
-// the __switch* function followed by a table of displacements for each
-// case statement. On entry, R0 is the index into the table. The __switch*
-// function uses the return address in lr to find the start of the table.
-// The first entry in the table is the count of the entries in the table.
-// It then uses R0 to index into the table and get the displacement of the
-// address to jump to. If R0 is greater than the size of the table, it jumps
-// to the last entry in the table. Each displacement in the table is actually
-// the distance from lr to the label, thus making the tables PIC.
-
-
- .text
- .syntax unified
-
-//
-// The table contains signed 2-byte sized elements which are 1/2 the distance
-// from lr to the target label.
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch16)
- ldrh ip, [lr, #-1] // get first 16-bit word in table
- cmp r0, ip // compare with index
- add r0, lr, r0, lsl #1 // compute address of element in table
- add ip, lr, ip, lsl #1 // compute address of last element in table
- ite lo
- ldrshlo r0, [r0, #1] // load 16-bit element if r0 is in range
- ldrshhs r0, [ip, #1] // load 16-bit element if r0 out of range
- add ip, lr, r0, lsl #1 // compute label = lr + element*2
- bx ip // jump to computed label
-END_COMPILERRT_FUNCTION(__switch16)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/switch32.S b/contrib/libs/cxxsupp/builtins/arm/switch32.S
deleted file mode 100644
index b38cd2b764a..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/switch32.S
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- switch.S - Implement switch* --------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling switch statements in thumb mode, the compiler
-// can use these __switch* helper functions The compiler emits a blx to
-// the __switch* function followed by a table of displacements for each
-// case statement. On entry, R0 is the index into the table. The __switch*
-// function uses the return address in lr to find the start of the table.
-// The first entry in the table is the count of the entries in the table.
-// It then uses R0 to index into the table and get the displacement of the
-// address to jump to. If R0 is greater than the size of the table, it jumps
-// to the last entry in the table. Each displacement in the table is actually
-// the distance from lr to the label, thus making the tables PIC.
-
-
- .text
- .syntax unified
-
-//
-// The table contains signed 4-byte sized elements which are the distance
-// from lr to the target label.
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch32)
- ldr ip, [lr, #-1] // get first 32-bit word in table
- cmp r0, ip // compare with index
- add r0, lr, r0, lsl #2 // compute address of element in table
- add ip, lr, ip, lsl #2 // compute address of last element in table
- ite lo
- ldrlo r0, [r0, #3] // load 32-bit element if r0 is in range
- ldrhs r0, [ip, #3] // load 32-bit element if r0 out of range
- add ip, lr, r0 // compute label = lr + element
- bx ip // jump to computed label
-END_COMPILERRT_FUNCTION(__switch32)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/switch8.S b/contrib/libs/cxxsupp/builtins/arm/switch8.S
deleted file mode 100644
index d7c20423def..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/switch8.S
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- switch.S - Implement switch* --------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling switch statements in thumb mode, the compiler
-// can use these __switch* helper functions The compiler emits a blx to
-// the __switch* function followed by a table of displacements for each
-// case statement. On entry, R0 is the index into the table. The __switch*
-// function uses the return address in lr to find the start of the table.
-// The first entry in the table is the count of the entries in the table.
-// It then uses R0 to index into the table and get the displacement of the
-// address to jump to. If R0 is greater than the size of the table, it jumps
-// to the last entry in the table. Each displacement in the table is actually
-// the distance from lr to the label, thus making the tables PIC.
-
-
- .text
- .syntax unified
-
-//
-// The table contains signed byte sized elements which are 1/2 the distance
-// from lr to the target label.
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switch8)
- ldrb ip, [lr, #-1] // get first byte in table
- cmp r0, ip // signed compare with index
- ite lo
- ldrsblo r0, [lr, r0] // get indexed byte out of table
- ldrsbhs r0, [lr, ip] // if out of range, use last entry in table
- add ip, lr, r0, lsl #1 // compute label = lr + element*2
- bx ip // jump to computed label
-END_COMPILERRT_FUNCTION(__switch8)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/switchu8.S b/contrib/libs/cxxsupp/builtins/arm/switchu8.S
deleted file mode 100644
index 1844f11c604..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/switchu8.S
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- switch.S - Implement switch* --------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling switch statements in thumb mode, the compiler
-// can use these __switch* helper functions The compiler emits a blx to
-// the __switch* function followed by a table of displacements for each
-// case statement. On entry, R0 is the index into the table. The __switch*
-// function uses the return address in lr to find the start of the table.
-// The first entry in the table is the count of the entries in the table.
-// It then uses R0 to index into the table and get the displacement of the
-// address to jump to. If R0 is greater than the size of the table, it jumps
-// to the last entry in the table. Each displacement in the table is actually
-// the distance from lr to the label, thus making the tables PIC.
-
-
- .text
- .syntax unified
-
-//
-// The table contains unsigned byte sized elements which are 1/2 the distance
-// from lr to the target label.
-//
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__switchu8)
- ldrb ip, [lr, #-1] // get first byte in table
- cmp r0, ip // compare with index
- ite lo
- ldrblo r0, [lr, r0] // get indexed byte out of table
- ldrbhs r0, [lr, ip] // if out of range, use last entry in table
- add ip, lr, r0, lsl #1 // compute label = lr + element*2
- bx ip // jump to computed label
-END_COMPILERRT_FUNCTION(__switchu8)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync-ops.h b/contrib/libs/cxxsupp/builtins/arm/sync-ops.h
deleted file mode 100644
index ee02c30c6ea..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync-ops.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*===-- sync-ops.h - --===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements outline macros for the __sync_fetch_and_*
- * operations. Different instantiations will generate appropriate assembly for
- * ARM and Thumb-2 versions of the functions.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
-#define SYNC_OP_4(op) \
- .p2align 2 ; \
- .thumb ; \
- .syntax unified ; \
- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_ ## op) \
- dmb ; \
- mov r12, r0 ; \
- LOCAL_LABEL(tryatomic_ ## op): \
- ldrex r0, [r12] ; \
- op(r2, r0, r1) ; \
- strex r3, r2, [r12] ; \
- cmp r3, #0 ; \
- bne LOCAL_LABEL(tryatomic_ ## op) ; \
- dmb ; \
- bx lr
-
-#define SYNC_OP_8(op) \
- .p2align 2 ; \
- .thumb ; \
- .syntax unified ; \
- DEFINE_COMPILERRT_THUMB_FUNCTION(__sync_fetch_and_ ## op) \
- push {r4, r5, r6, lr} ; \
- dmb ; \
- mov r12, r0 ; \
- LOCAL_LABEL(tryatomic_ ## op): \
- ldrexd r0, r1, [r12] ; \
- op(r4, r5, r0, r1, r2, r3) ; \
- strexd r6, r4, r5, [r12] ; \
- cmp r6, #0 ; \
- bne LOCAL_LABEL(tryatomic_ ## op) ; \
- dmb ; \
- pop {r4, r5, r6, pc}
-
-#define MINMAX_4(rD, rN, rM, cmp_kind) \
- cmp rN, rM ; \
- mov rD, rM ; \
- it cmp_kind ; \
- mov##cmp_kind rD, rN
-
-#define MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, cmp_kind) \
- cmp rN_LO, rM_LO ; \
- sbcs rN_HI, rM_HI ; \
- mov rD_LO, rM_LO ; \
- mov rD_HI, rM_HI ; \
- itt cmp_kind ; \
- mov##cmp_kind rD_LO, rN_LO ; \
- mov##cmp_kind rD_HI, rN_HI
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_4.S
deleted file mode 100644
index 54c33e2d26b..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_4.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_add_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_add_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-/* "adds" is 2 bytes shorter than "add". */
-#define add_4(rD, rN, rM) add rD, rN, rM
-
-SYNC_OP_4(add_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_8.S
deleted file mode 100644
index 5724bb148ba..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_add_8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/*===-- sync_fetch_and_add_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_add_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define add_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- adds rD_LO, rN_LO, rM_LO ; \
- adc rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(add_8)
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_4.S
deleted file mode 100644
index e2b77a1a87d..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_4.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/*===-- sync_fetch_and_and_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_and_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define and_4(rD, rN, rM) and rD, rN, rM
-
-SYNC_OP_4(and_4)
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_8.S
deleted file mode 100644
index a74163a8600..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_and_8.S
+++ /dev/null
@@ -1,23 +0,0 @@
-/*===-- sync_fetch_and_and_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_and_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define and_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- and rD_LO, rN_LO, rM_LO ; \
- and rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(and_8)
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_4.S
deleted file mode 100644
index 01e4f444c2f..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_max_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_max_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define max_4(rD, rN, rM) MINMAX_4(rD, rN, rM, gt)
-
-SYNC_OP_4(max_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_8.S
deleted file mode 100644
index 1eef2b22366..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_max_8.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_max_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_max_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define max_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, gt)
-
-SYNC_OP_8(max_8)
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_4.S
deleted file mode 100644
index 015626b63da..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_min_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_min_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define min_4(rD, rN, rM) MINMAX_4(rD, rN, rM, lt)
-
-SYNC_OP_4(min_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_8.S
deleted file mode 100644
index ad5cce07544..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_min_8.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_min_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_min_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define min_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lt)
-
-SYNC_OP_8(min_8)
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_4.S
deleted file mode 100644
index b32a314b397..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_nand_4.S - -----------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_nand_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define nand_4(rD, rN, rM) bic rD, rN, rM
-
-SYNC_OP_4(nand_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_8.S
deleted file mode 100644
index a2c17c09c08..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_nand_8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/*===-- sync_fetch_and_nand_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_nand_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define nand_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- bic rD_LO, rN_LO, rM_LO ; \
- bic rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(nand_8)
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_4.S
deleted file mode 100644
index f2e08576aaa..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_or_4.S - -------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_or_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define or_4(rD, rN, rM) orr rD, rN, rM
-
-SYNC_OP_4(or_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_8.S
deleted file mode 100644
index 87b940bf620..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_or_8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/*===-- sync_fetch_and_or_8.S - -------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_or_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define or_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- orr rD_LO, rN_LO, rM_LO ; \
- orr rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(or_8)
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_4.S
deleted file mode 100644
index 460b2bc1ed6..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_4.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_sub_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_sub_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-/* "subs" is 2 bytes shorter than "sub". */
-#define sub_4(rD, rN, rM) sub rD, rN, rM
-
-SYNC_OP_4(sub_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_8.S
deleted file mode 100644
index a8035a27685..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_sub_8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/*===-- sync_fetch_and_sub_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_sub_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define sub_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- subs rD_LO, rN_LO, rM_LO ; \
- sbc rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(sub_8)
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_4.S
deleted file mode 100644
index c5915303193..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_umax_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_umax_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define umax_4(rD, rN, rM) MINMAX_4(rD, rN, rM, hi)
-
-SYNC_OP_4(umax_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_8.S
deleted file mode 100644
index d9b7965e52b..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umax_8.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_umax_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_umax_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define umax_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, hi)
-
-SYNC_OP_8(umax_8)
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_4.S
deleted file mode 100644
index 9f3896fca80..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_umin_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_umin_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define umin_4(rD, rN, rM) MINMAX_4(rD, rN, rM, lo)
-
-SYNC_OP_4(umin_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_8.S
deleted file mode 100644
index 7bf5e235653..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_umin_8.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*===-- sync_fetch_and_umin_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_umin_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define umin_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) MINMAX_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI, lo)
-
-SYNC_OP_8(umin_8)
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_4.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_4.S
deleted file mode 100644
index 7e7c90c9627..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_4.S
+++ /dev/null
@@ -1,20 +0,0 @@
-/*===-- sync_fetch_and_xor_4.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_xor_4 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#define xor_4(rD, rN, rM) eor rD, rN, rM
-
-SYNC_OP_4(xor_4)
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_8.S b/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_8.S
deleted file mode 100644
index ea9aa6d4b0e..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_fetch_and_xor_8.S
+++ /dev/null
@@ -1,24 +0,0 @@
-/*===-- sync_fetch_and_xor_8.S - ------------------------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __sync_fetch_and_xor_8 function for the ARM
- * architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "sync-ops.h"
-
-#if __ARM_ARCH_PROFILE != 'M'
-#define xor_8(rD_LO, rD_HI, rN_LO, rN_HI, rM_LO, rM_HI) \
- eor rD_LO, rN_LO, rM_LO ; \
- eor rD_HI, rN_HI, rM_HI
-
-SYNC_OP_8(xor_8)
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/arm/sync_synchronize.S b/contrib/libs/cxxsupp/builtins/arm/sync_synchronize.S
deleted file mode 100644
index 178f24534c7..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/sync_synchronize.S
+++ /dev/null
@@ -1,35 +0,0 @@
-//===-- sync_synchronize - Implement memory barrier * ----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// When compiling a use of the gcc built-in __sync_synchronize() in thumb1 mode
-// the compiler may emit a call to __sync_synchronize.
-// On Darwin the implementation jumps to an OS supplied function named
-// OSMemoryBarrier
-//
-
- .text
- .syntax unified
-
-#if __APPLE__
-
- .p2align 2
-DEFINE_COMPILERRT_PRIVATE_FUNCTION(__sync_synchronize)
- stmfd sp!, {r7, lr}
- add r7, sp, #0
- bl _OSMemoryBarrier
- ldmfd sp!, {r7, pc}
-END_COMPILERRT_FUNCTION(__sync_synchronize)
-
- // tell linker it can break up file at label boundaries
- .subsections_via_symbols
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/arm/truncdfsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/truncdfsf2vfp.S
deleted file mode 100644
index fa4362c45e7..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/truncdfsf2vfp.S
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- truncdfsf2vfp.S - Implement truncdfsf2vfp -------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern float __truncdfsf2vfp(double a);
-//
-// Converts double precision float to signle precision result.
-// Uses Darwin calling convention where a double precision parameter is
-// passed in a R0/R1 pair and a signle precision result is returned in R0.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__truncdfsf2vfp)
- vmov d7, r0, r1 // load double from r0/r1 pair
- vcvt.f32.f64 s15, d7 // convert double to single (trucate precision)
- vmov r0, s15 // return result in r0
- bx lr
-END_COMPILERRT_FUNCTION(__truncdfsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/udivmodsi4.S b/contrib/libs/cxxsupp/builtins/arm/udivmodsi4.S
deleted file mode 100644
index 85b84936c4b..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/udivmodsi4.S
+++ /dev/null
@@ -1,184 +0,0 @@
-/*===-- udivmodsi4.S - 32-bit unsigned integer divide and modulus ---------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __udivmodsi4 (32-bit unsigned integer divide and
- * modulus) function for the ARM 32-bit architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
- .syntax unified
- .text
-
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-@ unsigned int __udivmodsi4(unsigned int divident, unsigned int divisor,
-@ unsigned int *remainder)
-@ Calculate the quotient and remainder of the (unsigned) division. The return
-@ value is the quotient, the remainder is placed in the variable.
-
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__udivmodsi4)
-#else
-DEFINE_COMPILERRT_FUNCTION(__udivmodsi4)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1, r1
- beq LOCAL_LABEL(divby0)
- mov r3, r0
- udiv r0, r3, r1
- mls r1, r0, r1, r3
- str r1, [r2]
- bx lr
-#else
- cmp r1, #1
- bcc LOCAL_LABEL(divby0)
- beq LOCAL_LABEL(divby1)
- cmp r0, r1
- bcc LOCAL_LABEL(quotient0)
- /*
- * Implement division using binary long division algorithm.
- *
- * r0 is the numerator, r1 the denominator.
- *
- * The code before JMP computes the correct shift I, so that
- * r0 and (r1 << I) have the highest bit set in the same position.
- * At the time of JMP, ip := .Ldiv0block - 12 * I.
- * This depends on the fixed instruction size of block.
- * For ARM mode, this is 12 Bytes, for THUMB mode 14 Bytes.
- *
- * block(shift) implements the test-and-update-quotient core.
- * It assumes (r0 << shift) can be computed without overflow and
- * that (r0 << shift) < 2 * r1. The quotient is stored in r3.
- */
-
-# ifdef __ARM_FEATURE_CLZ
- clz ip, r0
- clz r3, r1
- /* r0 >= r1 implies clz(r0) <= clz(r1), so ip <= r3. */
- sub r3, r3, ip
-# if __ARM_ARCH_ISA_THUMB == 2
- adr ip, LOCAL_LABEL(div0block) + 1
- sub ip, ip, r3, lsl #1
-# else
- adr ip, LOCAL_LABEL(div0block)
-# endif
- sub ip, ip, r3, lsl #2
- sub ip, ip, r3, lsl #3
- mov r3, #0
- bx ip
-# else
-# if __ARM_ARCH_ISA_THUMB == 2
-# error THUMB mode requires CLZ or UDIV
-# endif
- str r4, [sp, #-8]!
-
- mov r4, r0
- adr ip, LOCAL_LABEL(div0block)
-
- lsr r3, r4, #16
- cmp r3, r1
- movhs r4, r3
- subhs ip, ip, #(16 * 12)
-
- lsr r3, r4, #8
- cmp r3, r1
- movhs r4, r3
- subhs ip, ip, #(8 * 12)
-
- lsr r3, r4, #4
- cmp r3, r1
- movhs r4, r3
- subhs ip, #(4 * 12)
-
- lsr r3, r4, #2
- cmp r3, r1
- movhs r4, r3
- subhs ip, ip, #(2 * 12)
-
- /* Last block, no need to update r3 or r4. */
- cmp r1, r4, lsr #1
- subls ip, ip, #(1 * 12)
-
- ldr r4, [sp], #8 /* restore r4, we are done with it. */
- mov r3, #0
-
- JMP(ip)
-# endif
-
-#define IMM #
-
-#define block(shift) \
- cmp r0, r1, lsl IMM shift; \
- ITT(hs); \
- WIDE(addhs) r3, r3, IMM (1 << shift); \
- WIDE(subhs) r0, r0, r1, lsl IMM shift
-
- block(31)
- block(30)
- block(29)
- block(28)
- block(27)
- block(26)
- block(25)
- block(24)
- block(23)
- block(22)
- block(21)
- block(20)
- block(19)
- block(18)
- block(17)
- block(16)
- block(15)
- block(14)
- block(13)
- block(12)
- block(11)
- block(10)
- block(9)
- block(8)
- block(7)
- block(6)
- block(5)
- block(4)
- block(3)
- block(2)
- block(1)
-LOCAL_LABEL(div0block):
- block(0)
-
- str r0, [r2]
- mov r0, r3
- JMP(lr)
-
-LOCAL_LABEL(quotient0):
- str r0, [r2]
- mov r0, #0
- JMP(lr)
-
-LOCAL_LABEL(divby1):
- mov r3, #0
- str r3, [r2]
- JMP(lr)
-#endif /* __ARM_ARCH_EXT_IDIV__ */
-
-LOCAL_LABEL(divby0):
- mov r0, #0
-#ifdef __ARM_EABI__
- b __aeabi_idiv0
-#else
- JMP(lr)
-#endif
-
-END_COMPILERRT_FUNCTION(__udivmodsi4)
diff --git a/contrib/libs/cxxsupp/builtins/arm/udivsi3.S b/contrib/libs/cxxsupp/builtins/arm/udivsi3.S
deleted file mode 100644
index 165b2b58acb..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/udivsi3.S
+++ /dev/null
@@ -1,170 +0,0 @@
-/*===-- udivsi3.S - 32-bit unsigned integer divide ------------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __udivsi3 (32-bit unsigned integer divide)
- * function for the ARM 32-bit architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
- .syntax unified
- .text
-
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
- .p2align 2
-DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_uidiv, __udivsi3)
-
-@ unsigned int __udivsi3(unsigned int divident, unsigned int divisor)
-@ Calculate and return the quotient of the (unsigned) division.
-
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__udivsi3)
-#else
-DEFINE_COMPILERRT_FUNCTION(__udivsi3)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1, r1
- beq LOCAL_LABEL(divby0)
- udiv r0, r0, r1
- bx lr
-#else
- cmp r1, #1
- bcc LOCAL_LABEL(divby0)
- IT(eq)
- JMPc(lr, eq)
- cmp r0, r1
- ITT(cc)
- movcc r0, #0
- JMPc(lr, cc)
- /*
- * Implement division using binary long division algorithm.
- *
- * r0 is the numerator, r1 the denominator.
- *
- * The code before JMP computes the correct shift I, so that
- * r0 and (r1 << I) have the highest bit set in the same position.
- * At the time of JMP, ip := .Ldiv0block - 12 * I.
- * This depends on the fixed instruction size of block.
- * For ARM mode, this is 12 Bytes, for THUMB mode 14 Bytes.
- *
- * block(shift) implements the test-and-update-quotient core.
- * It assumes (r0 << shift) can be computed without overflow and
- * that (r0 << shift) < 2 * r1. The quotient is stored in r3.
- */
-
-# ifdef __ARM_FEATURE_CLZ
- clz ip, r0
- clz r3, r1
- /* r0 >= r1 implies clz(r0) <= clz(r1), so ip <= r3. */
- sub r3, r3, ip
-# if __ARM_ARCH_ISA_THUMB == 2
- adr ip, LOCAL_LABEL(div0block) + 1
- sub ip, ip, r3, lsl #1
-# else
- adr ip, LOCAL_LABEL(div0block)
-# endif
- sub ip, ip, r3, lsl #2
- sub ip, ip, r3, lsl #3
- mov r3, #0
- bx ip
-# else
-# if __ARM_ARCH_ISA_THUMB == 2
-# error THUMB mode requires CLZ or UDIV
-# endif
- mov r2, r0
- adr ip, LOCAL_LABEL(div0block)
-
- lsr r3, r2, #16
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(16 * 12)
-
- lsr r3, r2, #8
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(8 * 12)
-
- lsr r3, r2, #4
- cmp r3, r1
- movhs r2, r3
- subhs ip, #(4 * 12)
-
- lsr r3, r2, #2
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(2 * 12)
-
- /* Last block, no need to update r2 or r3. */
- cmp r1, r2, lsr #1
- subls ip, ip, #(1 * 12)
-
- mov r3, #0
-
- JMP(ip)
-# endif
-
-#define IMM #
-
-#define block(shift) \
- cmp r0, r1, lsl IMM shift; \
- ITT(hs); \
- WIDE(addhs) r3, r3, IMM (1 << shift); \
- WIDE(subhs) r0, r0, r1, lsl IMM shift
-
- block(31)
- block(30)
- block(29)
- block(28)
- block(27)
- block(26)
- block(25)
- block(24)
- block(23)
- block(22)
- block(21)
- block(20)
- block(19)
- block(18)
- block(17)
- block(16)
- block(15)
- block(14)
- block(13)
- block(12)
- block(11)
- block(10)
- block(9)
- block(8)
- block(7)
- block(6)
- block(5)
- block(4)
- block(3)
- block(2)
- block(1)
-LOCAL_LABEL(div0block):
- block(0)
-
- mov r0, r3
- JMP(lr)
-#endif /* __ARM_ARCH_EXT_IDIV__ */
-
-LOCAL_LABEL(divby0):
- mov r0, #0
-#ifdef __ARM_EABI__
- b __aeabi_idiv0
-#else
- JMP(lr)
-#endif
-
-END_COMPILERRT_FUNCTION(__udivsi3)
diff --git a/contrib/libs/cxxsupp/builtins/arm/umodsi3.S b/contrib/libs/cxxsupp/builtins/arm/umodsi3.S
deleted file mode 100644
index 9e7a148ce46..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/umodsi3.S
+++ /dev/null
@@ -1,161 +0,0 @@
-/*===-- umodsi3.S - 32-bit unsigned integer modulus -----------------------===//
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===//
- *
- * This file implements the __umodsi3 (32-bit unsigned integer modulus)
- * function for the ARM 32-bit architecture.
- *
- *===----------------------------------------------------------------------===*/
-
-#include "../assembly.h"
-
- .syntax unified
- .text
-#if __ARM_ARCH_ISA_THUMB == 2
- .thumb
-#endif
-
-@ unsigned int __umodsi3(unsigned int divident, unsigned int divisor)
-@ Calculate and return the remainder of the (unsigned) division.
-
- .p2align 2
-#if __ARM_ARCH_ISA_THUMB == 2
-DEFINE_COMPILERRT_THUMB_FUNCTION(__umodsi3)
-#else
-DEFINE_COMPILERRT_FUNCTION(__umodsi3)
-#endif
-#if __ARM_ARCH_EXT_IDIV__
- tst r1, r1
- beq LOCAL_LABEL(divby0)
- udiv r2, r0, r1
- mls r0, r2, r1, r0
- bx lr
-#else
- cmp r1, #1
- bcc LOCAL_LABEL(divby0)
- ITT(eq)
- moveq r0, #0
- JMPc(lr, eq)
- cmp r0, r1
- IT(cc)
- JMPc(lr, cc)
- /*
- * Implement division using binary long division algorithm.
- *
- * r0 is the numerator, r1 the denominator.
- *
- * The code before JMP computes the correct shift I, so that
- * r0 and (r1 << I) have the highest bit set in the same position.
- * At the time of JMP, ip := .Ldiv0block - 8 * I.
- * This depends on the fixed instruction size of block.
- * For ARM mode, this is 8 Bytes, for THUMB mode 10 Bytes.
- *
- * block(shift) implements the test-and-update-quotient core.
- * It assumes (r0 << shift) can be computed without overflow and
- * that (r0 << shift) < 2 * r1. The quotient is stored in r3.
- */
-
-# ifdef __ARM_FEATURE_CLZ
- clz ip, r0
- clz r3, r1
- /* r0 >= r1 implies clz(r0) <= clz(r1), so ip <= r3. */
- sub r3, r3, ip
-# if __ARM_ARCH_ISA_THUMB == 2
- adr ip, LOCAL_LABEL(div0block) + 1
- sub ip, ip, r3, lsl #1
-# else
- adr ip, LOCAL_LABEL(div0block)
-# endif
- sub ip, ip, r3, lsl #3
- bx ip
-# else
-# if __ARM_ARCH_ISA_THUMB == 2
-# error THUMB mode requires CLZ or UDIV
-# endif
- mov r2, r0
- adr ip, LOCAL_LABEL(div0block)
-
- lsr r3, r2, #16
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(16 * 8)
-
- lsr r3, r2, #8
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(8 * 8)
-
- lsr r3, r2, #4
- cmp r3, r1
- movhs r2, r3
- subhs ip, #(4 * 8)
-
- lsr r3, r2, #2
- cmp r3, r1
- movhs r2, r3
- subhs ip, ip, #(2 * 8)
-
- /* Last block, no need to update r2 or r3. */
- cmp r1, r2, lsr #1
- subls ip, ip, #(1 * 8)
-
- JMP(ip)
-# endif
-
-#define IMM #
-
-#define block(shift) \
- cmp r0, r1, lsl IMM shift; \
- IT(hs); \
- WIDE(subhs) r0, r0, r1, lsl IMM shift
-
- block(31)
- block(30)
- block(29)
- block(28)
- block(27)
- block(26)
- block(25)
- block(24)
- block(23)
- block(22)
- block(21)
- block(20)
- block(19)
- block(18)
- block(17)
- block(16)
- block(15)
- block(14)
- block(13)
- block(12)
- block(11)
- block(10)
- block(9)
- block(8)
- block(7)
- block(6)
- block(5)
- block(4)
- block(3)
- block(2)
- block(1)
-LOCAL_LABEL(div0block):
- block(0)
- JMP(lr)
-#endif /* __ARM_ARCH_EXT_IDIV__ */
-
-LOCAL_LABEL(divby0):
- mov r0, #0
-#ifdef __ARM_EABI__
- b __aeabi_idiv0
-#else
- JMP(lr)
-#endif
-
-END_COMPILERRT_FUNCTION(__umodsi3)
diff --git a/contrib/libs/cxxsupp/builtins/arm/unorddf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/unorddf2vfp.S
deleted file mode 100644
index c4bea2d5eeb..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/unorddf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- unorddf2vfp.S - Implement unorddf2vfp ------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __unorddf2vfp(double a, double b);
-//
-// Returns one iff a or b is NaN
-// Uses Darwin calling convention where double precision arguments are passsed
-// like in GPR pairs.
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp)
- vmov d6, r0, r1 // load r0/r1 pair in double register
- vmov d7, r2, r3 // load r2/r3 pair in double register
- vcmp.f64 d6, d7
- vmrs apsr_nzcv, fpscr
- movvs r0, #1 // set result register to 1 if "overflow" (any NaNs)
- movvc r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__unorddf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm/unordsf2vfp.S b/contrib/libs/cxxsupp/builtins/arm/unordsf2vfp.S
deleted file mode 100644
index 886e9656810..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm/unordsf2vfp.S
+++ /dev/null
@@ -1,29 +0,0 @@
-//===-- unordsf2vfp.S - Implement unordsf2vfp -----------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// extern int __unordsf2vfp(float a, float b);
-//
-// Returns one iff a or b is NaN
-// Uses Darwin calling convention where single precision arguments are passsed
-// like 32-bit ints
-//
- .syntax unified
- .p2align 2
-DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp)
- vmov s14, r0 // move from GPR 0 to float register
- vmov s15, r1 // move from GPR 1 to float register
- vcmp.f32 s14, s15
- vmrs apsr_nzcv, fpscr
- movvs r0, #1 // set result register to 1 if "overflow" (any NaNs)
- movvc r0, #0
- bx lr
-END_COMPILERRT_FUNCTION(__unordsf2vfp)
diff --git a/contrib/libs/cxxsupp/builtins/arm64/Makefile.mk b/contrib/libs/cxxsupp/builtins/arm64/Makefile.mk
deleted file mode 100644
index 7f7e3866130..00000000000
--- a/contrib/libs/cxxsupp/builtins/arm64/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/arm64/Makefile.mk -----------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := arm64
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/armv6m/Makefile.mk b/contrib/libs/cxxsupp/builtins/armv6m/Makefile.mk
deleted file mode 100644
index f3c1807f01b..00000000000
--- a/contrib/libs/cxxsupp/builtins/armv6m/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/arm/Makefile.mk -------------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := armv6m
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/ashldi3.c b/contrib/libs/cxxsupp/builtins/ashldi3.c
deleted file mode 100644
index eb4698ac517..00000000000
--- a/contrib/libs/cxxsupp/builtins/ashldi3.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ====-- ashldi3.c - Implement __ashldi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ashldi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a << b */
-
-/* Precondition: 0 <= b < bits_in_dword */
-
-ARM_EABI_FNALIAS(llsl, ashldi3)
-
-COMPILER_RT_ABI di_int
-__ashldi3(di_int a, si_int b)
-{
- const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
- dwords input;
- dwords result;
- input.all = a;
- if (b & bits_in_word) /* bits_in_word <= b < bits_in_dword */
- {
- result.s.low = 0;
- result.s.high = input.s.low << (b - bits_in_word);
- }
- else /* 0 <= b < bits_in_word */
- {
- if (b == 0)
- return a;
- result.s.low = input.s.low << b;
- result.s.high = (input.s.high << b) | (input.s.low >> (bits_in_word - b));
- }
- return result.all;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ashrdi3.c b/contrib/libs/cxxsupp/builtins/ashrdi3.c
deleted file mode 100644
index 14c878bb779..00000000000
--- a/contrib/libs/cxxsupp/builtins/ashrdi3.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*===-- ashrdi3.c - Implement __ashrdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ashrdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: arithmetic a >> b */
-
-/* Precondition: 0 <= b < bits_in_dword */
-
-ARM_EABI_FNALIAS(lasr, ashrdi3)
-
-COMPILER_RT_ABI di_int
-__ashrdi3(di_int a, si_int b)
-{
- const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
- dwords input;
- dwords result;
- input.all = a;
- if (b & bits_in_word) /* bits_in_word <= b < bits_in_dword */
- {
- /* result.s.high = input.s.high < 0 ? -1 : 0 */
- result.s.high = input.s.high >> (bits_in_word - 1);
- result.s.low = input.s.high >> (b - bits_in_word);
- }
- else /* 0 <= b < bits_in_word */
- {
- if (b == 0)
- return a;
- result.s.high = input.s.high >> b;
- result.s.low = (input.s.high << (bits_in_word - b)) | (input.s.low >> b);
- }
- return result.all;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ashrti3.c b/contrib/libs/cxxsupp/builtins/ashrti3.c
deleted file mode 100644
index f78205d961e..00000000000
--- a/contrib/libs/cxxsupp/builtins/ashrti3.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ===-- ashrti3.c - Implement __ashrti3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ashrti3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: arithmetic a >> b */
-
-/* Precondition: 0 <= b < bits_in_tword */
-
-COMPILER_RT_ABI ti_int
-__ashrti3(ti_int a, si_int b)
-{
- const int bits_in_dword = (int)(sizeof(di_int) * CHAR_BIT);
- twords input;
- twords result;
- input.all = a;
- if (b & bits_in_dword) /* bits_in_dword <= b < bits_in_tword */
- {
- /* result.s.high = input.s.high < 0 ? -1 : 0 */
- result.s.high = input.s.high >> (bits_in_dword - 1);
- result.s.low = input.s.high >> (b - bits_in_dword);
- }
- else /* 0 <= b < bits_in_dword */
- {
- if (b == 0)
- return a;
- result.s.high = input.s.high >> b;
- result.s.low = (input.s.high << (bits_in_dword - b)) | (input.s.low >> b);
- }
- return result.all;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/assembly.h b/contrib/libs/cxxsupp/builtins/assembly.h
deleted file mode 100644
index c28970534cc..00000000000
--- a/contrib/libs/cxxsupp/builtins/assembly.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* ===-- assembly.h - compiler-rt assembler support macros -----------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file defines macros for use in compiler-rt assembler source.
- * This file is not part of the interface of this library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#ifndef COMPILERRT_ASSEMBLY_H
-#define COMPILERRT_ASSEMBLY_H
-
-#if defined(__POWERPC__) || defined(__powerpc__) || defined(__ppc__)
-#define SEPARATOR @
-#else
-#define SEPARATOR ;
-#endif
-
-#if defined(__APPLE__)
-#define HIDDEN(name) .private_extern name
-#define LOCAL_LABEL(name) L_##name
-// tell linker it can break up file at label boundaries
-#define FILE_LEVEL_DIRECTIVE .subsections_via_symbols
-#define SYMBOL_IS_FUNC(name)
-#define CONST_SECTION .const
-
-#elif defined(__ELF__)
-
-#define HIDDEN(name) .hidden name
-#define LOCAL_LABEL(name) .L_##name
-#define FILE_LEVEL_DIRECTIVE
-#if defined(__arm__)
-#define SYMBOL_IS_FUNC(name) .type name,%function
-#else
-#define SYMBOL_IS_FUNC(name) .type name,@function
-#endif
-#define CONST_SECTION .section .rodata
-
-#else // !__APPLE__ && !__ELF__
-
-#define HIDDEN(name)
-#define LOCAL_LABEL(name) .L ## name
-#define FILE_LEVEL_DIRECTIVE
-#define SYMBOL_IS_FUNC(name) \
- .def name SEPARATOR \
- .scl 2 SEPARATOR \
- .type 32 SEPARATOR \
- .endef
-#define CONST_SECTION .section .rdata,"rd"
-
-#endif
-
-#if defined(__arm__)
-#if defined(__ARM_ARCH_4T__) || __ARM_ARCH >= 5
-#define ARM_HAS_BX
-#endif
-#if !defined(__ARM_FEATURE_CLZ) && \
- (__ARM_ARCH >= 6 || (__ARM_ARCH == 5 && !defined(__ARM_ARCH_5__)))
-#define __ARM_FEATURE_CLZ
-#endif
-
-#ifdef ARM_HAS_BX
-#define JMP(r) bx r
-#define JMPc(r, c) bx##c r
-#else
-#define JMP(r) mov pc, r
-#define JMPc(r, c) mov##c pc, r
-#endif
-
-// pop {pc} can't switch Thumb mode on ARMv4T
-#if __ARM_ARCH >= 5
-#define POP_PC() pop {pc}
-#else
-#define POP_PC() \
- pop {ip}; \
- JMP(ip)
-#endif
-
-#if __ARM_ARCH_ISA_THUMB == 2
-#define IT(cond) it cond
-#define ITT(cond) itt cond
-#else
-#define IT(cond)
-#define ITT(cond)
-#endif
-
-#if __ARM_ARCH_ISA_THUMB == 2
-#define WIDE(op) op.w
-#else
-#define WIDE(op) op
-#endif
-#endif
-
-#define GLUE2(a, b) a##b
-#define GLUE(a, b) GLUE2(a, b)
-#define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)
-
-#ifdef VISIBILITY_HIDDEN
-#define DECLARE_SYMBOL_VISIBILITY(name) \
- HIDDEN(SYMBOL_NAME(name)) SEPARATOR
-#else
-#define DECLARE_SYMBOL_VISIBILITY(name)
-#endif
-
-#define DEFINE_COMPILERRT_FUNCTION(name) \
- FILE_LEVEL_DIRECTIVE SEPARATOR \
- .globl SYMBOL_NAME(name) SEPARATOR \
- SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
- DECLARE_SYMBOL_VISIBILITY(name) \
- SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_THUMB_FUNCTION(name) \
- FILE_LEVEL_DIRECTIVE SEPARATOR \
- .globl SYMBOL_NAME(name) SEPARATOR \
- SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
- DECLARE_SYMBOL_VISIBILITY(name) SEPARATOR \
- .thumb_func SEPARATOR \
- SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name) \
- FILE_LEVEL_DIRECTIVE SEPARATOR \
- .globl SYMBOL_NAME(name) SEPARATOR \
- SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
- HIDDEN(SYMBOL_NAME(name)) SEPARATOR \
- SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name) \
- .globl name SEPARATOR \
- SYMBOL_IS_FUNC(name) SEPARATOR \
- HIDDEN(name) SEPARATOR \
- name:
-
-#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target) \
- .globl SYMBOL_NAME(name) SEPARATOR \
- SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR \
- .set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR
-
-#if defined(__ARM_EABI__)
-#define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name) \
- DEFINE_COMPILERRT_FUNCTION_ALIAS(aeabi_name, name)
-#else
-#define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
-#endif
-
-#ifdef __ELF__
-#define END_COMPILERRT_FUNCTION(name) \
- .size SYMBOL_NAME(name), . - SYMBOL_NAME(name)
-#else
-#define END_COMPILERRT_FUNCTION(name)
-#endif
-
-#endif /* COMPILERRT_ASSEMBLY_H */
diff --git a/contrib/libs/cxxsupp/builtins/atomic.c b/contrib/libs/cxxsupp/builtins/atomic.c
deleted file mode 100644
index f1ddc3e0c52..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/*===-- atomic.c - Implement support functions for atomic operations.------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- * atomic.c defines a set of functions for performing atomic accesses on
- * arbitrary-sized memory locations. This design uses locks that should
- * be fast in the uncontended case, for two reasons:
- *
- * 1) This code must work with C programs that do not link to anything
- * (including pthreads) and so it should not depend on any pthread
- * functions.
- * 2) Atomic operations, rather than explicit mutexes, are most commonly used
- * on code where contended operations are rate.
- *
- * To avoid needing a per-object lock, this code allocates an array of
- * locks and hashes the object pointers to find the one that it should use.
- * For operations that must be atomic on two locations, the lower lock is
- * always acquired first, to avoid deadlock.
- *
- *===----------------------------------------------------------------------===
- */
-
-#include <stdint.h>
-#include <string.h>
-
-#include "assembly.h"
-
-// Clang objects if you redefine a builtin. This little hack allows us to
-// define a function with the same name as an intrinsic.
-#pragma redefine_extname __atomic_load_c SYMBOL_NAME(__atomic_load)
-#pragma redefine_extname __atomic_store_c SYMBOL_NAME(__atomic_store)
-#pragma redefine_extname __atomic_exchange_c SYMBOL_NAME(__atomic_exchange)
-#pragma redefine_extname __atomic_compare_exchange_c SYMBOL_NAME(__atomic_compare_exchange)
-
-/// Number of locks. This allocates one page on 32-bit platforms, two on
-/// 64-bit. This can be specified externally if a different trade between
-/// memory usage and contention probability is required for a given platform.
-#ifndef SPINLOCK_COUNT
-#define SPINLOCK_COUNT (1<<10)
-#endif
-static const long SPINLOCK_MASK = SPINLOCK_COUNT - 1;
-
-////////////////////////////////////////////////////////////////////////////////
-// Platform-specific lock implementation. Falls back to spinlocks if none is
-// defined. Each platform should define the Lock type, and corresponding
-// lock() and unlock() functions.
-////////////////////////////////////////////////////////////////////////////////
-#ifdef __FreeBSD__
-#include <errno.h>
-#include <sys/types.h>
-#include <machine/atomic.h>
-#include <sys/umtx.h>
-typedef struct _usem Lock;
-__inline static void unlock(Lock *l) {
- __c11_atomic_store((_Atomic(uint32_t)*)&l->_count, 1, __ATOMIC_RELEASE);
- __c11_atomic_thread_fence(__ATOMIC_SEQ_CST);
- if (l->_has_waiters)
- _umtx_op(l, UMTX_OP_SEM_WAKE, 1, 0, 0);
-}
-__inline static void lock(Lock *l) {
- uint32_t old = 1;
- while (!__c11_atomic_compare_exchange_weak((_Atomic(uint32_t)*)&l->_count, &old,
- 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED)) {
- _umtx_op(l, UMTX_OP_SEM_WAIT, 0, 0, 0);
- old = 1;
- }
-}
-/// locks for atomic operations
-static Lock locks[SPINLOCK_COUNT] = { [0 ... SPINLOCK_COUNT-1] = {0,1,0} };
-
-#elif defined(__APPLE__)
-#include <libkern/OSAtomic.h>
-typedef OSSpinLock Lock;
-__inline static void unlock(Lock *l) {
- OSSpinLockUnlock(l);
-}
-/// Locks a lock. In the current implementation, this is potentially
-/// unbounded in the contended case.
-__inline static void lock(Lock *l) {
- OSSpinLockLock(l);
-}
-static Lock locks[SPINLOCK_COUNT]; // initialized to OS_SPINLOCK_INIT which is 0
-
-#else
-typedef _Atomic(uintptr_t) Lock;
-/// Unlock a lock. This is a release operation.
-__inline static void unlock(Lock *l) {
- __c11_atomic_store(l, 0, __ATOMIC_RELEASE);
-}
-/// Locks a lock. In the current implementation, this is potentially
-/// unbounded in the contended case.
-__inline static void lock(Lock *l) {
- uintptr_t old = 0;
- while (!__c11_atomic_compare_exchange_weak(l, &old, 1, __ATOMIC_ACQUIRE,
- __ATOMIC_RELAXED))
- old = 0;
-}
-/// locks for atomic operations
-static Lock locks[SPINLOCK_COUNT];
-#endif
-
-
-/// Returns a lock to use for a given pointer.
-static __inline Lock *lock_for_pointer(void *ptr) {
- intptr_t hash = (intptr_t)ptr;
- // Disregard the lowest 4 bits. We want all values that may be part of the
- // same memory operation to hash to the same value and therefore use the same
- // lock.
- hash >>= 4;
- // Use the next bits as the basis for the hash
- intptr_t low = hash & SPINLOCK_MASK;
- // Now use the high(er) set of bits to perturb the hash, so that we don't
- // get collisions from atomic fields in a single object
- hash >>= 16;
- hash ^= low;
- // Return a pointer to the word to use
- return locks + (hash & SPINLOCK_MASK);
-}
-
-/// Macros for determining whether a size is lock free. Clang can not yet
-/// codegen __atomic_is_lock_free(16), so for now we assume 16-byte values are
-/// not lock free.
-#define IS_LOCK_FREE_1 __c11_atomic_is_lock_free(1)
-#define IS_LOCK_FREE_2 __c11_atomic_is_lock_free(2)
-#define IS_LOCK_FREE_4 __c11_atomic_is_lock_free(4)
-#define IS_LOCK_FREE_8 __c11_atomic_is_lock_free(8)
-#define IS_LOCK_FREE_16 0
-
-/// Macro that calls the compiler-generated lock-free versions of functions
-/// when they exist.
-#define LOCK_FREE_CASES() \
- do {\
- switch (size) {\
- case 2:\
- if (IS_LOCK_FREE_2) {\
- LOCK_FREE_ACTION(uint16_t);\
- }\
- case 4:\
- if (IS_LOCK_FREE_4) {\
- LOCK_FREE_ACTION(uint32_t);\
- }\
- case 8:\
- if (IS_LOCK_FREE_8) {\
- LOCK_FREE_ACTION(uint64_t);\
- }\
- case 16:\
- if (IS_LOCK_FREE_16) {\
- /* FIXME: __uint128_t isn't available on 32 bit platforms.
- LOCK_FREE_ACTION(__uint128_t);*/\
- }\
- }\
- } while (0)
-
-
-/// An atomic load operation. This is atomic with respect to the source
-/// pointer only.
-void __atomic_load_c(int size, void *src, void *dest, int model) {
-#define LOCK_FREE_ACTION(type) \
- *((type*)dest) = __c11_atomic_load((_Atomic(type)*)src, model);\
- return;
- LOCK_FREE_CASES();
-#undef LOCK_FREE_ACTION
- Lock *l = lock_for_pointer(src);
- lock(l);
- memcpy(dest, src, size);
- unlock(l);
-}
-
-/// An atomic store operation. This is atomic with respect to the destination
-/// pointer only.
-void __atomic_store_c(int size, void *dest, void *src, int model) {
-#define LOCK_FREE_ACTION(type) \
- __c11_atomic_store((_Atomic(type)*)dest, *(type*)dest, model);\
- return;
- LOCK_FREE_CASES();
-#undef LOCK_FREE_ACTION
- Lock *l = lock_for_pointer(dest);
- lock(l);
- memcpy(dest, src, size);
- unlock(l);
-}
-
-/// Atomic compare and exchange operation. If the value at *ptr is identical
-/// to the value at *expected, then this copies value at *desired to *ptr. If
-/// they are not, then this stores the current value from *ptr in *expected.
-///
-/// This function returns 1 if the exchange takes place or 0 if it fails.
-int __atomic_compare_exchange_c(int size, void *ptr, void *expected,
- void *desired, int success, int failure) {
-#define LOCK_FREE_ACTION(type) \
- return __c11_atomic_compare_exchange_strong((_Atomic(type)*)ptr, (type*)expected,\
- *(type*)desired, success, failure)
- LOCK_FREE_CASES();
-#undef LOCK_FREE_ACTION
- Lock *l = lock_for_pointer(ptr);
- lock(l);
- if (memcmp(ptr, expected, size) == 0) {
- memcpy(ptr, desired, size);
- unlock(l);
- return 1;
- }
- memcpy(expected, ptr, size);
- unlock(l);
- return 0;
-}
-
-/// Performs an atomic exchange operation between two pointers. This is atomic
-/// with respect to the target address.
-void __atomic_exchange_c(int size, void *ptr, void *val, void *old, int model) {
-#define LOCK_FREE_ACTION(type) \
- *(type*)old = __c11_atomic_exchange((_Atomic(type)*)ptr, *(type*)val,\
- model);\
- return;
- LOCK_FREE_CASES();
-#undef LOCK_FREE_ACTION
- Lock *l = lock_for_pointer(ptr);
- lock(l);
- memcpy(old, ptr, size);
- memcpy(ptr, val, size);
- unlock(l);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Where the size is known at compile time, the compiler may emit calls to
-// specialised versions of the above functions.
-////////////////////////////////////////////////////////////////////////////////
-#define OPTIMISED_CASES\
- OPTIMISED_CASE(1, IS_LOCK_FREE_1, uint8_t)\
- OPTIMISED_CASE(2, IS_LOCK_FREE_2, uint16_t)\
- OPTIMISED_CASE(4, IS_LOCK_FREE_4, uint32_t)\
- OPTIMISED_CASE(8, IS_LOCK_FREE_8, uint64_t)\
- /* FIXME: __uint128_t isn't available on 32 bit platforms.
- OPTIMISED_CASE(16, IS_LOCK_FREE_16, __uint128_t)*/\
-
-#define OPTIMISED_CASE(n, lockfree, type)\
-type __atomic_load_##n(type *src, int model) {\
- if (lockfree)\
- return __c11_atomic_load((_Atomic(type)*)src, model);\
- Lock *l = lock_for_pointer(src);\
- lock(l);\
- type val = *src;\
- unlock(l);\
- return val;\
-}
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-
-#define OPTIMISED_CASE(n, lockfree, type)\
-void __atomic_store_##n(type *dest, type val, int model) {\
- if (lockfree) {\
- __c11_atomic_store((_Atomic(type)*)dest, val, model);\
- return;\
- }\
- Lock *l = lock_for_pointer(dest);\
- lock(l);\
- *dest = val;\
- unlock(l);\
- return;\
-}
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-
-#define OPTIMISED_CASE(n, lockfree, type)\
-type __atomic_exchange_##n(type *dest, type val, int model) {\
- if (lockfree)\
- return __c11_atomic_exchange((_Atomic(type)*)dest, val, model);\
- Lock *l = lock_for_pointer(dest);\
- lock(l);\
- type tmp = *dest;\
- *dest = val;\
- unlock(l);\
- return tmp;\
-}
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-
-#define OPTIMISED_CASE(n, lockfree, type)\
-int __atomic_compare_exchange_##n(type *ptr, type *expected, type desired,\
- int success, int failure) {\
- if (lockfree)\
- return __c11_atomic_compare_exchange_strong((_Atomic(type)*)ptr, expected, desired,\
- success, failure);\
- Lock *l = lock_for_pointer(ptr);\
- lock(l);\
- if (*ptr == *expected) {\
- *ptr = desired;\
- unlock(l);\
- return 1;\
- }\
- *expected = *ptr;\
- unlock(l);\
- return 0;\
-}
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-
-////////////////////////////////////////////////////////////////////////////////
-// Atomic read-modify-write operations for integers of various sizes.
-////////////////////////////////////////////////////////////////////////////////
-#define ATOMIC_RMW(n, lockfree, type, opname, op) \
-type __atomic_fetch_##opname##_##n(type *ptr, type val, int model) {\
- if (lockfree) \
- return __c11_atomic_fetch_##opname((_Atomic(type)*)ptr, val, model);\
- Lock *l = lock_for_pointer(ptr);\
- lock(l);\
- type tmp = *ptr;\
- *ptr = tmp op val;\
- unlock(l);\
- return tmp;\
-}
-
-#define OPTIMISED_CASE(n, lockfree, type) ATOMIC_RMW(n, lockfree, type, add, +)
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-#define OPTIMISED_CASE(n, lockfree, type) ATOMIC_RMW(n, lockfree, type, sub, -)
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-#define OPTIMISED_CASE(n, lockfree, type) ATOMIC_RMW(n, lockfree, type, and, &)
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-#define OPTIMISED_CASE(n, lockfree, type) ATOMIC_RMW(n, lockfree, type, or, |)
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
-#define OPTIMISED_CASE(n, lockfree, type) ATOMIC_RMW(n, lockfree, type, xor, ^)
-OPTIMISED_CASES
-#undef OPTIMISED_CASE
diff --git a/contrib/libs/cxxsupp/builtins/atomic_flag_clear.c b/contrib/libs/cxxsupp/builtins/atomic_flag_clear.c
deleted file mode 100644
index da912af6431..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_flag_clear.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- atomic_flag_clear.c -------------------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_flag_clear from C11's stdatomic.h.
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_flag_clear
-void atomic_flag_clear(volatile atomic_flag *object) {
- __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/atomic_flag_clear_explicit.c b/contrib/libs/cxxsupp/builtins/atomic_flag_clear_explicit.c
deleted file mode 100644
index 1059b787f16..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_flag_clear_explicit.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*===-- atomic_flag_clear_explicit.c ----------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_flag_clear_explicit from C11's stdatomic.h.
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_flag_clear_explicit
-void atomic_flag_clear_explicit(volatile atomic_flag *object,
- memory_order order) {
- __c11_atomic_store(&(object)->_Value, 0, order);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set.c b/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set.c
deleted file mode 100644
index e8811d39ef2..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- atomic_flag_test_and_set.c ------------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_flag_test_and_set from C11's stdatomic.h.
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_flag_test_and_set
-_Bool atomic_flag_test_and_set(volatile atomic_flag *object) {
- return __c11_atomic_exchange(&(object)->_Value, 1, __ATOMIC_SEQ_CST);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set_explicit.c b/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set_explicit.c
deleted file mode 100644
index 5c8c2df9054..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_flag_test_and_set_explicit.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*===-- atomic_flag_test_and_set_explicit.c ---------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_flag_test_and_set_explicit from C11's stdatomic.h
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_flag_test_and_set_explicit
-_Bool atomic_flag_test_and_set_explicit(volatile atomic_flag *object,
- memory_order order) {
- return __c11_atomic_exchange(&(object)->_Value, 1, order);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/atomic_signal_fence.c b/contrib/libs/cxxsupp/builtins/atomic_signal_fence.c
deleted file mode 100644
index 9ccc2ae60ad..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_signal_fence.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- atomic_signal_fence.c -----------------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_signal_fence from C11's stdatomic.h.
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_signal_fence
-void atomic_signal_fence(memory_order order) {
- __c11_atomic_signal_fence(order);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/atomic_thread_fence.c b/contrib/libs/cxxsupp/builtins/atomic_thread_fence.c
deleted file mode 100644
index d22560151bc..00000000000
--- a/contrib/libs/cxxsupp/builtins/atomic_thread_fence.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- atomic_thread_fence.c -----------------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===------------------------------------------------------------------------===
- *
- * This file implements atomic_thread_fence from C11's stdatomic.h.
- *
- *===------------------------------------------------------------------------===
- */
-
-#ifndef __has_include
-#define __has_include(inc) 0
-#endif
-
-#if __has_include(<stdatomic.h>)
-
-#include <stdatomic.h>
-#undef atomic_thread_fence
-void atomic_thread_fence(memory_order order) {
- __c11_atomic_thread_fence(order);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/clear_cache.c b/contrib/libs/cxxsupp/builtins/clear_cache.c
deleted file mode 100644
index 8eec0689394..00000000000
--- a/contrib/libs/cxxsupp/builtins/clear_cache.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* ===-- clear_cache.c - Implement __clear_cache ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-#include <stddef.h>
-
-#if __APPLE__
- #include <libkern/OSCacheControl.h>
-#endif
-#if (defined(__FreeBSD__) || defined(__Bitrig__)) && defined(__arm__)
- #include <sys/types.h>
- #include <machine/sysarch.h>
-#endif
-
-#if defined(__NetBSD__) && defined(__arm__)
- #include <machine/sysarch.h>
-#endif
-
-#if defined(__mips__)
- #include <sys/cachectl.h>
- #include <sys/syscall.h>
- #include <unistd.h>
- #if defined(__ANDROID__) && defined(__LP64__)
- /*
- * clear_mips_cache - Invalidates instruction cache for Mips.
- */
- static void clear_mips_cache(const void* Addr, size_t Size) {
- asm volatile (
- ".set push\n"
- ".set noreorder\n"
- ".set noat\n"
- "beq %[Size], $zero, 20f\n" /* If size == 0, branch around. */
- "nop\n"
- "daddu %[Size], %[Addr], %[Size]\n" /* Calculate end address + 1 */
- "rdhwr $v0, $1\n" /* Get step size for SYNCI.
- $1 is $HW_SYNCI_Step */
- "beq $v0, $zero, 20f\n" /* If no caches require
- synchronization, branch
- around. */
- "nop\n"
- "10:\n"
- "synci 0(%[Addr])\n" /* Synchronize all caches around
- address. */
- "daddu %[Addr], %[Addr], $v0\n" /* Add step size. */
- "sltu $at, %[Addr], %[Size]\n" /* Compare current with end
- address. */
- "bne $at, $zero, 10b\n" /* Branch if more to do. */
- "nop\n"
- "sync\n" /* Clear memory hazards. */
- "20:\n"
- "bal 30f\n"
- "nop\n"
- "30:\n"
- "daddiu $ra, $ra, 12\n" /* $ra has a value of $pc here.
- Add offset of 12 to point to the
- instruction after the last nop.
- */
- "jr.hb $ra\n" /* Return, clearing instruction
- hazards. */
- "nop\n"
- ".set pop\n"
- : [Addr] "+r"(Addr), [Size] "+r"(Size)
- :: "at", "ra", "v0", "memory"
- );
- }
- #endif
-#endif
-
-#if defined(__ANDROID__) && defined(__arm__)
- #include <asm/unistd.h>
-#endif
-
-/*
- * The compiler generates calls to __clear_cache() when creating
- * trampoline functions on the stack for use with nested functions.
- * It is expected to invalidate the instruction cache for the
- * specified range.
- */
-
-void __clear_cache(void *start, void *end) {
-#if __i386__ || __x86_64__
-/*
- * Intel processors have a unified instruction and data cache
- * so there is nothing to do
- */
-#elif defined(__arm__) && !defined(__APPLE__)
- #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__Bitrig__)
- struct arm_sync_icache_args arg;
-
- arg.addr = (uintptr_t)start;
- arg.len = (uintptr_t)end - (uintptr_t)start;
-
- sysarch(ARM_SYNC_ICACHE, &arg);
- #elif defined(__ANDROID__)
- int start_reg __asm("r0") = (int) (intptr_t) start;
- const register int end_reg __asm("r1") = (int) (intptr_t) end;
- const register int flags __asm("r2") = 0;
- const register int syscall_nr __asm("r7") = __ARM_NR_cacheflush;
- __asm __volatile("svc 0x0" : "=r"(start_reg)
- : "r"(syscall_nr), "r"(start_reg), "r"(end_reg), "r"(flags) : "r0");
- if (start_reg != 0) {
- compilerrt_abort();
- }
- #else
- compilerrt_abort();
- #endif
-#elif defined(__mips__)
- const uintptr_t start_int = (uintptr_t) start;
- const uintptr_t end_int = (uintptr_t) end;
- #if defined(__ANDROID__) && defined(__LP64__)
- // Call synci implementation for short address range.
- const uintptr_t address_range_limit = 256;
- if ((end_int - start_int) <= address_range_limit) {
- clear_mips_cache(start, (end_int - start_int));
- } else {
- syscall(__NR_cacheflush, start, (end_int - start_int), BCACHE);
- }
- #else
- syscall(__NR_cacheflush, start, (end_int - start_int), BCACHE);
- #endif
-#elif defined(__aarch64__) && !defined(__APPLE__)
- uint64_t xstart = (uint64_t)(uintptr_t) start;
- uint64_t xend = (uint64_t)(uintptr_t) end;
- uint64_t addr;
-
- // Get Cache Type Info
- uint64_t ctr_el0;
- __asm __volatile("mrs %0, ctr_el0" : "=r"(ctr_el0));
-
- /*
- * dc & ic instructions must use 64bit registers so we don't use
- * uintptr_t in case this runs in an IPL32 environment.
- */
- const size_t dcache_line_size = 4 << ((ctr_el0 >> 16) & 15);
- for (addr = xstart; addr < xend; addr += dcache_line_size)
- __asm __volatile("dc cvau, %0" :: "r"(addr));
- __asm __volatile("dsb ish");
-
- const size_t icache_line_size = 4 << ((ctr_el0 >> 0) & 15);
- for (addr = xstart; addr < xend; addr += icache_line_size)
- __asm __volatile("ic ivau, %0" :: "r"(addr));
- __asm __volatile("isb sy");
-#else
- #if __APPLE__
- /* On Darwin, sys_icache_invalidate() provides this functionality */
- sys_icache_invalidate(start, end-start);
- #else
- compilerrt_abort();
- #endif
-#endif
-}
-
diff --git a/contrib/libs/cxxsupp/builtins/clzdi2.c b/contrib/libs/cxxsupp/builtins/clzdi2.c
deleted file mode 100644
index b9e64da492b..00000000000
--- a/contrib/libs/cxxsupp/builtins/clzdi2.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ===-- clzdi2.c - Implement __clzdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __clzdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: the number of leading 0-bits */
-
-/* Precondition: a != 0 */
-
-COMPILER_RT_ABI si_int
-__clzdi2(di_int a)
-{
- dwords x;
- x.all = a;
- const si_int f = -(x.s.high == 0);
- return __builtin_clz((x.s.high & ~f) | (x.s.low & f)) +
- (f & ((si_int)(sizeof(si_int) * CHAR_BIT)));
-}
diff --git a/contrib/libs/cxxsupp/builtins/clzsi2.c b/contrib/libs/cxxsupp/builtins/clzsi2.c
deleted file mode 100644
index 25b8ed2c4c2..00000000000
--- a/contrib/libs/cxxsupp/builtins/clzsi2.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ===-- clzsi2.c - Implement __clzsi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __clzsi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: the number of leading 0-bits */
-
-/* Precondition: a != 0 */
-
-COMPILER_RT_ABI si_int
-__clzsi2(si_int a)
-{
- su_int x = (su_int)a;
- si_int t = ((x & 0xFFFF0000) == 0) << 4; /* if (x is small) t = 16 else 0 */
- x >>= 16 - t; /* x = [0 - 0xFFFF] */
- su_int r = t; /* r = [0, 16] */
- /* return r + clz(x) */
- t = ((x & 0xFF00) == 0) << 3;
- x >>= 8 - t; /* x = [0 - 0xFF] */
- r += t; /* r = [0, 8, 16, 24] */
- /* return r + clz(x) */
- t = ((x & 0xF0) == 0) << 2;
- x >>= 4 - t; /* x = [0 - 0xF] */
- r += t; /* r = [0, 4, 8, 12, 16, 20, 24, 28] */
- /* return r + clz(x) */
- t = ((x & 0xC) == 0) << 1;
- x >>= 2 - t; /* x = [0 - 3] */
- r += t; /* r = [0 - 30] and is even */
- /* return r + clz(x) */
-/* switch (x)
- * {
- * case 0:
- * return r + 2;
- * case 1:
- * return r + 1;
- * case 2:
- * case 3:
- * return r;
- * }
- */
- return r + ((2 - x) & -((x & 2) == 0));
-}
diff --git a/contrib/libs/cxxsupp/builtins/cmpdi2.c b/contrib/libs/cxxsupp/builtins/cmpdi2.c
deleted file mode 100644
index 52634d9c336..00000000000
--- a/contrib/libs/cxxsupp/builtins/cmpdi2.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ===-- cmpdi2.c - Implement __cmpdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __cmpdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: if (a < b) returns 0
-* if (a == b) returns 1
-* if (a > b) returns 2
-*/
-
-COMPILER_RT_ABI si_int
-__cmpdi2(di_int a, di_int b)
-{
- dwords x;
- x.all = a;
- dwords y;
- y.all = b;
- if (x.s.high < y.s.high)
- return 0;
- if (x.s.high > y.s.high)
- return 2;
- if (x.s.low < y.s.low)
- return 0;
- if (x.s.low > y.s.low)
- return 2;
- return 1;
-}
-
-#ifdef __ARM_EABI__
-/* Returns: if (a < b) returns -1
-* if (a == b) returns 0
-* if (a > b) returns 1
-*/
-COMPILER_RT_ABI si_int
-__aeabi_lcmp(di_int a, di_int b)
-{
- return __cmpdi2(a, b) - 1;
-}
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/cmpti2.c b/contrib/libs/cxxsupp/builtins/cmpti2.c
deleted file mode 100644
index 2c8b56e29a0..00000000000
--- a/contrib/libs/cxxsupp/builtins/cmpti2.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ===-- cmpti2.c - Implement __cmpti2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __cmpti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: if (a < b) returns 0
- * if (a == b) returns 1
- * if (a > b) returns 2
- */
-
-COMPILER_RT_ABI si_int
-__cmpti2(ti_int a, ti_int b)
-{
- twords x;
- x.all = a;
- twords y;
- y.all = b;
- if (x.s.high < y.s.high)
- return 0;
- if (x.s.high > y.s.high)
- return 2;
- if (x.s.low < y.s.low)
- return 0;
- if (x.s.low > y.s.low)
- return 2;
- return 1;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/comparedf2.c b/contrib/libs/cxxsupp/builtins/comparedf2.c
deleted file mode 100644
index 9e29752231e..00000000000
--- a/contrib/libs/cxxsupp/builtins/comparedf2.c
+++ /dev/null
@@ -1,146 +0,0 @@
-//===-- lib/comparedf2.c - Double-precision comparisons -----------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// // This file implements the following soft-float comparison routines:
-//
-// __eqdf2 __gedf2 __unorddf2
-// __ledf2 __gtdf2
-// __ltdf2
-// __nedf2
-//
-// The semantics of the routines grouped in each column are identical, so there
-// is a single implementation for each, and wrappers to provide the other names.
-//
-// The main routines behave as follows:
-//
-// __ledf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// 1 if either a or b is NaN
-//
-// __gedf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// -1 if either a or b is NaN
-//
-// __unorddf2(a,b) returns 0 if both a and b are numbers
-// 1 if either a or b is NaN
-//
-// Note that __ledf2( ) and __gedf2( ) are identical except in their handling of
-// NaN values.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-enum LE_RESULT {
- LE_LESS = -1,
- LE_EQUAL = 0,
- LE_GREATER = 1,
- LE_UNORDERED = 1
-};
-
-COMPILER_RT_ABI enum LE_RESULT
-__ledf2(fp_t a, fp_t b) {
-
- const srep_t aInt = toRep(a);
- const srep_t bInt = toRep(b);
- const rep_t aAbs = aInt & absMask;
- const rep_t bAbs = bInt & absMask;
-
- // If either a or b is NaN, they are unordered.
- if (aAbs > infRep || bAbs > infRep) return LE_UNORDERED;
-
- // If a and b are both zeros, they are equal.
- if ((aAbs | bAbs) == 0) return LE_EQUAL;
-
- // If at least one of a and b is positive, we get the same result comparing
- // a and b as signed integers as we would with a floating-point compare.
- if ((aInt & bInt) >= 0) {
- if (aInt < bInt) return LE_LESS;
- else if (aInt == bInt) return LE_EQUAL;
- else return LE_GREATER;
- }
-
- // Otherwise, both are negative, so we need to flip the sense of the
- // comparison to get the correct result. (This assumes a twos- or ones-
- // complement integer representation; if integers are represented in a
- // sign-magnitude representation, then this flip is incorrect).
- else {
- if (aInt > bInt) return LE_LESS;
- else if (aInt == bInt) return LE_EQUAL;
- else return LE_GREATER;
- }
-}
-
-#if defined(__ELF__)
-// Alias for libgcc compatibility
-FNALIAS(__cmpdf2, __ledf2);
-#endif
-
-enum GE_RESULT {
- GE_LESS = -1,
- GE_EQUAL = 0,
- GE_GREATER = 1,
- GE_UNORDERED = -1 // Note: different from LE_UNORDERED
-};
-
-COMPILER_RT_ABI enum GE_RESULT
-__gedf2(fp_t a, fp_t b) {
-
- const srep_t aInt = toRep(a);
- const srep_t bInt = toRep(b);
- const rep_t aAbs = aInt & absMask;
- const rep_t bAbs = bInt & absMask;
-
- if (aAbs > infRep || bAbs > infRep) return GE_UNORDERED;
- if ((aAbs | bAbs) == 0) return GE_EQUAL;
- if ((aInt & bInt) >= 0) {
- if (aInt < bInt) return GE_LESS;
- else if (aInt == bInt) return GE_EQUAL;
- else return GE_GREATER;
- } else {
- if (aInt > bInt) return GE_LESS;
- else if (aInt == bInt) return GE_EQUAL;
- else return GE_GREATER;
- }
-}
-
-ARM_EABI_FNALIAS(dcmpun, unorddf2)
-
-COMPILER_RT_ABI int
-__unorddf2(fp_t a, fp_t b) {
- const rep_t aAbs = toRep(a) & absMask;
- const rep_t bAbs = toRep(b) & absMask;
- return aAbs > infRep || bAbs > infRep;
-}
-
-// The following are alternative names for the preceding routines.
-
-COMPILER_RT_ABI enum LE_RESULT
-__eqdf2(fp_t a, fp_t b) {
- return __ledf2(a, b);
-}
-
-COMPILER_RT_ABI enum LE_RESULT
-__ltdf2(fp_t a, fp_t b) {
- return __ledf2(a, b);
-}
-
-COMPILER_RT_ABI enum LE_RESULT
-__nedf2(fp_t a, fp_t b) {
- return __ledf2(a, b);
-}
-
-COMPILER_RT_ABI enum GE_RESULT
-__gtdf2(fp_t a, fp_t b) {
- return __gedf2(a, b);
-}
-
diff --git a/contrib/libs/cxxsupp/builtins/comparesf2.c b/contrib/libs/cxxsupp/builtins/comparesf2.c
deleted file mode 100644
index 1fd50636aba..00000000000
--- a/contrib/libs/cxxsupp/builtins/comparesf2.c
+++ /dev/null
@@ -1,145 +0,0 @@
-//===-- lib/comparesf2.c - Single-precision comparisons -----------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the following soft-fp_t comparison routines:
-//
-// __eqsf2 __gesf2 __unordsf2
-// __lesf2 __gtsf2
-// __ltsf2
-// __nesf2
-//
-// The semantics of the routines grouped in each column are identical, so there
-// is a single implementation for each, and wrappers to provide the other names.
-//
-// The main routines behave as follows:
-//
-// __lesf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// 1 if either a or b is NaN
-//
-// __gesf2(a,b) returns -1 if a < b
-// 0 if a == b
-// 1 if a > b
-// -1 if either a or b is NaN
-//
-// __unordsf2(a,b) returns 0 if both a and b are numbers
-// 1 if either a or b is NaN
-//
-// Note that __lesf2( ) and __gesf2( ) are identical except in their handling of
-// NaN values.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-enum LE_RESULT {
- LE_LESS = -1,
- LE_EQUAL = 0,
- LE_GREATER = 1,
- LE_UNORDERED = 1
-};
-
-COMPILER_RT_ABI enum LE_RESULT
-__lesf2(fp_t a, fp_t b) {
-
- const srep_t aInt = toRep(a);
- const srep_t bInt = toRep(b);
- const rep_t aAbs = aInt & absMask;
- const rep_t bAbs = bInt & absMask;
-
- // If either a or b is NaN, they are unordered.
- if (aAbs > infRep || bAbs > infRep) return LE_UNORDERED;
-
- // If a and b are both zeros, they are equal.
- if ((aAbs | bAbs) == 0) return LE_EQUAL;
-
- // If at least one of a and b is positive, we get the same result comparing
- // a and b as signed integers as we would with a fp_ting-point compare.
- if ((aInt & bInt) >= 0) {
- if (aInt < bInt) return LE_LESS;
- else if (aInt == bInt) return LE_EQUAL;
- else return LE_GREATER;
- }
-
- // Otherwise, both are negative, so we need to flip the sense of the
- // comparison to get the correct result. (This assumes a twos- or ones-
- // complement integer representation; if integers are represented in a
- // sign-magnitude representation, then this flip is incorrect).
- else {
- if (aInt > bInt) return LE_LESS;
- else if (aInt == bInt) return LE_EQUAL;
- else return LE_GREATER;
- }
-}
-
-#if defined(__ELF__)
-// Alias for libgcc compatibility
-FNALIAS(__cmpsf2, __lesf2);
-#endif
-
-enum GE_RESULT {
- GE_LESS = -1,
- GE_EQUAL = 0,
- GE_GREATER = 1,
- GE_UNORDERED = -1 // Note: different from LE_UNORDERED
-};
-
-COMPILER_RT_ABI enum GE_RESULT
-__gesf2(fp_t a, fp_t b) {
-
- const srep_t aInt = toRep(a);
- const srep_t bInt = toRep(b);
- const rep_t aAbs = aInt & absMask;
- const rep_t bAbs = bInt & absMask;
-
- if (aAbs > infRep || bAbs > infRep) return GE_UNORDERED;
- if ((aAbs | bAbs) == 0) return GE_EQUAL;
- if ((aInt & bInt) >= 0) {
- if (aInt < bInt) return GE_LESS;
- else if (aInt == bInt) return GE_EQUAL;
- else return GE_GREATER;
- } else {
- if (aInt > bInt) return GE_LESS;
- else if (aInt == bInt) return GE_EQUAL;
- else return GE_GREATER;
- }
-}
-
-ARM_EABI_FNALIAS(fcmpun, unordsf2)
-
-COMPILER_RT_ABI int
-__unordsf2(fp_t a, fp_t b) {
- const rep_t aAbs = toRep(a) & absMask;
- const rep_t bAbs = toRep(b) & absMask;
- return aAbs > infRep || bAbs > infRep;
-}
-
-// The following are alternative names for the preceding routines.
-
-COMPILER_RT_ABI enum LE_RESULT
-__eqsf2(fp_t a, fp_t b) {
- return __lesf2(a, b);
-}
-
-COMPILER_RT_ABI enum LE_RESULT
-__ltsf2(fp_t a, fp_t b) {
- return __lesf2(a, b);
-}
-
-COMPILER_RT_ABI enum LE_RESULT
-__nesf2(fp_t a, fp_t b) {
- return __lesf2(a, b);
-}
-
-COMPILER_RT_ABI enum GE_RESULT
-__gtsf2(fp_t a, fp_t b) {
- return __gesf2(a, b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/ctzdi2.c b/contrib/libs/cxxsupp/builtins/ctzdi2.c
deleted file mode 100644
index db3c6fdc08f..00000000000
--- a/contrib/libs/cxxsupp/builtins/ctzdi2.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ===-- ctzdi2.c - Implement __ctzdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ctzdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: the number of trailing 0-bits */
-
-/* Precondition: a != 0 */
-
-COMPILER_RT_ABI si_int
-__ctzdi2(di_int a)
-{
- dwords x;
- x.all = a;
- const si_int f = -(x.s.low == 0);
- return __builtin_ctz((x.s.high & f) | (x.s.low & ~f)) +
- (f & ((si_int)(sizeof(si_int) * CHAR_BIT)));
-}
diff --git a/contrib/libs/cxxsupp/builtins/ctzsi2.c b/contrib/libs/cxxsupp/builtins/ctzsi2.c
deleted file mode 100644
index c69486ea445..00000000000
--- a/contrib/libs/cxxsupp/builtins/ctzsi2.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ===-- ctzsi2.c - Implement __ctzsi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ctzsi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: the number of trailing 0-bits */
-
-/* Precondition: a != 0 */
-
-COMPILER_RT_ABI si_int
-__ctzsi2(si_int a)
-{
- su_int x = (su_int)a;
- si_int t = ((x & 0x0000FFFF) == 0) << 4; /* if (x has no small bits) t = 16 else 0 */
- x >>= t; /* x = [0 - 0xFFFF] + higher garbage bits */
- su_int r = t; /* r = [0, 16] */
- /* return r + ctz(x) */
- t = ((x & 0x00FF) == 0) << 3;
- x >>= t; /* x = [0 - 0xFF] + higher garbage bits */
- r += t; /* r = [0, 8, 16, 24] */
- /* return r + ctz(x) */
- t = ((x & 0x0F) == 0) << 2;
- x >>= t; /* x = [0 - 0xF] + higher garbage bits */
- r += t; /* r = [0, 4, 8, 12, 16, 20, 24, 28] */
- /* return r + ctz(x) */
- t = ((x & 0x3) == 0) << 1;
- x >>= t;
- x &= 3; /* x = [0 - 3] */
- r += t; /* r = [0 - 30] and is even */
- /* return r + ctz(x) */
-
-/* The branch-less return statement below is equivalent
- * to the following switch statement:
- * switch (x)
- * {
- * case 0:
- * return r + 2;
- * case 2:
- * return r + 1;
- * case 1:
- * case 3:
- * return r;
- * }
- */
- return r + ((2 - (x >> 1)) & -((x & 1) == 0));
-}
diff --git a/contrib/libs/cxxsupp/builtins/ctzti2.c b/contrib/libs/cxxsupp/builtins/ctzti2.c
deleted file mode 100644
index 45de682700c..00000000000
--- a/contrib/libs/cxxsupp/builtins/ctzti2.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ===-- ctzti2.c - Implement __ctzti2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ctzti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: the number of trailing 0-bits */
-
-/* Precondition: a != 0 */
-
-COMPILER_RT_ABI si_int
-__ctzti2(ti_int a)
-{
- twords x;
- x.all = a;
- const di_int f = -(x.s.low == 0);
- return __builtin_ctzll((x.s.high & f) | (x.s.low & ~f)) +
- ((si_int)f & ((si_int)(sizeof(di_int) * CHAR_BIT)));
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/divdf3.c b/contrib/libs/cxxsupp/builtins/divdf3.c
deleted file mode 100644
index ab44c2b25fe..00000000000
--- a/contrib/libs/cxxsupp/builtins/divdf3.c
+++ /dev/null
@@ -1,185 +0,0 @@
-//===-- lib/divdf3.c - Double-precision division ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements double-precision soft-float division
-// with the IEEE-754 default rounding (to nearest, ties to even).
-//
-// For simplicity, this implementation currently flushes denormals to zero.
-// It should be a fairly straightforward exercise to implement gradual
-// underflow with correct rounding.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(ddiv, divdf3)
-
-COMPILER_RT_ABI fp_t
-__divdf3(fp_t a, fp_t b) {
-
- const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
- const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
- const rep_t quotientSign = (toRep(a) ^ toRep(b)) & signBit;
-
- rep_t aSignificand = toRep(a) & significandMask;
- rep_t bSignificand = toRep(b) & significandMask;
- int scale = 0;
-
- // Detect if a or b is zero, denormal, infinity, or NaN.
- if (aExponent-1U >= maxExponent-1U || bExponent-1U >= maxExponent-1U) {
-
- const rep_t aAbs = toRep(a) & absMask;
- const rep_t bAbs = toRep(b) & absMask;
-
- // NaN / anything = qNaN
- if (aAbs > infRep) return fromRep(toRep(a) | quietBit);
- // anything / NaN = qNaN
- if (bAbs > infRep) return fromRep(toRep(b) | quietBit);
-
- if (aAbs == infRep) {
- // infinity / infinity = NaN
- if (bAbs == infRep) return fromRep(qnanRep);
- // infinity / anything else = +/- infinity
- else return fromRep(aAbs | quotientSign);
- }
-
- // anything else / infinity = +/- 0
- if (bAbs == infRep) return fromRep(quotientSign);
-
- if (!aAbs) {
- // zero / zero = NaN
- if (!bAbs) return fromRep(qnanRep);
- // zero / anything else = +/- zero
- else return fromRep(quotientSign);
- }
- // anything else / zero = +/- infinity
- if (!bAbs) return fromRep(infRep | quotientSign);
-
- // one or both of a or b is denormal, the other (if applicable) is a
- // normal number. Renormalize one or both of a and b, and set scale to
- // include the necessary exponent adjustment.
- if (aAbs < implicitBit) scale += normalize(&aSignificand);
- if (bAbs < implicitBit) scale -= normalize(&bSignificand);
- }
-
- // Or in the implicit significand bit. (If we fell through from the
- // denormal path it was already set by normalize( ), but setting it twice
- // won't hurt anything.)
- aSignificand |= implicitBit;
- bSignificand |= implicitBit;
- int quotientExponent = aExponent - bExponent + scale;
-
- // Align the significand of b as a Q31 fixed-point number in the range
- // [1, 2.0) and get a Q32 approximate reciprocal using a small minimax
- // polynomial approximation: reciprocal = 3/4 + 1/sqrt(2) - b/2. This
- // is accurate to about 3.5 binary digits.
- const uint32_t q31b = bSignificand >> 21;
- uint32_t recip32 = UINT32_C(0x7504f333) - q31b;
-
- // Now refine the reciprocal estimate using a Newton-Raphson iteration:
- //
- // x1 = x0 * (2 - x0 * b)
- //
- // This doubles the number of correct binary digits in the approximation
- // with each iteration, so after three iterations, we have about 28 binary
- // digits of accuracy.
- uint32_t correction32;
- correction32 = -((uint64_t)recip32 * q31b >> 32);
- recip32 = (uint64_t)recip32 * correction32 >> 31;
- correction32 = -((uint64_t)recip32 * q31b >> 32);
- recip32 = (uint64_t)recip32 * correction32 >> 31;
- correction32 = -((uint64_t)recip32 * q31b >> 32);
- recip32 = (uint64_t)recip32 * correction32 >> 31;
-
- // recip32 might have overflowed to exactly zero in the preceding
- // computation if the high word of b is exactly 1.0. This would sabotage
- // the full-width final stage of the computation that follows, so we adjust
- // recip32 downward by one bit.
- recip32--;
-
- // We need to perform one more iteration to get us to 56 binary digits;
- // The last iteration needs to happen with extra precision.
- const uint32_t q63blo = bSignificand << 11;
- uint64_t correction, reciprocal;
- correction = -((uint64_t)recip32*q31b + ((uint64_t)recip32*q63blo >> 32));
- uint32_t cHi = correction >> 32;
- uint32_t cLo = correction;
- reciprocal = (uint64_t)recip32*cHi + ((uint64_t)recip32*cLo >> 32);
-
- // We already adjusted the 32-bit estimate, now we need to adjust the final
- // 64-bit reciprocal estimate downward to ensure that it is strictly smaller
- // than the infinitely precise exact reciprocal. Because the computation
- // of the Newton-Raphson step is truncating at every step, this adjustment
- // is small; most of the work is already done.
- reciprocal -= 2;
-
- // The numerical reciprocal is accurate to within 2^-56, lies in the
- // interval [0.5, 1.0), and is strictly smaller than the true reciprocal
- // of b. Multiplying a by this reciprocal thus gives a numerical q = a/b
- // in Q53 with the following properties:
- //
- // 1. q < a/b
- // 2. q is in the interval [0.5, 2.0)
- // 3. the error in q is bounded away from 2^-53 (actually, we have a
- // couple of bits to spare, but this is all we need).
-
- // We need a 64 x 64 multiply high to compute q, which isn't a basic
- // operation in C, so we need to be a little bit fussy.
- rep_t quotient, quotientLo;
- wideMultiply(aSignificand << 2, reciprocal, &quotient, &quotientLo);
-
- // Two cases: quotient is in [0.5, 1.0) or quotient is in [1.0, 2.0).
- // In either case, we are going to compute a residual of the form
- //
- // r = a - q*b
- //
- // We know from the construction of q that r satisfies:
- //
- // 0 <= r < ulp(q)*b
- //
- // if r is greater than 1/2 ulp(q)*b, then q rounds up. Otherwise, we
- // already have the correct result. The exact halfway case cannot occur.
- // We also take this time to right shift quotient if it falls in the [1,2)
- // range and adjust the exponent accordingly.
- rep_t residual;
- if (quotient < (implicitBit << 1)) {
- residual = (aSignificand << 53) - quotient * bSignificand;
- quotientExponent--;
- } else {
- quotient >>= 1;
- residual = (aSignificand << 52) - quotient * bSignificand;
- }
-
- const int writtenExponent = quotientExponent + exponentBias;
-
- if (writtenExponent >= maxExponent) {
- // If we have overflowed the exponent, return infinity.
- return fromRep(infRep | quotientSign);
- }
-
- else if (writtenExponent < 1) {
- // Flush denormals to zero. In the future, it would be nice to add
- // code to round them correctly.
- return fromRep(quotientSign);
- }
-
- else {
- const bool round = (residual << 1) > bSignificand;
- // Clear the implicit bit
- rep_t absResult = quotient & significandMask;
- // Insert the exponent
- absResult |= (rep_t)writtenExponent << significandBits;
- // Round
- absResult += round;
- // Insert the sign and return
- const double result = fromRep(absResult | quotientSign);
- return result;
- }
-}
diff --git a/contrib/libs/cxxsupp/builtins/divdi3.c b/contrib/libs/cxxsupp/builtins/divdi3.c
deleted file mode 100644
index b8eebcb2046..00000000000
--- a/contrib/libs/cxxsupp/builtins/divdi3.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ===-- divdi3.c - Implement __divdi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __divdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b */
-
-COMPILER_RT_ABI di_int
-__divdi3(di_int a, di_int b)
-{
- const int bits_in_dword_m1 = (int)(sizeof(di_int) * CHAR_BIT) - 1;
- di_int s_a = a >> bits_in_dword_m1; /* s_a = a < 0 ? -1 : 0 */
- di_int s_b = b >> bits_in_dword_m1; /* s_b = b < 0 ? -1 : 0 */
- a = (a ^ s_a) - s_a; /* negate if s_a == -1 */
- b = (b ^ s_b) - s_b; /* negate if s_b == -1 */
- s_a ^= s_b; /*sign of quotient */
- return (__udivmoddi4(a, b, (du_int*)0) ^ s_a) - s_a; /* negate if s_a == -1 */
-}
diff --git a/contrib/libs/cxxsupp/builtins/divmoddi4.c b/contrib/libs/cxxsupp/builtins/divmoddi4.c
deleted file mode 100644
index 0d4df67a63e..00000000000
--- a/contrib/libs/cxxsupp/builtins/divmoddi4.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*===-- divmoddi4.c - Implement __divmoddi4 --------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __divmoddi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b, *rem = a % b */
-
-COMPILER_RT_ABI di_int
-__divmoddi4(di_int a, di_int b, di_int* rem)
-{
- di_int d = __divdi3(a,b);
- *rem = a - (d*b);
- return d;
-}
diff --git a/contrib/libs/cxxsupp/builtins/divmodsi4.c b/contrib/libs/cxxsupp/builtins/divmodsi4.c
deleted file mode 100644
index dabe2874397..00000000000
--- a/contrib/libs/cxxsupp/builtins/divmodsi4.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- divmodsi4.c - Implement __divmodsi4 --------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __divmodsi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b, *rem = a % b */
-
-COMPILER_RT_ABI si_int
-__divmodsi4(si_int a, si_int b, si_int* rem)
-{
- si_int d = __divsi3(a,b);
- *rem = a - (d*b);
- return d;
-}
-
-
diff --git a/contrib/libs/cxxsupp/builtins/divsf3.c b/contrib/libs/cxxsupp/builtins/divsf3.c
deleted file mode 100644
index de2e376125b..00000000000
--- a/contrib/libs/cxxsupp/builtins/divsf3.c
+++ /dev/null
@@ -1,169 +0,0 @@
-//===-- lib/divsf3.c - Single-precision division ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements single-precision soft-float division
-// with the IEEE-754 default rounding (to nearest, ties to even).
-//
-// For simplicity, this implementation currently flushes denormals to zero.
-// It should be a fairly straightforward exercise to implement gradual
-// underflow with correct rounding.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(fdiv, divsf3)
-
-COMPILER_RT_ABI fp_t
-__divsf3(fp_t a, fp_t b) {
-
- const unsigned int aExponent = toRep(a) >> significandBits & maxExponent;
- const unsigned int bExponent = toRep(b) >> significandBits & maxExponent;
- const rep_t quotientSign = (toRep(a) ^ toRep(b)) & signBit;
-
- rep_t aSignificand = toRep(a) & significandMask;
- rep_t bSignificand = toRep(b) & significandMask;
- int scale = 0;
-
- // Detect if a or b is zero, denormal, infinity, or NaN.
- if (aExponent-1U >= maxExponent-1U || bExponent-1U >= maxExponent-1U) {
-
- const rep_t aAbs = toRep(a) & absMask;
- const rep_t bAbs = toRep(b) & absMask;
-
- // NaN / anything = qNaN
- if (aAbs > infRep) return fromRep(toRep(a) | quietBit);
- // anything / NaN = qNaN
- if (bAbs > infRep) return fromRep(toRep(b) | quietBit);
-
- if (aAbs == infRep) {
- // infinity / infinity = NaN
- if (bAbs == infRep) return fromRep(qnanRep);
- // infinity / anything else = +/- infinity
- else return fromRep(aAbs | quotientSign);
- }
-
- // anything else / infinity = +/- 0
- if (bAbs == infRep) return fromRep(quotientSign);
-
- if (!aAbs) {
- // zero / zero = NaN
- if (!bAbs) return fromRep(qnanRep);
- // zero / anything else = +/- zero
- else return fromRep(quotientSign);
- }
- // anything else / zero = +/- infinity
- if (!bAbs) return fromRep(infRep | quotientSign);
-
- // one or both of a or b is denormal, the other (if applicable) is a
- // normal number. Renormalize one or both of a and b, and set scale to
- // include the necessary exponent adjustment.
- if (aAbs < implicitBit) scale += normalize(&aSignificand);
- if (bAbs < implicitBit) scale -= normalize(&bSignificand);
- }
-
- // Or in the implicit significand bit. (If we fell through from the
- // denormal path it was already set by normalize( ), but setting it twice
- // won't hurt anything.)
- aSignificand |= implicitBit;
- bSignificand |= implicitBit;
- int quotientExponent = aExponent - bExponent + scale;
-
- // Align the significand of b as a Q31 fixed-point number in the range
- // [1, 2.0) and get a Q32 approximate reciprocal using a small minimax
- // polynomial approximation: reciprocal = 3/4 + 1/sqrt(2) - b/2. This
- // is accurate to about 3.5 binary digits.
- uint32_t q31b = bSignificand << 8;
- uint32_t reciprocal = UINT32_C(0x7504f333) - q31b;
-
- // Now refine the reciprocal estimate using a Newton-Raphson iteration:
- //
- // x1 = x0 * (2 - x0 * b)
- //
- // This doubles the number of correct binary digits in the approximation
- // with each iteration, so after three iterations, we have about 28 binary
- // digits of accuracy.
- uint32_t correction;
- correction = -((uint64_t)reciprocal * q31b >> 32);
- reciprocal = (uint64_t)reciprocal * correction >> 31;
- correction = -((uint64_t)reciprocal * q31b >> 32);
- reciprocal = (uint64_t)reciprocal * correction >> 31;
- correction = -((uint64_t)reciprocal * q31b >> 32);
- reciprocal = (uint64_t)reciprocal * correction >> 31;
-
- // Exhaustive testing shows that the error in reciprocal after three steps
- // is in the interval [-0x1.f58108p-31, 0x1.d0e48cp-29], in line with our
- // expectations. We bump the reciprocal by a tiny value to force the error
- // to be strictly positive (in the range [0x1.4fdfp-37,0x1.287246p-29], to
- // be specific). This also causes 1/1 to give a sensible approximation
- // instead of zero (due to overflow).
- reciprocal -= 2;
-
- // The numerical reciprocal is accurate to within 2^-28, lies in the
- // interval [0x1.000000eep-1, 0x1.fffffffcp-1], and is strictly smaller
- // than the true reciprocal of b. Multiplying a by this reciprocal thus
- // gives a numerical q = a/b in Q24 with the following properties:
- //
- // 1. q < a/b
- // 2. q is in the interval [0x1.000000eep-1, 0x1.fffffffcp0)
- // 3. the error in q is at most 2^-24 + 2^-27 -- the 2^24 term comes
- // from the fact that we truncate the product, and the 2^27 term
- // is the error in the reciprocal of b scaled by the maximum
- // possible value of a. As a consequence of this error bound,
- // either q or nextafter(q) is the correctly rounded
- rep_t quotient = (uint64_t)reciprocal*(aSignificand << 1) >> 32;
-
- // Two cases: quotient is in [0.5, 1.0) or quotient is in [1.0, 2.0).
- // In either case, we are going to compute a residual of the form
- //
- // r = a - q*b
- //
- // We know from the construction of q that r satisfies:
- //
- // 0 <= r < ulp(q)*b
- //
- // if r is greater than 1/2 ulp(q)*b, then q rounds up. Otherwise, we
- // already have the correct result. The exact halfway case cannot occur.
- // We also take this time to right shift quotient if it falls in the [1,2)
- // range and adjust the exponent accordingly.
- rep_t residual;
- if (quotient < (implicitBit << 1)) {
- residual = (aSignificand << 24) - quotient * bSignificand;
- quotientExponent--;
- } else {
- quotient >>= 1;
- residual = (aSignificand << 23) - quotient * bSignificand;
- }
-
- const int writtenExponent = quotientExponent + exponentBias;
-
- if (writtenExponent >= maxExponent) {
- // If we have overflowed the exponent, return infinity.
- return fromRep(infRep | quotientSign);
- }
-
- else if (writtenExponent < 1) {
- // Flush denormals to zero. In the future, it would be nice to add
- // code to round them correctly.
- return fromRep(quotientSign);
- }
-
- else {
- const bool round = (residual << 1) > bSignificand;
- // Clear the implicit bit
- rep_t absResult = quotient & significandMask;
- // Insert the exponent
- absResult |= (rep_t)writtenExponent << significandBits;
- // Round
- absResult += round;
- // Insert the sign and return
- return fromRep(absResult | quotientSign);
- }
-}
diff --git a/contrib/libs/cxxsupp/builtins/divsi3.c b/contrib/libs/cxxsupp/builtins/divsi3.c
deleted file mode 100644
index bab4aefda30..00000000000
--- a/contrib/libs/cxxsupp/builtins/divsi3.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ===-- divsi3.c - Implement __divsi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __divsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b */
-
-ARM_EABI_FNALIAS(idiv, divsi3)
-
-COMPILER_RT_ABI si_int
-__divsi3(si_int a, si_int b)
-{
- const int bits_in_word_m1 = (int)(sizeof(si_int) * CHAR_BIT) - 1;
- si_int s_a = a >> bits_in_word_m1; /* s_a = a < 0 ? -1 : 0 */
- si_int s_b = b >> bits_in_word_m1; /* s_b = b < 0 ? -1 : 0 */
- a = (a ^ s_a) - s_a; /* negate if s_a == -1 */
- b = (b ^ s_b) - s_b; /* negate if s_b == -1 */
- s_a ^= s_b; /* sign of quotient */
- /*
- * On CPUs without unsigned hardware division support,
- * this calls __udivsi3 (notice the cast to su_int).
- * On CPUs with unsigned hardware division support,
- * this uses the unsigned division instruction.
- */
- return ((su_int)a/(su_int)b ^ s_a) - s_a; /* negate if s_a == -1 */
-}
diff --git a/contrib/libs/cxxsupp/builtins/divtc3.c b/contrib/libs/cxxsupp/builtins/divtc3.c
deleted file mode 100644
index 04693df471f..00000000000
--- a/contrib/libs/cxxsupp/builtins/divtc3.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*===-- divtc3.c - Implement __divtc3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __divtc3 for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-#include "int_math.h"
-
-/* Returns: the quotient of (a + ib) / (c + id) */
-
-COMPILER_RT_ABI long double _Complex
-__divtc3(long double __a, long double __b, long double __c, long double __d)
-{
- int __ilogbw = 0;
- long double __logbw = crt_logbl(crt_fmaxl(crt_fabsl(__c), crt_fabsl(__d)));
- if (crt_isfinite(__logbw))
- {
- __ilogbw = (int)__logbw;
- __c = crt_scalbnl(__c, -__ilogbw);
- __d = crt_scalbnl(__d, -__ilogbw);
- }
- long double __denom = __c * __c + __d * __d;
- long double _Complex z;
- __real__ z = crt_scalbnl((__a * __c + __b * __d) / __denom, -__ilogbw);
- __imag__ z = crt_scalbnl((__b * __c - __a * __d) / __denom, -__ilogbw);
- if (crt_isnan(__real__ z) && crt_isnan(__imag__ z))
- {
- if ((__denom == 0.0) && (!crt_isnan(__a) || !crt_isnan(__b)))
- {
- __real__ z = crt_copysignl(CRT_INFINITY, __c) * __a;
- __imag__ z = crt_copysignl(CRT_INFINITY, __c) * __b;
- }
- else if ((crt_isinf(__a) || crt_isinf(__b)) &&
- crt_isfinite(__c) && crt_isfinite(__d))
- {
- __a = crt_copysignl(crt_isinf(__a) ? 1.0 : 0.0, __a);
- __b = crt_copysignl(crt_isinf(__b) ? 1.0 : 0.0, __b);
- __real__ z = CRT_INFINITY * (__a * __c + __b * __d);
- __imag__ z = CRT_INFINITY * (__b * __c - __a * __d);
- }
- else if (crt_isinf(__logbw) && __logbw > 0.0 &&
- crt_isfinite(__a) && crt_isfinite(__b))
- {
- __c = crt_copysignl(crt_isinf(__c) ? 1.0 : 0.0, __c);
- __d = crt_copysignl(crt_isinf(__d) ? 1.0 : 0.0, __d);
- __real__ z = 0.0 * (__a * __c + __b * __d);
- __imag__ z = 0.0 * (__b * __c - __a * __d);
- }
- }
- return z;
-}
diff --git a/contrib/libs/cxxsupp/builtins/emutls.c b/contrib/libs/cxxsupp/builtins/emutls.c
deleted file mode 100644
index 09e79568bd5..00000000000
--- a/contrib/libs/cxxsupp/builtins/emutls.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* ===---------- emutls.c - Implements __emutls_get_address ---------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-#include <pthread.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "int_lib.h"
-#include "int_util.h"
-
-/* Default is not to use posix_memalign, so systems like Android
- * can use thread local data without heavier POSIX memory allocators.
- */
-#ifndef EMUTLS_USE_POSIX_MEMALIGN
-#define EMUTLS_USE_POSIX_MEMALIGN 0
-#endif
-
-/* For every TLS variable xyz,
- * there is one __emutls_control variable named __emutls_v.xyz.
- * If xyz has non-zero initial value, __emutls_v.xyz's "value"
- * will point to __emutls_t.xyz, which has the initial value.
- */
-typedef struct __emutls_control {
- size_t size; /* size of the object in bytes */
- size_t align; /* alignment of the object in bytes */
- union {
- uintptr_t index; /* data[index-1] is the object address */
- void* address; /* object address, when in single thread env */
- } object;
- void* value; /* null or non-zero initial value for the object */
-} __emutls_control;
-
-static __inline void *emutls_memalign_alloc(size_t align, size_t size) {
- void *base;
-#if EMUTLS_USE_POSIX_MEMALIGN
- if (posix_memalign(&base, align, size) != 0)
- abort();
-#else
- #define EXTRA_ALIGN_PTR_BYTES (align - 1 + sizeof(void*))
- char* object;
- if ((object = malloc(EXTRA_ALIGN_PTR_BYTES + size)) == NULL)
- abort();
- base = (void*)(((uintptr_t)(object + EXTRA_ALIGN_PTR_BYTES))
- & ~(uintptr_t)(align - 1));
-
- ((void**)base)[-1] = object;
-#endif
- return base;
-}
-
-static __inline void emutls_memalign_free(void *base) {
-#if EMUTLS_USE_POSIX_MEMALIGN
- free(base);
-#else
- /* The mallocated address is in ((void**)base)[-1] */
- free(((void**)base)[-1]);
-#endif
-}
-
-/* Emulated TLS objects are always allocated at run-time. */
-static __inline void *emutls_allocate_object(__emutls_control *control) {
- /* Use standard C types, check with gcc's emutls.o. */
- typedef unsigned int gcc_word __attribute__((mode(word)));
- typedef unsigned int gcc_pointer __attribute__((mode(pointer)));
- COMPILE_TIME_ASSERT(sizeof(size_t) == sizeof(gcc_word));
- COMPILE_TIME_ASSERT(sizeof(uintptr_t) == sizeof(gcc_pointer));
- COMPILE_TIME_ASSERT(sizeof(uintptr_t) == sizeof(void*));
-
- size_t size = control->size;
- size_t align = control->align;
- if (align < sizeof(void*))
- align = sizeof(void*);
- /* Make sure that align is power of 2. */
- if ((align & (align - 1)) != 0)
- abort();
-
- void* base = emutls_memalign_alloc(align, size);
- if (control->value)
- memcpy(base, control->value, size);
- else
- memset(base, 0, size);
- return base;
-}
-
-static pthread_mutex_t emutls_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-static size_t emutls_num_object = 0; /* number of allocated TLS objects */
-
-typedef struct emutls_address_array {
- uintptr_t size; /* number of elements in the 'data' array */
- void* data[];
-} emutls_address_array;
-
-static pthread_key_t emutls_pthread_key;
-
-static void emutls_key_destructor(void* ptr) {
- emutls_address_array* array = (emutls_address_array*)ptr;
- uintptr_t i;
- for (i = 0; i < array->size; ++i) {
- if (array->data[i])
- emutls_memalign_free(array->data[i]);
- }
- free(ptr);
-}
-
-static void emutls_init(void) {
- if (pthread_key_create(&emutls_pthread_key, emutls_key_destructor) != 0)
- abort();
-}
-
-/* Returns control->object.index; set index if not allocated yet. */
-static __inline uintptr_t emutls_get_index(__emutls_control *control) {
- uintptr_t index = __atomic_load_n(&control->object.index, __ATOMIC_ACQUIRE);
- if (!index) {
- static pthread_once_t once = PTHREAD_ONCE_INIT;
- pthread_once(&once, emutls_init);
- pthread_mutex_lock(&emutls_mutex);
- index = control->object.index;
- if (!index) {
- index = ++emutls_num_object;
- __atomic_store_n(&control->object.index, index, __ATOMIC_RELEASE);
- }
- pthread_mutex_unlock(&emutls_mutex);
- }
- return index;
-}
-
-/* Updates newly allocated thread local emutls_address_array. */
-static __inline void emutls_check_array_set_size(emutls_address_array *array,
- uintptr_t size) {
- if (array == NULL)
- abort();
- array->size = size;
- pthread_setspecific(emutls_pthread_key, (void*)array);
-}
-
-/* Returns the new 'data' array size, number of elements,
- * which must be no smaller than the given index.
- */
-static __inline uintptr_t emutls_new_data_array_size(uintptr_t index) {
- /* Need to allocate emutls_address_array with one extra slot
- * to store the data array size.
- * Round up the emutls_address_array size to multiple of 16.
- */
- return ((index + 1 + 15) & ~((uintptr_t)15)) - 1;
-}
-
-/* Returns the thread local emutls_address_array.
- * Extends its size if necessary to hold address at index.
- */
-static __inline emutls_address_array *
-emutls_get_address_array(uintptr_t index) {
- emutls_address_array* array = pthread_getspecific(emutls_pthread_key);
- if (array == NULL) {
- uintptr_t new_size = emutls_new_data_array_size(index);
- array = calloc(new_size + 1, sizeof(void*));
- emutls_check_array_set_size(array, new_size);
- } else if (index > array->size) {
- uintptr_t orig_size = array->size;
- uintptr_t new_size = emutls_new_data_array_size(index);
- array = realloc(array, (new_size + 1) * sizeof(void*));
- if (array)
- memset(array->data + orig_size, 0,
- (new_size - orig_size) * sizeof(void*));
- emutls_check_array_set_size(array, new_size);
- }
- return array;
-}
-
-void* __emutls_get_address(__emutls_control* control) {
- uintptr_t index = emutls_get_index(control);
- emutls_address_array* array = emutls_get_address_array(index);
- if (array->data[index - 1] == NULL)
- array->data[index - 1] = emutls_allocate_object(control);
- return array->data[index - 1];
-}
diff --git a/contrib/libs/cxxsupp/builtins/enable_execute_stack.c b/contrib/libs/cxxsupp/builtins/enable_execute_stack.c
deleted file mode 100644
index 0dc3482c446..00000000000
--- a/contrib/libs/cxxsupp/builtins/enable_execute_stack.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ===-- enable_execute_stack.c - Implement __enable_execute_stack ---------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifndef _WIN32
-#include <sys/mman.h>
-#endif
-
-/* #include "config.h"
- * FIXME: CMake - include when cmake system is ready.
- * Remove #define HAVE_SYSCONF 1 line.
- */
-#define HAVE_SYSCONF 1
-
-#ifdef _WIN32
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-#else
-#ifndef __APPLE__
-#include <unistd.h>
-#endif /* __APPLE__ */
-#endif /* _WIN32 */
-
-#if __LP64__
- #define TRAMPOLINE_SIZE 48
-#else
- #define TRAMPOLINE_SIZE 40
-#endif
-
-/*
- * The compiler generates calls to __enable_execute_stack() when creating
- * trampoline functions on the stack for use with nested functions.
- * It is expected to mark the page(s) containing the address
- * and the next 48 bytes as executable. Since the stack is normally rw-
- * that means changing the protection on those page(s) to rwx.
- */
-
-COMPILER_RT_ABI void
-__enable_execute_stack(void* addr)
-{
-
-#if _WIN32
- MEMORY_BASIC_INFORMATION mbi;
- if (!VirtualQuery (addr, &mbi, sizeof(mbi)))
- return; /* We should probably assert here because there is no return value */
- VirtualProtect (mbi.BaseAddress, mbi.RegionSize, PAGE_EXECUTE_READWRITE, &mbi.Protect);
-#else
-#if __APPLE__
- /* On Darwin, pagesize is always 4096 bytes */
- const uintptr_t pageSize = 4096;
-#elif !defined(HAVE_SYSCONF)
-#error "HAVE_SYSCONF not defined! See enable_execute_stack.c"
-#else
- const uintptr_t pageSize = sysconf(_SC_PAGESIZE);
-#endif /* __APPLE__ */
-
- const uintptr_t pageAlignMask = ~(pageSize-1);
- uintptr_t p = (uintptr_t)addr;
- unsigned char* startPage = (unsigned char*)(p & pageAlignMask);
- unsigned char* endPage = (unsigned char*)((p+TRAMPOLINE_SIZE+pageSize) & pageAlignMask);
- size_t length = endPage - startPage;
- (void) mprotect((void *)startPage, length, PROT_READ | PROT_WRITE | PROT_EXEC);
-#endif
-}
diff --git a/contrib/libs/cxxsupp/builtins/eprintf.c b/contrib/libs/cxxsupp/builtins/eprintf.c
deleted file mode 100644
index 89f34b15457..00000000000
--- a/contrib/libs/cxxsupp/builtins/eprintf.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* ===---------- eprintf.c - Implements __eprintf --------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-
-
-#include "int_lib.h"
-#include <stdio.h>
-
-
-/*
- * __eprintf() was used in an old version of <assert.h>.
- * It can eventually go away, but it is needed when linking
- * .o files built with the old <assert.h>.
- *
- * It should never be exported from a dylib, so it is marked
- * visibility hidden.
- */
-#ifndef _WIN32
-__attribute__((visibility("hidden")))
-#endif
-COMPILER_RT_ABI void
-__eprintf(const char* format, const char* assertion_expression,
- const char* line, const char* file)
-{
- fprintf(stderr, format, assertion_expression, line, file);
- fflush(stderr);
- compilerrt_abort();
-}
diff --git a/contrib/libs/cxxsupp/builtins/extendhfsf2.c b/contrib/libs/cxxsupp/builtins/extendhfsf2.c
deleted file mode 100644
index 27115a48c18..00000000000
--- a/contrib/libs/cxxsupp/builtins/extendhfsf2.c
+++ /dev/null
@@ -1,25 +0,0 @@
-//===-- lib/extendhfsf2.c - half -> single conversion -------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-
-#define SRC_HALF
-#define DST_SINGLE
-#include "fp_extend_impl.inc"
-
-ARM_EABI_FNALIAS(h2f, extendhfsf2)
-
-// Use a forwarding definition and noinline to implement a poor man's alias,
-// as there isn't a good cross-platform way of defining one.
-COMPILER_RT_ABI NOINLINE float __extendhfsf2(uint16_t a) {
- return __extendXfYf2__(a);
-}
-
-COMPILER_RT_ABI float __gnu_h2f_ieee(uint16_t a) {
- return __extendhfsf2(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/extendsfdf2.c b/contrib/libs/cxxsupp/builtins/extendsfdf2.c
deleted file mode 100644
index 7a267c2f47a..00000000000
--- a/contrib/libs/cxxsupp/builtins/extendsfdf2.c
+++ /dev/null
@@ -1,19 +0,0 @@
-//===-- lib/extendsfdf2.c - single -> double conversion -----------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-
-#define SRC_SINGLE
-#define DST_DOUBLE
-#include "fp_extend_impl.inc"
-
-ARM_EABI_FNALIAS(f2d, extendsfdf2)
-
-COMPILER_RT_ABI double __extendsfdf2(float a) {
- return __extendXfYf2__(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/ffsdi2.c b/contrib/libs/cxxsupp/builtins/ffsdi2.c
deleted file mode 100644
index a5ac9900ff1..00000000000
--- a/contrib/libs/cxxsupp/builtins/ffsdi2.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ===-- ffsdi2.c - Implement __ffsdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ffsdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: the index of the least significant 1-bit in a, or
- * the value zero if a is zero. The least significant bit is index one.
- */
-
-COMPILER_RT_ABI si_int
-__ffsdi2(di_int a)
-{
- dwords x;
- x.all = a;
- if (x.s.low == 0)
- {
- if (x.s.high == 0)
- return 0;
- return __builtin_ctz(x.s.high) + (1 + sizeof(si_int) * CHAR_BIT);
- }
- return __builtin_ctz(x.s.low) + 1;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ffsti2.c b/contrib/libs/cxxsupp/builtins/ffsti2.c
deleted file mode 100644
index dcdb3bd7f80..00000000000
--- a/contrib/libs/cxxsupp/builtins/ffsti2.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ===-- ffsti2.c - Implement __ffsti2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ffsti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: the index of the least significant 1-bit in a, or
- * the value zero if a is zero. The least significant bit is index one.
- */
-
-COMPILER_RT_ABI si_int
-__ffsti2(ti_int a)
-{
- twords x;
- x.all = a;
- if (x.s.low == 0)
- {
- if (x.s.high == 0)
- return 0;
- return __builtin_ctzll(x.s.high) + (1 + sizeof(di_int) * CHAR_BIT);
- }
- return __builtin_ctzll(x.s.low) + 1;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/fixdfdi.c b/contrib/libs/cxxsupp/builtins/fixdfdi.c
deleted file mode 100644
index 14283ef42e6..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixdfdi.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ===-- fixdfdi.c - Implement __fixdfdi -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-ARM_EABI_FNALIAS(d2lz, fixdfdi)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; can set the invalid
- * flag as a side-effect of computation.
- */
-
-COMPILER_RT_ABI du_int __fixunsdfdi(double a);
-
-COMPILER_RT_ABI di_int
-__fixdfdi(double a)
-{
- if (a < 0.0) {
- return -__fixunsdfdi(-a);
- }
- return __fixunsdfdi(a);
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no
- * flags to set, and we don't want to code-gen to an unknown soft-float
- * implementation.
- */
-
-typedef di_int fixint_t;
-typedef du_int fixuint_t;
-#include "fp_fixint_impl.inc"
-
-COMPILER_RT_ABI di_int
-__fixdfdi(fp_t a) {
- return __fixint(a);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixdfsi.c b/contrib/libs/cxxsupp/builtins/fixdfsi.c
deleted file mode 100644
index 704e65bc43a..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixdfsi.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* ===-- fixdfsi.c - Implement __fixdfsi -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-typedef si_int fixint_t;
-typedef su_int fixuint_t;
-#include "fp_fixint_impl.inc"
-
-ARM_EABI_FNALIAS(d2iz, fixdfsi)
-
-COMPILER_RT_ABI si_int
-__fixdfsi(fp_t a) {
- return __fixint(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/fixsfdi.c b/contrib/libs/cxxsupp/builtins/fixsfdi.c
deleted file mode 100644
index fab47e272a2..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixsfdi.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ===-- fixsfdi.c - Implement __fixsfdi -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(f2lz, fixsfdi)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; can set the invalid
- * flag as a side-effect of computation.
- */
-
-COMPILER_RT_ABI du_int __fixunssfdi(float a);
-
-COMPILER_RT_ABI di_int
-__fixsfdi(float a)
-{
- if (a < 0.0f) {
- return -__fixunssfdi(-a);
- }
- return __fixunssfdi(a);
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no
- * flags to set, and we don't want to code-gen to an unknown soft-float
- * implementation.
- */
-
-typedef di_int fixint_t;
-typedef du_int fixuint_t;
-#include "fp_fixint_impl.inc"
-
-COMPILER_RT_ABI di_int
-__fixsfdi(fp_t a) {
- return __fixint(a);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixsfsi.c b/contrib/libs/cxxsupp/builtins/fixsfsi.c
deleted file mode 100644
index f045536d685..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixsfsi.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* ===-- fixsfsi.c - Implement __fixsfsi -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-typedef si_int fixint_t;
-typedef su_int fixuint_t;
-#include "fp_fixint_impl.inc"
-
-ARM_EABI_FNALIAS(f2iz, fixsfsi)
-
-COMPILER_RT_ABI si_int
-__fixsfsi(fp_t a) {
- return __fixint(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/fixtfti.c b/contrib/libs/cxxsupp/builtins/fixtfti.c
deleted file mode 100644
index ee4ada85cb4..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixtfti.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ===-- fixtfti.c - Implement __fixtfti -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define QUAD_PRECISION
-#include "fp_lib.h"
-
-#if defined(CRT_HAS_128BIT) && defined(CRT_LDBL_128BIT)
-typedef ti_int fixint_t;
-typedef tu_int fixuint_t;
-#include "fp_fixint_impl.inc"
-
-COMPILER_RT_ABI ti_int
-__fixtfti(fp_t a) {
- return __fixint(a);
-}
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixunsdfdi.c b/contrib/libs/cxxsupp/builtins/fixunsdfdi.c
deleted file mode 100644
index 4b0bc9e1d05..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunsdfdi.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* ===-- fixunsdfdi.c - Implement __fixunsdfdi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(d2ulz, fixunsdfdi)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; can set the invalid
- * flag as a side-effect of computation.
- */
-
-COMPILER_RT_ABI du_int
-__fixunsdfdi(double a)
-{
- if (a <= 0.0) return 0;
- su_int high = a / 4294967296.f; /* a / 0x1p32f; */
- su_int low = a - (double)high * 4294967296.f; /* high * 0x1p32f; */
- return ((du_int)high << 32) | low;
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no
- * flags to set, and we don't want to code-gen to an unknown soft-float
- * implementation.
- */
-
-typedef du_int fixuint_t;
-#include "fp_fixuint_impl.inc"
-
-COMPILER_RT_ABI du_int
-__fixunsdfdi(fp_t a) {
- return __fixuint(a);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixunsdfsi.c b/contrib/libs/cxxsupp/builtins/fixunsdfsi.c
deleted file mode 100644
index 232d342d77d..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunsdfsi.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ===-- fixunsdfsi.c - Implement __fixunsdfsi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-typedef su_int fixuint_t;
-#include "fp_fixuint_impl.inc"
-
-ARM_EABI_FNALIAS(d2uiz, fixunsdfsi)
-
-COMPILER_RT_ABI su_int
-__fixunsdfsi(fp_t a) {
- return __fixuint(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/fixunssfdi.c b/contrib/libs/cxxsupp/builtins/fixunssfdi.c
deleted file mode 100644
index f8ebab854f9..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunssfdi.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* ===-- fixunssfdi.c - Implement __fixunssfdi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(f2ulz, fixunssfdi)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; can set the invalid
- * flag as a side-effect of computation.
- */
-
-COMPILER_RT_ABI du_int
-__fixunssfdi(float a)
-{
- if (a <= 0.0f) return 0;
- double da = a;
- su_int high = da / 4294967296.f; /* da / 0x1p32f; */
- su_int low = da - (double)high * 4294967296.f; /* high * 0x1p32f; */
- return ((du_int)high << 32) | low;
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no
- * flags to set, and we don't want to code-gen to an unknown soft-float
- * implementation.
- */
-
-typedef du_int fixuint_t;
-#include "fp_fixuint_impl.inc"
-
-COMPILER_RT_ABI du_int
-__fixunssfdi(fp_t a) {
- return __fixuint(a);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixunssfsi.c b/contrib/libs/cxxsupp/builtins/fixunssfsi.c
deleted file mode 100644
index cc2b05bd84f..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunssfsi.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ===-- fixunssfsi.c - Implement __fixunssfsi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __fixunssfsi for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-typedef su_int fixuint_t;
-#include "fp_fixuint_impl.inc"
-
-ARM_EABI_FNALIAS(f2uiz, fixunssfsi)
-
-COMPILER_RT_ABI su_int
-__fixunssfsi(fp_t a) {
- return __fixuint(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/fixunsxfdi.c b/contrib/libs/cxxsupp/builtins/fixunsxfdi.c
deleted file mode 100644
index 075304e78dc..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunsxfdi.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ===-- fixunsxfdi.c - Implement __fixunsxfdi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __fixunsxfdi for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: convert a to a unsigned long long, rounding toward zero.
- * Negative values all become zero.
- */
-
-/* Assumption: long double is an intel 80 bit floating point type padded with 6 bytes
- * du_int is a 64 bit integral type
- * value in long double is representable in du_int or is negative
- * (no range checking performed)
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI du_int
-__fixunsxfdi(long double a)
-{
- long_double_bits fb;
- fb.f = a;
- int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
- if (e < 0 || (fb.u.high.s.low & 0x00008000))
- return 0;
- if ((unsigned)e > sizeof(du_int) * CHAR_BIT)
- return ~(du_int)0;
- return fb.u.low.all >> (63 - e);
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/fixunsxfsi.c b/contrib/libs/cxxsupp/builtins/fixunsxfsi.c
deleted file mode 100644
index c3c70f743de..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixunsxfsi.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* ===-- fixunsxfsi.c - Implement __fixunsxfsi -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __fixunsxfsi for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: convert a to a unsigned int, rounding toward zero.
- * Negative values all become zero.
- */
-
-/* Assumption: long double is an intel 80 bit floating point type padded with 6 bytes
- * su_int is a 32 bit integral type
- * value in long double is representable in su_int or is negative
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI su_int
-__fixunsxfsi(long double a)
-{
- long_double_bits fb;
- fb.f = a;
- int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
- if (e < 0 || (fb.u.high.s.low & 0x00008000))
- return 0;
- if ((unsigned)e > sizeof(su_int) * CHAR_BIT)
- return ~(su_int)0;
- return fb.u.low.s.high >> (31 - e);
-}
-
-#endif /* !_ARCH_PPC */
diff --git a/contrib/libs/cxxsupp/builtins/fixxfdi.c b/contrib/libs/cxxsupp/builtins/fixxfdi.c
deleted file mode 100644
index 011787f9e4b..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixxfdi.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ===-- fixxfdi.c - Implement __fixxfdi -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __fixxfdi for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: convert a to a signed long long, rounding toward zero. */
-
-/* Assumption: long double is an intel 80 bit floating point type padded with 6 bytes
- * di_int is a 64 bit integral type
- * value in long double is representable in di_int (no range checking performed)
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI di_int
-__fixxfdi(long double a)
-{
- const di_int di_max = (di_int)((~(du_int)0) / 2);
- const di_int di_min = -di_max - 1;
- long_double_bits fb;
- fb.f = a;
- int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
- if (e < 0)
- return 0;
- if ((unsigned)e >= sizeof(di_int) * CHAR_BIT)
- return a > 0 ? di_max : di_min;
- di_int s = -(si_int)((fb.u.high.s.low & 0x00008000) >> 15);
- di_int r = fb.u.low.all;
- r = (du_int)r >> (63 - e);
- return (r ^ s) - s;
-}
-
-#endif /* !_ARCH_PPC */
diff --git a/contrib/libs/cxxsupp/builtins/fixxfti.c b/contrib/libs/cxxsupp/builtins/fixxfti.c
deleted file mode 100644
index 968a4f0d5ee..00000000000
--- a/contrib/libs/cxxsupp/builtins/fixxfti.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ===-- fixxfti.c - Implement __fixxfti -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __fixxfti for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: convert a to a signed long long, rounding toward zero. */
-
-/* Assumption: long double is an intel 80 bit floating point type padded with 6 bytes
- * ti_int is a 128 bit integral type
- * value in long double is representable in ti_int
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI ti_int
-__fixxfti(long double a)
-{
- const ti_int ti_max = (ti_int)((~(tu_int)0) / 2);
- const ti_int ti_min = -ti_max - 1;
- long_double_bits fb;
- fb.f = a;
- int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
- if (e < 0)
- return 0;
- ti_int s = -(si_int)((fb.u.high.s.low & 0x00008000) >> 15);
- ti_int r = fb.u.low.all;
- if ((unsigned)e >= sizeof(ti_int) * CHAR_BIT)
- return a > 0 ? ti_max : ti_min;
- if (e > 63)
- r <<= (e - 63);
- else
- r >>= (63 - e);
- return (r ^ s) - s;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/floatdidf.c b/contrib/libs/cxxsupp/builtins/floatdidf.c
deleted file mode 100644
index a300c9f312d..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatdidf.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*===-- floatdidf.c - Implement __floatdidf -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- * This file implements __floatdidf for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: convert a to a double, rounding toward even. */
-
-/* Assumption: double is a IEEE 64 bit floating point type
- * di_int is a 64 bit integral type
- */
-
-/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-
-ARM_EABI_FNALIAS(l2d, floatdidf)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; we'll set the inexact flag
- * as a side-effect of this computation.
- */
-
-COMPILER_RT_ABI double
-__floatdidf(di_int a)
-{
- static const double twop52 = 4503599627370496.0; // 0x1.0p52
- static const double twop32 = 4294967296.0; // 0x1.0p32
-
- union { int64_t x; double d; } low = { .d = twop52 };
-
- const double high = (int32_t)(a >> 32) * twop32;
- low.x |= a & INT64_C(0x00000000ffffffff);
-
- const double result = (high - twop52) + low.d;
- return result;
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no flags to
- * set, and we don't want to code-gen to an unknown soft-float implementation.
- */
-
-COMPILER_RT_ABI double
-__floatdidf(di_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(di_int) * CHAR_BIT;
- const di_int s = a >> (N-1);
- a = (a ^ s) - s;
- int sd = N - __builtin_clzll(a); /* number of significant digits */
- int e = sd - 1; /* exponent */
- if (sd > DBL_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit DBL_MANT_DIG-1 bits to the right of 1
- * Q = bit DBL_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case DBL_MANT_DIG + 1:
- a <<= 1;
- break;
- case DBL_MANT_DIG + 2:
- break;
- default:
- a = ((du_int)a >> (sd - (DBL_MANT_DIG+2))) |
- ((a & ((du_int)(-1) >> ((N + DBL_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to DBL_MANT_DIG or DBL_MANT_DIG+1 bits */
- if (a & ((du_int)1 << DBL_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to DBL_MANT_DIG bits */
- }
- else
- {
- a <<= (DBL_MANT_DIG - sd);
- /* a is now rounded to DBL_MANT_DIG bits */
- }
- double_bits fb;
- fb.u.high = ((su_int)s & 0x80000000) | /* sign */
- ((e + 1023) << 20) | /* exponent */
- ((su_int)(a >> 32) & 0x000FFFFF); /* mantissa-high */
- fb.u.low = (su_int)a; /* mantissa-low */
- return fb.f;
-}
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/floatdisf.c b/contrib/libs/cxxsupp/builtins/floatdisf.c
deleted file mode 100644
index 3e47580ef57..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatdisf.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*===-- floatdisf.c - Implement __floatdisf -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- * This file implements __floatdisf for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-/* Returns: convert a to a float, rounding toward even.*/
-
-/* Assumption: float is a IEEE 32 bit floating point type
- * di_int is a 64 bit integral type
- */
-
-/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(l2f, floatdisf)
-
-COMPILER_RT_ABI float
-__floatdisf(di_int a)
-{
- if (a == 0)
- return 0.0F;
- const unsigned N = sizeof(di_int) * CHAR_BIT;
- const di_int s = a >> (N-1);
- a = (a ^ s) - s;
- int sd = N - __builtin_clzll(a); /* number of significant digits */
- int e = sd - 1; /* exponent */
- if (sd > FLT_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit FLT_MANT_DIG-1 bits to the right of 1
- * Q = bit FLT_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case FLT_MANT_DIG + 1:
- a <<= 1;
- break;
- case FLT_MANT_DIG + 2:
- break;
- default:
- a = ((du_int)a >> (sd - (FLT_MANT_DIG+2))) |
- ((a & ((du_int)(-1) >> ((N + FLT_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits */
- if (a & ((du_int)1 << FLT_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to FLT_MANT_DIG bits */
- }
- else
- {
- a <<= (FLT_MANT_DIG - sd);
- /* a is now rounded to FLT_MANT_DIG bits */
- }
- float_bits fb;
- fb.u = ((su_int)s & 0x80000000) | /* sign */
- ((e + 127) << 23) | /* exponent */
- ((su_int)a & 0x007FFFFF); /* mantissa */
- return fb.f;
-}
diff --git a/contrib/libs/cxxsupp/builtins/floatdixf.c b/contrib/libs/cxxsupp/builtins/floatdixf.c
deleted file mode 100644
index d39e81d7ca7..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatdixf.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ===-- floatdixf.c - Implement __floatdixf -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floatdixf for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: convert a to a long double, rounding toward even. */
-
-/* Assumption: long double is a IEEE 80 bit floating point type padded to 128 bits
- * di_int is a 64 bit integral type
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI long double
-__floatdixf(di_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(di_int) * CHAR_BIT;
- const di_int s = a >> (N-1);
- a = (a ^ s) - s;
- int clz = __builtin_clzll(a);
- int e = (N - 1) - clz ; /* exponent */
- long_double_bits fb;
- fb.u.high.s.low = ((su_int)s & 0x00008000) | /* sign */
- (e + 16383); /* exponent */
- fb.u.low.all = a << clz; /* mantissa */
- return fb.f;
-}
-
-#endif /* !_ARCH_PPC */
diff --git a/contrib/libs/cxxsupp/builtins/floatsidf.c b/contrib/libs/cxxsupp/builtins/floatsidf.c
deleted file mode 100644
index 1cf99b782a6..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatsidf.c
+++ /dev/null
@@ -1,53 +0,0 @@
-//===-- lib/floatsidf.c - integer -> double-precision conversion --*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements integer to double-precision conversion for the
-// compiler-rt library in the IEEE-754 default round-to-nearest, ties-to-even
-// mode.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(i2d, floatsidf)
-
-COMPILER_RT_ABI fp_t
-__floatsidf(int a) {
-
- const int aWidth = sizeof a * CHAR_BIT;
-
- // Handle zero as a special case to protect clz
- if (a == 0)
- return fromRep(0);
-
- // All other cases begin by extracting the sign and absolute value of a
- rep_t sign = 0;
- if (a < 0) {
- sign = signBit;
- a = -a;
- }
-
- // Exponent of (fp_t)a is the width of abs(a).
- const int exponent = (aWidth - 1) - __builtin_clz(a);
- rep_t result;
-
- // Shift a into the significand field and clear the implicit bit. Extra
- // cast to unsigned int is necessary to get the correct behavior for
- // the input INT_MIN.
- const int shift = significandBits - exponent;
- result = (rep_t)(unsigned int)a << shift ^ implicitBit;
-
- // Insert the exponent
- result += (rep_t)(exponent + exponentBias) << significandBits;
- // Insert the sign bit and return
- return fromRep(result | sign);
-}
diff --git a/contrib/libs/cxxsupp/builtins/floatsisf.c b/contrib/libs/cxxsupp/builtins/floatsisf.c
deleted file mode 100644
index 467dd1d1eaf..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatsisf.c
+++ /dev/null
@@ -1,59 +0,0 @@
-//===-- lib/floatsisf.c - integer -> single-precision conversion --*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements integer to single-precision conversion for the
-// compiler-rt library in the IEEE-754 default round-to-nearest, ties-to-even
-// mode.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(i2f, floatsisf)
-
-COMPILER_RT_ABI fp_t
-__floatsisf(int a) {
-
- const int aWidth = sizeof a * CHAR_BIT;
-
- // Handle zero as a special case to protect clz
- if (a == 0)
- return fromRep(0);
-
- // All other cases begin by extracting the sign and absolute value of a
- rep_t sign = 0;
- if (a < 0) {
- sign = signBit;
- a = -a;
- }
-
- // Exponent of (fp_t)a is the width of abs(a).
- const int exponent = (aWidth - 1) - __builtin_clz(a);
- rep_t result;
-
- // Shift a into the significand field, rounding if it is a right-shift
- if (exponent <= significandBits) {
- const int shift = significandBits - exponent;
- result = (rep_t)a << shift ^ implicitBit;
- } else {
- const int shift = exponent - significandBits;
- result = (rep_t)a >> shift ^ implicitBit;
- rep_t round = (rep_t)a << (typeWidth - shift);
- if (round > signBit) result++;
- if (round == signBit) result += result & 1;
- }
-
- // Insert the exponent
- result += (rep_t)(exponent + exponentBias) << significandBits;
- // Insert the sign bit and return
- return fromRep(result | sign);
-}
diff --git a/contrib/libs/cxxsupp/builtins/floattixf.c b/contrib/libs/cxxsupp/builtins/floattixf.c
deleted file mode 100644
index 1203b3a96e7..00000000000
--- a/contrib/libs/cxxsupp/builtins/floattixf.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ===-- floattixf.c - Implement __floattixf -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floattixf for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: convert a to a long double, rounding toward even. */
-
-/* Assumption: long double is a IEEE 80 bit floating point type padded to 128 bits
- * ti_int is a 128 bit integral type
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI long double
-__floattixf(ti_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(ti_int) * CHAR_BIT;
- const ti_int s = a >> (N-1);
- a = (a ^ s) - s;
- int sd = N - __clzti2(a); /* number of significant digits */
- int e = sd - 1; /* exponent */
- if (sd > LDBL_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit LDBL_MANT_DIG-1 bits to the right of 1
- * Q = bit LDBL_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case LDBL_MANT_DIG + 1:
- a <<= 1;
- break;
- case LDBL_MANT_DIG + 2:
- break;
- default:
- a = ((tu_int)a >> (sd - (LDBL_MANT_DIG+2))) |
- ((a & ((tu_int)(-1) >> ((N + LDBL_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits */
- if (a & ((tu_int)1 << LDBL_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to LDBL_MANT_DIG bits */
- }
- else
- {
- a <<= (LDBL_MANT_DIG - sd);
- /* a is now rounded to LDBL_MANT_DIG bits */
- }
- long_double_bits fb;
- fb.u.high.s.low = ((su_int)s & 0x8000) | /* sign */
- (e + 16383); /* exponent */
- fb.u.low.all = (du_int)a; /* mantissa */
- return fb.f;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/floatundidf.c b/contrib/libs/cxxsupp/builtins/floatundidf.c
deleted file mode 100644
index 67aa86e5e5b..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatundidf.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ===-- floatundidf.c - Implement __floatundidf ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floatundidf for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-/* Returns: convert a to a double, rounding toward even. */
-
-/* Assumption: double is a IEEE 64 bit floating point type
- * du_int is a 64 bit integral type
- */
-
-/* seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm */
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(ul2d, floatundidf)
-
-#ifndef __SOFT_FP__
-/* Support for systems that have hardware floating-point; we'll set the inexact flag
- * as a side-effect of this computation.
- */
-
-COMPILER_RT_ABI double
-__floatundidf(du_int a)
-{
- static const double twop52 = 4503599627370496.0; // 0x1.0p52
- static const double twop84 = 19342813113834066795298816.0; // 0x1.0p84
- static const double twop84_plus_twop52 = 19342813118337666422669312.0; // 0x1.00000001p84
-
- union { uint64_t x; double d; } high = { .d = twop84 };
- union { uint64_t x; double d; } low = { .d = twop52 };
-
- high.x |= a >> 32;
- low.x |= a & UINT64_C(0x00000000ffffffff);
-
- const double result = (high.d - twop84_plus_twop52) + low.d;
- return result;
-}
-
-#else
-/* Support for systems that don't have hardware floating-point; there are no flags to
- * set, and we don't want to code-gen to an unknown soft-float implementation.
- */
-
-COMPILER_RT_ABI double
-__floatundidf(du_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(du_int) * CHAR_BIT;
- int sd = N - __builtin_clzll(a); /* number of significant digits */
- int e = sd - 1; /* exponent */
- if (sd > DBL_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit DBL_MANT_DIG-1 bits to the right of 1
- * Q = bit DBL_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case DBL_MANT_DIG + 1:
- a <<= 1;
- break;
- case DBL_MANT_DIG + 2:
- break;
- default:
- a = (a >> (sd - (DBL_MANT_DIG+2))) |
- ((a & ((du_int)(-1) >> ((N + DBL_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to DBL_MANT_DIG or DBL_MANT_DIG+1 bits */
- if (a & ((du_int)1 << DBL_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to DBL_MANT_DIG bits */
- }
- else
- {
- a <<= (DBL_MANT_DIG - sd);
- /* a is now rounded to DBL_MANT_DIG bits */
- }
- double_bits fb;
- fb.u.high = ((e + 1023) << 20) | /* exponent */
- ((su_int)(a >> 32) & 0x000FFFFF); /* mantissa-high */
- fb.u.low = (su_int)a; /* mantissa-low */
- return fb.f;
-}
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/floatundisf.c b/contrib/libs/cxxsupp/builtins/floatundisf.c
deleted file mode 100644
index 713a44abc8b..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatundisf.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*===-- floatundisf.c - Implement __floatundisf ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floatundisf for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-/* Returns: convert a to a float, rounding toward even. */
-
-/* Assumption: float is a IEEE 32 bit floating point type
- * du_int is a 64 bit integral type
- */
-
-/* seee eeee emmm mmmm mmmm mmmm mmmm mmmm */
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(ul2f, floatundisf)
-
-COMPILER_RT_ABI float
-__floatundisf(du_int a)
-{
- if (a == 0)
- return 0.0F;
- const unsigned N = sizeof(du_int) * CHAR_BIT;
- int sd = N - __builtin_clzll(a); /* number of significant digits */
- int e = sd - 1; /* 8 exponent */
- if (sd > FLT_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit FLT_MANT_DIG-1 bits to the right of 1
- * Q = bit FLT_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case FLT_MANT_DIG + 1:
- a <<= 1;
- break;
- case FLT_MANT_DIG + 2:
- break;
- default:
- a = (a >> (sd - (FLT_MANT_DIG+2))) |
- ((a & ((du_int)(-1) >> ((N + FLT_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits */
- if (a & ((du_int)1 << FLT_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to FLT_MANT_DIG bits */
- }
- else
- {
- a <<= (FLT_MANT_DIG - sd);
- /* a is now rounded to FLT_MANT_DIG bits */
- }
- float_bits fb;
- fb.u = ((e + 127) << 23) | /* exponent */
- ((su_int)a & 0x007FFFFF); /* mantissa */
- return fb.f;
-}
diff --git a/contrib/libs/cxxsupp/builtins/floatundixf.c b/contrib/libs/cxxsupp/builtins/floatundixf.c
deleted file mode 100644
index ca5e06d64dc..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatundixf.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ===-- floatundixf.c - Implement __floatundixf ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floatundixf for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: convert a to a long double, rounding toward even. */
-
-/* Assumption: long double is a IEEE 80 bit floating point type padded to 128 bits
- * du_int is a 64 bit integral type
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-COMPILER_RT_ABI long double
-__floatundixf(du_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(du_int) * CHAR_BIT;
- int clz = __builtin_clzll(a);
- int e = (N - 1) - clz ; /* exponent */
- long_double_bits fb;
- fb.u.high.s.low = (e + 16383); /* exponent */
- fb.u.low.all = a << clz; /* mantissa */
- return fb.f;
-}
-
-#endif /* _ARCH_PPC */
diff --git a/contrib/libs/cxxsupp/builtins/floatunsidf.c b/contrib/libs/cxxsupp/builtins/floatunsidf.c
deleted file mode 100644
index 445e18041c4..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatunsidf.c
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- lib/floatunsidf.c - uint -> double-precision conversion ---*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements unsigned integer to double-precision conversion for the
-// compiler-rt library in the IEEE-754 default round-to-nearest, ties-to-even
-// mode.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(ui2d, floatunsidf)
-
-COMPILER_RT_ABI fp_t
-__floatunsidf(unsigned int a) {
-
- const int aWidth = sizeof a * CHAR_BIT;
-
- // Handle zero as a special case to protect clz
- if (a == 0) return fromRep(0);
-
- // Exponent of (fp_t)a is the width of abs(a).
- const int exponent = (aWidth - 1) - __builtin_clz(a);
- rep_t result;
-
- // Shift a into the significand field and clear the implicit bit.
- const int shift = significandBits - exponent;
- result = (rep_t)a << shift ^ implicitBit;
-
- // Insert the exponent
- result += (rep_t)(exponent + exponentBias) << significandBits;
- return fromRep(result);
-}
diff --git a/contrib/libs/cxxsupp/builtins/floatunsisf.c b/contrib/libs/cxxsupp/builtins/floatunsisf.c
deleted file mode 100644
index ea6f161adc0..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatunsisf.c
+++ /dev/null
@@ -1,50 +0,0 @@
-//===-- lib/floatunsisf.c - uint -> single-precision conversion ---*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements unsigned integer to single-precision conversion for the
-// compiler-rt library in the IEEE-754 default round-to-nearest, ties-to-even
-// mode.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-#include "int_lib.h"
-
-ARM_EABI_FNALIAS(ui2f, floatunsisf)
-
-COMPILER_RT_ABI fp_t
-__floatunsisf(unsigned int a) {
-
- const int aWidth = sizeof a * CHAR_BIT;
-
- // Handle zero as a special case to protect clz
- if (a == 0) return fromRep(0);
-
- // Exponent of (fp_t)a is the width of abs(a).
- const int exponent = (aWidth - 1) - __builtin_clz(a);
- rep_t result;
-
- // Shift a into the significand field, rounding if it is a right-shift
- if (exponent <= significandBits) {
- const int shift = significandBits - exponent;
- result = (rep_t)a << shift ^ implicitBit;
- } else {
- const int shift = exponent - significandBits;
- result = (rep_t)a >> shift ^ implicitBit;
- rep_t round = (rep_t)a << (typeWidth - shift);
- if (round > signBit) result++;
- if (round == signBit) result += result & 1;
- }
-
- // Insert the exponent
- result += (rep_t)(exponent + exponentBias) << significandBits;
- return fromRep(result);
-}
diff --git a/contrib/libs/cxxsupp/builtins/floatuntixf.c b/contrib/libs/cxxsupp/builtins/floatuntixf.c
deleted file mode 100644
index ea81cb1bcda..00000000000
--- a/contrib/libs/cxxsupp/builtins/floatuntixf.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* ===-- floatuntixf.c - Implement __floatuntixf ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __floatuntixf for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: convert a to a long double, rounding toward even. */
-
-/* Assumption: long double is a IEEE 80 bit floating point type padded to 128 bits
- * tu_int is a 128 bit integral type
- */
-
-/* gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
- * 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
- */
-
-COMPILER_RT_ABI long double
-__floatuntixf(tu_int a)
-{
- if (a == 0)
- return 0.0;
- const unsigned N = sizeof(tu_int) * CHAR_BIT;
- int sd = N - __clzti2(a); /* number of significant digits */
- int e = sd - 1; /* exponent */
- if (sd > LDBL_MANT_DIG)
- {
- /* start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx
- * finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR
- * 12345678901234567890123456
- * 1 = msb 1 bit
- * P = bit LDBL_MANT_DIG-1 bits to the right of 1
- * Q = bit LDBL_MANT_DIG bits to the right of 1
- * R = "or" of all bits to the right of Q
- */
- switch (sd)
- {
- case LDBL_MANT_DIG + 1:
- a <<= 1;
- break;
- case LDBL_MANT_DIG + 2:
- break;
- default:
- a = (a >> (sd - (LDBL_MANT_DIG+2))) |
- ((a & ((tu_int)(-1) >> ((N + LDBL_MANT_DIG+2) - sd))) != 0);
- };
- /* finish: */
- a |= (a & 4) != 0; /* Or P into R */
- ++a; /* round - this step may add a significant bit */
- a >>= 2; /* dump Q and R */
- /* a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits */
- if (a & ((tu_int)1 << LDBL_MANT_DIG))
- {
- a >>= 1;
- ++e;
- }
- /* a is now rounded to LDBL_MANT_DIG bits */
- }
- else
- {
- a <<= (LDBL_MANT_DIG - sd);
- /* a is now rounded to LDBL_MANT_DIG bits */
- }
- long_double_bits fb;
- fb.u.high.s.low = (e + 16383); /* exponent */
- fb.u.low.all = (du_int)a; /* mantissa */
- return fb.f;
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/i386/Makefile.mk b/contrib/libs/cxxsupp/builtins/i386/Makefile.mk
deleted file mode 100644
index f3776a02c0d..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/i386/Makefile.mk ------------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := i386
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/i386/ashldi3.S b/contrib/libs/cxxsupp/builtins/i386/ashldi3.S
deleted file mode 100644
index 3fbd7390384..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/ashldi3.S
+++ /dev/null
@@ -1,58 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __ashldi3(di_int input, int count);
-
-// This routine has some extra memory traffic, loading the 64-bit input via two
-// 32-bit loads, then immediately storing it back to the stack via a single 64-bit
-// store. This is to avoid a write-small, read-large stall.
-// However, if callers of this routine can be safely assumed to store the argument
-// via a 64-bt store, this is unnecessary memory traffic, and should be avoided.
-// It can be turned off by defining the TRUST_CALLERS_USE_64_BIT_STORES macro.
-
-#ifdef __i386__
-#ifdef __SSE2__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__ashldi3)
- movd 12(%esp), %xmm2 // Load count
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0 // Load input
-#else
- movq 4(%esp), %xmm0 // Load input
-#endif
- psllq %xmm2, %xmm0 // shift input by count
- movd %xmm0, %eax
- psrlq $32, %xmm0
- movd %xmm0, %edx
- ret
-END_COMPILERRT_FUNCTION(__ashldi3)
-
-#else // Use GPRs instead of SSE2 instructions, if they aren't available.
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__ashldi3)
- movl 12(%esp), %ecx // Load count
- movl 8(%esp), %edx // Load high
- movl 4(%esp), %eax // Load low
-
- testl $0x20, %ecx // If count >= 32
- jnz 1f // goto 1
- shldl %cl, %eax, %edx // left shift high by count
- shll %cl, %eax // left shift low by count
- ret
-
-1: movl %eax, %edx // Move low to high
- xorl %eax, %eax // clear low
- shll %cl, %edx // shift high by count - 32
- ret
-END_COMPILERRT_FUNCTION(__ashldi3)
-
-#endif // __SSE2__
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/ashrdi3.S b/contrib/libs/cxxsupp/builtins/i386/ashrdi3.S
deleted file mode 100644
index 8f4742481b4..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/ashrdi3.S
+++ /dev/null
@@ -1,69 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __ashrdi3(di_int input, int count);
-
-#ifdef __i386__
-#ifdef __SSE2__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__ashrdi3)
- movd 12(%esp), %xmm2 // Load count
- movl 8(%esp), %eax
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0 // Load input
-#else
- movq 4(%esp), %xmm0 // Load input
-#endif
-
- psrlq %xmm2, %xmm0 // unsigned shift input by count
-
- testl %eax, %eax // check the sign-bit of the input
- jns 1f // early out for positive inputs
-
- // If the input is negative, we need to construct the shifted sign bit
- // to or into the result, as xmm does not have a signed right shift.
- pcmpeqb %xmm1, %xmm1 // -1ULL
- psrlq $58, %xmm1 // 0x3f
- pandn %xmm1, %xmm2 // 63 - count
- pcmpeqb %xmm1, %xmm1 // -1ULL
- psubq %xmm1, %xmm2 // 64 - count
- psllq %xmm2, %xmm1 // -1 << (64 - count) = leading sign bits
- por %xmm1, %xmm0
-
- // Move the result back to the general purpose registers and return
-1: movd %xmm0, %eax
- psrlq $32, %xmm0
- movd %xmm0, %edx
- ret
-END_COMPILERRT_FUNCTION(__ashrdi3)
-
-#else // Use GPRs instead of SSE2 instructions, if they aren't available.
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__ashrdi3)
- movl 12(%esp), %ecx // Load count
- movl 8(%esp), %edx // Load high
- movl 4(%esp), %eax // Load low
-
- testl $0x20, %ecx // If count >= 32
- jnz 1f // goto 1
-
- shrdl %cl, %edx, %eax // right shift low by count
- sarl %cl, %edx // right shift high by count
- ret
-
-1: movl %edx, %eax // Move high to low
- sarl $31, %edx // clear high
- sarl %cl, %eax // shift low by count - 32
- ret
-END_COMPILERRT_FUNCTION(__ashrdi3)
-
-#endif // __SSE2__
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/chkstk.S b/contrib/libs/cxxsupp/builtins/i386/chkstk.S
deleted file mode 100644
index b59974868f2..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/chkstk.S
+++ /dev/null
@@ -1,34 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// _chkstk routine
-// This routine is windows specific
-// http://msdn.microsoft.com/en-us/library/ms648426.aspx
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__chkstk_ms)
- push %ecx
- push %eax
- cmp $0x1000,%eax
- lea 12(%esp),%ecx
- jb 1f
-2:
- sub $0x1000,%ecx
- test %ecx,(%ecx)
- sub $0x1000,%eax
- cmp $0x1000,%eax
- ja 2b
-1:
- sub %eax,%ecx
- test %ecx,(%ecx)
- pop %eax
- pop %ecx
- ret
-END_COMPILERRT_FUNCTION(__chkstk_ms)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/chkstk2.S b/contrib/libs/cxxsupp/builtins/i386/chkstk2.S
deleted file mode 100644
index 7d65bb08892..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/chkstk2.S
+++ /dev/null
@@ -1,40 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-#ifdef __i386__
-
-// _chkstk (_alloca) routine - probe stack between %esp and (%esp-%eax) in 4k increments,
-// then decrement %esp by %eax. Preserves all registers except %esp and flags.
-// This routine is windows specific
-// http://msdn.microsoft.com/en-us/library/ms648426.aspx
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(_alloca) // _chkstk and _alloca are the same function
-DEFINE_COMPILERRT_FUNCTION(__chkstk)
- push %ecx
- cmp $0x1000,%eax
- lea 8(%esp),%ecx // esp before calling this routine -> ecx
- jb 1f
-2:
- sub $0x1000,%ecx
- test %ecx,(%ecx)
- sub $0x1000,%eax
- cmp $0x1000,%eax
- ja 2b
-1:
- sub %eax,%ecx
- test %ecx,(%ecx)
-
- lea 4(%esp),%eax // load pointer to the return address into eax
- mov %ecx,%esp // install the new top of stack pointer into esp
- mov -4(%eax),%ecx // restore ecx
- push (%eax) // push return address onto the stack
- sub %esp,%eax // restore the original value in eax
- ret
-END_COMPILERRT_FUNCTION(__chkstk)
-END_COMPILERRT_FUNCTION(_alloca)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/divdi3.S b/contrib/libs/cxxsupp/builtins/i386/divdi3.S
deleted file mode 100644
index 2cb0ddd4c29..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/divdi3.S
+++ /dev/null
@@ -1,162 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __divdi3(di_int a, di_int b);
-
-// result = a / b.
-// both inputs and the output are 64-bit signed integers.
-// This will do whatever the underlying hardware is set to do on division by zero.
-// No other exceptions are generated, as the divide cannot overflow.
-//
-// This is targeted at 32-bit x86 *only*, as this can be done directly in hardware
-// on x86_64. The performance goal is ~40 cycles per divide, which is faster than
-// currently possible via simulation of integer divides on the x87 unit.
-//
-// Stephen Canon, December 2008
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__divdi3)
-
-/* This is currently implemented by wrapping the unsigned divide up in an absolute
- value, then restoring the correct sign at the end of the computation. This could
- certainly be improved upon. */
-
- pushl %esi
- movl 20(%esp), %edx // high word of b
- movl 16(%esp), %eax // low word of b
- movl %edx, %ecx
- sarl $31, %ecx // (b < 0) ? -1 : 0
- xorl %ecx, %eax
- xorl %ecx, %edx // EDX:EAX = (b < 0) ? not(b) : b
- subl %ecx, %eax
- sbbl %ecx, %edx // EDX:EAX = abs(b)
- movl %edx, 20(%esp)
- movl %eax, 16(%esp) // store abs(b) back to stack
- movl %ecx, %esi // set aside sign of b
-
- movl 12(%esp), %edx // high word of b
- movl 8(%esp), %eax // low word of b
- movl %edx, %ecx
- sarl $31, %ecx // (a < 0) ? -1 : 0
- xorl %ecx, %eax
- xorl %ecx, %edx // EDX:EAX = (a < 0) ? not(a) : a
- subl %ecx, %eax
- sbbl %ecx, %edx // EDX:EAX = abs(a)
- movl %edx, 12(%esp)
- movl %eax, 8(%esp) // store abs(a) back to stack
- xorl %ecx, %esi // sign of result = (sign of a) ^ (sign of b)
-
- pushl %ebx
- movl 24(%esp), %ebx // Find the index i of the leading bit in b.
- bsrl %ebx, %ecx // If the high word of b is zero, jump to
- jz 9f // the code to handle that special case [9].
-
- /* High word of b is known to be non-zero on this branch */
-
- movl 20(%esp), %eax // Construct bhi, containing bits [1+i:32+i] of b
-
- shrl %cl, %eax // Practically, this means that bhi is given by:
- shrl %eax //
- notl %ecx // bhi = (high word of b) << (31 - i) |
- shll %cl, %ebx // (low word of b) >> (1 + i)
- orl %eax, %ebx //
- movl 16(%esp), %edx // Load the high and low words of a, and jump
- movl 12(%esp), %eax // to [1] if the high word is larger than bhi
- cmpl %ebx, %edx // to avoid overflowing the upcoming divide.
- jae 1f
-
- /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- divl %ebx // eax <-- qs, edx <-- r such that ahi:alo = bs*qs + r
-
- pushl %edi
- notl %ecx
- shrl %eax
- shrl %cl, %eax // q = qs >> (1 + i)
- movl %eax, %edi
- mull 24(%esp) // q*blo
- movl 16(%esp), %ebx
- movl 20(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 28(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
- sbbl $0, %edi // decrement q if remainder is negative
- xorl %edx, %edx
- movl %edi, %eax
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %edi // Restore callee-save registers
- popl %ebx
- popl %esi
- retl // Return
-
-
-1: /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- subl %ebx, %edx // subtract bhi from ahi so that divide will not
- divl %ebx // overflow, and find q and r such that
- //
- // ahi:alo = (1:q)*bhi + r
- //
- // Note that q is a number in (31-i).(1+i)
- // fix point.
-
- pushl %edi
- notl %ecx
- shrl %eax
- orl $0x80000000, %eax
- shrl %cl, %eax // q = (1:qs) >> (1 + i)
- movl %eax, %edi
- mull 24(%esp) // q*blo
- movl 16(%esp), %ebx
- movl 20(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 28(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
- sbbl $0, %edi // decrement q if remainder is negative
- xorl %edx, %edx
- movl %edi, %eax
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %edi // Restore callee-save registers
- popl %ebx
- popl %esi
- retl // Return
-
-
-9: /* High word of b is zero on this branch */
-
- movl 16(%esp), %eax // Find qhi and rhi such that
- movl 20(%esp), %ecx //
- xorl %edx, %edx // ahi = qhi*b + rhi with 0 ≤ rhi < b
- divl %ecx //
- movl %eax, %ebx //
- movl 12(%esp), %eax // Find qlo such that
- divl %ecx //
- movl %ebx, %edx // rhi:alo = qlo*b + rlo with 0 ≤ rlo < b
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %ebx // Restore callee-save registers
- popl %esi
- retl // Return
-END_COMPILERRT_FUNCTION(__divdi3)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatdidf.S b/contrib/libs/cxxsupp/builtins/i386/floatdidf.S
deleted file mode 100644
index dcc32f8ed85..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatdidf.S
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// double __floatundidf(du_int a);
-
-#ifdef __i386__
-
-CONST_SECTION
-
- .balign 16
-twop52:
- .quad 0x4330000000000000
-
- .balign 16
-twop32:
- .quad 0x41f0000000000000
-
-#define REL_ADDR(_a) (_a)-0b(%eax)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatdidf)
- cvtsi2sd 8(%esp), %xmm1
- movss 4(%esp), %xmm0 // low 32 bits of a
- calll 0f
-0: popl %eax
- mulsd REL_ADDR(twop32), %xmm1 // a_hi as a double (without rounding)
- movsd REL_ADDR(twop52), %xmm2 // 0x1.0p52
- subsd %xmm2, %xmm1 // a_hi - 0x1p52 (no rounding occurs)
- orpd %xmm2, %xmm0 // 0x1p52 + a_lo (no rounding occurs)
- addsd %xmm1, %xmm0 // a_hi + a_lo (round happens here)
- movsd %xmm0, 4(%esp)
- fldl 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatdidf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatdisf.S b/contrib/libs/cxxsupp/builtins/i386/floatdisf.S
deleted file mode 100644
index f6427670360..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatdisf.S
+++ /dev/null
@@ -1,32 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// float __floatdisf(di_int a);
-
-// This routine has some extra memory traffic, loading the 64-bit input via two
-// 32-bit loads, then immediately storing it back to the stack via a single 64-bit
-// store. This is to avoid a write-small, read-large stall.
-// However, if callers of this routine can be safely assumed to store the argument
-// via a 64-bt store, this is unnecessary memory traffic, and should be avoided.
-// It can be turned off by defining the TRUST_CALLERS_USE_64_BIT_STORES macro.
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatdisf)
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0
- movq %xmm0, 4(%esp)
-#endif
- fildll 4(%esp)
- fstps 4(%esp)
- flds 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatdisf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatdixf.S b/contrib/libs/cxxsupp/builtins/i386/floatdixf.S
deleted file mode 100644
index 839b0434c0c..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatdixf.S
+++ /dev/null
@@ -1,30 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// float __floatdixf(di_int a);
-
-#ifdef __i386__
-
-// This routine has some extra memory traffic, loading the 64-bit input via two
-// 32-bit loads, then immediately storing it back to the stack via a single 64-bit
-// store. This is to avoid a write-small, read-large stall.
-// However, if callers of this routine can be safely assumed to store the argument
-// via a 64-bt store, this is unnecessary memory traffic, and should be avoided.
-// It can be turned off by defining the TRUST_CALLERS_USE_64_BIT_STORES macro.
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatdixf)
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0
- movq %xmm0, 4(%esp)
-#endif
- fildll 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatdixf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatundidf.S b/contrib/libs/cxxsupp/builtins/i386/floatundidf.S
deleted file mode 100644
index 8058c2ac0ae..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatundidf.S
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- floatundidf.S - Implement __floatundidf for i386 ------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements __floatundidf for the compiler_rt library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// double __floatundidf(du_int a);
-
-#ifdef __i386__
-
-CONST_SECTION
-
- .balign 16
-twop52:
- .quad 0x4330000000000000
-
- .balign 16
-twop84_plus_twop52:
- .quad 0x4530000000100000
-
- .balign 16
-twop84:
- .quad 0x4530000000000000
-
-#define REL_ADDR(_a) (_a)-0b(%eax)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundidf)
- movss 8(%esp), %xmm1 // high 32 bits of a
- movss 4(%esp), %xmm0 // low 32 bits of a
- calll 0f
-0: popl %eax
- orpd REL_ADDR(twop84), %xmm1 // 0x1p84 + a_hi (no rounding occurs)
- subsd REL_ADDR(twop84_plus_twop52), %xmm1 // a_hi - 0x1p52 (no rounding occurs)
- orpd REL_ADDR(twop52), %xmm0 // 0x1p52 + a_lo (no rounding occurs)
- addsd %xmm1, %xmm0 // a_hi + a_lo (round happens here)
- movsd %xmm0, 4(%esp)
- fldl 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatundidf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatundisf.S b/contrib/libs/cxxsupp/builtins/i386/floatundisf.S
deleted file mode 100644
index 94c97e25aa8..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatundisf.S
+++ /dev/null
@@ -1,105 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// float __floatundisf(du_int a);
-
-// Note that there is a hardware instruction, fildll, that does most of what
-// this function needs to do. However, because of our ia32 ABI, it will take
-// a write-small read-large stall, so the software implementation here is
-// actually several cycles faster.
-
-// This is a branch-free implementation. A branchy implementation might be
-// faster for the common case if you know something a priori about the input
-// distribution.
-
-/* branch-free x87 implementation - one cycle slower than without x87.
-
-#ifdef __i386__
-
-CONST_SECTION
-.balign 3
-
- .quad 0x43f0000000000000
-twop64: .quad 0x0000000000000000
-
-#define TWOp64 twop64-0b(%ecx,%eax,8)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundisf)
- movl 8(%esp), %eax
- movd 8(%esp), %xmm1
- movd 4(%esp), %xmm0
- punpckldq %xmm1, %xmm0
- calll 0f
-0: popl %ecx
- sarl $31, %eax
- movq %xmm0, 4(%esp)
- fildll 4(%esp)
- faddl TWOp64
- fstps 4(%esp)
- flds 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatundisf)
-
-#endif // __i386__
-
-*/
-
-/* branch-free, x87-free implementation - faster at the expense of code size */
-
-#ifdef __i386__
-
-CONST_SECTION
-
- .balign 16
-twop52:
- .quad 0x4330000000000000
- .quad 0x0000000000000fff
-
- .balign 16
-sticky:
- .quad 0x0000000000000000
- .long 0x00000012
-
- .balign 16
-twelve:
- .long 0x00000000
-
-#define TWOp52 twop52-0b(%ecx)
-#define STICKY sticky-0b(%ecx,%eax,8)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundisf)
- movl 8(%esp), %eax
- movd 8(%esp), %xmm1
- movd 4(%esp), %xmm0
- punpckldq %xmm1, %xmm0
-
- calll 0f
-0: popl %ecx
- shrl %eax // high 31 bits of input as sint32
- addl $0x7ff80000, %eax
- sarl $31, %eax // (big input) ? -1 : 0
- movsd STICKY, %xmm1 // (big input) ? 0xfff : 0
- movl $12, %edx
- andl %eax, %edx // (big input) ? 12 : 0
- movd %edx, %xmm3
- andpd %xmm0, %xmm1 // (big input) ? input & 0xfff : 0
- movsd TWOp52, %xmm2 // 0x1.0p52
- psrlq %xmm3, %xmm0 // (big input) ? input >> 12 : input
- orpd %xmm2, %xmm1 // 0x1.0p52 + ((big input) ? input & 0xfff : input)
- orpd %xmm1, %xmm0 // 0x1.0p52 + ((big input) ? (input >> 12 | input & 0xfff) : input)
- subsd %xmm2, %xmm0 // (double)((big input) ? (input >> 12 | input & 0xfff) : input)
- cvtsd2ss %xmm0, %xmm0 // (float)((big input) ? (input >> 12 | input & 0xfff) : input)
- pslld $23, %xmm3
- paddd %xmm3, %xmm0 // (float)input
- movd %xmm0, 4(%esp)
- flds 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatundisf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/floatundixf.S b/contrib/libs/cxxsupp/builtins/i386/floatundixf.S
deleted file mode 100644
index 814b52f941d..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/floatundixf.S
+++ /dev/null
@@ -1,43 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// long double __floatundixf(du_int a);16
-
-#ifdef __i386__
-
-CONST_SECTION
-
- .balign 16
-twop52:
- .quad 0x4330000000000000
-
- .balign 16
-twop84_plus_twop52_neg:
- .quad 0xc530000000100000
-
- .balign 16
-twop84:
- .quad 0x4530000000000000
-
-#define REL_ADDR(_a) (_a)-0b(%eax)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundixf)
- calll 0f
-0: popl %eax
- movss 8(%esp), %xmm0 // hi 32 bits of input
- movss 4(%esp), %xmm1 // lo 32 bits of input
- orpd REL_ADDR(twop84), %xmm0 // 2^84 + hi (as a double)
- orpd REL_ADDR(twop52), %xmm1 // 2^52 + lo (as a double)
- addsd REL_ADDR(twop84_plus_twop52_neg), %xmm0 // hi - 2^52 (no rounding occurs)
- movsd %xmm1, 4(%esp)
- fldl 4(%esp)
- movsd %xmm0, 4(%esp)
- faddl 4(%esp)
- ret
-END_COMPILERRT_FUNCTION(__floatundixf)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/lshrdi3.S b/contrib/libs/cxxsupp/builtins/i386/lshrdi3.S
deleted file mode 100644
index b80f11a3806..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/lshrdi3.S
+++ /dev/null
@@ -1,59 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __lshrdi3(di_int input, int count);
-
-// This routine has some extra memory traffic, loading the 64-bit input via two
-// 32-bit loads, then immediately storing it back to the stack via a single 64-bit
-// store. This is to avoid a write-small, read-large stall.
-// However, if callers of this routine can be safely assumed to store the argument
-// via a 64-bt store, this is unnecessary memory traffic, and should be avoided.
-// It can be turned off by defining the TRUST_CALLERS_USE_64_BIT_STORES macro.
-
-#ifdef __i386__
-#ifdef __SSE2__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__lshrdi3)
- movd 12(%esp), %xmm2 // Load count
-#ifndef TRUST_CALLERS_USE_64_BIT_STORES
- movd 4(%esp), %xmm0
- movd 8(%esp), %xmm1
- punpckldq %xmm1, %xmm0 // Load input
-#else
- movq 4(%esp), %xmm0 // Load input
-#endif
- psrlq %xmm2, %xmm0 // shift input by count
- movd %xmm0, %eax
- psrlq $32, %xmm0
- movd %xmm0, %edx
- ret
-END_COMPILERRT_FUNCTION(__lshrdi3)
-
-#else // Use GPRs instead of SSE2 instructions, if they aren't available.
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__lshrdi3)
- movl 12(%esp), %ecx // Load count
- movl 8(%esp), %edx // Load high
- movl 4(%esp), %eax // Load low
-
- testl $0x20, %ecx // If count >= 32
- jnz 1f // goto 1
-
- shrdl %cl, %edx, %eax // right shift low by count
- shrl %cl, %edx // right shift high by count
- ret
-
-1: movl %edx, %eax // Move high to low
- xorl %edx, %edx // clear high
- shrl %cl, %eax // shift low by count - 32
- ret
-END_COMPILERRT_FUNCTION(__lshrdi3)
-
-#endif // __SSE2__
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/moddi3.S b/contrib/libs/cxxsupp/builtins/i386/moddi3.S
deleted file mode 100644
index b9cee9d7aa7..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/moddi3.S
+++ /dev/null
@@ -1,166 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __moddi3(di_int a, di_int b);
-
-// result = remainder of a / b.
-// both inputs and the output are 64-bit signed integers.
-// This will do whatever the underlying hardware is set to do on division by zero.
-// No other exceptions are generated, as the divide cannot overflow.
-//
-// This is targeted at 32-bit x86 *only*, as this can be done directly in hardware
-// on x86_64. The performance goal is ~40 cycles per divide, which is faster than
-// currently possible via simulation of integer divides on the x87 unit.
-//
-
-// Stephen Canon, December 2008
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__moddi3)
-
-/* This is currently implemented by wrapping the unsigned modulus up in an absolute
- value. This could certainly be improved upon. */
-
- pushl %esi
- movl 20(%esp), %edx // high word of b
- movl 16(%esp), %eax // low word of b
- movl %edx, %ecx
- sarl $31, %ecx // (b < 0) ? -1 : 0
- xorl %ecx, %eax
- xorl %ecx, %edx // EDX:EAX = (b < 0) ? not(b) : b
- subl %ecx, %eax
- sbbl %ecx, %edx // EDX:EAX = abs(b)
- movl %edx, 20(%esp)
- movl %eax, 16(%esp) // store abs(b) back to stack
-
- movl 12(%esp), %edx // high word of b
- movl 8(%esp), %eax // low word of b
- movl %edx, %ecx
- sarl $31, %ecx // (a < 0) ? -1 : 0
- xorl %ecx, %eax
- xorl %ecx, %edx // EDX:EAX = (a < 0) ? not(a) : a
- subl %ecx, %eax
- sbbl %ecx, %edx // EDX:EAX = abs(a)
- movl %edx, 12(%esp)
- movl %eax, 8(%esp) // store abs(a) back to stack
- movl %ecx, %esi // set aside sign of a
-
- pushl %ebx
- movl 24(%esp), %ebx // Find the index i of the leading bit in b.
- bsrl %ebx, %ecx // If the high word of b is zero, jump to
- jz 9f // the code to handle that special case [9].
-
- /* High word of b is known to be non-zero on this branch */
-
- movl 20(%esp), %eax // Construct bhi, containing bits [1+i:32+i] of b
-
- shrl %cl, %eax // Practically, this means that bhi is given by:
- shrl %eax //
- notl %ecx // bhi = (high word of b) << (31 - i) |
- shll %cl, %ebx // (low word of b) >> (1 + i)
- orl %eax, %ebx //
- movl 16(%esp), %edx // Load the high and low words of a, and jump
- movl 12(%esp), %eax // to [2] if the high word is larger than bhi
- cmpl %ebx, %edx // to avoid overflowing the upcoming divide.
- jae 2f
-
- /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- divl %ebx // eax <-- qs, edx <-- r such that ahi:alo = bs*qs + r
-
- pushl %edi
- notl %ecx
- shrl %eax
- shrl %cl, %eax // q = qs >> (1 + i)
- movl %eax, %edi
- mull 24(%esp) // q*blo
- movl 16(%esp), %ebx
- movl 20(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 28(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
-
- jnc 1f // if positive, this is the result.
- addl 24(%esp), %ebx // otherwise
- adcl 28(%esp), %ecx // ECX:EBX = a - (q-1)*b = result
-1: movl %ebx, %eax
- movl %ecx, %edx
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %edi // Restore callee-save registers
- popl %ebx
- popl %esi
- retl // Return
-
-2: /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- subl %ebx, %edx // subtract bhi from ahi so that divide will not
- divl %ebx // overflow, and find q and r such that
- //
- // ahi:alo = (1:q)*bhi + r
- //
- // Note that q is a number in (31-i).(1+i)
- // fix point.
-
- pushl %edi
- notl %ecx
- shrl %eax
- orl $0x80000000, %eax
- shrl %cl, %eax // q = (1:qs) >> (1 + i)
- movl %eax, %edi
- mull 24(%esp) // q*blo
- movl 16(%esp), %ebx
- movl 20(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 28(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
-
- jnc 3f // if positive, this is the result.
- addl 24(%esp), %ebx // otherwise
- adcl 28(%esp), %ecx // ECX:EBX = a - (q-1)*b = result
-3: movl %ebx, %eax
- movl %ecx, %edx
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %edi // Restore callee-save registers
- popl %ebx
- popl %esi
- retl // Return
-
-9: /* High word of b is zero on this branch */
-
- movl 16(%esp), %eax // Find qhi and rhi such that
- movl 20(%esp), %ecx //
- xorl %edx, %edx // ahi = qhi*b + rhi with 0 ≤ rhi < b
- divl %ecx //
- movl %eax, %ebx //
- movl 12(%esp), %eax // Find rlo such that
- divl %ecx //
- movl %edx, %eax // rhi:alo = qlo*b + rlo with 0 ≤ rlo < b
- popl %ebx //
- xorl %edx, %edx // and return 0:rlo
-
- addl %esi, %eax // Restore correct sign to result
- adcl %esi, %edx
- xorl %esi, %eax
- xorl %esi, %edx
- popl %esi
- retl // Return
-END_COMPILERRT_FUNCTION(__moddi3)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/muldi3.S b/contrib/libs/cxxsupp/builtins/i386/muldi3.S
deleted file mode 100644
index 15b6b499845..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/muldi3.S
+++ /dev/null
@@ -1,30 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// di_int __muldi3(di_int a, di_int b);
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__muldi3)
- pushl %ebx
- movl 16(%esp), %eax // b.lo
- movl 12(%esp), %ecx // a.hi
- imull %eax, %ecx // b.lo * a.hi
-
- movl 8(%esp), %edx // a.lo
- movl 20(%esp), %ebx // b.hi
- imull %edx, %ebx // a.lo * b.hi
-
- mull %edx // EDX:EAX = a.lo * b.lo
- addl %ecx, %ebx // EBX = (a.lo*b.hi + a.hi*b.lo)
- addl %ebx, %edx
-
- popl %ebx
- retl
-END_COMPILERRT_FUNCTION(__muldi3)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/udivdi3.S b/contrib/libs/cxxsupp/builtins/i386/udivdi3.S
deleted file mode 100644
index 41b2edf03e3..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/udivdi3.S
+++ /dev/null
@@ -1,115 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// du_int __udivdi3(du_int a, du_int b);
-
-// result = a / b.
-// both inputs and the output are 64-bit unsigned integers.
-// This will do whatever the underlying hardware is set to do on division by zero.
-// No other exceptions are generated, as the divide cannot overflow.
-//
-// This is targeted at 32-bit x86 *only*, as this can be done directly in hardware
-// on x86_64. The performance goal is ~40 cycles per divide, which is faster than
-// currently possible via simulation of integer divides on the x87 unit.
-//
-// Stephen Canon, December 2008
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__udivdi3)
-
- pushl %ebx
- movl 20(%esp), %ebx // Find the index i of the leading bit in b.
- bsrl %ebx, %ecx // If the high word of b is zero, jump to
- jz 9f // the code to handle that special case [9].
-
- /* High word of b is known to be non-zero on this branch */
-
- movl 16(%esp), %eax // Construct bhi, containing bits [1+i:32+i] of b
-
- shrl %cl, %eax // Practically, this means that bhi is given by:
- shrl %eax //
- notl %ecx // bhi = (high word of b) << (31 - i) |
- shll %cl, %ebx // (low word of b) >> (1 + i)
- orl %eax, %ebx //
- movl 12(%esp), %edx // Load the high and low words of a, and jump
- movl 8(%esp), %eax // to [1] if the high word is larger than bhi
- cmpl %ebx, %edx // to avoid overflowing the upcoming divide.
- jae 1f
-
- /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- divl %ebx // eax <-- qs, edx <-- r such that ahi:alo = bs*qs + r
-
- pushl %edi
- notl %ecx
- shrl %eax
- shrl %cl, %eax // q = qs >> (1 + i)
- movl %eax, %edi
- mull 20(%esp) // q*blo
- movl 12(%esp), %ebx
- movl 16(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 24(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
- sbbl $0, %edi // decrement q if remainder is negative
- xorl %edx, %edx
- movl %edi, %eax
- popl %edi
- popl %ebx
- retl
-
-
-1: /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- subl %ebx, %edx // subtract bhi from ahi so that divide will not
- divl %ebx // overflow, and find q and r such that
- //
- // ahi:alo = (1:q)*bhi + r
- //
- // Note that q is a number in (31-i).(1+i)
- // fix point.
-
- pushl %edi
- notl %ecx
- shrl %eax
- orl $0x80000000, %eax
- shrl %cl, %eax // q = (1:qs) >> (1 + i)
- movl %eax, %edi
- mull 20(%esp) // q*blo
- movl 12(%esp), %ebx
- movl 16(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 24(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
- sbbl $0, %edi // decrement q if remainder is negative
- xorl %edx, %edx
- movl %edi, %eax
- popl %edi
- popl %ebx
- retl
-
-
-9: /* High word of b is zero on this branch */
-
- movl 12(%esp), %eax // Find qhi and rhi such that
- movl 16(%esp), %ecx //
- xorl %edx, %edx // ahi = qhi*b + rhi with 0 ≤ rhi < b
- divl %ecx //
- movl %eax, %ebx //
- movl 8(%esp), %eax // Find qlo such that
- divl %ecx //
- movl %ebx, %edx // rhi:alo = qlo*b + rlo with 0 ≤ rlo < b
- popl %ebx //
- retl // and return qhi:qlo
-END_COMPILERRT_FUNCTION(__udivdi3)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/i386/umoddi3.S b/contrib/libs/cxxsupp/builtins/i386/umoddi3.S
deleted file mode 100644
index a190a7d397d..00000000000
--- a/contrib/libs/cxxsupp/builtins/i386/umoddi3.S
+++ /dev/null
@@ -1,126 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// du_int __umoddi3(du_int a, du_int b);
-
-// result = remainder of a / b.
-// both inputs and the output are 64-bit unsigned integers.
-// This will do whatever the underlying hardware is set to do on division by zero.
-// No other exceptions are generated, as the divide cannot overflow.
-//
-// This is targeted at 32-bit x86 *only*, as this can be done directly in hardware
-// on x86_64. The performance goal is ~40 cycles per divide, which is faster than
-// currently possible via simulation of integer divides on the x87 unit.
-//
-
-// Stephen Canon, December 2008
-
-#ifdef __i386__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__umoddi3)
-
- pushl %ebx
- movl 20(%esp), %ebx // Find the index i of the leading bit in b.
- bsrl %ebx, %ecx // If the high word of b is zero, jump to
- jz 9f // the code to handle that special case [9].
-
- /* High word of b is known to be non-zero on this branch */
-
- movl 16(%esp), %eax // Construct bhi, containing bits [1+i:32+i] of b
-
- shrl %cl, %eax // Practically, this means that bhi is given by:
- shrl %eax //
- notl %ecx // bhi = (high word of b) << (31 - i) |
- shll %cl, %ebx // (low word of b) >> (1 + i)
- orl %eax, %ebx //
- movl 12(%esp), %edx // Load the high and low words of a, and jump
- movl 8(%esp), %eax // to [2] if the high word is larger than bhi
- cmpl %ebx, %edx // to avoid overflowing the upcoming divide.
- jae 2f
-
- /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- divl %ebx // eax <-- qs, edx <-- r such that ahi:alo = bs*qs + r
-
- pushl %edi
- notl %ecx
- shrl %eax
- shrl %cl, %eax // q = qs >> (1 + i)
- movl %eax, %edi
- mull 20(%esp) // q*blo
- movl 12(%esp), %ebx
- movl 16(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 24(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
-
- jnc 1f // if positive, this is the result.
- addl 20(%esp), %ebx // otherwise
- adcl 24(%esp), %ecx // ECX:EBX = a - (q-1)*b = result
-1: movl %ebx, %eax
- movl %ecx, %edx
-
- popl %edi
- popl %ebx
- retl
-
-
-2: /* High word of a is greater than or equal to (b >> (1 + i)) on this branch */
-
- subl %ebx, %edx // subtract bhi from ahi so that divide will not
- divl %ebx // overflow, and find q and r such that
- //
- // ahi:alo = (1:q)*bhi + r
- //
- // Note that q is a number in (31-i).(1+i)
- // fix point.
-
- pushl %edi
- notl %ecx
- shrl %eax
- orl $0x80000000, %eax
- shrl %cl, %eax // q = (1:qs) >> (1 + i)
- movl %eax, %edi
- mull 20(%esp) // q*blo
- movl 12(%esp), %ebx
- movl 16(%esp), %ecx // ECX:EBX = a
- subl %eax, %ebx
- sbbl %edx, %ecx // ECX:EBX = a - q*blo
- movl 24(%esp), %eax
- imull %edi, %eax // q*bhi
- subl %eax, %ecx // ECX:EBX = a - q*b
-
- jnc 3f // if positive, this is the result.
- addl 20(%esp), %ebx // otherwise
- adcl 24(%esp), %ecx // ECX:EBX = a - (q-1)*b = result
-3: movl %ebx, %eax
- movl %ecx, %edx
-
- popl %edi
- popl %ebx
- retl
-
-
-
-9: /* High word of b is zero on this branch */
-
- movl 12(%esp), %eax // Find qhi and rhi such that
- movl 16(%esp), %ecx //
- xorl %edx, %edx // ahi = qhi*b + rhi with 0 ≤ rhi < b
- divl %ecx //
- movl %eax, %ebx //
- movl 8(%esp), %eax // Find rlo such that
- divl %ecx //
- movl %edx, %eax // rhi:alo = qlo*b + rlo with 0 ≤ rlo < b
- popl %ebx //
- xorl %edx, %edx // and return 0:rlo
- retl //
-END_COMPILERRT_FUNCTION(__umoddi3)
-
-#endif // __i386__
diff --git a/contrib/libs/cxxsupp/builtins/lshrdi3.c b/contrib/libs/cxxsupp/builtins/lshrdi3.c
deleted file mode 100644
index 6b1ea923b77..00000000000
--- a/contrib/libs/cxxsupp/builtins/lshrdi3.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ===-- lshrdi3.c - Implement __lshrdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __lshrdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: logical a >> b */
-
-/* Precondition: 0 <= b < bits_in_dword */
-
-ARM_EABI_FNALIAS(llsr, lshrdi3)
-
-COMPILER_RT_ABI di_int
-__lshrdi3(di_int a, si_int b)
-{
- const int bits_in_word = (int)(sizeof(si_int) * CHAR_BIT);
- udwords input;
- udwords result;
- input.all = a;
- if (b & bits_in_word) /* bits_in_word <= b < bits_in_dword */
- {
- result.s.high = 0;
- result.s.low = input.s.high >> (b - bits_in_word);
- }
- else /* 0 <= b < bits_in_word */
- {
- if (b == 0)
- return a;
- result.s.high = input.s.high >> b;
- result.s.low = (input.s.high << (bits_in_word - b)) | (input.s.low >> b);
- }
- return result.all;
-}
diff --git a/contrib/libs/cxxsupp/builtins/moddi3.c b/contrib/libs/cxxsupp/builtins/moddi3.c
deleted file mode 100644
index a04279e3875..00000000000
--- a/contrib/libs/cxxsupp/builtins/moddi3.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*===-- moddi3.c - Implement __moddi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __moddi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a % b */
-
-COMPILER_RT_ABI di_int
-__moddi3(di_int a, di_int b)
-{
- const int bits_in_dword_m1 = (int)(sizeof(di_int) * CHAR_BIT) - 1;
- di_int s = b >> bits_in_dword_m1; /* s = b < 0 ? -1 : 0 */
- b = (b ^ s) - s; /* negate if s == -1 */
- s = a >> bits_in_dword_m1; /* s = a < 0 ? -1 : 0 */
- a = (a ^ s) - s; /* negate if s == -1 */
- du_int r;
- __udivmoddi4(a, b, &r);
- return ((di_int)r ^ s) - s; /* negate if s == -1 */
-}
diff --git a/contrib/libs/cxxsupp/builtins/modsi3.c b/contrib/libs/cxxsupp/builtins/modsi3.c
deleted file mode 100644
index 86c73ce1377..00000000000
--- a/contrib/libs/cxxsupp/builtins/modsi3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ===-- modsi3.c - Implement __modsi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __modsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a % b */
-
-COMPILER_RT_ABI si_int
-__modsi3(si_int a, si_int b)
-{
- return a - __divsi3(a, b) * b;
-}
diff --git a/contrib/libs/cxxsupp/builtins/muldf3.c b/contrib/libs/cxxsupp/builtins/muldf3.c
deleted file mode 100644
index 1eb733849e5..00000000000
--- a/contrib/libs/cxxsupp/builtins/muldf3.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/muldf3.c - Double-precision multiplication ------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements double-precision soft-float multiplication
-// with the IEEE-754 default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_mul_impl.inc"
-
-ARM_EABI_FNALIAS(dmul, muldf3)
-
-COMPILER_RT_ABI fp_t __muldf3(fp_t a, fp_t b) {
- return __mulXf3__(a, b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/muldi3.c b/contrib/libs/cxxsupp/builtins/muldi3.c
deleted file mode 100644
index 2dae44c11b9..00000000000
--- a/contrib/libs/cxxsupp/builtins/muldi3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ===-- muldi3.c - Implement __muldi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __muldi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a * b */
-
-static
-di_int
-__muldsi3(su_int a, su_int b)
-{
- dwords r;
- const int bits_in_word_2 = (int)(sizeof(si_int) * CHAR_BIT) / 2;
- const su_int lower_mask = (su_int)~0 >> bits_in_word_2;
- r.s.low = (a & lower_mask) * (b & lower_mask);
- su_int t = r.s.low >> bits_in_word_2;
- r.s.low &= lower_mask;
- t += (a >> bits_in_word_2) * (b & lower_mask);
- r.s.low += (t & lower_mask) << bits_in_word_2;
- r.s.high = t >> bits_in_word_2;
- t = r.s.low >> bits_in_word_2;
- r.s.low &= lower_mask;
- t += (b >> bits_in_word_2) * (a & lower_mask);
- r.s.low += (t & lower_mask) << bits_in_word_2;
- r.s.high += t >> bits_in_word_2;
- r.s.high += (a >> bits_in_word_2) * (b >> bits_in_word_2);
- return r.all;
-}
-
-/* Returns: a * b */
-
-ARM_EABI_FNALIAS(lmul, muldi3)
-
-COMPILER_RT_ABI di_int
-__muldi3(di_int a, di_int b)
-{
- dwords x;
- x.all = a;
- dwords y;
- y.all = b;
- dwords r;
- r.all = __muldsi3(x.s.low, y.s.low);
- r.s.high += x.s.high * y.s.low + x.s.low * y.s.high;
- return r.all;
-}
diff --git a/contrib/libs/cxxsupp/builtins/mulodi4.c b/contrib/libs/cxxsupp/builtins/mulodi4.c
deleted file mode 100644
index d2fd7db2bcd..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulodi4.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*===-- mulodi4.c - Implement __mulodi4 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __mulodi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a * b */
-
-/* Effects: sets *overflow to 1 if a * b overflows */
-
-COMPILER_RT_ABI di_int
-__mulodi4(di_int a, di_int b, int* overflow)
-{
- const int N = (int)(sizeof(di_int) * CHAR_BIT);
- const di_int MIN = (di_int)1 << (N-1);
- const di_int MAX = ~MIN;
- *overflow = 0;
- di_int result = a * b;
- if (a == MIN)
- {
- if (b != 0 && b != 1)
- *overflow = 1;
- return result;
- }
- if (b == MIN)
- {
- if (a != 0 && a != 1)
- *overflow = 1;
- return result;
- }
- di_int sa = a >> (N - 1);
- di_int abs_a = (a ^ sa) - sa;
- di_int sb = b >> (N - 1);
- di_int abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return result;
- if (sa == sb)
- {
- if (abs_a > MAX / abs_b)
- *overflow = 1;
- }
- else
- {
- if (abs_a > MIN / -abs_b)
- *overflow = 1;
- }
- return result;
-}
diff --git a/contrib/libs/cxxsupp/builtins/mulosi4.c b/contrib/libs/cxxsupp/builtins/mulosi4.c
deleted file mode 100644
index 422528085c4..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulosi4.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*===-- mulosi4.c - Implement __mulosi4 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __mulosi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a * b */
-
-/* Effects: sets *overflow to 1 if a * b overflows */
-
-COMPILER_RT_ABI si_int
-__mulosi4(si_int a, si_int b, int* overflow)
-{
- const int N = (int)(sizeof(si_int) * CHAR_BIT);
- const si_int MIN = (si_int)1 << (N-1);
- const si_int MAX = ~MIN;
- *overflow = 0;
- si_int result = a * b;
- if (a == MIN)
- {
- if (b != 0 && b != 1)
- *overflow = 1;
- return result;
- }
- if (b == MIN)
- {
- if (a != 0 && a != 1)
- *overflow = 1;
- return result;
- }
- si_int sa = a >> (N - 1);
- si_int abs_a = (a ^ sa) - sa;
- si_int sb = b >> (N - 1);
- si_int abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return result;
- if (sa == sb)
- {
- if (abs_a > MAX / abs_b)
- *overflow = 1;
- }
- else
- {
- if (abs_a > MIN / -abs_b)
- *overflow = 1;
- }
- return result;
-}
diff --git a/contrib/libs/cxxsupp/builtins/mulsf3.c b/contrib/libs/cxxsupp/builtins/mulsf3.c
deleted file mode 100644
index 478b3bc0e0e..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulsf3.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/mulsf3.c - Single-precision multiplication ------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements single-precision soft-float multiplication
-// with the IEEE-754 default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_mul_impl.inc"
-
-ARM_EABI_FNALIAS(fmul, mulsf3)
-
-COMPILER_RT_ABI fp_t __mulsf3(fp_t a, fp_t b) {
- return __mulXf3__(a, b);
-}
diff --git a/contrib/libs/cxxsupp/builtins/multc3.c b/contrib/libs/cxxsupp/builtins/multc3.c
deleted file mode 100644
index 0518bc2569f..00000000000
--- a/contrib/libs/cxxsupp/builtins/multc3.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* ===-- multc3.c - Implement __multc3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __multc3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-#include "int_math.h"
-
-/* Returns: the product of a + ib and c + id */
-
-COMPILER_RT_ABI long double _Complex
-__multc3(long double a, long double b, long double c, long double d)
-{
- long double ac = a * c;
- long double bd = b * d;
- long double ad = a * d;
- long double bc = b * c;
- long double _Complex z;
- __real__ z = ac - bd;
- __imag__ z = ad + bc;
- if (crt_isnan(__real__ z) && crt_isnan(__imag__ z)) {
- int recalc = 0;
- if (crt_isinf(a) || crt_isinf(b)) {
- a = crt_copysignl(crt_isinf(a) ? 1 : 0, a);
- b = crt_copysignl(crt_isinf(b) ? 1 : 0, b);
- if (crt_isnan(c))
- c = crt_copysignl(0, c);
- if (crt_isnan(d))
- d = crt_copysignl(0, d);
- recalc = 1;
- }
- if (crt_isinf(c) || crt_isinf(d)) {
- c = crt_copysignl(crt_isinf(c) ? 1 : 0, c);
- d = crt_copysignl(crt_isinf(d) ? 1 : 0, d);
- if (crt_isnan(a))
- a = crt_copysignl(0, a);
- if (crt_isnan(b))
- b = crt_copysignl(0, b);
- recalc = 1;
- }
- if (!recalc && (crt_isinf(ac) || crt_isinf(bd) ||
- crt_isinf(ad) || crt_isinf(bc))) {
- if (crt_isnan(a))
- a = crt_copysignl(0, a);
- if (crt_isnan(b))
- b = crt_copysignl(0, b);
- if (crt_isnan(c))
- c = crt_copysignl(0, c);
- if (crt_isnan(d))
- d = crt_copysignl(0, d);
- recalc = 1;
- }
- if (recalc) {
- __real__ z = CRT_INFINITY * (a * c - b * d);
- __imag__ z = CRT_INFINITY * (a * d + b * c);
- }
- }
- return z;
-}
diff --git a/contrib/libs/cxxsupp/builtins/multi3.c b/contrib/libs/cxxsupp/builtins/multi3.c
deleted file mode 100644
index e0d52d430b6..00000000000
--- a/contrib/libs/cxxsupp/builtins/multi3.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ===-- multi3.c - Implement __multi3 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
-
- * This file implements __multi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: a * b */
-
-static
-ti_int
-__mulddi3(du_int a, du_int b)
-{
- twords r;
- const int bits_in_dword_2 = (int)(sizeof(di_int) * CHAR_BIT) / 2;
- const du_int lower_mask = (du_int)~0 >> bits_in_dword_2;
- r.s.low = (a & lower_mask) * (b & lower_mask);
- du_int t = r.s.low >> bits_in_dword_2;
- r.s.low &= lower_mask;
- t += (a >> bits_in_dword_2) * (b & lower_mask);
- r.s.low += (t & lower_mask) << bits_in_dword_2;
- r.s.high = t >> bits_in_dword_2;
- t = r.s.low >> bits_in_dword_2;
- r.s.low &= lower_mask;
- t += (b >> bits_in_dword_2) * (a & lower_mask);
- r.s.low += (t & lower_mask) << bits_in_dword_2;
- r.s.high += t >> bits_in_dword_2;
- r.s.high += (a >> bits_in_dword_2) * (b >> bits_in_dword_2);
- return r.all;
-}
-
-/* Returns: a * b */
-
-COMPILER_RT_ABI ti_int
-__multi3(ti_int a, ti_int b)
-{
- twords x;
- x.all = a;
- twords y;
- y.all = b;
- twords r;
- r.all = __mulddi3(x.s.low, y.s.low);
- r.s.high += x.s.high * y.s.low + x.s.low * y.s.high;
- return r.all;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/mulvdi3.c b/contrib/libs/cxxsupp/builtins/mulvdi3.c
deleted file mode 100644
index e63249e0a04..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulvdi3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*===-- mulvdi3.c - Implement __mulvdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __mulvdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a * b */
-
-/* Effects: aborts if a * b overflows */
-
-COMPILER_RT_ABI di_int
-__mulvdi3(di_int a, di_int b)
-{
- const int N = (int)(sizeof(di_int) * CHAR_BIT);
- const di_int MIN = (di_int)1 << (N-1);
- const di_int MAX = ~MIN;
- if (a == MIN)
- {
- if (b == 0 || b == 1)
- return a * b;
- compilerrt_abort();
- }
- if (b == MIN)
- {
- if (a == 0 || a == 1)
- return a * b;
- compilerrt_abort();
- }
- di_int sa = a >> (N - 1);
- di_int abs_a = (a ^ sa) - sa;
- di_int sb = b >> (N - 1);
- di_int abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return a * b;
- if (sa == sb)
- {
- if (abs_a > MAX / abs_b)
- compilerrt_abort();
- }
- else
- {
- if (abs_a > MIN / -abs_b)
- compilerrt_abort();
- }
- return a * b;
-}
diff --git a/contrib/libs/cxxsupp/builtins/mulvsi3.c b/contrib/libs/cxxsupp/builtins/mulvsi3.c
deleted file mode 100644
index 74ea4f2da22..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulvsi3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ===-- mulvsi3.c - Implement __mulvsi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __mulvsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a * b */
-
-/* Effects: aborts if a * b overflows */
-
-COMPILER_RT_ABI si_int
-__mulvsi3(si_int a, si_int b)
-{
- const int N = (int)(sizeof(si_int) * CHAR_BIT);
- const si_int MIN = (si_int)1 << (N-1);
- const si_int MAX = ~MIN;
- if (a == MIN)
- {
- if (b == 0 || b == 1)
- return a * b;
- compilerrt_abort();
- }
- if (b == MIN)
- {
- if (a == 0 || a == 1)
- return a * b;
- compilerrt_abort();
- }
- si_int sa = a >> (N - 1);
- si_int abs_a = (a ^ sa) - sa;
- si_int sb = b >> (N - 1);
- si_int abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return a * b;
- if (sa == sb)
- {
- if (abs_a > MAX / abs_b)
- compilerrt_abort();
- }
- else
- {
- if (abs_a > MIN / -abs_b)
- compilerrt_abort();
- }
- return a * b;
-}
diff --git a/contrib/libs/cxxsupp/builtins/mulvti3.c b/contrib/libs/cxxsupp/builtins/mulvti3.c
deleted file mode 100644
index f4c7d1612ba..00000000000
--- a/contrib/libs/cxxsupp/builtins/mulvti3.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ===-- mulvti3.c - Implement __mulvti3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __mulvti3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: a * b */
-
-/* Effects: aborts if a * b overflows */
-
-COMPILER_RT_ABI ti_int
-__mulvti3(ti_int a, ti_int b)
-{
- const int N = (int)(sizeof(ti_int) * CHAR_BIT);
- const ti_int MIN = (ti_int)1 << (N-1);
- const ti_int MAX = ~MIN;
- if (a == MIN)
- {
- if (b == 0 || b == 1)
- return a * b;
- compilerrt_abort();
- }
- if (b == MIN)
- {
- if (a == 0 || a == 1)
- return a * b;
- compilerrt_abort();
- }
- ti_int sa = a >> (N - 1);
- ti_int abs_a = (a ^ sa) - sa;
- ti_int sb = b >> (N - 1);
- ti_int abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return a * b;
- if (sa == sb)
- {
- if (abs_a > MAX / abs_b)
- compilerrt_abort();
- }
- else
- {
- if (abs_a > MIN / -abs_b)
- compilerrt_abort();
- }
- return a * b;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/negdf2.c b/contrib/libs/cxxsupp/builtins/negdf2.c
deleted file mode 100644
index d634b421cb7..00000000000
--- a/contrib/libs/cxxsupp/builtins/negdf2.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/negdf2.c - double-precision negation ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements double-precision soft-float negation.
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(dneg, negdf2)
-
-COMPILER_RT_ABI fp_t
-__negdf2(fp_t a) {
- return fromRep(toRep(a) ^ signBit);
-}
diff --git a/contrib/libs/cxxsupp/builtins/negdi2.c b/contrib/libs/cxxsupp/builtins/negdi2.c
deleted file mode 100644
index 3d49ba2899d..00000000000
--- a/contrib/libs/cxxsupp/builtins/negdi2.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* ===-- negdi2.c - Implement __negdi2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __negdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: -a */
-
-COMPILER_RT_ABI di_int
-__negdi2(di_int a)
-{
- /* Note: this routine is here for API compatibility; any sane compiler
- * should expand it inline.
- */
- return -a;
-}
diff --git a/contrib/libs/cxxsupp/builtins/negsf2.c b/contrib/libs/cxxsupp/builtins/negsf2.c
deleted file mode 100644
index 29c17be4145..00000000000
--- a/contrib/libs/cxxsupp/builtins/negsf2.c
+++ /dev/null
@@ -1,22 +0,0 @@
-//===-- lib/negsf2.c - single-precision negation ------------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements single-precision soft-float negation.
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(fneg, negsf2)
-
-COMPILER_RT_ABI fp_t
-__negsf2(fp_t a) {
- return fromRep(toRep(a) ^ signBit);
-}
diff --git a/contrib/libs/cxxsupp/builtins/negti2.c b/contrib/libs/cxxsupp/builtins/negti2.c
deleted file mode 100644
index 9b00b303f85..00000000000
--- a/contrib/libs/cxxsupp/builtins/negti2.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ===-- negti2.c - Implement __negti2 -------------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __negti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: -a */
-
-COMPILER_RT_ABI ti_int
-__negti2(ti_int a)
-{
- /* Note: this routine is here for API compatibility; any sane compiler
- * should expand it inline.
- */
- return -a;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/negvdi2.c b/contrib/libs/cxxsupp/builtins/negvdi2.c
deleted file mode 100644
index e336ecf28f0..00000000000
--- a/contrib/libs/cxxsupp/builtins/negvdi2.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* ===-- negvdi2.c - Implement __negvdi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __negvdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: -a */
-
-/* Effects: aborts if -a overflows */
-
-COMPILER_RT_ABI di_int
-__negvdi2(di_int a)
-{
- const di_int MIN = (di_int)1 << ((int)(sizeof(di_int) * CHAR_BIT)-1);
- if (a == MIN)
- compilerrt_abort();
- return -a;
-}
diff --git a/contrib/libs/cxxsupp/builtins/negvsi2.c b/contrib/libs/cxxsupp/builtins/negvsi2.c
deleted file mode 100644
index b9e93fef06c..00000000000
--- a/contrib/libs/cxxsupp/builtins/negvsi2.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* ===-- negvsi2.c - Implement __negvsi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __negvsi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: -a */
-
-/* Effects: aborts if -a overflows */
-
-COMPILER_RT_ABI si_int
-__negvsi2(si_int a)
-{
- const si_int MIN = (si_int)1 << ((int)(sizeof(si_int) * CHAR_BIT)-1);
- if (a == MIN)
- compilerrt_abort();
- return -a;
-}
diff --git a/contrib/libs/cxxsupp/builtins/negvti2.c b/contrib/libs/cxxsupp/builtins/negvti2.c
deleted file mode 100644
index 85f9f7d19d9..00000000000
--- a/contrib/libs/cxxsupp/builtins/negvti2.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*===-- negvti2.c - Implement __negvti2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- *===----------------------------------------------------------------------===
- *
- *This file implements __negvti2 for the compiler_rt library.
- *
- *===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: -a */
-
-/* Effects: aborts if -a overflows */
-
-COMPILER_RT_ABI ti_int
-__negvti2(ti_int a)
-{
- const ti_int MIN = (ti_int)1 << ((int)(sizeof(ti_int) * CHAR_BIT)-1);
- if (a == MIN)
- compilerrt_abort();
- return -a;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/paritydi2.c b/contrib/libs/cxxsupp/builtins/paritydi2.c
deleted file mode 100644
index 8ea5ab4214e..00000000000
--- a/contrib/libs/cxxsupp/builtins/paritydi2.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ===-- paritydi2.c - Implement __paritydi2 -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __paritydi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: 1 if number of bits is odd else returns 0 */
-
-COMPILER_RT_ABI si_int
-__paritydi2(di_int a)
-{
- dwords x;
- x.all = a;
- return __paritysi2(x.s.high ^ x.s.low);
-}
diff --git a/contrib/libs/cxxsupp/builtins/paritysi2.c b/contrib/libs/cxxsupp/builtins/paritysi2.c
deleted file mode 100644
index 59998466384..00000000000
--- a/contrib/libs/cxxsupp/builtins/paritysi2.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* ===-- paritysi2.c - Implement __paritysi2 -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __paritysi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: 1 if number of bits is odd else returns 0 */
-
-COMPILER_RT_ABI si_int
-__paritysi2(si_int a)
-{
- su_int x = (su_int)a;
- x ^= x >> 16;
- x ^= x >> 8;
- x ^= x >> 4;
- return (0x6996 >> (x & 0xF)) & 1;
-}
diff --git a/contrib/libs/cxxsupp/builtins/parityti2.c b/contrib/libs/cxxsupp/builtins/parityti2.c
deleted file mode 100644
index 5a4fe492486..00000000000
--- a/contrib/libs/cxxsupp/builtins/parityti2.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ===-- parityti2.c - Implement __parityti2 -------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __parityti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: 1 if number of bits is odd else returns 0 */
-
-COMPILER_RT_ABI si_int
-__parityti2(ti_int a)
-{
- twords x;
- x.all = a;
- return __paritydi2(x.s.high ^ x.s.low);
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/popcountsi2.c b/contrib/libs/cxxsupp/builtins/popcountsi2.c
deleted file mode 100644
index 44544ff4989..00000000000
--- a/contrib/libs/cxxsupp/builtins/popcountsi2.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ===-- popcountsi2.c - Implement __popcountsi2 ---------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __popcountsi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: count of 1 bits */
-
-COMPILER_RT_ABI si_int
-__popcountsi2(si_int a)
-{
- su_int x = (su_int)a;
- x = x - ((x >> 1) & 0x55555555);
- /* Every 2 bits holds the sum of every pair of bits */
- x = ((x >> 2) & 0x33333333) + (x & 0x33333333);
- /* Every 4 bits holds the sum of every 4-set of bits (3 significant bits) */
- x = (x + (x >> 4)) & 0x0F0F0F0F;
- /* Every 8 bits holds the sum of every 8-set of bits (4 significant bits) */
- x = (x + (x >> 16));
- /* The lower 16 bits hold two 8 bit sums (5 significant bits).*/
- /* Upper 16 bits are garbage */
- return (x + (x >> 8)) & 0x0000003F; /* (6 significant bits) */
-}
diff --git a/contrib/libs/cxxsupp/builtins/popcountti2.c b/contrib/libs/cxxsupp/builtins/popcountti2.c
deleted file mode 100644
index 7451bbb286b..00000000000
--- a/contrib/libs/cxxsupp/builtins/popcountti2.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* ===-- popcountti2.c - Implement __popcountti2 ----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __popcountti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: count of 1 bits */
-
-COMPILER_RT_ABI si_int
-__popcountti2(ti_int a)
-{
- tu_int x3 = (tu_int)a;
- x3 = x3 - ((x3 >> 1) & (((tu_int)0x5555555555555555uLL << 64) |
- 0x5555555555555555uLL));
- /* Every 2 bits holds the sum of every pair of bits (64) */
- x3 = ((x3 >> 2) & (((tu_int)0x3333333333333333uLL << 64) | 0x3333333333333333uLL))
- + (x3 & (((tu_int)0x3333333333333333uLL << 64) | 0x3333333333333333uLL));
- /* Every 4 bits holds the sum of every 4-set of bits (3 significant bits) (32) */
- x3 = (x3 + (x3 >> 4))
- & (((tu_int)0x0F0F0F0F0F0F0F0FuLL << 64) | 0x0F0F0F0F0F0F0F0FuLL);
- /* Every 8 bits holds the sum of every 8-set of bits (4 significant bits) (16) */
- du_int x2 = (du_int)(x3 + (x3 >> 64));
- /* Every 8 bits holds the sum of every 8-set of bits (5 significant bits) (8) */
- su_int x = (su_int)(x2 + (x2 >> 32));
- /* Every 8 bits holds the sum of every 8-set of bits (6 significant bits) (4) */
- x = x + (x >> 16);
- /* Every 8 bits holds the sum of every 8-set of bits (7 significant bits) (2) */
- /* Upper 16 bits are garbage */
- return (x + (x >> 8)) & 0xFF; /* (8 significant bits) */
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/powidf2.c b/contrib/libs/cxxsupp/builtins/powidf2.c
deleted file mode 100644
index ac13b172b04..00000000000
--- a/contrib/libs/cxxsupp/builtins/powidf2.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ===-- powidf2.cpp - Implement __powidf2 ---------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __powidf2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a ^ b */
-
-COMPILER_RT_ABI double
-__powidf2(double a, si_int b)
-{
- const int recip = b < 0;
- double r = 1;
- while (1)
- {
- if (b & 1)
- r *= a;
- b /= 2;
- if (b == 0)
- break;
- a *= a;
- }
- return recip ? 1/r : r;
-}
diff --git a/contrib/libs/cxxsupp/builtins/powisf2.c b/contrib/libs/cxxsupp/builtins/powisf2.c
deleted file mode 100644
index 0c400ec6dd6..00000000000
--- a/contrib/libs/cxxsupp/builtins/powisf2.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*===-- powisf2.cpp - Implement __powisf2 ---------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __powisf2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a ^ b */
-
-COMPILER_RT_ABI float
-__powisf2(float a, si_int b)
-{
- const int recip = b < 0;
- float r = 1;
- while (1)
- {
- if (b & 1)
- r *= a;
- b /= 2;
- if (b == 0)
- break;
- a *= a;
- }
- return recip ? 1/r : r;
-}
diff --git a/contrib/libs/cxxsupp/builtins/powitf2.c b/contrib/libs/cxxsupp/builtins/powitf2.c
deleted file mode 100644
index 172f29f58f2..00000000000
--- a/contrib/libs/cxxsupp/builtins/powitf2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* ===-- powitf2.cpp - Implement __powitf2 ---------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __powitf2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#if _ARCH_PPC
-
-/* Returns: a ^ b */
-
-COMPILER_RT_ABI long double
-__powitf2(long double a, si_int b)
-{
- const int recip = b < 0;
- long double r = 1;
- while (1)
- {
- if (b & 1)
- r *= a;
- b /= 2;
- if (b == 0)
- break;
- a *= a;
- }
- return recip ? 1/r : r;
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/powixf2.c b/contrib/libs/cxxsupp/builtins/powixf2.c
deleted file mode 100644
index 0fd96e503e7..00000000000
--- a/contrib/libs/cxxsupp/builtins/powixf2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* ===-- powixf2.cpp - Implement __powixf2 ---------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __powixf2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#if !_ARCH_PPC
-
-#include "int_lib.h"
-
-/* Returns: a ^ b */
-
-COMPILER_RT_ABI long double
-__powixf2(long double a, si_int b)
-{
- const int recip = b < 0;
- long double r = 1;
- while (1)
- {
- if (b & 1)
- r *= a;
- b /= 2;
- if (b == 0)
- break;
- a *= a;
- }
- return recip ? 1/r : r;
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/builtins/ppc/DD.h b/contrib/libs/cxxsupp/builtins/ppc/DD.h
deleted file mode 100644
index 3e5f9e58c13..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/DD.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef COMPILERRT_DD_HEADER
-#define COMPILERRT_DD_HEADER
-
-#include "../int_lib.h"
-
-typedef union {
- long double ld;
- struct {
- double hi;
- double lo;
- }s;
-} DD;
-
-typedef union {
- double d;
- uint64_t x;
-} doublebits;
-
-#define LOWORDER(xy,xHi,xLo,yHi,yLo) \
- (((((xHi)*(yHi) - (xy)) + (xHi)*(yLo)) + (xLo)*(yHi)) + (xLo)*(yLo))
-
-static __inline ALWAYS_INLINE double local_fabs(double x) {
- doublebits result = {.d = x};
- result.x &= UINT64_C(0x7fffffffffffffff);
- return result.d;
-}
-
-static __inline ALWAYS_INLINE double high26bits(double x) {
- doublebits result = {.d = x};
- result.x &= UINT64_C(0xfffffffff8000000);
- return result.d;
-}
-
-static __inline ALWAYS_INLINE int different_sign(double x, double y) {
- doublebits xsignbit = {.d = x}, ysignbit = {.d = y};
- int result = (int)(xsignbit.x >> 63) ^ (int)(ysignbit.x >> 63);
- return result;
-}
-
-long double __gcc_qadd(long double, long double);
-long double __gcc_qsub(long double, long double);
-long double __gcc_qmul(long double, long double);
-long double __gcc_qdiv(long double, long double);
-
-#endif /* COMPILERRT_DD_HEADER */
diff --git a/contrib/libs/cxxsupp/builtins/ppc/Makefile.mk b/contrib/libs/cxxsupp/builtins/ppc/Makefile.mk
deleted file mode 100644
index 0adc623aa04..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/ppc/Makefile.mk -------------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := ppc
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/ppc/divtc3.c b/contrib/libs/cxxsupp/builtins/ppc/divtc3.c
deleted file mode 100644
index 8ec41c528ab..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/divtc3.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-#include "DD.h"
-#include "../int_math.h"
-
-#if !defined(CRT_INFINITY) && defined(HUGE_VAL)
-#define CRT_INFINITY HUGE_VAL
-#endif /* CRT_INFINITY */
-
-#define makeFinite(x) { \
- (x).s.hi = crt_copysign(crt_isinf((x).s.hi) ? 1.0 : 0.0, (x).s.hi); \
- (x).s.lo = 0.0; \
- }
-
-long double _Complex
-__divtc3(long double a, long double b, long double c, long double d)
-{
- DD cDD = { .ld = c };
- DD dDD = { .ld = d };
-
- int ilogbw = 0;
- const double logbw = crt_logb(crt_fmax(crt_fabs(cDD.s.hi), crt_fabs(dDD.s.hi) ));
-
- if (crt_isfinite(logbw))
- {
- ilogbw = (int)logbw;
-
- cDD.s.hi = crt_scalbn(cDD.s.hi, -ilogbw);
- cDD.s.lo = crt_scalbn(cDD.s.lo, -ilogbw);
- dDD.s.hi = crt_scalbn(dDD.s.hi, -ilogbw);
- dDD.s.lo = crt_scalbn(dDD.s.lo, -ilogbw);
- }
-
- const long double denom = __gcc_qadd(__gcc_qmul(cDD.ld, cDD.ld), __gcc_qmul(dDD.ld, dDD.ld));
- const long double realNumerator = __gcc_qadd(__gcc_qmul(a,cDD.ld), __gcc_qmul(b,dDD.ld));
- const long double imagNumerator = __gcc_qsub(__gcc_qmul(b,cDD.ld), __gcc_qmul(a,dDD.ld));
-
- DD real = { .ld = __gcc_qdiv(realNumerator, denom) };
- DD imag = { .ld = __gcc_qdiv(imagNumerator, denom) };
-
- real.s.hi = crt_scalbn(real.s.hi, -ilogbw);
- real.s.lo = crt_scalbn(real.s.lo, -ilogbw);
- imag.s.hi = crt_scalbn(imag.s.hi, -ilogbw);
- imag.s.lo = crt_scalbn(imag.s.lo, -ilogbw);
-
- if (crt_isnan(real.s.hi) && crt_isnan(imag.s.hi))
- {
- DD aDD = { .ld = a };
- DD bDD = { .ld = b };
- DD rDD = { .ld = denom };
-
- if ((rDD.s.hi == 0.0) && (!crt_isnan(aDD.s.hi) ||
- !crt_isnan(bDD.s.hi)))
- {
- real.s.hi = crt_copysign(CRT_INFINITY,cDD.s.hi) * aDD.s.hi;
- real.s.lo = 0.0;
- imag.s.hi = crt_copysign(CRT_INFINITY,cDD.s.hi) * bDD.s.hi;
- imag.s.lo = 0.0;
- }
-
- else if ((crt_isinf(aDD.s.hi) || crt_isinf(bDD.s.hi)) &&
- crt_isfinite(cDD.s.hi) && crt_isfinite(dDD.s.hi))
- {
- makeFinite(aDD);
- makeFinite(bDD);
- real.s.hi = CRT_INFINITY * (aDD.s.hi*cDD.s.hi + bDD.s.hi*dDD.s.hi);
- real.s.lo = 0.0;
- imag.s.hi = CRT_INFINITY * (bDD.s.hi*cDD.s.hi - aDD.s.hi*dDD.s.hi);
- imag.s.lo = 0.0;
- }
-
- else if ((crt_isinf(cDD.s.hi) || crt_isinf(dDD.s.hi)) &&
- crt_isfinite(aDD.s.hi) && crt_isfinite(bDD.s.hi))
- {
- makeFinite(cDD);
- makeFinite(dDD);
- real.s.hi = crt_copysign(0.0,(aDD.s.hi*cDD.s.hi + bDD.s.hi*dDD.s.hi));
- real.s.lo = 0.0;
- imag.s.hi = crt_copysign(0.0,(bDD.s.hi*cDD.s.hi - aDD.s.hi*dDD.s.hi));
- imag.s.lo = 0.0;
- }
- }
-
- long double _Complex z;
- __real__ z = real.ld;
- __imag__ z = imag.ld;
-
- return z;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/fixtfdi.c b/contrib/libs/cxxsupp/builtins/ppc/fixtfdi.c
deleted file mode 100644
index 2c7c0f8e279..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/fixtfdi.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* int64_t __fixunstfdi(long double x);
- * This file implements the PowerPC 128-bit double-double -> int64_t conversion
- */
-
-#include "DD.h"
-#include "../int_math.h"
-
-uint64_t __fixtfdi(long double input)
-{
- const DD x = { .ld = input };
- const doublebits hibits = { .d = x.s.hi };
-
- const uint32_t absHighWord = (uint32_t)(hibits.x >> 32) & UINT32_C(0x7fffffff);
- const uint32_t absHighWordMinusOne = absHighWord - UINT32_C(0x3ff00000);
-
- /* If (1.0 - tiny) <= input < 0x1.0p63: */
- if (UINT32_C(0x03f00000) > absHighWordMinusOne)
- {
- /* Do an unsigned conversion of the absolute value, then restore the sign. */
- const int unbiasedHeadExponent = absHighWordMinusOne >> 20;
-
- int64_t result = hibits.x & INT64_C(0x000fffffffffffff); /* mantissa(hi) */
- result |= INT64_C(0x0010000000000000); /* matissa(hi) with implicit bit */
- result <<= 10; /* mantissa(hi) with one zero preceding bit. */
-
- const int64_t hiNegationMask = ((int64_t)(hibits.x)) >> 63;
-
- /* If the tail is non-zero, we need to patch in the tail bits. */
- if (0.0 != x.s.lo)
- {
- const doublebits lobits = { .d = x.s.lo };
- int64_t tailMantissa = lobits.x & INT64_C(0x000fffffffffffff);
- tailMantissa |= INT64_C(0x0010000000000000);
-
- /* At this point we have the mantissa of |tail| */
- /* We need to negate it if head and tail have different signs. */
- const int64_t loNegationMask = ((int64_t)(lobits.x)) >> 63;
- const int64_t negationMask = loNegationMask ^ hiNegationMask;
- tailMantissa = (tailMantissa ^ negationMask) - negationMask;
-
- /* Now we have the mantissa of tail as a signed 2s-complement integer */
-
- const int biasedTailExponent = (int)(lobits.x >> 52) & 0x7ff;
-
- /* Shift the tail mantissa into the right position, accounting for the
- * bias of 10 that we shifted the head mantissa by.
- */
- tailMantissa >>= (unbiasedHeadExponent - (biasedTailExponent - (1023 - 10)));
-
- result += tailMantissa;
- }
-
- result >>= (62 - unbiasedHeadExponent);
-
- /* Restore the sign of the result and return */
- result = (result ^ hiNegationMask) - hiNegationMask;
- return result;
-
- }
-
- /* Edge cases handled here: */
-
- /* |x| < 1, result is zero. */
- if (1.0 > crt_fabs(x.s.hi))
- return INT64_C(0);
-
- /* x very close to INT64_MIN, care must be taken to see which side we are on. */
- if (x.s.hi == -0x1.0p63) {
-
- int64_t result = INT64_MIN;
-
- if (0.0 < x.s.lo)
- {
- /* If the tail is positive, the correct result is something other than INT64_MIN.
- * we'll need to figure out what it is.
- */
-
- const doublebits lobits = { .d = x.s.lo };
- int64_t tailMantissa = lobits.x & INT64_C(0x000fffffffffffff);
- tailMantissa |= INT64_C(0x0010000000000000);
-
- /* Now we negate the tailMantissa */
- tailMantissa = (tailMantissa ^ INT64_C(-1)) + INT64_C(1);
-
- /* And shift it by the appropriate amount */
- const int biasedTailExponent = (int)(lobits.x >> 52) & 0x7ff;
- tailMantissa >>= 1075 - biasedTailExponent;
-
- result -= tailMantissa;
- }
-
- return result;
- }
-
- /* Signed overflows, infinities, and NaNs */
- if (x.s.hi > 0.0)
- return INT64_MAX;
- else
- return INT64_MIN;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/fixunstfdi.c b/contrib/libs/cxxsupp/builtins/ppc/fixunstfdi.c
deleted file mode 100644
index 5e6e2cedf6a..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/fixunstfdi.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* uint64_t __fixunstfdi(long double x); */
-/* This file implements the PowerPC 128-bit double-double -> uint64_t conversion */
-
-#include "DD.h"
-
-uint64_t __fixunstfdi(long double input)
-{
- const DD x = { .ld = input };
- const doublebits hibits = { .d = x.s.hi };
-
- const uint32_t highWordMinusOne = (uint32_t)(hibits.x >> 32) - UINT32_C(0x3ff00000);
-
- /* If (1.0 - tiny) <= input < 0x1.0p64: */
- if (UINT32_C(0x04000000) > highWordMinusOne)
- {
- const int unbiasedHeadExponent = highWordMinusOne >> 20;
-
- uint64_t result = hibits.x & UINT64_C(0x000fffffffffffff); /* mantissa(hi) */
- result |= UINT64_C(0x0010000000000000); /* matissa(hi) with implicit bit */
- result <<= 11; /* mantissa(hi) left aligned in the int64 field. */
-
- /* If the tail is non-zero, we need to patch in the tail bits. */
- if (0.0 != x.s.lo)
- {
- const doublebits lobits = { .d = x.s.lo };
- int64_t tailMantissa = lobits.x & INT64_C(0x000fffffffffffff);
- tailMantissa |= INT64_C(0x0010000000000000);
-
- /* At this point we have the mantissa of |tail| */
-
- const int64_t negationMask = ((int64_t)(lobits.x)) >> 63;
- tailMantissa = (tailMantissa ^ negationMask) - negationMask;
-
- /* Now we have the mantissa of tail as a signed 2s-complement integer */
-
- const int biasedTailExponent = (int)(lobits.x >> 52) & 0x7ff;
-
- /* Shift the tail mantissa into the right position, accounting for the
- * bias of 11 that we shifted the head mantissa by.
- */
- tailMantissa >>= (unbiasedHeadExponent - (biasedTailExponent - (1023 - 11)));
-
- result += tailMantissa;
- }
-
- result >>= (63 - unbiasedHeadExponent);
- return result;
- }
-
- /* Edge cases are handled here, with saturation. */
- if (1.0 > x.s.hi)
- return UINT64_C(0);
- else
- return UINT64_MAX;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/floatditf.c b/contrib/libs/cxxsupp/builtins/ppc/floatditf.c
deleted file mode 100644
index beabdd01742..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/floatditf.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __floatditf(long long x); */
-/* This file implements the PowerPC long long -> long double conversion */
-
-#include "DD.h"
-
-long double __floatditf(int64_t a) {
-
- static const double twop32 = 0x1.0p32;
- static const double twop52 = 0x1.0p52;
-
- doublebits low = { .d = twop52 };
- low.x |= a & UINT64_C(0x00000000ffffffff); /* 0x1.0p52 + low 32 bits of a. */
-
- const double high_addend = (double)((int32_t)(a >> 32))*twop32 - twop52;
-
- /* At this point, we have two double precision numbers
- * high_addend and low.d, and we wish to return their sum
- * as a canonicalized long double:
- */
-
- /* This implementation sets the inexact flag spuriously.
- * This could be avoided, but at some substantial cost.
- */
-
- DD result;
-
- result.s.hi = high_addend + low.d;
- result.s.lo = (high_addend - result.s.hi) + low.d;
-
- return result.ld;
-
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/floatunditf.c b/contrib/libs/cxxsupp/builtins/ppc/floatunditf.c
deleted file mode 100644
index b12e1e738fd..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/floatunditf.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __floatunditf(unsigned long long x); */
-/* This file implements the PowerPC unsigned long long -> long double conversion */
-
-#include "DD.h"
-
-long double __floatunditf(uint64_t a) {
-
- /* Begins with an exact copy of the code from __floatundidf */
-
- static const double twop52 = 0x1.0p52;
- static const double twop84 = 0x1.0p84;
- static const double twop84_plus_twop52 = 0x1.00000001p84;
-
- doublebits high = { .d = twop84 };
- doublebits low = { .d = twop52 };
-
- high.x |= a >> 32; /* 0x1.0p84 + high 32 bits of a */
- low.x |= a & UINT64_C(0x00000000ffffffff); /* 0x1.0p52 + low 32 bits of a */
-
- const double high_addend = high.d - twop84_plus_twop52;
-
- /* At this point, we have two double precision numbers
- * high_addend and low.d, and we wish to return their sum
- * as a canonicalized long double:
- */
-
- /* This implementation sets the inexact flag spuriously. */
- /* This could be avoided, but at some substantial cost. */
-
- DD result;
-
- result.s.hi = high_addend + low.d;
- result.s.lo = (high_addend - result.s.hi) + low.d;
-
- return result.ld;
-
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/gcc_qadd.c b/contrib/libs/cxxsupp/builtins/ppc/gcc_qadd.c
deleted file mode 100644
index 32e16e9d1d1..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/gcc_qadd.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __gcc_qadd(long double x, long double y);
- * This file implements the PowerPC 128-bit double-double add operation.
- * This implementation is shamelessly cribbed from Apple's DDRT, circa 1993(!)
- */
-
-#include "DD.h"
-
-long double __gcc_qadd(long double x, long double y)
-{
- static const uint32_t infinityHi = UINT32_C(0x7ff00000);
-
- DD dst = { .ld = x }, src = { .ld = y };
-
- register double A = dst.s.hi, a = dst.s.lo,
- B = src.s.hi, b = src.s.lo;
-
- /* If both operands are zero: */
- if ((A == 0.0) && (B == 0.0)) {
- dst.s.hi = A + B;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- /* If either operand is NaN or infinity: */
- const doublebits abits = { .d = A };
- const doublebits bbits = { .d = B };
- if ((((uint32_t)(abits.x >> 32) & infinityHi) == infinityHi) ||
- (((uint32_t)(bbits.x >> 32) & infinityHi) == infinityHi)) {
- dst.s.hi = A + B;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- /* If the computation overflows: */
- /* This may be playing things a little bit fast and loose, but it will do for a start. */
- const double testForOverflow = A + (B + (a + b));
- const doublebits testbits = { .d = testForOverflow };
- if (((uint32_t)(testbits.x >> 32) & infinityHi) == infinityHi) {
- dst.s.hi = testForOverflow;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- double H, h;
- double T, t;
- double W, w;
- double Y;
-
- H = B + (A - (A + B));
- T = b + (a - (a + b));
- h = A + (B - (A + B));
- t = a + (b - (a + b));
-
- if (local_fabs(A) <= local_fabs(B))
- w = (a + b) + h;
- else
- w = (a + b) + H;
-
- W = (A + B) + w;
- Y = (A + B) - W;
- Y += w;
-
- if (local_fabs(a) <= local_fabs(b))
- w = t + Y;
- else
- w = T + Y;
-
- dst.s.hi = Y = W + w;
- dst.s.lo = (W - Y) + w;
-
- return dst.ld;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/gcc_qdiv.c b/contrib/libs/cxxsupp/builtins/ppc/gcc_qdiv.c
deleted file mode 100644
index 70aa00b6440..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/gcc_qdiv.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __gcc_qdiv(long double x, long double y);
- * This file implements the PowerPC 128-bit double-double division operation.
- * This implementation is shamelessly cribbed from Apple's DDRT, circa 1993(!)
- */
-
-#include "DD.h"
-
-long double __gcc_qdiv(long double a, long double b)
-{
- static const uint32_t infinityHi = UINT32_C(0x7ff00000);
- DD dst = { .ld = a }, src = { .ld = b };
-
- register double x = dst.s.hi, x1 = dst.s.lo,
- y = src.s.hi, y1 = src.s.lo;
-
- double yHi, yLo, qHi, qLo;
- double yq, tmp, q;
-
- q = x / y;
-
- /* Detect special cases */
- if (q == 0.0) {
- dst.s.hi = q;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- const doublebits qBits = { .d = q };
- if (((uint32_t)(qBits.x >> 32) & infinityHi) == infinityHi) {
- dst.s.hi = q;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- yHi = high26bits(y);
- qHi = high26bits(q);
-
- yq = y * q;
- yLo = y - yHi;
- qLo = q - qHi;
-
- tmp = LOWORDER(yq, yHi, yLo, qHi, qLo);
- tmp = (x - yq) - tmp;
- tmp = ((tmp + x1) - y1 * q) / y;
- x = q + tmp;
-
- dst.s.lo = (q - x) + tmp;
- dst.s.hi = x;
-
- return dst.ld;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/gcc_qmul.c b/contrib/libs/cxxsupp/builtins/ppc/gcc_qmul.c
deleted file mode 100644
index fb4c5164ccb..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/gcc_qmul.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __gcc_qmul(long double x, long double y);
- * This file implements the PowerPC 128-bit double-double multiply operation.
- * This implementation is shamelessly cribbed from Apple's DDRT, circa 1993(!)
- */
-
-#include "DD.h"
-
-long double __gcc_qmul(long double x, long double y)
-{
- static const uint32_t infinityHi = UINT32_C(0x7ff00000);
- DD dst = { .ld = x }, src = { .ld = y };
-
- register double A = dst.s.hi, a = dst.s.lo,
- B = src.s.hi, b = src.s.lo;
-
- double aHi, aLo, bHi, bLo;
- double ab, tmp, tau;
-
- ab = A * B;
-
- /* Detect special cases */
- if (ab == 0.0) {
- dst.s.hi = ab;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- const doublebits abBits = { .d = ab };
- if (((uint32_t)(abBits.x >> 32) & infinityHi) == infinityHi) {
- dst.s.hi = ab;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- /* Generic cases handled here. */
- aHi = high26bits(A);
- bHi = high26bits(B);
- aLo = A - aHi;
- bLo = B - bHi;
-
- tmp = LOWORDER(ab, aHi, aLo, bHi, bLo);
- tmp += (A * b + a * B);
- tau = ab + tmp;
-
- dst.s.lo = (ab - tau) + tmp;
- dst.s.hi = tau;
-
- return dst.ld;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/gcc_qsub.c b/contrib/libs/cxxsupp/builtins/ppc/gcc_qsub.c
deleted file mode 100644
index c092e24dbda..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/gcc_qsub.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __gcc_qsub(long double x, long double y);
- * This file implements the PowerPC 128-bit double-double add operation.
- * This implementation is shamelessly cribbed from Apple's DDRT, circa 1993(!)
- */
-
-#include "DD.h"
-
-long double __gcc_qsub(long double x, long double y)
-{
- static const uint32_t infinityHi = UINT32_C(0x7ff00000);
-
- DD dst = { .ld = x }, src = { .ld = y };
-
- register double A = dst.s.hi, a = dst.s.lo,
- B = -src.s.hi, b = -src.s.lo;
-
- /* If both operands are zero: */
- if ((A == 0.0) && (B == 0.0)) {
- dst.s.hi = A + B;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- /* If either operand is NaN or infinity: */
- const doublebits abits = { .d = A };
- const doublebits bbits = { .d = B };
- if ((((uint32_t)(abits.x >> 32) & infinityHi) == infinityHi) ||
- (((uint32_t)(bbits.x >> 32) & infinityHi) == infinityHi)) {
- dst.s.hi = A + B;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- /* If the computation overflows: */
- /* This may be playing things a little bit fast and loose, but it will do for a start. */
- const double testForOverflow = A + (B + (a + b));
- const doublebits testbits = { .d = testForOverflow };
- if (((uint32_t)(testbits.x >> 32) & infinityHi) == infinityHi) {
- dst.s.hi = testForOverflow;
- dst.s.lo = 0.0;
- return dst.ld;
- }
-
- double H, h;
- double T, t;
- double W, w;
- double Y;
-
- H = B + (A - (A + B));
- T = b + (a - (a + b));
- h = A + (B - (A + B));
- t = a + (b - (a + b));
-
- if (local_fabs(A) <= local_fabs(B))
- w = (a + b) + h;
- else
- w = (a + b) + H;
-
- W = (A + B) + w;
- Y = (A + B) - W;
- Y += w;
-
- if (local_fabs(a) <= local_fabs(b))
- w = t + Y;
- else
- w = T + Y;
-
- dst.s.hi = Y = W + w;
- dst.s.lo = (W - Y) + w;
-
- return dst.ld;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/multc3.c b/contrib/libs/cxxsupp/builtins/ppc/multc3.c
deleted file mode 100644
index 9dd79c975dd..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/multc3.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-#include "DD.h"
-#include "../int_math.h"
-
-#define makeFinite(x) { \
- (x).s.hi = crt_copysign(crt_isinf((x).s.hi) ? 1.0 : 0.0, (x).s.hi); \
- (x).s.lo = 0.0; \
- }
-
-#define zeroNaN(x) { \
- if (crt_isnan((x).s.hi)) { \
- (x).s.hi = crt_copysign(0.0, (x).s.hi); \
- (x).s.lo = 0.0; \
- } \
- }
-
-long double _Complex
-__multc3(long double a, long double b, long double c, long double d)
-{
- long double ac = __gcc_qmul(a,c);
- long double bd = __gcc_qmul(b,d);
- long double ad = __gcc_qmul(a,d);
- long double bc = __gcc_qmul(b,c);
-
- DD real = { .ld = __gcc_qsub(ac,bd) };
- DD imag = { .ld = __gcc_qadd(ad,bc) };
-
- if (crt_isnan(real.s.hi) && crt_isnan(imag.s.hi))
- {
- int recalc = 0;
-
- DD aDD = { .ld = a };
- DD bDD = { .ld = b };
- DD cDD = { .ld = c };
- DD dDD = { .ld = d };
-
- if (crt_isinf(aDD.s.hi) || crt_isinf(bDD.s.hi))
- {
- makeFinite(aDD);
- makeFinite(bDD);
- zeroNaN(cDD);
- zeroNaN(dDD);
- recalc = 1;
- }
-
- if (crt_isinf(cDD.s.hi) || crt_isinf(dDD.s.hi))
- {
- makeFinite(cDD);
- makeFinite(dDD);
- zeroNaN(aDD);
- zeroNaN(bDD);
- recalc = 1;
- }
-
- if (!recalc)
- {
- DD acDD = { .ld = ac };
- DD bdDD = { .ld = bd };
- DD adDD = { .ld = ad };
- DD bcDD = { .ld = bc };
-
- if (crt_isinf(acDD.s.hi) || crt_isinf(bdDD.s.hi) ||
- crt_isinf(adDD.s.hi) || crt_isinf(bcDD.s.hi))
- {
- zeroNaN(aDD);
- zeroNaN(bDD);
- zeroNaN(cDD);
- zeroNaN(dDD);
- recalc = 1;
- }
- }
-
- if (recalc)
- {
- real.s.hi = CRT_INFINITY * (aDD.s.hi*cDD.s.hi - bDD.s.hi*dDD.s.hi);
- real.s.lo = 0.0;
- imag.s.hi = CRT_INFINITY * (aDD.s.hi*dDD.s.hi + bDD.s.hi*cDD.s.hi);
- imag.s.lo = 0.0;
- }
- }
-
- long double _Complex z;
- __real__ z = real.ld;
- __imag__ z = imag.ld;
-
- return z;
-}
diff --git a/contrib/libs/cxxsupp/builtins/ppc/restFP.S b/contrib/libs/cxxsupp/builtins/ppc/restFP.S
deleted file mode 100644
index 95032897c0d..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/restFP.S
+++ /dev/null
@@ -1,43 +0,0 @@
-//===-- restFP.S - Implement restFP ---------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// Helper function used by compiler to restore ppc floating point registers at
-// the end of the function epilog. This function returns to the address
-// in the LR slot. So a function epilog must branch (b) not branch and link
-// (bl) to this function.
-// If the compiler wants to restore f27..f31, it does a "b restFP+52"
-//
-// This function should never be exported by a shared library. Each linkage
-// unit carries its own copy of this function.
-//
-DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(restFP)
- lfd f14,-144(r1)
- lfd f15,-136(r1)
- lfd f16,-128(r1)
- lfd f17,-120(r1)
- lfd f18,-112(r1)
- lfd f19,-104(r1)
- lfd f20,-96(r1)
- lfd f21,-88(r1)
- lfd f22,-80(r1)
- lfd f23,-72(r1)
- lfd f24,-64(r1)
- lfd f25,-56(r1)
- lfd f26,-48(r1)
- lfd f27,-40(r1)
- lfd f28,-32(r1)
- lfd f29,-24(r1)
- lfd f30,-16(r1)
- lfd f31,-8(r1)
- lwz r0,8(r1)
- mtlr r0
- blr
diff --git a/contrib/libs/cxxsupp/builtins/ppc/saveFP.S b/contrib/libs/cxxsupp/builtins/ppc/saveFP.S
deleted file mode 100644
index 72bd459f4cc..00000000000
--- a/contrib/libs/cxxsupp/builtins/ppc/saveFP.S
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- saveFP.S - Implement saveFP ---------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-//
-// Helper function used by compiler to save ppc floating point registers in
-// function prologs. This routines also saves r0 in the LR slot.
-// If the compiler wants to save f27..f31, it does a "bl saveFP+52"
-//
-// This function should never be exported by a shared library. Each linkage
-// unit carries its own copy of this function.
-//
-DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(saveFP)
- stfd f14,-144(r1)
- stfd f15,-136(r1)
- stfd f16,-128(r1)
- stfd f17,-120(r1)
- stfd f18,-112(r1)
- stfd f19,-104(r1)
- stfd f20,-96(r1)
- stfd f21,-88(r1)
- stfd f22,-80(r1)
- stfd f23,-72(r1)
- stfd f24,-64(r1)
- stfd f25,-56(r1)
- stfd f26,-48(r1)
- stfd f27,-40(r1)
- stfd f28,-32(r1)
- stfd f29,-24(r1)
- stfd f30,-16(r1)
- stfd f31,-8(r1)
- stw r0,8(r1)
- blr
diff --git a/contrib/libs/cxxsupp/builtins/subdf3.c b/contrib/libs/cxxsupp/builtins/subdf3.c
deleted file mode 100644
index 7a79e5e7765..00000000000
--- a/contrib/libs/cxxsupp/builtins/subdf3.c
+++ /dev/null
@@ -1,25 +0,0 @@
-//===-- lib/adddf3.c - Double-precision subtraction ---------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements double-precision soft-float subtraction with the
-// IEEE-754 default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define DOUBLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(dsub, subdf3)
-
-// Subtraction; flip the sign bit of b and add.
-COMPILER_RT_ABI fp_t
-__subdf3(fp_t a, fp_t b) {
- return __adddf3(a, fromRep(toRep(b) ^ signBit));
-}
-
diff --git a/contrib/libs/cxxsupp/builtins/subsf3.c b/contrib/libs/cxxsupp/builtins/subsf3.c
deleted file mode 100644
index c3b85144af4..00000000000
--- a/contrib/libs/cxxsupp/builtins/subsf3.c
+++ /dev/null
@@ -1,25 +0,0 @@
-//===-- lib/subsf3.c - Single-precision subtraction ---------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements single-precision soft-float subtraction with the
-// IEEE-754 default rounding (to nearest, ties to even).
-//
-//===----------------------------------------------------------------------===//
-
-#define SINGLE_PRECISION
-#include "fp_lib.h"
-
-ARM_EABI_FNALIAS(fsub, subsf3)
-
-// Subtraction; flip the sign bit of b and add.
-COMPILER_RT_ABI fp_t
-__subsf3(fp_t a, fp_t b) {
- return __addsf3(a, fromRep(toRep(b) ^ signBit));
-}
-
diff --git a/contrib/libs/cxxsupp/builtins/subvdi3.c b/contrib/libs/cxxsupp/builtins/subvdi3.c
deleted file mode 100644
index 71fc70ffa92..00000000000
--- a/contrib/libs/cxxsupp/builtins/subvdi3.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ===-- subvdi3.c - Implement __subvdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __subvdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a - b */
-
-/* Effects: aborts if a - b overflows */
-
-COMPILER_RT_ABI di_int
-__subvdi3(di_int a, di_int b)
-{
- di_int s = (du_int) a - (du_int) b;
- if (b >= 0)
- {
- if (s > a)
- compilerrt_abort();
- }
- else
- {
- if (s <= a)
- compilerrt_abort();
- }
- return s;
-}
diff --git a/contrib/libs/cxxsupp/builtins/subvsi3.c b/contrib/libs/cxxsupp/builtins/subvsi3.c
deleted file mode 100644
index e6c0fb688c9..00000000000
--- a/contrib/libs/cxxsupp/builtins/subvsi3.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ===-- subvsi3.c - Implement __subvsi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __subvsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a - b */
-
-/* Effects: aborts if a - b overflows */
-
-COMPILER_RT_ABI si_int
-__subvsi3(si_int a, si_int b)
-{
- si_int s = (su_int) a - (su_int) b;
- if (b >= 0)
- {
- if (s > a)
- compilerrt_abort();
- }
- else
- {
- if (s <= a)
- compilerrt_abort();
- }
- return s;
-}
diff --git a/contrib/libs/cxxsupp/builtins/subvti3.c b/contrib/libs/cxxsupp/builtins/subvti3.c
deleted file mode 100644
index a6804d2d7b9..00000000000
--- a/contrib/libs/cxxsupp/builtins/subvti3.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* ===-- subvti3.c - Implement __subvti3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __subvti3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: a - b */
-
-/* Effects: aborts if a - b overflows */
-
-COMPILER_RT_ABI ti_int
-__subvti3(ti_int a, ti_int b)
-{
- ti_int s = (tu_int) a - (tu_int) b;
- if (b >= 0)
- {
- if (s > a)
- compilerrt_abort();
- }
- else
- {
- if (s <= a)
- compilerrt_abort();
- }
- return s;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/trampoline_setup.c b/contrib/libs/cxxsupp/builtins/trampoline_setup.c
deleted file mode 100644
index 25b627ab765..00000000000
--- a/contrib/libs/cxxsupp/builtins/trampoline_setup.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ===----- trampoline_setup.c - Implement __trampoline_setup -------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-extern void __clear_cache(void* start, void* end);
-
-/*
- * The ppc compiler generates calls to __trampoline_setup() when creating
- * trampoline functions on the stack for use with nested functions.
- * This function creates a custom 40-byte trampoline function on the stack
- * which loads r11 with a pointer to the outer function's locals
- * and then jumps to the target nested function.
- */
-
-#if __ppc__ && !defined(__powerpc64__)
-COMPILER_RT_ABI void
-__trampoline_setup(uint32_t* trampOnStack, int trampSizeAllocated,
- const void* realFunc, void* localsPtr)
-{
- /* should never happen, but if compiler did not allocate */
- /* enough space on stack for the trampoline, abort */
- if ( trampSizeAllocated < 40 )
- compilerrt_abort();
-
- /* create trampoline */
- trampOnStack[0] = 0x7c0802a6; /* mflr r0 */
- trampOnStack[1] = 0x4800000d; /* bl Lbase */
- trampOnStack[2] = (uint32_t)realFunc;
- trampOnStack[3] = (uint32_t)localsPtr;
- trampOnStack[4] = 0x7d6802a6; /* Lbase: mflr r11 */
- trampOnStack[5] = 0x818b0000; /* lwz r12,0(r11) */
- trampOnStack[6] = 0x7c0803a6; /* mtlr r0 */
- trampOnStack[7] = 0x7d8903a6; /* mtctr r12 */
- trampOnStack[8] = 0x816b0004; /* lwz r11,4(r11) */
- trampOnStack[9] = 0x4e800420; /* bctr */
-
- /* clear instruction cache */
- __clear_cache(trampOnStack, &trampOnStack[10]);
-}
-#endif /* __ppc__ && !defined(__powerpc64__) */
diff --git a/contrib/libs/cxxsupp/builtins/truncdfhf2.c b/contrib/libs/cxxsupp/builtins/truncdfhf2.c
deleted file mode 100644
index 17195cd9e79..00000000000
--- a/contrib/libs/cxxsupp/builtins/truncdfhf2.c
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- lib/truncdfhf2.c - double -> half conversion --------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#define SRC_DOUBLE
-#define DST_HALF
-#include "fp_trunc_impl.inc"
-
-ARM_EABI_FNALIAS(d2h, truncdfhf2)
-
-COMPILER_RT_ABI uint16_t __truncdfhf2(double a) {
- return __truncXfYf2__(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/truncdfsf2.c b/contrib/libs/cxxsupp/builtins/truncdfsf2.c
deleted file mode 100644
index 46ec11dccd7..00000000000
--- a/contrib/libs/cxxsupp/builtins/truncdfsf2.c
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- lib/truncdfsf2.c - double -> single conversion ------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#define SRC_DOUBLE
-#define DST_SINGLE
-#include "fp_trunc_impl.inc"
-
-ARM_EABI_FNALIAS(d2f, truncdfsf2)
-
-COMPILER_RT_ABI float __truncdfsf2(double a) {
- return __truncXfYf2__(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/truncsfhf2.c b/contrib/libs/cxxsupp/builtins/truncsfhf2.c
deleted file mode 100644
index 9d61895bfd8..00000000000
--- a/contrib/libs/cxxsupp/builtins/truncsfhf2.c
+++ /dev/null
@@ -1,24 +0,0 @@
-//===-- lib/truncsfhf2.c - single -> half conversion --------------*- C -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#define SRC_SINGLE
-#define DST_HALF
-#include "fp_trunc_impl.inc"
-
-ARM_EABI_FNALIAS(f2h, truncsfhf2)
-
-// Use a forwarding definition and noinline to implement a poor man's alias,
-// as there isn't a good cross-platform way of defining one.
-COMPILER_RT_ABI NOINLINE uint16_t __truncsfhf2(float a) {
- return __truncXfYf2__(a);
-}
-
-COMPILER_RT_ABI uint16_t __gnu_f2h_ieee(float a) {
- return __truncsfhf2(a);
-}
diff --git a/contrib/libs/cxxsupp/builtins/ucmpdi2.c b/contrib/libs/cxxsupp/builtins/ucmpdi2.c
deleted file mode 100644
index 40af23613b1..00000000000
--- a/contrib/libs/cxxsupp/builtins/ucmpdi2.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* ===-- ucmpdi2.c - Implement __ucmpdi2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ucmpdi2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: if (a < b) returns 0
- * if (a == b) returns 1
- * if (a > b) returns 2
- */
-
-COMPILER_RT_ABI si_int
-__ucmpdi2(du_int a, du_int b)
-{
- udwords x;
- x.all = a;
- udwords y;
- y.all = b;
- if (x.s.high < y.s.high)
- return 0;
- if (x.s.high > y.s.high)
- return 2;
- if (x.s.low < y.s.low)
- return 0;
- if (x.s.low > y.s.low)
- return 2;
- return 1;
-}
-
-#ifdef __ARM_EABI__
-/* Returns: if (a < b) returns -1
-* if (a == b) returns 0
-* if (a > b) returns 1
-*/
-COMPILER_RT_ABI si_int
-__aeabi_ulcmp(di_int a, di_int b)
-{
- return __ucmpdi2(a, b) - 1;
-}
-#endif
-
diff --git a/contrib/libs/cxxsupp/builtins/ucmpti2.c b/contrib/libs/cxxsupp/builtins/ucmpti2.c
deleted file mode 100644
index bda8083bb2a..00000000000
--- a/contrib/libs/cxxsupp/builtins/ucmpti2.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ===-- ucmpti2.c - Implement __ucmpti2 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __ucmpti2 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-#ifdef CRT_HAS_128BIT
-
-/* Returns: if (a < b) returns 0
- * if (a == b) returns 1
- * if (a > b) returns 2
- */
-
-COMPILER_RT_ABI si_int
-__ucmpti2(tu_int a, tu_int b)
-{
- utwords x;
- x.all = a;
- utwords y;
- y.all = b;
- if (x.s.high < y.s.high)
- return 0;
- if (x.s.high > y.s.high)
- return 2;
- if (x.s.low < y.s.low)
- return 0;
- if (x.s.low > y.s.low)
- return 2;
- return 1;
-}
-
-#endif /* CRT_HAS_128BIT */
diff --git a/contrib/libs/cxxsupp/builtins/udivdi3.c b/contrib/libs/cxxsupp/builtins/udivdi3.c
deleted file mode 100644
index dc68e154b10..00000000000
--- a/contrib/libs/cxxsupp/builtins/udivdi3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ===-- udivdi3.c - Implement __udivdi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __udivdi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b */
-
-COMPILER_RT_ABI du_int
-__udivdi3(du_int a, du_int b)
-{
- return __udivmoddi4(a, b, 0);
-}
diff --git a/contrib/libs/cxxsupp/builtins/udivmoddi4.c b/contrib/libs/cxxsupp/builtins/udivmoddi4.c
deleted file mode 100644
index 0c8b4ff4647..00000000000
--- a/contrib/libs/cxxsupp/builtins/udivmoddi4.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/* ===-- udivmoddi4.c - Implement __udivmoddi4 -----------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __udivmoddi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Effects: if rem != 0, *rem = a % b
- * Returns: a / b
- */
-
-/* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
-
-COMPILER_RT_ABI du_int
-__udivmoddi4(du_int a, du_int b, du_int* rem)
-{
- const unsigned n_uword_bits = sizeof(su_int) * CHAR_BIT;
- const unsigned n_udword_bits = sizeof(du_int) * CHAR_BIT;
- udwords n;
- n.all = a;
- udwords d;
- d.all = b;
- udwords q;
- udwords r;
- unsigned sr;
- /* special cases, X is unknown, K != 0 */
- if (n.s.high == 0)
- {
- if (d.s.high == 0)
- {
- /* 0 X
- * ---
- * 0 X
- */
- if (rem)
- *rem = n.s.low % d.s.low;
- return n.s.low / d.s.low;
- }
- /* 0 X
- * ---
- * K X
- */
- if (rem)
- *rem = n.s.low;
- return 0;
- }
- /* n.s.high != 0 */
- if (d.s.low == 0)
- {
- if (d.s.high == 0)
- {
- /* K X
- * ---
- * 0 0
- */
- if (rem)
- *rem = n.s.high % d.s.low;
- return n.s.high / d.s.low;
- }
- /* d.s.high != 0 */
- if (n.s.low == 0)
- {
- /* K 0
- * ---
- * K 0
- */
- if (rem)
- {
- r.s.high = n.s.high % d.s.high;
- r.s.low = 0;
- *rem = r.all;
- }
- return n.s.high / d.s.high;
- }
- /* K K
- * ---
- * K 0
- */
- if ((d.s.high & (d.s.high - 1)) == 0) /* if d is a power of 2 */
- {
- if (rem)
- {
- r.s.low = n.s.low;
- r.s.high = n.s.high & (d.s.high - 1);
- *rem = r.all;
- }
- return n.s.high >> __builtin_ctz(d.s.high);
- }
- /* K K
- * ---
- * K 0
- */
- sr = __builtin_clz(d.s.high) - __builtin_clz(n.s.high);
- /* 0 <= sr <= n_uword_bits - 2 or sr large */
- if (sr > n_uword_bits - 2)
- {
- if (rem)
- *rem = n.all;
- return 0;
- }
- ++sr;
- /* 1 <= sr <= n_uword_bits - 1 */
- /* q.all = n.all << (n_udword_bits - sr); */
- q.s.low = 0;
- q.s.high = n.s.low << (n_uword_bits - sr);
- /* r.all = n.all >> sr; */
- r.s.high = n.s.high >> sr;
- r.s.low = (n.s.high << (n_uword_bits - sr)) | (n.s.low >> sr);
- }
- else /* d.s.low != 0 */
- {
- if (d.s.high == 0)
- {
- /* K X
- * ---
- * 0 K
- */
- if ((d.s.low & (d.s.low - 1)) == 0) /* if d is a power of 2 */
- {
- if (rem)
- *rem = n.s.low & (d.s.low - 1);
- if (d.s.low == 1)
- return n.all;
- sr = __builtin_ctz(d.s.low);
- q.s.high = n.s.high >> sr;
- q.s.low = (n.s.high << (n_uword_bits - sr)) | (n.s.low >> sr);
- return q.all;
- }
- /* K X
- * ---
- * 0 K
- */
- sr = 1 + n_uword_bits + __builtin_clz(d.s.low) - __builtin_clz(n.s.high);
- /* 2 <= sr <= n_udword_bits - 1
- * q.all = n.all << (n_udword_bits - sr);
- * r.all = n.all >> sr;
- */
- if (sr == n_uword_bits)
- {
- q.s.low = 0;
- q.s.high = n.s.low;
- r.s.high = 0;
- r.s.low = n.s.high;
- }
- else if (sr < n_uword_bits) // 2 <= sr <= n_uword_bits - 1
- {
- q.s.low = 0;
- q.s.high = n.s.low << (n_uword_bits - sr);
- r.s.high = n.s.high >> sr;
- r.s.low = (n.s.high << (n_uword_bits - sr)) | (n.s.low >> sr);
- }
- else // n_uword_bits + 1 <= sr <= n_udword_bits - 1
- {
- q.s.low = n.s.low << (n_udword_bits - sr);
- q.s.high = (n.s.high << (n_udword_bits - sr)) |
- (n.s.low >> (sr - n_uword_bits));
- r.s.high = 0;
- r.s.low = n.s.high >> (sr - n_uword_bits);
- }
- }
- else
- {
- /* K X
- * ---
- * K K
- */
- sr = __builtin_clz(d.s.high) - __builtin_clz(n.s.high);
- /* 0 <= sr <= n_uword_bits - 1 or sr large */
- if (sr > n_uword_bits - 1)
- {
- if (rem)
- *rem = n.all;
- return 0;
- }
- ++sr;
- /* 1 <= sr <= n_uword_bits */
- /* q.all = n.all << (n_udword_bits - sr); */
- q.s.low = 0;
- if (sr == n_uword_bits)
- {
- q.s.high = n.s.low;
- r.s.high = 0;
- r.s.low = n.s.high;
- }
- else
- {
- q.s.high = n.s.low << (n_uword_bits - sr);
- r.s.high = n.s.high >> sr;
- r.s.low = (n.s.high << (n_uword_bits - sr)) | (n.s.low >> sr);
- }
- }
- }
- /* Not a special case
- * q and r are initialized with:
- * q.all = n.all << (n_udword_bits - sr);
- * r.all = n.all >> sr;
- * 1 <= sr <= n_udword_bits - 1
- */
- su_int carry = 0;
- for (; sr > 0; --sr)
- {
- /* r:q = ((r:q) << 1) | carry */
- r.s.high = (r.s.high << 1) | (r.s.low >> (n_uword_bits - 1));
- r.s.low = (r.s.low << 1) | (q.s.high >> (n_uword_bits - 1));
- q.s.high = (q.s.high << 1) | (q.s.low >> (n_uword_bits - 1));
- q.s.low = (q.s.low << 1) | carry;
- /* carry = 0;
- * if (r.all >= d.all)
- * {
- * r.all -= d.all;
- * carry = 1;
- * }
- */
- const di_int s = (di_int)(d.all - r.all - 1) >> (n_udword_bits - 1);
- carry = s & 1;
- r.all -= d.all & s;
- }
- q.all = (q.all << 1) | carry;
- if (rem)
- *rem = r.all;
- return q.all;
-}
diff --git a/contrib/libs/cxxsupp/builtins/udivmodsi4.c b/contrib/libs/cxxsupp/builtins/udivmodsi4.c
deleted file mode 100644
index 789c4b5061e..00000000000
--- a/contrib/libs/cxxsupp/builtins/udivmodsi4.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*===-- udivmodsi4.c - Implement __udivmodsi4 ------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __udivmodsi4 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b, *rem = a % b */
-
-COMPILER_RT_ABI su_int
-__udivmodsi4(su_int a, su_int b, su_int* rem)
-{
- si_int d = __udivsi3(a,b);
- *rem = a - (d*b);
- return d;
-}
-
-
diff --git a/contrib/libs/cxxsupp/builtins/udivsi3.c b/contrib/libs/cxxsupp/builtins/udivsi3.c
deleted file mode 100644
index 5d0140cc3e7..00000000000
--- a/contrib/libs/cxxsupp/builtins/udivsi3.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* ===-- udivsi3.c - Implement __udivsi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __udivsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a / b */
-
-/* Translated from Figure 3-40 of The PowerPC Compiler Writer's Guide */
-
-ARM_EABI_FNALIAS(uidiv, udivsi3)
-
-/* This function should not call __divsi3! */
-COMPILER_RT_ABI su_int
-__udivsi3(su_int n, su_int d)
-{
- const unsigned n_uword_bits = sizeof(su_int) * CHAR_BIT;
- su_int q;
- su_int r;
- unsigned sr;
- /* special cases */
- if (d == 0)
- return 0; /* ?! */
- if (n == 0)
- return 0;
- sr = __builtin_clz(d) - __builtin_clz(n);
- /* 0 <= sr <= n_uword_bits - 1 or sr large */
- if (sr > n_uword_bits - 1) /* d > r */
- return 0;
- if (sr == n_uword_bits - 1) /* d == 1 */
- return n;
- ++sr;
- /* 1 <= sr <= n_uword_bits - 1 */
- /* Not a special case */
- q = n << (n_uword_bits - sr);
- r = n >> sr;
- su_int carry = 0;
- for (; sr > 0; --sr)
- {
- /* r:q = ((r:q) << 1) | carry */
- r = (r << 1) | (q >> (n_uword_bits - 1));
- q = (q << 1) | carry;
- /* carry = 0;
- * if (r.all >= d.all)
- * {
- * r.all -= d.all;
- * carry = 1;
- * }
- */
- const si_int s = (si_int)(d - r - 1) >> (n_uword_bits - 1);
- carry = s & 1;
- r -= d & s;
- }
- q = (q << 1) | carry;
- return q;
-}
diff --git a/contrib/libs/cxxsupp/builtins/umoddi3.c b/contrib/libs/cxxsupp/builtins/umoddi3.c
deleted file mode 100644
index d513f080a1e..00000000000
--- a/contrib/libs/cxxsupp/builtins/umoddi3.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ===-- umoddi3.c - Implement __umoddi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __umoddi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a % b */
-
-COMPILER_RT_ABI du_int
-__umoddi3(du_int a, du_int b)
-{
- du_int r;
- __udivmoddi4(a, b, &r);
- return r;
-}
diff --git a/contrib/libs/cxxsupp/builtins/umodsi3.c b/contrib/libs/cxxsupp/builtins/umodsi3.c
deleted file mode 100644
index d5fda4a6af1..00000000000
--- a/contrib/libs/cxxsupp/builtins/umodsi3.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ===-- umodsi3.c - Implement __umodsi3 -----------------------------------===
- *
- * The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __umodsi3 for the compiler_rt library.
- *
- * ===----------------------------------------------------------------------===
- */
-
-#include "int_lib.h"
-
-/* Returns: a % b */
-
-COMPILER_RT_ABI su_int
-__umodsi3(su_int a, su_int b)
-{
- return a - __udivsi3(a, b) * b;
-}
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/Makefile.mk b/contrib/libs/cxxsupp/builtins/x86_64/Makefile.mk
deleted file mode 100644
index 83848dddd96..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/Makefile.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-#===- lib/builtins/x86_64/Makefile.mk ----------------------*- Makefile -*--===#
-#
-# The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-#===------------------------------------------------------------------------===#
-
-ModuleName := builtins
-SubDirs :=
-OnlyArchs := x86_64 x86_64h
-
-AsmSources := $(foreach file,$(wildcard $(Dir)/*.S),$(notdir $(file)))
-Sources := $(foreach file,$(wildcard $(Dir)/*.c),$(notdir $(file)))
-ObjNames := $(Sources:%.c=%.o) $(AsmSources:%.S=%.o)
-Implementation := Optimized
-
-# FIXME: use automatic dependencies?
-Dependencies := $(wildcard lib/*.h $(Dir)/*.h)
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/chkstk.S b/contrib/libs/cxxsupp/builtins/x86_64/chkstk.S
deleted file mode 100644
index 4149ac63d9d..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/chkstk.S
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// _chkstk routine
-// This routine is windows specific
-// http://msdn.microsoft.com/en-us/library/ms648426.aspx
-
-// Notes from r227519
-// MSVC x64s __chkstk and cygmings ___chkstk_ms do not adjust %rsp
-// themselves. It also does not clobber %rax so we can reuse it when
-// adjusting %rsp.
-
-#ifdef __x86_64__
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(___chkstk_ms)
- push %rcx
- push %rax
- cmp $0x1000,%rax
- lea 24(%rsp),%rcx
- jb 1f
-2:
- sub $0x1000,%rcx
- test %rcx,(%rcx)
- sub $0x1000,%rax
- cmp $0x1000,%rax
- ja 2b
-1:
- sub %rax,%rcx
- test %rcx,(%rcx)
- pop %rax
- pop %rcx
- ret
-END_COMPILERRT_FUNCTION(___chkstk_ms)
-
-#endif // __x86_64__
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/chkstk2.S b/contrib/libs/cxxsupp/builtins/x86_64/chkstk2.S
deleted file mode 100644
index ac1eb920e0e..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/chkstk2.S
+++ /dev/null
@@ -1,42 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-#ifdef __x86_64__
-
-// _chkstk (_alloca) routine - probe stack between %rsp and (%rsp-%rax) in 4k increments,
-// then decrement %rsp by %rax. Preserves all registers except %rsp and flags.
-// This routine is windows specific
-// http://msdn.microsoft.com/en-us/library/ms648426.aspx
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__alloca)
- mov %rcx,%rax // x64 _alloca is a normal function with parameter in rcx
- // fallthrough
-DEFINE_COMPILERRT_FUNCTION(___chkstk)
- push %rcx
- cmp $0x1000,%rax
- lea 16(%rsp),%rcx // rsp before calling this routine -> rcx
- jb 1f
-2:
- sub $0x1000,%rcx
- test %rcx,(%rcx)
- sub $0x1000,%rax
- cmp $0x1000,%rax
- ja 2b
-1:
- sub %rax,%rcx
- test %rcx,(%rcx)
-
- lea 8(%rsp),%rax // load pointer to the return address into rax
- mov %rcx,%rsp // install the new top of stack pointer into rsp
- mov -8(%rax),%rcx // restore rcx
- push (%rax) // push return address onto the stack
- sub %rsp,%rax // restore the original value in rax
- ret
-END_COMPILERRT_FUNCTION(___chkstk)
-END_COMPILERRT_FUNCTION(__alloca)
-
-#endif // __x86_64__
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatdidf.c b/contrib/libs/cxxsupp/builtins/x86_64/floatdidf.c
deleted file mode 100644
index 388404e5e08..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatdidf.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* double __floatdidf(di_int a); */
-
-#ifdef __x86_64__
-
-#include "../int_lib.h"
-
-double __floatdidf(int64_t a)
-{
- return (double)a;
-}
-
-#endif /* __x86_64__ */
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatdisf.c b/contrib/libs/cxxsupp/builtins/x86_64/floatdisf.c
deleted file mode 100644
index 96c3728e92c..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatdisf.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-#ifdef __x86_64__
-
-#include "../int_lib.h"
-
-float __floatdisf(int64_t a)
-{
- return (float)a;
-}
-
-#endif /* __x86_64__ */
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatdixf.c b/contrib/libs/cxxsupp/builtins/x86_64/floatdixf.c
deleted file mode 100644
index c01193a82b5..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatdixf.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* This file is distributed under the University of Illinois Open Source
- * License. See LICENSE.TXT for details.
- */
-
-/* long double __floatdixf(di_int a); */
-
-#ifdef __x86_64__
-
-#include "../int_lib.h"
-
-long double __floatdixf(int64_t a)
-{
- return (long double)a;
-}
-
-#endif /* __i386__ */
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatundidf.S b/contrib/libs/cxxsupp/builtins/x86_64/floatundidf.S
deleted file mode 100644
index 3cd5d02a743..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatundidf.S
+++ /dev/null
@@ -1,49 +0,0 @@
-//===-- floatundidf.S - Implement __floatundidf for x86_64 ----------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements __floatundidf for the compiler_rt library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "../assembly.h"
-
-// double __floatundidf(du_int a);
-
-#ifdef __x86_64__
-
-CONST_SECTION
-
- .balign 16
-twop52:
- .quad 0x4330000000000000
-
- .balign 16
-twop84_plus_twop52:
- .quad 0x4530000000100000
-
- .balign 16
-twop84:
- .quad 0x4530000000000000
-
-#define REL_ADDR(_a) (_a)(%rip)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundidf)
- movd %edi, %xmm0 // low 32 bits of a
- shrq $32, %rdi // high 32 bits of a
- orq REL_ADDR(twop84), %rdi // 0x1p84 + a_hi (no rounding occurs)
- orpd REL_ADDR(twop52), %xmm0 // 0x1p52 + a_lo (no rounding occurs)
- movd %rdi, %xmm1
- subsd REL_ADDR(twop84_plus_twop52), %xmm1 // a_hi - 0x1p52 (no rounding occurs)
- addsd %xmm1, %xmm0 // a_hi + a_lo (round happens here)
- ret
-END_COMPILERRT_FUNCTION(__floatundidf)
-
-#endif // __x86_64__
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatundisf.S b/contrib/libs/cxxsupp/builtins/x86_64/floatundisf.S
deleted file mode 100644
index 61952f40470..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatundisf.S
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// float __floatundisf(du_int a);
-
-#ifdef __x86_64__
-
-CONST_SECTION
-
- .balign 16
-two:
- .single 2.0
-
-#define REL_ADDR(_a) (_a)(%rip)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundisf)
- movq $1, %rsi
- testq %rdi, %rdi
- js 1f
- cvtsi2ssq %rdi, %xmm0
- ret
-
-1: andq %rdi, %rsi
- shrq %rdi
- orq %rsi, %rdi
- cvtsi2ssq %rdi, %xmm0
- mulss REL_ADDR(two), %xmm0
- ret
-END_COMPILERRT_FUNCTION(__floatundisf)
-
-#endif // __x86_64__
diff --git a/contrib/libs/cxxsupp/builtins/x86_64/floatundixf.S b/contrib/libs/cxxsupp/builtins/x86_64/floatundixf.S
deleted file mode 100644
index 92961c89115..00000000000
--- a/contrib/libs/cxxsupp/builtins/x86_64/floatundixf.S
+++ /dev/null
@@ -1,68 +0,0 @@
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-
-#include "../assembly.h"
-
-// long double __floatundixf(du_int a);
-
-#ifdef __x86_64__
-
-CONST_SECTION
-
- .balign 16
-twop64:
- .quad 0x43f0000000000000
-
-#define REL_ADDR(_a) (_a)(%rip)
-
- .text
-
- .balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundixf)
- movq %rdi, -8(%rsp)
- fildq -8(%rsp)
- test %rdi, %rdi
- js 1f
- ret
-1: faddl REL_ADDR(twop64)
- ret
-END_COMPILERRT_FUNCTION(__floatundixf)
-
-#endif // __x86_64__
-
-
-/* Branch-free implementation is ever so slightly slower, but more beautiful.
- It is likely superior for inlining, so I kept it around for future reference.
-
-#ifdef __x86_64__
-
-CONST_SECTION
-
- .balign 4
-twop52:
- .quad 0x4330000000000000
-twop84_plus_twop52_neg:
- .quad 0xc530000000100000
-twop84:
- .quad 0x4530000000000000
-
-#define REL_ADDR(_a) (_a)(%rip)
-
-.text
-.balign 4
-DEFINE_COMPILERRT_FUNCTION(__floatundixf)
- movl %edi, %esi // low 32 bits of input
- shrq $32, %rdi // hi 32 bits of input
- orq REL_ADDR(twop84), %rdi // 2^84 + hi (as a double)
- orq REL_ADDR(twop52), %rsi // 2^52 + lo (as a double)
- movq %rdi, -8(%rsp)
- movq %rsi, -16(%rsp)
- fldl REL_ADDR(twop84_plus_twop52_neg)
- faddl -8(%rsp) // hi - 2^52 (as double extended, no rounding occurs)
- faddl -16(%rsp) // hi + lo (as double extended)
- ret
-END_COMPILERRT_FUNCTION(__floatundixf)
-
-#endif // __x86_64__
-
-*/
diff --git a/contrib/libs/cxxsupp/libcxx/.clang-format b/contrib/libs/cxxsupp/libcxx/.clang-format
deleted file mode 100644
index 527b629c382..00000000000
--- a/contrib/libs/cxxsupp/libcxx/.clang-format
+++ /dev/null
@@ -1,20 +0,0 @@
-BasedOnStyle: LLVM
-
----
-Language: Cpp
-Standard: c++20
-SpacesInAngles: Leave
-
-AlwaysBreakTemplateDeclarations: true
-PointerAlignment: Left
-
-# Disable formatting options which may break tests.
-SortIncludes: false
-ReflowComments: false
-
-# libc++'s preferred indentions of preprocessor statements.
-IndentPPDirectives: AfterHash
-
-# libc++ has some long names so we need more than the 80 column limit imposed by LLVM style, for sensible formatting
-ColumnLimit: 120
----
diff --git a/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index 59ae9862241..00000000000
--- a/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,70 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL 7e6a182a2f65f965d96f2755976c1829
-BELONGS ya.make
- License text:
- * FreeBSD libc. These are covered by the following copyright:
- *
- * Copyright (c) 2002-2004 Tim J. Robbins.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- src/support/solaris/mbsnrtowcs.inc [5:7]
- src/support/solaris/wcsnrtombs.inc [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL ebc015cad7377d32e7b2fc0ae5293aa1
-BELONGS ya.make
-FILE_INCLUDE CREDITS.TXT found in files: LICENSE.TXT at line 252
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.TXT [252:252]
-
-KEEP COPYRIGHT_SERVICE_LABEL f52c727d32a7eaf5a8de6bc96b82797c
-BELONGS ya.make
-FILE_INCLUDE CREDITS.TXT found in files: LICENSE.TXT at line 293
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.TXT [293:293]
diff --git a/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index 2ffffdba477..00000000000
--- a/contrib/libs/cxxsupp/libcxx/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,2348 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP NCSA AND MIT 1f7e00acb6cda5de868d4d4c1ffe3c2b
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [240:245]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [240:245]
-
-KEEP NCSA 5a35b4c0d3b3923cac31a5a371332ca2
-BELONGS ya.make
- License text:
- Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [237:237]
-
-KEEP MIT 5debb370f50e1dfd24ff5144233a2ef6
-BELONGS ya.make
-FILE_IGNORE include/any found in files: LICENSE.TXT at line 295
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [295:311]
-
-KEEP Apache-2.0 WITH LLVM-exception 705a75a25bce12b12334e8fc577d8a46
-BELONGS ya.make
- License text:
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- src/filesystem/int128_builtins.cpp [3:4]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- src/filesystem/int128_builtins.cpp [3:4]
-
-KEEP Apache-2.0 WITH LLVM-exception 755ab7da3ff8c5d6ae90bdbebd177e49
-BELONGS ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/__algorithm/adjacent_find.h [4:5]
- include/__algorithm/all_of.h [4:5]
- include/__algorithm/any_of.h [4:5]
- include/__algorithm/binary_search.h [3:4]
- include/__algorithm/clamp.h [3:4]
- include/__algorithm/comp.h [3:4]
- include/__algorithm/comp_ref_type.h [3:4]
- include/__algorithm/copy.h [3:4]
- include/__algorithm/copy_backward.h [3:4]
- include/__algorithm/copy_if.h [3:4]
- include/__algorithm/copy_n.h [3:4]
- include/__algorithm/count.h [4:5]
- include/__algorithm/count_if.h [4:5]
- include/__algorithm/equal.h [4:5]
- include/__algorithm/equal_range.h [3:4]
- include/__algorithm/fill.h [3:4]
- include/__algorithm/fill_n.h [3:4]
- include/__algorithm/find.h [4:5]
- include/__algorithm/find_end.h [4:5]
- include/__algorithm/find_first_of.h [4:5]
- include/__algorithm/find_if.h [4:5]
- include/__algorithm/find_if_not.h [4:5]
- include/__algorithm/for_each.h [4:5]
- include/__algorithm/for_each_n.h [4:5]
- include/__algorithm/generate.h [3:4]
- include/__algorithm/generate_n.h [3:4]
- include/__algorithm/half_positive.h [3:4]
- include/__algorithm/includes.h [3:4]
- include/__algorithm/inplace_merge.h [3:4]
- include/__algorithm/is_heap.h [3:4]
- include/__algorithm/is_heap_until.h [3:4]
- include/__algorithm/is_partitioned.h [3:4]
- include/__algorithm/is_permutation.h [4:5]
- include/__algorithm/is_sorted.h [3:4]
- include/__algorithm/is_sorted_until.h [3:4]
- include/__algorithm/iter_swap.h [3:4]
- include/__algorithm/lexicographical_compare.h [3:4]
- include/__algorithm/lower_bound.h [3:4]
- include/__algorithm/make_heap.h [3:4]
- include/__algorithm/max.h [3:4]
- include/__algorithm/max_element.h [3:4]
- include/__algorithm/merge.h [3:4]
- include/__algorithm/min.h [3:4]
- include/__algorithm/min_element.h [3:4]
- include/__algorithm/minmax.h [3:4]
- include/__algorithm/minmax_element.h [3:4]
- include/__algorithm/mismatch.h [4:5]
- include/__algorithm/move.h [3:4]
- include/__algorithm/move_backward.h [3:4]
- include/__algorithm/next_permutation.h [3:4]
- include/__algorithm/none_of.h [4:5]
- include/__algorithm/nth_element.h [3:4]
- include/__algorithm/partial_sort.h [3:4]
- include/__algorithm/partial_sort_copy.h [3:4]
- include/__algorithm/partition.h [3:4]
- include/__algorithm/partition_copy.h [3:4]
- include/__algorithm/partition_point.h [3:4]
- include/__algorithm/pop_heap.h [3:4]
- include/__algorithm/prev_permutation.h [3:4]
- include/__algorithm/push_heap.h [3:4]
- include/__algorithm/remove.h [3:4]
- include/__algorithm/remove_copy.h [3:4]
- include/__algorithm/remove_copy_if.h [3:4]
- include/__algorithm/remove_if.h [3:4]
- include/__algorithm/replace.h [3:4]
- include/__algorithm/replace_copy.h [3:4]
- include/__algorithm/replace_copy_if.h [3:4]
- include/__algorithm/replace_if.h [3:4]
- include/__algorithm/reverse.h [3:4]
- include/__algorithm/reverse_copy.h [3:4]
- include/__algorithm/rotate.h [3:4]
- include/__algorithm/rotate_copy.h [3:4]
- include/__algorithm/sample.h [3:4]
- include/__algorithm/search.h [4:5]
- include/__algorithm/search_n.h [4:5]
- include/__algorithm/set_difference.h [3:4]
- include/__algorithm/set_intersection.h [3:4]
- include/__algorithm/set_symmetric_difference.h [3:4]
- include/__algorithm/set_union.h [3:4]
- include/__algorithm/shift_left.h [3:4]
- include/__algorithm/shift_right.h [3:4]
- include/__algorithm/shuffle.h [3:4]
- include/__algorithm/sift_down.h [3:4]
- include/__algorithm/sort.h [3:4]
- include/__algorithm/sort_heap.h [3:4]
- include/__algorithm/stable_partition.h [3:4]
- include/__algorithm/stable_sort.h [3:4]
- include/__algorithm/swap_ranges.h [3:4]
- include/__algorithm/transform.h [3:4]
- include/__algorithm/unique.h [3:4]
- include/__algorithm/unique_copy.h [3:4]
- include/__algorithm/unwrap_iter.h [3:4]
- include/__algorithm/upper_bound.h [3:4]
- include/__availability [4:5]
- include/__bit/bit_cast.h [4:5]
- include/__bit_reference [4:5]
- include/__bits [4:5]
- include/__bsd_locale_defaults.h [4:5]
- include/__bsd_locale_fallbacks.h [4:5]
- include/__charconv/chars_format.h [4:5]
- include/__charconv/from_chars_result.h [4:5]
- include/__charconv/to_chars_result.h [4:5]
- include/__compare/common_comparison_category.h [3:4]
- include/__compare/compare_three_way.h [4:5]
- include/__compare/compare_three_way_result.h [3:4]
- include/__compare/is_eq.h [3:4]
- include/__compare/ordering.h [3:4]
- include/__compare/synth_three_way.h [3:4]
- include/__compare/three_way_comparable.h [3:4]
- include/__concepts/arithmetic.h [3:4]
- include/__concepts/assignable.h [3:4]
- include/__concepts/boolean_testable.h [3:4]
- include/__concepts/class_or_enum.h [3:4]
- include/__concepts/common_reference_with.h [3:4]
- include/__concepts/common_with.h [3:4]
- include/__concepts/constructible.h [3:4]
- include/__concepts/convertible_to.h [3:4]
- include/__concepts/copyable.h [3:4]
- include/__concepts/derived_from.h [3:4]
- include/__concepts/destructible.h [3:4]
- include/__concepts/different_from.h [3:4]
- include/__concepts/equality_comparable.h [3:4]
- include/__concepts/invocable.h [3:4]
- include/__concepts/movable.h [3:4]
- include/__concepts/predicate.h [3:4]
- include/__concepts/regular.h [3:4]
- include/__concepts/relation.h [3:4]
- include/__concepts/same_as.h [3:4]
- include/__concepts/semiregular.h [3:4]
- include/__concepts/swappable.h [3:4]
- include/__concepts/totally_ordered.h [3:4]
- include/__config [4:5]
- include/__config_site.in [3:4]
- include/__coroutine/coroutine_handle.h [3:4]
- include/__coroutine/coroutine_traits.h [3:4]
- include/__coroutine/noop_coroutine_handle.h [3:4]
- include/__coroutine/trivial_awaitables.h [3:4]
- include/__debug [4:5]
- include/__errc [4:5]
- include/__format/format_arg.h [4:5]
- include/__format/format_args.h [4:5]
- include/__format/format_context.h [4:5]
- include/__format/format_error.h [4:5]
- include/__format/format_fwd.h [4:5]
- include/__format/format_parse_context.h [4:5]
- include/__format/format_string.h [4:5]
- include/__format/format_to_n_result.h [4:5]
- include/__format/formatter.h [4:5]
- include/__format/formatter_bool.h [4:5]
- include/__format/formatter_char.h [4:5]
- include/__format/formatter_integer.h [4:5]
- include/__format/formatter_integral.h [4:5]
- include/__format/formatter_string.h [4:5]
- include/__format/parser_std_format_spec.h [4:5]
- include/__function_like.h [4:5]
- include/__functional/binary_function.h [4:5]
- include/__functional/binary_negate.h [4:5]
- include/__functional/bind.h [4:5]
- include/__functional/bind_back.h [4:5]
- include/__functional/bind_front.h [4:5]
- include/__functional/binder1st.h [4:5]
- include/__functional/binder2nd.h [4:5]
- include/__functional/compose.h [4:5]
- include/__functional/default_searcher.h [4:5]
- include/__functional/function.h [4:5]
- include/__functional/hash.h [3:4]
- include/__functional/identity.h [4:5]
- include/__functional/invoke.h [4:5]
- include/__functional/is_transparent.h [4:5]
- include/__functional/mem_fn.h [4:5]
- include/__functional/mem_fun_ref.h [4:5]
- include/__functional/not_fn.h [4:5]
- include/__functional/operations.h [4:5]
- include/__functional/perfect_forward.h [4:5]
- include/__functional/pointer_to_binary_function.h [4:5]
- include/__functional/pointer_to_unary_function.h [4:5]
- include/__functional/ranges_operations.h [4:5]
- include/__functional/reference_wrapper.h [4:5]
- include/__functional/unary_function.h [3:4]
- include/__functional/unary_negate.h [4:5]
- include/__functional/unwrap_ref.h [3:4]
- include/__functional/weak_result_type.h [4:5]
- include/__functional_base [4:5]
- include/__hash_table [4:5]
- include/__iterator/access.h [4:5]
- include/__iterator/advance.h [4:5]
- include/__iterator/back_insert_iterator.h [4:5]
- include/__iterator/common_iterator.h [4:5]
- include/__iterator/concepts.h [4:5]
- include/__iterator/counted_iterator.h [4:5]
- include/__iterator/data.h [4:5]
- include/__iterator/default_sentinel.h [4:5]
- include/__iterator/distance.h [4:5]
- include/__iterator/empty.h [4:5]
- include/__iterator/erase_if_container.h [4:5]
- include/__iterator/front_insert_iterator.h [4:5]
- include/__iterator/incrementable_traits.h [4:5]
- include/__iterator/insert_iterator.h [4:5]
- include/__iterator/istream_iterator.h [4:5]
- include/__iterator/istreambuf_iterator.h [4:5]
- include/__iterator/iter_move.h [4:5]
- include/__iterator/iter_swap.h [4:5]
- include/__iterator/iterator.h [4:5]
- include/__iterator/iterator_traits.h [4:5]
- include/__iterator/move_iterator.h [4:5]
- include/__iterator/next.h [4:5]
- include/__iterator/ostream_iterator.h [4:5]
- include/__iterator/ostreambuf_iterator.h [4:5]
- include/__iterator/prev.h [4:5]
- include/__iterator/projected.h [4:5]
- include/__iterator/readable_traits.h [4:5]
- include/__iterator/reverse_access.h [4:5]
- include/__iterator/reverse_iterator.h [4:5]
- include/__iterator/size.h [4:5]
- include/__iterator/unreachable_sentinel.h [4:5]
- include/__iterator/wrap_iter.h [4:5]
- include/__locale [4:5]
- include/__mbstate_t.h [4:5]
- include/__memory/addressof.h [4:5]
- include/__memory/allocation_guard.h [4:5]
- include/__memory/allocator.h [4:5]
- include/__memory/allocator_arg_t.h [4:5]
- include/__memory/allocator_traits.h [4:5]
- include/__memory/auto_ptr.h [4:5]
- include/__memory/compressed_pair.h [4:5]
- include/__memory/construct_at.h [4:5]
- include/__memory/pointer_safety.h [4:5]
- include/__memory/pointer_traits.h [4:5]
- include/__memory/raw_storage_iterator.h [4:5]
- include/__memory/shared_ptr.h [4:5]
- include/__memory/temporary_buffer.h [4:5]
- include/__memory/uninitialized_algorithms.h [4:5]
- include/__memory/unique_ptr.h [4:5]
- include/__memory/uses_allocator.h [4:5]
- include/__mutex_base [4:5]
- include/__node_handle [4:5]
- include/__nullptr [4:5]
- include/__random/uniform_int_distribution.h [3:4]
- include/__ranges/access.h [4:5]
- include/__ranges/all.h [4:5]
- include/__ranges/common_view.h [4:5]
- include/__ranges/concepts.h [4:5]
- include/__ranges/copyable_box.h [4:5]
- include/__ranges/counted.h [4:5]
- include/__ranges/dangling.h [4:5]
- include/__ranges/data.h [4:5]
- include/__ranges/drop_view.h [4:5]
- include/__ranges/empty.h [4:5]
- include/__ranges/empty_view.h [4:5]
- include/__ranges/enable_borrowed_range.h [4:5]
- include/__ranges/enable_view.h [4:5]
- include/__ranges/iota_view.h [4:5]
- include/__ranges/join_view.h [4:5]
- include/__ranges/non_propagating_cache.h [4:5]
- include/__ranges/range_adaptor.h [4:5]
- include/__ranges/ref_view.h [4:5]
- include/__ranges/reverse_view.h [4:5]
- include/__ranges/single_view.h [4:5]
- include/__ranges/size.h [4:5]
- include/__ranges/subrange.h [4:5]
- include/__ranges/take_view.h [4:5]
- include/__ranges/transform_view.h [4:5]
- include/__ranges/view_interface.h [4:5]
- include/__std_stream [4:5]
- include/__string [4:5]
- include/__support/android/locale_bionic.h [4:5]
- include/__support/fuchsia/xlocale.h [4:5]
- include/__support/ibm/gettod_zos.h [4:5]
- include/__support/ibm/limits.h [4:5]
- include/__support/ibm/locale_mgmt_zos.h [4:5]
- include/__support/ibm/nanosleep.h [4:5]
- include/__support/ibm/support.h [4:5]
- include/__support/ibm/xlocale.h [4:5]
- include/__support/musl/xlocale.h [4:5]
- include/__support/newlib/xlocale.h [3:4]
- include/__support/openbsd/xlocale.h [4:5]
- include/__support/solaris/floatingpoint.h [3:4]
- include/__support/solaris/wchar.h [3:4]
- include/__support/solaris/xlocale.h [3:4]
- include/__support/win32/limits_msvc_win32.h [4:5]
- include/__support/win32/locale_win32.h [4:5]
- include/__support/xlocale/__nop_locale_mgmt.h [4:5]
- include/__support/xlocale/__posix_l_fallback.h [4:5]
- include/__support/xlocale/__strtonum_fallback.h [4:5]
- include/__threading_support [4:5]
- include/__tree [4:5]
- include/__tuple [4:5]
- include/__undef_macros [4:5]
- include/__utility/as_const.h [3:4]
- include/__utility/cmp.h [3:4]
- include/__utility/decay_copy.h [4:5]
- include/__utility/declval.h [3:4]
- include/__utility/exchange.h [3:4]
- include/__utility/forward.h [4:5]
- include/__utility/in_place.h [3:4]
- include/__utility/integer_sequence.h [3:4]
- include/__utility/move.h [4:5]
- include/__utility/pair.h [3:4]
- include/__utility/piecewise_construct.h [3:4]
- include/__utility/rel_ops.h [3:4]
- include/__utility/swap.h [3:4]
- include/__utility/to_underlying.h [4:5]
- include/__variant/monostate.h [4:5]
- include/algorithm [4:5]
- include/any [4:5]
- include/array [4:5]
- include/atomic [4:5]
- include/barrier [4:5]
- include/bit [4:5]
- include/bitset [4:5]
- include/cassert [4:5]
- include/ccomplex [4:5]
- include/cctype [4:5]
- include/cerrno [4:5]
- include/cfenv [4:5]
- include/cfloat [4:5]
- include/charconv [4:5]
- include/chrono [4:5]
- include/cinttypes [4:5]
- include/ciso646 [4:5]
- include/climits [4:5]
- include/clocale [4:5]
- include/cmath [4:5]
- include/codecvt [4:5]
- include/compare [4:5]
- include/complex [4:5]
- include/complex.h [4:5]
- include/concepts [4:5]
- include/condition_variable [4:5]
- include/coroutine [4:5]
- include/csetjmp [4:5]
- include/csignal [4:5]
- include/cstdarg [4:5]
- include/cstdbool [4:5]
- include/cstddef [4:5]
- include/cstdint [4:5]
- include/cstdio [4:5]
- include/cstdlib [4:5]
- include/cstring [4:5]
- include/ctgmath [4:5]
- include/ctime [4:5]
- include/ctype.h [4:5]
- include/cwchar [4:5]
- include/cwctype [4:5]
- include/deque [4:5]
- include/errno.h [4:5]
- include/exception [4:5]
- include/execution [4:5]
- include/experimental/__memory [4:5]
- include/experimental/algorithm [4:5]
- include/experimental/coroutine [4:5]
- include/experimental/deque [4:5]
- include/experimental/filesystem [4:5]
- include/experimental/forward_list [4:5]
- include/experimental/functional [4:5]
- include/experimental/iterator [4:5]
- include/experimental/list [4:5]
- include/experimental/map [4:5]
- include/experimental/memory_resource [4:5]
- include/experimental/propagate_const [4:5]
- include/experimental/regex [4:5]
- include/experimental/set [4:5]
- include/experimental/simd [4:5]
- include/experimental/string [4:5]
- include/experimental/type_traits [4:5]
- include/experimental/unordered_map [4:5]
- include/experimental/unordered_set [4:5]
- include/experimental/utility [4:5]
- include/experimental/vector [4:5]
- include/ext/__hash [4:5]
- include/ext/hash_map [4:5]
- include/ext/hash_set [4:5]
- include/filesystem [4:5]
- include/float.h [4:5]
- include/format [4:5]
- include/forward_list [4:5]
- include/fstream [4:5]
- include/functional [4:5]
- include/future [4:5]
- include/initializer_list [4:5]
- include/inttypes.h [4:5]
- include/iomanip [4:5]
- include/ios [4:5]
- include/iosfwd [4:5]
- include/iostream [4:5]
- include/istream [4:5]
- include/iterator [4:5]
- include/latch [4:5]
- include/limits [4:5]
- include/limits.h [4:5]
- include/list [4:5]
- include/locale [4:5]
- include/locale.h [4:5]
- include/map [4:5]
- include/math.h [4:5]
- include/memory [4:5]
- include/mutex [4:5]
- include/new [4:5]
- include/numbers [4:5]
- include/numeric [4:5]
- include/optional [4:5]
- include/ostream [4:5]
- include/queue [4:5]
- include/random [4:5]
- include/ranges [4:5]
- include/ratio [4:5]
- include/regex [4:5]
- include/scoped_allocator [4:5]
- include/semaphore [4:5]
- include/set [4:5]
- include/setjmp.h [4:5]
- include/shared_mutex [4:5]
- include/span [4:5]
- include/sstream [4:5]
- include/stack [4:5]
- include/stdbool.h [4:5]
- include/stddef.h [4:5]
- include/stdexcept [4:5]
- include/stdint.h [4:5]
- include/stdio.h [4:5]
- include/stdlib.h [4:5]
- include/streambuf [4:5]
- include/string [4:5]
- include/string.h [4:5]
- include/string_view [4:5]
- include/strstream [4:5]
- include/system_error [4:5]
- include/tgmath.h [4:5]
- include/thread [4:5]
- include/tuple [4:5]
- include/type_traits [4:5]
- include/typeindex [4:5]
- include/typeinfo [4:5]
- include/unordered_map [4:5]
- include/unordered_set [4:5]
- include/utility [4:5]
- include/valarray [4:5]
- include/variant [4:5]
- include/vector [4:5]
- include/version [4:5]
- include/wchar.h [4:5]
- include/wctype.h [4:5]
- src/algorithm.cpp [3:4]
- src/any.cpp [3:4]
- src/atomic.cpp [3:4]
- src/barrier.cpp [3:4]
- src/bind.cpp [3:4]
- src/charconv.cpp [3:4]
- src/chrono.cpp [3:4]
- src/condition_variable.cpp [3:4]
- src/condition_variable_destructor.cpp [3:4]
- src/debug.cpp [3:4]
- src/exception.cpp [3:4]
- src/experimental/memory_resource.cpp [3:4]
- src/filesystem/directory_iterator.cpp [3:4]
- src/filesystem/filesystem_common.h [3:4]
- src/filesystem/operations.cpp [3:4]
- src/filesystem/posix_compat.h [3:4]
- src/format.cpp [3:4]
- src/functional.cpp [3:4]
- src/future.cpp [3:4]
- src/hash.cpp [3:4]
- src/include/apple_availability.h [3:4]
- src/include/atomic_support.h [3:4]
- src/include/config_elast.h [3:4]
- src/include/refstring.h [3:4]
- src/include/sso_allocator.h [4:5]
- src/ios.cpp [3:4]
- src/ios.instantiations.cpp [3:4]
- src/iostream.cpp [3:4]
- src/legacy_pointer_safety.cpp [3:4]
- src/locale.cpp [3:4]
- src/memory.cpp [3:4]
- src/mutex.cpp [3:4]
- src/mutex_destructor.cpp [3:4]
- src/new.cpp [3:4]
- src/optional.cpp [3:4]
- src/random.cpp [3:4]
- src/random_shuffle.cpp [3:4]
- src/regex.cpp [3:4]
- src/shared_mutex.cpp [3:4]
- src/stdexcept.cpp [3:4]
- src/string.cpp [3:4]
- src/strstream.cpp [3:4]
- src/support/ibm/mbsnrtowcs.cpp [3:4]
- src/support/ibm/wcsnrtombs.cpp [3:4]
- src/support/ibm/xlocale_zos.cpp [3:4]
- src/support/runtime/exception_fallback.ipp [4:5]
- src/support/runtime/exception_glibcxx.ipp [4:5]
- src/support/runtime/exception_libcxxabi.ipp [4:5]
- src/support/runtime/exception_libcxxrt.ipp [4:5]
- src/support/runtime/exception_msvc.ipp [4:5]
- src/support/runtime/exception_pointer_cxxabi.ipp [4:5]
- src/support/runtime/exception_pointer_glibcxx.ipp [4:5]
- src/support/runtime/exception_pointer_msvc.ipp [4:5]
- src/support/runtime/exception_pointer_unimplemented.ipp [4:5]
- src/support/runtime/new_handler_fallback.ipp [4:5]
- src/support/runtime/stdexcept_default.ipp [3:4]
- src/support/runtime/stdexcept_vcruntime.ipp [3:4]
- src/support/solaris/xlocale.cpp [3:4]
- src/support/win32/locale_win32.cpp [3:4]
- src/support/win32/support.cpp [3:4]
- src/support/win32/thread_win32.cpp [3:4]
- src/system_error.cpp [3:4]
- src/thread.cpp [3:4]
- src/typeinfo.cpp [3:4]
- src/utility.cpp [3:4]
- src/valarray.cpp [3:4]
- src/variant.cpp [3:4]
- src/vector.cpp [3:4]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/__algorithm/adjacent_find.h [4:5]
- include/__algorithm/all_of.h [4:5]
- include/__algorithm/any_of.h [4:5]
- include/__algorithm/binary_search.h [3:4]
- include/__algorithm/clamp.h [3:4]
- include/__algorithm/comp.h [3:4]
- include/__algorithm/comp_ref_type.h [3:4]
- include/__algorithm/copy.h [3:4]
- include/__algorithm/copy_backward.h [3:4]
- include/__algorithm/copy_if.h [3:4]
- include/__algorithm/copy_n.h [3:4]
- include/__algorithm/count.h [4:5]
- include/__algorithm/count_if.h [4:5]
- include/__algorithm/equal.h [4:5]
- include/__algorithm/equal_range.h [3:4]
- include/__algorithm/fill.h [3:4]
- include/__algorithm/fill_n.h [3:4]
- include/__algorithm/find.h [4:5]
- include/__algorithm/find_end.h [4:5]
- include/__algorithm/find_first_of.h [4:5]
- include/__algorithm/find_if.h [4:5]
- include/__algorithm/find_if_not.h [4:5]
- include/__algorithm/for_each.h [4:5]
- include/__algorithm/for_each_n.h [4:5]
- include/__algorithm/generate.h [3:4]
- include/__algorithm/generate_n.h [3:4]
- include/__algorithm/half_positive.h [3:4]
- include/__algorithm/includes.h [3:4]
- include/__algorithm/inplace_merge.h [3:4]
- include/__algorithm/is_heap.h [3:4]
- include/__algorithm/is_heap_until.h [3:4]
- include/__algorithm/is_partitioned.h [3:4]
- include/__algorithm/is_permutation.h [4:5]
- include/__algorithm/is_sorted.h [3:4]
- include/__algorithm/is_sorted_until.h [3:4]
- include/__algorithm/iter_swap.h [3:4]
- include/__algorithm/lexicographical_compare.h [3:4]
- include/__algorithm/lower_bound.h [3:4]
- include/__algorithm/make_heap.h [3:4]
- include/__algorithm/max.h [3:4]
- include/__algorithm/max_element.h [3:4]
- include/__algorithm/merge.h [3:4]
- include/__algorithm/min.h [3:4]
- include/__algorithm/min_element.h [3:4]
- include/__algorithm/minmax.h [3:4]
- include/__algorithm/minmax_element.h [3:4]
- include/__algorithm/mismatch.h [4:5]
- include/__algorithm/move.h [3:4]
- include/__algorithm/move_backward.h [3:4]
- include/__algorithm/next_permutation.h [3:4]
- include/__algorithm/none_of.h [4:5]
- include/__algorithm/nth_element.h [3:4]
- include/__algorithm/partial_sort.h [3:4]
- include/__algorithm/partial_sort_copy.h [3:4]
- include/__algorithm/partition.h [3:4]
- include/__algorithm/partition_copy.h [3:4]
- include/__algorithm/partition_point.h [3:4]
- include/__algorithm/pop_heap.h [3:4]
- include/__algorithm/prev_permutation.h [3:4]
- include/__algorithm/push_heap.h [3:4]
- include/__algorithm/remove.h [3:4]
- include/__algorithm/remove_copy.h [3:4]
- include/__algorithm/remove_copy_if.h [3:4]
- include/__algorithm/remove_if.h [3:4]
- include/__algorithm/replace.h [3:4]
- include/__algorithm/replace_copy.h [3:4]
- include/__algorithm/replace_copy_if.h [3:4]
- include/__algorithm/replace_if.h [3:4]
- include/__algorithm/reverse.h [3:4]
- include/__algorithm/reverse_copy.h [3:4]
- include/__algorithm/rotate.h [3:4]
- include/__algorithm/rotate_copy.h [3:4]
- include/__algorithm/sample.h [3:4]
- include/__algorithm/search.h [4:5]
- include/__algorithm/search_n.h [4:5]
- include/__algorithm/set_difference.h [3:4]
- include/__algorithm/set_intersection.h [3:4]
- include/__algorithm/set_symmetric_difference.h [3:4]
- include/__algorithm/set_union.h [3:4]
- include/__algorithm/shift_left.h [3:4]
- include/__algorithm/shift_right.h [3:4]
- include/__algorithm/shuffle.h [3:4]
- include/__algorithm/sift_down.h [3:4]
- include/__algorithm/sort.h [3:4]
- include/__algorithm/sort_heap.h [3:4]
- include/__algorithm/stable_partition.h [3:4]
- include/__algorithm/stable_sort.h [3:4]
- include/__algorithm/swap_ranges.h [3:4]
- include/__algorithm/transform.h [3:4]
- include/__algorithm/unique.h [3:4]
- include/__algorithm/unique_copy.h [3:4]
- include/__algorithm/unwrap_iter.h [3:4]
- include/__algorithm/upper_bound.h [3:4]
- include/__availability [4:5]
- include/__bit/bit_cast.h [4:5]
- include/__bit_reference [4:5]
- include/__bits [4:5]
- include/__bsd_locale_defaults.h [4:5]
- include/__bsd_locale_fallbacks.h [4:5]
- include/__charconv/chars_format.h [4:5]
- include/__charconv/from_chars_result.h [4:5]
- include/__charconv/to_chars_result.h [4:5]
- include/__compare/common_comparison_category.h [3:4]
- include/__compare/compare_three_way.h [4:5]
- include/__compare/compare_three_way_result.h [3:4]
- include/__compare/is_eq.h [3:4]
- include/__compare/ordering.h [3:4]
- include/__compare/synth_three_way.h [3:4]
- include/__compare/three_way_comparable.h [3:4]
- include/__concepts/arithmetic.h [3:4]
- include/__concepts/assignable.h [3:4]
- include/__concepts/boolean_testable.h [3:4]
- include/__concepts/class_or_enum.h [3:4]
- include/__concepts/common_reference_with.h [3:4]
- include/__concepts/common_with.h [3:4]
- include/__concepts/constructible.h [3:4]
- include/__concepts/convertible_to.h [3:4]
- include/__concepts/copyable.h [3:4]
- include/__concepts/derived_from.h [3:4]
- include/__concepts/destructible.h [3:4]
- include/__concepts/different_from.h [3:4]
- include/__concepts/equality_comparable.h [3:4]
- include/__concepts/invocable.h [3:4]
- include/__concepts/movable.h [3:4]
- include/__concepts/predicate.h [3:4]
- include/__concepts/regular.h [3:4]
- include/__concepts/relation.h [3:4]
- include/__concepts/same_as.h [3:4]
- include/__concepts/semiregular.h [3:4]
- include/__concepts/swappable.h [3:4]
- include/__concepts/totally_ordered.h [3:4]
- include/__config [4:5]
- include/__config_site.in [3:4]
- include/__coroutine/coroutine_handle.h [3:4]
- include/__coroutine/coroutine_traits.h [3:4]
- include/__coroutine/noop_coroutine_handle.h [3:4]
- include/__coroutine/trivial_awaitables.h [3:4]
- include/__debug [4:5]
- include/__errc [4:5]
- include/__format/format_arg.h [4:5]
- include/__format/format_args.h [4:5]
- include/__format/format_context.h [4:5]
- include/__format/format_error.h [4:5]
- include/__format/format_fwd.h [4:5]
- include/__format/format_parse_context.h [4:5]
- include/__format/format_string.h [4:5]
- include/__format/format_to_n_result.h [4:5]
- include/__format/formatter.h [4:5]
- include/__format/formatter_bool.h [4:5]
- include/__format/formatter_char.h [4:5]
- include/__format/formatter_integer.h [4:5]
- include/__format/formatter_integral.h [4:5]
- include/__format/formatter_string.h [4:5]
- include/__format/parser_std_format_spec.h [4:5]
- include/__function_like.h [4:5]
- include/__functional/binary_function.h [4:5]
- include/__functional/binary_negate.h [4:5]
- include/__functional/bind.h [4:5]
- include/__functional/bind_back.h [4:5]
- include/__functional/bind_front.h [4:5]
- include/__functional/binder1st.h [4:5]
- include/__functional/binder2nd.h [4:5]
- include/__functional/compose.h [4:5]
- include/__functional/default_searcher.h [4:5]
- include/__functional/function.h [4:5]
- include/__functional/hash.h [3:4]
- include/__functional/identity.h [4:5]
- include/__functional/invoke.h [4:5]
- include/__functional/is_transparent.h [4:5]
- include/__functional/mem_fn.h [4:5]
- include/__functional/mem_fun_ref.h [4:5]
- include/__functional/not_fn.h [4:5]
- include/__functional/operations.h [4:5]
- include/__functional/perfect_forward.h [4:5]
- include/__functional/pointer_to_binary_function.h [4:5]
- include/__functional/pointer_to_unary_function.h [4:5]
- include/__functional/ranges_operations.h [4:5]
- include/__functional/reference_wrapper.h [4:5]
- include/__functional/unary_function.h [3:4]
- include/__functional/unary_negate.h [4:5]
- include/__functional/unwrap_ref.h [3:4]
- include/__functional/weak_result_type.h [4:5]
- include/__functional_base [4:5]
- include/__hash_table [4:5]
- include/__iterator/access.h [4:5]
- include/__iterator/advance.h [4:5]
- include/__iterator/back_insert_iterator.h [4:5]
- include/__iterator/common_iterator.h [4:5]
- include/__iterator/concepts.h [4:5]
- include/__iterator/counted_iterator.h [4:5]
- include/__iterator/data.h [4:5]
- include/__iterator/default_sentinel.h [4:5]
- include/__iterator/distance.h [4:5]
- include/__iterator/empty.h [4:5]
- include/__iterator/erase_if_container.h [4:5]
- include/__iterator/front_insert_iterator.h [4:5]
- include/__iterator/incrementable_traits.h [4:5]
- include/__iterator/insert_iterator.h [4:5]
- include/__iterator/istream_iterator.h [4:5]
- include/__iterator/istreambuf_iterator.h [4:5]
- include/__iterator/iter_move.h [4:5]
- include/__iterator/iter_swap.h [4:5]
- include/__iterator/iterator.h [4:5]
- include/__iterator/iterator_traits.h [4:5]
- include/__iterator/move_iterator.h [4:5]
- include/__iterator/next.h [4:5]
- include/__iterator/ostream_iterator.h [4:5]
- include/__iterator/ostreambuf_iterator.h [4:5]
- include/__iterator/prev.h [4:5]
- include/__iterator/projected.h [4:5]
- include/__iterator/readable_traits.h [4:5]
- include/__iterator/reverse_access.h [4:5]
- include/__iterator/reverse_iterator.h [4:5]
- include/__iterator/size.h [4:5]
- include/__iterator/unreachable_sentinel.h [4:5]
- include/__iterator/wrap_iter.h [4:5]
- include/__locale [4:5]
- include/__mbstate_t.h [4:5]
- include/__memory/addressof.h [4:5]
- include/__memory/allocation_guard.h [4:5]
- include/__memory/allocator.h [4:5]
- include/__memory/allocator_arg_t.h [4:5]
- include/__memory/allocator_traits.h [4:5]
- include/__memory/auto_ptr.h [4:5]
- include/__memory/compressed_pair.h [4:5]
- include/__memory/construct_at.h [4:5]
- include/__memory/pointer_safety.h [4:5]
- include/__memory/pointer_traits.h [4:5]
- include/__memory/raw_storage_iterator.h [4:5]
- include/__memory/shared_ptr.h [4:5]
- include/__memory/temporary_buffer.h [4:5]
- include/__memory/uninitialized_algorithms.h [4:5]
- include/__memory/unique_ptr.h [4:5]
- include/__memory/uses_allocator.h [4:5]
- include/__mutex_base [4:5]
- include/__node_handle [4:5]
- include/__nullptr [4:5]
- include/__random/uniform_int_distribution.h [3:4]
- include/__ranges/access.h [4:5]
- include/__ranges/all.h [4:5]
- include/__ranges/common_view.h [4:5]
- include/__ranges/concepts.h [4:5]
- include/__ranges/copyable_box.h [4:5]
- include/__ranges/counted.h [4:5]
- include/__ranges/dangling.h [4:5]
- include/__ranges/data.h [4:5]
- include/__ranges/drop_view.h [4:5]
- include/__ranges/empty.h [4:5]
- include/__ranges/empty_view.h [4:5]
- include/__ranges/enable_borrowed_range.h [4:5]
- include/__ranges/enable_view.h [4:5]
- include/__ranges/iota_view.h [4:5]
- include/__ranges/join_view.h [4:5]
- include/__ranges/non_propagating_cache.h [4:5]
- include/__ranges/range_adaptor.h [4:5]
- include/__ranges/ref_view.h [4:5]
- include/__ranges/reverse_view.h [4:5]
- include/__ranges/single_view.h [4:5]
- include/__ranges/size.h [4:5]
- include/__ranges/subrange.h [4:5]
- include/__ranges/take_view.h [4:5]
- include/__ranges/transform_view.h [4:5]
- include/__ranges/view_interface.h [4:5]
- include/__std_stream [4:5]
- include/__string [4:5]
- include/__support/android/locale_bionic.h [4:5]
- include/__support/fuchsia/xlocale.h [4:5]
- include/__support/ibm/gettod_zos.h [4:5]
- include/__support/ibm/limits.h [4:5]
- include/__support/ibm/locale_mgmt_zos.h [4:5]
- include/__support/ibm/nanosleep.h [4:5]
- include/__support/ibm/support.h [4:5]
- include/__support/ibm/xlocale.h [4:5]
- include/__support/musl/xlocale.h [4:5]
- include/__support/newlib/xlocale.h [3:4]
- include/__support/openbsd/xlocale.h [4:5]
- include/__support/solaris/floatingpoint.h [3:4]
- include/__support/solaris/wchar.h [3:4]
- include/__support/solaris/xlocale.h [3:4]
- include/__support/win32/limits_msvc_win32.h [4:5]
- include/__support/win32/locale_win32.h [4:5]
- include/__support/xlocale/__nop_locale_mgmt.h [4:5]
- include/__support/xlocale/__posix_l_fallback.h [4:5]
- include/__support/xlocale/__strtonum_fallback.h [4:5]
- include/__threading_support [4:5]
- include/__tree [4:5]
- include/__tuple [4:5]
- include/__undef_macros [4:5]
- include/__utility/as_const.h [3:4]
- include/__utility/cmp.h [3:4]
- include/__utility/decay_copy.h [4:5]
- include/__utility/declval.h [3:4]
- include/__utility/exchange.h [3:4]
- include/__utility/forward.h [4:5]
- include/__utility/in_place.h [3:4]
- include/__utility/integer_sequence.h [3:4]
- include/__utility/move.h [4:5]
- include/__utility/pair.h [3:4]
- include/__utility/piecewise_construct.h [3:4]
- include/__utility/rel_ops.h [3:4]
- include/__utility/swap.h [3:4]
- include/__utility/to_underlying.h [4:5]
- include/__variant/monostate.h [4:5]
- include/algorithm [4:5]
- include/any [4:5]
- include/array [4:5]
- include/atomic [4:5]
- include/barrier [4:5]
- include/bit [4:5]
- include/bitset [4:5]
- include/cassert [4:5]
- include/ccomplex [4:5]
- include/cctype [4:5]
- include/cerrno [4:5]
- include/cfenv [4:5]
- include/cfloat [4:5]
- include/charconv [4:5]
- include/chrono [4:5]
- include/cinttypes [4:5]
- include/ciso646 [4:5]
- include/climits [4:5]
- include/clocale [4:5]
- include/cmath [4:5]
- include/codecvt [4:5]
- include/compare [4:5]
- include/complex [4:5]
- include/complex.h [4:5]
- include/concepts [4:5]
- include/condition_variable [4:5]
- include/coroutine [4:5]
- include/csetjmp [4:5]
- include/csignal [4:5]
- include/cstdarg [4:5]
- include/cstdbool [4:5]
- include/cstddef [4:5]
- include/cstdint [4:5]
- include/cstdio [4:5]
- include/cstdlib [4:5]
- include/cstring [4:5]
- include/ctgmath [4:5]
- include/ctime [4:5]
- include/ctype.h [4:5]
- include/cwchar [4:5]
- include/cwctype [4:5]
- include/deque [4:5]
- include/errno.h [4:5]
- include/exception [4:5]
- include/execution [4:5]
- include/experimental/__memory [4:5]
- include/experimental/algorithm [4:5]
- include/experimental/coroutine [4:5]
- include/experimental/deque [4:5]
- include/experimental/filesystem [4:5]
- include/experimental/forward_list [4:5]
- include/experimental/functional [4:5]
- include/experimental/iterator [4:5]
- include/experimental/list [4:5]
- include/experimental/map [4:5]
- include/experimental/memory_resource [4:5]
- include/experimental/propagate_const [4:5]
- include/experimental/regex [4:5]
- include/experimental/set [4:5]
- include/experimental/simd [4:5]
- include/experimental/string [4:5]
- include/experimental/type_traits [4:5]
- include/experimental/unordered_map [4:5]
- include/experimental/unordered_set [4:5]
- include/experimental/utility [4:5]
- include/experimental/vector [4:5]
- include/ext/__hash [4:5]
- include/ext/hash_map [4:5]
- include/ext/hash_set [4:5]
- include/filesystem [4:5]
- include/float.h [4:5]
- include/format [4:5]
- include/forward_list [4:5]
- include/fstream [4:5]
- include/functional [4:5]
- include/future [4:5]
- include/initializer_list [4:5]
- include/inttypes.h [4:5]
- include/iomanip [4:5]
- include/ios [4:5]
- include/iosfwd [4:5]
- include/iostream [4:5]
- include/istream [4:5]
- include/iterator [4:5]
- include/latch [4:5]
- include/limits [4:5]
- include/limits.h [4:5]
- include/list [4:5]
- include/locale [4:5]
- include/locale.h [4:5]
- include/map [4:5]
- include/math.h [4:5]
- include/memory [4:5]
- include/mutex [4:5]
- include/new [4:5]
- include/numbers [4:5]
- include/numeric [4:5]
- include/optional [4:5]
- include/ostream [4:5]
- include/queue [4:5]
- include/random [4:5]
- include/ranges [4:5]
- include/ratio [4:5]
- include/regex [4:5]
- include/scoped_allocator [4:5]
- include/semaphore [4:5]
- include/set [4:5]
- include/setjmp.h [4:5]
- include/shared_mutex [4:5]
- include/span [4:5]
- include/sstream [4:5]
- include/stack [4:5]
- include/stdbool.h [4:5]
- include/stddef.h [4:5]
- include/stdexcept [4:5]
- include/stdint.h [4:5]
- include/stdio.h [4:5]
- include/stdlib.h [4:5]
- include/streambuf [4:5]
- include/string [4:5]
- include/string.h [4:5]
- include/string_view [4:5]
- include/strstream [4:5]
- include/system_error [4:5]
- include/tgmath.h [4:5]
- include/thread [4:5]
- include/tuple [4:5]
- include/type_traits [4:5]
- include/typeindex [4:5]
- include/typeinfo [4:5]
- include/unordered_map [4:5]
- include/unordered_set [4:5]
- include/utility [4:5]
- include/valarray [4:5]
- include/variant [4:5]
- include/vector [4:5]
- include/version [4:5]
- include/wchar.h [4:5]
- include/wctype.h [4:5]
- src/algorithm.cpp [3:4]
- src/any.cpp [3:4]
- src/atomic.cpp [3:4]
- src/barrier.cpp [3:4]
- src/bind.cpp [3:4]
- src/charconv.cpp [3:4]
- src/chrono.cpp [3:4]
- src/condition_variable.cpp [3:4]
- src/condition_variable_destructor.cpp [3:4]
- src/debug.cpp [3:4]
- src/exception.cpp [3:4]
- src/experimental/memory_resource.cpp [3:4]
- src/filesystem/directory_iterator.cpp [3:4]
- src/filesystem/filesystem_common.h [3:4]
- src/filesystem/operations.cpp [3:4]
- src/filesystem/posix_compat.h [3:4]
- src/format.cpp [3:4]
- src/functional.cpp [3:4]
- src/future.cpp [3:4]
- src/hash.cpp [3:4]
- src/include/apple_availability.h [3:4]
- src/include/atomic_support.h [3:4]
- src/include/config_elast.h [3:4]
- src/include/refstring.h [3:4]
- src/include/sso_allocator.h [4:5]
- src/ios.cpp [3:4]
- src/ios.instantiations.cpp [3:4]
- src/iostream.cpp [3:4]
- src/legacy_pointer_safety.cpp [3:4]
- src/locale.cpp [3:4]
- src/memory.cpp [3:4]
- src/mutex.cpp [3:4]
- src/mutex_destructor.cpp [3:4]
- src/new.cpp [3:4]
- src/optional.cpp [3:4]
- src/random.cpp [3:4]
- src/random_shuffle.cpp [3:4]
- src/regex.cpp [3:4]
- src/shared_mutex.cpp [3:4]
- src/stdexcept.cpp [3:4]
- src/string.cpp [3:4]
- src/strstream.cpp [3:4]
- src/support/ibm/mbsnrtowcs.cpp [3:4]
- src/support/ibm/wcsnrtombs.cpp [3:4]
- src/support/ibm/xlocale_zos.cpp [3:4]
- src/support/runtime/exception_fallback.ipp [4:5]
- src/support/runtime/exception_glibcxx.ipp [4:5]
- src/support/runtime/exception_libcxxabi.ipp [4:5]
- src/support/runtime/exception_libcxxrt.ipp [4:5]
- src/support/runtime/exception_msvc.ipp [4:5]
- src/support/runtime/exception_pointer_cxxabi.ipp [4:5]
- src/support/runtime/exception_pointer_glibcxx.ipp [4:5]
- src/support/runtime/exception_pointer_msvc.ipp [4:5]
- src/support/runtime/exception_pointer_unimplemented.ipp [4:5]
- src/support/runtime/new_handler_fallback.ipp [4:5]
- src/support/runtime/stdexcept_default.ipp [3:4]
- src/support/runtime/stdexcept_vcruntime.ipp [3:4]
- src/support/solaris/xlocale.cpp [3:4]
- src/support/win32/locale_win32.cpp [3:4]
- src/support/win32/support.cpp [3:4]
- src/support/win32/thread_win32.cpp [3:4]
- src/system_error.cpp [3:4]
- src/thread.cpp [3:4]
- src/typeinfo.cpp [3:4]
- src/utility.cpp [3:4]
- src/valarray.cpp [3:4]
- src/variant.cpp [3:4]
- src/vector.cpp [3:4]
-
-KEEP Apache-2.0 WITH LLVM-exception 8494a9caed330d9a4f40e19cce7dc770
-BELONGS ya.make
-FILE_IGNORE include/exception found in files: LICENSE.TXT at line 210
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TEXT
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [208:222]
-
-KEEP Apache-2.0 WITH LLVM-exception 86617d55e1d949711c543404d91f4cea
-BELONGS ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/experimental/__config [6:6]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/experimental/__config [6:6]
-
-KEEP Apache-2.0 9ac77f65a898755c7eed97099caded94
-BELONGS ya.make
-FILE_IGNORE import found in files: LICENSE.TXT at line 81
-FILE_IGNORE include/any found in files: LICENSE.TXT at line 101, LICENSE.TXT at line 104, LICENSE.TXT at line 107, LICENSE.TXT at line 111, LICENSE.TXT at line 114, LICENSE.TXT at line 130, LICENSE.TXT at line 135, LICENSE.TXT at line 137, LICENSE.TXT at line 139, LICENSE.TXT at line 151, LICENSE.TXT at line 154, LICENSE.TXT at line 160, LICENSE.TXT at line 161, LICENSE.TXT at line 162, LICENSE.TXT at line 165, LICENSE.TXT at line 175, LICENSE.TXT at line 176, LICENSE.TXT at line 178, LICENSE.TXT at line 34, LICENSE.TXT at line 44, LICENSE.TXT at line 52, LICENSE.TXT at line 53, LICENSE.TXT at line 58, LICENSE.TXT at line 66, LICENSE.TXT at line 86, LICENSE.TXT at line 89, LICENSE.TXT at line 94, LICENSE.TXT at line 98
-FILE_IGNORE include/format found in files: LICENSE.TXT at line 188
-FILE_IGNORE include/version found in files: LICENSE.TXT at line 53
- # import, any, format and version - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TEXT
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [5:205]
-
-KEEP NCSA b160d8bd561da097b0edd40b062e1c84
-BELONGS ya.make
-FILE_IGNORE include/any found in files: LICENSE.TXT at line 264
-FILE_IGNORE include/experimental/list found in files: LICENSE.TXT at line 272, LICENSE.TXT at line 275
-FILE_IGNORE include/list found in files: LICENSE.TXT at line 272, LICENSE.TXT at line 275
- # any and list - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : TEXT
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [264:289]
-
-KEEP BSD-2-Clause AND MIT b1ce5ac90fd7360272c132242b0d10e9
-BELONGS ya.make
- License text:
- 2-clause BSD license instead of the MIT/UUIC license that the rest of libc++ is
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : REFERENCE
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- src/support/solaris/README [3:3]
- Scancode info:
- Original SPDX id: MIT
- Score : 75.00
- Match type : REFERENCE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- src/support/solaris/README [3:3]
-
-KEEP Apache-2.0 WITH LLVM-exception b4f32daeb289687c0be6afeacb7df231
-BELONGS ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/experimental/__config [4:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/experimental/__config [4:5]
-
-KEEP Apache-2.0 WITH LLVM-exception b7566a1930e050e1090162bf1d543650
-BELONGS ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/__algorithm/adjacent_find.h [6:6]
- include/__algorithm/all_of.h [6:6]
- include/__algorithm/any_of.h [6:6]
- include/__algorithm/binary_search.h [5:5]
- include/__algorithm/clamp.h [5:5]
- include/__algorithm/comp.h [5:5]
- include/__algorithm/comp_ref_type.h [5:5]
- include/__algorithm/copy.h [5:5]
- include/__algorithm/copy_backward.h [5:5]
- include/__algorithm/copy_if.h [5:5]
- include/__algorithm/copy_n.h [5:5]
- include/__algorithm/count.h [6:6]
- include/__algorithm/count_if.h [6:6]
- include/__algorithm/equal.h [6:6]
- include/__algorithm/equal_range.h [5:5]
- include/__algorithm/fill.h [5:5]
- include/__algorithm/fill_n.h [5:5]
- include/__algorithm/find.h [6:6]
- include/__algorithm/find_end.h [6:6]
- include/__algorithm/find_first_of.h [6:6]
- include/__algorithm/find_if.h [6:6]
- include/__algorithm/find_if_not.h [6:6]
- include/__algorithm/for_each.h [6:6]
- include/__algorithm/for_each_n.h [6:6]
- include/__algorithm/generate.h [5:5]
- include/__algorithm/generate_n.h [5:5]
- include/__algorithm/half_positive.h [5:5]
- include/__algorithm/includes.h [5:5]
- include/__algorithm/inplace_merge.h [5:5]
- include/__algorithm/is_heap.h [5:5]
- include/__algorithm/is_heap_until.h [5:5]
- include/__algorithm/is_partitioned.h [5:5]
- include/__algorithm/is_permutation.h [6:6]
- include/__algorithm/is_sorted.h [5:5]
- include/__algorithm/is_sorted_until.h [5:5]
- include/__algorithm/iter_swap.h [5:5]
- include/__algorithm/lexicographical_compare.h [5:5]
- include/__algorithm/lower_bound.h [5:5]
- include/__algorithm/make_heap.h [5:5]
- include/__algorithm/max.h [5:5]
- include/__algorithm/max_element.h [5:5]
- include/__algorithm/merge.h [5:5]
- include/__algorithm/min.h [5:5]
- include/__algorithm/min_element.h [5:5]
- include/__algorithm/minmax.h [5:5]
- include/__algorithm/minmax_element.h [5:5]
- include/__algorithm/mismatch.h [6:6]
- include/__algorithm/move.h [5:5]
- include/__algorithm/move_backward.h [5:5]
- include/__algorithm/next_permutation.h [5:5]
- include/__algorithm/none_of.h [6:6]
- include/__algorithm/nth_element.h [5:5]
- include/__algorithm/partial_sort.h [5:5]
- include/__algorithm/partial_sort_copy.h [5:5]
- include/__algorithm/partition.h [5:5]
- include/__algorithm/partition_copy.h [5:5]
- include/__algorithm/partition_point.h [5:5]
- include/__algorithm/pop_heap.h [5:5]
- include/__algorithm/prev_permutation.h [5:5]
- include/__algorithm/push_heap.h [5:5]
- include/__algorithm/remove.h [5:5]
- include/__algorithm/remove_copy.h [5:5]
- include/__algorithm/remove_copy_if.h [5:5]
- include/__algorithm/remove_if.h [5:5]
- include/__algorithm/replace.h [5:5]
- include/__algorithm/replace_copy.h [5:5]
- include/__algorithm/replace_copy_if.h [5:5]
- include/__algorithm/replace_if.h [5:5]
- include/__algorithm/reverse.h [5:5]
- include/__algorithm/reverse_copy.h [5:5]
- include/__algorithm/rotate.h [5:5]
- include/__algorithm/rotate_copy.h [5:5]
- include/__algorithm/sample.h [5:5]
- include/__algorithm/search.h [6:6]
- include/__algorithm/search_n.h [6:6]
- include/__algorithm/set_difference.h [5:5]
- include/__algorithm/set_intersection.h [5:5]
- include/__algorithm/set_symmetric_difference.h [5:5]
- include/__algorithm/set_union.h [5:5]
- include/__algorithm/shift_left.h [5:5]
- include/__algorithm/shift_right.h [5:5]
- include/__algorithm/shuffle.h [5:5]
- include/__algorithm/sift_down.h [5:5]
- include/__algorithm/sort.h [5:5]
- include/__algorithm/sort_heap.h [5:5]
- include/__algorithm/stable_partition.h [5:5]
- include/__algorithm/stable_sort.h [5:5]
- include/__algorithm/swap_ranges.h [5:5]
- include/__algorithm/transform.h [5:5]
- include/__algorithm/unique.h [5:5]
- include/__algorithm/unique_copy.h [5:5]
- include/__algorithm/unwrap_iter.h [5:5]
- include/__algorithm/upper_bound.h [5:5]
- include/__availability [6:6]
- include/__bit/bit_cast.h [6:6]
- include/__bit_reference [6:6]
- include/__bits [6:6]
- include/__bsd_locale_defaults.h [6:6]
- include/__bsd_locale_fallbacks.h [6:6]
- include/__charconv/chars_format.h [6:6]
- include/__charconv/from_chars_result.h [6:6]
- include/__charconv/to_chars_result.h [6:6]
- include/__compare/common_comparison_category.h [5:5]
- include/__compare/compare_three_way.h [6:6]
- include/__compare/compare_three_way_result.h [5:5]
- include/__compare/is_eq.h [5:5]
- include/__compare/ordering.h [5:5]
- include/__compare/synth_three_way.h [5:5]
- include/__compare/three_way_comparable.h [5:5]
- include/__concepts/arithmetic.h [5:5]
- include/__concepts/assignable.h [5:5]
- include/__concepts/boolean_testable.h [5:5]
- include/__concepts/class_or_enum.h [5:5]
- include/__concepts/common_reference_with.h [5:5]
- include/__concepts/common_with.h [5:5]
- include/__concepts/constructible.h [5:5]
- include/__concepts/convertible_to.h [5:5]
- include/__concepts/copyable.h [5:5]
- include/__concepts/derived_from.h [5:5]
- include/__concepts/destructible.h [5:5]
- include/__concepts/different_from.h [5:5]
- include/__concepts/equality_comparable.h [5:5]
- include/__concepts/invocable.h [5:5]
- include/__concepts/movable.h [5:5]
- include/__concepts/predicate.h [5:5]
- include/__concepts/regular.h [5:5]
- include/__concepts/relation.h [5:5]
- include/__concepts/same_as.h [5:5]
- include/__concepts/semiregular.h [5:5]
- include/__concepts/swappable.h [5:5]
- include/__concepts/totally_ordered.h [5:5]
- include/__config [6:6]
- include/__config_site.in [5:5]
- include/__coroutine/coroutine_handle.h [5:5]
- include/__coroutine/coroutine_traits.h [5:5]
- include/__coroutine/noop_coroutine_handle.h [5:5]
- include/__coroutine/trivial_awaitables.h [5:5]
- include/__debug [6:6]
- include/__errc [6:6]
- include/__format/format_arg.h [6:6]
- include/__format/format_args.h [6:6]
- include/__format/format_context.h [6:6]
- include/__format/format_error.h [6:6]
- include/__format/format_fwd.h [6:6]
- include/__format/format_parse_context.h [6:6]
- include/__format/format_string.h [6:6]
- include/__format/format_to_n_result.h [6:6]
- include/__format/formatter.h [6:6]
- include/__format/formatter_bool.h [6:6]
- include/__format/formatter_char.h [6:6]
- include/__format/formatter_integer.h [6:6]
- include/__format/formatter_integral.h [6:6]
- include/__format/formatter_string.h [6:6]
- include/__format/parser_std_format_spec.h [6:6]
- include/__function_like.h [6:6]
- include/__functional/binary_function.h [6:6]
- include/__functional/binary_negate.h [6:6]
- include/__functional/bind.h [6:6]
- include/__functional/bind_back.h [6:6]
- include/__functional/bind_front.h [6:6]
- include/__functional/binder1st.h [6:6]
- include/__functional/binder2nd.h [6:6]
- include/__functional/compose.h [6:6]
- include/__functional/default_searcher.h [6:6]
- include/__functional/function.h [6:6]
- include/__functional/hash.h [5:5]
- include/__functional/identity.h [6:6]
- include/__functional/invoke.h [6:6]
- include/__functional/is_transparent.h [6:6]
- include/__functional/mem_fn.h [6:6]
- include/__functional/mem_fun_ref.h [6:6]
- include/__functional/not_fn.h [6:6]
- include/__functional/operations.h [6:6]
- include/__functional/perfect_forward.h [6:6]
- include/__functional/pointer_to_binary_function.h [6:6]
- include/__functional/pointer_to_unary_function.h [6:6]
- include/__functional/ranges_operations.h [6:6]
- include/__functional/reference_wrapper.h [6:6]
- include/__functional/unary_function.h [5:5]
- include/__functional/unary_negate.h [6:6]
- include/__functional/unwrap_ref.h [5:5]
- include/__functional/weak_result_type.h [6:6]
- include/__functional_base [6:6]
- include/__hash_table [6:6]
- include/__iterator/access.h [6:6]
- include/__iterator/advance.h [6:6]
- include/__iterator/back_insert_iterator.h [6:6]
- include/__iterator/common_iterator.h [6:6]
- include/__iterator/concepts.h [6:6]
- include/__iterator/counted_iterator.h [6:6]
- include/__iterator/data.h [6:6]
- include/__iterator/default_sentinel.h [6:6]
- include/__iterator/distance.h [6:6]
- include/__iterator/empty.h [6:6]
- include/__iterator/erase_if_container.h [6:6]
- include/__iterator/front_insert_iterator.h [6:6]
- include/__iterator/incrementable_traits.h [6:6]
- include/__iterator/insert_iterator.h [6:6]
- include/__iterator/istream_iterator.h [6:6]
- include/__iterator/istreambuf_iterator.h [6:6]
- include/__iterator/iter_move.h [6:6]
- include/__iterator/iter_swap.h [6:6]
- include/__iterator/iterator.h [6:6]
- include/__iterator/iterator_traits.h [6:6]
- include/__iterator/move_iterator.h [6:6]
- include/__iterator/next.h [6:6]
- include/__iterator/ostream_iterator.h [6:6]
- include/__iterator/ostreambuf_iterator.h [6:6]
- include/__iterator/prev.h [6:6]
- include/__iterator/projected.h [6:6]
- include/__iterator/readable_traits.h [6:6]
- include/__iterator/reverse_access.h [6:6]
- include/__iterator/reverse_iterator.h [6:6]
- include/__iterator/size.h [6:6]
- include/__iterator/unreachable_sentinel.h [6:6]
- include/__iterator/wrap_iter.h [6:6]
- include/__locale [6:6]
- include/__mbstate_t.h [6:6]
- include/__memory/addressof.h [6:6]
- include/__memory/allocation_guard.h [6:6]
- include/__memory/allocator.h [6:6]
- include/__memory/allocator_arg_t.h [6:6]
- include/__memory/allocator_traits.h [6:6]
- include/__memory/auto_ptr.h [6:6]
- include/__memory/compressed_pair.h [6:6]
- include/__memory/construct_at.h [6:6]
- include/__memory/pointer_safety.h [6:6]
- include/__memory/pointer_traits.h [6:6]
- include/__memory/raw_storage_iterator.h [6:6]
- include/__memory/shared_ptr.h [6:6]
- include/__memory/temporary_buffer.h [6:6]
- include/__memory/uninitialized_algorithms.h [6:6]
- include/__memory/unique_ptr.h [6:6]
- include/__memory/uses_allocator.h [6:6]
- include/__mutex_base [6:6]
- include/__node_handle [6:6]
- include/__nullptr [6:6]
- include/__random/uniform_int_distribution.h [5:5]
- include/__ranges/access.h [6:6]
- include/__ranges/all.h [6:6]
- include/__ranges/common_view.h [6:6]
- include/__ranges/concepts.h [6:6]
- include/__ranges/copyable_box.h [6:6]
- include/__ranges/counted.h [6:6]
- include/__ranges/dangling.h [6:6]
- include/__ranges/data.h [6:6]
- include/__ranges/drop_view.h [6:6]
- include/__ranges/empty.h [6:6]
- include/__ranges/empty_view.h [6:6]
- include/__ranges/enable_borrowed_range.h [6:6]
- include/__ranges/enable_view.h [6:6]
- include/__ranges/iota_view.h [6:6]
- include/__ranges/join_view.h [6:6]
- include/__ranges/non_propagating_cache.h [6:6]
- include/__ranges/range_adaptor.h [6:6]
- include/__ranges/ref_view.h [6:6]
- include/__ranges/reverse_view.h [6:6]
- include/__ranges/single_view.h [6:6]
- include/__ranges/size.h [6:6]
- include/__ranges/subrange.h [6:6]
- include/__ranges/take_view.h [6:6]
- include/__ranges/transform_view.h [6:6]
- include/__ranges/view_interface.h [6:6]
- include/__std_stream [6:6]
- include/__string [6:6]
- include/__support/android/locale_bionic.h [6:6]
- include/__support/fuchsia/xlocale.h [6:6]
- include/__support/ibm/gettod_zos.h [6:6]
- include/__support/ibm/limits.h [6:6]
- include/__support/ibm/locale_mgmt_zos.h [6:6]
- include/__support/ibm/nanosleep.h [6:6]
- include/__support/ibm/support.h [6:6]
- include/__support/ibm/xlocale.h [6:6]
- include/__support/musl/xlocale.h [6:6]
- include/__support/newlib/xlocale.h [5:5]
- include/__support/openbsd/xlocale.h [6:6]
- include/__support/solaris/floatingpoint.h [5:5]
- include/__support/solaris/wchar.h [5:5]
- include/__support/solaris/xlocale.h [5:5]
- include/__support/win32/limits_msvc_win32.h [6:6]
- include/__support/win32/locale_win32.h [6:6]
- include/__support/xlocale/__nop_locale_mgmt.h [6:6]
- include/__support/xlocale/__posix_l_fallback.h [6:6]
- include/__support/xlocale/__strtonum_fallback.h [6:6]
- include/__threading_support [6:6]
- include/__tree [6:6]
- include/__tuple [6:6]
- include/__undef_macros [6:6]
- include/__utility/as_const.h [5:5]
- include/__utility/cmp.h [5:5]
- include/__utility/decay_copy.h [6:6]
- include/__utility/declval.h [5:5]
- include/__utility/exchange.h [5:5]
- include/__utility/forward.h [6:6]
- include/__utility/in_place.h [5:5]
- include/__utility/integer_sequence.h [5:5]
- include/__utility/move.h [6:6]
- include/__utility/pair.h [5:5]
- include/__utility/piecewise_construct.h [5:5]
- include/__utility/rel_ops.h [5:5]
- include/__utility/swap.h [5:5]
- include/__utility/to_underlying.h [6:6]
- include/__variant/monostate.h [6:6]
- include/algorithm [6:6]
- include/any [6:6]
- include/array [6:6]
- include/atomic [6:6]
- include/barrier [6:6]
- include/bit [6:6]
- include/bitset [6:6]
- include/cassert [6:6]
- include/ccomplex [6:6]
- include/cctype [6:6]
- include/cerrno [6:6]
- include/cfenv [6:6]
- include/cfloat [6:6]
- include/charconv [6:6]
- include/chrono [6:6]
- include/cinttypes [6:6]
- include/ciso646 [6:6]
- include/climits [6:6]
- include/clocale [6:6]
- include/cmath [6:6]
- include/codecvt [6:6]
- include/compare [6:6]
- include/complex [6:6]
- include/complex.h [6:6]
- include/concepts [6:6]
- include/condition_variable [6:6]
- include/coroutine [6:6]
- include/csetjmp [6:6]
- include/csignal [6:6]
- include/cstdarg [6:6]
- include/cstdbool [6:6]
- include/cstddef [6:6]
- include/cstdint [6:6]
- include/cstdio [6:6]
- include/cstdlib [6:6]
- include/cstring [6:6]
- include/ctgmath [6:6]
- include/ctime [6:6]
- include/ctype.h [6:6]
- include/cwchar [6:6]
- include/cwctype [6:6]
- include/deque [6:6]
- include/errno.h [6:6]
- include/exception [6:6]
- include/execution [6:6]
- include/experimental/__memory [6:6]
- include/experimental/algorithm [6:6]
- include/experimental/coroutine [6:6]
- include/experimental/deque [6:6]
- include/experimental/filesystem [6:6]
- include/experimental/forward_list [6:6]
- include/experimental/functional [6:6]
- include/experimental/iterator [6:6]
- include/experimental/list [6:6]
- include/experimental/map [6:6]
- include/experimental/memory_resource [6:6]
- include/experimental/propagate_const [6:6]
- include/experimental/regex [6:6]
- include/experimental/set [6:6]
- include/experimental/simd [6:6]
- include/experimental/string [6:6]
- include/experimental/type_traits [6:6]
- include/experimental/unordered_map [6:6]
- include/experimental/unordered_set [6:6]
- include/experimental/utility [6:6]
- include/experimental/vector [6:6]
- include/ext/__hash [6:6]
- include/ext/hash_map [6:6]
- include/ext/hash_set [6:6]
- include/filesystem [6:6]
- include/float.h [6:6]
- include/format [6:6]
- include/forward_list [6:6]
- include/fstream [6:6]
- include/functional [6:6]
- include/future [6:6]
- include/initializer_list [6:6]
- include/inttypes.h [6:6]
- include/iomanip [6:6]
- include/ios [6:6]
- include/iosfwd [6:6]
- include/iostream [6:6]
- include/istream [6:6]
- include/iterator [6:6]
- include/latch [6:6]
- include/limits [6:6]
- include/limits.h [6:6]
- include/list [6:6]
- include/locale [6:6]
- include/locale.h [6:6]
- include/map [6:6]
- include/math.h [6:6]
- include/memory [6:6]
- include/mutex [6:6]
- include/new [6:6]
- include/numbers [6:6]
- include/numeric [6:6]
- include/optional [6:6]
- include/ostream [6:6]
- include/queue [6:6]
- include/random [6:6]
- include/ranges [6:6]
- include/ratio [6:6]
- include/regex [6:6]
- include/scoped_allocator [6:6]
- include/semaphore [6:6]
- include/set [6:6]
- include/setjmp.h [6:6]
- include/shared_mutex [6:6]
- include/span [6:6]
- include/sstream [6:6]
- include/stack [6:6]
- include/stdbool.h [6:6]
- include/stddef.h [6:6]
- include/stdexcept [6:6]
- include/stdint.h [6:6]
- include/stdio.h [6:6]
- include/stdlib.h [6:6]
- include/streambuf [6:6]
- include/string [6:6]
- include/string.h [6:6]
- include/string_view [6:6]
- include/strstream [6:6]
- include/system_error [6:6]
- include/tgmath.h [6:6]
- include/thread [6:6]
- include/tuple [6:6]
- include/type_traits [6:6]
- include/typeindex [6:6]
- include/typeinfo [6:6]
- include/unordered_map [6:6]
- include/unordered_set [6:6]
- include/utility [6:6]
- include/valarray [6:6]
- include/variant [6:6]
- include/vector [6:6]
- include/version [6:6]
- include/wchar.h [6:6]
- include/wctype.h [6:6]
- src/algorithm.cpp [5:5]
- src/any.cpp [5:5]
- src/atomic.cpp [5:5]
- src/barrier.cpp [5:5]
- src/bind.cpp [5:5]
- src/charconv.cpp [5:5]
- src/chrono.cpp [5:5]
- src/condition_variable.cpp [5:5]
- src/condition_variable_destructor.cpp [5:5]
- src/debug.cpp [5:5]
- src/exception.cpp [5:5]
- src/experimental/memory_resource.cpp [5:5]
- src/filesystem/directory_iterator.cpp [5:5]
- src/filesystem/filesystem_common.h [5:5]
- src/filesystem/operations.cpp [5:5]
- src/filesystem/posix_compat.h [5:5]
- src/format.cpp [5:5]
- src/functional.cpp [5:5]
- src/future.cpp [5:5]
- src/hash.cpp [5:5]
- src/include/apple_availability.h [5:5]
- src/include/atomic_support.h [5:5]
- src/include/config_elast.h [5:5]
- src/include/refstring.h [5:5]
- src/include/sso_allocator.h [6:6]
- src/ios.cpp [5:5]
- src/ios.instantiations.cpp [5:5]
- src/iostream.cpp [5:5]
- src/legacy_pointer_safety.cpp [5:5]
- src/locale.cpp [5:5]
- src/memory.cpp [5:5]
- src/mutex.cpp [5:5]
- src/mutex_destructor.cpp [5:5]
- src/new.cpp [5:5]
- src/optional.cpp [5:5]
- src/random.cpp [5:5]
- src/random_shuffle.cpp [5:5]
- src/regex.cpp [5:5]
- src/shared_mutex.cpp [5:5]
- src/stdexcept.cpp [5:5]
- src/string.cpp [5:5]
- src/strstream.cpp [5:5]
- src/support/ibm/mbsnrtowcs.cpp [5:5]
- src/support/ibm/wcsnrtombs.cpp [5:5]
- src/support/ibm/xlocale_zos.cpp [5:5]
- src/support/runtime/exception_fallback.ipp [6:6]
- src/support/runtime/exception_glibcxx.ipp [6:6]
- src/support/runtime/exception_libcxxabi.ipp [6:6]
- src/support/runtime/exception_libcxxrt.ipp [6:6]
- src/support/runtime/exception_msvc.ipp [6:6]
- src/support/runtime/exception_pointer_cxxabi.ipp [6:6]
- src/support/runtime/exception_pointer_glibcxx.ipp [6:6]
- src/support/runtime/exception_pointer_msvc.ipp [6:6]
- src/support/runtime/exception_pointer_unimplemented.ipp [6:6]
- src/support/runtime/new_handler_fallback.ipp [6:6]
- src/support/runtime/stdexcept_default.ipp [5:5]
- src/support/runtime/stdexcept_vcruntime.ipp [5:5]
- src/support/solaris/xlocale.cpp [5:5]
- src/support/win32/locale_win32.cpp [5:5]
- src/support/win32/support.cpp [5:5]
- src/support/win32/thread_win32.cpp [5:5]
- src/system_error.cpp [5:5]
- src/thread.cpp [5:5]
- src/typeinfo.cpp [5:5]
- src/utility.cpp [5:5]
- src/valarray.cpp [5:5]
- src/variant.cpp [5:5]
- src/vector.cpp [5:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/__algorithm/adjacent_find.h [6:6]
- include/__algorithm/all_of.h [6:6]
- include/__algorithm/any_of.h [6:6]
- include/__algorithm/binary_search.h [5:5]
- include/__algorithm/clamp.h [5:5]
- include/__algorithm/comp.h [5:5]
- include/__algorithm/comp_ref_type.h [5:5]
- include/__algorithm/copy.h [5:5]
- include/__algorithm/copy_backward.h [5:5]
- include/__algorithm/copy_if.h [5:5]
- include/__algorithm/copy_n.h [5:5]
- include/__algorithm/count.h [6:6]
- include/__algorithm/count_if.h [6:6]
- include/__algorithm/equal.h [6:6]
- include/__algorithm/equal_range.h [5:5]
- include/__algorithm/fill.h [5:5]
- include/__algorithm/fill_n.h [5:5]
- include/__algorithm/find.h [6:6]
- include/__algorithm/find_end.h [6:6]
- include/__algorithm/find_first_of.h [6:6]
- include/__algorithm/find_if.h [6:6]
- include/__algorithm/find_if_not.h [6:6]
- include/__algorithm/for_each.h [6:6]
- include/__algorithm/for_each_n.h [6:6]
- include/__algorithm/generate.h [5:5]
- include/__algorithm/generate_n.h [5:5]
- include/__algorithm/half_positive.h [5:5]
- include/__algorithm/includes.h [5:5]
- include/__algorithm/inplace_merge.h [5:5]
- include/__algorithm/is_heap.h [5:5]
- include/__algorithm/is_heap_until.h [5:5]
- include/__algorithm/is_partitioned.h [5:5]
- include/__algorithm/is_permutation.h [6:6]
- include/__algorithm/is_sorted.h [5:5]
- include/__algorithm/is_sorted_until.h [5:5]
- include/__algorithm/iter_swap.h [5:5]
- include/__algorithm/lexicographical_compare.h [5:5]
- include/__algorithm/lower_bound.h [5:5]
- include/__algorithm/make_heap.h [5:5]
- include/__algorithm/max.h [5:5]
- include/__algorithm/max_element.h [5:5]
- include/__algorithm/merge.h [5:5]
- include/__algorithm/min.h [5:5]
- include/__algorithm/min_element.h [5:5]
- include/__algorithm/minmax.h [5:5]
- include/__algorithm/minmax_element.h [5:5]
- include/__algorithm/mismatch.h [6:6]
- include/__algorithm/move.h [5:5]
- include/__algorithm/move_backward.h [5:5]
- include/__algorithm/next_permutation.h [5:5]
- include/__algorithm/none_of.h [6:6]
- include/__algorithm/nth_element.h [5:5]
- include/__algorithm/partial_sort.h [5:5]
- include/__algorithm/partial_sort_copy.h [5:5]
- include/__algorithm/partition.h [5:5]
- include/__algorithm/partition_copy.h [5:5]
- include/__algorithm/partition_point.h [5:5]
- include/__algorithm/pop_heap.h [5:5]
- include/__algorithm/prev_permutation.h [5:5]
- include/__algorithm/push_heap.h [5:5]
- include/__algorithm/remove.h [5:5]
- include/__algorithm/remove_copy.h [5:5]
- include/__algorithm/remove_copy_if.h [5:5]
- include/__algorithm/remove_if.h [5:5]
- include/__algorithm/replace.h [5:5]
- include/__algorithm/replace_copy.h [5:5]
- include/__algorithm/replace_copy_if.h [5:5]
- include/__algorithm/replace_if.h [5:5]
- include/__algorithm/reverse.h [5:5]
- include/__algorithm/reverse_copy.h [5:5]
- include/__algorithm/rotate.h [5:5]
- include/__algorithm/rotate_copy.h [5:5]
- include/__algorithm/sample.h [5:5]
- include/__algorithm/search.h [6:6]
- include/__algorithm/search_n.h [6:6]
- include/__algorithm/set_difference.h [5:5]
- include/__algorithm/set_intersection.h [5:5]
- include/__algorithm/set_symmetric_difference.h [5:5]
- include/__algorithm/set_union.h [5:5]
- include/__algorithm/shift_left.h [5:5]
- include/__algorithm/shift_right.h [5:5]
- include/__algorithm/shuffle.h [5:5]
- include/__algorithm/sift_down.h [5:5]
- include/__algorithm/sort.h [5:5]
- include/__algorithm/sort_heap.h [5:5]
- include/__algorithm/stable_partition.h [5:5]
- include/__algorithm/stable_sort.h [5:5]
- include/__algorithm/swap_ranges.h [5:5]
- include/__algorithm/transform.h [5:5]
- include/__algorithm/unique.h [5:5]
- include/__algorithm/unique_copy.h [5:5]
- include/__algorithm/unwrap_iter.h [5:5]
- include/__algorithm/upper_bound.h [5:5]
- include/__availability [6:6]
- include/__bit/bit_cast.h [6:6]
- include/__bit_reference [6:6]
- include/__bits [6:6]
- include/__bsd_locale_defaults.h [6:6]
- include/__bsd_locale_fallbacks.h [6:6]
- include/__charconv/chars_format.h [6:6]
- include/__charconv/from_chars_result.h [6:6]
- include/__charconv/to_chars_result.h [6:6]
- include/__compare/common_comparison_category.h [5:5]
- include/__compare/compare_three_way.h [6:6]
- include/__compare/compare_three_way_result.h [5:5]
- include/__compare/is_eq.h [5:5]
- include/__compare/ordering.h [5:5]
- include/__compare/synth_three_way.h [5:5]
- include/__compare/three_way_comparable.h [5:5]
- include/__concepts/arithmetic.h [5:5]
- include/__concepts/assignable.h [5:5]
- include/__concepts/boolean_testable.h [5:5]
- include/__concepts/class_or_enum.h [5:5]
- include/__concepts/common_reference_with.h [5:5]
- include/__concepts/common_with.h [5:5]
- include/__concepts/constructible.h [5:5]
- include/__concepts/convertible_to.h [5:5]
- include/__concepts/copyable.h [5:5]
- include/__concepts/derived_from.h [5:5]
- include/__concepts/destructible.h [5:5]
- include/__concepts/different_from.h [5:5]
- include/__concepts/equality_comparable.h [5:5]
- include/__concepts/invocable.h [5:5]
- include/__concepts/movable.h [5:5]
- include/__concepts/predicate.h [5:5]
- include/__concepts/regular.h [5:5]
- include/__concepts/relation.h [5:5]
- include/__concepts/same_as.h [5:5]
- include/__concepts/semiregular.h [5:5]
- include/__concepts/swappable.h [5:5]
- include/__concepts/totally_ordered.h [5:5]
- include/__config [6:6]
- include/__config_site.in [5:5]
- include/__coroutine/coroutine_handle.h [5:5]
- include/__coroutine/coroutine_traits.h [5:5]
- include/__coroutine/noop_coroutine_handle.h [5:5]
- include/__coroutine/trivial_awaitables.h [5:5]
- include/__debug [6:6]
- include/__errc [6:6]
- include/__format/format_arg.h [6:6]
- include/__format/format_args.h [6:6]
- include/__format/format_context.h [6:6]
- include/__format/format_error.h [6:6]
- include/__format/format_fwd.h [6:6]
- include/__format/format_parse_context.h [6:6]
- include/__format/format_string.h [6:6]
- include/__format/format_to_n_result.h [6:6]
- include/__format/formatter.h [6:6]
- include/__format/formatter_bool.h [6:6]
- include/__format/formatter_char.h [6:6]
- include/__format/formatter_integer.h [6:6]
- include/__format/formatter_integral.h [6:6]
- include/__format/formatter_string.h [6:6]
- include/__format/parser_std_format_spec.h [6:6]
- include/__function_like.h [6:6]
- include/__functional/binary_function.h [6:6]
- include/__functional/binary_negate.h [6:6]
- include/__functional/bind.h [6:6]
- include/__functional/bind_back.h [6:6]
- include/__functional/bind_front.h [6:6]
- include/__functional/binder1st.h [6:6]
- include/__functional/binder2nd.h [6:6]
- include/__functional/compose.h [6:6]
- include/__functional/default_searcher.h [6:6]
- include/__functional/function.h [6:6]
- include/__functional/hash.h [5:5]
- include/__functional/identity.h [6:6]
- include/__functional/invoke.h [6:6]
- include/__functional/is_transparent.h [6:6]
- include/__functional/mem_fn.h [6:6]
- include/__functional/mem_fun_ref.h [6:6]
- include/__functional/not_fn.h [6:6]
- include/__functional/operations.h [6:6]
- include/__functional/perfect_forward.h [6:6]
- include/__functional/pointer_to_binary_function.h [6:6]
- include/__functional/pointer_to_unary_function.h [6:6]
- include/__functional/ranges_operations.h [6:6]
- include/__functional/reference_wrapper.h [6:6]
- include/__functional/unary_function.h [5:5]
- include/__functional/unary_negate.h [6:6]
- include/__functional/unwrap_ref.h [5:5]
- include/__functional/weak_result_type.h [6:6]
- include/__functional_base [6:6]
- include/__hash_table [6:6]
- include/__iterator/access.h [6:6]
- include/__iterator/advance.h [6:6]
- include/__iterator/back_insert_iterator.h [6:6]
- include/__iterator/common_iterator.h [6:6]
- include/__iterator/concepts.h [6:6]
- include/__iterator/counted_iterator.h [6:6]
- include/__iterator/data.h [6:6]
- include/__iterator/default_sentinel.h [6:6]
- include/__iterator/distance.h [6:6]
- include/__iterator/empty.h [6:6]
- include/__iterator/erase_if_container.h [6:6]
- include/__iterator/front_insert_iterator.h [6:6]
- include/__iterator/incrementable_traits.h [6:6]
- include/__iterator/insert_iterator.h [6:6]
- include/__iterator/istream_iterator.h [6:6]
- include/__iterator/istreambuf_iterator.h [6:6]
- include/__iterator/iter_move.h [6:6]
- include/__iterator/iter_swap.h [6:6]
- include/__iterator/iterator.h [6:6]
- include/__iterator/iterator_traits.h [6:6]
- include/__iterator/move_iterator.h [6:6]
- include/__iterator/next.h [6:6]
- include/__iterator/ostream_iterator.h [6:6]
- include/__iterator/ostreambuf_iterator.h [6:6]
- include/__iterator/prev.h [6:6]
- include/__iterator/projected.h [6:6]
- include/__iterator/readable_traits.h [6:6]
- include/__iterator/reverse_access.h [6:6]
- include/__iterator/reverse_iterator.h [6:6]
- include/__iterator/size.h [6:6]
- include/__iterator/unreachable_sentinel.h [6:6]
- include/__iterator/wrap_iter.h [6:6]
- include/__locale [6:6]
- include/__mbstate_t.h [6:6]
- include/__memory/addressof.h [6:6]
- include/__memory/allocation_guard.h [6:6]
- include/__memory/allocator.h [6:6]
- include/__memory/allocator_arg_t.h [6:6]
- include/__memory/allocator_traits.h [6:6]
- include/__memory/auto_ptr.h [6:6]
- include/__memory/compressed_pair.h [6:6]
- include/__memory/construct_at.h [6:6]
- include/__memory/pointer_safety.h [6:6]
- include/__memory/pointer_traits.h [6:6]
- include/__memory/raw_storage_iterator.h [6:6]
- include/__memory/shared_ptr.h [6:6]
- include/__memory/temporary_buffer.h [6:6]
- include/__memory/uninitialized_algorithms.h [6:6]
- include/__memory/unique_ptr.h [6:6]
- include/__memory/uses_allocator.h [6:6]
- include/__mutex_base [6:6]
- include/__node_handle [6:6]
- include/__nullptr [6:6]
- include/__random/uniform_int_distribution.h [5:5]
- include/__ranges/access.h [6:6]
- include/__ranges/all.h [6:6]
- include/__ranges/common_view.h [6:6]
- include/__ranges/concepts.h [6:6]
- include/__ranges/copyable_box.h [6:6]
- include/__ranges/counted.h [6:6]
- include/__ranges/dangling.h [6:6]
- include/__ranges/data.h [6:6]
- include/__ranges/drop_view.h [6:6]
- include/__ranges/empty.h [6:6]
- include/__ranges/empty_view.h [6:6]
- include/__ranges/enable_borrowed_range.h [6:6]
- include/__ranges/enable_view.h [6:6]
- include/__ranges/iota_view.h [6:6]
- include/__ranges/join_view.h [6:6]
- include/__ranges/non_propagating_cache.h [6:6]
- include/__ranges/range_adaptor.h [6:6]
- include/__ranges/ref_view.h [6:6]
- include/__ranges/reverse_view.h [6:6]
- include/__ranges/single_view.h [6:6]
- include/__ranges/size.h [6:6]
- include/__ranges/subrange.h [6:6]
- include/__ranges/take_view.h [6:6]
- include/__ranges/transform_view.h [6:6]
- include/__ranges/view_interface.h [6:6]
- include/__std_stream [6:6]
- include/__string [6:6]
- include/__support/android/locale_bionic.h [6:6]
- include/__support/fuchsia/xlocale.h [6:6]
- include/__support/ibm/gettod_zos.h [6:6]
- include/__support/ibm/limits.h [6:6]
- include/__support/ibm/locale_mgmt_zos.h [6:6]
- include/__support/ibm/nanosleep.h [6:6]
- include/__support/ibm/support.h [6:6]
- include/__support/ibm/xlocale.h [6:6]
- include/__support/musl/xlocale.h [6:6]
- include/__support/newlib/xlocale.h [5:5]
- include/__support/openbsd/xlocale.h [6:6]
- include/__support/solaris/floatingpoint.h [5:5]
- include/__support/solaris/wchar.h [5:5]
- include/__support/solaris/xlocale.h [5:5]
- include/__support/win32/limits_msvc_win32.h [6:6]
- include/__support/win32/locale_win32.h [6:6]
- include/__support/xlocale/__nop_locale_mgmt.h [6:6]
- include/__support/xlocale/__posix_l_fallback.h [6:6]
- include/__support/xlocale/__strtonum_fallback.h [6:6]
- include/__threading_support [6:6]
- include/__tree [6:6]
- include/__tuple [6:6]
- include/__undef_macros [6:6]
- include/__utility/as_const.h [5:5]
- include/__utility/cmp.h [5:5]
- include/__utility/decay_copy.h [6:6]
- include/__utility/declval.h [5:5]
- include/__utility/exchange.h [5:5]
- include/__utility/forward.h [6:6]
- include/__utility/in_place.h [5:5]
- include/__utility/integer_sequence.h [5:5]
- include/__utility/move.h [6:6]
- include/__utility/pair.h [5:5]
- include/__utility/piecewise_construct.h [5:5]
- include/__utility/rel_ops.h [5:5]
- include/__utility/swap.h [5:5]
- include/__utility/to_underlying.h [6:6]
- include/__variant/monostate.h [6:6]
- include/algorithm [6:6]
- include/any [6:6]
- include/array [6:6]
- include/atomic [6:6]
- include/barrier [6:6]
- include/bit [6:6]
- include/bitset [6:6]
- include/cassert [6:6]
- include/ccomplex [6:6]
- include/cctype [6:6]
- include/cerrno [6:6]
- include/cfenv [6:6]
- include/cfloat [6:6]
- include/charconv [6:6]
- include/chrono [6:6]
- include/cinttypes [6:6]
- include/ciso646 [6:6]
- include/climits [6:6]
- include/clocale [6:6]
- include/cmath [6:6]
- include/codecvt [6:6]
- include/compare [6:6]
- include/complex [6:6]
- include/complex.h [6:6]
- include/concepts [6:6]
- include/condition_variable [6:6]
- include/coroutine [6:6]
- include/csetjmp [6:6]
- include/csignal [6:6]
- include/cstdarg [6:6]
- include/cstdbool [6:6]
- include/cstddef [6:6]
- include/cstdint [6:6]
- include/cstdio [6:6]
- include/cstdlib [6:6]
- include/cstring [6:6]
- include/ctgmath [6:6]
- include/ctime [6:6]
- include/ctype.h [6:6]
- include/cwchar [6:6]
- include/cwctype [6:6]
- include/deque [6:6]
- include/errno.h [6:6]
- include/exception [6:6]
- include/execution [6:6]
- include/experimental/__memory [6:6]
- include/experimental/algorithm [6:6]
- include/experimental/coroutine [6:6]
- include/experimental/deque [6:6]
- include/experimental/filesystem [6:6]
- include/experimental/forward_list [6:6]
- include/experimental/functional [6:6]
- include/experimental/iterator [6:6]
- include/experimental/list [6:6]
- include/experimental/map [6:6]
- include/experimental/memory_resource [6:6]
- include/experimental/propagate_const [6:6]
- include/experimental/regex [6:6]
- include/experimental/set [6:6]
- include/experimental/simd [6:6]
- include/experimental/string [6:6]
- include/experimental/type_traits [6:6]
- include/experimental/unordered_map [6:6]
- include/experimental/unordered_set [6:6]
- include/experimental/utility [6:6]
- include/experimental/vector [6:6]
- include/ext/__hash [6:6]
- include/ext/hash_map [6:6]
- include/ext/hash_set [6:6]
- include/filesystem [6:6]
- include/float.h [6:6]
- include/format [6:6]
- include/forward_list [6:6]
- include/fstream [6:6]
- include/functional [6:6]
- include/future [6:6]
- include/initializer_list [6:6]
- include/inttypes.h [6:6]
- include/iomanip [6:6]
- include/ios [6:6]
- include/iosfwd [6:6]
- include/iostream [6:6]
- include/istream [6:6]
- include/iterator [6:6]
- include/latch [6:6]
- include/limits [6:6]
- include/limits.h [6:6]
- include/list [6:6]
- include/locale [6:6]
- include/locale.h [6:6]
- include/map [6:6]
- include/math.h [6:6]
- include/memory [6:6]
- include/mutex [6:6]
- include/new [6:6]
- include/numbers [6:6]
- include/numeric [6:6]
- include/optional [6:6]
- include/ostream [6:6]
- include/queue [6:6]
- include/random [6:6]
- include/ranges [6:6]
- include/ratio [6:6]
- include/regex [6:6]
- include/scoped_allocator [6:6]
- include/semaphore [6:6]
- include/set [6:6]
- include/setjmp.h [6:6]
- include/shared_mutex [6:6]
- include/span [6:6]
- include/sstream [6:6]
- include/stack [6:6]
- include/stdbool.h [6:6]
- include/stddef.h [6:6]
- include/stdexcept [6:6]
- include/stdint.h [6:6]
- include/stdio.h [6:6]
- include/stdlib.h [6:6]
- include/streambuf [6:6]
- include/string [6:6]
- include/string.h [6:6]
- include/string_view [6:6]
- include/strstream [6:6]
- include/system_error [6:6]
- include/tgmath.h [6:6]
- include/thread [6:6]
- include/tuple [6:6]
- include/type_traits [6:6]
- include/typeindex [6:6]
- include/typeinfo [6:6]
- include/unordered_map [6:6]
- include/unordered_set [6:6]
- include/utility [6:6]
- include/valarray [6:6]
- include/variant [6:6]
- include/vector [6:6]
- include/version [6:6]
- include/wchar.h [6:6]
- include/wctype.h [6:6]
- src/algorithm.cpp [5:5]
- src/any.cpp [5:5]
- src/atomic.cpp [5:5]
- src/barrier.cpp [5:5]
- src/bind.cpp [5:5]
- src/charconv.cpp [5:5]
- src/chrono.cpp [5:5]
- src/condition_variable.cpp [5:5]
- src/condition_variable_destructor.cpp [5:5]
- src/debug.cpp [5:5]
- src/exception.cpp [5:5]
- src/experimental/memory_resource.cpp [5:5]
- src/filesystem/directory_iterator.cpp [5:5]
- src/filesystem/filesystem_common.h [5:5]
- src/filesystem/operations.cpp [5:5]
- src/filesystem/posix_compat.h [5:5]
- src/format.cpp [5:5]
- src/functional.cpp [5:5]
- src/future.cpp [5:5]
- src/hash.cpp [5:5]
- src/include/apple_availability.h [5:5]
- src/include/atomic_support.h [5:5]
- src/include/config_elast.h [5:5]
- src/include/refstring.h [5:5]
- src/include/sso_allocator.h [6:6]
- src/ios.cpp [5:5]
- src/ios.instantiations.cpp [5:5]
- src/iostream.cpp [5:5]
- src/legacy_pointer_safety.cpp [5:5]
- src/locale.cpp [5:5]
- src/memory.cpp [5:5]
- src/mutex.cpp [5:5]
- src/mutex_destructor.cpp [5:5]
- src/new.cpp [5:5]
- src/optional.cpp [5:5]
- src/random.cpp [5:5]
- src/random_shuffle.cpp [5:5]
- src/regex.cpp [5:5]
- src/shared_mutex.cpp [5:5]
- src/stdexcept.cpp [5:5]
- src/string.cpp [5:5]
- src/strstream.cpp [5:5]
- src/support/ibm/mbsnrtowcs.cpp [5:5]
- src/support/ibm/wcsnrtombs.cpp [5:5]
- src/support/ibm/xlocale_zos.cpp [5:5]
- src/support/runtime/exception_fallback.ipp [6:6]
- src/support/runtime/exception_glibcxx.ipp [6:6]
- src/support/runtime/exception_libcxxabi.ipp [6:6]
- src/support/runtime/exception_libcxxrt.ipp [6:6]
- src/support/runtime/exception_msvc.ipp [6:6]
- src/support/runtime/exception_pointer_cxxabi.ipp [6:6]
- src/support/runtime/exception_pointer_glibcxx.ipp [6:6]
- src/support/runtime/exception_pointer_msvc.ipp [6:6]
- src/support/runtime/exception_pointer_unimplemented.ipp [6:6]
- src/support/runtime/new_handler_fallback.ipp [6:6]
- src/support/runtime/stdexcept_default.ipp [5:5]
- src/support/runtime/stdexcept_vcruntime.ipp [5:5]
- src/support/solaris/xlocale.cpp [5:5]
- src/support/win32/locale_win32.cpp [5:5]
- src/support/win32/support.cpp [5:5]
- src/support/win32/thread_win32.cpp [5:5]
- src/system_error.cpp [5:5]
- src/thread.cpp [5:5]
- src/typeinfo.cpp [5:5]
- src/utility.cpp [5:5]
- src/valarray.cpp [5:5]
- src/variant.cpp [5:5]
- src/vector.cpp [5:5]
-
-KEEP Apache-2.0 WITH LLVM-exception c1e6c6536fcc444f916047679115c618
-BELONGS ya.make
- License text:
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- src/filesystem/int128_builtins.cpp [5:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- src/filesystem/int128_builtins.cpp [5:5]
-
-KEEP NCSA c26d0b72f92421989c4471ae0acbc943
-BELONGS ya.make
- License text:
- University of Illinois/NCSA
- Open Source License
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [249:250]
-
-SKIP LicenseRef-scancode-unknown-license-reference d4fd839c20b32e384ccf02a801e876d1
-BELONGS ya.make
- # part of bsd-2-clause text
- License text:
- distributed under.
- Scancode info:
- Original SPDX id: LicenseRef-scancode-unknown-license-reference
- Score : 11.00
- Match type : INTRO
- Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/unknown-license-reference.LICENSE
- Files with this license:
- src/support/solaris/README [4:4]
-
-KEEP Apache-2.0 WITH LLVM-exception df18889e552d44a4679aff552267f802
-BELONGS ya.make
- License text:
- The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [2:2]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [2:2]
-
-KEEP BSD-2-Clause f59cebb43ee786218189ac014af76fbb
-BELONGS ya.make
-FILE_IGNORE include/experimental/list found in files: src/support/solaris/mbsnrtowcs.inc at line 13, src/support/solaris/mbsnrtowcs.inc at line 15, src/support/solaris/wcsnrtombs.inc at line 10, src/support/solaris/wcsnrtombs.inc at line 8
-FILE_IGNORE include/list found in files: src/support/solaris/mbsnrtowcs.inc at line 13, src/support/solaris/mbsnrtowcs.inc at line 15, src/support/solaris/wcsnrtombs.inc at line 10, src/support/solaris/wcsnrtombs.inc at line 8
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- src/support/solaris/mbsnrtowcs.inc [9:28]
- src/support/solaris/wcsnrtombs.inc [4:23]
diff --git a/contrib/libs/cxxsupp/libcxx/.yandex_meta/licenses.list.txt b/contrib/libs/cxxsupp/libcxx/.yandex_meta/licenses.list.txt
deleted file mode 100644
index a54494ce45b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/.yandex_meta/licenses.list.txt
+++ /dev/null
@@ -1,519 +0,0 @@
-====================Apache-2.0====================
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
----- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
-
-
-====================BSD-2-Clause====================
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
-
-
-====================BSD-2-Clause AND MIT====================
-2-clause BSD license instead of the MIT/UUIC license that the rest of libc++ is
-
-
-====================COPYRIGHT====================
- * FreeBSD libc. These are covered by the following copyright:
- *
- * Copyright (c) 2002-2004 Tim J. Robbins.
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
-
-
-====================File: CREDITS.TXT====================
-This file is a partial list of people who have contributed to the LLVM/libc++
-project. If you have contributed a patch or made some other contribution to
-LLVM/libc++, please submit a patch to this file to add yourself, and it will be
-done!
-
-The list is sorted by surname and formatted to allow easy grepping and
-beautification by scripts. The fields are: name (N), email (E), web-address
-(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
-(S).
-
-N: Saleem Abdulrasool
-D: Minor patches and Linux fixes.
-
-N: Muiez Ahmed
-D: z/OS port.
-
-N: Dan Albert
-D: Android support and test runner improvements.
-
-N: Dimitry Andric
-D: Visibility fixes, minor FreeBSD portability patches.
-
-N: Holger Arnold
-D: Minor fix.
-
-N: David Chisnall
-E: theraven at theravensnest dot org
-D: FreeBSD and Solaris ports, libcxxrt support, some atomics work.
-
-N: Marshall Clow
-D: C++14 support, patches and bug fixes.
-
-N: Jonathan B Coe
-D: Implementation of propagate_const.
-
-N: Matthew Dempsky
-D: Minor patches and bug fixes.
-
-N: Christopher Di Bella
-D: Library concepts.
-
-N: Glen Joseph Fernandes
-D: Implementation of to_address.
-
-N: Eric Fiselier
-D: LFTS support, patches and bug fixes.
-
-N: Bill Fisher
-D: Regex bug fixes.
-
-N: Google Inc.
-D: Copyright owner and contributor of the CityHash algorithm
-
-N: Howard Hinnant
-D: Architect and primary author of libc++
-
-N: Sergej Jaskiewicz
-D: Minor improvements in the testing infrastructure
-
-N: Hyeon-bin Jeong
-D: Minor patches and bug fixes.
-
-N: Argyrios Kyrtzidis
-D: Bug fixes.
-
-N: Bruce Mitchener, Jr.
-D: Emscripten-related changes.
-
-N: Michel Morin
-D: Minor patches to is_convertible.
-
-N: Andrew Morrow
-D: Minor patches and Linux fixes.
-
-N: Michael Park
-D: Implementation of <variant>.
-
-N: Arvid Picciani
-E: aep at exys dot org
-D: Minor patches and musl port.
-
-N: Bjorn Reese
-D: Initial regex prototype
-
-N: Nico Rieck
-D: Windows fixes
-
-N: Jon Roelofs
-D: Remote testing, Newlib port, baremetal/single-threaded support.
-
-N: Kent Ross
-D: Patches for operator<=> support
-
-N: Jonathan Sauer
-D: Minor patches, mostly related to constexpr
-
-N: Craig Silverstein
-D: Implemented Cityhash as the string hash function on 64-bit machines
-
-N: Richard Smith
-D: Minor patches.
-
-N: Joerg Sonnenberger
-D: NetBSD port.
-
-N: Stephan Tolksdorf
-D: Minor <atomic> fix
-
-N: Ruben Van Boxem
-E: vanboxem dot ruben at gmail dot com
-D: Initial Windows patches.
-
-N: Michael van der Westhuizen
-E: r1mikey at gmail dot com
-
-N: Larisse Voufo
-D: Minor patches.
-
-N: Klaas de Vries
-E: klaas at klaasgaaf dot nl
-D: Minor bug fix.
-
-N: Zhang Xiongpang
-D: Minor patches and bug fixes.
-
-N: Xing Xue
-D: AIX port
-
-N: Jeffrey Yasskin
-D: Linux fixes.
-
-N: Zhihao Yuan
-D: Standard compatibility fixes.
-
-
-====================MIT====================
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-====================NCSA====================
-Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
-
-
-====================NCSA====================
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-
-====================NCSA====================
-University of Illinois/NCSA
-Open Source License
-
-
-====================NCSA AND MIT====================
-The libc++ library is dual licensed under both the University of Illinois
-"BSD-Like" license and the MIT license. As a user of this code you may choose
-to use it under either license. As a contributor, you agree to allow your code
-to be used under both.
-
-Full text of the relevant licenses is included below.
diff --git a/contrib/libs/cxxsupp/libcxx/glibcxx_eh_cxx17.cpp b/contrib/libs/cxxsupp/libcxx/glibcxx_eh_cxx17.cpp
deleted file mode 100644
index 5e5ad083ba9..00000000000
--- a/contrib/libs/cxxsupp/libcxx/glibcxx_eh_cxx17.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <cxxabi.h>
-
-/**
- * libc++ expects std::uncaught_exceptions() to be provided by C++ runtime library.
- *
- * GCC versions prior to GCC 6 did not provide this function yet, but it can be
- * implemented using its API.
- *
- * This implementation should cover ubuntu-12, ubuntu-14, ubuntu-16.
- */
-
-namespace std {
- int uncaught_exceptions() noexcept {
- const auto* globals{__cxxabiv1::__cxa_get_globals()};
- return static_cast<int>(globals->uncaughtExceptions);
- }
-}
diff --git a/contrib/libs/cxxsupp/libcxx/import b/contrib/libs/cxxsupp/libcxx/import
deleted file mode 100755
index 5e5f6e0a17c..00000000000
--- a/contrib/libs/cxxsupp/libcxx/import
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh -e
-
-rev=a7c2a628
-output_dir="libcxx-r$rev"
-if [ -z $1 ] ; then
- git clone https://github.com/llvm/llvm-project.git --no-checkout "$output_dir/tmp"
-else
- git clone --local --no-checkout $1 "$output_dir/tmp"
-fi
-cd "$output_dir/tmp"
-git checkout "$rev"
-cp -R libcxx/include ../include
-cp -R libcxx/src ../src
-cp libcxx/.clang-format ../.clang-format
-cp libcxx/CREDITS.TXT ../CREDITS.TXT
-cp libcxx/LICENSE.TXT ../LICENSE.TXT
-cd ..
-rm -rf tmp
-rm src/CMakeLists.txt include/CMakeLists.txt
-
-# Fix tabs and trailing spaces
-find -type f | xargs sed -e 's/\t/ /g' -e 's/ *$//' -i
diff --git a/contrib/libs/cxxsupp/libcxx/include/__config_site.in b/contrib/libs/cxxsupp/libcxx/include/__config_site.in
deleted file mode 100644
index a1a08a5ee02..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__config_site.in
+++ /dev/null
@@ -1,39 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_CONFIG_SITE
-#define _LIBCPP_CONFIG_SITE
-
-#cmakedefine _LIBCPP_ABI_VERSION @_LIBCPP_ABI_VERSION@
-#cmakedefine _LIBCPP_ABI_NAMESPACE @_LIBCPP_ABI_NAMESPACE@
-#cmakedefine _LIBCPP_ABI_FORCE_ITANIUM
-#cmakedefine _LIBCPP_ABI_FORCE_MICROSOFT
-#cmakedefine _LIBCPP_HIDE_FROM_ABI_PER_TU_BY_DEFAULT
-#cmakedefine _LIBCPP_HAS_NO_THREADS
-#cmakedefine _LIBCPP_HAS_NO_MONOTONIC_CLOCK
-#cmakedefine _LIBCPP_HAS_MUSL_LIBC
-#cmakedefine _LIBCPP_HAS_THREAD_API_PTHREAD
-#cmakedefine _LIBCPP_HAS_THREAD_API_EXTERNAL
-#cmakedefine _LIBCPP_HAS_THREAD_API_WIN32
-#cmakedefine _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL
-#cmakedefine _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS
-#cmakedefine _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
-#cmakedefine _LIBCPP_NO_VCRUNTIME
-#cmakedefine _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION @_LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION@
-#cmakedefine _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY
-#cmakedefine _LIBCPP_HAS_PARALLEL_ALGORITHMS
-#cmakedefine _LIBCPP_HAS_NO_RANDOM_DEVICE
-#cmakedefine _LIBCPP_HAS_NO_LOCALIZATION
-#cmakedefine _LIBCPP_HAS_NO_WIDE_CHARACTERS
-#cmakedefine _LIBCPP_HAS_NO_INCOMPLETE_FORMAT
-#cmakedefine _LIBCPP_HAS_NO_INCOMPLETE_RANGES
-
-@_LIBCPP_ABI_DEFINES@
-@_LIBCPP_EXTRA_SITE_DEFINES@
-
-#endif // _LIBCPP_CONFIG_SITE
diff --git a/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_handle.h b/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_handle.h
deleted file mode 100644
index ad399c86f8b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_handle.h
+++ /dev/null
@@ -1,202 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___COROUTINE_COROUTINE_HANDLE_H
-#define _LIBCPP___COROUTINE_COROUTINE_HANDLE_H
-
-#include <__config>
-#include <__debug>
-#include <__functional/hash.h>
-#include <__memory/addressof.h>
-#include <compare>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-// [coroutine.handle]
-template <class _Promise = void>
-struct _LIBCPP_TEMPLATE_VIS coroutine_handle;
-
-template <>
-struct _LIBCPP_TEMPLATE_VIS coroutine_handle<void> {
-public:
- // [coroutine.handle.con], construct/reset
- _LIBCPP_HIDE_FROM_ABI
- constexpr coroutine_handle() noexcept = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr coroutine_handle(nullptr_t) noexcept {}
-
- _LIBCPP_HIDE_FROM_ABI
- coroutine_handle& operator=(nullptr_t) noexcept {
- __handle_ = nullptr;
- return *this;
- }
-
- // [coroutine.handle.export.import], export/import
- _LIBCPP_HIDE_FROM_ABI
- constexpr void* address() const noexcept { return __handle_; }
-
- _LIBCPP_HIDE_FROM_ABI
- static constexpr coroutine_handle from_address(void* __addr) noexcept {
- coroutine_handle __tmp;
- __tmp.__handle_ = __addr;
- return __tmp;
- }
-
- // [coroutine.handle.observers], observers
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit operator bool() const noexcept {
- return __handle_ != nullptr;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- bool done() const {
- _LIBCPP_ASSERT(__is_suspended(), "done() can be called only on suspended coroutines");
- return __builtin_coro_done(__handle_);
- }
-
- // [coroutine.handle.resumption], resumption
- _LIBCPP_HIDE_FROM_ABI
- void operator()() const { resume(); }
-
- _LIBCPP_HIDE_FROM_ABI
- void resume() const {
- _LIBCPP_ASSERT(__is_suspended(), "resume() can be called only on suspended coroutines");
- _LIBCPP_ASSERT(!done(), "resume() has undefined behavior when the coroutine is done");
- __builtin_coro_resume(__handle_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- void destroy() const {
- _LIBCPP_ASSERT(__is_suspended(), "destroy() can be called only on suspended coroutines");
- __builtin_coro_destroy(__handle_);
- }
-
-private:
- bool __is_suspended() const {
- // FIXME actually implement a check for if the coro is suspended.
- return __handle_ != nullptr;
- }
-
- void* __handle_ = nullptr;
-};
-
-// [coroutine.handle.compare]
-inline _LIBCPP_HIDE_FROM_ABI
-constexpr bool operator==(coroutine_handle<> __x, coroutine_handle<> __y) noexcept {
- return __x.address() == __y.address();
-}
-inline _LIBCPP_HIDE_FROM_ABI
-constexpr strong_ordering operator<=>(coroutine_handle<> __x, coroutine_handle<> __y) noexcept {
- return compare_three_way()(__x.address(), __y.address());
-}
-
-template <class _Promise>
-struct _LIBCPP_TEMPLATE_VIS coroutine_handle {
-public:
- // [coroutine.handle.con], construct/reset
- _LIBCPP_HIDE_FROM_ABI
- constexpr coroutine_handle() noexcept = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr coroutine_handle(nullptr_t) noexcept {}
-
- _LIBCPP_HIDE_FROM_ABI
- static coroutine_handle from_promise(_Promise& __promise) {
- using _RawPromise = typename remove_cv<_Promise>::type;
- coroutine_handle __tmp;
- __tmp.__handle_ =
- __builtin_coro_promise(_VSTD::addressof(const_cast<_RawPromise&>(__promise)), alignof(_Promise), true);
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- coroutine_handle& operator=(nullptr_t) noexcept {
- __handle_ = nullptr;
- return *this;
- }
-
- // [coroutine.handle.export.import], export/import
- _LIBCPP_HIDE_FROM_ABI
- constexpr void* address() const noexcept { return __handle_; }
-
- _LIBCPP_HIDE_FROM_ABI
- static constexpr coroutine_handle from_address(void* __addr) noexcept {
- coroutine_handle __tmp;
- __tmp.__handle_ = __addr;
- return __tmp;
- }
-
- // [coroutine.handle.conv], conversion
- _LIBCPP_HIDE_FROM_ABI
- constexpr operator coroutine_handle<>() const noexcept {
- return coroutine_handle<>::from_address(address());
- }
-
- // [coroutine.handle.observers], observers
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit operator bool() const noexcept {
- return __handle_ != nullptr;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- bool done() const {
- _LIBCPP_ASSERT(__is_suspended(), "done() can be called only on suspended coroutines");
- return __builtin_coro_done(__handle_);
- }
-
- // [coroutine.handle.resumption], resumption
- _LIBCPP_HIDE_FROM_ABI
- void operator()() const { resume(); }
-
- _LIBCPP_HIDE_FROM_ABI
- void resume() const {
- _LIBCPP_ASSERT(__is_suspended(), "resume() can be called only on suspended coroutines");
- _LIBCPP_ASSERT(!done(), "resume() has undefined behavior when the coroutine is done");
- __builtin_coro_resume(__handle_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- void destroy() const {
- _LIBCPP_ASSERT(__is_suspended(), "destroy() can be called only on suspended coroutines");
- __builtin_coro_destroy(__handle_);
- }
-
- // [coroutine.handle.promise], promise access
- _LIBCPP_HIDE_FROM_ABI
- _Promise& promise() const {
- return *static_cast<_Promise*>(__builtin_coro_promise(this->__handle_, alignof(_Promise), false));
- }
-
-private:
- bool __is_suspended() const {
- // FIXME actually implement a check for if the coro is suspended.
- return __handle_ != nullptr;
- }
- void* __handle_ = nullptr;
-};
-
-// [coroutine.handle.hash]
-template <class _Tp>
-struct hash<coroutine_handle<_Tp>> {
- _LIBCPP_HIDE_FROM_ABI
- size_t operator()(const coroutine_handle<_Tp>& __v) const noexcept { return hash<void*>()(__v.address()); }
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // __LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-#endif // _LIBCPP___COROUTINE_COROUTINE_HANDLE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_traits.h b/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_traits.h
deleted file mode 100644
index 0a5229b4594..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__coroutine/coroutine_traits.h
+++ /dev/null
@@ -1,53 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___COROUTINE_COROUTINE_TRAITS_H
-#define _LIBCPP___COROUTINE_COROUTINE_TRAITS_H
-
-#include <__config>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-// [coroutine.traits]
-// [coroutine.traits.primary]
-// The header <coroutine> defined the primary template coroutine_traits such that
-// if ArgTypes is a parameter pack of types and if the qualified-id R::promise_type
-// is valid and denotes a type ([temp.deduct]), then coroutine_traits<R, ArgTypes...>
-// has the following publicly accessible memebr:
-//
-// using promise_type = typename R::promise_type;
-//
-// Otherwise, coroutine_traits<R, ArgTypes...> has no members.
-template <class _Tp, class = void>
-struct __coroutine_traits_sfinae {};
-
-template <class _Tp>
-struct __coroutine_traits_sfinae<
- _Tp, typename __void_t<typename _Tp::promise_type>::type>
-{
- using promise_type = typename _Tp::promise_type;
-};
-
-template <class _Ret, class... _Args>
-struct coroutine_traits
- : public __coroutine_traits_sfinae<_Ret>
-{
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // __LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-#endif // _LIBCPP___COROUTINE_COROUTINE_TRAITS_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__coroutine/noop_coroutine_handle.h b/contrib/libs/cxxsupp/libcxx/include/__coroutine/noop_coroutine_handle.h
deleted file mode 100644
index 7a2c672057c..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__coroutine/noop_coroutine_handle.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___COROUTINE_NOOP_COROUTINE_HANDLE_H
-#define _LIBCPP___COROUTINE_NOOP_COROUTINE_HANDLE_H
-
-#include <__config>
-#include <__coroutine/coroutine_handle.h>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if __has_builtin(__builtin_coro_noop) || defined(_LIBCPP_COMPILER_GCC)
-
-// [coroutine.noop]
-// [coroutine.promise.noop]
-struct noop_coroutine_promise {};
-
-// [coroutine.handle.noop]
-template <>
-struct _LIBCPP_TEMPLATE_VIS coroutine_handle<noop_coroutine_promise> {
-public:
- // [coroutine.handle.noop.conv], conversion
- _LIBCPP_HIDE_FROM_ABI
- constexpr operator coroutine_handle<>() const noexcept {
- return coroutine_handle<>::from_address(address());
- }
-
- // [coroutine.handle.noop.observers], observers
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit operator bool() const noexcept { return true; }
- _LIBCPP_HIDE_FROM_ABI
- constexpr bool done() const noexcept { return false; }
-
- // [coroutine.handle.noop.resumption], resumption
- _LIBCPP_HIDE_FROM_ABI
- constexpr void operator()() const noexcept {}
- _LIBCPP_HIDE_FROM_ABI
- constexpr void resume() const noexcept {}
- _LIBCPP_HIDE_FROM_ABI
- constexpr void destroy() const noexcept {}
-
- // [coroutine.handle.noop.promise], promise access
- _LIBCPP_HIDE_FROM_ABI
- noop_coroutine_promise& promise() const noexcept {
- return *static_cast<noop_coroutine_promise*>(
- __builtin_coro_promise(this->__handle_, alignof(noop_coroutine_promise), false));
- }
-
- // [coroutine.handle.noop.address], address
- _LIBCPP_HIDE_FROM_ABI
- constexpr void* address() const noexcept { return __handle_; }
-
-private:
- _LIBCPP_HIDE_FROM_ABI
- friend coroutine_handle<noop_coroutine_promise> noop_coroutine() noexcept;
-
-#if __has_builtin(__builtin_coro_noop)
- _LIBCPP_HIDE_FROM_ABI coroutine_handle() noexcept {
- this->__handle_ = __builtin_coro_noop();
- }
-
- void* __handle_ = nullptr;
-
-#elif defined(_LIBCPP_COMPILER_GCC)
- // GCC doesn't implement __builtin_coro_noop().
- // Construct the coroutine frame manually instead.
- struct __noop_coroutine_frame_ty_ {
- static void __dummy_resume_destroy_func() { }
-
- void (*__resume_)() = __dummy_resume_destroy_func;
- void (*__destroy_)() = __dummy_resume_destroy_func;
- struct noop_coroutine_promise __promise_;
- };
-
- static __noop_coroutine_frame_ty_ __noop_coroutine_frame_;
-
- void* __handle_ = &__noop_coroutine_frame_;
-
- _LIBCPP_HIDE_FROM_ABI coroutine_handle() noexcept = default;
-
-#endif // __has_builtin(__builtin_coro_noop)
-};
-
-using noop_coroutine_handle = coroutine_handle<noop_coroutine_promise>;
-
-#if defined(_LIBCPP_COMPILER_GCC)
-inline noop_coroutine_handle::__noop_coroutine_frame_ty_
- noop_coroutine_handle::__noop_coroutine_frame_{};
-#endif
-
-// [coroutine.noop.coroutine]
-inline _LIBCPP_HIDE_FROM_ABI
-noop_coroutine_handle noop_coroutine() noexcept { return noop_coroutine_handle(); }
-
-#endif // __has_builtin(__builtin_coro_noop) || defined(_LIBCPP_COMPILER_GCC)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // __LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-#endif // _LIBCPP___COROUTINE_NOOP_COROUTINE_HANDLE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__coroutine/trivial_awaitables.h b/contrib/libs/cxxsupp/libcxx/include/__coroutine/trivial_awaitables.h
deleted file mode 100644
index 31399ab29a0..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__coroutine/trivial_awaitables.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef __LIBCPP___COROUTINE_TRIVIAL_AWAITABLES_H
-#define __LIBCPP___COROUTINE_TRIVIAL_AWAITABLES_H
-
-#include <__config>
-#include <__coroutine/coroutine_handle.h>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-// [coroutine.trivial.awaitables]
-struct suspend_never {
- _LIBCPP_HIDE_FROM_ABI
- constexpr bool await_ready() const noexcept { return true; }
- _LIBCPP_HIDE_FROM_ABI
- constexpr void await_suspend(coroutine_handle<>) const noexcept {}
- _LIBCPP_HIDE_FROM_ABI
- constexpr void await_resume() const noexcept {}
-};
-
-struct suspend_always {
- _LIBCPP_HIDE_FROM_ABI
- constexpr bool await_ready() const noexcept { return false; }
- _LIBCPP_HIDE_FROM_ABI
- constexpr void await_suspend(coroutine_handle<>) const noexcept {}
- _LIBCPP_HIDE_FROM_ABI
- constexpr void await_resume() const noexcept {}
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // __LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX20_COROUTINES)
-
-#endif // __LIBCPP___COROUTINE_TRIVIAL_AWAITABLES_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__libcpp_version b/contrib/libs/cxxsupp/libcxx/include/__libcpp_version
deleted file mode 100644
index 9e7036918f2..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__libcpp_version
+++ /dev/null
@@ -1 +0,0 @@
-15000
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/pointer_safety.h b/contrib/libs/cxxsupp/libcxx/include/__memory/pointer_safety.h
deleted file mode 100644
index e72080393dc..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/pointer_safety.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___MEMORY_POINTER_SAFETY_H
-#define _LIBCPP___MEMORY_POINTER_SAFETY_H
-
-#include <__config>
-#include <cstddef>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_CXX03_LANG)
-
-enum class pointer_safety : unsigned char {
- relaxed,
- preferred,
- strict
-};
-
-inline _LIBCPP_INLINE_VISIBILITY
-pointer_safety get_pointer_safety() _NOEXCEPT {
- return pointer_safety::relaxed;
-}
-
-_LIBCPP_FUNC_VIS void declare_reachable(void* __p);
-_LIBCPP_FUNC_VIS void declare_no_pointers(char* __p, size_t __n);
-_LIBCPP_FUNC_VIS void undeclare_no_pointers(char* __p, size_t __n);
-_LIBCPP_FUNC_VIS void* __undeclare_reachable(void* __p);
-
-template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
-_Tp*
-undeclare_reachable(_Tp* __p)
-{
- return static_cast<_Tp*>(__undeclare_reachable(__p));
-}
-
-#endif // !C++03
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___MEMORY_POINTER_SAFETY_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/all.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/all.h
deleted file mode 100644
index 54916fd476f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/all.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_ALL_H
-#define _LIBCPP___RANGES_ALL_H
-
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/iterator_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/concepts.h>
-#include <__ranges/owning_view.h>
-#include <__ranges/range_adaptor.h>
-#include <__ranges/ref_view.h>
-#include <__utility/auto_cast.h>
-#include <__utility/declval.h>
-#include <__utility/forward.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges::views {
-
-namespace __all {
- struct __fn : __range_adaptor_closure<__fn> {
- template<class _Tp>
- requires ranges::view<decay_t<_Tp>>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t))))
- {
- return _LIBCPP_AUTO_CAST(std::forward<_Tp>(__t));
- }
-
- template<class _Tp>
- requires (!ranges::view<decay_t<_Tp>>) &&
- requires (_Tp&& __t) { ranges::ref_view{std::forward<_Tp>(__t)}; }
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::ref_view{std::forward<_Tp>(__t)}))
- {
- return ranges::ref_view{std::forward<_Tp>(__t)};
- }
-
- template<class _Tp>
- requires (!ranges::view<decay_t<_Tp>> &&
- !requires (_Tp&& __t) { ranges::ref_view{std::forward<_Tp>(__t)}; } &&
- requires (_Tp&& __t) { ranges::owning_view{std::forward<_Tp>(__t)}; })
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::owning_view{std::forward<_Tp>(__t)}))
- {
- return ranges::owning_view{std::forward<_Tp>(__t)};
- }
- };
-} // namespace __all
-
-inline namespace __cpo {
- inline constexpr auto all = __all::__fn{};
-} // namespace __cpo
-
-template<ranges::viewable_range _Range>
-using all_t = decltype(views::all(declval<_Range>()));
-
-} // namespace ranges::views
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_ALL_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/common_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/common_view.h
deleted file mode 100644
index 3f58dafeb0e..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/common_view.h
+++ /dev/null
@@ -1,135 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_COMMON_VIEW_H
-#define _LIBCPP___RANGES_COMMON_VIEW_H
-
-#include <__config>
-#include <__iterator/common_iterator.h>
-#include <__iterator/iterator_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/range_adaptor.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
-
-template<view _View>
- requires (!common_range<_View> && copyable<iterator_t<_View>>)
-class common_view : public view_interface<common_view<_View>> {
- _View __base_ = _View();
-
-public:
- _LIBCPP_HIDE_FROM_ABI
- common_view() requires default_initializable<_View> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit common_view(_View __v) : __base_(std::move(__v)) { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() {
- if constexpr (random_access_range<_View> && sized_range<_View>)
- return ranges::begin(__base_);
- else
- return common_iterator<iterator_t<_View>, sentinel_t<_View>>(ranges::begin(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() const requires range<const _View> {
- if constexpr (random_access_range<const _View> && sized_range<const _View>)
- return ranges::begin(__base_);
- else
- return common_iterator<iterator_t<const _View>, sentinel_t<const _View>>(ranges::begin(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() {
- if constexpr (random_access_range<_View> && sized_range<_View>)
- return ranges::begin(__base_) + ranges::size(__base_);
- else
- return common_iterator<iterator_t<_View>, sentinel_t<_View>>(ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const requires range<const _View> {
- if constexpr (random_access_range<const _View> && sized_range<const _View>)
- return ranges::begin(__base_) + ranges::size(__base_);
- else
- return common_iterator<iterator_t<const _View>, sentinel_t<const _View>>(ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() requires sized_range<_View> {
- return ranges::size(__base_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const requires sized_range<const _View> {
- return ranges::size(__base_);
- }
-};
-
-template<class _Range>
-common_view(_Range&&)
- -> common_view<views::all_t<_Range>>;
-
-template<class _View>
-inline constexpr bool enable_borrowed_range<common_view<_View>> = enable_borrowed_range<_View>;
-
-namespace views {
-namespace __common {
- struct __fn : __range_adaptor_closure<__fn> {
- template<class _Range>
- requires common_range<_Range>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(views::all(std::forward<_Range>(__range))))
- -> decltype( views::all(std::forward<_Range>(__range)))
- { return views::all(std::forward<_Range>(__range)); }
-
- template<class _Range>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(common_view{std::forward<_Range>(__range)}))
- -> decltype( common_view{std::forward<_Range>(__range)})
- { return common_view{std::forward<_Range>(__range)}; }
- };
-} // namespace __common
-
-inline namespace __cpo {
- inline constexpr auto common = __common::__fn{};
-} // namespace __cpo
-} // namespace views
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_COMMON_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/copyable_box.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/copyable_box.h
deleted file mode 100644
index 8b7f227925c..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/copyable_box.h
+++ /dev/null
@@ -1,178 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___RANGES_COPYABLE_BOX_H
-#define _LIBCPP___RANGES_COPYABLE_BOX_H
-
-#include <__config>
-#include <__memory/addressof.h>
-#include <__memory/construct_at.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <optional>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-// __copyable_box allows turning a type that is copy-constructible (but maybe not copy-assignable) into
-// a type that is both copy-constructible and copy-assignable. It does that by introducing an empty state
-// and basically doing destroy-then-copy-construct in the assignment operator. The empty state is necessary
-// to handle the case where the copy construction fails after destroying the object.
-//
-// In some cases, we can completely avoid the use of an empty state; we provide a specialization of
-// __copyable_box that does this, see below for the details.
-
-template<class _Tp>
-concept __copy_constructible_object = copy_constructible<_Tp> && is_object_v<_Tp>;
-
-namespace ranges {
- // Primary template - uses std::optional and introduces an empty state in case assignment fails.
- template<__copy_constructible_object _Tp>
- class __copyable_box {
- _LIBCPP_NO_UNIQUE_ADDRESS optional<_Tp> __val_;
-
- public:
- template<class ..._Args>
- requires is_constructible_v<_Tp, _Args...>
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __copyable_box(in_place_t, _Args&& ...__args)
- noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
- : __val_(in_place, std::forward<_Args>(__args)...)
- { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box() noexcept(is_nothrow_default_constructible_v<_Tp>)
- requires default_initializable<_Tp>
- : __val_(in_place)
- { }
-
- _LIBCPP_HIDE_FROM_ABI __copyable_box(__copyable_box const&) = default;
- _LIBCPP_HIDE_FROM_ABI __copyable_box(__copyable_box&&) = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box& operator=(__copyable_box const& __other)
- noexcept(is_nothrow_copy_constructible_v<_Tp>)
- {
- if (this != std::addressof(__other)) {
- if (__other.__has_value()) __val_.emplace(*__other);
- else __val_.reset();
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- __copyable_box& operator=(__copyable_box&&) requires movable<_Tp> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box& operator=(__copyable_box&& __other)
- noexcept(is_nothrow_move_constructible_v<_Tp>)
- {
- if (this != std::addressof(__other)) {
- if (__other.__has_value()) __val_.emplace(std::move(*__other));
- else __val_.reset();
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp const& operator*() const noexcept { return *__val_; }
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp& operator*() noexcept { return *__val_; }
-
- _LIBCPP_HIDE_FROM_ABI constexpr const _Tp *operator->() const noexcept { return __val_.operator->(); }
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp *operator->() noexcept { return __val_.operator->(); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr bool __has_value() const noexcept { return __val_.has_value(); }
- };
-
- // This partial specialization implements an optimization for when we know we don't need to store
- // an empty state to represent failure to perform an assignment. For copy-assignment, this happens:
- //
- // 1. If the type is copyable (which includes copy-assignment), we can use the type's own assignment operator
- // directly and avoid using std::optional.
- // 2. If the type is not copyable, but it is nothrow-copy-constructible, then we can implement assignment as
- // destroy-and-then-construct and we know it will never fail, so we don't need an empty state.
- //
- // The exact same reasoning can be applied for move-assignment, with copyable replaced by movable and
- // nothrow-copy-constructible replaced by nothrow-move-constructible. This specialization is enabled
- // whenever we can apply any of these optimizations for both the copy assignment and the move assignment
- // operator.
- template<class _Tp>
- concept __doesnt_need_empty_state_for_copy = copyable<_Tp> || is_nothrow_copy_constructible_v<_Tp>;
-
- template<class _Tp>
- concept __doesnt_need_empty_state_for_move = movable<_Tp> || is_nothrow_move_constructible_v<_Tp>;
-
- template<__copy_constructible_object _Tp>
- requires __doesnt_need_empty_state_for_copy<_Tp> && __doesnt_need_empty_state_for_move<_Tp>
- class __copyable_box<_Tp> {
- _LIBCPP_NO_UNIQUE_ADDRESS _Tp __val_;
-
- public:
- template<class ..._Args>
- requires is_constructible_v<_Tp, _Args...>
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __copyable_box(in_place_t, _Args&& ...__args)
- noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
- : __val_(std::forward<_Args>(__args)...)
- { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box() noexcept(is_nothrow_default_constructible_v<_Tp>)
- requires default_initializable<_Tp>
- : __val_()
- { }
-
- _LIBCPP_HIDE_FROM_ABI __copyable_box(__copyable_box const&) = default;
- _LIBCPP_HIDE_FROM_ABI __copyable_box(__copyable_box&&) = default;
-
- // Implementation of assignment operators in case we perform optimization (1)
- _LIBCPP_HIDE_FROM_ABI __copyable_box& operator=(__copyable_box const&) requires copyable<_Tp> = default;
- _LIBCPP_HIDE_FROM_ABI __copyable_box& operator=(__copyable_box&&) requires movable<_Tp> = default;
-
- // Implementation of assignment operators in case we perform optimization (2)
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box& operator=(__copyable_box const& __other) noexcept {
- static_assert(is_nothrow_copy_constructible_v<_Tp>);
- if (this != std::addressof(__other)) {
- std::destroy_at(std::addressof(__val_));
- std::construct_at(std::addressof(__val_), __other.__val_);
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __copyable_box& operator=(__copyable_box&& __other) noexcept {
- static_assert(is_nothrow_move_constructible_v<_Tp>);
- if (this != std::addressof(__other)) {
- std::destroy_at(std::addressof(__val_));
- std::construct_at(std::addressof(__val_), std::move(__other.__val_));
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp const& operator*() const noexcept { return __val_; }
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp& operator*() noexcept { return __val_; }
-
- _LIBCPP_HIDE_FROM_ABI constexpr const _Tp *operator->() const noexcept { return std::addressof(__val_); }
- _LIBCPP_HIDE_FROM_ABI constexpr _Tp *operator->() noexcept { return std::addressof(__val_); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr bool __has_value() const noexcept { return true; }
- };
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_COPYABLE_BOX_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/counted.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/counted.h
deleted file mode 100644
index 400284c48e6..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/counted.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_COUNTED_H
-#define _LIBCPP___RANGES_COUNTED_H
-
-#include <__concepts/convertible_to.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/counted_iterator.h>
-#include <__iterator/default_sentinel.h>
-#include <__iterator/incrementable_traits.h>
-#include <__iterator/iterator_traits.h>
-#include <__memory/pointer_traits.h>
-#include <__ranges/subrange.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <span>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges::views {
-
-namespace __counted {
-
- struct __fn {
- template<contiguous_iterator _It>
- _LIBCPP_HIDE_FROM_ABI
- static constexpr auto __go(_It __it, iter_difference_t<_It> __count)
- noexcept(noexcept(span(std::to_address(__it), static_cast<size_t>(__count))))
- // Deliberately omit return-type SFINAE, because to_address is not SFINAE-friendly
- { return span(std::to_address(__it), static_cast<size_t>(__count)); }
-
- template<random_access_iterator _It>
- _LIBCPP_HIDE_FROM_ABI
- static constexpr auto __go(_It __it, iter_difference_t<_It> __count)
- noexcept(noexcept(subrange(__it, __it + __count)))
- -> decltype( subrange(__it, __it + __count))
- { return subrange(__it, __it + __count); }
-
- template<class _It>
- _LIBCPP_HIDE_FROM_ABI
- static constexpr auto __go(_It __it, iter_difference_t<_It> __count)
- noexcept(noexcept(subrange(counted_iterator(std::move(__it), __count), default_sentinel)))
- -> decltype( subrange(counted_iterator(std::move(__it), __count), default_sentinel))
- { return subrange(counted_iterator(std::move(__it), __count), default_sentinel); }
-
- template<class _It, convertible_to<iter_difference_t<_It>> _Diff>
- requires input_or_output_iterator<decay_t<_It>>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_It&& __it, _Diff&& __count) const
- noexcept(noexcept(__go(std::forward<_It>(__it), std::forward<_Diff>(__count))))
- -> decltype( __go(std::forward<_It>(__it), std::forward<_Diff>(__count)))
- { return __go(std::forward<_It>(__it), std::forward<_Diff>(__count)); }
- };
-
-} // namespace __counted
-
-inline namespace __cpo {
- inline constexpr auto counted = __counted::__fn{};
-} // namespace __cpo
-
-} // namespace ranges::views
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_COUNTED_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/drop_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/drop_view.h
deleted file mode 100644
index 0e5b68b11d0..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/drop_view.h
+++ /dev/null
@@ -1,127 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_DROP_VIEW_H
-#define _LIBCPP___RANGES_DROP_VIEW_H
-
-#include <__config>
-#include <__debug>
-#include <__iterator/concepts.h>
-#include <__iterator/iterator_traits.h>
-#include <__iterator/next.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/non_propagating_cache.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<view _View>
- class drop_view
- : public view_interface<drop_view<_View>>
- {
- // We cache begin() whenever ranges::next is not guaranteed O(1) to provide an
- // amortized O(1) begin() method. If this is an input_range, then we cannot cache
- // begin because begin is not equality preserving.
- // Note: drop_view<input-range>::begin() is still trivially amortized O(1) because
- // one can't call begin() on it more than once.
- static constexpr bool _UseCache = forward_range<_View> && !(random_access_range<_View> && sized_range<_View>);
- using _Cache = _If<_UseCache, __non_propagating_cache<iterator_t<_View>>, __empty_cache>;
- _LIBCPP_NO_UNIQUE_ADDRESS _Cache __cached_begin_ = _Cache();
- range_difference_t<_View> __count_ = 0;
- _View __base_ = _View();
-
-public:
- drop_view() requires default_initializable<_View> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr drop_view(_View __base, range_difference_t<_View> __count)
- : __count_(__count)
- , __base_(std::move(__base))
- {
- _LIBCPP_ASSERT(__count_ >= 0, "count must be greater than or equal to zero.");
- }
-
- _LIBCPP_HIDE_FROM_ABI constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
- _LIBCPP_HIDE_FROM_ABI constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin()
- requires (!(__simple_view<_View> &&
- random_access_range<const _View> && sized_range<const _View>))
- {
- if constexpr (_UseCache)
- if (__cached_begin_.__has_value())
- return *__cached_begin_;
-
- auto __tmp = ranges::next(ranges::begin(__base_), __count_, ranges::end(__base_));
- if constexpr (_UseCache)
- __cached_begin_.__emplace(__tmp);
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() const
- requires random_access_range<const _View> && sized_range<const _View>
- {
- return ranges::next(ranges::begin(__base_), __count_, ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end()
- requires (!__simple_view<_View>)
- { return ranges::end(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const
- requires range<const _View>
- { return ranges::end(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- static constexpr auto __size(auto& __self) {
- const auto __s = ranges::size(__self.__base_);
- const auto __c = static_cast<decltype(__s)>(__self.__count_);
- return __s < __c ? 0 : __s - __c;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size()
- requires sized_range<_View>
- { return __size(*this); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const
- requires sized_range<const _View>
- { return __size(*this); }
- };
-
- template<class _Range>
- drop_view(_Range&&, range_difference_t<_Range>) -> drop_view<views::all_t<_Range>>;
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<drop_view<_Tp>> = enable_borrowed_range<_Tp>;
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_DROP_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/empty.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/empty.h
deleted file mode 100644
index c83cdd7482e..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/empty.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_EMPTY_H
-#define _LIBCPP___RANGES_EMPTY_H
-
-#include <__concepts/class_or_enum.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__ranges/access.h>
-#include <__ranges/size.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-// [range.prim.empty]
-
-namespace ranges {
-namespace __empty {
- template <class _Tp>
- concept __member_empty =
- __workaround_52970<_Tp> &&
- requires(_Tp&& __t) {
- bool(__t.empty());
- };
-
- template<class _Tp>
- concept __can_invoke_size =
- !__member_empty<_Tp> &&
- requires(_Tp&& __t) { ranges::size(__t); };
-
- template <class _Tp>
- concept __can_compare_begin_end =
- !__member_empty<_Tp> &&
- !__can_invoke_size<_Tp> &&
- requires(_Tp&& __t) {
- bool(ranges::begin(__t) == ranges::end(__t));
- { ranges::begin(__t) } -> forward_iterator;
- };
-
- struct __fn {
- template <__member_empty _Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool operator()(_Tp&& __t) const
- noexcept(noexcept(bool(__t.empty()))) {
- return bool(__t.empty());
- }
-
- template <__can_invoke_size _Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::size(__t))) {
- return ranges::size(__t) == 0;
- }
-
- template<__can_compare_begin_end _Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool operator()(_Tp&& __t) const
- noexcept(noexcept(bool(ranges::begin(__t) == ranges::end(__t)))) {
- return ranges::begin(__t) == ranges::end(__t);
- }
- };
-} // namespace __empty
-
-inline namespace __cpo {
- inline constexpr auto empty = __empty::__fn{};
-} // namespace __cpo
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_EMPTY_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/empty_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/empty_view.h
deleted file mode 100644
index 232b0b8fadf..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/empty_view.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_EMPTY_VIEW_H
-#define _LIBCPP___RANGES_EMPTY_VIEW_H
-
-#include <__config>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/view_interface.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<class _Tp>
- requires is_object_v<_Tp>
- class empty_view : public view_interface<empty_view<_Tp>> {
- public:
- _LIBCPP_HIDE_FROM_ABI static constexpr _Tp* begin() noexcept { return nullptr; }
- _LIBCPP_HIDE_FROM_ABI static constexpr _Tp* end() noexcept { return nullptr; }
- _LIBCPP_HIDE_FROM_ABI static constexpr _Tp* data() noexcept { return nullptr; }
- _LIBCPP_HIDE_FROM_ABI static constexpr size_t size() noexcept { return 0; }
- _LIBCPP_HIDE_FROM_ABI static constexpr bool empty() noexcept { return true; }
- };
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<empty_view<_Tp>> = true;
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_EMPTY_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/iota_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/iota_view.h
deleted file mode 100644
index 2fbc6077895..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/iota_view.h
+++ /dev/null
@@ -1,408 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_IOTA_VIEW_H
-#define _LIBCPP___RANGES_IOTA_VIEW_H
-
-#include <__compare/three_way_comparable.h>
-#include <__concepts/arithmetic.h>
-#include <__concepts/constructible.h>
-#include <__concepts/convertible_to.h>
-#include <__concepts/copyable.h>
-#include <__concepts/equality_comparable.h>
-#include <__concepts/invocable.h>
-#include <__concepts/same_as.h>
-#include <__concepts/semiregular.h>
-#include <__concepts/totally_ordered.h>
-#include <__config>
-#include <__debug>
-#include <__functional/ranges_operations.h>
-#include <__iterator/concepts.h>
-#include <__iterator/incrementable_traits.h>
-#include <__iterator/iterator_traits.h>
-#include <__iterator/unreachable_sentinel.h>
-#include <__ranges/copyable_box.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<class _Int>
- struct __get_wider_signed {
- static auto __call() {
- if constexpr (sizeof(_Int) < sizeof(short)) return type_identity<short>{};
- else if constexpr (sizeof(_Int) < sizeof(int)) return type_identity<int>{};
- else if constexpr (sizeof(_Int) < sizeof(long)) return type_identity<long>{};
- else return type_identity<long long>{};
-
- static_assert(sizeof(_Int) <= sizeof(long long),
- "Found integer-like type that is bigger than largest integer like type.");
- }
-
- using type = typename decltype(__call())::type;
- };
-
- template<class _Start>
- using _IotaDiffT = typename _If<
- (!integral<_Start> || sizeof(iter_difference_t<_Start>) > sizeof(_Start)),
- type_identity<iter_difference_t<_Start>>,
- __get_wider_signed<_Start>
- >::type;
-
- template<class _Iter>
- concept __decrementable = incrementable<_Iter> && requires(_Iter __i) {
- { --__i } -> same_as<_Iter&>;
- { __i-- } -> same_as<_Iter>;
- };
-
- template<class _Iter>
- concept __advanceable =
- __decrementable<_Iter> && totally_ordered<_Iter> &&
- requires(_Iter __i, const _Iter __j, const _IotaDiffT<_Iter> __n) {
- { __i += __n } -> same_as<_Iter&>;
- { __i -= __n } -> same_as<_Iter&>;
- _Iter(__j + __n);
- _Iter(__n + __j);
- _Iter(__j - __n);
- { __j - __j } -> convertible_to<_IotaDiffT<_Iter>>;
- };
-
- template<class>
- struct __iota_iterator_category {};
-
- template<incrementable _Tp>
- struct __iota_iterator_category<_Tp> {
- using iterator_category = input_iterator_tag;
- };
-
- template<weakly_incrementable _Start, semiregular _Bound = unreachable_sentinel_t>
- requires __weakly_equality_comparable_with<_Start, _Bound> && copyable<_Start>
- class iota_view : public view_interface<iota_view<_Start, _Bound>> {
- struct __iterator : public __iota_iterator_category<_Start> {
- friend class iota_view;
-
- using iterator_concept =
- _If<__advanceable<_Start>, random_access_iterator_tag,
- _If<__decrementable<_Start>, bidirectional_iterator_tag,
- _If<incrementable<_Start>, forward_iterator_tag,
- /*Else*/ input_iterator_tag>>>;
-
- using value_type = _Start;
- using difference_type = _IotaDiffT<_Start>;
-
- _Start __value_ = _Start();
-
- _LIBCPP_HIDE_FROM_ABI
- __iterator() requires default_initializable<_Start> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __iterator(_Start __value) : __value_(std::move(__value)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Start operator*() const noexcept(is_nothrow_copy_constructible_v<_Start>) {
- return __value_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator++() {
- ++__value_;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr void operator++(int) { ++*this; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator++(int) requires incrementable<_Start> {
- auto __tmp = *this;
- ++*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator--() requires __decrementable<_Start> {
- --__value_;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator--(int) requires __decrementable<_Start> {
- auto __tmp = *this;
- --*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator+=(difference_type __n)
- requires __advanceable<_Start>
- {
- if constexpr (__integer_like<_Start> && !__signed_integer_like<_Start>) {
- if (__n >= difference_type(0)) {
- __value_ += static_cast<_Start>(__n);
- } else {
- __value_ -= static_cast<_Start>(-__n);
- }
- } else {
- __value_ += __n;
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator-=(difference_type __n)
- requires __advanceable<_Start>
- {
- if constexpr (__integer_like<_Start> && !__signed_integer_like<_Start>) {
- if (__n >= difference_type(0)) {
- __value_ -= static_cast<_Start>(__n);
- } else {
- __value_ += static_cast<_Start>(-__n);
- }
- } else {
- __value_ -= __n;
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Start operator[](difference_type __n) const
- requires __advanceable<_Start>
- {
- return _Start(__value_ + __n);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator& __x, const __iterator& __y)
- requires equality_comparable<_Start>
- {
- return __x.__value_ == __y.__value_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator<(const __iterator& __x, const __iterator& __y)
- requires totally_ordered<_Start>
- {
- return __x.__value_ < __y.__value_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator>(const __iterator& __x, const __iterator& __y)
- requires totally_ordered<_Start>
- {
- return __y < __x;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator<=(const __iterator& __x, const __iterator& __y)
- requires totally_ordered<_Start>
- {
- return !(__y < __x);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator>=(const __iterator& __x, const __iterator& __y)
- requires totally_ordered<_Start>
- {
- return !(__x < __y);
- }
-
- friend constexpr auto operator<=>(const __iterator& __x, const __iterator& __y)
- requires totally_ordered<_Start> && three_way_comparable<_Start>
- {
- return __x.__value_ <=> __y.__value_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator+(__iterator __i, difference_type __n)
- requires __advanceable<_Start>
- {
- __i += __n;
- return __i;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator+(difference_type __n, __iterator __i)
- requires __advanceable<_Start>
- {
- return __i + __n;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator-(__iterator __i, difference_type __n)
- requires __advanceable<_Start>
- {
- __i -= __n;
- return __i;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr difference_type operator-(const __iterator& __x, const __iterator& __y)
- requires __advanceable<_Start>
- {
- if constexpr (__integer_like<_Start>) {
- if constexpr (__signed_integer_like<_Start>) {
- return difference_type(difference_type(__x.__value_) - difference_type(__y.__value_));
- }
- if (__y.__value_ > __x.__value_) {
- return difference_type(-difference_type(__y.__value_ - __x.__value_));
- }
- return difference_type(__x.__value_ - __y.__value_);
- }
- return __x.__value_ - __y.__value_;
- }
- };
-
- struct __sentinel {
- friend class iota_view;
-
- private:
- _Bound __bound_ = _Bound();
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- __sentinel() = default;
- constexpr explicit __sentinel(_Bound __bound) : __bound_(std::move(__bound)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator& __x, const __sentinel& __y) {
- return __x.__value_ == __y.__bound_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr iter_difference_t<_Start> operator-(const __iterator& __x, const __sentinel& __y)
- requires sized_sentinel_for<_Bound, _Start>
- {
- return __x.__value_ - __y.__bound_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr iter_difference_t<_Start> operator-(const __sentinel& __x, const __iterator& __y)
- requires sized_sentinel_for<_Bound, _Start>
- {
- return -(__y - __x);
- }
- };
-
- _Start __value_ = _Start();
- _Bound __bound_ = _Bound();
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- iota_view() requires default_initializable<_Start> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit iota_view(_Start __value) : __value_(std::move(__value)) { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr iota_view(type_identity_t<_Start> __value, type_identity_t<_Bound> __bound)
- : __value_(std::move(__value)), __bound_(std::move(__bound)) {
- // Validate the precondition if possible.
- if constexpr (totally_ordered_with<_Start, _Bound>) {
- _LIBCPP_ASSERT(ranges::less_equal()(__value_, __bound_),
- "Precondition violated: value is greater than bound.");
- }
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr iota_view(__iterator __first, __iterator __last)
- requires same_as<_Start, _Bound>
- : iota_view(std::move(__first.__value_), std::move(__last.__value_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr iota_view(__iterator __first, _Bound __last)
- requires same_as<_Bound, unreachable_sentinel_t>
- : iota_view(std::move(__first.__value_), std::move(__last)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr iota_view(__iterator __first, __sentinel __last)
- requires (!same_as<_Start, _Bound> && !same_as<_Start, unreachable_sentinel_t>)
- : iota_view(std::move(__first.__value_), std::move(__last.__bound_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator begin() const { return __iterator{__value_}; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const {
- if constexpr (same_as<_Bound, unreachable_sentinel_t>)
- return unreachable_sentinel;
- else
- return __sentinel{__bound_};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator end() const requires same_as<_Start, _Bound> {
- return __iterator{__bound_};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const
- requires (same_as<_Start, _Bound> && __advanceable<_Start>) ||
- (integral<_Start> && integral<_Bound>) ||
- sized_sentinel_for<_Bound, _Start>
- {
- if constexpr (__integer_like<_Start> && __integer_like<_Bound>) {
- if (__value_ < 0) {
- if (__bound_ < 0) {
- return std::__to_unsigned_like(-__value_) - std::__to_unsigned_like(-__bound_);
- }
- return std::__to_unsigned_like(__bound_) + std::__to_unsigned_like(-__value_);
- }
- return std::__to_unsigned_like(__bound_) - std::__to_unsigned_like(__value_);
- }
- return std::__to_unsigned_like(__bound_ - __value_);
- }
- };
-
- template<class _Start, class _Bound>
- requires (!__integer_like<_Start> || !__integer_like<_Bound> ||
- (__signed_integer_like<_Start> == __signed_integer_like<_Bound>))
- iota_view(_Start, _Bound) -> iota_view<_Start, _Bound>;
-
- template<class _Start, class _Bound>
- inline constexpr bool enable_borrowed_range<iota_view<_Start, _Bound>> = true;
-
-namespace views {
-namespace __iota {
- struct __fn {
- template<class _Start>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Start&& __start) const
- noexcept(noexcept(ranges::iota_view(std::forward<_Start>(__start))))
- -> decltype( ranges::iota_view(std::forward<_Start>(__start)))
- { return ranges::iota_view(std::forward<_Start>(__start)); }
-
- template<class _Start, class _Bound>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Start&& __start, _Bound&& __bound) const
- noexcept(noexcept(ranges::iota_view(std::forward<_Start>(__start), std::forward<_Bound>(__bound))))
- -> decltype( ranges::iota_view(std::forward<_Start>(__start), std::forward<_Bound>(__bound)))
- { return ranges::iota_view(std::forward<_Start>(__start), std::forward<_Bound>(__bound)); }
- };
-} // namespace __iota
-
-inline namespace __cpo {
- inline constexpr auto iota = __iota::__fn{};
-} // namespace __cpo
-} // namespace views
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_IOTA_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/join_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/join_view.h
deleted file mode 100644
index 18180984d19..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/join_view.h
+++ /dev/null
@@ -1,350 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_JOIN_VIEW_H
-#define _LIBCPP___RANGES_JOIN_VIEW_H
-
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/iterator_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/non_propagating_cache.h>
-#include <__ranges/ref_view.h>
-#include <__ranges/subrange.h>
-#include <__ranges/view_interface.h>
-#include <__utility/declval.h>
-#include <__utility/forward.h>
-#include <optional>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<class>
- struct __join_view_iterator_category {};
-
- template<class _View>
- requires is_reference_v<range_reference_t<_View>> &&
- forward_range<_View> &&
- forward_range<range_reference_t<_View>>
- struct __join_view_iterator_category<_View> {
- using _OuterC = typename iterator_traits<iterator_t<_View>>::iterator_category;
- using _InnerC = typename iterator_traits<iterator_t<range_reference_t<_View>>>::iterator_category;
-
- using iterator_category = _If<
- derived_from<_OuterC, bidirectional_iterator_tag> && derived_from<_InnerC, bidirectional_iterator_tag>,
- bidirectional_iterator_tag,
- _If<
- derived_from<_OuterC, forward_iterator_tag> && derived_from<_InnerC, forward_iterator_tag>,
- forward_iterator_tag,
- input_iterator_tag
- >
- >;
- };
-
- template<input_range _View>
- requires view<_View> && input_range<range_reference_t<_View>>
- class join_view
- : public view_interface<join_view<_View>> {
- private:
- using _InnerRange = range_reference_t<_View>;
-
- template<bool> struct __iterator;
- template<bool> struct __sentinel;
-
- static constexpr bool _UseCache = !is_reference_v<_InnerRange>;
- using _Cache = _If<_UseCache, __non_propagating_cache<remove_cvref_t<_InnerRange>>, __empty_cache>;
- _LIBCPP_NO_UNIQUE_ADDRESS _Cache __cache_;
- _LIBCPP_NO_UNIQUE_ADDRESS _View __base_ = _View();
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- join_view() requires default_initializable<_View> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit join_view(_View __base)
- : __base_(std::move(__base)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() {
- constexpr bool __use_const = __simple_view<_View> &&
- is_reference_v<range_reference_t<_View>>;
- return __iterator<__use_const>{*this, ranges::begin(__base_)};
- }
-
- template<class _V2 = _View>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() const
- requires input_range<const _V2> &&
- is_reference_v<range_reference_t<const _V2>>
- {
- return __iterator<true>{*this, ranges::begin(__base_)};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() {
- if constexpr (forward_range<_View> &&
- is_reference_v<_InnerRange> &&
- forward_range<_InnerRange> &&
- common_range<_View> &&
- common_range<_InnerRange>)
- return __iterator<__simple_view<_View>>{*this, ranges::end(__base_)};
- else
- return __sentinel<__simple_view<_View>>{*this};
- }
-
- template<class _V2 = _View>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const
- requires input_range<const _V2> &&
- is_reference_v<range_reference_t<const _V2>>
- {
- using _ConstInnerRange = range_reference_t<const _View>;
- if constexpr (forward_range<const _View> &&
- is_reference_v<_ConstInnerRange> &&
- forward_range<_ConstInnerRange> &&
- common_range<const _View> &&
- common_range<_ConstInnerRange>) {
- return __iterator<true>{*this, ranges::end(__base_)};
- } else {
- return __sentinel<true>{*this};
- }
- }
- };
-
- template<input_range _View>
- requires view<_View> && input_range<range_reference_t<_View>>
- template<bool _Const> struct join_view<_View>::__sentinel {
- template<bool> friend struct __sentinel;
-
- private:
- using _Parent = __maybe_const<_Const, join_view>;
- using _Base = __maybe_const<_Const, _View>;
- sentinel_t<_Base> __end_ = sentinel_t<_Base>();
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- __sentinel() = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __sentinel(_Parent& __parent)
- : __end_(ranges::end(__parent.__base_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __sentinel(__sentinel<!_Const> __s)
- requires _Const && convertible_to<sentinel_t<_View>, sentinel_t<_Base>>
- : __end_(std::move(__s.__end_)) {}
-
- template<bool _OtherConst>
- requires sentinel_for<sentinel_t<_Base>, iterator_t<__maybe_const<_OtherConst, _View>>>
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator<_OtherConst>& __x, const __sentinel& __y) {
- return __x.__outer_ == __y.__end_;
- }
- };
-
- template<input_range _View>
- requires view<_View> && input_range<range_reference_t<_View>>
- template<bool _Const> struct join_view<_View>::__iterator
- : public __join_view_iterator_category<__maybe_const<_Const, _View>> {
-
- template<bool> friend struct __iterator;
-
- private:
- using _Parent = __maybe_const<_Const, join_view>;
- using _Base = __maybe_const<_Const, _View>;
- using _Outer = iterator_t<_Base>;
- using _Inner = iterator_t<range_reference_t<_Base>>;
-
- static constexpr bool __ref_is_glvalue = is_reference_v<range_reference_t<_Base>>;
-
- public:
- _Outer __outer_ = _Outer();
-
- private:
- optional<_Inner> __inner_;
- _Parent *__parent_ = nullptr;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr void __satisfy() {
- for (; __outer_ != ranges::end(__parent_->__base_); ++__outer_) {
- auto&& __inner = [&]() -> auto&& {
- if constexpr (__ref_is_glvalue)
- return *__outer_;
- else
- return __parent_->__cache_.__emplace_from([&]() -> decltype(auto) { return *__outer_; });
- }();
- __inner_ = ranges::begin(__inner);
- if (*__inner_ != ranges::end(__inner))
- return;
- }
-
- if constexpr (__ref_is_glvalue)
- __inner_.reset();
- }
-
- public:
- using iterator_concept = _If<
- __ref_is_glvalue && bidirectional_range<_Base> && bidirectional_range<range_reference_t<_Base>>,
- bidirectional_iterator_tag,
- _If<
- __ref_is_glvalue && forward_range<_Base> && forward_range<range_reference_t<_Base>>,
- forward_iterator_tag,
- input_iterator_tag
- >
- >;
-
- using value_type = range_value_t<range_reference_t<_Base>>;
-
- using difference_type = common_type_t<
- range_difference_t<_Base>, range_difference_t<range_reference_t<_Base>>>;
-
- _LIBCPP_HIDE_FROM_ABI
- __iterator() requires default_initializable<_Outer> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator(_Parent& __parent, _Outer __outer)
- : __outer_(std::move(__outer))
- , __parent_(std::addressof(__parent)) {
- __satisfy();
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator(__iterator<!_Const> __i)
- requires _Const &&
- convertible_to<iterator_t<_View>, _Outer> &&
- convertible_to<iterator_t<_InnerRange>, _Inner>
- : __outer_(std::move(__i.__outer_))
- , __inner_(std::move(__i.__inner_))
- , __parent_(__i.__parent_) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) operator*() const {
- return **__inner_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Inner operator->() const
- requires __has_arrow<_Inner> && copyable<_Inner>
- {
- return *__inner_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator++() {
- auto&& __inner = [&]() -> auto&& {
- if constexpr (__ref_is_glvalue)
- return *__outer_;
- else
- return *__parent_->__cache_;
- }();
- if (++*__inner_ == ranges::end(__inner)) {
- ++__outer_;
- __satisfy();
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr void operator++(int) {
- ++*this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator++(int)
- requires __ref_is_glvalue &&
- forward_range<_Base> &&
- forward_range<range_reference_t<_Base>>
- {
- auto __tmp = *this;
- ++*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator--()
- requires __ref_is_glvalue &&
- bidirectional_range<_Base> &&
- bidirectional_range<range_reference_t<_Base>> &&
- common_range<range_reference_t<_Base>>
- {
- if (__outer_ == ranges::end(__parent_->__base_))
- __inner_ = ranges::end(*--__outer_);
-
- // Skip empty inner ranges when going backwards.
- while (*__inner_ == ranges::begin(*__outer_)) {
- __inner_ = ranges::end(*--__outer_);
- }
-
- --*__inner_;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator--(int)
- requires __ref_is_glvalue &&
- bidirectional_range<_Base> &&
- bidirectional_range<range_reference_t<_Base>> &&
- common_range<range_reference_t<_Base>>
- {
- auto __tmp = *this;
- --*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator& __x, const __iterator& __y)
- requires __ref_is_glvalue &&
- equality_comparable<iterator_t<_Base>> &&
- equality_comparable<iterator_t<range_reference_t<_Base>>>
- {
- return __x.__outer_ == __y.__outer_ && __x.__inner_ == __y.__inner_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr decltype(auto) iter_move(const __iterator& __i)
- noexcept(noexcept(ranges::iter_move(*__i.__inner_)))
- {
- return ranges::iter_move(*__i.__inner_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr void iter_swap(const __iterator& __x, const __iterator& __y)
- noexcept(noexcept(ranges::iter_swap(*__x.__inner_, *__y.__inner_)))
- requires indirectly_swappable<_Inner>
- {
- return ranges::iter_swap(*__x.__inner_, *__y.__inner_);
- }
- };
-
- template<class _Range>
- explicit join_view(_Range&&) -> join_view<views::all_t<_Range>>;
-
-} // namespace ranges
-
-#undef _CONSTEXPR_TERNARY
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_JOIN_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/non_propagating_cache.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/non_propagating_cache.h
deleted file mode 100644
index 30fcd9f11ed..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/non_propagating_cache.h
+++ /dev/null
@@ -1,114 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_NON_PROPAGATING_CACHE_H
-#define _LIBCPP___RANGES_NON_PROPAGATING_CACHE_H
-
-#include <__config>
-#include <__iterator/concepts.h> // indirectly_readable
-#include <__iterator/iterator_traits.h> // iter_reference_t
-#include <__memory/addressof.h>
-#include <__utility/forward.h>
-#include <concepts> // constructible_from
-#include <optional>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- // __non_propagating_cache is a helper type that allows storing an optional value in it,
- // but which does not copy the source's value when it is copy constructed/assigned to,
- // and which resets the source's value when it is moved-from.
- //
- // This type is used as an implementation detail of some views that need to cache the
- // result of `begin()` in order to provide an amortized O(1) begin() method. Typically,
- // we don't want to propagate the value of the cache upon copy because the cached iterator
- // may refer to internal details of the source view.
- template<class _Tp>
- requires is_object_v<_Tp>
- class _LIBCPP_TEMPLATE_VIS __non_propagating_cache {
- struct __from_tag { };
- struct __forward_tag { };
-
- // This helper class is needed to perform copy and move elision when
- // constructing the contained type from an iterator.
- struct __wrapper {
- template<class ..._Args>
- constexpr explicit __wrapper(__forward_tag, _Args&& ...__args) : __t_(std::forward<_Args>(__args)...) { }
- template<class _Fn>
- constexpr explicit __wrapper(__from_tag, _Fn const& __f) : __t_(__f()) { }
- _Tp __t_;
- };
-
- optional<__wrapper> __value_ = nullopt;
-
- public:
- _LIBCPP_HIDE_FROM_ABI __non_propagating_cache() = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __non_propagating_cache(__non_propagating_cache const&) noexcept
- : __value_(nullopt)
- { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __non_propagating_cache(__non_propagating_cache&& __other) noexcept
- : __value_(nullopt)
- {
- __other.__value_.reset();
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __non_propagating_cache& operator=(__non_propagating_cache const& __other) noexcept {
- if (this != std::addressof(__other)) {
- __value_.reset();
- }
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __non_propagating_cache& operator=(__non_propagating_cache&& __other) noexcept {
- __value_.reset();
- __other.__value_.reset();
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp& operator*() { return __value_->__t_; }
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp const& operator*() const { return __value_->__t_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr bool __has_value() const { return __value_.has_value(); }
-
- template<class _Fn>
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp& __emplace_from(_Fn const& __f) {
- return __value_.emplace(__from_tag{}, __f).__t_;
- }
-
- template<class ..._Args>
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp& __emplace(_Args&& ...__args) {
- return __value_.emplace(__forward_tag{}, std::forward<_Args>(__args)...).__t_;
- }
- };
-
- struct __empty_cache { };
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_NON_PROPAGATING_CACHE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/owning_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/owning_view.h
deleted file mode 100644
index 322152d7caa..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/owning_view.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_OWNING_VIEW_H
-#define _LIBCPP___RANGES_OWNING_VIEW_H
-
-#include <__concepts/constructible.h>
-#include <__concepts/movable.h>
-#include <__config>
-#include <__ranges/access.h>
-#include <__ranges/concepts.h>
-#include <__ranges/data.h>
-#include <__ranges/empty.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/move.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<range _Rp>
- requires movable<_Rp> && (!__is_std_initializer_list<remove_cvref_t<_Rp>>)
- class owning_view : public view_interface<owning_view<_Rp>> {
- _Rp __r_ = _Rp();
-
-public:
- owning_view() requires default_initializable<_Rp> = default;
- _LIBCPP_HIDE_FROM_ABI constexpr owning_view(_Rp&& __r) : __r_(std::move(__r)) {}
-
- owning_view(owning_view&&) = default;
- owning_view& operator=(owning_view&&) = default;
-
- _LIBCPP_HIDE_FROM_ABI constexpr _Rp& base() & noexcept { return __r_; }
- _LIBCPP_HIDE_FROM_ABI constexpr const _Rp& base() const& noexcept { return __r_; }
- _LIBCPP_HIDE_FROM_ABI constexpr _Rp&& base() && noexcept { return std::move(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr const _Rp&& base() const&& noexcept { return std::move(__r_); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr iterator_t<_Rp> begin() { return ranges::begin(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr sentinel_t<_Rp> end() { return ranges::end(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr auto begin() const requires range<const _Rp> { return ranges::begin(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr auto end() const requires range<const _Rp> { return ranges::end(__r_); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr bool empty() requires requires { ranges::empty(__r_); }
- { return ranges::empty(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr bool empty() const requires requires { ranges::empty(__r_); }
- { return ranges::empty(__r_); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr auto size() requires sized_range<_Rp>
- { return ranges::size(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr auto size() const requires sized_range<const _Rp>
- { return ranges::size(__r_); }
-
- _LIBCPP_HIDE_FROM_ABI constexpr auto data() requires contiguous_range<_Rp>
- { return ranges::data(__r_); }
- _LIBCPP_HIDE_FROM_ABI constexpr auto data() const requires contiguous_range<const _Rp>
- { return ranges::data(__r_); }
- };
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<owning_view<_Tp>> = enable_borrowed_range<_Tp>;
-
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_OWNING_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/range_adaptor.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/range_adaptor.h
deleted file mode 100644
index 9b456b18f04..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/range_adaptor.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___RANGES_RANGE_ADAPTOR_H
-#define _LIBCPP___RANGES_RANGE_ADAPTOR_H
-
-#include <__config>
-#include <__functional/compose.h>
-#include <__functional/invoke.h>
-#include <__ranges/concepts.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-// CRTP base that one can derive from in order to be considered a range adaptor closure
-// by the library. When deriving from this class, a pipe operator will be provided to
-// make the following hold:
-// - `x | f` is equivalent to `f(x)`
-// - `f1 | f2` is an adaptor closure `g` such that `g(x)` is equivalent to `f2(f1(x))`
-template <class _Tp>
-struct __range_adaptor_closure;
-
-// Type that wraps an arbitrary function object and makes it into a range adaptor closure,
-// i.e. something that can be called via the `x | f` notation.
-template <class _Fn>
-struct __range_adaptor_closure_t : _Fn, __range_adaptor_closure<__range_adaptor_closure_t<_Fn>> {
- constexpr explicit __range_adaptor_closure_t(_Fn&& __f) : _Fn(std::move(__f)) { }
-};
-
-template <class _Tp>
-concept _RangeAdaptorClosure = derived_from<remove_cvref_t<_Tp>, __range_adaptor_closure<remove_cvref_t<_Tp>>>;
-
-template <class _Tp>
-struct __range_adaptor_closure {
- template <ranges::viewable_range _View, _RangeAdaptorClosure _Closure>
- requires same_as<_Tp, remove_cvref_t<_Closure>> &&
- invocable<_Closure, _View>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- friend constexpr decltype(auto) operator|(_View&& __view, _Closure&& __closure)
- noexcept(is_nothrow_invocable_v<_Closure, _View>)
- { return std::invoke(std::forward<_Closure>(__closure), std::forward<_View>(__view)); }
-
- template <_RangeAdaptorClosure _Closure, _RangeAdaptorClosure _OtherClosure>
- requires same_as<_Tp, remove_cvref_t<_Closure>> &&
- constructible_from<decay_t<_Closure>, _Closure> &&
- constructible_from<decay_t<_OtherClosure>, _OtherClosure>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- friend constexpr auto operator|(_Closure&& __c1, _OtherClosure&& __c2)
- noexcept(is_nothrow_constructible_v<decay_t<_Closure>, _Closure> &&
- is_nothrow_constructible_v<decay_t<_OtherClosure>, _OtherClosure>)
- { return __range_adaptor_closure_t(std::__compose(std::forward<_OtherClosure>(__c2), std::forward<_Closure>(__c1))); }
-};
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_RANGE_ADAPTOR_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/rbegin.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/rbegin.h
deleted file mode 100644
index cc4c0582cc2..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/rbegin.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_RBEGIN_H
-#define _LIBCPP___RANGES_RBEGIN_H
-
-#include <__concepts/class_or_enum.h>
-#include <__concepts/same_as.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/readable_traits.h>
-#include <__iterator/reverse_iterator.h>
-#include <__ranges/access.h>
-#include <__utility/auto_cast.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-// [ranges.access.rbegin]
-
-namespace ranges {
-namespace __rbegin {
-template <class _Tp>
-concept __member_rbegin =
- __can_borrow<_Tp> &&
- __workaround_52970<_Tp> &&
- requires(_Tp&& __t) {
- { _LIBCPP_AUTO_CAST(__t.rbegin()) } -> input_or_output_iterator;
- };
-
-void rbegin(auto&) = delete;
-void rbegin(const auto&) = delete;
-
-template <class _Tp>
-concept __unqualified_rbegin =
- !__member_rbegin<_Tp> &&
- __can_borrow<_Tp> &&
- __class_or_enum<remove_cvref_t<_Tp>> &&
- requires(_Tp&& __t) {
- { _LIBCPP_AUTO_CAST(rbegin(__t)) } -> input_or_output_iterator;
- };
-
-template <class _Tp>
-concept __can_reverse =
- __can_borrow<_Tp> &&
- !__member_rbegin<_Tp> &&
- !__unqualified_rbegin<_Tp> &&
- requires(_Tp&& __t) {
- { ranges::begin(__t) } -> same_as<decltype(ranges::end(__t))>;
- { ranges::begin(__t) } -> bidirectional_iterator;
- };
-
-struct __fn {
- template <class _Tp>
- requires __member_rbegin<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.rbegin())))
- {
- return _LIBCPP_AUTO_CAST(__t.rbegin());
- }
-
- template <class _Tp>
- requires __unqualified_rbegin<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(_LIBCPP_AUTO_CAST(rbegin(__t))))
- {
- return _LIBCPP_AUTO_CAST(rbegin(__t));
- }
-
- template <class _Tp>
- requires __can_reverse<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::end(__t)))
- {
- return std::make_reverse_iterator(ranges::end(__t));
- }
-
- void operator()(auto&&) const = delete;
-};
-} // namespace __rbegin
-
-inline namespace __cpo {
- inline constexpr auto rbegin = __rbegin::__fn{};
-} // namespace __cpo
-} // namespace ranges
-
-// [range.access.crbegin]
-
-namespace ranges {
-namespace __crbegin {
-struct __fn {
- template <class _Tp>
- requires is_lvalue_reference_v<_Tp&&>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::rbegin(static_cast<const remove_reference_t<_Tp>&>(__t))))
- -> decltype( ranges::rbegin(static_cast<const remove_reference_t<_Tp>&>(__t)))
- { return ranges::rbegin(static_cast<const remove_reference_t<_Tp>&>(__t)); }
-
- template <class _Tp>
- requires is_rvalue_reference_v<_Tp&&>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::rbegin(static_cast<const _Tp&&>(__t))))
- -> decltype( ranges::rbegin(static_cast<const _Tp&&>(__t)))
- { return ranges::rbegin(static_cast<const _Tp&&>(__t)); }
-};
-} // namespace __crbegin
-
-inline namespace __cpo {
- inline constexpr auto crbegin = __crbegin::__fn{};
-} // namespace __cpo
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_RBEGIN_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/ref_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/ref_view.h
deleted file mode 100644
index 90fb5c18326..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/ref_view.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_REF_VIEW_H
-#define _LIBCPP___RANGES_REF_VIEW_H
-
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/incrementable_traits.h>
-#include <__iterator/iterator_traits.h>
-#include <__memory/addressof.h>
-#include <__ranges/access.h>
-#include <__ranges/concepts.h>
-#include <__ranges/data.h>
-#include <__ranges/empty.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<range _Range>
- requires is_object_v<_Range>
- class ref_view : public view_interface<ref_view<_Range>> {
- _Range *__range_;
-
- static void __fun(_Range&);
- static void __fun(_Range&&) = delete;
-
-public:
- template<class _Tp>
- requires __different_from<_Tp, ref_view> &&
- convertible_to<_Tp, _Range&> && requires { __fun(declval<_Tp>()); }
- _LIBCPP_HIDE_FROM_ABI
- constexpr ref_view(_Tp&& __t)
- : __range_(std::addressof(static_cast<_Range&>(std::forward<_Tp>(__t))))
- {}
-
- _LIBCPP_HIDE_FROM_ABI constexpr _Range& base() const { return *__range_; }
-
- _LIBCPP_HIDE_FROM_ABI constexpr iterator_t<_Range> begin() const { return ranges::begin(*__range_); }
- _LIBCPP_HIDE_FROM_ABI constexpr sentinel_t<_Range> end() const { return ranges::end(*__range_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr bool empty() const
- requires requires { ranges::empty(*__range_); }
- { return ranges::empty(*__range_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const
- requires sized_range<_Range>
- { return ranges::size(*__range_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto data() const
- requires contiguous_range<_Range>
- { return ranges::data(*__range_); }
- };
-
- template<class _Range>
- ref_view(_Range&) -> ref_view<_Range>;
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<ref_view<_Tp>> = true;
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_REF_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/rend.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/rend.h
deleted file mode 100644
index cd7826021d4..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/rend.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_REND_H
-#define _LIBCPP___RANGES_REND_H
-
-#include <__concepts/class_or_enum.h>
-#include <__concepts/same_as.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/readable_traits.h>
-#include <__iterator/reverse_iterator.h>
-#include <__ranges/access.h>
-#include <__ranges/rbegin.h>
-#include <__utility/auto_cast.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-// [range.access.rend]
-
-namespace ranges {
-namespace __rend {
-template <class _Tp>
-concept __member_rend =
- __can_borrow<_Tp> &&
- __workaround_52970<_Tp> &&
- requires(_Tp&& __t) {
- ranges::rbegin(__t);
- { _LIBCPP_AUTO_CAST(__t.rend()) } -> sentinel_for<decltype(ranges::rbegin(__t))>;
- };
-
-void rend(auto&) = delete;
-void rend(const auto&) = delete;
-
-template <class _Tp>
-concept __unqualified_rend =
- !__member_rend<_Tp> &&
- __can_borrow<_Tp> &&
- __class_or_enum<remove_cvref_t<_Tp>> &&
- requires(_Tp&& __t) {
- ranges::rbegin(__t);
- { _LIBCPP_AUTO_CAST(rend(__t)) } -> sentinel_for<decltype(ranges::rbegin(__t))>;
- };
-
-template <class _Tp>
-concept __can_reverse =
- __can_borrow<_Tp> &&
- !__member_rend<_Tp> &&
- !__unqualified_rend<_Tp> &&
- requires(_Tp&& __t) {
- { ranges::begin(__t) } -> same_as<decltype(ranges::end(__t))>;
- { ranges::begin(__t) } -> bidirectional_iterator;
- };
-
-class __fn {
-public:
- template <class _Tp>
- requires __member_rend<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.rend())))
- {
- return _LIBCPP_AUTO_CAST(__t.rend());
- }
-
- template <class _Tp>
- requires __unqualified_rend<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(_LIBCPP_AUTO_CAST(rend(__t))))
- {
- return _LIBCPP_AUTO_CAST(rend(__t));
- }
-
- template <class _Tp>
- requires __can_reverse<_Tp>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::begin(__t)))
- {
- return std::make_reverse_iterator(ranges::begin(__t));
- }
-
- void operator()(auto&&) const = delete;
-};
-} // namespace __rend
-
-inline namespace __cpo {
- inline constexpr auto rend = __rend::__fn{};
-} // namespace __cpo
-} // namespace ranges
-
-// [range.access.crend]
-
-namespace ranges {
-namespace __crend {
-struct __fn {
- template <class _Tp>
- requires is_lvalue_reference_v<_Tp&&>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::rend(static_cast<const remove_reference_t<_Tp>&>(__t))))
- -> decltype( ranges::rend(static_cast<const remove_reference_t<_Tp>&>(__t)))
- { return ranges::rend(static_cast<const remove_reference_t<_Tp>&>(__t)); }
-
- template <class _Tp>
- requires is_rvalue_reference_v<_Tp&&>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Tp&& __t) const
- noexcept(noexcept(ranges::rend(static_cast<const _Tp&&>(__t))))
- -> decltype( ranges::rend(static_cast<const _Tp&&>(__t)))
- { return ranges::rend(static_cast<const _Tp&&>(__t)); }
-};
-} // namespace __crend
-
-inline namespace __cpo {
- inline constexpr auto crend = __crend::__fn{};
-} // namespace __cpo
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_REND_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/reverse_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/reverse_view.h
deleted file mode 100644
index 59b8289a23f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/reverse_view.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_REVERSE_VIEW_H
-#define _LIBCPP___RANGES_REVERSE_VIEW_H
-
-#include <__concepts/constructible.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/next.h>
-#include <__iterator/reverse_iterator.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/non_propagating_cache.h>
-#include <__ranges/range_adaptor.h>
-#include <__ranges/size.h>
-#include <__ranges/subrange.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<view _View>
- requires bidirectional_range<_View>
- class reverse_view : public view_interface<reverse_view<_View>> {
- // We cache begin() whenever ranges::next is not guaranteed O(1) to provide an
- // amortized O(1) begin() method.
- static constexpr bool _UseCache = !random_access_range<_View> && !common_range<_View>;
- using _Cache = _If<_UseCache, __non_propagating_cache<reverse_iterator<iterator_t<_View>>>, __empty_cache>;
- _LIBCPP_NO_UNIQUE_ADDRESS _Cache __cached_begin_ = _Cache();
- _LIBCPP_NO_UNIQUE_ADDRESS _View __base_ = _View();
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- reverse_view() requires default_initializable<_View> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit reverse_view(_View __view) : __base_(std::move(__view)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr reverse_iterator<iterator_t<_View>> begin() {
- if constexpr (_UseCache)
- if (__cached_begin_.__has_value())
- return *__cached_begin_;
-
- auto __tmp = std::make_reverse_iterator(ranges::next(ranges::begin(__base_), ranges::end(__base_)));
- if constexpr (_UseCache)
- __cached_begin_.__emplace(__tmp);
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr reverse_iterator<iterator_t<_View>> begin() requires common_range<_View> {
- return std::make_reverse_iterator(ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() const requires common_range<const _View> {
- return std::make_reverse_iterator(ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr reverse_iterator<iterator_t<_View>> end() {
- return std::make_reverse_iterator(ranges::begin(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const requires common_range<const _View> {
- return std::make_reverse_iterator(ranges::begin(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() requires sized_range<_View> {
- return ranges::size(__base_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const requires sized_range<const _View> {
- return ranges::size(__base_);
- }
- };
-
- template<class _Range>
- reverse_view(_Range&&) -> reverse_view<views::all_t<_Range>>;
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<reverse_view<_Tp>> = enable_borrowed_range<_Tp>;
-
- namespace views {
- namespace __reverse {
- template<class _Tp>
- constexpr bool __is_reverse_view = false;
-
- template<class _Tp>
- constexpr bool __is_reverse_view<reverse_view<_Tp>> = true;
-
- template<class _Tp>
- constexpr bool __is_sized_reverse_subrange = false;
-
- template<class _Iter>
- constexpr bool __is_sized_reverse_subrange<subrange<reverse_iterator<_Iter>, reverse_iterator<_Iter>, subrange_kind::sized>> = true;
-
- template<class _Tp>
- constexpr bool __is_unsized_reverse_subrange = false;
-
- template<class _Iter, subrange_kind _Kind>
- constexpr bool __is_unsized_reverse_subrange<subrange<reverse_iterator<_Iter>, reverse_iterator<_Iter>, _Kind>> = _Kind == subrange_kind::unsized;
-
- template<class _Tp>
- struct __unwrapped_reverse_subrange {
- using type = void; // avoid SFINAE-ing out the overload below -- let the concept requirements do it for better diagnostics
- };
-
- template<class _Iter, subrange_kind _Kind>
- struct __unwrapped_reverse_subrange<subrange<reverse_iterator<_Iter>, reverse_iterator<_Iter>, _Kind>> {
- using type = subrange<_Iter, _Iter, _Kind>;
- };
-
- struct __fn : __range_adaptor_closure<__fn> {
- template<class _Range>
- requires __is_reverse_view<remove_cvref_t<_Range>>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(std::forward<_Range>(__range).base()))
- -> decltype( std::forward<_Range>(__range).base())
- { return std::forward<_Range>(__range).base(); }
-
- template<class _Range,
- class _UnwrappedSubrange = typename __unwrapped_reverse_subrange<remove_cvref_t<_Range>>::type>
- requires __is_sized_reverse_subrange<remove_cvref_t<_Range>>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(_UnwrappedSubrange(__range.end().base(), __range.begin().base(), __range.size())))
- -> decltype( _UnwrappedSubrange(__range.end().base(), __range.begin().base(), __range.size()))
- { return _UnwrappedSubrange(__range.end().base(), __range.begin().base(), __range.size()); }
-
- template<class _Range,
- class _UnwrappedSubrange = typename __unwrapped_reverse_subrange<remove_cvref_t<_Range>>::type>
- requires __is_unsized_reverse_subrange<remove_cvref_t<_Range>>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(_UnwrappedSubrange(__range.end().base(), __range.begin().base())))
- -> decltype( _UnwrappedSubrange(__range.end().base(), __range.begin().base()))
- { return _UnwrappedSubrange(__range.end().base(), __range.begin().base()); }
-
- template<class _Range>
- requires (!__is_reverse_view<remove_cvref_t<_Range>> &&
- !__is_sized_reverse_subrange<remove_cvref_t<_Range>> &&
- !__is_unsized_reverse_subrange<remove_cvref_t<_Range>>)
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range) const
- noexcept(noexcept(reverse_view{std::forward<_Range>(__range)}))
- -> decltype( reverse_view{std::forward<_Range>(__range)})
- { return reverse_view{std::forward<_Range>(__range)}; }
- };
- } // namespace __reverse
-
- inline namespace __cpo {
- inline constexpr auto reverse = __reverse::__fn{};
- } // namespace __cpo
- } // namespace views
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_REVERSE_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/single_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/single_view.h
deleted file mode 100644
index 5347b78da91..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/single_view.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_SINGLE_VIEW_H
-#define _LIBCPP___RANGES_SINGLE_VIEW_H
-
-#include <__config>
-#include <__ranges/copyable_box.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <__utility/in_place.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<copy_constructible _Tp>
- requires is_object_v<_Tp>
- class single_view : public view_interface<single_view<_Tp>> {
- __copyable_box<_Tp> __value_;
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- single_view() requires default_initializable<_Tp> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit single_view(const _Tp& __t) : __value_(in_place, __t) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit single_view(_Tp&& __t) : __value_(in_place, std::move(__t)) {}
-
- template<class... _Args>
- requires constructible_from<_Tp, _Args...>
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit single_view(in_place_t, _Args&&... __args)
- : __value_{in_place, std::forward<_Args>(__args)...} {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp* begin() noexcept { return data(); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr const _Tp* begin() const noexcept { return data(); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp* end() noexcept { return data() + 1; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr const _Tp* end() const noexcept { return data() + 1; }
-
- _LIBCPP_HIDE_FROM_ABI
- static constexpr size_t size() noexcept { return 1; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Tp* data() noexcept { return __value_.operator->(); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr const _Tp* data() const noexcept { return __value_.operator->(); }
- };
-
- template<class _Tp>
- single_view(_Tp) -> single_view<_Tp>;
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_SINGLE_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/subrange.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/subrange.h
deleted file mode 100644
index 4593205aefe..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/subrange.h
+++ /dev/null
@@ -1,289 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_SUBRANGE_H
-#define _LIBCPP___RANGES_SUBRANGE_H
-
-#include <__concepts/constructible.h>
-#include <__concepts/convertible_to.h>
-#include <__concepts/copyable.h>
-#include <__concepts/derived_from.h>
-#include <__concepts/different_from.h>
-#include <__config>
-#include <__debug>
-#include <__iterator/advance.h>
-#include <__iterator/concepts.h>
-#include <__iterator/incrementable_traits.h>
-#include <__iterator/iterator_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/concepts.h>
-#include <__ranges/dangling.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__tuple>
-#include <__utility/move.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<class _From, class _To>
- concept __uses_nonqualification_pointer_conversion =
- is_pointer_v<_From> && is_pointer_v<_To> &&
- !convertible_to<remove_pointer_t<_From>(*)[], remove_pointer_t<_To>(*)[]>;
-
- template<class _From, class _To>
- concept __convertible_to_non_slicing =
- convertible_to<_From, _To> &&
- !__uses_nonqualification_pointer_conversion<decay_t<_From>, decay_t<_To>>;
-
- template<class _Tp>
- concept __pair_like =
- !is_reference_v<_Tp> && requires(_Tp __t) {
- typename tuple_size<_Tp>::type; // Ensures `tuple_size<T>` is complete.
- requires derived_from<tuple_size<_Tp>, integral_constant<size_t, 2>>;
- typename tuple_element_t<0, remove_const_t<_Tp>>;
- typename tuple_element_t<1, remove_const_t<_Tp>>;
- { std::get<0>(__t) } -> convertible_to<const tuple_element_t<0, _Tp>&>;
- { std::get<1>(__t) } -> convertible_to<const tuple_element_t<1, _Tp>&>;
- };
-
- template<class _Pair, class _Iter, class _Sent>
- concept __pair_like_convertible_from =
- !range<_Pair> && __pair_like<_Pair> &&
- constructible_from<_Pair, _Iter, _Sent> &&
- __convertible_to_non_slicing<_Iter, tuple_element_t<0, _Pair>> &&
- convertible_to<_Sent, tuple_element_t<1, _Pair>>;
-
- enum class _LIBCPP_ENUM_VIS subrange_kind : bool { unsized, sized };
-
- template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent = _Iter,
- subrange_kind _Kind = sized_sentinel_for<_Sent, _Iter>
- ? subrange_kind::sized
- : subrange_kind::unsized>
- requires (_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _Iter>)
- class _LIBCPP_TEMPLATE_VIS subrange
- : public view_interface<subrange<_Iter, _Sent, _Kind>>
- {
- private:
- static constexpr bool _StoreSize = (_Kind == subrange_kind::sized && !sized_sentinel_for<_Sent, _Iter>);
- static constexpr bool _MustProvideSizeAtConstruction = !_StoreSize; // just to improve compiler diagnostics
- struct _Empty { constexpr _Empty(auto) noexcept { } };
- using _Size = conditional_t<_StoreSize, make_unsigned_t<iter_difference_t<_Iter>>, _Empty>;
- _LIBCPP_NO_UNIQUE_ADDRESS _Iter __begin_ = _Iter();
- _LIBCPP_NO_UNIQUE_ADDRESS _Sent __end_ = _Sent();
- _LIBCPP_NO_UNIQUE_ADDRESS _Size __size_ = 0;
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- subrange() requires default_initializable<_Iter> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent)
- requires _MustProvideSizeAtConstruction
- : __begin_(std::move(__iter)), __end_(std::move(__sent))
- { }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent,
- make_unsigned_t<iter_difference_t<_Iter>> __n)
- requires (_Kind == subrange_kind::sized)
- : __begin_(std::move(__iter)), __end_(std::move(__sent)), __size_(__n)
- {
- if constexpr (sized_sentinel_for<_Sent, _Iter>)
- _LIBCPP_ASSERT((__end_ - __begin_) == static_cast<iter_difference_t<_Iter>>(__n),
- "std::ranges::subrange was passed an invalid size hint");
- }
-
- template<__different_from<subrange> _Range>
- requires borrowed_range<_Range> &&
- __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
- convertible_to<sentinel_t<_Range>, _Sent>
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange(_Range&& __range)
- requires (!_StoreSize)
- : subrange(ranges::begin(__range), ranges::end(__range))
- { }
-
- template<__different_from<subrange> _Range>
- requires borrowed_range<_Range> &&
- __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
- convertible_to<sentinel_t<_Range>, _Sent>
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange(_Range&& __range)
- requires _StoreSize && sized_range<_Range>
- : subrange(__range, ranges::size(__range))
- { }
-
- template<borrowed_range _Range>
- requires __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
- convertible_to<sentinel_t<_Range>, _Sent>
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange(_Range&& __range, make_unsigned_t<iter_difference_t<_Iter>> __n)
- requires (_Kind == subrange_kind::sized)
- : subrange(ranges::begin(__range), ranges::end(__range), __n)
- { }
-
- template<__different_from<subrange> _Pair>
- requires __pair_like_convertible_from<_Pair, const _Iter&, const _Sent&>
- _LIBCPP_HIDE_FROM_ABI
- constexpr operator _Pair() const {
- return _Pair(__begin_, __end_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Iter begin() const requires copyable<_Iter> {
- return __begin_;
- }
-
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr _Iter begin() requires (!copyable<_Iter>) {
- return std::move(__begin_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Sent end() const {
- return __end_;
- }
-
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool empty() const {
- return __begin_ == __end_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr make_unsigned_t<iter_difference_t<_Iter>> size() const
- requires (_Kind == subrange_kind::sized)
- {
- if constexpr (_StoreSize)
- return __size_;
- else
- return std::__to_unsigned_like(__end_ - __begin_);
- }
-
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) const&
- requires forward_iterator<_Iter>
- {
- auto __tmp = *this;
- __tmp.advance(__n);
- return __tmp;
- }
-
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange next(iter_difference_t<_Iter> __n = 1) && {
- advance(__n);
- return std::move(*this);
- }
-
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr subrange prev(iter_difference_t<_Iter> __n = 1) const
- requires bidirectional_iterator<_Iter>
- {
- auto __tmp = *this;
- __tmp.advance(-__n);
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr subrange& advance(iter_difference_t<_Iter> __n) {
- if constexpr (bidirectional_iterator<_Iter>) {
- if (__n < 0) {
- ranges::advance(__begin_, __n);
- if constexpr (_StoreSize)
- __size_ += std::__to_unsigned_like(-__n);
- return *this;
- }
- }
-
- auto __d = __n - ranges::advance(__begin_, __n, __end_);
- if constexpr (_StoreSize)
- __size_ -= std::__to_unsigned_like(__d);
- return *this;
- }
- };
-
- template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
- subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>;
-
- template<input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
- subrange(_Iter, _Sent, make_unsigned_t<iter_difference_t<_Iter>>)
- -> subrange<_Iter, _Sent, subrange_kind::sized>;
-
- template<borrowed_range _Range>
- subrange(_Range&&) -> subrange<iterator_t<_Range>, sentinel_t<_Range>,
- (sized_range<_Range> || sized_sentinel_for<sentinel_t<_Range>, iterator_t<_Range>>)
- ? subrange_kind::sized : subrange_kind::unsized>;
-
- template<borrowed_range _Range>
- subrange(_Range&&, make_unsigned_t<range_difference_t<_Range>>)
- -> subrange<iterator_t<_Range>, sentinel_t<_Range>, subrange_kind::sized>;
-
- template<size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
- requires ((_Index == 0 && copyable<_Iter>) || _Index == 1)
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange) {
- if constexpr (_Index == 0)
- return __subrange.begin();
- else
- return __subrange.end();
- }
-
- template<size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
- requires (_Index < 2)
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange) {
- if constexpr (_Index == 0)
- return __subrange.begin();
- else
- return __subrange.end();
- }
-
- template<class _Ip, class _Sp, subrange_kind _Kp>
- inline constexpr bool enable_borrowed_range<subrange<_Ip, _Sp, _Kp>> = true;
-
- template<range _Rp>
- using borrowed_subrange_t = _If<borrowed_range<_Rp>, subrange<iterator_t<_Rp>>, dangling>;
-} // namespace ranges
-
-// [range.subrange.general]
-
-using ranges::get;
-
-// [ranges.syn]
-
-template<class _Ip, class _Sp, ranges::subrange_kind _Kp>
-struct tuple_size<ranges::subrange<_Ip, _Sp, _Kp>> : integral_constant<size_t, 2> {};
-
-template<class _Ip, class _Sp, ranges::subrange_kind _Kp>
-struct tuple_element<0, ranges::subrange<_Ip, _Sp, _Kp>> {
- using type = _Ip;
-};
-
-template<class _Ip, class _Sp, ranges::subrange_kind _Kp>
-struct tuple_element<1, ranges::subrange<_Ip, _Sp, _Kp>> {
- using type = _Sp;
-};
-
-template<class _Ip, class _Sp, ranges::subrange_kind _Kp>
-struct tuple_element<0, const ranges::subrange<_Ip, _Sp, _Kp>> {
- using type = _Ip;
-};
-
-template<class _Ip, class _Sp, ranges::subrange_kind _Kp>
-struct tuple_element<1, const ranges::subrange<_Ip, _Sp, _Kp>> {
- using type = _Sp;
-};
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_SUBRANGE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/take_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/take_view.h
deleted file mode 100644
index 0b0f9c3744f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/take_view.h
+++ /dev/null
@@ -1,185 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_TAKE_VIEW_H
-#define _LIBCPP___RANGES_TAKE_VIEW_H
-
-#include <__algorithm/min.h>
-#include <__config>
-#include <__iterator/concepts.h>
-#include <__iterator/counted_iterator.h>
-#include <__iterator/default_sentinel.h>
-#include <__iterator/iterator_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/move.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
- template<view _View>
- class take_view : public view_interface<take_view<_View>> {
- _LIBCPP_NO_UNIQUE_ADDRESS _View __base_ = _View();
- range_difference_t<_View> __count_ = 0;
-
- template<bool> class __sentinel;
-
- public:
- _LIBCPP_HIDE_FROM_ABI
- take_view() requires default_initializable<_View> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr take_view(_View __base, range_difference_t<_View> __count)
- : __base_(std::move(__base)), __count_(__count) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() requires (!__simple_view<_View>) {
- if constexpr (sized_range<_View>) {
- if constexpr (random_access_range<_View>) {
- return ranges::begin(__base_);
- } else {
- using _DifferenceT = range_difference_t<_View>;
- auto __size = size();
- return counted_iterator(ranges::begin(__base_), static_cast<_DifferenceT>(__size));
- }
- } else {
- return counted_iterator(ranges::begin(__base_), __count_);
- }
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto begin() const requires range<const _View> {
- if constexpr (sized_range<const _View>) {
- if constexpr (random_access_range<const _View>) {
- return ranges::begin(__base_);
- } else {
- using _DifferenceT = range_difference_t<const _View>;
- auto __size = size();
- return counted_iterator(ranges::begin(__base_), static_cast<_DifferenceT>(__size));
- }
- } else {
- return counted_iterator(ranges::begin(__base_), __count_);
- }
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() requires (!__simple_view<_View>) {
- if constexpr (sized_range<_View>) {
- if constexpr (random_access_range<_View>) {
- return ranges::begin(__base_) + size();
- } else {
- return default_sentinel;
- }
- } else {
- return __sentinel<false>{ranges::end(__base_)};
- }
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto end() const requires range<const _View> {
- if constexpr (sized_range<const _View>) {
- if constexpr (random_access_range<const _View>) {
- return ranges::begin(__base_) + size();
- } else {
- return default_sentinel;
- }
- } else {
- return __sentinel<true>{ranges::end(__base_)};
- }
- }
-
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() requires sized_range<_View> {
- auto __n = ranges::size(__base_);
- // TODO: use ranges::min here.
- return std::min(__n, static_cast<decltype(__n)>(__count_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const requires sized_range<const _View> {
- auto __n = ranges::size(__base_);
- // TODO: use ranges::min here.
- return std::min(__n, static_cast<decltype(__n)>(__count_));
- }
- };
-
- template<view _View>
- template<bool _Const>
- class take_view<_View>::__sentinel {
- using _Base = __maybe_const<_Const, _View>;
- template<bool _OtherConst>
- using _Iter = counted_iterator<iterator_t<__maybe_const<_OtherConst, _View>>>;
- _LIBCPP_NO_UNIQUE_ADDRESS sentinel_t<_Base> __end_ = sentinel_t<_Base>();
-
- template<bool>
- friend class take_view<_View>::__sentinel;
-
-public:
- _LIBCPP_HIDE_FROM_ABI
- __sentinel() = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __sentinel(sentinel_t<_Base> __end) : __end_(std::move(__end)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __sentinel(__sentinel<!_Const> __s)
- requires _Const && convertible_to<sentinel_t<_View>, sentinel_t<_Base>>
- : __end_(std::move(__s.__end_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr sentinel_t<_Base> base() const { return __end_; }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const _Iter<_Const>& __lhs, const __sentinel& __rhs) {
- return __lhs.count() == 0 || __lhs.base() == __rhs.__end_;
- }
-
- template<bool _OtherConst = !_Const>
- requires sentinel_for<sentinel_t<_Base>, iterator_t<__maybe_const<_OtherConst, _View>>>
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const _Iter<_Const>& __lhs, const __sentinel& __rhs) {
- return __lhs.count() == 0 || __lhs.base() == __rhs.__end_;
- }
- };
-
- template<class _Range>
- take_view(_Range&&, range_difference_t<_Range>) -> take_view<views::all_t<_Range>>;
-
- template<class _Tp>
- inline constexpr bool enable_borrowed_range<take_view<_Tp>> = enable_borrowed_range<_Tp>;
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-_LIBCPP_POP_MACROS
-
-#endif // _LIBCPP___RANGES_TAKE_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/transform_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/transform_view.h
deleted file mode 100644
index 42ea1b82c74..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/transform_view.h
+++ /dev/null
@@ -1,440 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_TRANSFORM_VIEW_H
-#define _LIBCPP___RANGES_TRANSFORM_VIEW_H
-
-#include <__compare/three_way_comparable.h>
-#include <__concepts/constructible.h>
-#include <__concepts/convertible_to.h>
-#include <__concepts/copyable.h>
-#include <__concepts/derived_from.h>
-#include <__concepts/equality_comparable.h>
-#include <__concepts/invocable.h>
-#include <__config>
-#include <__functional/bind_back.h>
-#include <__functional/invoke.h>
-#include <__iterator/concepts.h>
-#include <__iterator/iterator_traits.h>
-#include <__memory/addressof.h>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/concepts.h>
-#include <__ranges/copyable_box.h>
-#include <__ranges/empty.h>
-#include <__ranges/range_adaptor.h>
-#include <__ranges/size.h>
-#include <__ranges/view_interface.h>
-#include <__utility/forward.h>
-#include <__utility/in_place.h>
-#include <__utility/move.h>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
-
-template<class _Fn, class _View>
-concept __regular_invocable_with_range_ref =
- regular_invocable<_Fn, range_reference_t<_View>>;
-
-template<class _View, class _Fn>
-concept __transform_view_constraints =
- view<_View> && is_object_v<_Fn> &&
- regular_invocable<_Fn&, range_reference_t<_View>> &&
- __can_reference<invoke_result_t<_Fn&, range_reference_t<_View>>>;
-
-template<input_range _View, copy_constructible _Fn>
- requires __transform_view_constraints<_View, _Fn>
-class transform_view : public view_interface<transform_view<_View, _Fn>> {
- template<bool> class __iterator;
- template<bool> class __sentinel;
-
- _LIBCPP_NO_UNIQUE_ADDRESS __copyable_box<_Fn> __func_;
- _LIBCPP_NO_UNIQUE_ADDRESS _View __base_ = _View();
-
-public:
- _LIBCPP_HIDE_FROM_ABI
- transform_view()
- requires default_initializable<_View> && default_initializable<_Fn> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr transform_view(_View __base, _Fn __func)
- : __func_(std::in_place, std::move(__func)), __base_(std::move(__base)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() const& requires copy_constructible<_View> { return __base_; }
- _LIBCPP_HIDE_FROM_ABI
- constexpr _View base() && { return std::move(__base_); }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator<false> begin() {
- return __iterator<false>{*this, ranges::begin(__base_)};
- }
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator<true> begin() const
- requires range<const _View> &&
- __regular_invocable_with_range_ref<const _Fn&, const _View>
- {
- return __iterator<true>(*this, ranges::begin(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __sentinel<false> end() {
- return __sentinel<false>(ranges::end(__base_));
- }
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator<false> end()
- requires common_range<_View>
- {
- return __iterator<false>(*this, ranges::end(__base_));
- }
- _LIBCPP_HIDE_FROM_ABI
- constexpr __sentinel<true> end() const
- requires range<const _View> &&
- __regular_invocable_with_range_ref<const _Fn&, const _View>
- {
- return __sentinel<true>(ranges::end(__base_));
- }
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator<true> end() const
- requires common_range<const _View> &&
- __regular_invocable_with_range_ref<const _Fn&, const _View>
- {
- return __iterator<true>(*this, ranges::end(__base_));
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() requires sized_range<_View> { return ranges::size(__base_); }
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const requires sized_range<const _View> { return ranges::size(__base_); }
-};
-
-template<class _Range, class _Fn>
-transform_view(_Range&&, _Fn) -> transform_view<views::all_t<_Range>, _Fn>;
-
-template<class _View>
-struct __transform_view_iterator_concept { using type = input_iterator_tag; };
-
-template<random_access_range _View>
-struct __transform_view_iterator_concept<_View> { using type = random_access_iterator_tag; };
-
-template<bidirectional_range _View>
-struct __transform_view_iterator_concept<_View> { using type = bidirectional_iterator_tag; };
-
-template<forward_range _View>
-struct __transform_view_iterator_concept<_View> { using type = forward_iterator_tag; };
-
-template<class, class>
-struct __transform_view_iterator_category_base {};
-
-template<forward_range _View, class _Fn>
-struct __transform_view_iterator_category_base<_View, _Fn> {
- using _Cat = typename iterator_traits<iterator_t<_View>>::iterator_category;
-
- using iterator_category = conditional_t<
- is_lvalue_reference_v<invoke_result_t<_Fn&, range_reference_t<_View>>>,
- conditional_t<
- derived_from<_Cat, contiguous_iterator_tag>,
- random_access_iterator_tag,
- _Cat
- >,
- input_iterator_tag
- >;
-};
-
-template<input_range _View, copy_constructible _Fn>
- requires __transform_view_constraints<_View, _Fn>
-template<bool _Const>
-class transform_view<_View, _Fn>::__iterator
- : public __transform_view_iterator_category_base<_View, _Fn> {
-
- using _Parent = __maybe_const<_Const, transform_view>;
- using _Base = __maybe_const<_Const, _View>;
-
- _Parent *__parent_ = nullptr;
-
- template<bool>
- friend class transform_view<_View, _Fn>::__iterator;
-
- template<bool>
- friend class transform_view<_View, _Fn>::__sentinel;
-
-public:
- iterator_t<_Base> __current_ = iterator_t<_Base>();
-
- using iterator_concept = typename __transform_view_iterator_concept<_View>::type;
- using value_type = remove_cvref_t<invoke_result_t<_Fn&, range_reference_t<_Base>>>;
- using difference_type = range_difference_t<_Base>;
-
- _LIBCPP_HIDE_FROM_ABI
- __iterator() requires default_initializable<iterator_t<_Base>> = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator(_Parent& __parent, iterator_t<_Base> __current)
- : __parent_(std::addressof(__parent)), __current_(std::move(__current)) {}
-
- // Note: `__i` should always be `__iterator<false>`, but directly using
- // `__iterator<false>` is ill-formed when `_Const` is false
- // (see http://wg21.link/class.copy.ctor#5).
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator(__iterator<!_Const> __i)
- requires _Const && convertible_to<iterator_t<_View>, iterator_t<_Base>>
- : __parent_(__i.__parent_), __current_(std::move(__i.__current_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr const iterator_t<_Base>& base() const& noexcept {
- return __current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr iterator_t<_Base> base() && {
- return std::move(__current_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) operator*() const
- noexcept(noexcept(std::invoke(*__parent_->__func_, *__current_)))
- {
- return std::invoke(*__parent_->__func_, *__current_);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator++() {
- ++__current_;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr void operator++(int) { ++__current_; }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator++(int)
- requires forward_range<_Base>
- {
- auto __tmp = *this;
- ++*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator--()
- requires bidirectional_range<_Base>
- {
- --__current_;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator operator--(int)
- requires bidirectional_range<_Base>
- {
- auto __tmp = *this;
- --*this;
- return __tmp;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator+=(difference_type __n)
- requires random_access_range<_Base>
- {
- __current_ += __n;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr __iterator& operator-=(difference_type __n)
- requires random_access_range<_Base>
- {
- __current_ -= __n;
- return *this;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) operator[](difference_type __n) const
- noexcept(noexcept(std::invoke(*__parent_->__func_, __current_[__n])))
- requires random_access_range<_Base>
- {
- return std::invoke(*__parent_->__func_, __current_[__n]);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator& __x, const __iterator& __y)
- requires equality_comparable<iterator_t<_Base>>
- {
- return __x.__current_ == __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator<(const __iterator& __x, const __iterator& __y)
- requires random_access_range<_Base>
- {
- return __x.__current_ < __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator>(const __iterator& __x, const __iterator& __y)
- requires random_access_range<_Base>
- {
- return __x.__current_ > __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator<=(const __iterator& __x, const __iterator& __y)
- requires random_access_range<_Base>
- {
- return __x.__current_ <= __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator>=(const __iterator& __x, const __iterator& __y)
- requires random_access_range<_Base>
- {
- return __x.__current_ >= __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr auto operator<=>(const __iterator& __x, const __iterator& __y)
- requires random_access_range<_Base> && three_way_comparable<iterator_t<_Base>>
- {
- return __x.__current_ <=> __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator+(__iterator __i, difference_type __n)
- requires random_access_range<_Base>
- {
- return __iterator{*__i.__parent_, __i.__current_ + __n};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator+(difference_type __n, __iterator __i)
- requires random_access_range<_Base>
- {
- return __iterator{*__i.__parent_, __i.__current_ + __n};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr __iterator operator-(__iterator __i, difference_type __n)
- requires random_access_range<_Base>
- {
- return __iterator{*__i.__parent_, __i.__current_ - __n};
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr difference_type operator-(const __iterator& __x, const __iterator& __y)
- requires sized_sentinel_for<iterator_t<_Base>, iterator_t<_Base>>
- {
- return __x.__current_ - __y.__current_;
- }
-
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr decltype(auto) iter_move(const __iterator& __i)
- noexcept(noexcept(*__i))
- {
- if constexpr (is_lvalue_reference_v<decltype(*__i)>)
- return std::move(*__i);
- else
- return *__i;
- }
-};
-
-template<input_range _View, copy_constructible _Fn>
- requires __transform_view_constraints<_View, _Fn>
-template<bool _Const>
-class transform_view<_View, _Fn>::__sentinel {
- using _Parent = __maybe_const<_Const, transform_view>;
- using _Base = __maybe_const<_Const, _View>;
-
- sentinel_t<_Base> __end_ = sentinel_t<_Base>();
-
- template<bool>
- friend class transform_view<_View, _Fn>::__iterator;
-
- template<bool>
- friend class transform_view<_View, _Fn>::__sentinel;
-
-public:
- _LIBCPP_HIDE_FROM_ABI
- __sentinel() = default;
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit __sentinel(sentinel_t<_Base> __end) : __end_(__end) {}
-
- // Note: `__i` should always be `__sentinel<false>`, but directly using
- // `__sentinel<false>` is ill-formed when `_Const` is false
- // (see http://wg21.link/class.copy.ctor#5).
- _LIBCPP_HIDE_FROM_ABI
- constexpr __sentinel(__sentinel<!_Const> __i)
- requires _Const && convertible_to<sentinel_t<_View>, sentinel_t<_Base>>
- : __end_(std::move(__i.__end_)) {}
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr sentinel_t<_Base> base() const { return __end_; }
-
- template<bool _OtherConst>
- requires sentinel_for<sentinel_t<_Base>, iterator_t<__maybe_const<_OtherConst, _View>>>
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr bool operator==(const __iterator<_OtherConst>& __x, const __sentinel& __y) {
- return __x.__current_ == __y.__end_;
- }
-
- template<bool _OtherConst>
- requires sized_sentinel_for<sentinel_t<_Base>, iterator_t<__maybe_const<_OtherConst, _View>>>
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr range_difference_t<__maybe_const<_OtherConst, _View>>
- operator-(const __iterator<_OtherConst>& __x, const __sentinel& __y) {
- return __x.__current_ - __y.__end_;
- }
-
- template<bool _OtherConst>
- requires sized_sentinel_for<sentinel_t<_Base>, iterator_t<__maybe_const<_OtherConst, _View>>>
- _LIBCPP_HIDE_FROM_ABI
- friend constexpr range_difference_t<__maybe_const<_OtherConst, _View>>
- operator-(const __sentinel& __x, const __iterator<_OtherConst>& __y) {
- return __x.__end_ - __y.__current_;
- }
-};
-
-namespace views {
-namespace __transform {
- struct __fn {
- template<class _Range, class _Fn>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Range&& __range, _Fn&& __f) const
- noexcept(noexcept(transform_view(std::forward<_Range>(__range), std::forward<_Fn>(__f))))
- -> decltype( transform_view(std::forward<_Range>(__range), std::forward<_Fn>(__f)))
- { return transform_view(std::forward<_Range>(__range), std::forward<_Fn>(__f)); }
-
- template<class _Fn>
- requires constructible_from<decay_t<_Fn>, _Fn>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI
- constexpr auto operator()(_Fn&& __f) const
- noexcept(is_nothrow_constructible_v<decay_t<_Fn>, _Fn>)
- { return __range_adaptor_closure_t(std::__bind_back(*this, std::forward<_Fn>(__f))); }
- };
-} // namespace __transform
-
-inline namespace __cpo {
- inline constexpr auto transform = __transform::__fn{};
-} // namespace __cpo
-} // namespace views
-
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_TRANSFORM_VIEW_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/view_interface.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/view_interface.h
deleted file mode 100644
index 91ae4bde7d1..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/view_interface.h
+++ /dev/null
@@ -1,195 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP___RANGES_VIEW_INTERFACE_H
-#define _LIBCPP___RANGES_VIEW_INTERFACE_H
-
-#include <__config>
-#include <__debug>
-#include <__iterator/concepts.h>
-#include <__iterator/iterator_traits.h>
-#include <__iterator/prev.h>
-#include <__memory/pointer_traits.h>
-#include <__ranges/access.h>
-#include <__ranges/concepts.h>
-#include <__ranges/empty.h>
-#include <concepts>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-namespace ranges {
-
-template<class _Tp>
-concept __can_empty = requires(_Tp __t) { ranges::empty(__t); };
-
-template<class _Tp>
-void __implicitly_convert_to(type_identity_t<_Tp>) noexcept;
-
-template<class _Derived>
- requires is_class_v<_Derived> && same_as<_Derived, remove_cv_t<_Derived>>
-class view_interface {
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Derived& __derived() noexcept {
- static_assert(sizeof(_Derived) && derived_from<_Derived, view_interface> && view<_Derived>);
- return static_cast<_Derived&>(*this);
- }
-
- _LIBCPP_HIDE_FROM_ABI
- constexpr _Derived const& __derived() const noexcept {
- static_assert(sizeof(_Derived) && derived_from<_Derived, view_interface> && view<_Derived>);
- return static_cast<_Derived const&>(*this);
- }
-
-public:
- template<class _D2 = _Derived>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool empty()
- noexcept(noexcept(__implicitly_convert_to<bool>(ranges::begin(__derived()) == ranges::end(__derived()))))
- requires forward_range<_D2>
- {
- return ranges::begin(__derived()) == ranges::end(__derived());
- }
-
- template<class _D2 = _Derived>
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr bool empty() const
- noexcept(noexcept(__implicitly_convert_to<bool>(ranges::begin(__derived()) == ranges::end(__derived()))))
- requires forward_range<const _D2>
- {
- return ranges::begin(__derived()) == ranges::end(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit operator bool()
- noexcept(noexcept(ranges::empty(declval<_D2>())))
- requires __can_empty<_D2>
- {
- return !ranges::empty(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr explicit operator bool() const
- noexcept(noexcept(ranges::empty(declval<const _D2>())))
- requires __can_empty<const _D2>
- {
- return !ranges::empty(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto data()
- noexcept(noexcept(std::to_address(ranges::begin(__derived()))))
- requires contiguous_iterator<iterator_t<_D2>>
- {
- return std::to_address(ranges::begin(__derived()));
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto data() const
- noexcept(noexcept(std::to_address(ranges::begin(__derived()))))
- requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>
- {
- return std::to_address(ranges::begin(__derived()));
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size()
- noexcept(noexcept(ranges::end(__derived()) - ranges::begin(__derived())))
- requires forward_range<_D2>
- && sized_sentinel_for<sentinel_t<_D2>, iterator_t<_D2>>
- {
- return ranges::end(__derived()) - ranges::begin(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr auto size() const
- noexcept(noexcept(ranges::end(__derived()) - ranges::begin(__derived())))
- requires forward_range<const _D2>
- && sized_sentinel_for<sentinel_t<const _D2>, iterator_t<const _D2>>
- {
- return ranges::end(__derived()) - ranges::begin(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) front()
- noexcept(noexcept(*ranges::begin(__derived())))
- requires forward_range<_D2>
- {
- _LIBCPP_ASSERT(!empty(),
- "Precondition `!empty()` not satisfied. `.front()` called on an empty view.");
- return *ranges::begin(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) front() const
- noexcept(noexcept(*ranges::begin(__derived())))
- requires forward_range<const _D2>
- {
- _LIBCPP_ASSERT(!empty(),
- "Precondition `!empty()` not satisfied. `.front()` called on an empty view.");
- return *ranges::begin(__derived());
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) back()
- noexcept(noexcept(*ranges::prev(ranges::end(__derived()))))
- requires bidirectional_range<_D2> && common_range<_D2>
- {
- _LIBCPP_ASSERT(!empty(),
- "Precondition `!empty()` not satisfied. `.back()` called on an empty view.");
- return *ranges::prev(ranges::end(__derived()));
- }
-
- template<class _D2 = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) back() const
- noexcept(noexcept(*ranges::prev(ranges::end(__derived()))))
- requires bidirectional_range<const _D2> && common_range<const _D2>
- {
- _LIBCPP_ASSERT(!empty(),
- "Precondition `!empty()` not satisfied. `.back()` called on an empty view.");
- return *ranges::prev(ranges::end(__derived()));
- }
-
- template<random_access_range _RARange = _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) operator[](range_difference_t<_RARange> __index)
- noexcept(noexcept(ranges::begin(__derived())[__index]))
- {
- return ranges::begin(__derived())[__index];
- }
-
- template<random_access_range _RARange = const _Derived>
- _LIBCPP_HIDE_FROM_ABI
- constexpr decltype(auto) operator[](range_difference_t<_RARange> __index) const
- noexcept(noexcept(ranges::begin(__derived())[__index]))
- {
- return ranges::begin(__derived())[__index];
- }
-};
-
-} // namespace ranges
-
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_VIEW_INTERFACE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/views.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/views.h
deleted file mode 100644
index 8cc5ba3d2ac..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/views.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP___RANGES_VIEWS
-#define _LIBCPP___RANGES_VIEWS
-
-#include <__config>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
-
-namespace ranges {
-
-namespace views { }
-
-} // namespace ranges
-
-namespace views = ranges::views;
-
-#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP___RANGES_VIEWS
diff --git a/contrib/libs/cxxsupp/libcxx/include/__support/solaris/floatingpoint.h b/contrib/libs/cxxsupp/libcxx/include/__support/solaris/floatingpoint.h
deleted file mode 100644
index 5f1628fbe4f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__support/solaris/floatingpoint.h
+++ /dev/null
@@ -1,13 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#define atof sun_atof
-#define strtod sun_strtod
-#include_next "floatingpoint.h"
-#undef atof
-#undef strtod
diff --git a/contrib/libs/cxxsupp/libcxx/include/__support/solaris/wchar.h b/contrib/libs/cxxsupp/libcxx/include/__support/solaris/wchar.h
deleted file mode 100644
index f01fd743a23..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/__support/solaris/wchar.h
+++ /dev/null
@@ -1,46 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#define iswalpha sun_iswalpha
-#define iswupper sun_iswupper
-#define iswlower sun_iswlower
-#define iswdigit sun_iswdigit
-#define iswxdigit sun_iswxdigit
-#define iswalnum sun_iswalnum
-#define iswspace sun_iswspace
-#define iswpunct sun_iswpunct
-#define iswprint sun_iswprint
-#define iswgraph sun_iswgraph
-#define iswcntrl sun_iswcntrl
-#define iswctype sun_iswctype
-#define towlower sun_towlower
-#define towupper sun_towupper
-#define wcswcs sun_wcswcs
-#define wcswidth sun_wcswidth
-#define wcwidth sun_wcwidth
-#define wctype sun_wctype
-#define _WCHAR_T 1
-#include_next "wchar.h"
-#undef iswalpha
-#undef iswupper
-#undef iswlower
-#undef iswdigit
-#undef iswxdigit
-#undef iswalnum
-#undef iswspace
-#undef iswpunct
-#undef iswprint
-#undef iswgraph
-#undef iswcntrl
-#undef iswctype
-#undef towlower
-#undef towupper
-#undef wcswcs
-#undef wcswidth
-#undef wcwidth
-#undef wctype
diff --git a/contrib/libs/cxxsupp/libcxx/include/coroutine b/contrib/libs/cxxsupp/libcxx/include/coroutine
deleted file mode 100644
index 478f4723f9a..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/coroutine
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_COROUTINE
-#define _LIBCPP_COROUTINE
-
-/**
- coroutine synopsis
-
-namespace std {
-// [coroutine.traits]
-template <class R, class... ArgTypes>
- struct coroutine_traits;
-// [coroutine.handle]
-template <class Promise = void>
- struct coroutine_handle;
-// [coroutine.handle.compare]
-constexpr bool operator==(coroutine_handle<> x, coroutine_handle<> y) noexcept;
-constexpr strong_ordering operator<=>(coroutine_handle<> x, coroutine_handle<> y) noexcept;
-// [coroutine.handle.hash]
-template <class T> struct hash;
-template <class P> struct hash<coroutine_handle<P>>;
-// [coroutine.noop]
-struct noop_coroutine_promise;
-template<> struct coroutine_handle<noop_coroutine_promise>;
-using noop_coroutine_handle = coroutine_handle<noop_coroutine_promise>;
-noop_coroutine_handle noop_coroutine() noexcept;
-// [coroutine.trivial.awaitables]
-struct suspend_never;
-struct suspend_always;
-} // namespace std
-
- */
-
-#include <__config>
-#include <__coroutine/coroutine_handle.h>
-#include <__coroutine/coroutine_traits.h>
-#include <__coroutine/noop_coroutine_handle.h>
-#include <__coroutine/trivial_awaitables.h>
-#include <version>
-
-#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
-# pragma GCC system_header
-#endif
-
-#endif // _LIBCPP_COROUTINE
diff --git a/contrib/libs/cxxsupp/libcxx/include/csetjmp b/contrib/libs/cxxsupp/libcxx/include/csetjmp
deleted file mode 100644
index 76cbaab4c38..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/csetjmp
+++ /dev/null
@@ -1,47 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_CSETJMP
-#define _LIBCPP_CSETJMP
-
-/*
- csetjmp synopsis
-
-Macros:
-
- setjmp
-
-namespace std
-{
-
-Types:
-
- jmp_buf
-
-void longjmp(jmp_buf env, int val);
-
-} // std
-
-*/
-
-#include <__config>
-#include <setjmp.h>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-using ::jmp_buf _LIBCPP_USING_IF_EXISTS;
-using ::longjmp _LIBCPP_USING_IF_EXISTS;
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_CSETJMP
diff --git a/contrib/libs/cxxsupp/libcxx/include/cstdbool b/contrib/libs/cxxsupp/libcxx/include/cstdbool
deleted file mode 100644
index ef731c021a4..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/cstdbool
+++ /dev/null
@@ -1,31 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_CSTDBOOL
-#define _LIBCPP_CSTDBOOL
-
-/*
- cstdbool synopsis
-
-Macros:
-
- __bool_true_false_are_defined
-
-*/
-
-#include <__config>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#undef __bool_true_false_are_defined
-#define __bool_true_false_are_defined 1
-
-#endif // _LIBCPP_CSTDBOOL
diff --git a/contrib/libs/cxxsupp/libcxx/include/ctgmath b/contrib/libs/cxxsupp/libcxx/include/ctgmath
deleted file mode 100644
index 6237979be49..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/ctgmath
+++ /dev/null
@@ -1,28 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_CTGMATH
-#define _LIBCPP_CTGMATH
-
-/*
- ctgmath synopsis
-
-#include <ccomplex>
-#include <cmath>
-
-*/
-
-#include <ccomplex>
-#include <cmath>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#endif // _LIBCPP_CTGMATH
diff --git a/contrib/libs/cxxsupp/libcxx/include/execution b/contrib/libs/cxxsupp/libcxx/include/execution
deleted file mode 100644
index a82830519ae..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/execution
+++ /dev/null
@@ -1,24 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXECUTION
-#define _LIBCPP_EXECUTION
-
-#include <__config>
-#include <version>
-
-#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) && _LIBCPP_STD_VER >= 17
-//# include <__pstl_execution>
-#endif
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#endif // _LIBCPP_EXECUTION
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/__memory b/contrib/libs/cxxsupp/libcxx/include/experimental/__memory
deleted file mode 100644
index 749cf4c0c65..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/__memory
+++ /dev/null
@@ -1,117 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL___MEMORY
-#define _LIBCPP_EXPERIMENTAL___MEMORY
-
-#include <__memory/allocator_arg_t.h>
-#include <__memory/uses_allocator.h>
-#include <experimental/__config>
-#include <experimental/utility> // for erased_type
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
-template <
- class _Tp, class _Alloc
- , bool = uses_allocator<_Tp, _Alloc>::value
- , bool = __has_allocator_type<_Tp>::value
- >
-struct __lfts_uses_allocator : public false_type {};
-
-template <class _Tp, class _Alloc>
-struct __lfts_uses_allocator<_Tp, _Alloc, false, false> : public false_type {};
-
-template <class _Tp, class _Alloc, bool HasAlloc>
-struct __lfts_uses_allocator<_Tp, _Alloc, true, HasAlloc> : public true_type {};
-
-template <class _Tp, class _Alloc>
-struct __lfts_uses_allocator<_Tp, _Alloc, false, true>
- : public integral_constant<bool
- , is_convertible<_Alloc, typename _Tp::allocator_type>::value
- || is_same<erased_type, typename _Tp::allocator_type>::value
- >
-{};
-
-template <bool _UsesAlloc, class _Tp, class _Alloc, class ..._Args>
-struct __lfts_uses_alloc_ctor_imp
-{
- static const int value = 0;
-};
-
-template <class _Tp, class _Alloc, class ..._Args>
-struct __lfts_uses_alloc_ctor_imp<true, _Tp, _Alloc, _Args...>
-{
- static const bool __ic_first
- = is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;
-
- static const bool __ic_second =
- conditional<
- __ic_first,
- false_type,
- is_constructible<_Tp, _Args..., _Alloc>
- >::type::value;
-
- static_assert(__ic_first || __ic_second,
- "Request for uses allocator construction is ill-formed");
-
- static const int value = __ic_first ? 1 : 2;
-};
-
-template <class _Tp, class _Alloc, class ..._Args>
-struct __lfts_uses_alloc_ctor
- : integral_constant<int,
- __lfts_uses_alloc_ctor_imp<
- __lfts_uses_allocator<_Tp, _Alloc>::value
- , _Tp, _Alloc, _Args...
- >::value
- >
-{};
-
-template <class _Tp, class _Allocator, class... _Args>
-inline _LIBCPP_INLINE_VISIBILITY
-void __user_alloc_construct_impl (integral_constant<int, 0>, _Tp *__storage, const _Allocator &, _Args &&... __args )
-{
- new (__storage) _Tp (_VSTD::forward<_Args>(__args)...);
-}
-
-// FIXME: This should have a version which takes a non-const alloc.
-template <class _Tp, class _Allocator, class... _Args>
-inline _LIBCPP_INLINE_VISIBILITY
-void __user_alloc_construct_impl (integral_constant<int, 1>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )
-{
- new (__storage) _Tp (allocator_arg, __a, _VSTD::forward<_Args>(__args)...);
-}
-
-// FIXME: This should have a version which takes a non-const alloc.
-template <class _Tp, class _Allocator, class... _Args>
-inline _LIBCPP_INLINE_VISIBILITY
-void __user_alloc_construct_impl (integral_constant<int, 2>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )
-{
- new (__storage) _Tp (_VSTD::forward<_Args>(__args)..., __a);
-}
-
-template <class _Tp, class _Alloc, class ..._Args>
-inline _LIBCPP_INLINE_VISIBILITY
-void __lfts_user_alloc_construct(
- _Tp * __store, const _Alloc & __a, _Args &&... __args)
-{
- ::std::experimental::fundamentals_v1::__user_alloc_construct_impl(
- typename __lfts_uses_alloc_ctor<_Tp, _Alloc, _Args...>::type()
- , __store, __a, _VSTD::forward<_Args>(__args)...
- );
-}
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-#endif /* _LIBCPP_EXPERIMENTAL___MEMORY */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/algorithm b/contrib/libs/cxxsupp/libcxx/include/experimental/algorithm
deleted file mode 100644
index b9405bfe5ff..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/algorithm
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM
-#define _LIBCPP_EXPERIMENTAL_ALGORITHM
-
-/*
- experimental/algorithm synopsis
-
-#include <algorithm>
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-
-template <class ForwardIterator, class Searcher>
-ForwardIterator search(ForwardIterator first, ForwardIterator last,
- const Searcher &searcher);
-
-// sample removed because it's now part of C++17
-
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
-*/
-
-#include <__debug>
-#include <algorithm>
-#include <experimental/__config>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
-template <class _ForwardIterator, class _Searcher>
-_LIBCPP_INLINE_VISIBILITY
-_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s)
-{ return __s(__f, __l).first; }
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/coroutine b/contrib/libs/cxxsupp/libcxx/include/experimental/coroutine
deleted file mode 100644
index d14bd26401f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/coroutine
+++ /dev/null
@@ -1,334 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_COROUTINE
-#define _LIBCPP_EXPERIMENTAL_COROUTINE
-
-/**
- experimental/coroutine synopsis
-
-// C++next
-
-namespace std {
-namespace experimental {
-inline namespace coroutines_v1 {
-
- // 18.11.1 coroutine traits
-template <typename R, typename... ArgTypes>
-class coroutine_traits;
-// 18.11.2 coroutine handle
-template <typename Promise = void>
-class coroutine_handle;
-// 18.11.2.7 comparison operators:
-bool operator==(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-bool operator!=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-bool operator<(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-bool operator<=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-bool operator>=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-bool operator>(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
-// 18.11.3 trivial awaitables
-struct suspend_never;
-struct suspend_always;
-// 18.11.2.8 hash support:
-template <class T> struct hash;
-template <class P> struct hash<coroutine_handle<P>>;
-
-} // namespace coroutines_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__debug>
-#include <cstddef>
-#include <experimental/__config>
-#include <functional>
-#include <memory> // for hash<T*>
-#include <new>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#ifdef _LIBCPP_HAS_NO_EXPERIMENTAL_COROUTINES
-# if defined(_LIBCPP_WARNING)
- _LIBCPP_WARNING("<experimental/coroutine> cannot be used with this compiler")
-# else
-# warning <experimental/coroutine> cannot be used with this compiler
-# endif
-#endif
-
-#ifndef _LIBCPP_HAS_NO_EXPERIMENTAL_COROUTINES
-
-_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES
-
-template <class _Tp, class = void>
-struct __coroutine_traits_sfinae {};
-
-template <class _Tp>
-struct __coroutine_traits_sfinae<
- _Tp, typename __void_t<typename _Tp::promise_type>::type>
-{
- using promise_type = typename _Tp::promise_type;
-};
-
-template <typename _Ret, typename... _Args>
-struct coroutine_traits
- : public __coroutine_traits_sfinae<_Ret>
-{
-};
-
-template <typename _Promise = void>
-class _LIBCPP_TEMPLATE_VIS coroutine_handle;
-
-template <>
-class _LIBCPP_TEMPLATE_VIS coroutine_handle<void> {
-public:
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR coroutine_handle() _NOEXCEPT : __handle_(nullptr) {}
-
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR coroutine_handle(nullptr_t) _NOEXCEPT : __handle_(nullptr) {}
-
- _LIBCPP_INLINE_VISIBILITY
- coroutine_handle& operator=(nullptr_t) _NOEXCEPT {
- __handle_ = nullptr;
- return *this;
- }
-
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR void* address() const _NOEXCEPT { return __handle_; }
-
- _LIBCPP_INLINE_VISIBILITY
- _LIBCPP_CONSTEXPR explicit operator bool() const _NOEXCEPT { return __handle_; }
-
- _LIBCPP_INLINE_VISIBILITY
- void operator()() { resume(); }
-
- _LIBCPP_INLINE_VISIBILITY
- void resume() {
- _LIBCPP_ASSERT(__is_suspended(),
- "resume() can only be called on suspended coroutines");
- _LIBCPP_ASSERT(!done(),
- "resume() has undefined behavior when the coroutine is done");
- __builtin_coro_resume(__handle_);
- }
-
- _LIBCPP_INLINE_VISIBILITY
- void destroy() {
- _LIBCPP_ASSERT(__is_suspended(),
- "destroy() can only be called on suspended coroutines");
- __builtin_coro_destroy(__handle_);
- }
-
- _LIBCPP_INLINE_VISIBILITY
- bool done() const {
- _LIBCPP_ASSERT(__is_suspended(),
- "done() can only be called on suspended coroutines");
- return __builtin_coro_done(__handle_);
- }
-
-public:
- _LIBCPP_INLINE_VISIBILITY
- static coroutine_handle from_address(void* __addr) _NOEXCEPT {
- coroutine_handle __tmp;
- __tmp.__handle_ = __addr;
- return __tmp;
- }
-
- // FIXME: Should from_address(nullptr) be allowed?
- _LIBCPP_INLINE_VISIBILITY
- static coroutine_handle from_address(nullptr_t) _NOEXCEPT {
- return coroutine_handle(nullptr);
- }
-
- template <class _Tp, bool _CallIsValid = false>
- static coroutine_handle from_address(_Tp*) {
- static_assert(_CallIsValid,
- "coroutine_handle<void>::from_address cannot be called with "
- "non-void pointers");
- }
-
-private:
- bool __is_suspended() const _NOEXCEPT {
- // FIXME actually implement a check for if the coro is suspended.
- return __handle_;
- }
-
- template <class _PromiseT> friend class coroutine_handle;
- void* __handle_;
-};
-
-// 18.11.2.7 comparison operators:
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator==(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return __x.address() == __y.address();
-}
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator!=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return !(__x == __y);
-}
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator<(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return less<void*>()(__x.address(), __y.address());
-}
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator>(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return __y < __x;
-}
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator<=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return !(__x > __y);
-}
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator>=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {
- return !(__x < __y);
-}
-
-template <typename _Promise>
-class _LIBCPP_TEMPLATE_VIS coroutine_handle : public coroutine_handle<> {
- using _Base = coroutine_handle<>;
-public:
-#ifndef _LIBCPP_CXX03_LANG
- // 18.11.2.1 construct/reset
- using coroutine_handle<>::coroutine_handle;
-#else
- _LIBCPP_INLINE_VISIBILITY coroutine_handle() _NOEXCEPT : _Base() {}
- _LIBCPP_INLINE_VISIBILITY coroutine_handle(nullptr_t) _NOEXCEPT : _Base(nullptr) {}
-#endif
- _LIBCPP_INLINE_VISIBILITY
- coroutine_handle& operator=(nullptr_t) _NOEXCEPT {
- _Base::operator=(nullptr);
- return *this;
- }
-
- _LIBCPP_INLINE_VISIBILITY
- _Promise& promise() const {
- return *static_cast<_Promise*>(
- __builtin_coro_promise(this->__handle_, _LIBCPP_ALIGNOF(_Promise), false));
- }
-
-public:
- _LIBCPP_INLINE_VISIBILITY
- static coroutine_handle from_address(void* __addr) _NOEXCEPT {
- coroutine_handle __tmp;
- __tmp.__handle_ = __addr;
- return __tmp;
- }
-
- // NOTE: this overload isn't required by the standard but is needed so
- // the deleted _Promise* overload doesn't make from_address(nullptr)
- // ambiguous.
- // FIXME: should from_address work with nullptr?
- _LIBCPP_INLINE_VISIBILITY
- static coroutine_handle from_address(nullptr_t) _NOEXCEPT {
- return coroutine_handle(nullptr);
- }
-
- template <class _Tp, bool _CallIsValid = false>
- static coroutine_handle from_address(_Tp*) {
- static_assert(_CallIsValid,
- "coroutine_handle<promise_type>::from_address cannot be called with "
- "non-void pointers");
- }
-
- template <bool _CallIsValid = false>
- static coroutine_handle from_address(_Promise*) {
- static_assert(_CallIsValid,
- "coroutine_handle<promise_type>::from_address cannot be used with "
- "pointers to the coroutine's promise type; use 'from_promise' instead");
- }
-
- _LIBCPP_INLINE_VISIBILITY
- static coroutine_handle from_promise(_Promise& __promise) _NOEXCEPT {
- typedef typename remove_cv<_Promise>::type _RawPromise;
- coroutine_handle __tmp;
- __tmp.__handle_ = __builtin_coro_promise(
- _VSTD::addressof(const_cast<_RawPromise&>(__promise)),
- _LIBCPP_ALIGNOF(_Promise), true);
- return __tmp;
- }
-};
-
-#if __has_builtin(__builtin_coro_noop)
-struct noop_coroutine_promise {};
-
-template <>
-class _LIBCPP_TEMPLATE_VIS coroutine_handle<noop_coroutine_promise>
- : public coroutine_handle<> {
- using _Base = coroutine_handle<>;
- using _Promise = noop_coroutine_promise;
-public:
-
- _LIBCPP_INLINE_VISIBILITY
- _Promise& promise() const {
- return *static_cast<_Promise*>(
- __builtin_coro_promise(this->__handle_, _LIBCPP_ALIGNOF(_Promise), false));
- }
-
- _LIBCPP_CONSTEXPR explicit operator bool() const _NOEXCEPT { return true; }
- _LIBCPP_CONSTEXPR bool done() const _NOEXCEPT { return false; }
-
- _LIBCPP_CONSTEXPR_AFTER_CXX17 void operator()() const _NOEXCEPT {}
- _LIBCPP_CONSTEXPR_AFTER_CXX17 void resume() const _NOEXCEPT {}
- _LIBCPP_CONSTEXPR_AFTER_CXX17 void destroy() const _NOEXCEPT {}
-
-private:
- _LIBCPP_INLINE_VISIBILITY
- friend coroutine_handle<noop_coroutine_promise> noop_coroutine() _NOEXCEPT;
-
- _LIBCPP_INLINE_VISIBILITY coroutine_handle() _NOEXCEPT {
- this->__handle_ = __builtin_coro_noop();
- }
-};
-
-using noop_coroutine_handle = coroutine_handle<noop_coroutine_promise>;
-
-inline _LIBCPP_INLINE_VISIBILITY
-noop_coroutine_handle noop_coroutine() _NOEXCEPT {
- return noop_coroutine_handle();
-}
-#endif // __has_builtin(__builtin_coro_noop)
-
-struct suspend_never {
- _LIBCPP_INLINE_VISIBILITY
- bool await_ready() const _NOEXCEPT { return true; }
- _LIBCPP_INLINE_VISIBILITY
- void await_suspend(coroutine_handle<>) const _NOEXCEPT {}
- _LIBCPP_INLINE_VISIBILITY
- void await_resume() const _NOEXCEPT {}
-};
-
-struct suspend_always {
- _LIBCPP_INLINE_VISIBILITY
- bool await_ready() const _NOEXCEPT { return false; }
- _LIBCPP_INLINE_VISIBILITY
- void await_suspend(coroutine_handle<>) const _NOEXCEPT {}
- _LIBCPP_INLINE_VISIBILITY
- void await_resume() const _NOEXCEPT {}
-};
-
-_LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-template <class _Tp>
-struct hash<_VSTD_CORO::coroutine_handle<_Tp> > {
- using __arg_type = _VSTD_CORO::coroutine_handle<_Tp>;
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(__arg_type const& __v) const _NOEXCEPT
- {return hash<void*>()(__v.address());}
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_COROUTINES)
-
-#endif /* _LIBCPP_EXPERIMENTAL_COROUTINE */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/deque b/contrib/libs/cxxsupp/libcxx/include/experimental/deque
deleted file mode 100644
index 1809991b473..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/deque
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_DEQUE
-#define _LIBCPP_EXPERIMENTAL_DEQUE
-/*
- experimental/deque synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class T>
- using deque = std::deque<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <deque>
-#include <experimental/__config>
-#include <experimental/memory_resource>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _ValueT>
-using deque = _VSTD::deque<_ValueT, polymorphic_allocator<_ValueT>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_DEQUE */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/filesystem b/contrib/libs/cxxsupp/libcxx/include/experimental/filesystem
deleted file mode 100644
index 8b137891791..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/filesystem
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/forward_list b/contrib/libs/cxxsupp/libcxx/include/experimental/forward_list
deleted file mode 100644
index 675ae0656aa..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/forward_list
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_FORWARD_LIST
-#define _LIBCPP_EXPERIMENTAL_FORWARD_LIST
-/*
- experimental/forward_list synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class T>
- using forward_list = std::forward_list<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <forward_list>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _ValueT>
-using forward_list = _VSTD::forward_list<_ValueT, polymorphic_allocator<_ValueT>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_FORWARD_LIST */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/functional b/contrib/libs/cxxsupp/libcxx/include/experimental/functional
deleted file mode 100644
index de21ab69824..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/functional
+++ /dev/null
@@ -1,430 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_FUNCTIONAL
-#define _LIBCPP_EXPERIMENTAL_FUNCTIONAL
-
-/*
- experimental/functional synopsis
-
-#include <algorithm>
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
- // 4.3, Searchers
- template<class ForwardIterator, class BinaryPredicate = equal_to<>>
- class default_searcher;
-
- template<class RandomAccessIterator,
- class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
- class BinaryPredicate = equal_to<>>
- class boyer_moore_searcher;
-
- template<class RandomAccessIterator,
- class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
- class BinaryPredicate = equal_to<>>
- class boyer_moore_horspool_searcher;
-
- template<class ForwardIterator, class BinaryPredicate = equal_to<>>
- default_searcher<ForwardIterator, BinaryPredicate>
- make_default_searcher(ForwardIterator pat_first, ForwardIterator pat_last,
- BinaryPredicate pred = BinaryPredicate());
-
- template<class RandomAccessIterator,
- class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
- class BinaryPredicate = equal_to<>>
- boyer_moore_searcher<RandomAccessIterator, Hash, BinaryPredicate>
- make_boyer_moore_searcher(
- RandomAccessIterator pat_first, RandomAccessIterator pat_last,
- Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());
-
- template<class RandomAccessIterator,
- class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
- class BinaryPredicate = equal_to<>>
- boyer_moore_horspool_searcher<RandomAccessIterator, Hash, BinaryPredicate>
- make_boyer_moore_horspool_searcher(
- RandomAccessIterator pat_first, RandomAccessIterator pat_last,
- Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());
-
- } // namespace fundamentals_v1
- } // namespace experimental
-
-} // namespace std
-
-*/
-
-#include <__debug>
-#include <__memory/uses_allocator.h>
-#include <algorithm>
-#include <array>
-#include <experimental/__config>
-#include <functional>
-#include <type_traits>
-#include <unordered_map>
-#include <vector>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
-#if _LIBCPP_STD_VER > 11
-// default searcher
-template<class _ForwardIterator, class _BinaryPredicate = equal_to<>>
-class _LIBCPP_TEMPLATE_VIS default_searcher {
-public:
- _LIBCPP_INLINE_VISIBILITY
- default_searcher(_ForwardIterator __f, _ForwardIterator __l,
- _BinaryPredicate __p = _BinaryPredicate())
- : __first_(__f), __last_(__l), __pred_(__p) {}
-
- template <typename _ForwardIterator2>
- _LIBCPP_INLINE_VISIBILITY
- pair<_ForwardIterator2, _ForwardIterator2>
- operator () (_ForwardIterator2 __f, _ForwardIterator2 __l) const
- {
- return _VSTD::__search(__f, __l, __first_, __last_, __pred_,
- typename iterator_traits<_ForwardIterator>::iterator_category(),
- typename iterator_traits<_ForwardIterator2>::iterator_category());
- }
-
-private:
- _ForwardIterator __first_;
- _ForwardIterator __last_;
- _BinaryPredicate __pred_;
- };
-
-template<class _ForwardIterator, class _BinaryPredicate = equal_to<>>
-_LIBCPP_INLINE_VISIBILITY
-default_searcher<_ForwardIterator, _BinaryPredicate>
-make_default_searcher( _ForwardIterator __f, _ForwardIterator __l, _BinaryPredicate __p = _BinaryPredicate ())
-{
- return default_searcher<_ForwardIterator, _BinaryPredicate>(__f, __l, __p);
-}
-
-template<class _Key, class _Value, class _Hash, class _BinaryPredicate, bool /*useArray*/> class _BMSkipTable;
-
-// General case for BM data searching; use a map
-template<class _Key, typename _Value, class _Hash, class _BinaryPredicate>
-class _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, false> {
- typedef _Value value_type;
- typedef _Key key_type;
-
- const _Value __default_value_;
- std::unordered_map<_Key, _Value, _Hash, _BinaryPredicate> __table;
-
-public:
- _LIBCPP_INLINE_VISIBILITY
- _BMSkipTable(size_t __sz, _Value __default, _Hash __hf, _BinaryPredicate __pred)
- : __default_value_(__default), __table(__sz, __hf, __pred) {}
-
- _LIBCPP_INLINE_VISIBILITY
- void insert(const key_type &__key, value_type __val)
- {
- __table [__key] = __val; // Would skip_.insert (val) be better here?
- }
-
- _LIBCPP_INLINE_VISIBILITY
- value_type operator [](const key_type & __key) const
- {
- auto __it = __table.find (__key);
- return __it == __table.end() ? __default_value_ : __it->second;
- }
-};
-
-
-// Special case small numeric values; use an array
-template<class _Key, typename _Value, class _Hash, class _BinaryPredicate>
-class _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, true> {
-private:
- typedef _Value value_type;
- typedef _Key key_type;
-
- typedef typename make_unsigned<key_type>::type unsigned_key_type;
- typedef std::array<value_type, numeric_limits<unsigned_key_type>::max()> skip_map;
- skip_map __table;
-
-public:
- _LIBCPP_INLINE_VISIBILITY
- _BMSkipTable(size_t /*__sz*/, _Value __default, _Hash /*__hf*/, _BinaryPredicate /*__pred*/)
- {
- std::fill_n(__table.begin(), __table.size(), __default);
- }
-
- _LIBCPP_INLINE_VISIBILITY
- void insert(key_type __key, value_type __val)
- {
- __table[static_cast<unsigned_key_type>(__key)] = __val;
- }
-
- _LIBCPP_INLINE_VISIBILITY
- value_type operator [](key_type __key) const
- {
- return __table[static_cast<unsigned_key_type>(__key)];
- }
-};
-
-
-template <class _RandomAccessIterator1,
- class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>,
- class _BinaryPredicate = equal_to<>>
-class _LIBCPP_TEMPLATE_VIS boyer_moore_searcher {
-private:
- typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type;
- typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type value_type;
- typedef _BMSkipTable<value_type, difference_type, _Hash, _BinaryPredicate,
- is_integral<value_type>::value && // what about enums?
- sizeof(value_type) == 1 &&
- is_same<_Hash, hash<value_type>>::value &&
- is_same<_BinaryPredicate, equal_to<>>::value
- > skip_table_type;
-
-public:
- boyer_moore_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l,
- _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate())
- : __first_(__f), __last_(__l), __pred_(__pred),
- __pattern_length_(_VSTD::distance(__first_, __last_)),
- __skip_{make_shared<skip_table_type>(__pattern_length_, -1, __hf, __pred_)},
- __suffix_{make_shared<vector<difference_type>>(__pattern_length_ + 1)}
- {
- // build the skip table
- for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i )
- __skip_->insert(*__f, __i);
-
- this->__build_suffix_table ( __first_, __last_, __pred_ );
- }
-
- template <typename _RandomAccessIterator2>
- pair<_RandomAccessIterator2, _RandomAccessIterator2>
- operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const
- {
- static_assert ( std::is_same<
- typename std::__uncvref<typename std::iterator_traits<_RandomAccessIterator1>::value_type>::type,
- typename std::__uncvref<typename std::iterator_traits<_RandomAccessIterator2>::value_type>::type
- >::value,
- "Corpus and Pattern iterators must point to the same type" );
-
- if (__f == __l ) return make_pair(__l, __l); // empty corpus
- if (__first_ == __last_) return make_pair(__f, __f); // empty pattern
-
- // If the pattern is larger than the corpus, we can't find it!
- if ( __pattern_length_ > _VSTD::distance(__f, __l))
- return make_pair(__l, __l);
-
- // Do the search
- return this->__search(__f, __l);
- }
-
-private:
- _RandomAccessIterator1 __first_;
- _RandomAccessIterator1 __last_;
- _BinaryPredicate __pred_;
- difference_type __pattern_length_;
- shared_ptr<skip_table_type> __skip_;
- shared_ptr<vector<difference_type>> __suffix_;
-
- template <typename _RandomAccessIterator2>
- pair<_RandomAccessIterator2, _RandomAccessIterator2>
- __search(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const
- {
- _RandomAccessIterator2 __cur = __f;
- const _RandomAccessIterator2 __last = __l - __pattern_length_;
- const skip_table_type & __skip = *__skip_.get();
- const vector<difference_type> & __suffix = *__suffix_.get();
-
- while (__cur <= __last)
- {
-
- // Do we match right where we are?
- difference_type __j = __pattern_length_;
- while (__pred_(__first_ [__j-1], __cur [__j-1])) {
- __j--;
- // We matched - we're done!
- if ( __j == 0 )
- return make_pair(__cur, __cur + __pattern_length_);
- }
-
- // Since we didn't match, figure out how far to skip forward
- difference_type __k = __skip[__cur [ __j - 1 ]];
- difference_type __m = __j - __k - 1;
- if (__k < __j && __m > __suffix[ __j ])
- __cur += __m;
- else
- __cur += __suffix[ __j ];
- }
-
- return make_pair(__l, __l); // We didn't find anything
- }
-
-
- template<typename _Iterator, typename _Container>
- void __compute_bm_prefix ( _Iterator __f, _Iterator __l, _BinaryPredicate __pred, _Container &__prefix )
- {
- const size_t __count = _VSTD::distance(__f, __l);
-
- __prefix[0] = 0;
- size_t __k = 0;
- for ( size_t __i = 1; __i < __count; ++__i )
- {
- while ( __k > 0 && !__pred ( __f[__k], __f[__i] ))
- __k = __prefix [ __k - 1 ];
-
- if ( __pred ( __f[__k], __f[__i] ))
- __k++;
- __prefix [ __i ] = __k;
- }
- }
-
- void __build_suffix_table(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l,
- _BinaryPredicate __pred)
- {
- const size_t __count = _VSTD::distance(__f, __l);
- vector<difference_type> & __suffix = *__suffix_.get();
- if (__count > 0)
- {
- vector<value_type> __scratch(__count);
-
- __compute_bm_prefix(__f, __l, __pred, __scratch);
- for ( size_t __i = 0; __i <= __count; __i++ )
- __suffix[__i] = __count - __scratch[__count-1];
-
- typedef reverse_iterator<_RandomAccessIterator1> _RevIter;
- __compute_bm_prefix(_RevIter(__l), _RevIter(__f), __pred, __scratch);
-
- for ( size_t __i = 0; __i < __count; __i++ )
- {
- const size_t __j = __count - __scratch[__i];
- const difference_type __k = __i - __scratch[__i] + 1;
-
- if (__suffix[__j] > __k)
- __suffix[__j] = __k;
- }
- }
- }
-
-};
-
-template<class _RandomAccessIterator,
- class _Hash = hash<typename iterator_traits<_RandomAccessIterator>::value_type>,
- class _BinaryPredicate = equal_to<>>
-_LIBCPP_INLINE_VISIBILITY
-boyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>
-make_boyer_moore_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l,
- _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ())
-{
- return boyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p);
-}
-
-// boyer-moore-horspool
-template <class _RandomAccessIterator1,
- class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>,
- class _BinaryPredicate = equal_to<>>
-class _LIBCPP_TEMPLATE_VIS boyer_moore_horspool_searcher {
-private:
- typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type;
- typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type value_type;
- typedef _BMSkipTable<value_type, difference_type, _Hash, _BinaryPredicate,
- is_integral<value_type>::value && // what about enums?
- sizeof(value_type) == 1 &&
- is_same<_Hash, hash<value_type>>::value &&
- is_same<_BinaryPredicate, equal_to<>>::value
- > skip_table_type;
-
-public:
- boyer_moore_horspool_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l,
- _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate())
- : __first_(__f), __last_(__l), __pred_(__pred),
- __pattern_length_(_VSTD::distance(__first_, __last_)),
- __skip_{_VSTD::make_shared<skip_table_type>(__pattern_length_, __pattern_length_, __hf, __pred_)}
- {
- // build the skip table
- if ( __f != __l )
- {
- __l = __l - 1;
- for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i )
- __skip_->insert(*__f, __pattern_length_ - 1 - __i);
- }
- }
-
- template <typename _RandomAccessIterator2>
- pair<_RandomAccessIterator2, _RandomAccessIterator2>
- operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const
- {
- static_assert ( std::is_same<
- typename std::__uncvref<typename std::iterator_traits<_RandomAccessIterator1>::value_type>::type,
- typename std::__uncvref<typename std::iterator_traits<_RandomAccessIterator2>::value_type>::type
- >::value,
- "Corpus and Pattern iterators must point to the same type" );
-
- if (__f == __l ) return make_pair(__l, __l); // empty corpus
- if (__first_ == __last_) return make_pair(__f, __f); // empty pattern
-
- // If the pattern is larger than the corpus, we can't find it!
- if ( __pattern_length_ > _VSTD::distance(__f, __l))
- return make_pair(__l, __l);
-
- // Do the search
- return this->__search(__f, __l);
- }
-
-private:
- _RandomAccessIterator1 __first_;
- _RandomAccessIterator1 __last_;
- _BinaryPredicate __pred_;
- difference_type __pattern_length_;
- shared_ptr<skip_table_type> __skip_;
-
- template <typename _RandomAccessIterator2>
- pair<_RandomAccessIterator2, _RandomAccessIterator2>
- __search ( _RandomAccessIterator2 __f, _RandomAccessIterator2 __l ) const {
- _RandomAccessIterator2 __cur = __f;
- const _RandomAccessIterator2 __last = __l - __pattern_length_;
- const skip_table_type & __skip = *__skip_.get();
-
- while (__cur <= __last)
- {
- // Do we match right where we are?
- difference_type __j = __pattern_length_;
- while (__pred_(__first_[__j-1], __cur[__j-1]))
- {
- __j--;
- // We matched - we're done!
- if ( __j == 0 )
- return make_pair(__cur, __cur + __pattern_length_);
- }
- __cur += __skip[__cur[__pattern_length_-1]];
- }
-
- return make_pair(__l, __l);
- }
-};
-
-template<class _RandomAccessIterator,
- class _Hash = hash<typename iterator_traits<_RandomAccessIterator>::value_type>,
- class _BinaryPredicate = equal_to<>>
-_LIBCPP_INLINE_VISIBILITY
-boyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>
-make_boyer_moore_horspool_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l,
- _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ())
-{
- return boyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p);
-}
-
-#endif // _LIBCPP_STD_VER > 11
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-_LIBCPP_POP_MACROS
-
-#endif /* _LIBCPP_EXPERIMENTAL_FUNCTIONAL */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/iterator b/contrib/libs/cxxsupp/libcxx/include/experimental/iterator
deleted file mode 100644
index 137b206354f..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/iterator
+++ /dev/null
@@ -1,119 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_ITERATOR
-#define _LIBCPP_EXPERIMENTAL_ITERATOR
-
-/*
-namespace std {
- namespace experimental {
- inline namespace fundamentals_v2 {
-
- template <class DelimT, class charT = char, class traits = char_traits<charT>>
- class ostream_joiner {
- public:
- typedef charT char_type;
- typedef traits traits_type;
- typedef basic_ostream<charT, traits> ostream_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- ostream_joiner(ostream_type& s, const DelimT& delimiter);
- ostream_joiner(ostream_type& s, DelimT&& delimiter);
-
- template<typename T>
- ostream_joiner& operator=(const T& value);
-
- ostream_joiner& operator*() noexcept;
- ostream_joiner& operator++() noexcept;
- ostream_joiner& operator++(int) noexcept;
- private:
- ostream_type* out_stream; // exposition only
- DelimT delim; // exposition only
- bool first_element; // exposition only
- };
-
- template <class charT, class traits, class DelimT>
- ostream_joiner<decay_t<DelimT>, charT, traits>
- make_ostream_joiner(basic_ostream<charT, traits>& os, DelimT&& delimiter);
-
- } // inline namespace fundamentals_v2
- } // namespace experimental
-} // namespace std
-
-*/
-
-#include <__memory/addressof.h>
-#include <__utility/forward.h>
-#include <__utility/move.h>
-#include <experimental/__config>
-#include <iterator>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 11
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
-template <class _Delim, class _CharT = char, class _Traits = char_traits<_CharT>>
-class ostream_joiner {
-public:
-
- typedef _CharT char_type;
- typedef _Traits traits_type;
- typedef basic_ostream<char_type,traits_type> ostream_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- ostream_joiner(ostream_type& __os, _Delim&& __d)
- : __output_iter(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {}
-
- ostream_joiner(ostream_type& __os, const _Delim& __d)
- : __output_iter(_VSTD::addressof(__os)), __delim(__d), __first(true) {}
-
-
- template<typename _Tp>
- ostream_joiner& operator=(const _Tp& __v)
- {
- if (!__first)
- *__output_iter << __delim;
- __first = false;
- *__output_iter << __v;
- return *this;
- }
-
- ostream_joiner& operator*() _NOEXCEPT { return *this; }
- ostream_joiner& operator++() _NOEXCEPT { return *this; }
- ostream_joiner& operator++(int) _NOEXCEPT { return *this; }
-
-private:
- ostream_type* __output_iter;
- _Delim __delim;
- bool __first;
-};
-
-
-template <class _CharT, class _Traits, class _Delim>
-ostream_joiner<typename decay<_Delim>::type, _CharT, _Traits>
-make_ostream_joiner(basic_ostream<_CharT, _Traits>& __os, _Delim && __d)
-{ return ostream_joiner<typename decay<_Delim>::type, _CharT, _Traits>(__os, _VSTD::forward<_Delim>(__d)); }
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-#endif // _LIBCPP_STD_VER > 11
-
-#endif // _LIBCPP_EXPERIMENTAL_ITERATOR
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/list b/contrib/libs/cxxsupp/libcxx/include/experimental/list
deleted file mode 100644
index d15d816444e..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/list
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_LIST
-#define _LIBCPP_EXPERIMENTAL_LIST
-/*
- experimental/list synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class T>
- using list = std::list<T,polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <list>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _ValueT>
-using list = _VSTD::list<_ValueT, polymorphic_allocator<_ValueT>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_LIST */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/map b/contrib/libs/cxxsupp/libcxx/include/experimental/map
deleted file mode 100644
index 25bc56ccb4d..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/map
+++ /dev/null
@@ -1,56 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_MAP
-#define _LIBCPP_EXPERIMENTAL_MAP
-/*
- experimental/map synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class Key, class T, class Compare = less<Key>>
- using map = std::map<Key, T, Compare,
- polymorphic_allocator<pair<const Key,T>>>;
-
- template <class Key, class T, class Compare = less<Key>>
- using multimap = std::multimap<Key, T, Compare,
- polymorphic_allocator<pair<const Key,T>>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <map>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _Key, class _Value, class _Compare = less<_Key>>
-using map = _VSTD::map<_Key, _Value, _Compare,
- polymorphic_allocator<pair<const _Key, _Value>>>;
-
-template <class _Key, class _Value, class _Compare = less<_Key>>
-using multimap = _VSTD::multimap<_Key, _Value, _Compare,
- polymorphic_allocator<pair<const _Key, _Value>>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_MAP */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/memory_resource b/contrib/libs/cxxsupp/libcxx/include/experimental/memory_resource
deleted file mode 100644
index da3e1033eb1..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/memory_resource
+++ /dev/null
@@ -1,419 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE
-#define _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE
-
-/**
- experimental/memory_resource synopsis
-
-// C++1y
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- class memory_resource;
-
- bool operator==(const memory_resource& a,
- const memory_resource& b) noexcept;
- bool operator!=(const memory_resource& a,
- const memory_resource& b) noexcept;
-
- template <class Tp> class polymorphic_allocator;
-
- template <class T1, class T2>
- bool operator==(const polymorphic_allocator<T1>& a,
- const polymorphic_allocator<T2>& b) noexcept;
- template <class T1, class T2>
- bool operator!=(const polymorphic_allocator<T1>& a,
- const polymorphic_allocator<T2>& b) noexcept;
-
- // The name resource_adaptor_imp is for exposition only.
- template <class Allocator> class resource_adaptor_imp;
-
- template <class Allocator>
- using resource_adaptor = resource_adaptor_imp<
- allocator_traits<Allocator>::rebind_alloc<char>>;
-
- // Global memory resources
- memory_resource* new_delete_resource() noexcept;
- memory_resource* null_memory_resource() noexcept;
-
- // The default memory resource
- memory_resource* set_default_resource(memory_resource* r) noexcept;
- memory_resource* get_default_resource() noexcept;
-
- // Standard memory resources
- struct pool_options;
- class synchronized_pool_resource;
- class unsynchronized_pool_resource;
- class monotonic_buffer_resource;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <__debug>
-#include <__tuple>
-#include <cstddef>
-#include <cstdlib>
-#include <experimental/__config>
-#include <experimental/__memory>
-#include <limits>
-#include <memory>
-#include <new>
-#include <stdexcept>
-#include <type_traits>
-#include <utility>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-// Round __s up to next multiple of __a.
-inline _LIBCPP_INLINE_VISIBILITY
-size_t __aligned_allocation_size(size_t __s, size_t __a) _NOEXCEPT
-{
- _LIBCPP_ASSERT(__s + __a > __s, "aligned allocation size overflows");
- return (__s + __a - 1) & ~(__a - 1);
-}
-
-// 8.5, memory.resource
-class _LIBCPP_TYPE_VIS memory_resource
-{
- static const size_t __max_align = _LIBCPP_ALIGNOF(max_align_t);
-
-// 8.5.2, memory.resource.public
-public:
- virtual ~memory_resource() = default;
-
- _LIBCPP_INLINE_VISIBILITY
- void* allocate(size_t __bytes, size_t __align = __max_align)
- { return do_allocate(__bytes, __align); }
-
- _LIBCPP_INLINE_VISIBILITY
- void deallocate(void * __p, size_t __bytes, size_t __align = __max_align)
- { do_deallocate(__p, __bytes, __align); }
-
- _LIBCPP_INLINE_VISIBILITY
- bool is_equal(memory_resource const & __other) const _NOEXCEPT
- { return do_is_equal(__other); }
-
-// 8.5.3, memory.resource.priv
-private:
- virtual void* do_allocate(size_t, size_t) = 0;
- virtual void do_deallocate(void*, size_t, size_t) = 0;
- virtual bool do_is_equal(memory_resource const &) const _NOEXCEPT = 0;
-};
-
-// 8.5.4, memory.resource.eq
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator==(memory_resource const & __lhs,
- memory_resource const & __rhs) _NOEXCEPT
-{
- return &__lhs == &__rhs || __lhs.is_equal(__rhs);
-}
-
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator!=(memory_resource const & __lhs,
- memory_resource const & __rhs) _NOEXCEPT
-{
- return !(__lhs == __rhs);
-}
-
-_LIBCPP_FUNC_VIS
-memory_resource * new_delete_resource() _NOEXCEPT;
-
-_LIBCPP_FUNC_VIS
-memory_resource * null_memory_resource() _NOEXCEPT;
-
-_LIBCPP_FUNC_VIS
-memory_resource * get_default_resource() _NOEXCEPT;
-
-_LIBCPP_FUNC_VIS
-memory_resource * set_default_resource(memory_resource * __new_res) _NOEXCEPT;
-
-// 8.6, memory.polymorphic.allocator.class
-
-// 8.6.1, memory.polymorphic.allocator.overview
-template <class _ValueType>
-class _LIBCPP_TEMPLATE_VIS polymorphic_allocator
-{
-public:
- typedef _ValueType value_type;
-
- // 8.6.2, memory.polymorphic.allocator.ctor
- _LIBCPP_INLINE_VISIBILITY
- polymorphic_allocator() _NOEXCEPT
- : __res_(_VSTD_LFTS_PMR::get_default_resource())
- {}
-
- _LIBCPP_INLINE_VISIBILITY
- polymorphic_allocator(memory_resource * __r) _NOEXCEPT
- : __res_(__r)
- {}
-
- polymorphic_allocator(polymorphic_allocator const &) = default;
-
- template <class _Tp>
- _LIBCPP_INLINE_VISIBILITY
- polymorphic_allocator(polymorphic_allocator<_Tp> const & __other) _NOEXCEPT
- : __res_(__other.resource())
- {}
-
- polymorphic_allocator &
- operator=(polymorphic_allocator const &) = delete;
-
- // 8.6.3, memory.polymorphic.allocator.mem
- _LIBCPP_INLINE_VISIBILITY
- _ValueType* allocate(size_t __n) {
- if (__n > __max_size())
- __throw_bad_array_new_length();
- return static_cast<_ValueType*>(
- __res_->allocate(__n * sizeof(_ValueType), _LIBCPP_ALIGNOF(_ValueType))
- );
- }
-
- _LIBCPP_INLINE_VISIBILITY
- void deallocate(_ValueType * __p, size_t __n) _NOEXCEPT {
- _LIBCPP_ASSERT(__n <= __max_size(),
- "deallocate called for size which exceeds max_size()");
- __res_->deallocate(__p, __n * sizeof(_ValueType), _LIBCPP_ALIGNOF(_ValueType));
- }
-
- template <class _Tp, class ..._Ts>
- _LIBCPP_INLINE_VISIBILITY
- void construct(_Tp* __p, _Ts &&... __args)
- {
- _VSTD_LFTS::__lfts_user_alloc_construct(
- __p, *this, _VSTD::forward<_Ts>(__args)...
- );
- }
-
- template <class _T1, class _T2, class ..._Args1, class ..._Args2>
- _LIBCPP_INLINE_VISIBILITY
- void construct(pair<_T1, _T2>* __p, piecewise_construct_t,
- tuple<_Args1...> __x, tuple<_Args2...> __y)
- {
- ::new ((void*)__p) pair<_T1, _T2>(piecewise_construct
- , __transform_tuple(
- typename __lfts_uses_alloc_ctor<
- _T1, polymorphic_allocator&, _Args1...
- >::type()
- , _VSTD::move(__x)
- , typename __make_tuple_indices<sizeof...(_Args1)>::type{}
- )
- , __transform_tuple(
- typename __lfts_uses_alloc_ctor<
- _T2, polymorphic_allocator&, _Args2...
- >::type()
- , _VSTD::move(__y)
- , typename __make_tuple_indices<sizeof...(_Args2)>::type{}
- )
- );
- }
-
- template <class _T1, class _T2>
- _LIBCPP_INLINE_VISIBILITY
- void construct(pair<_T1, _T2>* __p) {
- construct(__p, piecewise_construct, tuple<>(), tuple<>());
- }
-
- template <class _T1, class _T2, class _Up, class _Vp>
- _LIBCPP_INLINE_VISIBILITY
- void construct(pair<_T1, _T2> * __p, _Up && __u, _Vp && __v) {
- construct(__p, piecewise_construct
- , _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__u))
- , _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__v)));
- }
-
- template <class _T1, class _T2, class _U1, class _U2>
- _LIBCPP_INLINE_VISIBILITY
- void construct(pair<_T1, _T2> * __p, pair<_U1, _U2> const & __pr) {
- construct(__p, piecewise_construct
- , _VSTD::forward_as_tuple(__pr.first)
- , _VSTD::forward_as_tuple(__pr.second));
- }
-
- template <class _T1, class _T2, class _U1, class _U2>
- _LIBCPP_INLINE_VISIBILITY
- void construct(pair<_T1, _T2> * __p, pair<_U1, _U2> && __pr){
- construct(__p, piecewise_construct
- , _VSTD::forward_as_tuple(_VSTD::forward<_U1>(__pr.first))
- , _VSTD::forward_as_tuple(_VSTD::forward<_U2>(__pr.second)));
- }
-
- template <class _Tp>
- _LIBCPP_INLINE_VISIBILITY
- void destroy(_Tp * __p) _NOEXCEPT
- { __p->~_Tp(); }
-
- _LIBCPP_INLINE_VISIBILITY
- polymorphic_allocator
- select_on_container_copy_construction() const _NOEXCEPT
- { return polymorphic_allocator(); }
-
- _LIBCPP_INLINE_VISIBILITY
- memory_resource * resource() const _NOEXCEPT
- { return __res_; }
-
-private:
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<_Args&&...>
- __transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t,
- __tuple_indices<_Idx...>) const
- {
- return _VSTD::forward_as_tuple(_VSTD::get<_Idx>(_VSTD::move(__t))...);
- }
-
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<allocator_arg_t const&, polymorphic_allocator&, _Args&&...>
- __transform_tuple(integral_constant<int, 1>, tuple<_Args...> && __t,
- __tuple_indices<_Idx...>)
- {
- using _Tup = tuple<allocator_arg_t const&, polymorphic_allocator&, _Args&&...>;
- return _Tup(allocator_arg, *this,
- _VSTD::get<_Idx>(_VSTD::move(__t))...);
- }
-
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<_Args&&..., polymorphic_allocator&>
- __transform_tuple(integral_constant<int, 2>, tuple<_Args...> && __t,
- __tuple_indices<_Idx...>)
- {
- using _Tup = tuple<_Args&&..., polymorphic_allocator&>;
- return _Tup(_VSTD::get<_Idx>(_VSTD::move(__t))..., *this);
- }
-
- _LIBCPP_INLINE_VISIBILITY
- size_t __max_size() const _NOEXCEPT
- { return numeric_limits<size_t>::max() / sizeof(value_type); }
-
- memory_resource * __res_;
-};
-
-// 8.6.4, memory.polymorphic.allocator.eq
-
-template <class _Tp, class _Up>
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator==(polymorphic_allocator<_Tp> const & __lhs,
- polymorphic_allocator<_Up> const & __rhs) _NOEXCEPT
-{
- return *__lhs.resource() == *__rhs.resource();
-}
-
-template <class _Tp, class _Up>
-inline _LIBCPP_INLINE_VISIBILITY
-bool operator!=(polymorphic_allocator<_Tp> const & __lhs,
- polymorphic_allocator<_Up> const & __rhs) _NOEXCEPT
-{
- return !(__lhs == __rhs);
-}
-
-// 8.7, memory.resource.adaptor
-
-// 8.7.1, memory.resource.adaptor.overview
-template <class _CharAlloc>
-class _LIBCPP_TEMPLATE_VIS __resource_adaptor_imp
- : public memory_resource
-{
- using _CTraits = allocator_traits<_CharAlloc>;
- static_assert(is_same<typename _CTraits::value_type, char>::value
- && is_same<typename _CTraits::pointer, char*>::value
- && is_same<typename _CTraits::void_pointer, void*>::value, "");
-
- static const size_t _MaxAlign = _LIBCPP_ALIGNOF(max_align_t);
-
- using _Alloc = typename _CTraits::template rebind_alloc<
- typename aligned_storage<_MaxAlign, _MaxAlign>::type
- >;
-
- using _ValueType = typename _Alloc::value_type;
-
- _Alloc __alloc_;
-
-public:
- typedef _CharAlloc allocator_type;
-
- __resource_adaptor_imp() = default;
- __resource_adaptor_imp(__resource_adaptor_imp const &) = default;
- __resource_adaptor_imp(__resource_adaptor_imp &&) = default;
-
- // 8.7.2, memory.resource.adaptor.ctor
-
- _LIBCPP_INLINE_VISIBILITY
- explicit __resource_adaptor_imp(allocator_type const & __a)
- : __alloc_(__a)
- {}
-
- _LIBCPP_INLINE_VISIBILITY
- explicit __resource_adaptor_imp(allocator_type && __a)
- : __alloc_(_VSTD::move(__a))
- {}
-
- __resource_adaptor_imp &
- operator=(__resource_adaptor_imp const &) = default;
-
- _LIBCPP_INLINE_VISIBILITY
- allocator_type get_allocator() const
- { return __alloc_; }
-
-// 8.7.3, memory.resource.adaptor.mem
-private:
- virtual void * do_allocate(size_t __bytes, size_t)
- {
- if (__bytes > __max_size())
- __throw_bad_array_new_length();
- size_t __s = __aligned_allocation_size(__bytes, _MaxAlign) / _MaxAlign;
- return __alloc_.allocate(__s);
- }
-
- virtual void do_deallocate(void * __p, size_t __bytes, size_t)
- {
- _LIBCPP_ASSERT(__bytes <= __max_size(),
- "do_deallocate called for size which exceeds the maximum allocation size");
- size_t __s = __aligned_allocation_size(__bytes, _MaxAlign) / _MaxAlign;
- __alloc_.deallocate((_ValueType*)__p, __s);
- }
-
- virtual bool do_is_equal(memory_resource const & __other) const _NOEXCEPT {
- __resource_adaptor_imp const * __p
- = dynamic_cast<__resource_adaptor_imp const *>(&__other);
- return __p ? __alloc_ == __p->__alloc_ : false;
- }
-
- _LIBCPP_INLINE_VISIBILITY
- size_t __max_size() const _NOEXCEPT {
- return numeric_limits<size_t>::max() - _MaxAlign;
- }
-};
-
-template <class _Alloc>
-using resource_adaptor = __resource_adaptor_imp<
- typename allocator_traits<_Alloc>::template rebind_alloc<char>
- >;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-_LIBCPP_POP_MACROS
-
-#endif /* _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/propagate_const b/contrib/libs/cxxsupp/libcxx/include/experimental/propagate_const
deleted file mode 100644
index c2774b19d3b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/propagate_const
+++ /dev/null
@@ -1,576 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
-#define _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
-/*
- propagate_const synopsis
-
- namespace std { namespace experimental { inline namespace fundamentals_v2 {
-
- // [propagate_const]
- template <class T> class propagate_const;
-
- // [propagate_const.underlying], underlying pointer access
- constexpr const _Tp& _VSTD_LFTS_V2::get_underlying(const propagate_const<T>& pt) noexcept;
- constexpr T& _VSTD_LFTS_V2::get_underlying(propagate_const<T>& pt) noexcept;
-
- // [propagate_const.relational], relational operators
- template <class T> constexpr bool operator==(const propagate_const<T>& pt, nullptr_t);
- template <class T> constexpr bool operator==(nullptr_t, const propagate_const<T>& pu);
- template <class T> constexpr bool operator!=(const propagate_const<T>& pt, nullptr_t);
- template <class T> constexpr bool operator!=(nullptr_t, const propagate_const<T>& pu);
- template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const _Up& u);
- template <class T, class U> constexpr bool operator==(const _Tp& t, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator!=(const _Tp& t, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator<(const _Tp& t, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator>(const _Tp& t, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator<=(const _Tp& t, const propagate_const<_Up>& pu);
- template <class T, class U> constexpr bool operator>=(const _Tp& t, const propagate_const<_Up>& pu);
-
- // [propagate_const.algorithms], specialized algorithms
- template <class T> constexpr void swap(propagate_const<T>& pt, propagate_const<T>& pu) noexcept(see below);
-
- template <class T>
- class propagate_const
- {
-
- public:
- typedef remove_reference_t<decltype(*declval<T&>())> element_type;
-
- // [propagate_const.ctor], constructors
- constexpr propagate_const() = default;
- propagate_const(const propagate_const& p) = delete;
- constexpr propagate_const(propagate_const&& p) = default;
- template <class U> EXPLICIT constexpr propagate_const(propagate_const<_Up>&& pu); // see below
- template <class U> EXPLICIT constexpr propagate_const(U&& u); // see below
-
- // [propagate_const.assignment], assignment
- propagate_const& operator=(const propagate_const& p) = delete;
- constexpr propagate_const& operator=(propagate_const&& p) = default;
- template <class U> constexpr propagate_const& operator=(propagate_const<_Up>&& pu);
- template <class U> constexpr propagate_const& operator=(U&& u); // see below
-
- // [propagate_const.const_observers], const observers
- explicit constexpr operator bool() const;
- constexpr const element_type* operator->() const;
- constexpr operator const element_type*() const; // Not always defined
- constexpr const element_type& operator*() const;
- constexpr const element_type* get() const;
-
- // [propagate_const.non_const_observers], non-const observers
- constexpr element_type* operator->();
- constexpr operator element_type*(); // Not always defined
- constexpr element_type& operator*();
- constexpr element_type* get();
-
- // [propagate_const.modifiers], modifiers
- constexpr void swap(propagate_const& pt) noexcept(see below)
-
- private:
- T t_; // exposition only
- };
-
- } // namespace fundamentals_v2
- } // namespace experimental
-
- // [propagate_const.hash], hash support
- template <class T> struct hash<experimental::fundamentals_v2::propagate_const<T>>;
-
- // [propagate_const.comparison_function_objects], comparison function objects
- template <class T> struct equal_to<experimental::fundamentals_v2::propagate_const<T>>;
- template <class T> struct not_equal_to<experimental::fundamentals_v2::propagate_const<T>>;
- template <class T> struct less<experimental::fundamentals_v2::propagate_const<T>>;
- template <class T> struct greater<experimental::fundamentals_v2::propagate_const<T>>;
- template <class T> struct less_equal<experimental::fundamentals_v2::propagate_const<T>>;
- template <class T> struct greater_equal<experimental::fundamentals_v2::propagate_const<T>>;
-
-} // namespace std
-
-*/
-
-#include <experimental/__config>
-#include <functional>
-#include <type_traits>
-#include <utility>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#if _LIBCPP_STD_VER > 11
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_V2
-
-template <class _Tp>
-class propagate_const;
-
-template <class _Up>
-inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
-const _Up& get_underlying(const propagate_const<_Up>& __pu) _NOEXCEPT;
-
-template <class _Up>
-inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
-_Up& get_underlying(propagate_const<_Up>& __pu) _NOEXCEPT;
-
-template <class _Tp>
-class propagate_const
-{
-public:
- typedef remove_reference_t<decltype(*declval<_Tp&>())> element_type;
-
- static_assert(!is_array<_Tp>::value,
- "Instantiation of propagate_const with an array type is ill-formed.");
- static_assert(!is_reference<_Tp>::value,
- "Instantiation of propagate_const with a reference type is ill-formed.");
- static_assert(!(is_pointer<_Tp>::value && is_function<typename remove_pointer<_Tp>::type>::value),
- "Instantiation of propagate_const with a function-pointer type is ill-formed.");
- static_assert(!(is_pointer<_Tp>::value && is_same<typename remove_cv<typename remove_pointer<_Tp>::type>::type, void>::value),
- "Instantiation of propagate_const with a pointer to (possibly cv-qualified) void is ill-formed.");
-
-private:
- template <class _Up>
- static _LIBCPP_CONSTEXPR element_type* __get_pointer(_Up* __u)
- {
- return __u;
- }
-
- template <class _Up>
- static _LIBCPP_CONSTEXPR element_type* __get_pointer(_Up& __u)
- {
- return __get_pointer(__u.get());
- }
-
- template <class _Up>
- static _LIBCPP_CONSTEXPR const element_type* __get_pointer(const _Up* __u)
- {
- return __u;
- }
-
- template <class _Up>
- static _LIBCPP_CONSTEXPR const element_type* __get_pointer(const _Up& __u)
- {
- return __get_pointer(__u.get());
- }
-
- template <class _Up>
- struct __is_propagate_const : false_type
- {
- };
-
- template <class _Up>
- struct __is_propagate_const<propagate_const<_Up>> : true_type
- {
- };
-
- _Tp __t_;
-
-public:
-
- template <class _Up> friend _LIBCPP_CONSTEXPR const _Up& ::_VSTD_LFTS_V2::get_underlying(const propagate_const<_Up>& __pu) _NOEXCEPT;
- template <class _Up> friend _LIBCPP_CONSTEXPR _Up& ::_VSTD_LFTS_V2::get_underlying(propagate_const<_Up>& __pu) _NOEXCEPT;
-
- _LIBCPP_CONSTEXPR propagate_const() = default;
-
- propagate_const(const propagate_const&) = delete;
-
- _LIBCPP_CONSTEXPR propagate_const(propagate_const&&) = default;
-
- template <class _Up, enable_if_t<!is_convertible<_Up, _Tp>::value &&
- is_constructible<_Tp, _Up&&>::value,bool> = true>
- explicit _LIBCPP_CONSTEXPR propagate_const(propagate_const<_Up>&& __pu)
- : __t_(std::move(_VSTD_LFTS_V2::get_underlying(__pu)))
- {
- }
-
- template <class _Up, enable_if_t<is_convertible<_Up&&, _Tp>::value &&
- is_constructible<_Tp, _Up&&>::value,bool> = false>
- _LIBCPP_CONSTEXPR propagate_const(propagate_const<_Up>&& __pu)
- : __t_(std::move(_VSTD_LFTS_V2::get_underlying(__pu)))
- {
- }
-
- template <class _Up, enable_if_t<!is_convertible<_Up&&, _Tp>::value &&
- is_constructible<_Tp, _Up&&>::value &&
- !__is_propagate_const<decay_t<_Up>>::value,bool> = true>
- explicit _LIBCPP_CONSTEXPR propagate_const(_Up&& __u)
- : __t_(std::forward<_Up>(__u))
- {
- }
-
- template <class _Up, enable_if_t<is_convertible<_Up&&, _Tp>::value &&
- is_constructible<_Tp, _Up&&>::value &&
- !__is_propagate_const<decay_t<_Up>>::value,bool> = false>
- _LIBCPP_CONSTEXPR propagate_const(_Up&& __u)
- : __t_(std::forward<_Up>(__u))
- {
- }
-
- propagate_const& operator=(const propagate_const&) = delete;
-
- _LIBCPP_CONSTEXPR propagate_const& operator=(propagate_const&&) = default;
-
- template <class _Up>
- _LIBCPP_CONSTEXPR propagate_const& operator=(propagate_const<_Up>&& __pu)
- {
- __t_ = std::move(_VSTD_LFTS_V2::get_underlying(__pu));
- return *this;
- }
-
- template <class _Up, class _Vp = enable_if_t<!__is_propagate_const<decay_t<_Up>>::value>>
- _LIBCPP_CONSTEXPR propagate_const& operator=(_Up&& __u)
- {
- __t_ = std::forward<_Up>(__u);
- return *this;
- }
-
- _LIBCPP_CONSTEXPR const element_type* get() const
- {
- return __get_pointer(__t_);
- }
-
- _LIBCPP_CONSTEXPR element_type* get()
- {
- return __get_pointer(__t_);
- }
-
- explicit _LIBCPP_CONSTEXPR operator bool() const
- {
- return get() != nullptr;
- }
-
- _LIBCPP_CONSTEXPR const element_type* operator->() const
- {
- return get();
- }
-
- template <class _Tp_ = _Tp, class _Up = enable_if_t<is_convertible<
- const _Tp_, const element_type *>::value>>
- _LIBCPP_CONSTEXPR operator const element_type *() const {
- return get();
- }
-
- _LIBCPP_CONSTEXPR const element_type& operator*() const
- {
- return *get();
- }
-
- _LIBCPP_CONSTEXPR element_type* operator->()
- {
- return get();
- }
-
- template <class _Tp_ = _Tp, class _Up = enable_if_t<
- is_convertible<_Tp_, element_type *>::value>>
- _LIBCPP_CONSTEXPR operator element_type *() {
- return get();
- }
-
- _LIBCPP_CONSTEXPR element_type& operator*()
- {
- return *get();
- }
-
- _LIBCPP_CONSTEXPR void swap(propagate_const& __pt) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)
- {
- using _VSTD::swap;
- swap(__t_, __pt.__t_);
- }
-};
-
-
-template <class _Tp>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt, nullptr_t)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) == nullptr;
-}
-
-template <class _Tp>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator==(nullptr_t, const propagate_const<_Tp>& __pt)
-{
- return nullptr == _VSTD_LFTS_V2::get_underlying(__pt);
-}
-
-template <class _Tp>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt, nullptr_t)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) != nullptr;
-}
-
-template <class _Tp>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator!=(nullptr_t, const propagate_const<_Tp>& __pt)
-{
- return nullptr != _VSTD_LFTS_V2::get_underlying(__pt);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) == _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) != _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) < _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) > _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<=(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) <= _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>=(const propagate_const<_Tp>& __pt,
- const propagate_const<_Up>& __pu)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) >= _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) == __u;
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) != __u;
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) < __u;
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) > __u;
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<=(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) <= __u;
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>=(const propagate_const<_Tp>& __pt, const _Up& __u)
-{
- return _VSTD_LFTS_V2::get_underlying(__pt) >= __u;
-}
-
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator==(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t == _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator!=(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t != _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t < _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t > _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator<=(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t <= _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp, class _Up>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR bool operator>=(const _Tp& __t, const propagate_const<_Up>& __pu)
-{
- return __t >= _VSTD_LFTS_V2::get_underlying(__pu);
-}
-
-template <class _Tp>
-_LIBCPP_INLINE_VISIBILITY
-_LIBCPP_CONSTEXPR void swap(propagate_const<_Tp>& __pc1, propagate_const<_Tp>& __pc2) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)
-{
- __pc1.swap(__pc2);
-}
-
-template <class _Tp>
-_LIBCPP_CONSTEXPR const _Tp& get_underlying(const propagate_const<_Tp>& __pt) _NOEXCEPT
-{
- return __pt.__t_;
-}
-
-template <class _Tp>
-_LIBCPP_CONSTEXPR _Tp& get_underlying(propagate_const<_Tp>& __pt) _NOEXCEPT
-{
- return __pt.__t_;
-}
-
-_LIBCPP_END_NAMESPACE_LFTS_V2
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-template <class _Tp>
-struct hash<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef size_t result_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> argument_type;
-
- size_t operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1) const
- {
- return std::hash<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1));
- }
-};
-
-template <class _Tp>
-struct equal_to<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::equal_to<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-template <class _Tp>
-struct not_equal_to<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::not_equal_to<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-template <class _Tp>
-struct less<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::less<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-template <class _Tp>
-struct greater<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::greater<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-template <class _Tp>
-struct less_equal<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::less_equal<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-template <class _Tp>
-struct greater_equal<experimental::fundamentals_v2::propagate_const<_Tp>>
-{
- typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;
- typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;
-
- bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,
- const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const
- {
- return std::greater_equal<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));
- }
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_STD_VER > 11
-#endif // _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/regex b/contrib/libs/cxxsupp/libcxx/include/experimental/regex
deleted file mode 100644
index f108d2e8d0c..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/regex
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_REGEX
-#define _LIBCPP_EXPERIMENTAL_REGEX
-/*
- experimental/regex synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class BidirectionalIterator>
- using match_results =
- std::match_results<BidirectionalIterator,
- polymorphic_allocator<sub_match<BidirectionalIterator>>>;
-
- typedef match_results<const char*> cmatch;
- typedef match_results<const wchar_t*> wcmatch;
- typedef match_results<string::const_iterator> smatch;
- typedef match_results<wstring::const_iterator> wsmatch;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <experimental/string>
-#include <regex>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _BiDirIter>
-using match_results =
- _VSTD::match_results<_BiDirIter,
- polymorphic_allocator<_VSTD::sub_match<_BiDirIter>>>;
-
-typedef match_results<const char*> cmatch;
-typedef match_results<_VSTD_LFTS_PMR::string::const_iterator> smatch;
-#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
-typedef match_results<const wchar_t*> wcmatch;
-typedef match_results<_VSTD_LFTS_PMR::wstring::const_iterator> wsmatch;
-#endif
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_REGEX */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/set b/contrib/libs/cxxsupp/libcxx/include/experimental/set
deleted file mode 100644
index 208952cb44d..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/set
+++ /dev/null
@@ -1,56 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_SET
-#define _LIBCPP_EXPERIMENTAL_SET
-/*
- experimental/set synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class Key, class T, class Compare = less<Key>>
- using set = std::set<Key, T, Compare,
- polymorphic_allocator<pair<const Key,T>>>;
-
- template <class Key, class T, class Compare = less<Key>>
- using multiset = std::multiset<Key, T, Compare,
- polymorphic_allocator<pair<const Key,T>>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <set>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _Value, class _Compare = less<_Value>>
-using set = _VSTD::set<_Value, _Compare,
- polymorphic_allocator<_Value>>;
-
-template <class _Value, class _Compare = less<_Value>>
-using multiset = _VSTD::multiset<_Value, _Compare,
- polymorphic_allocator<_Value>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_SET */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/simd b/contrib/libs/cxxsupp/libcxx/include/experimental/simd
deleted file mode 100644
index 6e8bfab4c35..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/simd
+++ /dev/null
@@ -1,1572 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#ifndef _LIBCPP_EXPERIMENTAL_SIMD
-#define _LIBCPP_EXPERIMENTAL_SIMD
-
-/*
- experimental/simd synopsis
-
-namespace std::experimental {
-
-inline namespace parallelism_v2 {
-
-namespace simd_abi {
-
-struct scalar {};
-template <int N> struct fixed_size {};
-template <typename T> inline constexpr int max_fixed_size = implementation-defined;
-template <typename T> using compatible = implementation-defined;
-template <typename T> using native = implementation-defined;
-
-} // simd_abi
-
-struct element_aligned_tag {};
-struct vector_aligned_tag {};
-template <size_t> struct overaligned_tag {};
-inline constexpr element_aligned_tag element_aligned{};
-inline constexpr vector_aligned_tag vector_aligned{};
-template <size_t N> inline constexpr overaligned_tag<N> overaligned{};
-
-// traits [simd.traits]
-template <class T> struct is_abi_tag;
-template <class T> inline constexpr bool is_abi_tag_v = is_abi_tag<T>::value;
-
-template <class T> struct is_simd;
-template <class T> inline constexpr bool is_simd_v = is_simd<T>::value;
-
-template <class T> struct is_simd_mask;
-template <class T> inline constexpr bool is_simd_mask_v = is_simd_mask<T>::value;
-
-template <class T> struct is_simd_flag_type;
-template <class T> inline constexpr bool is_simd_flag_type_v = is_simd_flag_type<T>::value;
-
-template <class T, size_t N> struct abi_for_size { using type = see below; };
-template <class T, size_t N> using abi_for_size_t = typename abi_for_size<T, N>::type;
-
-template <class T, class Abi = simd_abi::compatible<T>> struct simd_size;
-template <class T, class Abi = simd_abi::compatible<T>>
-inline constexpr size_t simd_size_v = simd_size<T, Abi>::value;
-
-template <class T, class U = typename T::value_type> struct memory_alignment;
-template <class T, class U = typename T::value_type>
-inline constexpr size_t memory_alignment_v = memory_alignment<T, U>::value;
-
-// class template simd [simd.class]
-template <class T, class Abi = simd_abi::compatible<T>> class simd;
-template <class T> using native_simd = simd<T, simd_abi::native<T>>;
-template <class T, int N> using fixed_size_simd = simd<T, simd_abi::fixed_size<N>>;
-
-// class template simd_mask [simd.mask.class]
-template <class T, class Abi = simd_abi::compatible<T>> class simd_mask;
-template <class T> using native_simd_mask = simd_mask<T, simd_abi::native<T>>;
-template <class T, int N> using fixed_size_simd_mask = simd_mask<T, simd_abi::fixed_size<N>>;
-
-// casts [simd.casts]
-template <class T, class U, class Abi> see below simd_cast(const simd<U, Abi>&);
-template <class T, class U, class Abi> see below static_simd_cast(const simd<U, Abi>&);
-
-template <class T, class Abi>
-fixed_size_simd<T, simd_size_v<T, Abi>> to_fixed_size(const simd<T, Abi>&) noexcept;
-template <class T, class Abi>
-fixed_size_simd_mask<T, simd_size_v<T, Abi>> to_fixed_size(const simd_mask<T, Abi>&) noexcept;
-template <class T, size_t N> native_simd<T> to_native(const fixed_size_simd<T, N>&) noexcept;
-template <class T, size_t N>
-native_simd_mask<T> to_native(const fixed_size_simd_mask<T, N>> &) noexcept;
-template <class T, size_t N> simd<T> to_compatible(const fixed_size_simd<T, N>&) noexcept;
-template <class T, size_t N> simd_mask<T> to_compatible(const fixed_size_simd_mask<T, N>&) noexcept;
-
-template <size_t... Sizes, class T, class Abi>
-tuple<simd<T, abi_for_size_t<Sizes>>...> split(const simd<T, Abi>&);
-template <size_t... Sizes, class T, class Abi>
-tuple<simd_mask<T, abi_for_size_t<Sizes>>...> split(const simd_mask<T, Abi>&);
-template <class V, class Abi>
-array<V, simd_size_v<typename V::value_type, Abi> / V::size()> split(
-const simd<typename V::value_type, Abi>&);
-template <class V, class Abi>
-array<V, simd_size_v<typename V::value_type, Abi> / V::size()> split(
-const simd_mask<typename V::value_type, Abi>&);
-
-template <class T, class... Abis>
-simd<T, abi_for_size_t<T, (simd_size_v<T, Abis> + ...)>> concat(const simd<T, Abis>&...);
-template <class T, class... Abis>
-simd_mask<T, abi_for_size_t<T, (simd_size_v<T, Abis> + ...)>> concat(const simd_mask<T, Abis>&...);
-
-// reductions [simd.mask.reductions]
-template <class T, class Abi> bool all_of(const simd_mask<T, Abi>&) noexcept;
-template <class T, class Abi> bool any_of(const simd_mask<T, Abi>&) noexcept;
-template <class T, class Abi> bool none_of(const simd_mask<T, Abi>&) noexcept;
-template <class T, class Abi> bool some_of(const simd_mask<T, Abi>&) noexcept;
-template <class T, class Abi> int popcount(const simd_mask<T, Abi>&) noexcept;
-template <class T, class Abi> int find_first_set(const simd_mask<T, Abi>&);
-template <class T, class Abi> int find_last_set(const simd_mask<T, Abi>&);
-
-bool all_of(see below) noexcept;
-bool any_of(see below) noexcept;
-bool none_of(see below) noexcept;
-bool some_of(see below) noexcept;
-int popcount(see below) noexcept;
-int find_first_set(see below) noexcept;
-int find_last_set(see below) noexcept;
-
-// masked assignment [simd.whereexpr]
-template <class M, class T> class const_where_expression;
-template <class M, class T> class where_expression;
-
-// masked assignment [simd.mask.where]
-template <class T> struct nodeduce { using type = T; }; // exposition only
-
-template <class T> using nodeduce_t = typename nodeduce<T>::type; // exposition only
-
-template <class T, class Abi>
-where_expression<simd_mask<T, Abi>, simd<T, Abi>>
-where(const typename simd<T, Abi>::mask_type&, simd<T, Abi>&) noexcept;
-
-template <class T, class Abi>
-const_where_expression<simd_mask<T, Abi>, const simd<T, Abi>>
-where(const typename simd<T, Abi>::mask_type&, const simd<T, Abi>&) noexcept;
-
-template <class T, class Abi>
-where_expression<simd_mask<T, Abi>, simd_mask<T, Abi>>
-where(const nodeduce_t<simd_mask<T, Abi>>&, simd_mask<T, Abi>&) noexcept;
-
-template <class T, class Abi>
-const_where_expression<simd_mask<T, Abi>, const simd_mask<T, Abi>>
-where(const nodeduce_t<simd_mask<T, Abi>>&, const simd_mask<T, Abi>&) noexcept;
-
-template <class T> where_expression<bool, T> where(see below k, T& d) noexcept;
-
-template <class T>
-const_where_expression<bool, const T> where(see below k, const T& d) noexcept;
-
-// reductions [simd.reductions]
-template <class T, class Abi, class BinaryOperation = std::plus<>>
-T reduce(const simd<T, Abi>&, BinaryOperation = BinaryOperation());
-
-template <class M, class V, class BinaryOperation>
-typename V::value_type reduce(const const_where_expression<M, V>& x,
-typename V::value_type neutral_element, BinaryOperation binary_op);
-
-template <class M, class V>
-typename V::value_type reduce(const const_where_expression<M, V>& x, plus<> binary_op = plus<>());
-
-template <class M, class V>
-typename V::value_type reduce(const const_where_expression<M, V>& x, multiplies<> binary_op);
-
-template <class M, class V>
-typename V::value_type reduce(const const_where_expression<M, V>& x, bit_and<> binary_op);
-
-template <class M, class V>
-typename V::value_type reduce(const const_where_expression<M, V>& x, bit_or<> binary_op);
-
-template <class M, class V>
-typename V::value_type reduce(const const_where_expression<M, V>& x, bit_xor<> binary_op);
-
-template <class T, class Abi> T hmin(const simd<T, Abi>&);
-template <class M, class V> T hmin(const const_where_expression<M, V>&);
-template <class T, class Abi> T hmax(const simd<T, Abi>&);
-template <class M, class V> T hmax(const const_where_expression<M, V>&);
-
-// algorithms [simd.alg]
-template <class T, class Abi> simd<T, Abi> min(const simd<T, Abi>&, const simd<T, Abi>&) noexcept;
-
-template <class T, class Abi> simd<T, Abi> max(const simd<T, Abi>&, const simd<T, Abi>&) noexcept;
-
-template <class T, class Abi>
-std::pair<simd<T, Abi>, simd<T, Abi>> minmax(const simd<T, Abi>&, const simd<T, Abi>&) noexcept;
-
-template <class T, class Abi>
-simd<T, Abi> clamp(const simd<T, Abi>& v, const simd<T, Abi>& lo, const simd<T, Abi>& hi);
-
-// [simd.whereexpr]
-template <class M, class T>
-class const_where_expression {
- const M& mask; // exposition only
- T& data; // exposition only
-public:
- const_where_expression(const const_where_expression&) = delete;
- const_where_expression& operator=(const const_where_expression&) = delete;
- remove_const_t<T> operator-() const &&;
- template <class U, class Flags> void copy_to(U* mem, Flags f) const &&;
-};
-
-template <class M, class T>
-class where_expression : public const_where_expression<M, T> {
-public:
- where_expression(const where_expression&) = delete;
- where_expression& operator=(const where_expression&) = delete;
- template <class U> void operator=(U&& x);
- template <class U> void operator+=(U&& x);
- template <class U> void operator-=(U&& x);
- template <class U> void operator*=(U&& x);
- template <class U> void operator/=(U&& x);
- template <class U> void operator%=(U&& x);
- template <class U> void operator&=(U&& x);
- template <class U> void operator|=(U&& x);
- template <class U> void operator^=(U&& x);
- template <class U> void operator<<=(U&& x);
- template <class U> void operator>>=(U&& x);
- void operator++();
- void operator++(int);
- void operator--();
- void operator--(int);
- template <class U, class Flags> void copy_from(const U* mem, Flags);
-};
-
-// [simd.class]
-template <class T, class Abi> class simd {
-public:
- using value_type = T;
- using reference = see below;
- using mask_type = simd_mask<T, Abi>;
-
- using abi_type = Abi;
- static constexpr size_t size() noexcept;
- simd() = default;
-
- // implicit type conversion constructor
- template <class U> simd(const simd<U, simd_abi::fixed_size<size()>>&);
-
- // implicit broadcast constructor (see below for constraints)
- template <class U> simd(U&& value);
-
- // generator constructor (see below for constraints)
- template <class G> explicit simd(G&& gen);
-
- // load constructor
- template <class U, class Flags> simd(const U* mem, Flags f);
-
- // loads [simd.load]
- template <class U, class Flags> void copy_from(const U* mem, Flags f);
-
- // stores [simd.store]
- template <class U, class Flags> void copy_to(U* mem, Flags f) const;
-
- // scalar access [simd.subscr]
- reference operator[](size_t);
- value_type operator[](size_t) const;
-
- // unary operators [simd.unary]
- simd& operator++();
- simd operator++(int);
- simd& operator--();
- simd operator--(int);
- mask_type operator!() const;
- simd operator~() const; // see below
- simd operator+() const;
- simd operator-() const;
-
- // binary operators [simd.binary]
- friend simd operator+ (const simd&, const simd&);
- friend simd operator- (const simd&, const simd&);
- friend simd operator* (const simd&, const simd&);
- friend simd operator/ (const simd&, const simd&);
- friend simd operator% (const simd&, const simd&);
- friend simd operator& (const simd&, const simd&);
- friend simd operator| (const simd&, const simd&);
- friend simd operator^ (const simd&, const simd&);
- friend simd operator<<(const simd&, const simd&);
- friend simd operator>>(const simd&, const simd&);
- friend simd operator<<(const simd&, int);
- friend simd operator>>(const simd&, int);
-
- // compound assignment [simd.cassign]
- friend simd& operator+= (simd&, const simd&);
- friend simd& operator-= (simd&, const simd&);
- friend simd& operator*= (simd&, const simd&);
- friend simd& operator/= (simd&, const simd&);
- friend simd& operator%= (simd&, const simd&);
-
- friend simd& operator&= (simd&, const simd&);
- friend simd& operator|= (simd&, const simd&);
- friend simd& operator^= (simd&, const simd&);
- friend simd& operator<<=(simd&, const simd&);
- friend simd& operator>>=(simd&, const simd&);
- friend simd& operator<<=(simd&, int);
- friend simd& operator>>=(simd&, int);
-
- // compares [simd.comparison]
- friend mask_type operator==(const simd&, const simd&);
- friend mask_type operator!=(const simd&, const simd&);
- friend mask_type operator>=(const simd&, const simd&);
- friend mask_type operator<=(const simd&, const simd&);
- friend mask_type operator> (const simd&, const simd&);
- friend mask_type operator< (const simd&, const simd&);
-};
-
-// [simd.math]
-template <class Abi> using scharv = simd<signed char, Abi>; // exposition only
-template <class Abi> using shortv = simd<short, Abi>; // exposition only
-template <class Abi> using intv = simd<int, Abi>; // exposition only
-template <class Abi> using longv = simd<long int, Abi>; // exposition only
-template <class Abi> using llongv = simd<long long int, Abi>; // exposition only
-template <class Abi> using floatv = simd<float, Abi>; // exposition only
-template <class Abi> using doublev = simd<double, Abi>; // exposition only
-template <class Abi> using ldoublev = simd<long double, Abi>; // exposition only
-template <class T, class V> using samesize = fixed_size_simd<T, V::size()>; // exposition only
-
-template <class Abi> floatv<Abi> acos(floatv<Abi> x);
-template <class Abi> doublev<Abi> acos(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> acos(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> asin(floatv<Abi> x);
-template <class Abi> doublev<Abi> asin(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> asin(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> atan(floatv<Abi> x);
-template <class Abi> doublev<Abi> atan(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> atan(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> atan2(floatv<Abi> y, floatv<Abi> x);
-template <class Abi> doublev<Abi> atan2(doublev<Abi> y, doublev<Abi> x);
-template <class Abi> ldoublev<Abi> atan2(ldoublev<Abi> y, ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> cos(floatv<Abi> x);
-template <class Abi> doublev<Abi> cos(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> cos(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> sin(floatv<Abi> x);
-template <class Abi> doublev<Abi> sin(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> sin(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> tan(floatv<Abi> x);
-template <class Abi> doublev<Abi> tan(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> tan(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> acosh(floatv<Abi> x);
-template <class Abi> doublev<Abi> acosh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> acosh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> asinh(floatv<Abi> x);
-template <class Abi> doublev<Abi> asinh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> asinh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> atanh(floatv<Abi> x);
-template <class Abi> doublev<Abi> atanh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> atanh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> cosh(floatv<Abi> x);
-template <class Abi> doublev<Abi> cosh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> cosh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> sinh(floatv<Abi> x);
-template <class Abi> doublev<Abi> sinh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> sinh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> tanh(floatv<Abi> x);
-template <class Abi> doublev<Abi> tanh(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> tanh(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> exp(floatv<Abi> x);
-template <class Abi> doublev<Abi> exp(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> exp(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> exp2(floatv<Abi> x);
-template <class Abi> doublev<Abi> exp2(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> exp2(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> expm1(floatv<Abi> x);
-template <class Abi> doublev<Abi> expm1(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> expm1(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> frexp(floatv<Abi> value, samesize<int, floatv<Abi>>* exp);
-template <class Abi> doublev<Abi> frexp(doublev<Abi> value, samesize<int, doublev<Abi>>* exp);
-template <class Abi> ldoublev<Abi> frexp(ldoublev<Abi> value, samesize<int, ldoublev<Abi>>* exp);
-
-template <class Abi> samesize<int, floatv<Abi>> ilogb(floatv<Abi> x);
-template <class Abi> samesize<int, doublev<Abi>> ilogb(doublev<Abi> x);
-template <class Abi> samesize<int, ldoublev<Abi>> ilogb(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> ldexp(floatv<Abi> x, samesize<int, floatv<Abi>> exp);
-template <class Abi> doublev<Abi> ldexp(doublev<Abi> x, samesize<int, doublev<Abi>> exp);
-template <class Abi> ldoublev<Abi> ldexp(ldoublev<Abi> x, samesize<int, ldoublev<Abi>> exp);
-
-template <class Abi> floatv<Abi> log(floatv<Abi> x);
-template <class Abi> doublev<Abi> log(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> log(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> log10(floatv<Abi> x);
-template <class Abi> doublev<Abi> log10(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> log10(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> log1p(floatv<Abi> x);
-template <class Abi> doublev<Abi> log1p(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> log1p(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> log2(floatv<Abi> x);
-template <class Abi> doublev<Abi> log2(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> log2(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> logb(floatv<Abi> x);
-template <class Abi> doublev<Abi> logb(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> logb(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> modf(floatv<Abi> value, floatv<Abi>* iptr);
-template <class Abi> doublev<Abi> modf(doublev<Abi> value, doublev<Abi>* iptr);
-template <class Abi> ldoublev<Abi> modf(ldoublev<Abi> value, ldoublev<Abi>* iptr);
-
-template <class Abi> floatv<Abi> scalbn(floatv<Abi> x, samesize<int, floatv<Abi>> n);
-template <class Abi> doublev<Abi> scalbn(doublev<Abi> x, samesize<int, doublev<Abi>> n);
-template <class Abi> ldoublev<Abi> scalbn(ldoublev<Abi> x, samesize<int, ldoublev<Abi>> n);
-template <class Abi> floatv<Abi> scalbln(floatv<Abi> x, samesize<long int, floatv<Abi>> n);
-template <class Abi> doublev<Abi> scalbln(doublev<Abi> x, samesize<long int, doublev<Abi>> n);
-template <class Abi> ldoublev<Abi> scalbln(ldoublev<Abi> x, samesize<long int, ldoublev<Abi>> n);
-
-template <class Abi> floatv<Abi> cbrt(floatv<Abi> x);
-template <class Abi> doublev<Abi> cbrt(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> cbrt(ldoublev<Abi> x);
-
-template <class Abi> scharv<Abi> abs(scharv<Abi> j);
-template <class Abi> shortv<Abi> abs(shortv<Abi> j);
-template <class Abi> intv<Abi> abs(intv<Abi> j);
-template <class Abi> longv<Abi> abs(longv<Abi> j);
-template <class Abi> llongv<Abi> abs(llongv<Abi> j);
-template <class Abi> floatv<Abi> abs(floatv<Abi> j);
-template <class Abi> doublev<Abi> abs(doublev<Abi> j);
-template <class Abi> ldoublev<Abi> abs(ldoublev<Abi> j);
-
-template <class Abi> floatv<Abi> hypot(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> hypot(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> hypot(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> floatv<Abi> hypot(floatv<Abi> x, floatv<Abi> y, floatv<Abi> z);
-template <class Abi> doublev<Abi> hypot(doublev<Abi> x, doublev<Abi> y, doublev<Abi> z);
-template <class Abi> ldoublev<Abi> hypot(ldoublev<Abi> x, ldoublev<Abi> y, ldoublev<Abi> z);
-
-template <class Abi> floatv<Abi> pow(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> pow(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> pow(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> sqrt(floatv<Abi> x);
-template <class Abi> doublev<Abi> sqrt(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> sqrt(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> erf(floatv<Abi> x);
-template <class Abi> doublev<Abi> erf(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> erf(ldoublev<Abi> x);
-template <class Abi> floatv<Abi> erfc(floatv<Abi> x);
-template <class Abi> doublev<Abi> erfc(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> erfc(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> lgamma(floatv<Abi> x);
-template <class Abi> doublev<Abi> lgamma(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> lgamma(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> tgamma(floatv<Abi> x);
-template <class Abi> doublev<Abi> tgamma(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> tgamma(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> ceil(floatv<Abi> x);
-template <class Abi> doublev<Abi> ceil(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> ceil(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> floor(floatv<Abi> x);
-template <class Abi> doublev<Abi> floor(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> floor(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> nearbyint(floatv<Abi> x);
-template <class Abi> doublev<Abi> nearbyint(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> nearbyint(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> rint(floatv<Abi> x);
-template <class Abi> doublev<Abi> rint(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> rint(ldoublev<Abi> x);
-
-template <class Abi> samesize<long int, floatv<Abi>> lrint(floatv<Abi> x);
-template <class Abi> samesize<long int, doublev<Abi>> lrint(doublev<Abi> x);
-template <class Abi> samesize<long int, ldoublev<Abi>> lrint(ldoublev<Abi> x);
-template <class Abi> samesize<long long int, floatv<Abi>> llrint(floatv<Abi> x);
-template <class Abi> samesize<long long int, doublev<Abi>> llrint(doublev<Abi> x);
-template <class Abi> samesize<long long int, ldoublev<Abi>> llrint(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> round(floatv<Abi> x);
-template <class Abi> doublev<Abi> round(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> round(ldoublev<Abi> x);
-template <class Abi> samesize<long int, floatv<Abi>> lround(floatv<Abi> x);
-template <class Abi> samesize<long int, doublev<Abi>> lround(doublev<Abi> x);
-template <class Abi> samesize<long int, ldoublev<Abi>> lround(ldoublev<Abi> x);
-template <class Abi> samesize<long long int, floatv<Abi>> llround(floatv<Abi> x);
-template <class Abi> samesize<long long int, doublev<Abi>> llround(doublev<Abi> x);
-template <class Abi> samesize<long long int, ldoublev<Abi>> llround(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> trunc(floatv<Abi> x);
-template <class Abi> doublev<Abi> trunc(doublev<Abi> x);
-template <class Abi> ldoublev<Abi> trunc(ldoublev<Abi> x);
-
-template <class Abi> floatv<Abi> fmod(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> fmod(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> fmod(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> remainder(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> remainder(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> remainder(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> remquo(floatv<Abi> x, floatv<Abi> y, samesize<int, floatv<Abi>>* quo);
-template <class Abi> doublev<Abi> remquo(doublev<Abi> x, doublev<Abi> y, samesize<int, doublev<Abi>>* quo);
-template <class Abi> ldoublev<Abi> remquo(ldoublev<Abi> x, ldoublev<Abi> y, samesize<int, ldoublev<Abi>>* quo);
-
-template <class Abi> floatv<Abi> copysign(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> copysign(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> copysign(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> doublev<Abi> nan(const char* tagp);
-template <class Abi> floatv<Abi> nanf(const char* tagp);
-template <class Abi> ldoublev<Abi> nanl(const char* tagp);
-
-template <class Abi> floatv<Abi> nextafter(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> nextafter(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> nextafter(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> nexttoward(floatv<Abi> x, ldoublev<Abi> y);
-template <class Abi> doublev<Abi> nexttoward(doublev<Abi> x, ldoublev<Abi> y);
-template <class Abi> ldoublev<Abi> nexttoward(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> fdim(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> fdim(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> fdim(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> fmax(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> fmax(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> fmax(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> fmin(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> doublev<Abi> fmin(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> ldoublev<Abi> fmin(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> floatv<Abi> fma(floatv<Abi> x, floatv<Abi> y, floatv<Abi> z);
-template <class Abi> doublev<Abi> fma(doublev<Abi> x, doublev<Abi> y, doublev<Abi> z);
-template <class Abi> ldoublev<Abi> fma(ldoublev<Abi> x, ldoublev<Abi> y, ldoublev<Abi> z);
-
-template <class Abi> samesize<int, floatv<Abi>> fpclassify(floatv<Abi> x);
-template <class Abi> samesize<int, doublev<Abi>> fpclassify(doublev<Abi> x);
-template <class Abi> samesize<int, ldoublev<Abi>> fpclassify(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> isfinite(floatv<Abi> x);
-template <class Abi> simd_mask<double, Abi> isfinite(doublev<Abi> x);
-template <class Abi> simd_mask<long double, Abi> isfinite(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> isinf(floatv<Abi> x);
-template <class Abi> simd_mask<double, Abi> isinf(doublev<Abi> x);
-template <class Abi> simd_mask<long double, Abi> isinf(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> isnan(floatv<Abi> x);
-template <class Abi> simd_mask<double, Abi> isnan(doublev<Abi> x);
-template <class Abi> simd_mask<long double, Abi> isnan(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> isnormal(floatv<Abi> x);
-template <class Abi> simd_mask<double, Abi> isnormal(doublev<Abi> x);
-template <class Abi> simd_mask<long double, Abi> isnormal(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> signbit(floatv<Abi> x);
-template <class Abi> simd_mask<double, Abi> signbit(doublev<Abi> x);
-template <class Abi> simd_mask<long double, Abi> signbit(ldoublev<Abi> x);
-
-template <class Abi> simd_mask<float, Abi> isgreater(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> isgreater(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> isgreater(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> simd_mask<float, Abi> isgreaterequal(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> isgreaterequal(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> isgreaterequal(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> simd_mask<float, Abi> isless(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> isless(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> isless(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> simd_mask<float, Abi> islessequal(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> islessequal(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> islessequal(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> simd_mask<float, Abi> islessgreater(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> islessgreater(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> islessgreater(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class Abi> simd_mask<float, Abi> isunordered(floatv<Abi> x, floatv<Abi> y);
-template <class Abi> simd_mask<double, Abi> isunordered(doublev<Abi> x, doublev<Abi> y);
-template <class Abi> simd_mask<long double, Abi> isunordered(ldoublev<Abi> x, ldoublev<Abi> y);
-
-template <class V> struct simd_div_t { V quot, rem; };
-template <class Abi> simd_div_t<scharv<Abi>> div(scharv<Abi> numer, scharv<Abi> denom);
-template <class Abi> simd_div_t<shortv<Abi>> div(shortv<Abi> numer, shortv<Abi> denom);
-template <class Abi> simd_div_t<intv<Abi>> div(intv<Abi> numer, intv<Abi> denom);
-template <class Abi> simd_div_t<longv<Abi>> div(longv<Abi> numer, longv<Abi> denom);
-template <class Abi> simd_div_t<llongv<Abi>> div(llongv<Abi> numer, llongv<Abi> denom);
-
-// [simd.mask.class]
-template <class T, class Abi>
-class simd_mask {
-public:
- using value_type = bool;
- using reference = see below;
- using simd_type = simd<T, Abi>;
- using abi_type = Abi;
- static constexpr size_t size() noexcept;
- simd_mask() = default;
-
- // broadcast constructor
- explicit simd_mask(value_type) noexcept;
-
- // implicit type conversion constructor
- template <class U> simd_mask(const simd_mask<U, simd_abi::fixed_size<size()>>&) noexcept;
-
- // load constructor
- template <class Flags> simd_mask(const value_type* mem, Flags);
-
- // loads [simd.mask.copy]
- template <class Flags> void copy_from(const value_type* mem, Flags);
- template <class Flags> void copy_to(value_type* mem, Flags) const;
-
- // scalar access [simd.mask.subscr]
- reference operator[](size_t);
- value_type operator[](size_t) const;
-
- // unary operators [simd.mask.unary]
- simd_mask operator!() const noexcept;
-
- // simd_mask binary operators [simd.mask.binary]
- friend simd_mask operator&&(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator||(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator& (const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator| (const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator^ (const simd_mask&, const simd_mask&) noexcept;
-
- // simd_mask compound assignment [simd.mask.cassign]
- friend simd_mask& operator&=(simd_mask&, const simd_mask&) noexcept;
- friend simd_mask& operator|=(simd_mask&, const simd_mask&) noexcept;
- friend simd_mask& operator^=(simd_mask&, const simd_mask&) noexcept;
-
- // simd_mask compares [simd.mask.comparison]
- friend simd_mask operator==(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator!=(const simd_mask&, const simd_mask&) noexcept;
-};
-
-} // parallelism_v2
-} // std::experimental
-
-*/
-
-#include <algorithm>
-#include <array>
-#include <cstddef>
-#include <experimental/__config>
-#include <functional>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD
-
-#if _LIBCPP_STD_VER >= 17
-
-enum class _StorageKind {
- _Scalar,
- _Array,
- _VecExt,
-};
-
-template <_StorageKind __kind, int _Np>
-struct __simd_abi {};
-
-template <class _Tp, class _Abi>
-class __simd_storage {};
-
-template <class _Tp, int __num_element>
-class __simd_storage<_Tp, __simd_abi<_StorageKind::_Array, __num_element>> {
- std::array<_Tp, __num_element> __storage_;
-
- template <class, class>
- friend struct simd;
-
- template <class, class>
- friend struct simd_mask;
-
-public:
- _Tp __get(size_t __index) const noexcept { return __storage_[__index]; }
- void __set(size_t __index, _Tp __val) noexcept {
- __storage_[__index] = __val;
- }
-};
-
-template <class _Tp>
-class __simd_storage<_Tp, __simd_abi<_StorageKind::_Scalar, 1>> {
- _Tp __storage_;
-
- template <class, class>
- friend struct simd;
-
- template <class, class>
- friend struct simd_mask;
-
-public:
- _Tp __get(size_t __index) const noexcept { return (&__storage_)[__index]; }
- void __set(size_t __index, _Tp __val) noexcept {
- (&__storage_)[__index] = __val;
- }
-};
-
-#ifndef _LIBCPP_HAS_NO_VECTOR_EXTENSION
-
-constexpr size_t __floor_pow_of_2(size_t __val) {
- return ((__val - 1) & __val) == 0 ? __val
- : __floor_pow_of_2((__val - 1) & __val);
-}
-
-constexpr size_t __ceil_pow_of_2(size_t __val) {
- return __val == 1 ? 1 : __floor_pow_of_2(__val - 1) << 1;
-}
-
-template <class _Tp, size_t __bytes>
-struct __vec_ext_traits {
-#if !defined(_LIBCPP_COMPILER_CLANG_BASED)
- typedef _Tp type __attribute__((vector_size(__ceil_pow_of_2(__bytes))));
-#endif
-};
-
-#if defined(_LIBCPP_COMPILER_CLANG_BASED)
-#define _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, _NUM_ELEMENT) \
- template <> \
- struct __vec_ext_traits<_TYPE, sizeof(_TYPE) * _NUM_ELEMENT> { \
- using type = \
- _TYPE __attribute__((vector_size(sizeof(_TYPE) * _NUM_ELEMENT))); \
- }
-
-#define _LIBCPP_SPECIALIZE_VEC_EXT_32(_TYPE) \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 1); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 2); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 3); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 4); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 5); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 6); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 7); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 8); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 9); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 10); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 11); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 12); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 13); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 14); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 15); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 16); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 17); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 18); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 19); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 20); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 21); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 22); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 23); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 24); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 25); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 26); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 27); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 28); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 29); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 30); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 31); \
- _LIBCPP_SPECIALIZE_VEC_EXT(_TYPE, 32)
-
-_LIBCPP_SPECIALIZE_VEC_EXT_32(char);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(char16_t);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(char32_t);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(wchar_t);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(signed char);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(signed short);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(signed int);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(signed long);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(signed long long);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(unsigned char);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(unsigned short);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(unsigned int);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(unsigned long);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(unsigned long long);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(float);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(double);
-_LIBCPP_SPECIALIZE_VEC_EXT_32(long double);
-
-#undef _LIBCPP_SPECIALIZE_VEC_EXT_32
-#undef _LIBCPP_SPECIALIZE_VEC_EXT
-#endif
-
-template <class _Tp, int __num_element>
-class __simd_storage<_Tp, __simd_abi<_StorageKind::_VecExt, __num_element>> {
- using _StorageType =
- typename __vec_ext_traits<_Tp, sizeof(_Tp) * __num_element>::type;
-
- _StorageType __storage_;
-
- template <class, class>
- friend struct simd;
-
- template <class, class>
- friend struct simd_mask;
-
-public:
- _Tp __get(size_t __index) const noexcept { return __storage_[__index]; }
- void __set(size_t __index, _Tp __val) noexcept {
- __storage_[__index] = __val;
- }
-};
-
-#endif // _LIBCPP_HAS_NO_VECTOR_EXTENSION
-
-template <class _Vp, class _Tp, class _Abi>
-class __simd_reference {
- static_assert(std::is_same<_Vp, _Tp>::value, "");
-
- template <class, class>
- friend struct simd;
-
- template <class, class>
- friend struct simd_mask;
-
- __simd_storage<_Tp, _Abi>* __ptr_;
- size_t __index_;
-
- __simd_reference(__simd_storage<_Tp, _Abi>* __ptr, size_t __index)
- : __ptr_(__ptr), __index_(__index) {}
-
- __simd_reference(const __simd_reference&) = default;
-
-public:
- __simd_reference() = delete;
- __simd_reference& operator=(const __simd_reference&) = delete;
-
- operator _Vp() const { return __ptr_->__get(__index_); }
-
- __simd_reference operator=(_Vp __value) && {
- __ptr_->__set(__index_, __value);
- return *this;
- }
-
- __simd_reference operator++() && {
- return std::move(*this) = __ptr_->__get(__index_) + 1;
- }
-
- _Vp operator++(int) && {
- auto __val = __ptr_->__get(__index_);
- __ptr_->__set(__index_, __val + 1);
- return __val;
- }
-
- __simd_reference operator--() && {
- return std::move(*this) = __ptr_->__get(__index_) - 1;
- }
-
- _Vp operator--(int) && {
- auto __val = __ptr_->__get(__index_);
- __ptr_->__set(__index_, __val - 1);
- return __val;
- }
-
- __simd_reference operator+=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) + __value;
- }
-
- __simd_reference operator-=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) - __value;
- }
-
- __simd_reference operator*=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) * __value;
- }
-
- __simd_reference operator/=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) / __value;
- }
-
- __simd_reference operator%=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) % __value;
- }
-
- __simd_reference operator>>=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) >> __value;
- }
-
- __simd_reference operator<<=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) << __value;
- }
-
- __simd_reference operator&=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) & __value;
- }
-
- __simd_reference operator|=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) | __value;
- }
-
- __simd_reference operator^=(_Vp __value) && {
- return std::move(*this) = __ptr_->__get(__index_) ^ __value;
- }
-};
-
-template <class _To, class _From>
-constexpr decltype(_To{std::declval<_From>()}, true)
-__is_non_narrowing_convertible_impl(_From) {
- return true;
-}
-
-template <class _To>
-constexpr bool __is_non_narrowing_convertible_impl(...) {
- return false;
-}
-
-template <class _From, class _To>
-constexpr typename std::enable_if<std::is_arithmetic<_To>::value &&
- std::is_arithmetic<_From>::value,
- bool>::type
-__is_non_narrowing_arithmetic_convertible() {
- return __is_non_narrowing_convertible_impl<_To>(_From{});
-}
-
-template <class _From, class _To>
-constexpr typename std::enable_if<!(std::is_arithmetic<_To>::value &&
- std::is_arithmetic<_From>::value),
- bool>::type
-__is_non_narrowing_arithmetic_convertible() {
- return false;
-}
-
-template <class _Tp>
-constexpr _Tp __variadic_sum() {
- return _Tp{};
-}
-
-template <class _Tp, class _Up, class... _Args>
-constexpr _Tp __variadic_sum(_Up __first, _Args... __rest) {
- return static_cast<_Tp>(__first) + __variadic_sum<_Tp>(__rest...);
-}
-
-template <class _Tp>
-struct __nodeduce {
- using type = _Tp;
-};
-
-template <class _Tp>
-constexpr bool __vectorizable() {
- return std::is_arithmetic<_Tp>::value && !std::is_const<_Tp>::value &&
- !std::is_volatile<_Tp>::value && !std::is_same<_Tp, bool>::value;
-}
-
-_LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD
-_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD_ABI
-
-using scalar = __simd_abi<_StorageKind::_Scalar, 1>;
-
-template <int _Np>
-using fixed_size = __simd_abi<_StorageKind::_Array, _Np>;
-
-template <class _Tp>
-inline constexpr size_t max_fixed_size = 32;
-
-template <class _Tp>
-using compatible = fixed_size<16 / sizeof(_Tp)>;
-
-#ifndef _LIBCPP_HAS_NO_VECTOR_EXTENSION
-template <class _Tp>
-using native = __simd_abi<_StorageKind::_VecExt,
- _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES / sizeof(_Tp)>;
-#else
-template <class _Tp>
-using native =
- fixed_size<_Tp, _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES / sizeof(_Tp)>;
-#endif // _LIBCPP_HAS_NO_VECTOR_EXTENSION
-
-_LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD_ABI
-_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD
-
-template <class _Tp, class _Abi = simd_abi::compatible<_Tp>>
-class simd;
-template <class _Tp, class _Abi = simd_abi::compatible<_Tp>>
-class simd_mask;
-
-struct element_aligned_tag {};
-struct vector_aligned_tag {};
-template <size_t>
-struct overaligned_tag {};
-inline constexpr element_aligned_tag element_aligned{};
-inline constexpr vector_aligned_tag vector_aligned{};
-template <size_t _Np>
-inline constexpr overaligned_tag<_Np> overaligned{};
-
-// traits [simd.traits]
-template <class _Tp>
-struct is_abi_tag : std::integral_constant<bool, false> {};
-
-template <_StorageKind __kind, int _Np>
-struct is_abi_tag<__simd_abi<__kind, _Np>>
- : std::integral_constant<bool, true> {};
-
-template <class _Tp>
-struct is_simd : std::integral_constant<bool, false> {};
-
-template <class _Tp, class _Abi>
-struct is_simd<simd<_Tp, _Abi>> : std::integral_constant<bool, true> {};
-
-template <class _Tp>
-struct is_simd_mask : std::integral_constant<bool, false> {};
-
-template <class _Tp, class _Abi>
-struct is_simd_mask<simd_mask<_Tp, _Abi>> : std::integral_constant<bool, true> {
-};
-
-template <class _Tp>
-struct is_simd_flag_type : std::integral_constant<bool, false> {};
-
-template <>
-struct is_simd_flag_type<element_aligned_tag>
- : std::integral_constant<bool, true> {};
-
-template <>
-struct is_simd_flag_type<vector_aligned_tag>
- : std::integral_constant<bool, true> {};
-
-template <size_t _Align>
-struct is_simd_flag_type<overaligned_tag<_Align>>
- : std::integral_constant<bool, true> {};
-
-template <class _Tp>
-inline constexpr bool is_abi_tag_v = is_abi_tag<_Tp>::value;
-template <class _Tp>
-inline constexpr bool is_simd_v = is_simd<_Tp>::value;
-template <class _Tp>
-inline constexpr bool is_simd_mask_v = is_simd_mask<_Tp>::value;
-template <class _Tp>
-inline constexpr bool is_simd_flag_type_v = is_simd_flag_type<_Tp>::value;
-template <class _Tp, size_t _Np>
-struct abi_for_size {
- using type = simd_abi::fixed_size<_Np>;
-};
-template <class _Tp, size_t _Np>
-using abi_for_size_t = typename abi_for_size<_Tp, _Np>::type;
-
-template <class _Tp, class _Abi = simd_abi::compatible<_Tp>>
-struct simd_size;
-
-template <class _Tp, _StorageKind __kind, int _Np>
-struct simd_size<_Tp, __simd_abi<__kind, _Np>>
- : std::integral_constant<size_t, _Np> {
- static_assert(
- std::is_arithmetic<_Tp>::value &&
- !std::is_same<typename std::remove_const<_Tp>::type, bool>::value,
- "Element type should be vectorizable");
-};
-
-// TODO: implement it.
-template <class _Tp, class _Up = typename _Tp::value_type>
-struct memory_alignment;
-
-template <class _Tp, class _Abi = simd_abi::compatible<_Tp>>
-inline constexpr size_t simd_size_v = simd_size<_Tp, _Abi>::value;
-
-template <class _Tp, class _Up = typename _Tp::value_type>
-inline constexpr size_t memory_alignment_v = memory_alignment<_Tp, _Up>::value;
-
-// class template simd [simd.class]
-template <class _Tp>
-using native_simd = simd<_Tp, simd_abi::native<_Tp>>;
-template <class _Tp, int _Np>
-using fixed_size_simd = simd<_Tp, simd_abi::fixed_size<_Np>>;
-
-// class template simd_mask [simd.mask.class]
-template <class _Tp>
-using native_simd_mask = simd_mask<_Tp, simd_abi::native<_Tp>>;
-
-template <class _Tp, int _Np>
-using fixed_size_simd_mask = simd_mask<_Tp, simd_abi::fixed_size<_Np>>;
-
-// casts [simd.casts]
-template <class _Tp>
-struct __static_simd_cast_traits {
- template <class _Up, class _Abi>
- static simd<_Tp, _Abi> __apply(const simd<_Up, _Abi>& __v);
-};
-
-template <class _Tp, class _NewAbi>
-struct __static_simd_cast_traits<simd<_Tp, _NewAbi>> {
- template <class _Up, class _Abi>
- static typename std::enable_if<simd<_Up, _Abi>::size() ==
- simd<_Tp, _NewAbi>::size(),
- simd<_Tp, _NewAbi>>::type
- __apply(const simd<_Up, _Abi>& __v);
-};
-
-template <class _Tp>
-struct __simd_cast_traits {
- template <class _Up, class _Abi>
- static typename std::enable_if<
- __is_non_narrowing_arithmetic_convertible<_Up, _Tp>(),
- simd<_Tp, _Abi>>::type
- __apply(const simd<_Up, _Abi>& __v);
-};
-
-template <class _Tp, class _NewAbi>
-struct __simd_cast_traits<simd<_Tp, _NewAbi>> {
- template <class _Up, class _Abi>
- static typename std::enable_if<
- __is_non_narrowing_arithmetic_convertible<_Up, _Tp>() &&
- simd<_Up, _Abi>::size() == simd<_Tp, _NewAbi>::size(),
- simd<_Tp, _NewAbi>>::type
- __apply(const simd<_Up, _Abi>& __v);
-};
-
-template <class _Tp, class _Up, class _Abi>
-auto simd_cast(const simd<_Up, _Abi>& __v)
- -> decltype(__simd_cast_traits<_Tp>::__apply(__v)) {
- return __simd_cast_traits<_Tp>::__apply(__v);
-}
-
-template <class _Tp, class _Up, class _Abi>
-auto static_simd_cast(const simd<_Up, _Abi>& __v)
- -> decltype(__static_simd_cast_traits<_Tp>::__apply(__v)) {
- return __static_simd_cast_traits<_Tp>::__apply(__v);
-}
-
-template <class _Tp, class _Abi>
-fixed_size_simd<_Tp, simd_size<_Tp, _Abi>::value>
-to_fixed_size(const simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-fixed_size_simd_mask<_Tp, simd_size<_Tp, _Abi>::value>
-to_fixed_size(const simd_mask<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, size_t _Np>
-native_simd<_Tp> to_native(const fixed_size_simd<_Tp, _Np>&) noexcept;
-
-template <class _Tp, size_t _Np>
-native_simd_mask<_Tp> to_native(const fixed_size_simd_mask<_Tp, _Np>&) noexcept;
-
-template <class _Tp, size_t _Np>
-simd<_Tp> to_compatible(const fixed_size_simd<_Tp, _Np>&) noexcept;
-
-template <class _Tp, size_t _Np>
-simd_mask<_Tp> to_compatible(const fixed_size_simd_mask<_Tp, _Np>&) noexcept;
-
-template <size_t... __sizes, class _Tp, class _Abi>
-tuple<simd<_Tp, abi_for_size_t<_Tp, __sizes>>...> split(const simd<_Tp, _Abi>&);
-
-template <size_t... __sizes, class _Tp, class _Abi>
-tuple<simd_mask<_Tp, abi_for_size_t<_Tp, __sizes>>...>
-split(const simd_mask<_Tp, _Abi>&);
-
-template <class _SimdType, class _Abi>
-array<_SimdType, simd_size<typename _SimdType::value_type, _Abi>::value /
- _SimdType::size()>
-split(const simd<typename _SimdType::value_type, _Abi>&);
-
-template <class _SimdType, class _Abi>
-array<_SimdType, simd_size<typename _SimdType::value_type, _Abi>::value /
- _SimdType::size()>
-split(const simd_mask<typename _SimdType::value_type, _Abi>&);
-
-template <class _Tp, class... _Abis>
-simd<_Tp, abi_for_size_t<_Tp, __variadic_sum(simd_size<_Tp, _Abis>::value...)>>
-concat(const simd<_Tp, _Abis>&...);
-
-template <class _Tp, class... _Abis>
-simd_mask<_Tp,
- abi_for_size_t<_Tp, __variadic_sum(simd_size<_Tp, _Abis>::value...)>>
-concat(const simd_mask<_Tp, _Abis>&...);
-
-// reductions [simd.mask.reductions]
-template <class _Tp, class _Abi>
-bool all_of(const simd_mask<_Tp, _Abi>&) noexcept;
-template <class _Tp, class _Abi>
-bool any_of(const simd_mask<_Tp, _Abi>&) noexcept;
-template <class _Tp, class _Abi>
-bool none_of(const simd_mask<_Tp, _Abi>&) noexcept;
-template <class _Tp, class _Abi>
-bool some_of(const simd_mask<_Tp, _Abi>&) noexcept;
-template <class _Tp, class _Abi>
-int popcount(const simd_mask<_Tp, _Abi>&) noexcept;
-template <class _Tp, class _Abi>
-int find_first_set(const simd_mask<_Tp, _Abi>&);
-template <class _Tp, class _Abi>
-int find_last_set(const simd_mask<_Tp, _Abi>&);
-bool all_of(bool) noexcept;
-bool any_of(bool) noexcept;
-bool none_of(bool) noexcept;
-bool some_of(bool) noexcept;
-int popcount(bool) noexcept;
-int find_first_set(bool) noexcept;
-int find_last_set(bool) noexcept;
-
-// masked assignment [simd.whereexpr]
-template <class _MaskType, class _Tp>
-class const_where_expression;
-template <class _MaskType, class _Tp>
-class where_expression;
-
-// masked assignment [simd.mask.where]
-template <class _Tp, class _Abi>
-where_expression<simd_mask<_Tp, _Abi>, simd<_Tp, _Abi>>
-where(const typename simd<_Tp, _Abi>::mask_type&, simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-const_where_expression<simd_mask<_Tp, _Abi>, const simd<_Tp, _Abi>>
-where(const typename simd<_Tp, _Abi>::mask_type&,
- const simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-where_expression<simd_mask<_Tp, _Abi>, simd_mask<_Tp, _Abi>>
-where(const typename __nodeduce<simd_mask<_Tp, _Abi>>::type&,
- simd_mask<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-const_where_expression<simd_mask<_Tp, _Abi>, const simd_mask<_Tp, _Abi>>
-where(const typename __nodeduce<simd_mask<_Tp, _Abi>>::type&,
- const simd_mask<_Tp, _Abi>&) noexcept;
-
-template <class _Tp>
-where_expression<bool, _Tp> where(bool, _Tp&) noexcept;
-
-template <class _Tp>
-const_where_expression<bool, const _Tp> where(bool, const _Tp&) noexcept;
-
-// reductions [simd.reductions]
-template <class _Tp, class _Abi, class _BinaryOp = std::plus<_Tp>>
-_Tp reduce(const simd<_Tp, _Abi>&, _BinaryOp = _BinaryOp());
-
-template <class _MaskType, class _SimdType, class _BinaryOp>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- typename _SimdType::value_type neutral_element, _BinaryOp binary_op);
-
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- plus<typename _SimdType::value_type> binary_op = {});
-
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- multiplies<typename _SimdType::value_type> binary_op);
-
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- bit_and<typename _SimdType::value_type> binary_op);
-
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- bit_or<typename _SimdType::value_type> binary_op);
-
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-reduce(const const_where_expression<_MaskType, _SimdType>&,
- bit_xor<typename _SimdType::value_type> binary_op);
-
-template <class _Tp, class _Abi>
-_Tp hmin(const simd<_Tp, _Abi>&);
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-hmin(const const_where_expression<_MaskType, _SimdType>&);
-template <class _Tp, class _Abi>
-_Tp hmax(const simd<_Tp, _Abi>&);
-template <class _MaskType, class _SimdType>
-typename _SimdType::value_type
-hmax(const const_where_expression<_MaskType, _SimdType>&);
-
-// algorithms [simd.alg]
-template <class _Tp, class _Abi>
-simd<_Tp, _Abi> min(const simd<_Tp, _Abi>&, const simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-simd<_Tp, _Abi> max(const simd<_Tp, _Abi>&, const simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-std::pair<simd<_Tp, _Abi>, simd<_Tp, _Abi>>
-minmax(const simd<_Tp, _Abi>&, const simd<_Tp, _Abi>&) noexcept;
-
-template <class _Tp, class _Abi>
-simd<_Tp, _Abi> clamp(const simd<_Tp, _Abi>&, const simd<_Tp, _Abi>&,
- const simd<_Tp, _Abi>&);
-
-// [simd.whereexpr]
-// TODO implement where expressions.
-template <class _MaskType, class _Tp>
-class const_where_expression {
-public:
- const_where_expression(const const_where_expression&) = delete;
- const_where_expression& operator=(const const_where_expression&) = delete;
- typename remove_const<_Tp>::type operator-() const&&;
- template <class _Up, class _Flags>
- void copy_to(_Up*, _Flags) const&&;
-};
-
-template <class _MaskType, class _Tp>
-class where_expression : public const_where_expression<_MaskType, _Tp> {
-public:
- where_expression(const where_expression&) = delete;
- where_expression& operator=(const where_expression&) = delete;
- template <class _Up>
- void operator=(_Up&&);
- template <class _Up>
- void operator+=(_Up&&);
- template <class _Up>
- void operator-=(_Up&&);
- template <class _Up>
- void operator*=(_Up&&);
- template <class _Up>
- void operator/=(_Up&&);
- template <class _Up>
- void operator%=(_Up&&);
- template <class _Up>
- void operator&=(_Up&&);
- template <class _Up>
- void operator|=(_Up&&);
- template <class _Up>
- void operator^=(_Up&&);
- template <class _Up>
- void operator<<=(_Up&&);
- template <class _Up>
- void operator>>=(_Up&&);
- void operator++();
- void operator++(int);
- void operator--();
- void operator--(int);
- template <class _Up, class _Flags>
- void copy_from(const _Up*, _Flags);
-};
-
-// [simd.class]
-// TODO: implement simd
-template <class _Tp, class _Abi>
-class simd {
-public:
- using value_type = _Tp;
- using reference = __simd_reference<_Tp, _Tp, _Abi>;
- using mask_type = simd_mask<_Tp, _Abi>;
- using abi_type = _Abi;
-
- simd() = default;
- simd(const simd&) = default;
- simd& operator=(const simd&) = default;
-
- static constexpr size_t size() noexcept {
- return simd_size<_Tp, _Abi>::value;
- }
-
-private:
- __simd_storage<_Tp, _Abi> __s_;
-
- template <class _Up>
- static constexpr bool __can_broadcast() {
- return (std::is_arithmetic<_Up>::value &&
- __is_non_narrowing_arithmetic_convertible<_Up, _Tp>()) ||
- (!std::is_arithmetic<_Up>::value &&
- std::is_convertible<_Up, _Tp>::value) ||
- std::is_same<typename std::remove_const<_Up>::type, int>::value ||
- (std::is_same<typename std::remove_const<_Up>::type,
- unsigned int>::value &&
- std::is_unsigned<_Tp>::value);
- }
-
- template <class _Generator, size_t... __indicies>
- static constexpr decltype(
- std::forward_as_tuple(std::declval<_Generator>()(
- std::integral_constant<size_t, __indicies>())...),
- bool())
- __can_generate(std::index_sequence<__indicies...>) {
- return !__variadic_sum<bool>(
- !__can_broadcast<decltype(std::declval<_Generator>()(
- std::integral_constant<size_t, __indicies>()))>()...);
- }
-
- template <class _Generator>
- static bool __can_generate(...) {
- return false;
- }
-
- template <class _Generator, size_t... __indicies>
- void __generator_init(_Generator&& __g, std::index_sequence<__indicies...>) {
- int __not_used[]{((*this)[__indicies] =
- __g(std::integral_constant<size_t, __indicies>()),
- 0)...};
- (void)__not_used;
- }
-
-public:
- // implicit type conversion constructor
- template <class _Up,
- class = typename std::enable_if<
- std::is_same<_Abi, simd_abi::fixed_size<size()>>::value &&
- __is_non_narrowing_arithmetic_convertible<_Up, _Tp>()>::type>
- simd(const simd<_Up, simd_abi::fixed_size<size()>>& __v) {
- for (size_t __i = 0; __i < size(); __i++) {
- (*this)[__i] = static_cast<_Tp>(__v[__i]);
- }
- }
-
- // implicit broadcast constructor
- template <class _Up,
- class = typename std::enable_if<__can_broadcast<_Up>()>::type>
- simd(_Up&& __rv) {
- auto __v = static_cast<_Tp>(__rv);
- for (size_t __i = 0; __i < size(); __i++) {
- (*this)[__i] = __v;
- }
- }
-
- // generator constructor
- template <class _Generator,
- int = typename std::enable_if<
- __can_generate<_Generator>(std::make_index_sequence<size()>()),
- int>::type()>
- explicit simd(_Generator&& __g) {
- __generator_init(std::forward<_Generator>(__g),
- std::make_index_sequence<size()>());
- }
-
- // load constructor
- template <
- class _Up, class _Flags,
- class = typename std::enable_if<__vectorizable<_Up>()>::type,
- class = typename std::enable_if<is_simd_flag_type<_Flags>::value>::type>
- simd(const _Up* __buffer, _Flags) {
- // TODO: optimize for overaligned flags
- for (size_t __i = 0; __i < size(); __i++) {
- (*this)[__i] = static_cast<_Tp>(__buffer[__i]);
- }
- }
-
- // loads [simd.load]
- template <class _Up, class _Flags>
- typename std::enable_if<__vectorizable<_Up>() &&
- is_simd_flag_type<_Flags>::value>::type
- copy_from(const _Up* __buffer, _Flags) {
- *this = simd(__buffer, _Flags());
- }
-
- // stores [simd.store]
- template <class _Up, class _Flags>
- typename std::enable_if<__vectorizable<_Up>() &&
- is_simd_flag_type<_Flags>::value>::type
- copy_to(_Up* __buffer, _Flags) const {
- // TODO: optimize for overaligned flags
- for (size_t __i = 0; __i < size(); __i++) {
- __buffer[__i] = static_cast<_Up>((*this)[__i]);
- }
- }
-
- // scalar access [simd.subscr]
- reference operator[](size_t __i) { return reference(&__s_, __i); }
-
- value_type operator[](size_t __i) const { return __s_.__get(__i); }
-
- // unary operators [simd.unary]
- simd& operator++();
- simd operator++(int);
- simd& operator--();
- simd operator--(int);
- mask_type operator!() const;
- simd operator~() const;
- simd operator+() const;
- simd operator-() const;
-
- // binary operators [simd.binary]
- friend simd operator+(const simd&, const simd&);
- friend simd operator-(const simd&, const simd&);
- friend simd operator*(const simd&, const simd&);
- friend simd operator/(const simd&, const simd&);
- friend simd operator%(const simd&, const simd&);
- friend simd operator&(const simd&, const simd&);
- friend simd operator|(const simd&, const simd&);
- friend simd operator^(const simd&, const simd&);
- friend simd operator<<(const simd&, const simd&);
- friend simd operator>>(const simd&, const simd&);
- friend simd operator<<(const simd&, int);
- friend simd operator>>(const simd&, int);
-
- // compound assignment [simd.cassign]
- friend simd& operator+=(simd&, const simd&);
- friend simd& operator-=(simd&, const simd&);
- friend simd& operator*=(simd&, const simd&);
- friend simd& operator/=(simd&, const simd&);
- friend simd& operator%=(simd&, const simd&);
-
- friend simd& operator&=(simd&, const simd&);
- friend simd& operator|=(simd&, const simd&);
- friend simd& operator^=(simd&, const simd&);
- friend simd& operator<<=(simd&, const simd&);
- friend simd& operator>>=(simd&, const simd&);
- friend simd& operator<<=(simd&, int);
- friend simd& operator>>=(simd&, int);
-
- // compares [simd.comparison]
- friend mask_type operator==(const simd&, const simd&);
- friend mask_type operator!=(const simd&, const simd&);
- friend mask_type operator>=(const simd&, const simd&);
- friend mask_type operator<=(const simd&, const simd&);
- friend mask_type operator>(const simd&, const simd&);
- friend mask_type operator<(const simd&, const simd&);
-};
-
-// [simd.mask.class]
-template <class _Tp, class _Abi>
-// TODO: implement simd_mask
-class simd_mask {
-public:
- using value_type = bool;
- // TODO: this is strawman implementation. Turn it into a proxy type.
- using reference = bool&;
- using simd_type = simd<_Tp, _Abi>;
- using abi_type = _Abi;
- static constexpr size_t size() noexcept;
- simd_mask() = default;
-
- // broadcast constructor
- explicit simd_mask(value_type) noexcept;
-
- // implicit type conversion constructor
- template <class _Up>
- simd_mask(const simd_mask<_Up, simd_abi::fixed_size<size()>>&) noexcept;
-
- // load constructor
- template <class _Flags>
- simd_mask(const value_type*, _Flags);
-
- // loads [simd.mask.copy]
- template <class _Flags>
- void copy_from(const value_type*, _Flags);
- template <class _Flags>
- void copy_to(value_type*, _Flags) const;
-
- // scalar access [simd.mask.subscr]
- reference operator[](size_t);
- value_type operator[](size_t) const;
-
- // unary operators [simd.mask.unary]
- simd_mask operator!() const noexcept;
-
- // simd_mask binary operators [simd.mask.binary]
- friend simd_mask operator&&(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator||(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator&(const simd_mask&, const simd_mask&)noexcept;
- friend simd_mask operator|(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator^(const simd_mask&, const simd_mask&) noexcept;
-
- // simd_mask compound assignment [simd.mask.cassign]
- friend simd_mask& operator&=(simd_mask&, const simd_mask&) noexcept;
- friend simd_mask& operator|=(simd_mask&, const simd_mask&) noexcept;
- friend simd_mask& operator^=(simd_mask&, const simd_mask&) noexcept;
-
- // simd_mask compares [simd.mask.comparison]
- friend simd_mask operator==(const simd_mask&, const simd_mask&) noexcept;
- friend simd_mask operator!=(const simd_mask&, const simd_mask&) noexcept;
-};
-
-#endif // _LIBCPP_STD_VER >= 17
-
-_LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD
-
-_LIBCPP_POP_MACROS
-
-#endif /* _LIBCPP_EXPERIMENTAL_SIMD */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/string b/contrib/libs/cxxsupp/libcxx/include/experimental/string
deleted file mode 100644
index aab916778f8..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/string
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_STRING
-#define _LIBCPP_EXPERIMENTAL_STRING
-/*
- experimental/string synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- // basic_string using polymorphic allocator in namespace pmr
- template <class charT, class traits = char_traits<charT>>
- using basic_string =
- std::basic_string<charT, traits, polymorphic_allocator<charT>>;
-
- // basic_string typedef names using polymorphic allocator in namespace
- // std::experimental::pmr
- typedef basic_string<char> string;
- typedef basic_string<char16_t> u16string;
- typedef basic_string<char32_t> u32string;
- typedef basic_string<wchar_t> wstring;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <string>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _CharT, class _Traits = char_traits<_CharT>>
-using basic_string =
- _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;
-
-typedef basic_string<char> string;
-typedef basic_string<char16_t> u16string;
-typedef basic_string<char32_t> u32string;
-#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
-typedef basic_string<wchar_t> wstring;
-#endif
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_STRING */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/type_traits b/contrib/libs/cxxsupp/libcxx/include/experimental/type_traits
deleted file mode 100644
index 707cbde9912..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/type_traits
+++ /dev/null
@@ -1,154 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_TYPE_TRAITS
-#define _LIBCPP_EXPERIMENTAL_TYPE_TRAITS
-
-/**
- experimental/type_traits synopsis
-
-// C++1y
-#include <type_traits>
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-
- // 3.3.2, Other type transformations
- template <class> class invocation_type; // not defined
- template <class F, class... ArgTypes> class invocation_type<F(ArgTypes...)>;
- template <class> class raw_invocation_type; // not defined
- template <class F, class... ArgTypes> class raw_invocation_type<F(ArgTypes...)>;
-
- template <class T>
- using invocation_type_t = typename invocation_type<T>::type;
- template <class T>
- using raw_invocation_type_t = typename raw_invocation_type<T>::type;
-
- // 3.3.4, Detection idiom
- template <class...> using void_t = void;
-
- struct nonesuch {
- nonesuch() = delete;
- ~nonesuch() = delete;
- nonesuch(nonesuch const&) = delete;
- void operator=(nonesuch const&) = delete;
- };
-
- template <template<class...> class Op, class... Args>
- using is_detected = see below;
- template <template<class...> class Op, class... Args>
- constexpr bool is_detected_v = is_detected<Op, Args...>::value;
- template <template<class...> class Op, class... Args>
- using detected_t = see below;
- template <class Default, template<class...> class Op, class... Args>
- using detected_or = see below;
- template <class Default, template<class...> class Op, class... Args>
- using detected_or_t = typename detected_or<Default, Op, Args...>::type;
- template <class Expected, template<class...> class Op, class... Args>
- using is_detected_exact = is_same<Expected, detected_t<Op, Args...>>;
- template <class Expected, template<class...> class Op, class... Args>
- constexpr bool is_detected_exact_v
- = is_detected_exact<Expected, Op, Args...>::value;
- template <class To, template<class...> class Op, class... Args>
- using is_detected_convertible = is_convertible<detected_t<Op, Args...>, To>;
- template <class To, template<class...> class Op, class... Args>
- constexpr bool is_detected_convertible_v
- = is_detected_convertible<To, Op, Args...>::value;
-
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-
-#if _LIBCPP_STD_VER > 11
-
-#include <initializer_list>
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
-// 3.3.2, Other type transformations
-/*
-template <class>
-class _LIBCPP_TEMPLATE_VIS raw_invocation_type;
-
-template <class _Fn, class ..._Args>
-class _LIBCPP_TEMPLATE_VIS raw_invocation_type<_Fn(_Args...)>;
-
-template <class>
-class _LIBCPP_TEMPLATE_VIS invokation_type;
-
-template <class _Fn, class ..._Args>
-class _LIBCPP_TEMPLATE_VIS invokation_type<_Fn(_Args...)>;
-
-template <class _Tp>
-using invokation_type_t = typename invokation_type<_Tp>::type;
-
-template <class _Tp>
-using raw_invocation_type_t = typename raw_invocation_type<_Tp>::type;
-*/
-
-// 3.3.4, Detection idiom
-template <class...> using void_t = void;
-
-struct nonesuch : private __nat { // make nonesuch "not an aggregate"
- ~nonesuch() = delete;
- nonesuch (nonesuch const&) = delete;
- void operator=(nonesuch const&) = delete;
- };
-
-template <class _Default, class _AlwaysVoid, template <class...> class _Op, class... _Args>
-struct _DETECTOR {
- using value_t = false_type;
- using type = _Default;
- };
-
-template <class _Default, template <class...> class _Op, class... _Args>
-struct _DETECTOR<_Default, void_t<_Op<_Args...>>, _Op, _Args...> {
- using value_t = true_type;
- using type = _Op<_Args...>;
- };
-
-
-template <template<class...> class _Op, class... _Args>
- using is_detected = typename _DETECTOR<nonesuch, void, _Op, _Args...>::value_t;
-template <template<class...> class _Op, class... _Args>
- using detected_t = typename _DETECTOR<nonesuch, void, _Op, _Args...>::type;
-template <template<class...> class _Op, class... _Args>
- _LIBCPP_CONSTEXPR bool is_detected_v = is_detected<_Op, _Args...>::value;
-
-template <class Default, template<class...> class _Op, class... _Args>
- using detected_or = _DETECTOR<Default, void, _Op, _Args...>;
-template <class Default, template<class...> class _Op, class... _Args>
- using detected_or_t = typename detected_or<Default, _Op, _Args...>::type;
-
-template <class Expected, template<class...> class _Op, class... _Args>
- using is_detected_exact = is_same<Expected, detected_t<_Op, _Args...>>;
-template <class Expected, template<class...> class _Op, class... _Args>
- _LIBCPP_CONSTEXPR bool is_detected_exact_v = is_detected_exact<Expected, _Op, _Args...>::value;
-
-template <class To, template<class...> class _Op, class... _Args>
- using is_detected_convertible = is_convertible<detected_t<_Op, _Args...>, To>;
-template <class To, template<class...> class _Op, class... _Args>
- _LIBCPP_CONSTEXPR bool is_detected_convertible_v = is_detected_convertible<To, _Op, _Args...>::value;
-
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-#endif /* _LIBCPP_STD_VER > 11 */
-
-#endif /* _LIBCPP_EXPERIMENTAL_TYPE_TRAITS */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_map b/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_map
deleted file mode 100644
index 069ba203d5b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_map
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
-#define _LIBCPP_EXPERIMENTAL_UNORDERED_MAP
-/*
- experimental/unordered_map synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class Key, class T,
- class Hash = hash<Key>,
- class Pred = equal_to<Key>>
- using unordered_map =
- std::unordered_map<Key, T, Hash, Pred,
- polymorphic_allocator<pair<const Key,T>>>;
-
- template <class Key, class T,
- class Hash = hash<Key>,
- class Pred = equal_to<Key>>
- using unordered_multimap =
- std::unordered_multimap<Key, T, Hash, Pred,
- polymorphic_allocator<pair<const Key,T>>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <unordered_map>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _Key, class _Value,
- class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
-using unordered_map = _VSTD::unordered_map<_Key, _Value, _Hash, _Pred,
- polymorphic_allocator<pair<const _Key, _Value>>>;
-
-template <class _Key, class _Value,
- class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>
-using unordered_multimap = _VSTD::unordered_multimap<_Key, _Value, _Hash, _Pred,
- polymorphic_allocator<pair<const _Key, _Value>>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_MAP */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_set b/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_set
deleted file mode 100644
index cac6c76414b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/unordered_set
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_SET
-#define _LIBCPP_EXPERIMENTAL_UNORDERED_SET
-/*
- experimental/unordered_set synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class T, class Hash = hash<T>, class Pred = equal_to<T>>
- using unordered_set = std::unordered_set<T, Hash, Pred,
- polymorphic_allocator<T>>;
-
- template <class T, class Hash = hash<T>, class Pred = equal_to<T>>
- using unordered_multiset = std::unordered_multiset<T, Hash, Pred,
- polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <unordered_set>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _Value,
- class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>
-using unordered_set = _VSTD::unordered_set<_Value, _Hash, _Pred,
- polymorphic_allocator<_Value>>;
-
-template <class _Value,
- class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>
-using unordered_multiset = _VSTD::unordered_multiset<_Value, _Hash, _Pred,
- polymorphic_allocator<_Value>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_SET */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/utility b/contrib/libs/cxxsupp/libcxx/include/experimental/utility
deleted file mode 100644
index 21650a8d1ec..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/utility
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_UTILITY
-#define _LIBCPP_EXPERIMENTAL_UTILITY
-
-/*
- experimental/utility synopsis
-
-// C++1y
-
-#include <utility>
-
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-
- 3.1.2, erased-type placeholder
- struct erased_type { };
-
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <utility>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS
-
- struct _LIBCPP_TEMPLATE_VIS erased_type { };
-
-_LIBCPP_END_NAMESPACE_LFTS
-
-#endif /* _LIBCPP_EXPERIMENTAL_UTILITY */
diff --git a/contrib/libs/cxxsupp/libcxx/include/experimental/vector b/contrib/libs/cxxsupp/libcxx/include/experimental/vector
deleted file mode 100644
index 1eb792758f4..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/experimental/vector
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXPERIMENTAL_VECTOR
-#define _LIBCPP_EXPERIMENTAL_VECTOR
-/*
- experimental/vector synopsis
-
-// C++1z
-namespace std {
-namespace experimental {
-inline namespace fundamentals_v1 {
-namespace pmr {
-
- template <class T>
- using vector = std::vector<T, polymorphic_allocator<T>>;
-
-} // namespace pmr
-} // namespace fundamentals_v1
-} // namespace experimental
-} // namespace std
-
- */
-
-#include <experimental/__config>
-#include <experimental/memory_resource>
-#include <vector>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-template <class _ValueT>
-using vector = _VSTD::vector<_ValueT, polymorphic_allocator<_ValueT>>;
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
-
-#endif /* _LIBCPP_EXPERIMENTAL_VECTOR */
diff --git a/contrib/libs/cxxsupp/libcxx/include/ext/__hash b/contrib/libs/cxxsupp/libcxx/include/ext/__hash
deleted file mode 100644
index 92bd0824634..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/ext/__hash
+++ /dev/null
@@ -1,134 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_EXT_HASH
-#define _LIBCPP_EXT_HASH
-
-# pragma GCC system_header
-
-#include <__string>
-#include <cstring>
-#include <string>
-
-namespace __gnu_cxx {
-
-template <typename _Tp> struct _LIBCPP_TEMPLATE_VIS hash { };
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<const char*>
- : public std::unary_function<const char*, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(const char *__c) const _NOEXCEPT
- {
- return std::__do_string_hash(__c, __c + strlen(__c));
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<char *>
- : public std::unary_function<char*, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(char *__c) const _NOEXCEPT
- {
- return std::__do_string_hash<const char *>(__c, __c + strlen(__c));
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<char>
- : public std::unary_function<char, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(char __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<signed char>
- : public std::unary_function<signed char, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(signed char __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned char>
- : public std::unary_function<unsigned char, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(unsigned char __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<short>
- : public std::unary_function<short, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(short __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned short>
- : public std::unary_function<unsigned short, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(unsigned short __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<int>
- : public std::unary_function<int, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(int __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned int>
- : public std::unary_function<unsigned int, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(unsigned int __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<long>
- : public std::unary_function<long, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(long __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-
-template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned long>
- : public std::unary_function<unsigned long, size_t>
-{
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(unsigned long __c) const _NOEXCEPT
- {
- return __c;
- }
-};
-} // namespace __gnu_cxx
-
-#endif // _LIBCPP_EXT_HASH
diff --git a/contrib/libs/cxxsupp/libcxx/include/ext/hash_map b/contrib/libs/cxxsupp/libcxx/include/ext/hash_map
deleted file mode 100644
index 4d9c08cd261..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/ext/hash_map
+++ /dev/null
@@ -1,984 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_HASH_MAP
-#define _LIBCPP_HASH_MAP
-
-/*
-
- hash_map synopsis
-
-namespace __gnu_cxx
-{
-
-template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,
- class Alloc = allocator<pair<const Key, T>>>
-class hash_map
-{
-public:
- // types
- typedef Key key_type;
- typedef T mapped_type;
- typedef Hash hasher;
- typedef Pred key_equal;
- typedef Alloc allocator_type;
- typedef pair<const key_type, mapped_type> value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef typename allocator_traits<allocator_type>::pointer pointer;
- typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
- typedef typename allocator_traits<allocator_type>::size_type size_type;
- typedef typename allocator_traits<allocator_type>::difference_type difference_type;
-
- typedef /unspecified/ iterator;
- typedef /unspecified/ const_iterator;
-
- hash_map();
- explicit hash_map(size_type n, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- template <class InputIterator>
- hash_map(InputIterator f, InputIterator l);
- template <class InputIterator>
- hash_map(InputIterator f, InputIterator l,
- size_type n, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- hash_map(const hash_map&);
- ~hash_map();
- hash_map& operator=(const hash_map&);
-
- allocator_type get_allocator() const;
-
- bool empty() const;
- size_type size() const;
- size_type max_size() const;
-
- iterator begin();
- iterator end();
- const_iterator begin() const;
- const_iterator end() const;
-
- pair<iterator, bool> insert(const value_type& obj);
- template <class InputIterator>
- void insert(InputIterator first, InputIterator last);
-
- void erase(const_iterator position);
- size_type erase(const key_type& k);
- void erase(const_iterator first, const_iterator last);
- void clear();
-
- void swap(hash_map&);
-
- hasher hash_funct() const;
- key_equal key_eq() const;
-
- iterator find(const key_type& k);
- const_iterator find(const key_type& k) const;
- size_type count(const key_type& k) const;
- pair<iterator, iterator> equal_range(const key_type& k);
- pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
- mapped_type& operator[](const key_type& k);
-
- size_type bucket_count() const;
- size_type max_bucket_count() const;
-
- size_type elems_in_bucket(size_type n) const;
-
- void resize(size_type n);
-};
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- void swap(hash_map<Key, T, Hash, Pred, Alloc>& x,
- hash_map<Key, T, Hash, Pred, Alloc>& y);
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- bool
- operator==(const hash_map<Key, T, Hash, Pred, Alloc>& x,
- const hash_map<Key, T, Hash, Pred, Alloc>& y);
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- bool
- operator!=(const hash_map<Key, T, Hash, Pred, Alloc>& x,
- const hash_map<Key, T, Hash, Pred, Alloc>& y);
-
-template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,
- class Alloc = allocator<pair<const Key, T>>>
-class hash_multimap
-{
-public:
- // types
- typedef Key key_type;
- typedef T mapped_type;
- typedef Hash hasher;
- typedef Pred key_equal;
- typedef Alloc allocator_type;
- typedef pair<const key_type, mapped_type> value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef typename allocator_traits<allocator_type>::pointer pointer;
- typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
- typedef typename allocator_traits<allocator_type>::size_type size_type;
- typedef typename allocator_traits<allocator_type>::difference_type difference_type;
-
- typedef /unspecified/ iterator;
- typedef /unspecified/ const_iterator;
-
- explicit hash_multimap(size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- template <class InputIterator>
- hash_multimap(InputIterator f, InputIterator l,
- size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- explicit hash_multimap(const allocator_type&);
- hash_multimap(const hash_multimap&);
- ~hash_multimap();
- hash_multimap& operator=(const hash_multimap&);
-
- allocator_type get_allocator() const;
-
- bool empty() const;
- size_type size() const;
- size_type max_size() const;
-
- iterator begin();
- iterator end();
- const_iterator begin() const;
- const_iterator end() const;
-
- iterator insert(const value_type& obj);
- template <class InputIterator>
- void insert(InputIterator first, InputIterator last);
-
- void erase(const_iterator position);
- size_type erase(const key_type& k);
- void erase(const_iterator first, const_iterator last);
- void clear();
-
- void swap(hash_multimap&);
-
- hasher hash_funct() const;
- key_equal key_eq() const;
-
- iterator find(const key_type& k);
- const_iterator find(const key_type& k) const;
- size_type count(const key_type& k) const;
- pair<iterator, iterator> equal_range(const key_type& k);
- pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
- size_type bucket_count() const;
- size_type max_bucket_count() const;
-
- size_type elems_in_bucket(size_type n) const;
-
- void resize(size_type n);
-};
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- void swap(hash_multimap<Key, T, Hash, Pred, Alloc>& x,
- hash_multimap<Key, T, Hash, Pred, Alloc>& y);
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- bool
- operator==(const hash_multimap<Key, T, Hash, Pred, Alloc>& x,
- const hash_multimap<Key, T, Hash, Pred, Alloc>& y);
-
-template <class Key, class T, class Hash, class Pred, class Alloc>
- bool
- operator!=(const hash_multimap<Key, T, Hash, Pred, Alloc>& x,
- const hash_multimap<Key, T, Hash, Pred, Alloc>& y);
-
-} // __gnu_cxx
-
-*/
-
-#include <__config>
-#include <__hash_table>
-#include <ext/__hash>
-#include <functional>
-#include <stdexcept>
-#include <type_traits>
-
-#if defined(__DEPRECATED) && __DEPRECATED
-#if defined(_LIBCPP_WARNING)
- _LIBCPP_WARNING("Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>")
-#else
-# warning Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>
-#endif
-#endif
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-namespace __gnu_cxx {
-
-template <class _Tp, class _Hash,
- bool = std::is_empty<_Hash>::value && !std::__libcpp_is_final<_Hash>::value
- >
-class __hash_map_hasher
- : private _Hash
-{
-public:
- _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : _Hash() {}
- _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : _Hash(__h) {}
- _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return *this;}
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(const _Tp& __x) const
- {return static_cast<const _Hash&>(*this)(__x.first);}
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(const typename _Tp::first_type& __x) const
- {return static_cast<const _Hash&>(*this)(__x);}
-};
-
-template <class _Tp, class _Hash>
-class __hash_map_hasher<_Tp, _Hash, false>
-{
- _Hash __hash_;
-public:
- _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : __hash_() {}
- _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : __hash_(__h) {}
- _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return __hash_;}
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(const _Tp& __x) const
- {return __hash_(__x.first);}
- _LIBCPP_INLINE_VISIBILITY
- size_t operator()(const typename _Tp::first_type& __x) const
- {return __hash_(__x);}
-};
-
-template <class _Tp, class _Pred,
- bool = std::is_empty<_Pred>::value && !std::__libcpp_is_final<_Pred>::value
- >
-class __hash_map_equal
- : private _Pred
-{
-public:
- _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : _Pred() {}
- _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : _Pred(__p) {}
- _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return *this;}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const _Tp& __x, const _Tp& __y) const
- {return static_cast<const _Pred&>(*this)(__x.first, __y.first);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const
- {return static_cast<const _Pred&>(*this)(__x, __y.first);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const
- {return static_cast<const _Pred&>(*this)(__x.first, __y);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const typename _Tp::first_type& __x,
- const typename _Tp::first_type& __y) const
- {return static_cast<const _Pred&>(*this)(__x, __y);}
-};
-
-template <class _Tp, class _Pred>
-class __hash_map_equal<_Tp, _Pred, false>
-{
- _Pred __pred_;
-public:
- _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : __pred_() {}
- _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : __pred_(__p) {}
- _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return __pred_;}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const _Tp& __x, const _Tp& __y) const
- {return __pred_(__x.first, __y.first);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const
- {return __pred_(__x, __y.first);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const
- {return __pred_(__x.first, __y);}
- _LIBCPP_INLINE_VISIBILITY
- bool operator()(const typename _Tp::first_type& __x,
- const typename _Tp::first_type& __y) const
- {return __pred_(__x, __y);}
-};
-
-template <class _Alloc>
-class __hash_map_node_destructor
-{
- typedef _Alloc allocator_type;
- typedef std::allocator_traits<allocator_type> __alloc_traits;
- typedef typename __alloc_traits::value_type::__node_value_type value_type;
-public:
- typedef typename __alloc_traits::pointer pointer;
-private:
- typedef typename value_type::first_type first_type;
- typedef typename value_type::second_type second_type;
-
- allocator_type& __na_;
-
-public:
- bool __first_constructed;
- bool __second_constructed;
-
- __hash_map_node_destructor(__hash_map_node_destructor const&) = default;
- __hash_map_node_destructor& operator=(const __hash_map_node_destructor&) = delete;
-
- _LIBCPP_INLINE_VISIBILITY
- explicit __hash_map_node_destructor(allocator_type& __na)
- : __na_(__na),
- __first_constructed(false),
- __second_constructed(false)
- {}
-
-#ifndef _LIBCPP_CXX03_LANG
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_node_destructor(std::__hash_node_destructor<allocator_type>&& __x)
- : __na_(__x.__na_),
- __first_constructed(__x.__value_constructed),
- __second_constructed(__x.__value_constructed)
- {
- __x.__value_constructed = false;
- }
-#else // _LIBCPP_CXX03_LANG
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_node_destructor(const std::__hash_node_destructor<allocator_type>& __x)
- : __na_(__x.__na_),
- __first_constructed(__x.__value_constructed),
- __second_constructed(__x.__value_constructed)
- {
- const_cast<bool&>(__x.__value_constructed) = false;
- }
-#endif // _LIBCPP_CXX03_LANG
-
- _LIBCPP_INLINE_VISIBILITY
- void operator()(pointer __p)
- {
- if (__second_constructed)
- __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.second));
- if (__first_constructed)
- __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.first));
- if (__p)
- __alloc_traits::deallocate(__na_, __p, 1);
- }
-};
-
-template <class _HashIterator>
-class _LIBCPP_TEMPLATE_VIS __hash_map_iterator
-{
- _HashIterator __i_;
-
- typedef const typename _HashIterator::value_type::first_type key_type;
- typedef typename _HashIterator::value_type::second_type mapped_type;
-public:
- typedef std::forward_iterator_tag iterator_category;
- typedef std::pair<key_type, mapped_type> value_type;
- typedef typename _HashIterator::difference_type difference_type;
- typedef value_type& reference;
- typedef typename std::__rebind_pointer<typename _HashIterator::pointer, value_type>::type
- pointer;
-
- _LIBCPP_INLINE_VISIBILITY __hash_map_iterator() {}
-
- _LIBCPP_INLINE_VISIBILITY __hash_map_iterator(_HashIterator __i) : __i_(__i) {}
-
- _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *operator->();}
- _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return (pointer)__i_.operator->();}
-
- _LIBCPP_INLINE_VISIBILITY __hash_map_iterator& operator++() {++__i_; return *this;}
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_iterator operator++(int)
- {
- __hash_map_iterator __t(*this);
- ++(*this);
- return __t;
- }
-
- friend _LIBCPP_INLINE_VISIBILITY
- bool operator==(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
- {return __x.__i_ == __y.__i_;}
- friend _LIBCPP_INLINE_VISIBILITY
- bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
- {return __x.__i_ != __y.__i_;}
-
- template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;
- template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;
- template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
- template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
- template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
-};
-
-template <class _HashIterator>
-class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator
-{
- _HashIterator __i_;
-
- typedef const typename _HashIterator::value_type::first_type key_type;
- typedef typename _HashIterator::value_type::second_type mapped_type;
-public:
- typedef std::forward_iterator_tag iterator_category;
- typedef std::pair<key_type, mapped_type> value_type;
- typedef typename _HashIterator::difference_type difference_type;
- typedef const value_type& reference;
- typedef typename std::__rebind_pointer<typename _HashIterator::pointer, const value_type>::type
- pointer;
-
- _LIBCPP_INLINE_VISIBILITY __hash_map_const_iterator() {}
-
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_const_iterator(_HashIterator __i) : __i_(__i) {}
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_const_iterator(
- __hash_map_iterator<typename _HashIterator::__non_const_iterator> __i)
- : __i_(__i.__i_) {}
-
- _LIBCPP_INLINE_VISIBILITY
- reference operator*() const {return *operator->();}
- _LIBCPP_INLINE_VISIBILITY
- pointer operator->() const {return (pointer)__i_.operator->();}
-
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_const_iterator& operator++() {++__i_; return *this;}
- _LIBCPP_INLINE_VISIBILITY
- __hash_map_const_iterator operator++(int)
- {
- __hash_map_const_iterator __t(*this);
- ++(*this);
- return __t;
- }
-
- friend _LIBCPP_INLINE_VISIBILITY
- bool operator==(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
- {return __x.__i_ == __y.__i_;}
- friend _LIBCPP_INLINE_VISIBILITY
- bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
- {return __x.__i_ != __y.__i_;}
-
- template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;
- template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;
- template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
- template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
-};
-
-template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = std::equal_to<_Key>,
- class _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
-class _LIBCPP_TEMPLATE_VIS hash_map
-{
-public:
- // types
- typedef _Key key_type;
- typedef _Tp mapped_type;
- typedef _Tp data_type;
- typedef _Hash hasher;
- typedef _Pred key_equal;
- typedef _Alloc allocator_type;
- typedef std::pair<const key_type, mapped_type> value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
-private:
- typedef std::pair<key_type, mapped_type> __value_type;
- typedef __hash_map_hasher<__value_type, hasher> __hasher;
- typedef __hash_map_equal<__value_type, key_equal> __key_equal;
- typedef typename std::__rebind_alloc_helper<
- std::allocator_traits<allocator_type>, __value_type>::type __allocator_type;
-
- typedef std::__hash_table<__value_type, __hasher,
- __key_equal, __allocator_type> __table;
-
- __table __table_;
-
- typedef typename __table::__node_pointer __node_pointer;
- typedef typename __table::__node_const_pointer __node_const_pointer;
- typedef typename __table::__node_traits __node_traits;
- typedef typename __table::__node_allocator __node_allocator;
- typedef typename __table::__node __node;
- typedef __hash_map_node_destructor<__node_allocator> _Dp;
- typedef std::unique_ptr<__node, _Dp> __node_holder;
- typedef std::allocator_traits<allocator_type> __alloc_traits;
-public:
- typedef typename __alloc_traits::pointer pointer;
- typedef typename __alloc_traits::const_pointer const_pointer;
- typedef typename __alloc_traits::size_type size_type;
- typedef typename __alloc_traits::difference_type difference_type;
-
- typedef __hash_map_iterator<typename __table::iterator> iterator;
- typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;
-
- _LIBCPP_INLINE_VISIBILITY hash_map() { }
- explicit hash_map(size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- hash_map(size_type __n, const hasher& __hf,
- const key_equal& __eql,
- const allocator_type& __a);
- template <class _InputIterator>
- hash_map(_InputIterator __first, _InputIterator __last);
- template <class _InputIterator>
- hash_map(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- template <class _InputIterator>
- hash_map(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf,
- const key_equal& __eql,
- const allocator_type& __a);
- hash_map(const hash_map& __u);
-
- _LIBCPP_INLINE_VISIBILITY
- allocator_type get_allocator() const
- {return allocator_type(__table_.__node_alloc());}
-
- _LIBCPP_INLINE_VISIBILITY
- bool empty() const {return __table_.size() == 0;}
- _LIBCPP_INLINE_VISIBILITY
- size_type size() const {return __table_.size();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_size() const {return __table_.max_size();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator begin() {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- iterator end() {return __table_.end();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator begin() const {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator end() const {return __table_.end();}
-
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, bool> insert(const value_type& __x)
- {return __table_.__insert_unique(__x);}
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;}
- template <class _InputIterator>
- _LIBCPP_INLINE_VISIBILITY
- void insert(_InputIterator __first, _InputIterator __last);
-
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __p) {__table_.erase(__p.__i_);}
- _LIBCPP_INLINE_VISIBILITY
- size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __first, const_iterator __last)
- {__table_.erase(__first.__i_, __last.__i_);}
- _LIBCPP_INLINE_VISIBILITY
- void clear() {__table_.clear();}
-
- _LIBCPP_INLINE_VISIBILITY
- void swap(hash_map& __u) {__table_.swap(__u.__table_);}
-
- _LIBCPP_INLINE_VISIBILITY
- hasher hash_funct() const
- {return __table_.hash_function().hash_function();}
- _LIBCPP_INLINE_VISIBILITY
- key_equal key_eq() const
- {return __table_.key_eq().key_eq();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator find(const key_type& __k) {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator find(const key_type& __k) const {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, iterator> equal_range(const key_type& __k)
- {return __table_.__equal_range_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<const_iterator, const_iterator> equal_range(const key_type& __k) const
- {return __table_.__equal_range_unique(__k);}
-
- mapped_type& operator[](const key_type& __k);
-
- _LIBCPP_INLINE_VISIBILITY
- size_type bucket_count() const {return __table_.bucket_count();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_bucket_count() const {return __table_.max_bucket_count();}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type elems_in_bucket(size_type __n) const
- {return __table_.bucket_size(__n);}
-
- _LIBCPP_INLINE_VISIBILITY
- void resize(size_type __n) {__table_.rehash(__n);}
-
-private:
- __node_holder __construct_node(const key_type& __k);
-};
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- size_type __n, const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- _InputIterator __first, _InputIterator __last)
-{
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(
- const hash_map& __u)
- : __table_(__u.__table_)
-{
- __table_.rehash(__u.bucket_count());
- insert(__u.begin(), __u.end());
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__node_holder
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node(const key_type& __k)
-{
- __node_allocator& __na = __table_.__node_alloc();
- __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_.first), __k);
- __h.get_deleter().__first_constructed = true;
- __node_traits::construct(__na, _VSTD::addressof(__h->__value_.second));
- __h.get_deleter().__second_constructed = true;
- return __h;
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-inline
-void
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,
- _InputIterator __last)
-{
- for (; __first != __last; ++__first)
- __table_.__insert_unique(*__first);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-_Tp&
-hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k)
-{
- iterator __i = find(__k);
- if (__i != end())
- return __i->second;
- __node_holder __h = __construct_node(__k);
- std::pair<iterator, bool> __r = __table_.__node_insert_unique(__h.get());
- __h.release();
- return __r.first->second;
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-void
-swap(hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- __x.swap(__y);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-bool
-operator==(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- if (__x.size() != __y.size())
- return false;
- typedef typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator
- const_iterator;
- for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();
- __i != __ex; ++__i)
- {
- const_iterator __j = __y.find(__i->first);
- if (__j == __ey || !(*__i == *__j))
- return false;
- }
- return true;
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = std::equal_to<_Key>,
- class _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
-class _LIBCPP_TEMPLATE_VIS hash_multimap
-{
-public:
- // types
- typedef _Key key_type;
- typedef _Tp mapped_type;
- typedef _Tp data_type;
- typedef _Hash hasher;
- typedef _Pred key_equal;
- typedef _Alloc allocator_type;
- typedef std::pair<const key_type, mapped_type> value_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
-private:
- typedef std::pair<key_type, mapped_type> __value_type;
- typedef __hash_map_hasher<__value_type, hasher> __hasher;
- typedef __hash_map_equal<__value_type, key_equal> __key_equal;
- typedef typename std::__rebind_alloc_helper<std::allocator_traits<allocator_type>, __value_type>::type __allocator_type;
-
- typedef std::__hash_table<__value_type, __hasher,
- __key_equal, __allocator_type> __table;
-
- __table __table_;
-
- typedef typename __table::__node_traits __node_traits;
- typedef typename __table::__node_allocator __node_allocator;
- typedef typename __table::__node __node;
- typedef __hash_map_node_destructor<__node_allocator> _Dp;
- typedef std::unique_ptr<__node, _Dp> __node_holder;
- typedef std::allocator_traits<allocator_type> __alloc_traits;
-public:
- typedef typename __alloc_traits::pointer pointer;
- typedef typename __alloc_traits::const_pointer const_pointer;
- typedef typename __alloc_traits::size_type size_type;
- typedef typename __alloc_traits::difference_type difference_type;
-
- typedef __hash_map_iterator<typename __table::iterator> iterator;
- typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;
-
- _LIBCPP_INLINE_VISIBILITY
- hash_multimap() { }
- explicit hash_multimap(size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- hash_multimap(size_type __n, const hasher& __hf,
- const key_equal& __eql,
- const allocator_type& __a);
- template <class _InputIterator>
- hash_multimap(_InputIterator __first, _InputIterator __last);
- template <class _InputIterator>
- hash_multimap(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- template <class _InputIterator>
- hash_multimap(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf,
- const key_equal& __eql,
- const allocator_type& __a);
- hash_multimap(const hash_multimap& __u);
-
- _LIBCPP_INLINE_VISIBILITY
- allocator_type get_allocator() const
- {return allocator_type(__table_.__node_alloc());}
-
- _LIBCPP_INLINE_VISIBILITY
- bool empty() const {return __table_.size() == 0;}
- _LIBCPP_INLINE_VISIBILITY
- size_type size() const {return __table_.size();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_size() const {return __table_.max_size();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator begin() {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- iterator end() {return __table_.end();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator begin() const {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator end() const {return __table_.end();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const_iterator, const value_type& __x) {return insert(__x);}
- template <class _InputIterator>
- _LIBCPP_INLINE_VISIBILITY
- void insert(_InputIterator __first, _InputIterator __last);
-
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __p) {__table_.erase(__p.__i_);}
- _LIBCPP_INLINE_VISIBILITY
- size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __first, const_iterator __last)
- {__table_.erase(__first.__i_, __last.__i_);}
- _LIBCPP_INLINE_VISIBILITY
- void clear() {__table_.clear();}
-
- _LIBCPP_INLINE_VISIBILITY
- void swap(hash_multimap& __u) {__table_.swap(__u.__table_);}
-
- _LIBCPP_INLINE_VISIBILITY
- hasher hash_funct() const
- {return __table_.hash_function().hash_function();}
- _LIBCPP_INLINE_VISIBILITY
- key_equal key_eq() const
- {return __table_.key_eq().key_eq();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator find(const key_type& __k) {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator find(const key_type& __k) const {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, iterator> equal_range(const key_type& __k)
- {return __table_.__equal_range_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<const_iterator, const_iterator> equal_range(const key_type& __k) const
- {return __table_.__equal_range_multi(__k);}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type bucket_count() const {return __table_.bucket_count();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_bucket_count() const {return __table_.max_bucket_count();}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type elems_in_bucket(size_type __n) const
- {return __table_.bucket_size(__n);}
-
- _LIBCPP_INLINE_VISIBILITY
- void resize(size_type __n) {__table_.rehash(__n);}
-};
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- size_type __n, const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- _InputIterator __first, _InputIterator __last)
-{
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(
- const hash_multimap& __u)
- : __table_(__u.__table_)
-{
- __table_.rehash(__u.bucket_count());
- insert(__u.begin(), __u.end());
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-inline
-void
-hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,
- _InputIterator __last)
-{
- for (; __first != __last; ++__first)
- __table_.__insert_multi(*__first);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-void
-swap(hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- __x.swap(__y);
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-bool
-operator==(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- if (__x.size() != __y.size())
- return false;
- typedef typename hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator
- const_iterator;
- typedef std::pair<const_iterator, const_iterator> _EqRng;
- for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)
- {
- _EqRng __xeq = __x.equal_range(__i->first);
- _EqRng __yeq = __y.equal_range(__i->first);
- if (_VSTD::distance(__xeq.first, __xeq.second) !=
- _VSTD::distance(__yeq.first, __yeq.second) ||
- !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))
- return false;
- __i = __xeq.second;
- }
- return true;
-}
-
-template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator!=(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
- const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)
-{
- return !(__x == __y);
-}
-
-} // namespace __gnu_cxx
-
-#endif // _LIBCPP_HASH_MAP
diff --git a/contrib/libs/cxxsupp/libcxx/include/ext/hash_set b/contrib/libs/cxxsupp/libcxx/include/ext/hash_set
deleted file mode 100644
index 254f482a5ae..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/ext/hash_set
+++ /dev/null
@@ -1,663 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_HASH_SET
-#define _LIBCPP_HASH_SET
-
-/*
-
- hash_set synopsis
-
-namespace __gnu_cxx
-{
-
-template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,
- class Alloc = allocator<Value>>
-class hash_set
-{
-public:
- // types
- typedef Value key_type;
- typedef key_type value_type;
- typedef Hash hasher;
- typedef Pred key_equal;
- typedef Alloc allocator_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef typename allocator_traits<allocator_type>::pointer pointer;
- typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
- typedef typename allocator_traits<allocator_type>::size_type size_type;
- typedef typename allocator_traits<allocator_type>::difference_type difference_type;
-
- typedef /unspecified/ iterator;
- typedef /unspecified/ const_iterator;
-
- explicit hash_set(size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- template <class InputIterator>
- hash_set(InputIterator f, InputIterator l,
- size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- hash_set(const hash_set&);
- ~hash_set();
- hash_set& operator=(const hash_set&);
-
- allocator_type get_allocator() const;
-
- bool empty() const;
- size_type size() const;
- size_type max_size() const;
-
- iterator begin();
- iterator end();
- const_iterator begin() const;
- const_iterator end() const;
-
- pair<iterator, bool> insert(const value_type& obj);
- template <class InputIterator>
- void insert(InputIterator first, InputIterator last);
-
- void erase(const_iterator position);
- size_type erase(const key_type& k);
- void erase(const_iterator first, const_iterator last);
- void clear();
-
- void swap(hash_set&);
-
- hasher hash_funct() const;
- key_equal key_eq() const;
-
- iterator find(const key_type& k);
- const_iterator find(const key_type& k) const;
- size_type count(const key_type& k) const;
- pair<iterator, iterator> equal_range(const key_type& k);
- pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
- size_type bucket_count() const;
- size_type max_bucket_count() const;
-
- size_type elems_in_bucket(size_type n) const;
-
- void resize(size_type n);
-};
-
-template <class Value, class Hash, class Pred, class Alloc>
- void swap(hash_set<Value, Hash, Pred, Alloc>& x,
- hash_set<Value, Hash, Pred, Alloc>& y);
-
-template <class Value, class Hash, class Pred, class Alloc>
- bool
- operator==(const hash_set<Value, Hash, Pred, Alloc>& x,
- const hash_set<Value, Hash, Pred, Alloc>& y);
-
-template <class Value, class Hash, class Pred, class Alloc>
- bool
- operator!=(const hash_set<Value, Hash, Pred, Alloc>& x,
- const hash_set<Value, Hash, Pred, Alloc>& y);
-
-template <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,
- class Alloc = allocator<Value>>
-class hash_multiset
-{
-public:
- // types
- typedef Value key_type;
- typedef key_type value_type;
- typedef Hash hasher;
- typedef Pred key_equal;
- typedef Alloc allocator_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef typename allocator_traits<allocator_type>::pointer pointer;
- typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
- typedef typename allocator_traits<allocator_type>::size_type size_type;
- typedef typename allocator_traits<allocator_type>::difference_type difference_type;
-
- typedef /unspecified/ iterator;
- typedef /unspecified/ const_iterator;
-
- explicit hash_multiset(size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- template <class InputIterator>
- hash_multiset(InputIterator f, InputIterator l,
- size_type n = 193, const hasher& hf = hasher(),
- const key_equal& eql = key_equal(),
- const allocator_type& a = allocator_type());
- hash_multiset(const hash_multiset&);
- ~hash_multiset();
- hash_multiset& operator=(const hash_multiset&);
-
- allocator_type get_allocator() const;
-
- bool empty() const;
- size_type size() const;
- size_type max_size() const;
-
- iterator begin();
- iterator end();
- const_iterator begin() const;
- const_iterator end() const;
-
- iterator insert(const value_type& obj);
- template <class InputIterator>
- void insert(InputIterator first, InputIterator last);
-
- void erase(const_iterator position);
- size_type erase(const key_type& k);
- void erase(const_iterator first, const_iterator last);
- void clear();
-
- void swap(hash_multiset&);
-
- hasher hash_funct() const;
- key_equal key_eq() const;
-
- iterator find(const key_type& k);
- const_iterator find(const key_type& k) const;
- size_type count(const key_type& k) const;
- pair<iterator, iterator> equal_range(const key_type& k);
- pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
-
- size_type bucket_count() const;
- size_type max_bucket_count() const;
-
- size_type elems_in_bucket(size_type n) const;
-
- void resize(size_type n);
-};
-
-template <class Value, class Hash, class Pred, class Alloc>
- void swap(hash_multiset<Value, Hash, Pred, Alloc>& x,
- hash_multiset<Value, Hash, Pred, Alloc>& y);
-
-template <class Value, class Hash, class Pred, class Alloc>
- bool
- operator==(const hash_multiset<Value, Hash, Pred, Alloc>& x,
- const hash_multiset<Value, Hash, Pred, Alloc>& y);
-
-template <class Value, class Hash, class Pred, class Alloc>
- bool
- operator!=(const hash_multiset<Value, Hash, Pred, Alloc>& x,
- const hash_multiset<Value, Hash, Pred, Alloc>& y);
-} // __gnu_cxx
-
-*/
-
-#include <__config>
-#include <__hash_table>
-#include <ext/__hash>
-#include <functional>
-
-#if defined(__DEPRECATED) && __DEPRECATED
-#if defined(_LIBCPP_WARNING)
- _LIBCPP_WARNING("Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set>")
-#else
-# warning Use of the header <ext/hash_set> is deprecated. Migrate to <unordered_set>
-#endif
-#endif
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-namespace __gnu_cxx {
-
-
-template <class _Value, class _Hash = hash<_Value>, class _Pred = std::equal_to<_Value>,
- class _Alloc = std::allocator<_Value> >
-class _LIBCPP_TEMPLATE_VIS hash_set
-{
-public:
- // types
- typedef _Value key_type;
- typedef key_type value_type;
- typedef _Hash hasher;
- typedef _Pred key_equal;
- typedef _Alloc allocator_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
-private:
- typedef std::__hash_table<value_type, hasher, key_equal, allocator_type> __table;
-
- __table __table_;
-
-public:
- typedef typename __table::pointer pointer;
- typedef typename __table::const_pointer const_pointer;
- typedef typename __table::size_type size_type;
- typedef typename __table::difference_type difference_type;
-
- typedef typename __table::const_iterator iterator;
- typedef typename __table::const_iterator const_iterator;
-
- _LIBCPP_INLINE_VISIBILITY
- hash_set() { }
- explicit hash_set(size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- hash_set(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a);
- template <class _InputIterator>
- hash_set(_InputIterator __first, _InputIterator __last);
- template <class _InputIterator>
- hash_set(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- template <class _InputIterator>
- hash_set(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a);
- hash_set(const hash_set& __u);
-
- _LIBCPP_INLINE_VISIBILITY
- allocator_type get_allocator() const
- {return allocator_type(__table_.__node_alloc());}
-
- _LIBCPP_INLINE_VISIBILITY
- bool empty() const {return __table_.size() == 0;}
- _LIBCPP_INLINE_VISIBILITY
- size_type size() const {return __table_.size();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_size() const {return __table_.max_size();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator begin() {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- iterator end() {return __table_.end();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator begin() const {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator end() const {return __table_.end();}
-
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, bool> insert(const value_type& __x)
- {return __table_.__insert_unique(__x);}
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;}
- template <class _InputIterator>
- _LIBCPP_INLINE_VISIBILITY
- void insert(_InputIterator __first, _InputIterator __last);
-
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __p) {__table_.erase(__p);}
- _LIBCPP_INLINE_VISIBILITY
- size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __first, const_iterator __last)
- {__table_.erase(__first, __last);}
- _LIBCPP_INLINE_VISIBILITY
- void clear() {__table_.clear();}
-
- _LIBCPP_INLINE_VISIBILITY
- void swap(hash_set& __u) {__table_.swap(__u.__table_);}
-
- _LIBCPP_INLINE_VISIBILITY
- hasher hash_funct() const {return __table_.hash_function();}
- _LIBCPP_INLINE_VISIBILITY
- key_equal key_eq() const {return __table_.key_eq();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator find(const key_type& __k) {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator find(const key_type& __k) const {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, iterator> equal_range(const key_type& __k)
- {return __table_.__equal_range_unique(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<const_iterator, const_iterator> equal_range(const key_type& __k) const
- {return __table_.__equal_range_unique(__k);}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type bucket_count() const {return __table_.bucket_count();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_bucket_count() const {return __table_.max_bucket_count();}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);}
-
- _LIBCPP_INLINE_VISIBILITY
- void resize(size_type __n) {__table_.rehash(__n);}
-};
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n,
- const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(
- _InputIterator __first, _InputIterator __last)
-{
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(
- const hash_set& __u)
- : __table_(__u.__table_)
-{
- __table_.rehash(__u.bucket_count());
- insert(__u.begin(), __u.end());
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-inline
-void
-hash_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,
- _InputIterator __last)
-{
- for (; __first != __last; ++__first)
- __table_.__insert_unique(*__first);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-void
-swap(hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
- hash_set<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- __x.swap(__y);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-bool
-operator==(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
- const hash_set<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- if (__x.size() != __y.size())
- return false;
- typedef typename hash_set<_Value, _Hash, _Pred, _Alloc>::const_iterator
- const_iterator;
- for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();
- __i != __ex; ++__i)
- {
- const_iterator __j = __y.find(*__i);
- if (__j == __ey || !(*__i == *__j))
- return false;
- }
- return true;
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
- const hash_set<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- return !(__x == __y);
-}
-
-template <class _Value, class _Hash = hash<_Value>, class _Pred = std::equal_to<_Value>,
- class _Alloc = std::allocator<_Value> >
-class _LIBCPP_TEMPLATE_VIS hash_multiset
-{
-public:
- // types
- typedef _Value key_type;
- typedef key_type value_type;
- typedef _Hash hasher;
- typedef _Pred key_equal;
- typedef _Alloc allocator_type;
- typedef value_type& reference;
- typedef const value_type& const_reference;
-
-private:
- typedef std::__hash_table<value_type, hasher, key_equal, allocator_type> __table;
-
- __table __table_;
-
-public:
- typedef typename __table::pointer pointer;
- typedef typename __table::const_pointer const_pointer;
- typedef typename __table::size_type size_type;
- typedef typename __table::difference_type difference_type;
-
- typedef typename __table::const_iterator iterator;
- typedef typename __table::const_iterator const_iterator;
-
- _LIBCPP_INLINE_VISIBILITY
- hash_multiset() { }
- explicit hash_multiset(size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- hash_multiset(size_type __n, const hasher& __hf,
- const key_equal& __eql, const allocator_type& __a);
- template <class _InputIterator>
- hash_multiset(_InputIterator __first, _InputIterator __last);
- template <class _InputIterator>
- hash_multiset(_InputIterator __first, _InputIterator __last,
- size_type __n, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal());
- template <class _InputIterator>
- hash_multiset(_InputIterator __first, _InputIterator __last,
- size_type __n , const hasher& __hf,
- const key_equal& __eql, const allocator_type& __a);
- hash_multiset(const hash_multiset& __u);
-
- _LIBCPP_INLINE_VISIBILITY
- allocator_type get_allocator() const
- {return allocator_type(__table_.__node_alloc());}
-
- _LIBCPP_INLINE_VISIBILITY
- bool empty() const {return __table_.size() == 0;}
- _LIBCPP_INLINE_VISIBILITY
- size_type size() const {return __table_.size();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_size() const {return __table_.max_size();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator begin() {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- iterator end() {return __table_.end();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator begin() const {return __table_.begin();}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator end() const {return __table_.end();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}
- _LIBCPP_INLINE_VISIBILITY
- iterator insert(const_iterator, const value_type& __x) {return insert(__x);}
- template <class _InputIterator>
- _LIBCPP_INLINE_VISIBILITY
- void insert(_InputIterator __first, _InputIterator __last);
-
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __p) {__table_.erase(__p);}
- _LIBCPP_INLINE_VISIBILITY
- size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- void erase(const_iterator __first, const_iterator __last)
- {__table_.erase(__first, __last);}
- _LIBCPP_INLINE_VISIBILITY
- void clear() {__table_.clear();}
-
- _LIBCPP_INLINE_VISIBILITY
- void swap(hash_multiset& __u) {__table_.swap(__u.__table_);}
-
- _LIBCPP_INLINE_VISIBILITY
- hasher hash_funct() const {return __table_.hash_function();}
- _LIBCPP_INLINE_VISIBILITY
- key_equal key_eq() const {return __table_.key_eq();}
-
- _LIBCPP_INLINE_VISIBILITY
- iterator find(const key_type& __k) {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- const_iterator find(const key_type& __k) const {return __table_.find(__k);}
- _LIBCPP_INLINE_VISIBILITY
- size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<iterator, iterator> equal_range(const key_type& __k)
- {return __table_.__equal_range_multi(__k);}
- _LIBCPP_INLINE_VISIBILITY
- std::pair<const_iterator, const_iterator> equal_range(const key_type& __k) const
- {return __table_.__equal_range_multi(__k);}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type bucket_count() const {return __table_.bucket_count();}
- _LIBCPP_INLINE_VISIBILITY
- size_type max_bucket_count() const {return __table_.max_bucket_count();}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);}
-
- _LIBCPP_INLINE_VISIBILITY
- void resize(size_type __n) {__table_.rehash(__n);}
-};
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- size_type __n, const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- _InputIterator __first, _InputIterator __last)
-{
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : __table_(__hf, __eql)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- _InputIterator __first, _InputIterator __last, size_type __n,
- const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
- : __table_(__hf, __eql, __a)
-{
- __table_.rehash(__n);
- insert(__first, __last);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(
- const hash_multiset& __u)
- : __table_(__u.__table_)
-{
- __table_.rehash(__u.bucket_count());
- insert(__u.begin(), __u.end());
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-template <class _InputIterator>
-inline
-void
-hash_multiset<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,
- _InputIterator __last)
-{
- for (; __first != __last; ++__first)
- __table_.__insert_multi(*__first);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-void
-swap(hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
- hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- __x.swap(__y);
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-bool
-operator==(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
- const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- if (__x.size() != __y.size())
- return false;
- typedef typename hash_multiset<_Value, _Hash, _Pred, _Alloc>::const_iterator
- const_iterator;
- typedef std::pair<const_iterator, const_iterator> _EqRng;
- for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)
- {
- _EqRng __xeq = __x.equal_range(*__i);
- _EqRng __yeq = __y.equal_range(*__i);
- if (_VSTD::distance(__xeq.first, __xeq.second) !=
- _VSTD::distance(__yeq.first, __yeq.second) ||
- !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))
- return false;
- __i = __xeq.second;
- }
- return true;
-}
-
-template <class _Value, class _Hash, class _Pred, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator!=(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
- const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)
-{
- return !(__x == __y);
-}
-
-} // namespace __gnu_cxx
-
-#endif // _LIBCPP_HASH_SET
diff --git a/contrib/libs/cxxsupp/libcxx/include/latch b/contrib/libs/cxxsupp/libcxx/include/latch
deleted file mode 100644
index e1e15190ae4..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/latch
+++ /dev/null
@@ -1,113 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_LATCH
-#define _LIBCPP_LATCH
-
-/*
- latch synopsis
-
-namespace std
-{
-
- class latch
- {
- public:
- static constexpr ptrdiff_t max() noexcept;
-
- constexpr explicit latch(ptrdiff_t __expected);
- ~latch();
-
- latch(const latch&) = delete;
- latch& operator=(const latch&) = delete;
-
- void count_down(ptrdiff_t __update = 1);
- bool try_wait() const noexcept;
- void wait() const;
- void arrive_and_wait(ptrdiff_t __update = 1);
-
- private:
- ptrdiff_t __counter; // exposition only
- };
-
-}
-
-*/
-
-#include <__availability>
-#include <__config>
-#include <atomic>
-#include <version>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#ifdef _LIBCPP_HAS_NO_THREADS
-# error <latch> is not supported on this single threaded system
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-#if _LIBCPP_STD_VER >= 14
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-class latch
-{
- __atomic_base<ptrdiff_t> __a;
-
-public:
- static constexpr ptrdiff_t max() noexcept {
- return numeric_limits<ptrdiff_t>::max();
- }
-
- inline _LIBCPP_INLINE_VISIBILITY
- constexpr explicit latch(ptrdiff_t __expected) : __a(__expected) { }
-
- ~latch() = default;
- latch(const latch&) = delete;
- latch& operator=(const latch&) = delete;
-
- inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void count_down(ptrdiff_t __update = 1)
- {
- auto const __old = __a.fetch_sub(__update, memory_order_release);
- if(__old == __update)
- __a.notify_all();
- }
- inline _LIBCPP_INLINE_VISIBILITY
- bool try_wait() const noexcept
- {
- return 0 == __a.load(memory_order_acquire);
- }
- inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void wait() const
- {
- auto const __test_fn = [=]() -> bool {
- return try_wait();
- };
- __cxx_atomic_wait(&__a.__a_, __test_fn);
- }
- inline _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void arrive_and_wait(ptrdiff_t __update = 1)
- {
- count_down(__update);
- wait();
- }
-};
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_STD_VER >= 14
-
-_LIBCPP_POP_MACROS
-
-#endif //_LIBCPP_LATCH
diff --git a/contrib/libs/cxxsupp/libcxx/include/module.modulemap b/contrib/libs/cxxsupp/libcxx/include/module.modulemap
deleted file mode 100644
index b9587376451..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/module.modulemap
+++ /dev/null
@@ -1,1104 +0,0 @@
-// define the module for __config outside of the top level 'std' module
-// since __config may be included from C headers which may create an
-// include cycle.
-module std_config [system] [extern_c] {
- header "__config"
- header "__config_site"
- export *
-}
-
-module std [system] {
- export std_config
- // FIXME: The standard does not require that each of these submodules
- // re-exports its imported modules. We should provide an alternative form of
- // export that issues a warning if a name from the submodule is used, and
- // use that to provide a 'strict mode' for libc++.
-
- // Deprecated C-compatibility headers. These can all be included from within
- // an 'extern "C"' context.
- module depr [extern_c] {
- // <assert.h> provided by C library.
- module ctype_h {
- header "ctype.h"
- export *
- }
- module errno_h {
- header "errno.h"
- export *
- }
- module fenv_h {
- header "fenv.h"
- export *
- }
- // <float.h> provided by compiler or C library.
- module inttypes_h {
- header "inttypes.h"
- export stdint_h
- export *
- }
- // <iso646.h> provided by compiler.
- // <limits.h> provided by compiler or C library.
- module locale_h {
- header "locale.h"
- export *
- }
- module math_h {
- header "math.h"
- export *
- }
- module setjmp_h {
- header "setjmp.h"
- export *
- }
- module stdatomic_h {
- header "stdatomic.h"
- export *
- }
- // FIXME: <stdalign.h> is missing.
- // <signal.h> provided by C library.
- // <stdarg.h> provided by compiler.
- // <stdbool.h> provided by compiler.
- module stddef_h {
- // <stddef.h>'s __need_* macros require textual inclusion.
- textual header "stddef.h"
- }
- module stdint_h {
- header "stdint.h"
- export *
- // FIXME: This module only exists on OS X and for some reason the
- // wildcard above doesn't export it.
- export Darwin.C.stdint
- }
- module stdio_h {
- // <stdio.h>'s __need_* macros require textual inclusion.
- textual header "stdio.h"
- export *
- export Darwin.C.stdio
- }
- module stdlib_h {
- // <stdlib.h>'s __need_* macros require textual inclusion.
- textual header "stdlib.h"
- export *
- }
- module string_h {
- header "string.h"
- export *
- }
- // FIXME: <uchar.h> is missing.
- // <time.h> provided by C library.
- module wchar_h {
- // <wchar.h>'s __need_* macros require textual inclusion.
- textual header "wchar.h"
- export *
- }
- module wctype_h {
- header "wctype.h"
- export *
- }
- }
-
- // <complex.h> and <tgmath.h> are not C headers in any real sense, do not
- // allow their use in extern "C" contexts.
- module complex_h {
- header "complex.h"
- export ccomplex
- export *
- }
- module tgmath_h {
- header "tgmath.h"
- export ccomplex
- export cmath
- export *
- }
-
- // C compatibility headers.
- module compat {
- module cassert {
- // <cassert>'s use of NDEBUG requires textual inclusion.
- textual header "cassert"
- }
- module ccomplex {
- header "ccomplex"
- export complex
- export *
- }
- module cctype {
- header "cctype"
- export *
- }
- module cerrno {
- header "cerrno"
- export *
- }
- module cfenv {
- header "cfenv"
- export *
- }
- module cfloat {
- header "cfloat"
- export *
- }
- module cinttypes {
- header "cinttypes"
- export cstdint
- export *
- }
- module ciso646 {
- header "ciso646"
- export *
- }
- module climits {
- header "climits"
- export *
- }
- module clocale {
- header "clocale"
- export *
- }
- module cmath {
- header "cmath"
- export *
- }
- module csetjmp {
- header "csetjmp"
- export *
- }
- module csignal {
- header "csignal"
- export *
- }
- // FIXME: <cstdalign> is missing.
- module cstdarg {
- header "cstdarg"
- export *
- }
- module cstdbool {
- header "cstdbool"
- export *
- }
- module cstddef {
- header "cstddef"
- export *
- }
- module cstdint {
- header "cstdint"
- export depr.stdint_h
- export *
- }
- module cstdio {
- header "cstdio"
- export *
- }
- module cstdlib {
- header "cstdlib"
- export *
- }
- module cstring {
- header "cstring"
- export *
- }
- module ctgmath {
- header "ctgmath"
- export ccomplex
- export cmath
- export *
- }
- module ctime {
- header "ctime"
- export *
- }
- // FIXME: <cuchar> is missing.
- module cwchar {
- header "cwchar"
- export depr.stdio_h
- export *
- }
- module cwctype {
- header "cwctype"
- export *
- }
- }
-
- module algorithm {
- header "algorithm"
- export initializer_list
- export *
-
- module __algorithm {
- module adjacent_find { private header "__algorithm/adjacent_find.h" }
- module all_of { private header "__algorithm/all_of.h" }
- module any_of { private header "__algorithm/any_of.h" }
- module binary_search { private header "__algorithm/binary_search.h" }
- module clamp { private header "__algorithm/clamp.h" }
- module comp { private header "__algorithm/comp.h" }
- module comp_ref_type { private header "__algorithm/comp_ref_type.h" }
- module copy { private header "__algorithm/copy.h" }
- module copy_backward { private header "__algorithm/copy_backward.h" }
- module copy_if { private header "__algorithm/copy_if.h" }
- module copy_n { private header "__algorithm/copy_n.h" }
- module count { private header "__algorithm/count.h" }
- module count_if { private header "__algorithm/count_if.h" }
- module equal { private header "__algorithm/equal.h" }
- module equal_range { private header "__algorithm/equal_range.h" }
- module fill { private header "__algorithm/fill.h" }
- module fill_n { private header "__algorithm/fill_n.h" }
- module find { private header "__algorithm/find.h" }
- module find_end { private header "__algorithm/find_end.h" }
- module find_first_of { private header "__algorithm/find_first_of.h" }
- module find_if { private header "__algorithm/find_if.h" }
- module find_if_not { private header "__algorithm/find_if_not.h" }
- module for_each { private header "__algorithm/for_each.h" }
- module for_each_n { private header "__algorithm/for_each_n.h" }
- module generate { private header "__algorithm/generate.h" }
- module generate_n { private header "__algorithm/generate_n.h" }
- module half_positive { private header "__algorithm/half_positive.h" }
- module in_fun_result { private header "__algorithm/in_fun_result.h" }
- module in_in_out_result { private header "__algorithm/in_in_out_result.h" }
- module in_in_result { private header "__algorithm/in_in_result.h" }
- module in_out_out_result { private header "__algorithm/in_out_out_result.h" }
- module in_out_result { private header "__algorithm/in_out_result.h" }
- module includes { private header "__algorithm/includes.h" }
- module inplace_merge { private header "__algorithm/inplace_merge.h" }
- module is_heap { private header "__algorithm/is_heap.h" }
- module is_heap_until { private header "__algorithm/is_heap_until.h" }
- module is_partitioned { private header "__algorithm/is_partitioned.h" }
- module is_permutation { private header "__algorithm/is_permutation.h" }
- module is_sorted { private header "__algorithm/is_sorted.h" }
- module is_sorted_until { private header "__algorithm/is_sorted_until.h" }
- module iter_swap { private header "__algorithm/iter_swap.h" }
- module lexicographical_compare { private header "__algorithm/lexicographical_compare.h" }
- module lower_bound { private header "__algorithm/lower_bound.h" }
- module make_heap { private header "__algorithm/make_heap.h" }
- module max { private header "__algorithm/max.h" }
- module max_element { private header "__algorithm/max_element.h" }
- module merge { private header "__algorithm/merge.h" }
- module min { private header "__algorithm/min.h" }
- module min_element { private header "__algorithm/min_element.h" }
- module minmax { private header "__algorithm/minmax.h" }
- module minmax_element { private header "__algorithm/minmax_element.h" }
- module mismatch { private header "__algorithm/mismatch.h" }
- module move { private header "__algorithm/move.h" }
- module move_backward { private header "__algorithm/move_backward.h" }
- module next_permutation { private header "__algorithm/next_permutation.h" }
- module none_of { private header "__algorithm/none_of.h" }
- module nth_element { private header "__algorithm/nth_element.h" }
- module partial_sort { private header "__algorithm/partial_sort.h" }
- module partial_sort_copy { private header "__algorithm/partial_sort_copy.h" }
- module partition { private header "__algorithm/partition.h" }
- module partition_copy { private header "__algorithm/partition_copy.h" }
- module partition_point { private header "__algorithm/partition_point.h" }
- module pop_heap { private header "__algorithm/pop_heap.h" }
- module prev_permutation { private header "__algorithm/prev_permutation.h" }
- module push_heap { private header "__algorithm/push_heap.h" }
- module ranges_min_element { private header "__algorithm/ranges_min_element.h" }
- module ranges_swap_ranges { private header "__algorithm/ranges_swap_ranges.h" }
- module remove { private header "__algorithm/remove.h" }
- module remove_copy { private header "__algorithm/remove_copy.h" }
- module remove_copy_if { private header "__algorithm/remove_copy_if.h" }
- module remove_if { private header "__algorithm/remove_if.h" }
- module replace { private header "__algorithm/replace.h" }
- module replace_copy { private header "__algorithm/replace_copy.h" }
- module replace_copy_if { private header "__algorithm/replace_copy_if.h" }
- module replace_if { private header "__algorithm/replace_if.h" }
- module reverse { private header "__algorithm/reverse.h" }
- module reverse_copy { private header "__algorithm/reverse_copy.h" }
- module rotate { private header "__algorithm/rotate.h" }
- module rotate_copy { private header "__algorithm/rotate_copy.h" }
- module sample { private header "__algorithm/sample.h" }
- module search { private header "__algorithm/search.h" }
- module search_n { private header "__algorithm/search_n.h" }
- module set_difference { private header "__algorithm/set_difference.h" }
- module set_intersection { private header "__algorithm/set_intersection.h" }
- module set_symmetric_difference { private header "__algorithm/set_symmetric_difference.h" }
- module set_union { private header "__algorithm/set_union.h" }
- module shift_left { private header "__algorithm/shift_left.h" }
- module shift_right { private header "__algorithm/shift_right.h" }
- module shuffle { private header "__algorithm/shuffle.h" }
- module sift_down { private header "__algorithm/sift_down.h" }
- module sort { private header "__algorithm/sort.h" }
- module sort_heap { private header "__algorithm/sort_heap.h" }
- module stable_partition { private header "__algorithm/stable_partition.h" }
- module stable_sort { private header "__algorithm/stable_sort.h" }
- module swap_ranges { private header "__algorithm/swap_ranges.h" }
- module transform { private header "__algorithm/transform.h" }
- module unique { private header "__algorithm/unique.h" }
- module unique_copy { private header "__algorithm/unique_copy.h" }
- module unwrap_iter { private header "__algorithm/unwrap_iter.h" }
- module upper_bound { private header "__algorithm/upper_bound.h" }
- }
- }
- module any {
- header "any"
- export *
- }
- module array {
- header "array"
- export initializer_list
- export *
- }
- module atomic {
- header "atomic"
- export *
- }
- module barrier {
- requires cplusplus14
- header "barrier"
- export *
- }
- module bit {
- header "bit"
- export *
-
- module __bit {
- module bit_cast { private header "__bit/bit_cast.h" }
- module byteswap { private header "__bit/byteswap.h" }
- }
- }
- module bitset {
- header "bitset"
- export string
- export iosfwd
- export *
- }
- // No submodule for cassert. It fundamentally needs repeated, textual inclusion.
- module charconv {
- header "charconv"
- export *
-
- module __charconv {
- module chars_format { private header "__charconv/chars_format.h" }
- module from_chars_result { private header "__charconv/from_chars_result.h" }
- module to_chars_result { private header "__charconv/to_chars_result.h" }
- }
-
- }
- module chrono {
- header "chrono"
- export *
-
- module __chrono {
- module calendar { private header "__chrono/calendar.h" }
- module convert_to_timespec { private header "__chrono/convert_to_timespec.h" }
- module duration { private header "__chrono/duration.h" }
- module file_clock { private header "__chrono/file_clock.h" }
- module high_resolution_clock { private header "__chrono/high_resolution_clock.h" }
- module steady_clock { private header "__chrono/steady_clock.h" }
- module system_clock { private header "__chrono/system_clock.h" }
- module time_point { private header "__chrono/time_point.h" }
- }
- }
- module codecvt {
- header "codecvt"
- export *
- }
- module compare {
- header "compare"
- export *
-
- module __compare {
- module common_comparison_category { private header "__compare/common_comparison_category.h" }
- module compare_partial_order_fallback { private header "__compare/compare_partial_order_fallback.h" }
- module compare_strong_order_fallback { private header "__compare/compare_strong_order_fallback.h" }
- module compare_three_way { private header "__compare/compare_three_way.h" }
- module compare_three_way_result { private header "__compare/compare_three_way_result.h" }
- module compare_weak_order_fallback { private header "__compare/compare_weak_order_fallback.h" }
- module is_eq { private header "__compare/is_eq.h" }
- module ordering { private header "__compare/ordering.h" }
- module partial_order { private header "__compare/partial_order.h" }
- module strong_order { private header "__compare/strong_order.h" }
- module synth_three_way { private header "__compare/synth_three_way.h" }
- module three_way_comparable { private header "__compare/three_way_comparable.h" }
- module weak_order { private header "__compare/weak_order.h" }
- }
- }
- module complex {
- header "complex"
- export *
- }
- module concepts {
- header "concepts"
- export *
-
- module __concepts {
- module arithmetic { private header "__concepts/arithmetic.h" }
- module assignable { private header "__concepts/assignable.h" }
- module boolean_testable { private header "__concepts/boolean_testable.h" }
- module class_or_enum { private header "__concepts/class_or_enum.h" }
- module common_reference_with { private header "__concepts/common_reference_with.h" }
- module common_with { private header "__concepts/common_with.h" }
- module constructible { private header "__concepts/constructible.h" }
- module convertible_to { private header "__concepts/convertible_to.h" }
- module copyable { private header "__concepts/copyable.h" }
- module derived_from { private header "__concepts/derived_from.h" }
- module destructible { private header "__concepts/destructible.h" }
- module different_from { private header "__concepts/different_from.h" }
- module equality_comparable { private header "__concepts/equality_comparable.h" }
- module invocable { private header "__concepts/invocable.h" }
- module movable { private header "__concepts/movable.h" }
- module predicate { private header "__concepts/predicate.h" }
- module regular { private header "__concepts/regular.h" }
- module relation { private header "__concepts/relation.h" }
- module same_as { private header "__concepts/same_as.h" }
- module semiregular { private header "__concepts/semiregular.h" }
- module swappable { private header "__concepts/swappable.h" }
- module totally_ordered { private header "__concepts/totally_ordered.h" }
- }
- }
- module condition_variable {
- header "condition_variable"
- export *
- }
- module coroutine {
- requires coroutines
- header "coroutine"
- export compare
- export *
-
- module __coroutine {
- module coroutine_handle { private header "__coroutine/coroutine_handle.h" }
- module coroutine_traits { private header "__coroutine/coroutine_traits.h" }
- module noop_coroutine_handle { private header "__coroutine/noop_coroutine_handle.h" }
- module trivial_awaitables { private header "__coroutine/trivial_awaitables.h" }
- }
- }
- module deque {
- header "deque"
- export initializer_list
- export *
- }
- module exception {
- header "exception"
- export *
- }
- module execution {
- header "execution"
- export *
- }
- module filesystem {
- header "filesystem"
- export *
-
- module __filesystem {
- module copy_options { private header "__filesystem/copy_options.h" }
- module directory_entry { private header "__filesystem/directory_entry.h" }
- module directory_iterator { private header "__filesystem/directory_iterator.h" }
- module directory_options { private header "__filesystem/directory_options.h" }
- module file_status { private header "__filesystem/file_status.h" }
- module file_time_type { private header "__filesystem/file_time_type.h" }
- module file_type { private header "__filesystem/file_type.h" }
- module filesystem_error { private header "__filesystem/filesystem_error.h" }
- module operations { private header "__filesystem/operations.h" }
- module path { private header "__filesystem/path.h" }
- module path_iterator { private header "__filesystem/path_iterator.h" }
- module perm_options { private header "__filesystem/perm_options.h" }
- module perms { private header "__filesystem/perms.h" }
- module recursive_directory_iterator { private header "__filesystem/recursive_directory_iterator.h" }
- module space_info { private header "__filesystem/space_info.h" }
- module u8path { private header "__filesystem/u8path.h" }
- }
- }
- module format {
- header "format"
- export *
-
- module __format {
- module format_arg { private header "__format/format_arg.h" }
- module format_args { private header "__format/format_args.h" }
- module format_context {
- private header "__format/format_context.h"
- export optional
- export locale
- }
- module format_error { private header "__format/format_error.h" }
- module format_fwd { private header "__format/format_fwd.h" }
- module format_parse_context { private header "__format/format_parse_context.h" }
- module format_string { private header "__format/format_string.h" }
- module format_to_n_result { private header "__format/format_to_n_result.h" }
- module formatter { private header "__format/formatter.h" }
- module formatter_bool { private header "__format/formatter_bool.h" }
- module formatter_char { private header "__format/formatter_char.h" }
- module formatter_floating_point { private header "__format/formatter_floating_point.h" }
- module formatter_integer { private header "__format/formatter_integer.h" }
- module formatter_integral { private header "__format/formatter_integral.h" }
- module formatter_pointer { private header "__format/formatter_pointer.h" }
- module formatter_string { private header "__format/formatter_string.h" }
- module parser_std_format_spec { private header "__format/parser_std_format_spec.h" }
- }
- }
- module forward_list {
- header "forward_list"
- export initializer_list
- export *
- }
- module fstream {
- header "fstream"
- export *
- }
- module functional {
- header "functional"
- export *
-
- module __functional {
- module binary_function { private header "__functional/binary_function.h" }
- module binary_negate { private header "__functional/binary_negate.h" }
- module bind { private header "__functional/bind.h" }
- module bind_back { private header "__functional/bind_back.h" }
- module bind_front { private header "__functional/bind_front.h" }
- module binder1st { private header "__functional/binder1st.h" }
- module binder2nd { private header "__functional/binder2nd.h" }
- module compose { private header "__functional/compose.h" }
- module default_searcher { private header "__functional/default_searcher.h" }
- module function { private header "__functional/function.h" }
- module hash { private header "__functional/hash.h" }
- module identity { private header "__functional/identity.h" }
- module invoke { private header "__functional/invoke.h" }
- module is_transparent { private header "__functional/is_transparent.h" }
- module mem_fn { private header "__functional/mem_fn.h" }
- module mem_fun_ref { private header "__functional/mem_fun_ref.h" }
- module not_fn { private header "__functional/not_fn.h" }
- module operations { private header "__functional/operations.h" }
- module perfect_forward { private header "__functional/perfect_forward.h" }
- module pointer_to_binary_function { private header "__functional/pointer_to_binary_function.h" }
- module pointer_to_unary_function { private header "__functional/pointer_to_unary_function.h" }
- module ranges_operations { private header "__functional/ranges_operations.h" }
- module reference_wrapper { private header "__functional/reference_wrapper.h" }
- module unary_function { private header "__functional/unary_function.h" }
- module unary_negate { private header "__functional/unary_negate.h" }
- module unwrap_ref { private header "__functional/unwrap_ref.h" }
- module weak_result_type { private header "__functional/weak_result_type.h" }
- }
- }
- module future {
- header "future"
- export *
- }
- module initializer_list {
- header "initializer_list"
- export *
- }
- module iomanip {
- header "iomanip"
- export *
- }
- module ios {
- header "ios"
- export iosfwd
- export *
-
- module __ios {
- module fpos { private header "__ios/fpos.h" }
- }
- }
- module iosfwd {
- header "iosfwd"
- export *
- }
- module iostream {
- header "iostream"
- export ios
- export streambuf
- export istream
- export ostream
- export *
- }
- module istream {
- header "istream"
- // FIXME: should re-export ios, streambuf?
- export *
- }
- module iterator {
- header "iterator"
- export *
-
- module __iterator {
- module access { private header "__iterator/access.h" }
- module advance { private header "__iterator/advance.h" }
- module back_insert_iterator { private header "__iterator/back_insert_iterator.h" }
- module common_iterator { private header "__iterator/common_iterator.h" }
- module concepts { private header "__iterator/concepts.h" }
- module counted_iterator { private header "__iterator/counted_iterator.h" }
- module data { private header "__iterator/data.h" }
- module default_sentinel { private header "__iterator/default_sentinel.h" }
- module distance { private header "__iterator/distance.h" }
- module empty { private header "__iterator/empty.h" }
- module erase_if_container { private header "__iterator/erase_if_container.h" }
- module front_insert_iterator { private header "__iterator/front_insert_iterator.h" }
- module incrementable_traits { private header "__iterator/incrementable_traits.h" }
- module indirectly_comparable { private header "__iterator/indirectly_comparable.h" }
- module insert_iterator { private header "__iterator/insert_iterator.h" }
- module istream_iterator { private header "__iterator/istream_iterator.h" }
- module istreambuf_iterator { private header "__iterator/istreambuf_iterator.h" }
- module iter_move { private header "__iterator/iter_move.h" }
- module iter_swap { private header "__iterator/iter_swap.h" }
- module iterator { private header "__iterator/iterator.h" }
- module iterator_traits { private header "__iterator/iterator_traits.h" }
- module move_iterator { private header "__iterator/move_iterator.h" }
- module next { private header "__iterator/next.h" }
- module ostream_iterator { private header "__iterator/ostream_iterator.h" }
- module ostreambuf_iterator { private header "__iterator/ostreambuf_iterator.h" }
- module permutable { private header "__iterator/permutable.h" }
- module prev { private header "__iterator/prev.h" }
- module projected { private header "__iterator/projected.h" }
- module readable_traits { private header "__iterator/readable_traits.h" }
- module reverse_access { private header "__iterator/reverse_access.h" }
- module reverse_iterator { private header "__iterator/reverse_iterator.h" }
- module size { private header "__iterator/size.h" }
- module unreachable_sentinel { private header "__iterator/unreachable_sentinel.h" }
- module wrap_iter { private header "__iterator/wrap_iter.h" }
- }
- }
- module latch {
- requires cplusplus14
- header "latch"
- export *
- }
- module limits {
- header "limits"
- export *
- }
- module list {
- header "list"
- export initializer_list
- export *
- }
- module locale {
- header "locale"
- export *
- }
- module map {
- header "map"
- export initializer_list
- export *
- }
- module memory {
- header "memory"
- export *
-
- module __memory {
- module addressof { private header "__memory/addressof.h" }
- module allocation_guard { private header "__memory/allocation_guard.h" }
- module allocator { private header "__memory/allocator.h" }
- module allocator_arg_t { private header "__memory/allocator_arg_t.h" }
- module allocator_traits { private header "__memory/allocator_traits.h" }
- module auto_ptr { private header "__memory/auto_ptr.h" }
- module compressed_pair { private header "__memory/compressed_pair.h" }
- module concepts { private header "__memory/concepts.h" }
- module construct_at { private header "__memory/construct_at.h" }
- module pointer_traits { private header "__memory/pointer_traits.h" }
- module ranges_construct_at { private header "__memory/ranges_construct_at.h" }
- module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" }
- module raw_storage_iterator { private header "__memory/raw_storage_iterator.h" }
- module shared_ptr { private header "__memory/shared_ptr.h" }
- module temporary_buffer { private header "__memory/temporary_buffer.h" }
- module uninitialized_algorithms { private header "__memory/uninitialized_algorithms.h" }
- module unique_ptr { private header "__memory/unique_ptr.h" }
- module uses_allocator { private header "__memory/uses_allocator.h" }
- module voidify { private header "__memory/voidify.h" }
- }
- }
- module mutex {
- header "mutex"
- export *
- }
- module new {
- header "new"
- export *
- }
- module numbers {
- header "numbers"
- export *
- }
- module numeric {
- header "numeric"
- export *
-
- module __numeric {
- module accumulate { private header "__numeric/accumulate.h" }
- module adjacent_difference { private header "__numeric/adjacent_difference.h" }
- module exclusive_scan { private header "__numeric/exclusive_scan.h" }
- module gcd_lcm { private header "__numeric/gcd_lcm.h" }
- module inclusive_scan { private header "__numeric/inclusive_scan.h" }
- module inner_product { private header "__numeric/inner_product.h" }
- module iota { private header "__numeric/iota.h" }
- module midpoint { private header "__numeric/midpoint.h" }
- module partial_sum { private header "__numeric/partial_sum.h" }
- module reduce { private header "__numeric/reduce.h" }
- module transform_exclusive_scan { private header "__numeric/transform_exclusive_scan.h" }
- module transform_inclusive_scan { private header "__numeric/transform_inclusive_scan.h" }
- module transform_reduce { private header "__numeric/transform_reduce.h" }
- }
- }
- module optional {
- header "optional"
- export *
- }
- module ostream {
- header "ostream"
- // FIXME: should re-export ios, streambuf?
- export *
- }
- module queue {
- header "queue"
- export initializer_list
- export *
- }
- module random {
- header "random"
- export initializer_list
- export *
-
- module __random {
- module bernoulli_distribution { private header "__random/bernoulli_distribution.h" }
- module binomial_distribution { private header "__random/binomial_distribution.h" }
- module cauchy_distribution { private header "__random/cauchy_distribution.h" }
- module chi_squared_distribution { private header "__random/chi_squared_distribution.h" }
- module clamp_to_integral { private header "__random/clamp_to_integral.h" }
- module default_random_engine { private header "__random/default_random_engine.h" }
- module discard_block_engine { private header "__random/discard_block_engine.h" }
- module discrete_distribution { private header "__random/discrete_distribution.h" }
- module exponential_distribution { private header "__random/exponential_distribution.h" }
- module extreme_value_distribution { private header "__random/extreme_value_distribution.h" }
- module fisher_f_distribution { private header "__random/fisher_f_distribution.h" }
- module gamma_distribution { private header "__random/gamma_distribution.h" }
- module generate_canonical { private header "__random/generate_canonical.h" }
- module geometric_distribution { private header "__random/geometric_distribution.h" }
- module independent_bits_engine { private header "__random/independent_bits_engine.h" }
- module is_seed_sequence { private header "__random/is_seed_sequence.h" }
- module knuth_b { private header "__random/knuth_b.h" }
- module linear_congruential_engine { private header "__random/linear_congruential_engine.h" }
- module log2 { private header "__random/log2.h" }
- module lognormal_distribution { private header "__random/lognormal_distribution.h" }
- module mersenne_twister_engine { private header "__random/mersenne_twister_engine.h" }
- module negative_binomial_distribution { private header "__random/negative_binomial_distribution.h" }
- module normal_distribution { private header "__random/normal_distribution.h" }
- module piecewise_constant_distribution { private header "__random/piecewise_constant_distribution.h" }
- module piecewise_linear_distribution { private header "__random/piecewise_linear_distribution.h" }
- module poisson_distribution { private header "__random/poisson_distribution.h" }
- module random_device { private header "__random/random_device.h" }
- module ranlux { private header "__random/ranlux.h" }
- module seed_seq { private header "__random/seed_seq.h" }
- module shuffle_order_engine { private header "__random/shuffle_order_engine.h" }
- module student_t_distribution { private header "__random/student_t_distribution.h" }
- module subtract_with_carry_engine { private header "__random/subtract_with_carry_engine.h" }
- module uniform_int_distribution { private header "__random/uniform_int_distribution.h" }
- module uniform_random_bit_generator { private header "__random/uniform_random_bit_generator.h" }
- module uniform_real_distribution { private header "__random/uniform_real_distribution.h" }
- module weibull_distribution { private header "__random/weibull_distribution.h" }
- }
- }
- module ranges {
- header "ranges"
- export compare
- export initializer_list
- export iterator
- export *
-
- module __ranges {
- module access { private header "__ranges/access.h" }
- module all {
- private header "__ranges/all.h"
- export functional.__functional.compose
- export functional.__functional.perfect_forward
- }
- module common_view { private header "__ranges/common_view.h" }
- module concepts { private header "__ranges/concepts.h" }
- module copyable_box { private header "__ranges/copyable_box.h" }
- module counted {
- private header "__ranges/counted.h"
- export span
- }
- module dangling { private header "__ranges/dangling.h" }
- module data { private header "__ranges/data.h" }
- module drop_view { private header "__ranges/drop_view.h" }
- module empty { private header "__ranges/empty.h" }
- module empty_view { private header "__ranges/empty_view.h" }
- module enable_borrowed_range { private header "__ranges/enable_borrowed_range.h" }
- module enable_view { private header "__ranges/enable_view.h" }
- module iota_view { private header "__ranges/iota_view.h" }
- module join_view { private header "__ranges/join_view.h" }
- module non_propagating_cache { private header "__ranges/non_propagating_cache.h" }
- module owning_view { private header "__ranges/owning_view.h" }
- module range_adaptor { private header "__ranges/range_adaptor.h" }
- module rbegin { private header "__ranges/rbegin.h" }
- module ref_view { private header "__ranges/ref_view.h" }
- module rend { private header "__ranges/rend.h" }
- module reverse_view { private header "__ranges/reverse_view.h" }
- module single_view { private header "__ranges/single_view.h" }
- module size { private header "__ranges/size.h" }
- module subrange { private header "__ranges/subrange.h" }
- module take_view { private header "__ranges/take_view.h" }
- module transform_view {
- private header "__ranges/transform_view.h"
- export functional.__functional.bind_back
- export functional.__functional.perfect_forward
- }
- module view_interface { private header "__ranges/view_interface.h" }
- module views { private header "__ranges/views.h" }
- }
- }
- module ratio {
- header "ratio"
- export *
- }
- module regex {
- header "regex"
- export initializer_list
- export *
- }
- module scoped_allocator {
- header "scoped_allocator"
- export *
- }
- module semaphore {
- requires cplusplus14
- header "semaphore"
- export *
- }
- module set {
- header "set"
- export initializer_list
- export *
- }
- module shared_mutex {
- header "shared_mutex"
- export version
- }
- module span {
- header "span"
- export ranges.__ranges.enable_borrowed_range
- export version
- }
- module sstream {
- header "sstream"
- // FIXME: should re-export istream, ostream, ios, streambuf, string?
- export *
- }
- module stack {
- header "stack"
- export initializer_list
- export *
- }
- module stdexcept {
- header "stdexcept"
- export *
- }
- module streambuf {
- header "streambuf"
- export *
- }
- module string {
- header "string"
- export initializer_list
- export string_view
- export __string
- export *
- }
- module string_view {
- header "string_view"
- export initializer_list
- export __string
- export *
- }
- module strstream {
- header "strstream"
- export *
- }
- module system_error {
- header "system_error"
- export *
- }
- module thread {
- header "thread"
- export *
-
- module __thread {
- module poll_with_backoff { private header "__thread/poll_with_backoff.h" }
- module timed_backoff_policy { private header "__thread/timed_backoff_policy.h" }
- }
- }
- module tuple {
- header "tuple"
- export *
- }
- module type_traits {
- header "type_traits"
- export functional.__functional.unwrap_ref
- export *
- }
- module typeindex {
- header "typeindex"
- export *
- }
- module typeinfo {
- header "typeinfo"
- export *
- }
- module unordered_map {
- header "unordered_map"
- export initializer_list
- export *
- }
- module unordered_set {
- header "unordered_set"
- export initializer_list
- export *
- }
- module utility {
- header "utility"
- export initializer_list
- export *
-
- module __utility {
- module as_const { private header "__utility/as_const.h" }
- module auto_cast { private header "__utility/auto_cast.h" }
- module cmp { private header "__utility/cmp.h" }
- module declval { private header "__utility/declval.h" }
- module exchange { private header "__utility/exchange.h" }
- module forward { private header "__utility/forward.h" }
- module in_place { private header "__utility/in_place.h" }
- module integer_sequence { private header "__utility/integer_sequence.h" }
- module move { private header "__utility/move.h" }
- module pair { private header "__utility/pair.h" }
- module piecewise_construct { private header "__utility/piecewise_construct.h" }
- module priority_tag { private header "__utility/priority_tag.h" }
- module rel_ops { private header "__utility/rel_ops.h" }
- module swap { private header "__utility/swap.h" }
- module to_underlying { private header "__utility/to_underlying.h" }
- module transaction { private header "__utility/transaction.h" }
- module unreachable { private header "__utility/unreachable.h" }
- }
- }
- module valarray {
- header "valarray"
- export initializer_list
- export *
- }
- module variant {
- header "variant"
- export *
-
- module __variant {
- module monostate { private header "__variant/monostate.h" }
- }
- }
- module vector {
- header "vector"
- export initializer_list
- export *
- }
- module version {
- header "version"
- export *
- }
-
- // __config not modularised due to a bug in Clang
- // FIXME: These should be private.
- module __availability { private header "__availability" export * }
- module __bit_reference { private header "__bit_reference" export * }
- module __bits { private header "__bits" export * }
- module __debug { header "__debug" export * }
- module __errc { private header "__errc" export * }
- module __hash_table { header "__hash_table" export * }
- module __locale { private header "__locale" export * }
- module __mbstate_t { private header "__mbstate_t.h" export * }
- module __mutex_base { private header "__mutex_base" export * }
- module __node_handle { private header "__node_handle" export * }
- module __split_buffer { private header "__split_buffer" export * }
- module __std_stream { private header "__std_stream" export * }
- module __string { private header "__string" export * }
- module __threading_support { header "__threading_support" export * }
- module __tree { header "__tree" export * }
- module __tuple { private header "__tuple" export * }
- module __undef_macros { header "__undef_macros" export * }
-
- module experimental {
- requires cplusplus11
-
- module algorithm {
- header "experimental/algorithm"
- export *
- }
- module coroutine {
- requires coroutines
- header "experimental/coroutine"
- export *
- }
- module deque {
- header "experimental/deque"
- export *
- }
- module forward_list {
- header "experimental/forward_list"
- export *
- }
- module functional {
- header "experimental/functional"
- export *
- }
- module iterator {
- header "experimental/iterator"
- export *
- }
- module list {
- header "experimental/list"
- export *
- }
- module map {
- header "experimental/map"
- export *
- }
- module memory_resource {
- header "experimental/memory_resource"
- export *
- }
- module propagate_const {
- header "experimental/propagate_const"
- export *
- }
- module regex {
- header "experimental/regex"
- export *
- }
- module simd {
- header "experimental/simd"
- export *
- }
- module set {
- header "experimental/set"
- export *
- }
- module span {
- header "span"
- export *
- }
- module string {
- header "experimental/string"
- export *
- }
- module type_traits {
- header "experimental/type_traits"
- export *
- }
- module unordered_map {
- header "experimental/unordered_map"
- export *
- }
- module unordered_set {
- header "experimental/unordered_set"
- export *
- }
- module utility {
- header "experimental/utility"
- export *
- }
- module vector {
- header "experimental/vector"
- export *
- }
- // FIXME these should be private
- module __memory {
- header "experimental/__memory"
- export *
- }
- } // end experimental
-}
diff --git a/contrib/libs/cxxsupp/libcxx/include/numbers b/contrib/libs/cxxsupp/libcxx/include/numbers
deleted file mode 100644
index 9a52d142c4b..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/numbers
+++ /dev/null
@@ -1,133 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_NUMBERS
-#define _LIBCPP_NUMBERS
-
-/*
- numbers synopsis
-
-namespace std::numbers {
- template<class T> inline constexpr T e_v = unspecified;
- template<class T> inline constexpr T log2e_v = unspecified;
- template<class T> inline constexpr T log10e_v = unspecified;
- template<class T> inline constexpr T pi_v = unspecified;
- template<class T> inline constexpr T inv_pi_v = unspecified;
- template<class T> inline constexpr T inv_sqrtpi_v = unspecified;
- template<class T> inline constexpr T ln2_v = unspecified;
- template<class T> inline constexpr T ln10_v = unspecified;
- template<class T> inline constexpr T sqrt2_v = unspecified;
- template<class T> inline constexpr T sqrt3_v = unspecified;
- template<class T> inline constexpr T inv_sqrt3_v = unspecified;
- template<class T> inline constexpr T egamma_v = unspecified;
- template<class T> inline constexpr T phi_v = unspecified;
-
- template<floating_point T> inline constexpr T e_v<T> = see below;
- template<floating_point T> inline constexpr T log2e_v<T> = see below;
- template<floating_point T> inline constexpr T log10e_v<T> = see below;
- template<floating_point T> inline constexpr T pi_v<T> = see below;
- template<floating_point T> inline constexpr T inv_pi_v<T> = see below;
- template<floating_point T> inline constexpr T inv_sqrtpi_v<T> = see below;
- template<floating_point T> inline constexpr T ln2_v<T> = see below;
- template<floating_point T> inline constexpr T ln10_v<T> = see below;
- template<floating_point T> inline constexpr T sqrt2_v<T> = see below;
- template<floating_point T> inline constexpr T sqrt3_v<T> = see below;
- template<floating_point T> inline constexpr T inv_sqrt3_v<T> = see below;
- template<floating_point T> inline constexpr T egamma_v<T> = see below;
- template<floating_point T> inline constexpr T phi_v<T> = see below;
-
- inline constexpr double e = e_v<double>;
- inline constexpr double log2e = log2e_v<double>;
- inline constexpr double log10e = log10e_v<double>;
- inline constexpr double pi = pi_v<double>;
- inline constexpr double inv_pi = inv_pi_v<double>;
- inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>;
- inline constexpr double ln2 = ln2_v<double>;
- inline constexpr double ln10 = ln10_v<double>;
- inline constexpr double sqrt2 = sqrt2_v<double>;
- inline constexpr double sqrt3 = sqrt3_v<double>;
- inline constexpr double inv_sqrt3 = inv_sqrt3_v<double>;
- inline constexpr double egamma = egamma_v<double>;
- inline constexpr double phi = phi_v<double>;
-}
-*/
-
-#include <__config>
-#include <concepts>
-#include <type_traits>
-#include <version>
-
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-namespace numbers {
-
-template <class _Tp>
-inline constexpr bool __false = false;
-
-template <class _Tp>
-struct __illformed
-{
- static_assert(__false<_Tp>, "A program that instantiates a primary template of a mathematical constant variable template is ill-formed.");
-};
-
-template <class _Tp> inline constexpr _Tp e_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp log2e_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp log10e_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp pi_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp inv_pi_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp inv_sqrtpi_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp ln2_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp ln10_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp sqrt2_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp sqrt3_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp inv_sqrt3_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp egamma_v = __illformed<_Tp>{};
-template <class _Tp> inline constexpr _Tp phi_v = __illformed<_Tp>{};
-
-template <floating_point _Tp> inline constexpr _Tp e_v<_Tp> = 2.718281828459045235360287471352662L;
-template <floating_point _Tp> inline constexpr _Tp log2e_v<_Tp> = 1.442695040888963407359924681001892L;
-template <floating_point _Tp> inline constexpr _Tp log10e_v<_Tp> = 0.434294481903251827651128918916605L;
-template <floating_point _Tp> inline constexpr _Tp pi_v<_Tp> = 3.141592653589793238462643383279502L;
-template <floating_point _Tp> inline constexpr _Tp inv_pi_v<_Tp> = 0.318309886183790671537767526745028L;
-template <floating_point _Tp> inline constexpr _Tp inv_sqrtpi_v<_Tp> = 0.564189583547756286948079451560772L;
-template <floating_point _Tp> inline constexpr _Tp ln2_v<_Tp> = 0.693147180559945309417232121458176L;
-template <floating_point _Tp> inline constexpr _Tp ln10_v<_Tp> = 2.302585092994045684017991454684364L;
-template <floating_point _Tp> inline constexpr _Tp sqrt2_v<_Tp> = 1.414213562373095048801688724209698L;
-template <floating_point _Tp> inline constexpr _Tp sqrt3_v<_Tp> = 1.732050807568877293527446341505872L;
-template <floating_point _Tp> inline constexpr _Tp inv_sqrt3_v<_Tp> = 0.577350269189625764509148780501957L;
-template <floating_point _Tp> inline constexpr _Tp egamma_v<_Tp> = 0.577215664901532860606512090082402L;
-template <floating_point _Tp> inline constexpr _Tp phi_v<_Tp> = 1.618033988749894848204586834365638L;
-
-inline constexpr double e = e_v<double>;
-inline constexpr double log2e = log2e_v<double>;
-inline constexpr double log10e = log10e_v<double>;
-inline constexpr double pi = pi_v<double>;
-inline constexpr double inv_pi = inv_pi_v<double>;
-inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>;
-inline constexpr double ln2 = ln2_v<double>;
-inline constexpr double ln10 = ln10_v<double>;
-inline constexpr double sqrt2 = sqrt2_v<double>;
-inline constexpr double sqrt3 = sqrt3_v<double>;
-inline constexpr double inv_sqrt3 = inv_sqrt3_v<double>;
-inline constexpr double egamma = egamma_v<double>;
-inline constexpr double phi = phi_v<double>;
-
-} // namespace numbers
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif //!defined(_LIBCPP_HAS_NO_CONCEPTS)
-
-#endif // _LIBCPP_NUMBERS
diff --git a/contrib/libs/cxxsupp/libcxx/include/ranges b/contrib/libs/cxxsupp/libcxx/include/ranges
deleted file mode 100644
index 2bc9121cd68..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/ranges
+++ /dev/null
@@ -1,275 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_RANGES
-#define _LIBCPP_RANGES
-
-/*
-
-#include <compare> // see [compare.syn]
-#include <initializer_list> // see [initializer.list.syn]
-#include <iterator> // see [iterator.synopsis]
-
-namespace std::ranges {
- inline namespace unspecified {
- // [range.access], range access
- inline constexpr unspecified begin = unspecified;
- inline constexpr unspecified end = unspecified;
- inline constexpr unspecified cbegin = unspecified;
- inline constexpr unspecified cend = unspecified;
-
- inline constexpr unspecified size = unspecified;
- inline constexpr unspecified ssize = unspecified;
- }
-
- // [range.range], ranges
- template<class T>
- concept range = see below;
-
- template<class T>
- inline constexpr bool enable_borrowed_range = false;
-
- template<class T>
- using iterator_t = decltype(ranges::begin(declval<T&>()));
- template<range R>
- using sentinel_t = decltype(ranges::end(declval<R&>()));
- template<range R>
- using range_difference_t = iter_difference_t<iterator_t<R>>;
- template<sized_range R>
- using range_size_t = decltype(ranges::size(declval<R&>()));
- template<range R>
- using range_value_t = iter_value_t<iterator_t<R>>;
- template<range R>
- using range_reference_t = iter_reference_t<iterator_t<R>>;
- template<range R>
- using range_rvalue_reference_t = iter_rvalue_reference_t<iterator_t<R>>;
-
- // [range.sized], sized ranges
- template<class>
- inline constexpr bool disable_sized_range = false;
-
- template<class T>
- concept sized_range = ...;
-
- // [range.view], views
- template<class T>
- inline constexpr bool enable_view = ...;
-
- struct view_base { };
-
- template<class T>
- concept view = ...;
-
- // [range.refinements], other range refinements
- template<class R, class T>
- concept output_range = see below;
-
- template<class T>
- concept input_range = see below;
-
- template<class T>
- concept forward_range = see below;
-
- template<class T>
- concept bidirectional_range = see below;
-
- template<class T>
- concept random_access_range = see below;
-
- template<class T>
- concept contiguous_range = see below;
-
- template <class _Tp>
- concept common_range = see below;
-
- template<class T>
- concept viewable_range = see below;
-
- // [view.interface], class template view_interface
- template<class D>
- requires is_class_v<D> && same_as<D, remove_cv_t<D>>
- class view_interface;
-
- // [range.subrange], sub-ranges
- enum class subrange_kind : bool { unsized, sized };
-
- template<input_or_output_iterator I, sentinel_for<I> S = I, subrange_kind K = see below>
- requires (K == subrange_kind::sized || !sized_sentinel_for<S, I>)
- class subrange;
-
- template<class I, class S, subrange_kind K>
- inline constexpr bool enable_borrowed_range<subrange<I, S, K>> = true;
-
- // [range.dangling], dangling iterator handling
- struct dangling;
-
- template<range R>
- using borrowed_iterator_t = see below;
-
- template<range R>
- using borrowed_subrange_t = see below;
-
- // [range.empty], empty view
- template<class T>
- requires is_object_v<T>
- class empty_view;
-
- // [range.all], all view
- namespace views {
- inline constexpr unspecified all = unspecified;
-
- template<viewable_range R>
- using all_t = decltype(all(declval<R>()));
- }
-
- template<range R>
- requires is_object_v<R>
- class ref_view;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<ref_view<T>> = true;
-
- template<range R>
- requires see below
- class owning_view;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<owning_view<T>> = enable_borrowed_range<T>;
-
- // [range.drop], drop view
- template<view V>
- class drop_view;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<drop_view<T>> = enable_borrowed_range<T>;
-
- // [range.transform], transform view
- template<input_range V, copy_constructible F>
- requires view<V> && is_object_v<F> &&
- regular_invocable<F&, range_reference_t<V>> &&
- can-reference<invoke_result_t<F&, range_reference_t<V>>>
- class transform_view;
-
- // [range.counted], counted view
- namespace views { inline constexpr unspecified counted = unspecified; }
-
- // [range.common], common view
- template<view V>
- requires (!common_range<V> && copyable<iterator_t<V>>)
- class common_view;
-
- // [range.reverse], reverse view
- template<view V>
- requires bidirectional_range<V>
- class reverse_view;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<reverse_view<T>> = enable_borrowed_range<T>;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<common_view<T>> = enable_borrowed_range<T>;
-
- // [range.take], take view
- template<view> class take_view;
-
- template<class T>
- inline constexpr bool enable_borrowed_range<take_view<T>> = enable_borrowed_range<T>;
-
- template<copy_constructible T>
- requires is_object_v<T>
- class single_view;
-
- template<weakly_incrementable W, semiregular Bound = unreachable_sentinel_t>
- requires weakly-equality-comparable-with<W, Bound> && copyable<W>
- class iota_view;
-
- template<class W, class Bound>
- inline constexpr bool enable_borrowed_range<iota_view<W, Bound>> = true;
-
- // [range.join], join view
- template<input_range V>
- requires view<V> && input_range<range_reference_t<V>>
- class join_view;
-}
-
-namespace std {
- namespace views = ranges::views;
-
- template<class T> struct tuple_size;
- template<size_t I, class T> struct tuple_element;
-
- template<class I, class S, ranges::subrange_kind K>
- struct tuple_size<ranges::subrange<I, S, K>>
- : integral_constant<size_t, 2> {};
-
- template<class I, class S, ranges::subrange_kind K>
- struct tuple_element<0, ranges::subrange<I, S, K>> {
- using type = I;
- };
-
- template<class I, class S, ranges::subrange_kind K>
- struct tuple_element<1, ranges::subrange<I, S, K>> {
- using type = S;
- };
-
- template<class I, class S, ranges::subrange_kind K>
- struct tuple_element<0, const ranges::subrange<I, S, K>> {
- using type = I;
- };
-
- template<class I, class S, ranges::subrange_kind K>
- struct tuple_element<1, const ranges::subrange<I, S, K>> {
- using type = S;
- };
-}
-*/
-
-// Make sure all feature-test macros are available.
-#include <version>
-// Enable the contents of the header only when libc++ was built with LIBCXX_ENABLE_INCOMPLETE_FEATURES.
-#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
-
-#include <__config>
-#include <__ranges/access.h>
-#include <__ranges/all.h>
-#include <__ranges/common_view.h>
-#include <__ranges/concepts.h>
-#include <__ranges/counted.h>
-#include <__ranges/dangling.h>
-#include <__ranges/data.h>
-#include <__ranges/drop_view.h>
-#include <__ranges/empty.h>
-#include <__ranges/empty_view.h>
-#include <__ranges/enable_borrowed_range.h>
-#include <__ranges/enable_view.h>
-#include <__ranges/iota_view.h>
-#include <__ranges/join_view.h>
-#include <__ranges/rbegin.h>
-#include <__ranges/ref_view.h>
-#include <__ranges/rend.h>
-#include <__ranges/reverse_view.h>
-#include <__ranges/single_view.h>
-#include <__ranges/size.h>
-#include <__ranges/subrange.h>
-#include <__ranges/take_view.h>
-#include <__ranges/transform_view.h>
-#include <__ranges/view_interface.h>
-#include <__ranges/views.h>
-#include <compare> // Required by the standard.
-#include <initializer_list> // Required by the standard.
-#include <iterator> // Required by the standard.
-#include <type_traits>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
-
-#endif // _LIBCPP_RANGES
diff --git a/contrib/libs/cxxsupp/libcxx/include/scoped_allocator b/contrib/libs/cxxsupp/libcxx/include/scoped_allocator
deleted file mode 100644
index fe6d606ad14..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/scoped_allocator
+++ /dev/null
@@ -1,694 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_SCOPED_ALLOCATOR
-#define _LIBCPP_SCOPED_ALLOCATOR
-
-/*
- scoped_allocator synopsis
-
-namespace std
-{
-
-template <class OuterAlloc, class... InnerAllocs>
-class scoped_allocator_adaptor : public OuterAlloc
-{
- typedef allocator_traits<OuterAlloc> OuterTraits; // exposition only
- scoped_allocator_adaptor<InnerAllocs...> inner; // exposition only
-public:
-
- typedef OuterAlloc outer_allocator_type;
- typedef see below inner_allocator_type;
-
- typedef typename OuterTraits::value_type value_type;
- typedef typename OuterTraits::size_type size_type;
- typedef typename OuterTraits::difference_type difference_type;
- typedef typename OuterTraits::pointer pointer;
- typedef typename OuterTraits::const_pointer const_pointer;
- typedef typename OuterTraits::void_pointer void_pointer;
- typedef typename OuterTraits::const_void_pointer const_void_pointer;
-
- typedef see below propagate_on_container_copy_assignment;
- typedef see below propagate_on_container_move_assignment;
- typedef see below propagate_on_container_swap;
- typedef see below is_always_equal;
-
- template <class Tp>
- struct rebind
- {
- typedef scoped_allocator_adaptor<
- OuterTraits::template rebind_alloc<Tp>, InnerAllocs...> other;
- };
-
- scoped_allocator_adaptor();
- template <class OuterA2>
- scoped_allocator_adaptor(OuterA2&& outerAlloc,
- const InnerAllocs&... innerAllocs) noexcept;
- scoped_allocator_adaptor(const scoped_allocator_adaptor& other) noexcept;
- scoped_allocator_adaptor(scoped_allocator_adaptor&& other) noexcept;
- template <class OuterA2>
- scoped_allocator_adaptor(const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& other) noexcept;
- template <class OuterA2>
- scoped_allocator_adaptor(const scoped_allocator_adaptor<OuterA2, InnerAllocs...>&& other) noexcept;
-
- scoped_allocator_adaptor& operator=(const scoped_allocator_adaptor&) = default;
- scoped_allocator_adaptor& operator=(scoped_allocator_adaptor&&) = default;
- ~scoped_allocator_adaptor();
-
- inner_allocator_type& inner_allocator() noexcept;
- const inner_allocator_type& inner_allocator() const noexcept;
-
- outer_allocator_type& outer_allocator() noexcept;
- const outer_allocator_type& outer_allocator() const noexcept;
-
- pointer allocate(size_type n); // [[nodiscard]] in C++20
- pointer allocate(size_type n, const_void_pointer hint); // [[nodiscard]] in C++20
- void deallocate(pointer p, size_type n) noexcept;
-
- size_type max_size() const;
- template <class T, class... Args> void construct(T* p, Args&& args);
- template <class T1, class T2, class... Args1, class... Args2>
- void construct(pair<T1, T2>* p, piecewise_construct t, tuple<Args1...> x,
- tuple<Args2...> y);
- template <class T1, class T2>
- void construct(pair<T1, T2>* p);
- template <class T1, class T2, class U, class V>
- void construct(pair<T1, T2>* p, U&& x, V&& y);
- template <class T1, class T2, class U, class V>
- void construct(pair<T1, T2>* p, const pair<U, V>& x);
- template <class T1, class T2, class U, class V>
- void construct(pair<T1, T2>* p, pair<U, V>&& x);
- template <class T> void destroy(T* p);
-
- template <class T> void destroy(T* p) noexcept;
-
- scoped_allocator_adaptor select_on_container_copy_construction() const noexcept;
-};
-
-template<class OuterAlloc, class... InnerAllocs>
- scoped_allocator_adaptor(OuterAlloc, InnerAllocs...)
- -> scoped_allocator_adaptor<OuterAlloc, InnerAllocs...>;
-
-template <class OuterA1, class OuterA2, class... InnerAllocs>
- bool
- operator==(const scoped_allocator_adaptor<OuterA1, InnerAllocs...>& a,
- const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& b) noexcept;
-
-template <class OuterA1, class OuterA2, class... InnerAllocs>
- bool
- operator!=(const scoped_allocator_adaptor<OuterA1, InnerAllocs...>& a,
- const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& b) noexcept;
-
-} // std
-
-*/
-
-#include <__config>
-#include <__utility/forward.h>
-#include <memory>
-#include <version>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-#if !defined(_LIBCPP_CXX03_LANG)
-
-// scoped_allocator_adaptor
-
-template <class ..._Allocs>
-class scoped_allocator_adaptor;
-
-template <class ..._Allocs> struct __get_poc_copy_assignment;
-
-template <class _A0>
-struct __get_poc_copy_assignment<_A0>
-{
- static const bool value = allocator_traits<_A0>::
- propagate_on_container_copy_assignment::value;
-};
-
-template <class _A0, class ..._Allocs>
-struct __get_poc_copy_assignment<_A0, _Allocs...>
-{
- static const bool value =
- allocator_traits<_A0>::propagate_on_container_copy_assignment::value ||
- __get_poc_copy_assignment<_Allocs...>::value;
-};
-
-template <class ..._Allocs> struct __get_poc_move_assignment;
-
-template <class _A0>
-struct __get_poc_move_assignment<_A0>
-{
- static const bool value = allocator_traits<_A0>::
- propagate_on_container_move_assignment::value;
-};
-
-template <class _A0, class ..._Allocs>
-struct __get_poc_move_assignment<_A0, _Allocs...>
-{
- static const bool value =
- allocator_traits<_A0>::propagate_on_container_move_assignment::value ||
- __get_poc_move_assignment<_Allocs...>::value;
-};
-
-template <class ..._Allocs> struct __get_poc_swap;
-
-template <class _A0>
-struct __get_poc_swap<_A0>
-{
- static const bool value = allocator_traits<_A0>::
- propagate_on_container_swap::value;
-};
-
-template <class _A0, class ..._Allocs>
-struct __get_poc_swap<_A0, _Allocs...>
-{
- static const bool value =
- allocator_traits<_A0>::propagate_on_container_swap::value ||
- __get_poc_swap<_Allocs...>::value;
-};
-
-template <class ..._Allocs> struct __get_is_always_equal;
-
-template <class _A0>
-struct __get_is_always_equal<_A0>
-{
- static const bool value = allocator_traits<_A0>::is_always_equal::value;
-};
-
-template <class _A0, class ..._Allocs>
-struct __get_is_always_equal<_A0, _Allocs...>
-{
- static const bool value =
- allocator_traits<_A0>::is_always_equal::value &&
- __get_is_always_equal<_Allocs...>::value;
-};
-
-template <class ..._Allocs>
-class __scoped_allocator_storage;
-
-template <class _OuterAlloc, class... _InnerAllocs>
-class __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>
- : public _OuterAlloc
-{
- typedef _OuterAlloc outer_allocator_type;
-protected:
- typedef scoped_allocator_adaptor<_InnerAllocs...> inner_allocator_type;
-
-private:
- inner_allocator_type __inner_;
-
-protected:
-
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage() _NOEXCEPT {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(_OuterA2&& __outerAlloc,
- const _InnerAllocs& ...__innerAllocs) _NOEXCEPT
- : outer_allocator_type(_VSTD::forward<_OuterA2>(__outerAlloc)),
- __inner_(__innerAllocs...) {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, const _OuterA2&>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(
- const __scoped_allocator_storage<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT
- : outer_allocator_type(__other.outer_allocator()),
- __inner_(__other.inner_allocator()) {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(
- __scoped_allocator_storage<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT
- : outer_allocator_type(_VSTD::move(__other.outer_allocator())),
- __inner_(_VSTD::move(__other.inner_allocator())) {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(_OuterA2&& __o,
- const inner_allocator_type& __i) _NOEXCEPT
- : outer_allocator_type(_VSTD::forward<_OuterA2>(__o)),
- __inner_(__i)
- {
- }
-
- _LIBCPP_INLINE_VISIBILITY
- inner_allocator_type& inner_allocator() _NOEXCEPT {return __inner_;}
- _LIBCPP_INLINE_VISIBILITY
- const inner_allocator_type& inner_allocator() const _NOEXCEPT {return __inner_;}
-
- _LIBCPP_INLINE_VISIBILITY
- outer_allocator_type& outer_allocator() _NOEXCEPT
- {return static_cast<outer_allocator_type&>(*this);}
- _LIBCPP_INLINE_VISIBILITY
- const outer_allocator_type& outer_allocator() const _NOEXCEPT
- {return static_cast<const outer_allocator_type&>(*this);}
-
- scoped_allocator_adaptor<outer_allocator_type, _InnerAllocs...>
- _LIBCPP_INLINE_VISIBILITY
- select_on_container_copy_construction() const _NOEXCEPT
- {
- return scoped_allocator_adaptor<outer_allocator_type, _InnerAllocs...>
- (
- allocator_traits<outer_allocator_type>::
- select_on_container_copy_construction(outer_allocator()),
- allocator_traits<inner_allocator_type>::
- select_on_container_copy_construction(inner_allocator())
- );
- }
-
- template <class...> friend class __scoped_allocator_storage;
-};
-
-template <class _OuterAlloc>
-class __scoped_allocator_storage<_OuterAlloc>
- : public _OuterAlloc
-{
- typedef _OuterAlloc outer_allocator_type;
-protected:
- typedef scoped_allocator_adaptor<_OuterAlloc> inner_allocator_type;
-
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage() _NOEXCEPT {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(_OuterA2&& __outerAlloc) _NOEXCEPT
- : outer_allocator_type(_VSTD::forward<_OuterA2>(__outerAlloc)) {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, const _OuterA2&>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(
- const __scoped_allocator_storage<_OuterA2>& __other) _NOEXCEPT
- : outer_allocator_type(__other.outer_allocator()) {}
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- __scoped_allocator_storage(
- __scoped_allocator_storage<_OuterA2>&& __other) _NOEXCEPT
- : outer_allocator_type(_VSTD::move(__other.outer_allocator())) {}
-
- _LIBCPP_INLINE_VISIBILITY
- inner_allocator_type& inner_allocator() _NOEXCEPT
- {return static_cast<inner_allocator_type&>(*this);}
- _LIBCPP_INLINE_VISIBILITY
- const inner_allocator_type& inner_allocator() const _NOEXCEPT
- {return static_cast<const inner_allocator_type&>(*this);}
-
- _LIBCPP_INLINE_VISIBILITY
- outer_allocator_type& outer_allocator() _NOEXCEPT
- {return static_cast<outer_allocator_type&>(*this);}
- _LIBCPP_INLINE_VISIBILITY
- const outer_allocator_type& outer_allocator() const _NOEXCEPT
- {return static_cast<const outer_allocator_type&>(*this);}
-
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor<outer_allocator_type>
- select_on_container_copy_construction() const _NOEXCEPT
- {return scoped_allocator_adaptor<outer_allocator_type>(
- allocator_traits<outer_allocator_type>::
- select_on_container_copy_construction(outer_allocator())
- );}
-
- __scoped_allocator_storage(const outer_allocator_type& __o,
- const inner_allocator_type& __i) _NOEXCEPT;
-
- template <class...> friend class __scoped_allocator_storage;
-};
-
-// __outermost
-
-template <class _Alloc>
-decltype(declval<_Alloc>().outer_allocator(), true_type())
-__has_outer_allocator_test(_Alloc&& __a);
-
-template <class _Alloc>
-false_type
-__has_outer_allocator_test(const volatile _Alloc& __a);
-
-template <class _Alloc>
-struct __has_outer_allocator
- : public common_type
- <
- decltype(__has_outer_allocator_test(declval<_Alloc&>()))
- >::type
-{
-};
-
-template <class _Alloc, bool = __has_outer_allocator<_Alloc>::value>
-struct __outermost
-{
- typedef _Alloc type;
- _LIBCPP_INLINE_VISIBILITY
- type& operator()(type& __a) const _NOEXCEPT {return __a;}
-};
-
-template <class _Alloc>
-struct __outermost<_Alloc, true>
-{
- typedef typename remove_reference
- <
- decltype(declval<_Alloc>().outer_allocator())
- >::type _OuterAlloc;
- typedef typename __outermost<_OuterAlloc>::type type;
- _LIBCPP_INLINE_VISIBILITY
- type& operator()(_Alloc& __a) const _NOEXCEPT
- {return __outermost<_OuterAlloc>()(__a.outer_allocator());}
-};
-
-template <class _OuterAlloc, class... _InnerAllocs>
-class _LIBCPP_TEMPLATE_VIS scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs...>
- : public __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>
-{
- typedef __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...> base;
- typedef allocator_traits<_OuterAlloc> _OuterTraits;
-public:
- typedef _OuterAlloc outer_allocator_type;
- typedef typename base::inner_allocator_type inner_allocator_type;
- typedef typename _OuterTraits::size_type size_type;
- typedef typename _OuterTraits::difference_type difference_type;
- typedef typename _OuterTraits::pointer pointer;
- typedef typename _OuterTraits::const_pointer const_pointer;
- typedef typename _OuterTraits::void_pointer void_pointer;
- typedef typename _OuterTraits::const_void_pointer const_void_pointer;
-
- typedef integral_constant
- <
- bool,
- __get_poc_copy_assignment<outer_allocator_type,
- _InnerAllocs...>::value
- > propagate_on_container_copy_assignment;
- typedef integral_constant
- <
- bool,
- __get_poc_move_assignment<outer_allocator_type,
- _InnerAllocs...>::value
- > propagate_on_container_move_assignment;
- typedef integral_constant
- <
- bool,
- __get_poc_swap<outer_allocator_type, _InnerAllocs...>::value
- > propagate_on_container_swap;
- typedef integral_constant
- <
- bool,
- __get_is_always_equal<outer_allocator_type, _InnerAllocs...>::value
- > is_always_equal;
-
- template <class _Tp>
- struct rebind
- {
- typedef scoped_allocator_adaptor
- <
- typename _OuterTraits::template rebind_alloc<_Tp>, _InnerAllocs...
- > other;
- };
-
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor() _NOEXCEPT {}
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor(_OuterA2&& __outerAlloc,
- const _InnerAllocs& ...__innerAllocs) _NOEXCEPT
- : base(_VSTD::forward<_OuterA2>(__outerAlloc), __innerAllocs...) {}
- // scoped_allocator_adaptor(const scoped_allocator_adaptor& __other) = default;
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, const _OuterA2&>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor(
- const scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT
- : base(__other) {}
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor(
- scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT
- : base(_VSTD::move(__other)) {}
-
- // scoped_allocator_adaptor& operator=(const scoped_allocator_adaptor&) = default;
- // scoped_allocator_adaptor& operator=(scoped_allocator_adaptor&&) = default;
- // ~scoped_allocator_adaptor() = default;
-
- _LIBCPP_INLINE_VISIBILITY
- inner_allocator_type& inner_allocator() _NOEXCEPT
- {return base::inner_allocator();}
- _LIBCPP_INLINE_VISIBILITY
- const inner_allocator_type& inner_allocator() const _NOEXCEPT
- {return base::inner_allocator();}
-
- _LIBCPP_INLINE_VISIBILITY
- outer_allocator_type& outer_allocator() _NOEXCEPT
- {return base::outer_allocator();}
- _LIBCPP_INLINE_VISIBILITY
- const outer_allocator_type& outer_allocator() const _NOEXCEPT
- {return base::outer_allocator();}
-
- _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
- pointer allocate(size_type __n)
- {return allocator_traits<outer_allocator_type>::
- allocate(outer_allocator(), __n);}
- _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
- pointer allocate(size_type __n, const_void_pointer __hint)
- {return allocator_traits<outer_allocator_type>::
- allocate(outer_allocator(), __n, __hint);}
-
- _LIBCPP_INLINE_VISIBILITY
- void deallocate(pointer __p, size_type __n) _NOEXCEPT
- {allocator_traits<outer_allocator_type>::
- deallocate(outer_allocator(), __p, __n);}
-
- _LIBCPP_INLINE_VISIBILITY
- size_type max_size() const
- {return allocator_traits<outer_allocator_type>::max_size(outer_allocator());}
-
- template <class _Tp, class... _Args>
- _LIBCPP_INLINE_VISIBILITY
- void construct(_Tp* __p, _Args&& ...__args)
- {__construct(__uses_alloc_ctor<_Tp, inner_allocator_type&, _Args...>(),
- __p, _VSTD::forward<_Args>(__args)...);}
-
- template <class _T1, class _T2, class... _Args1, class... _Args2>
- void construct(pair<_T1, _T2>* __p, piecewise_construct_t,
- tuple<_Args1...> __x, tuple<_Args2...> __y)
- {
- typedef __outermost<outer_allocator_type> _OM;
- allocator_traits<typename _OM::type>::construct(
- _OM()(outer_allocator()), __p, piecewise_construct
- , __transform_tuple(
- typename __uses_alloc_ctor<
- _T1, inner_allocator_type&, _Args1...
- >::type()
- , _VSTD::move(__x)
- , typename __make_tuple_indices<sizeof...(_Args1)>::type{}
- )
- , __transform_tuple(
- typename __uses_alloc_ctor<
- _T2, inner_allocator_type&, _Args2...
- >::type()
- , _VSTD::move(__y)
- , typename __make_tuple_indices<sizeof...(_Args2)>::type{}
- )
- );
- }
-
- template <class _T1, class _T2>
- void construct(pair<_T1, _T2>* __p)
- { construct(__p, piecewise_construct, tuple<>{}, tuple<>{}); }
-
- template <class _T1, class _T2, class _Up, class _Vp>
- void construct(pair<_T1, _T2>* __p, _Up&& __x, _Vp&& __y) {
- construct(__p, piecewise_construct,
- _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__x)),
- _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__y)));
- }
-
- template <class _T1, class _T2, class _Up, class _Vp>
- void construct(pair<_T1, _T2>* __p, const pair<_Up, _Vp>& __x) {
- construct(__p, piecewise_construct,
- _VSTD::forward_as_tuple(__x.first),
- _VSTD::forward_as_tuple(__x.second));
- }
-
- template <class _T1, class _T2, class _Up, class _Vp>
- void construct(pair<_T1, _T2>* __p, pair<_Up, _Vp>&& __x) {
- construct(__p, piecewise_construct,
- _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__x.first)),
- _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__x.second)));
- }
-
- template <class _Tp>
- _LIBCPP_INLINE_VISIBILITY
- void destroy(_Tp* __p)
- {
- typedef __outermost<outer_allocator_type> _OM;
- allocator_traits<typename _OM::type>::
- destroy(_OM()(outer_allocator()), __p);
- }
-
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor select_on_container_copy_construction() const _NOEXCEPT
- {return base::select_on_container_copy_construction();}
-
-private:
-
-
- template <class _OuterA2,
- class = typename enable_if<
- is_constructible<outer_allocator_type, _OuterA2>::value
- >::type>
- _LIBCPP_INLINE_VISIBILITY
- scoped_allocator_adaptor(_OuterA2&& __o,
- const inner_allocator_type& __i) _NOEXCEPT
- : base(_VSTD::forward<_OuterA2>(__o), __i) {}
-
- template <class _Tp, class... _Args>
- _LIBCPP_INLINE_VISIBILITY
- void __construct(integral_constant<int, 0>, _Tp* __p, _Args&& ...__args)
- {
- typedef __outermost<outer_allocator_type> _OM;
- allocator_traits<typename _OM::type>::construct
- (
- _OM()(outer_allocator()),
- __p,
- _VSTD::forward<_Args>(__args)...
- );
- }
-
- template <class _Tp, class... _Args>
- _LIBCPP_INLINE_VISIBILITY
- void __construct(integral_constant<int, 1>, _Tp* __p, _Args&& ...__args)
- {
- typedef __outermost<outer_allocator_type> _OM;
- allocator_traits<typename _OM::type>::construct
- (
- _OM()(outer_allocator()),
- __p, allocator_arg, inner_allocator(),
- _VSTD::forward<_Args>(__args)...
- );
- }
-
- template <class _Tp, class... _Args>
- _LIBCPP_INLINE_VISIBILITY
- void __construct(integral_constant<int, 2>, _Tp* __p, _Args&& ...__args)
- {
- typedef __outermost<outer_allocator_type> _OM;
- allocator_traits<typename _OM::type>::construct
- (
- _OM()(outer_allocator()),
- __p,
- _VSTD::forward<_Args>(__args)...,
- inner_allocator()
- );
- }
-
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<_Args&&...>
- __transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t,
- __tuple_indices<_Idx...>)
- {
- return _VSTD::forward_as_tuple(_VSTD::get<_Idx>(_VSTD::move(__t))...);
- }
-
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<allocator_arg_t, inner_allocator_type&, _Args&&...>
- __transform_tuple(integral_constant<int, 1>, tuple<_Args...> && __t,
- __tuple_indices<_Idx...>)
- {
- using _Tup = tuple<allocator_arg_t, inner_allocator_type&, _Args&&...>;
- return _Tup(allocator_arg, inner_allocator(),
- _VSTD::get<_Idx>(_VSTD::move(__t))...);
- }
-
- template <class ..._Args, size_t ..._Idx>
- _LIBCPP_INLINE_VISIBILITY
- tuple<_Args&&..., inner_allocator_type&>
- __transform_tuple(integral_constant<int, 2>, tuple<_Args...> && __t,
- __tuple_indices<_Idx...>)
- {
- using _Tup = tuple<_Args&&..., inner_allocator_type&>;
- return _Tup(_VSTD::get<_Idx>(_VSTD::move(__t))..., inner_allocator());
- }
-
- template <class...> friend class __scoped_allocator_storage;
-};
-
-#if _LIBCPP_STD_VER > 14
-template<class _OuterAlloc, class... _InnerAllocs>
- scoped_allocator_adaptor(_OuterAlloc, _InnerAllocs...)
- -> scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs...>;
-#endif
-
-template <class _OuterA1, class _OuterA2>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator==(const scoped_allocator_adaptor<_OuterA1>& __a,
- const scoped_allocator_adaptor<_OuterA2>& __b) _NOEXCEPT
-{
- return __a.outer_allocator() == __b.outer_allocator();
-}
-
-template <class _OuterA1, class _OuterA2, class _InnerA0, class... _InnerAllocs>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator==(const scoped_allocator_adaptor<_OuterA1, _InnerA0, _InnerAllocs...>& __a,
- const scoped_allocator_adaptor<_OuterA2, _InnerA0, _InnerAllocs...>& __b) _NOEXCEPT
-{
- return __a.outer_allocator() == __b.outer_allocator() &&
- __a.inner_allocator() == __b.inner_allocator();
-}
-
-template <class _OuterA1, class _OuterA2, class... _InnerAllocs>
-inline _LIBCPP_INLINE_VISIBILITY
-bool
-operator!=(const scoped_allocator_adaptor<_OuterA1, _InnerAllocs...>& __a,
- const scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>& __b) _NOEXCEPT
-{
- return !(__a == __b);
-}
-
-#endif // !defined(_LIBCPP_CXX03_LANG)
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_SCOPED_ALLOCATOR
diff --git a/contrib/libs/cxxsupp/libcxx/include/semaphore b/contrib/libs/cxxsupp/libcxx/include/semaphore
deleted file mode 100644
index 753d50f5126..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/semaphore
+++ /dev/null
@@ -1,188 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_SEMAPHORE
-#define _LIBCPP_SEMAPHORE
-
-/*
- semaphore synopsis
-
-namespace std {
-
-template<ptrdiff_t least_max_value = implementation-defined>
-class counting_semaphore
-{
-public:
-static constexpr ptrdiff_t max() noexcept;
-
-constexpr explicit counting_semaphore(ptrdiff_t desired);
-~counting_semaphore();
-
-counting_semaphore(const counting_semaphore&) = delete;
-counting_semaphore& operator=(const counting_semaphore&) = delete;
-
-void release(ptrdiff_t update = 1);
-void acquire();
-bool try_acquire() noexcept;
-template<class Rep, class Period>
- bool try_acquire_for(const chrono::duration<Rep, Period>& rel_time);
-template<class Clock, class Duration>
- bool try_acquire_until(const chrono::time_point<Clock, Duration>& abs_time);
-
-private:
-ptrdiff_t counter; // exposition only
-};
-
-using binary_semaphore = counting_semaphore<1>;
-
-}
-
-*/
-
-#include <__availability>
-#include <__config>
-#include <__thread/timed_backoff_policy.h>
-#include <__threading_support>
-#include <atomic>
-#include <version>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#ifdef _LIBCPP_HAS_NO_THREADS
-# error <semaphore> is not supported on this single threaded system
-#endif
-
-_LIBCPP_PUSH_MACROS
-#include <__undef_macros>
-
-#if _LIBCPP_STD_VER >= 14
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-/*
-
-__atomic_semaphore_base is the general-case implementation.
-It is a typical Dijkstra semaphore algorithm over atomics, wait and notify
-functions. It avoids contention against users' own use of those facilities.
-
-*/
-
-class __atomic_semaphore_base
-{
- __atomic_base<ptrdiff_t> __a;
-
-public:
- _LIBCPP_INLINE_VISIBILITY
- constexpr explicit __atomic_semaphore_base(ptrdiff_t __count) : __a(__count)
- {
- }
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void release(ptrdiff_t __update = 1)
- {
- if(0 < __a.fetch_add(__update, memory_order_release))
- ;
- else if(__update > 1)
- __a.notify_all();
- else
- __a.notify_one();
- }
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void acquire()
- {
- auto const __test_fn = [this]() -> bool {
- auto __old = __a.load(memory_order_relaxed);
- return (__old != 0) && __a.compare_exchange_strong(__old, __old - 1, memory_order_acquire, memory_order_relaxed);
- };
- __cxx_atomic_wait(&__a.__a_, __test_fn);
- }
- template <class Rep, class Period>
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- bool try_acquire_for(chrono::duration<Rep, Period> const& __rel_time)
- {
- if (__rel_time == chrono::duration<Rep, Period>::zero())
- return try_acquire();
- auto const __test_fn = [this]() { return try_acquire(); };
- return __libcpp_thread_poll_with_backoff(__test_fn, __libcpp_timed_backoff_policy(), __rel_time);
- }
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- bool try_acquire()
- {
- auto __old = __a.load(memory_order_acquire);
- while (true) {
- if (__old == 0)
- return false;
- if (__a.compare_exchange_strong(__old, __old - 1, memory_order_acquire, memory_order_relaxed))
- return true;
- }
- }
-};
-
-#define _LIBCPP_SEMAPHORE_MAX (numeric_limits<ptrdiff_t>::max())
-
-template<ptrdiff_t __least_max_value = _LIBCPP_SEMAPHORE_MAX>
-class counting_semaphore
-{
- __atomic_semaphore_base __semaphore;
-
-public:
- static constexpr ptrdiff_t max() noexcept {
- return __least_max_value;
- }
-
- _LIBCPP_INLINE_VISIBILITY
- constexpr explicit counting_semaphore(ptrdiff_t __count) : __semaphore(__count) { }
- ~counting_semaphore() = default;
-
- counting_semaphore(const counting_semaphore&) = delete;
- counting_semaphore& operator=(const counting_semaphore&) = delete;
-
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void release(ptrdiff_t __update = 1)
- {
- __semaphore.release(__update);
- }
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- void acquire()
- {
- __semaphore.acquire();
- }
- template<class Rep, class Period>
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- bool try_acquire_for(chrono::duration<Rep, Period> const& __rel_time)
- {
- return __semaphore.try_acquire_for(chrono::duration_cast<chrono::nanoseconds>(__rel_time));
- }
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- bool try_acquire()
- {
- return __semaphore.try_acquire();
- }
- template <class Clock, class Duration>
- _LIBCPP_AVAILABILITY_SYNC _LIBCPP_INLINE_VISIBILITY
- bool try_acquire_until(chrono::time_point<Clock, Duration> const& __abs_time)
- {
- auto const current = Clock::now();
- if (current >= __abs_time)
- return try_acquire();
- else
- return try_acquire_for(__abs_time - current);
- }
-};
-
-using binary_semaphore = counting_semaphore<1>;
-
-_LIBCPP_END_NAMESPACE_STD
-
-#endif // _LIBCPP_STD_VER >= 14
-
-_LIBCPP_POP_MACROS
-
-#endif //_LIBCPP_SEMAPHORE
diff --git a/contrib/libs/cxxsupp/libcxx/include/tgmath.h b/contrib/libs/cxxsupp/libcxx/include/tgmath.h
deleted file mode 100644
index c65091708a9..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/tgmath.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef _LIBCPP_TGMATH_H
-#define _LIBCPP_TGMATH_H
-
-/*
- tgmath.h synopsis
-
-#include <ctgmath>
-
-*/
-
-#include <__config>
-
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-# pragma GCC system_header
-#endif
-
-#ifdef __cplusplus
-
-#include <ctgmath>
-
-#else // __cplusplus
-
-#include_next <tgmath.h>
-
-#endif // __cplusplus
-
-#endif // _LIBCPP_TGMATH_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/use_ansi.h b/contrib/libs/cxxsupp/libcxx/include/use_ansi.h
deleted file mode 100644
index 2b6f36d4eff..00000000000
--- a/contrib/libs/cxxsupp/libcxx/include/use_ansi.h
+++ /dev/null
@@ -1,3 +0,0 @@
-// Empty header to prevent MSVC one from inclusion.
-// This MSVC header adds Microsoft STL to the linker arguments
-// which causes conflicts with libc++. \ No newline at end of file
diff --git a/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource.cpp b/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource.cpp
deleted file mode 100644
index 018d0159281..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "experimental/memory_resource"
-
-#ifndef _LIBCPP_HAS_NO_ATOMIC_HEADER
-#include "atomic"
-#elif !defined(_LIBCPP_HAS_NO_THREADS)
-#include "mutex"
-#if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-#pragma comment(lib, "pthread")
-#endif
-#endif
-
-_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
-
-// memory_resource
-
-//memory_resource::~memory_resource() {}
-
-// new_delete_resource()
-
-class _LIBCPP_TYPE_VIS __new_delete_memory_resource_imp
- : public memory_resource
-{
- void *do_allocate(size_t size, size_t align) override {
-#ifdef _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
- if (__is_overaligned_for_new(align))
- __throw_bad_alloc();
-#endif
- return _VSTD::__libcpp_allocate(size, align);
- }
-
- void do_deallocate(void *p, size_t n, size_t align) override {
- _VSTD::__libcpp_deallocate(p, n, align);
- }
-
- bool do_is_equal(memory_resource const & other) const noexcept override
- { return &other == this; }
-
-public:
- ~__new_delete_memory_resource_imp() override = default;
-};
-
-// null_memory_resource()
-
-class _LIBCPP_TYPE_VIS __null_memory_resource_imp
- : public memory_resource
-{
-public:
- ~__null_memory_resource_imp() = default;
-
-protected:
- virtual void* do_allocate(size_t, size_t) {
- __throw_bad_alloc();
- }
- virtual void do_deallocate(void *, size_t, size_t) {}
- virtual bool do_is_equal(memory_resource const & __other) const noexcept
- { return &__other == this; }
-};
-
-namespace {
-
-union ResourceInitHelper {
- struct {
- __new_delete_memory_resource_imp new_delete_res;
- __null_memory_resource_imp null_res;
- } resources;
- char dummy;
- _LIBCPP_CONSTEXPR_AFTER_CXX11 ResourceInitHelper() : resources() {}
- ~ResourceInitHelper() {}
-};
-
-// Pretend we're inside a system header so the compiler doesn't flag the use of the init_priority
-// attribute with a value that's reserved for the implementation (we're the implementation).
-#include "memory_resource_init_helper.h"
-
-} // end namespace
-
-
-memory_resource * new_delete_resource() noexcept {
- return &res_init.resources.new_delete_res;
-}
-
-memory_resource * null_memory_resource() noexcept {
- return &res_init.resources.null_res;
-}
-
-// default_memory_resource()
-
-static memory_resource *
-__default_memory_resource(bool set = false, memory_resource * new_res = nullptr) noexcept
-{
-#ifndef _LIBCPP_HAS_NO_ATOMIC_HEADER
- _LIBCPP_SAFE_STATIC static atomic<memory_resource*> __res{&res_init.resources.new_delete_res};
- if (set) {
- new_res = new_res ? new_res : new_delete_resource();
- // TODO: Can a weaker ordering be used?
- return _VSTD::atomic_exchange_explicit(
- &__res, new_res, memory_order_acq_rel);
- }
- else {
- return _VSTD::atomic_load_explicit(
- &__res, memory_order_acquire);
- }
-#elif !defined(_LIBCPP_HAS_NO_THREADS)
- _LIBCPP_SAFE_STATIC static memory_resource * res = &res_init.resources.new_delete_res;
- static mutex res_lock;
- if (set) {
- new_res = new_res ? new_res : new_delete_resource();
- lock_guard<mutex> guard(res_lock);
- memory_resource * old_res = res;
- res = new_res;
- return old_res;
- } else {
- lock_guard<mutex> guard(res_lock);
- return res;
- }
-#else
- _LIBCPP_SAFE_STATIC static memory_resource* res = &res_init.resources.new_delete_res;
- if (set) {
- new_res = new_res ? new_res : new_delete_resource();
- memory_resource * old_res = res;
- res = new_res;
- return old_res;
- } else {
- return res;
- }
-#endif
-}
-
-memory_resource * get_default_resource() noexcept
-{
- return __default_memory_resource();
-}
-
-memory_resource * set_default_resource(memory_resource * __new_res) noexcept
-{
- return __default_memory_resource(true, __new_res);
-}
-
-_LIBCPP_END_NAMESPACE_LFTS_PMR
diff --git a/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource_init_helper.h b/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource_init_helper.h
deleted file mode 100644
index 2e1cae5ecc6..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/experimental/memory_resource_init_helper.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma GCC system_header
-_LIBCPP_SAFE_STATIC ResourceInitHelper res_init _LIBCPP_INIT_PRIORITY_MAX; \ No newline at end of file
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/int128_builtins.cpp b/contrib/libs/cxxsupp/libcxx/src/filesystem/int128_builtins.cpp
deleted file mode 100644
index ed531ee145a..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/int128_builtins.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*===-- int128_builtins.cpp - Implement __muloti4 --------------------------===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- * ===----------------------------------------------------------------------===
- *
- * This file implements __muloti4, and is stolen from the compiler_rt library.
- *
- * FIXME: we steal and re-compile it into filesystem, which uses __int128_t,
- * and requires this builtin when sanitized. See llvm.org/PR30643
- *
- * ===----------------------------------------------------------------------===
- */
-#include "__config"
-#include "climits"
-
-#if !defined(_LIBCPP_HAS_NO_INT128)
-
-extern "C" __attribute__((no_sanitize("undefined"))) _LIBCPP_FUNC_VIS
-__int128_t __muloti4(__int128_t a, __int128_t b, int* overflow) {
- const int N = (int)(sizeof(__int128_t) * CHAR_BIT);
- const __int128_t MIN = (__int128_t)1 << (N - 1);
- const __int128_t MAX = ~MIN;
- *overflow = 0;
- __int128_t result = a * b;
- if (a == MIN) {
- if (b != 0 && b != 1)
- *overflow = 1;
- return result;
- }
- if (b == MIN) {
- if (a != 0 && a != 1)
- *overflow = 1;
- return result;
- }
- __int128_t sa = a >> (N - 1);
- __int128_t abs_a = (a ^ sa) - sa;
- __int128_t sb = b >> (N - 1);
- __int128_t abs_b = (b ^ sb) - sb;
- if (abs_a < 2 || abs_b < 2)
- return result;
- if (sa == sb) {
- if (abs_a > MAX / abs_b)
- *overflow = 1;
- } else {
- if (abs_a > MIN / -abs_b)
- *overflow = 1;
- }
- return result;
-}
-
-#endif
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/ibm/mbsnrtowcs.cpp b/contrib/libs/cxxsupp/libcxx/src/support/ibm/mbsnrtowcs.cpp
deleted file mode 100644
index d7220fb46d8..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/ibm/mbsnrtowcs.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <cstddef> // size_t
-#include <cwchar> // mbstate_t
-#include <limits.h> // MB_LEN_MAX
-#include <string.h> // wmemcpy
-
-// Returns the number of wide characters found in the multi byte sequence `src`
-// (of `src_size_bytes`), that fit in the buffer `dst` (of `max_dest_chars`
-// elements size). The count returned excludes the null terminator.
-// When `dst` is NULL, no characters are copied to `dst`.
-// Returns (size_t) -1 when an invalid sequence is encountered.
-// Leaves *`src` pointing to the next character to convert or NULL
-// if a null character was converted from *`src`.
-_LIBCPP_FUNC_VIS
-size_t mbsnrtowcs(wchar_t *__restrict dst, const char **__restrict src,
- size_t src_size_bytes, size_t max_dest_chars,
- mbstate_t *__restrict ps) {
- const size_t terminated_sequence = static_cast<size_t>(0);
- const size_t invalid_sequence = static_cast<size_t>(-1);
- const size_t incomplete_sequence = static_cast<size_t>(-2);
-
- size_t source_converted;
- size_t dest_converted;
- size_t result = 0;
-
- // If `dst` is null then `max_dest_chars` should be ignored according to the
- // standard. Setting `max_dest_chars` to a large value has this effect.
- if (dst == nullptr)
- max_dest_chars = static_cast<size_t>(-1);
-
- for (dest_converted = source_converted = 0;
- source_converted < src_size_bytes && (!dst || dest_converted < max_dest_chars);
- ++dest_converted, source_converted += result) {
- // Converts one multi byte character.
- // If result (char_size) is greater than 0, it's the size in bytes of that character.
- // If result (char_size) is zero, it indicates that the null character has been found.
- // Otherwise, it's an error and errno may be set.
- size_t source_remaining = src_size_bytes - source_converted;
- size_t dest_remaining = max_dest_chars - dest_converted;
-
- if (dst == nullptr) {
- result = mbrtowc(NULL, *src + source_converted, source_remaining, ps);
- } else if (dest_remaining >= source_remaining) {
- // dst has enough space to translate in-place.
- result = mbrtowc(dst + dest_converted, *src + source_converted, source_remaining, ps);
- } else {
- /*
- * dst may not have enough space, so use a temporary buffer.
- *
- * We need to save a copy of the conversion state
- * here so we can restore it if the multibyte
- * character is too long for the buffer.
- */
- wchar_t buff[MB_LEN_MAX];
- mbstate_t mbstate_tmp;
-
- if (ps != nullptr)
- mbstate_tmp = *ps;
- result = mbrtowc(buff, *src + source_converted, source_remaining, ps);
-
- if (result > dest_remaining) {
- // Multi-byte sequence for character won't fit.
- if (ps != nullptr)
- *ps = mbstate_tmp;
- break;
- } else {
- // The buffer was used, so we need copy the translation to dst.
- wmemcpy(dst, buff, result);
- }
- }
-
- // Don't do anything to change errno from here on.
- if (result == invalid_sequence || result == terminated_sequence || result == incomplete_sequence) {
- break;
- }
- }
-
- if (dst) {
- if (result == terminated_sequence)
- *src = NULL;
- else
- *src += source_converted;
- }
- if (result == invalid_sequence)
- return invalid_sequence;
-
- return dest_converted;
-}
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/ibm/wcsnrtombs.cpp b/contrib/libs/cxxsupp/libcxx/src/support/ibm/wcsnrtombs.cpp
deleted file mode 100644
index 66395bfdcb2..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/ibm/wcsnrtombs.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <cwchar> // mbstate_t
-#include <limits.h> // MB_LEN_MAX
-#include <stdlib.h> // MB_CUR_MAX, size_t
-#include <string.h> // memcpy
-
-// Converts `max_source_chars` from the wide character buffer pointer to by *`src`,
-// into the multi byte character sequence buffer stored at `dst`, which must be
-// `dst_size_bytes` bytes in size. Returns the number of bytes in the sequence
-// converted from *src, excluding the null terminator.
-// Returns (size_t) -1 if an error occurs and sets errno.
-// If `dst` is NULL, `dst_size_bytes` is ignored and no bytes are copied to `dst`.
-_LIBCPP_FUNC_VIS
-size_t wcsnrtombs(char *__restrict dst, const wchar_t **__restrict src,
- size_t max_source_chars, size_t dst_size_bytes,
- mbstate_t *__restrict ps) {
-
- const size_t invalid_wchar = static_cast<size_t>(-1);
-
- size_t source_converted;
- size_t dest_converted;
- size_t result = 0;
-
- // If `dst` is null then `dst_size_bytes` should be ignored according to the
- // standard. Setting dst_size_bytes to a large value has this effect.
- if (dst == nullptr)
- dst_size_bytes = static_cast<size_t>(-1);
-
- for (dest_converted = source_converted = 0;
- source_converted < max_source_chars && (!dst || dest_converted < dst_size_bytes);
- ++source_converted, dest_converted += result) {
- wchar_t c = (*src)[source_converted];
- size_t dest_remaining = dst_size_bytes - dest_converted;
-
- if (dst == nullptr) {
- result = wcrtomb(NULL, c, ps);
- } else if (dest_remaining >= static_cast<size_t>(MB_CUR_MAX)) {
- // dst has enough space to translate in-place.
- result = wcrtomb(dst + dest_converted, c, ps);
- } else {
- /*
- * dst may not have enough space, so use a temporary buffer.
- *
- * We need to save a copy of the conversion state
- * here so we can restore it if the multibyte
- * character is too long for the buffer.
- */
- char buff[MB_LEN_MAX];
- mbstate_t mbstate_tmp;
-
- if (ps != nullptr)
- mbstate_tmp = *ps;
- result = wcrtomb(buff, c, ps);
-
- if (result > dest_remaining) {
- // Multi-byte sequence for character won't fit.
- if (ps != nullptr)
- *ps = mbstate_tmp;
- if (result != invalid_wchar)
- break;
- } else {
- // The buffer was used, so we need copy the translation to dst.
- memcpy(dst, buff, result);
- }
- }
-
- // result (char_size) contains the size of the multi-byte-sequence converted.
- // Otherwise, result (char_size) is (size_t) -1 and wcrtomb() sets the errno.
- if (result == invalid_wchar) {
- if (dst)
- *src = *src + source_converted;
- return invalid_wchar;
- }
-
- if (c == L'\0') {
- if (dst)
- *src = NULL;
- return dest_converted;
- }
- }
-
- if (dst)
- *src = *src + source_converted;
-
- return dest_converted;
-}
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/ibm/xlocale_zos.cpp b/contrib/libs/cxxsupp/libcxx/src/support/ibm/xlocale_zos.cpp
deleted file mode 100644
index 90c1ba95a31..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/ibm/xlocale_zos.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <__support/ibm/xlocale.h>
-#include <sstream>
-#include <vector>
-
-#ifdef __cplusplus
-extern "C" {
-#endif // __cplusplus
-
-locale_t newlocale(int category_mask, const char* locale, locale_t base) {
- // Maintain current locale name(s) to restore later.
- std::string current_loc_name(setlocale(LC_ALL, 0));
-
- // Check for errors.
- if (category_mask == LC_ALL_MASK && setlocale(LC_ALL, locale) == NULL) {
- errno = EINVAL;
- return (locale_t)0;
- } else {
- for (int _Cat = 0; _Cat <= _LC_MAX; ++_Cat) {
- if ((_CATMASK(_Cat) & category_mask) != 0 && setlocale(_Cat, locale) == NULL) {
- setlocale(LC_ALL, current_loc_name.c_str());
- errno = EINVAL;
- return (locale_t)0;
- }
- }
- }
-
- // Create new locale.
- locale_t newloc = new locale_struct();
-
- if (base) {
- if (category_mask != LC_ALL_MASK) {
- // Copy base when it will not be overwritten.
- memcpy(newloc, base, sizeof (locale_struct));
- newloc->category_mask = category_mask | base->category_mask;
- }
- delete base;
- } else {
- newloc->category_mask = category_mask;
- }
-
- if (category_mask & LC_COLLATE_MASK)
- newloc->lc_collate = locale;
- if (category_mask & LC_CTYPE_MASK)
- newloc->lc_ctype = locale;
- if (category_mask & LC_MONETARY_MASK)
- newloc->lc_monetary = locale;
- if (category_mask & LC_NUMERIC_MASK)
- newloc->lc_numeric = locale;
- if (category_mask & LC_TIME_MASK)
- newloc->lc_time = locale;
- if (category_mask & LC_MESSAGES_MASK)
- newloc->lc_messages = locale;
-
- // Restore current locale.
- setlocale(LC_ALL, current_loc_name.c_str());
- return (locale_t)newloc;
-}
-
-void freelocale(locale_t locobj) {
- delete locobj;
-}
-
-locale_t uselocale(locale_t newloc) {
- // Maintain current locale name(s).
- std::string current_loc_name(setlocale(LC_ALL, 0));
-
- if (newloc) {
- // Set locales and check for errors.
- bool is_error =
- (newloc->category_mask & LC_COLLATE_MASK &&
- setlocale(LC_COLLATE, newloc->lc_collate.c_str()) == NULL) ||
- (newloc->category_mask & LC_CTYPE_MASK &&
- setlocale(LC_CTYPE, newloc->lc_ctype.c_str()) == NULL) ||
- (newloc->category_mask & LC_MONETARY_MASK &&
- setlocale(LC_MONETARY, newloc->lc_monetary.c_str()) == NULL) ||
- (newloc->category_mask & LC_NUMERIC_MASK &&
- setlocale(LC_NUMERIC, newloc->lc_numeric.c_str()) == NULL) ||
- (newloc->category_mask & LC_TIME_MASK &&
- setlocale(LC_TIME, newloc->lc_time.c_str()) == NULL) ||
- (newloc->category_mask & LC_MESSAGES_MASK &&
- setlocale(LC_MESSAGES, newloc->lc_messages.c_str()) == NULL);
-
- if (is_error) {
- setlocale(LC_ALL, current_loc_name.c_str());
- errno = EINVAL;
- return (locale_t)0;
- }
- }
-
- // Construct and return previous locale.
- locale_t previous_loc = new locale_struct();
-
- // current_loc_name might be a comma-separated locale name list.
- if (current_loc_name.find(',') != std::string::npos) {
- // Tokenize locale name list.
- const char delimiter = ',';
- std::vector<std::string> tokenized;
- std::stringstream ss(current_loc_name);
- std::string s;
-
- while (std::getline(ss, s, delimiter)) {
- tokenized.push_back(s);
- }
-
- _LIBCPP_ASSERT(tokenized.size() >= _NCAT, "locale-name list is too short");
-
- previous_loc->lc_collate = tokenized[LC_COLLATE];
- previous_loc->lc_ctype = tokenized[LC_CTYPE];
- previous_loc->lc_monetary = tokenized[LC_MONETARY];
- previous_loc->lc_numeric = tokenized[LC_NUMERIC];
- previous_loc->lc_time = tokenized[LC_TIME];
- // Skip LC_TOD.
- previous_loc->lc_messages = tokenized[LC_MESSAGES];
- } else {
- previous_loc->lc_collate = current_loc_name;
- previous_loc->lc_ctype = current_loc_name;
- previous_loc->lc_monetary = current_loc_name;
- previous_loc->lc_numeric = current_loc_name;
- previous_loc->lc_time = current_loc_name;
- previous_loc->lc_messages = current_loc_name;
- }
-
- previous_loc->category_mask = LC_ALL_MASK;
- return previous_loc;
-}
-
-#ifdef __cplusplus
-}
-#endif // __cplusplus
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/solaris/mbsnrtowcs.inc b/contrib/libs/cxxsupp/libcxx/src/support/solaris/mbsnrtowcs.inc
deleted file mode 100644
index 074045277ca..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/solaris/mbsnrtowcs.inc
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-/*-
- * As noted in the source, some portions of this implementation are copied from
- * FreeBSD libc. These are covered by the following copyright:
- *
- * Copyright (c) 2002-2004 Tim J. Robbins.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-size_t
-mbsnrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src,
- size_t nms, size_t len, mbstate_t * __restrict ps, locale_t loc)
-{
- const char *s;
- size_t nchr;
- wchar_t wc;
- size_t nb;
- FIX_LOCALE(loc);
-
- s = *src;
- nchr = 0;
-
- if (dst == NULL) {
- for (;;) {
- if ((nb = mbrtowc_l(&wc, s, nms, ps, loc)) == (size_t)-1)
- /* Invalid sequence - mbrtowc() sets errno. */
- return ((size_t)-1);
- else if (nb == 0 || nb == (size_t)-2)
- return (nchr);
- s += nb;
- nms -= nb;
- nchr++;
- }
- /*NOTREACHED*/
- }
-
- while (len-- > 0) {
- if ((nb = mbrtowc_l(dst, s, nms, ps, loc)) == (size_t)-1) {
- *src = s;
- return ((size_t)-1);
- } else if (nb == (size_t)-2) {
- *src = s + nms;
- return (nchr);
- } else if (nb == 0) {
- *src = NULL;
- return (nchr);
- }
- s += nb;
- nms -= nb;
- nchr++;
- dst++;
- }
- *src = s;
- return (nchr);
-}
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/solaris/wcsnrtombs.inc b/contrib/libs/cxxsupp/libcxx/src/support/solaris/wcsnrtombs.inc
deleted file mode 100644
index 239079e4719..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/solaris/wcsnrtombs.inc
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * Copyright (c) 2002-2004 Tim J. Robbins.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-size_t
-wcsnrtombs_l(char * __restrict dst, const wchar_t ** __restrict src,
- size_t nwc, size_t len, mbstate_t * __restrict ps, locale_t loc)
-{
- FIX_LOCALE(loc);
- mbstate_t mbsbak;
- char buf[MB_CUR_MAX_L(loc)];
- const wchar_t *s;
- size_t nbytes;
- size_t nb;
-
- s = *src;
- nbytes = 0;
-
- if (dst == NULL) {
- while (nwc-- > 0) {
- if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1)
- /* Invalid character - wcrtomb() sets errno. */
- return ((size_t)-1);
- else if (*s == L'\0')
- return (nbytes + nb - 1);
- s++;
- nbytes += nb;
- }
- return (nbytes);
- }
-
- while (len > 0 && nwc-- > 0) {
- if (len > (size_t)MB_CUR_MAX_L(loc)) {
- /* Enough space to translate in-place. */
- if ((nb = wcrtomb_l(dst, *s, ps, loc)) == (size_t)-1) {
- *src = s;
- return ((size_t)-1);
- }
- } else {
- /*
- * May not be enough space; use temp. buffer.
- *
- * We need to save a copy of the conversion state
- * here so we can restore it if the multibyte
- * character is too long for the buffer.
- */
- mbsbak = *ps;
- if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1) {
- *src = s;
- return ((size_t)-1);
- }
- if (nb > (int)len) {
- /* MB sequence for character won't fit. */
- *ps = mbsbak;
- break;
- }
- memcpy(dst, buf, nb);
- }
- if (*s == L'\0') {
- *src = NULL;
- return (nbytes + nb - 1);
- }
- s++;
- dst += nb;
- len -= nb;
- nbytes += nb;
- }
- *src = s;
- return (nbytes);
-}
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/solaris/xlocale.cpp b/contrib/libs/cxxsupp/libcxx/src/support/solaris/xlocale.cpp
deleted file mode 100644
index d25adcd21d3..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/solaris/xlocale.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifdef __sun__
-
-#include "__support/solaris/xlocale.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/localedef.h>
-
-extern "C" {
-
-int isxdigit_l(int __c, locale_t __l) {
- return isxdigit(__c);
-}
-
-int iswxdigit_l(wint_t __c, locale_t __l) {
- return isxdigit(__c);
-}
-
-// FIXME: This disregards the locale, which is Very Wrong
-#define vsnprintf_l(__s, __n, __l, __format, __va) \
- vsnprintf(__s, __n, __format, __va)
-
-int snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...)
-{
- va_list __va;
- va_start(__va, __format);
- int __res = vsnprintf_l(__s, __n , __l, __format, __va);
- va_end(__va);
- return __res;
-}
-
-int asprintf_l(char **__s, locale_t __l, const char *__format, ...) {
- va_list __va;
- va_start(__va, __format);
- // FIXME:
- int __res = vasprintf(__s, __format, __va);
- va_end(__va);
- return __res;
-}
-
-int sscanf_l(const char *__s, locale_t __l, const char *__format, ...) {
- va_list __va;
- va_start(__va, __format);
- // FIXME:
- int __res = vsscanf(__s, __format, __va);
- va_end(__va);
- return __res;
-}
-
-size_t mbrtowc_l(wchar_t *__pwc, const char *__pmb,
- size_t __max, mbstate_t *__ps, locale_t __loc) {
- return mbrtowc(__pwc, __pmb, __max, __ps);
-}
-
-struct lconv *localeconv_l(locale_t __l) {
- return localeconv();
-}
-
-};
-
-#endif // __sun__
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/win32/atomic_win32.cpp b/contrib/libs/cxxsupp/libcxx/src/support/win32/atomic_win32.cpp
deleted file mode 100644
index 28cb0722ce7..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/win32/atomic_win32.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <intrin.h>
-#include <cstdint>
-
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-namespace {
-static const int __msvc_locks_size = 1024;
-volatile long __msvc_locks[__msvc_locks_size];
-
-size_t __msvc_lock_hash(void* __p) {
- uintptr_t __num = reinterpret_cast<uintptr_t>(__p);
- return (__num ^ (__num >> 10)) & (__msvc_locks_size - 1);
-}
-}
-
-void __msvc_lock(void* __p) {
- volatile long& __lock = __msvc_locks[__msvc_lock_hash(__p)];
- while (_InterlockedExchange(&__lock, 1) == 0) {
-#if defined(_M_ARM) || defined(_M_ARM64)
- __yield();
-#endif
- }
-}
-
-void __msvc_unlock(void* __p) {
- volatile long& __lock = __msvc_locks[__msvc_lock_hash(__p)];
- _InterlockedExchange(&__lock, 0);
-}
-
-_LIBCPP_END_NAMESPACE_STD \ No newline at end of file
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/win32/locale_win32.cpp b/contrib/libs/cxxsupp/libcxx/src/support/win32/locale_win32.cpp
deleted file mode 100644
index 67f4d1341ab..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/win32/locale_win32.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <locale>
-#include <cstdarg> // va_start, va_end
-#include <memory>
-#include <type_traits>
-
-int __libcpp_vasprintf(char **sptr, const char *__restrict fmt, va_list ap);
-
-using std::__libcpp_locale_guard;
-
-// FIXME: base currently unused. Needs manual work to construct the new locale
-locale_t newlocale( int mask, const char * locale, locale_t /*base*/ )
-{
- return {_create_locale( LC_ALL, locale ), locale};
-}
-
-decltype(MB_CUR_MAX) MB_CUR_MAX_L( locale_t __l )
-{
-#if defined(_LIBCPP_MSVCRT)
- return ___mb_cur_max_l_func(__l);
-#else
- __libcpp_locale_guard __current(__l);
- return MB_CUR_MAX;
-#endif
-}
-
-lconv *localeconv_l( locale_t &loc )
-{
- __libcpp_locale_guard __current(loc);
- lconv *lc = localeconv();
- if (!lc)
- return lc;
- return loc.__store_lconv(lc);
-}
-size_t mbrlen_l( const char *__restrict s, size_t n,
- mbstate_t *__restrict ps, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return mbrlen( s, n, ps );
-}
-size_t mbsrtowcs_l( wchar_t *__restrict dst, const char **__restrict src,
- size_t len, mbstate_t *__restrict ps, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return mbsrtowcs( dst, src, len, ps );
-}
-size_t wcrtomb_l( char *__restrict s, wchar_t wc, mbstate_t *__restrict ps,
- locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return wcrtomb( s, wc, ps );
-}
-size_t mbrtowc_l( wchar_t *__restrict pwc, const char *__restrict s,
- size_t n, mbstate_t *__restrict ps, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return mbrtowc( pwc, s, n, ps );
-}
-size_t mbsnrtowcs_l( wchar_t *__restrict dst, const char **__restrict src,
- size_t nms, size_t len, mbstate_t *__restrict ps, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return mbsnrtowcs( dst, src, nms, len, ps );
-}
-size_t wcsnrtombs_l( char *__restrict dst, const wchar_t **__restrict src,
- size_t nwc, size_t len, mbstate_t *__restrict ps, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return wcsnrtombs( dst, src, nwc, len, ps );
-}
-wint_t btowc_l( int c, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return btowc( c );
-}
-int wctob_l( wint_t c, locale_t loc )
-{
- __libcpp_locale_guard __current(loc);
- return wctob( c );
-}
-
-int snprintf_l(char *ret, size_t n, locale_t loc, const char *format, ...)
-{
- va_list ap;
- va_start( ap, format );
-#if defined(_LIBCPP_MSVCRT)
- // FIXME: Remove usage of internal CRT function and globals.
- int result = __stdio_common_vsprintf(
- _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR,
- ret, n, format, loc, ap);
-#else
- __libcpp_locale_guard __current(loc);
- _LIBCPP_DIAGNOSTIC_PUSH
- _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
- int result = vsnprintf( ret, n, format, ap );
- _LIBCPP_DIAGNOSTIC_POP
-#endif
- va_end(ap);
- return result;
-}
-
-int asprintf_l( char **ret, locale_t loc, const char *format, ... )
-{
- va_list ap;
- va_start( ap, format );
- int result = vasprintf_l( ret, loc, format, ap );
- va_end(ap);
- return result;
-}
-int vasprintf_l( char **ret, locale_t loc, const char *format, va_list ap )
-{
- __libcpp_locale_guard __current(loc);
- return __libcpp_vasprintf( ret, format, ap );
-}
-
-#if !defined(_LIBCPP_MSVCRT)
-float strtof_l(const char* nptr, char** endptr, locale_t loc) {
- __libcpp_locale_guard __current(loc);
- return strtof(nptr, endptr);
-}
-
-long double strtold_l(const char* nptr, char** endptr, locale_t loc) {
- __libcpp_locale_guard __current(loc);
- return strtold(nptr, endptr);
-}
-#endif
-
-#if defined(__MINGW32__) && __MSVCRT_VERSION__ < 0x0800
-size_t strftime_l(char *ret, size_t n, const char *format, const struct tm *tm,
- locale_t loc) {
- __libcpp_locale_guard __current(loc);
- return strftime(ret, n, format, tm);
-}
-#endif
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/win32/new_win32.cpp b/contrib/libs/cxxsupp/libcxx/src/support/win32/new_win32.cpp
deleted file mode 100644
index 00eff4abf9d..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/win32/new_win32.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <atomic>
-#include <new>
-
-namespace std {
-
-void
-__throw_bad_alloc()
-{
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw bad_alloc();
-#endif
-}
-
-static std::atomic<std::new_handler> __new_handler;
-
-new_handler
-set_new_handler(new_handler handler) _NOEXCEPT
-{
- return __new_handler.exchange(handler);
-}
-
-new_handler
-get_new_handler() _NOEXCEPT
-{
- return __new_handler.load();
-}
-
-} \ No newline at end of file
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/win32/support.cpp b/contrib/libs/cxxsupp/libcxx/src/support/win32/support.cpp
deleted file mode 100644
index dbec4083cba..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/win32/support.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <cstdarg> // va_start, va_end
-#include <cstddef> // size_t
-#include <cstdlib> // malloc
-#include <cstdio> // vsprintf, vsnprintf
-#include <cstring> // strcpy, wcsncpy
-#include <cwchar> // mbstate_t
-
-
-// Like sprintf, but when return value >= 0 it returns
-// a pointer to a malloc'd string in *sptr.
-// If return >= 0, use free to delete *sptr.
-int __libcpp_vasprintf( char **sptr, const char *__restrict format, va_list ap )
-{
- *sptr = NULL;
- // Query the count required.
- va_list ap_copy;
- va_copy(ap_copy, ap);
- _LIBCPP_DIAGNOSTIC_PUSH
- _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
- int count = vsnprintf( NULL, 0, format, ap_copy );
- _LIBCPP_DIAGNOSTIC_POP
- va_end(ap_copy);
- if (count < 0)
- return count;
- size_t buffer_size = static_cast<size_t>(count) + 1;
- char* p = static_cast<char*>(malloc(buffer_size));
- if ( ! p )
- return -1;
- // If we haven't used exactly what was required, something is wrong.
- // Maybe bug in vsnprintf. Report the error and return.
- _LIBCPP_DIAGNOSTIC_PUSH
- _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wformat-nonliteral")
- if (vsnprintf(p, buffer_size, format, ap) != count) {
- _LIBCPP_DIAGNOSTIC_POP
- free(p);
- return -1;
- }
- // All good. This is returning memory to the caller not freeing it.
- *sptr = p;
- return count;
-}
-
-// Returns >= 0: the number of wide characters found in the
-// multi byte sequence src (of src_size_bytes), that fit in the buffer dst
-// (of max_dest_chars elements size). The count returned excludes the
-// null terminator. When dst is NULL, no characters are copied
-// and no "out" parameters are updated.
-// Returns (size_t) -1: an incomplete sequence encountered.
-// Leaves *src pointing the next character to convert or NULL
-// if a null character was converted from *src.
-size_t mbsnrtowcs( wchar_t *__restrict dst, const char **__restrict src,
- size_t src_size_bytes, size_t max_dest_chars, mbstate_t *__restrict ps )
-{
- const size_t terminated_sequence = static_cast<size_t>(0);
- //const size_t invalid_sequence = static_cast<size_t>(-1);
- const size_t incomplete_sequence = static_cast< size_t>(-2);
-
- size_t dest_converted = 0;
- size_t source_converted = 0;
- size_t source_remaining = src_size_bytes;
- size_t result = 0;
- bool have_result = false;
-
- // If dst is null then max_dest_chars should be ignored according to the
- // standard. Setting max_dest_chars to a large value has this effect.
- if (!dst)
- max_dest_chars = static_cast<size_t>(-1);
-
- while ( source_remaining ) {
- if ( dst && dest_converted >= max_dest_chars )
- break;
- // Converts one multi byte character.
- // if result > 0, it's the size in bytes of that character.
- // othewise if result is zero it indicates the null character has been found.
- // otherwise it's an error and errno may be set.
- size_t char_size = mbrtowc( dst ? dst + dest_converted : NULL, *src + source_converted, source_remaining, ps );
- // Don't do anything to change errno from here on.
- if ( char_size > 0 ) {
- source_remaining -= char_size;
- source_converted += char_size;
- ++dest_converted;
- continue;
- }
- result = char_size;
- have_result = true;
- break;
- }
- if ( dst ) {
- if ( have_result && result == terminated_sequence )
- *src = NULL;
- else
- *src += source_converted;
- }
- if ( have_result && result != terminated_sequence && result != incomplete_sequence )
- return static_cast<size_t>(-1);
-
- return dest_converted;
-}
-
-// Converts max_source_chars from the wide character buffer pointer to by *src,
-// into the multi byte character sequence buffer stored at dst which must be
-// dst_size_bytes bytes in size.
-// Returns >= 0: the number of bytes in the sequence
-// converted from *src, excluding the null terminator.
-// Returns size_t(-1) if an error occurs, also sets errno.
-// If dst is NULL dst_size_bytes is ignored and no bytes are copied to dst
-// and no "out" parameters are updated.
-size_t wcsnrtombs( char *__restrict dst, const wchar_t **__restrict src,
- size_t max_source_chars, size_t dst_size_bytes, mbstate_t *__restrict ps )
-{
- //const size_t invalid_sequence = static_cast<size_t>(-1);
-
- size_t source_converted = 0;
- size_t dest_converted = 0;
- size_t dest_remaining = dst_size_bytes;
- size_t char_size = 0;
- const errno_t no_error = ( errno_t) 0;
- errno_t result = ( errno_t ) 0;
- bool have_result = false;
- bool terminator_found = false;
-
- // If dst is null then dst_size_bytes should be ignored according to the
- // standard. Setting dest_remaining to a large value has this effect.
- if (!dst)
- dest_remaining = static_cast<size_t>(-1);
-
- while ( source_converted != max_source_chars ) {
- if ( ! dest_remaining )
- break;
- wchar_t c = (*src)[source_converted];
- if ( dst )
- result = wcrtomb_s( &char_size, dst + dest_converted, dest_remaining, c, ps);
- else
- result = wcrtomb_s( &char_size, NULL, 0, c, ps);
- // If result is zero there is no error and char_size contains the
- // size of the multi-byte-sequence converted.
- // Otherwise result indicates an errno type error.
- if ( result == no_error ) {
- if ( c == L'\0' ) {
- terminator_found = true;
- break;
- }
- ++source_converted;
- if ( dst )
- dest_remaining -= char_size;
- dest_converted += char_size;
- continue;
- }
- have_result = true;
- break;
- }
- if ( dst ) {
- if ( terminator_found )
- *src = NULL;
- else
- *src = *src + source_converted;
- }
- if ( have_result && result != no_error ) {
- errno = result;
- return static_cast<size_t>(-1);
- }
-
- return dest_converted;
-}
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/win32/thread_win32.cpp b/contrib/libs/cxxsupp/libcxx/src/support/win32/thread_win32.cpp
deleted file mode 100644
index f2072b14356..00000000000
--- a/contrib/libs/cxxsupp/libcxx/src/support/win32/thread_win32.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <__threading_support>
-#define NOMINMAX
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <process.h>
-#include <fibersapi.h>
-
-_LIBCPP_BEGIN_NAMESPACE_STD
-
-static_assert(sizeof(__libcpp_mutex_t) == sizeof(SRWLOCK), "");
-static_assert(alignof(__libcpp_mutex_t) == alignof(SRWLOCK), "");
-
-static_assert(sizeof(__libcpp_recursive_mutex_t) == sizeof(CRITICAL_SECTION),
- "");
-static_assert(alignof(__libcpp_recursive_mutex_t) == alignof(CRITICAL_SECTION),
- "");
-
-static_assert(sizeof(__libcpp_condvar_t) == sizeof(CONDITION_VARIABLE), "");
-static_assert(alignof(__libcpp_condvar_t) == alignof(CONDITION_VARIABLE), "");
-
-static_assert(sizeof(__libcpp_exec_once_flag) == sizeof(INIT_ONCE), "");
-static_assert(alignof(__libcpp_exec_once_flag) == alignof(INIT_ONCE), "");
-
-static_assert(sizeof(__libcpp_thread_id) == sizeof(DWORD), "");
-static_assert(alignof(__libcpp_thread_id) == alignof(DWORD), "");
-
-static_assert(sizeof(__libcpp_thread_t) == sizeof(HANDLE), "");
-static_assert(alignof(__libcpp_thread_t) == alignof(HANDLE), "");
-
-static_assert(sizeof(__libcpp_tls_key) == sizeof(DWORD), "");
-static_assert(alignof(__libcpp_tls_key) == alignof(DWORD), "");
-
-// Mutex
-int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m)
-{
- InitializeCriticalSection((LPCRITICAL_SECTION)__m);
- return 0;
-}
-
-int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m)
-{
- EnterCriticalSection((LPCRITICAL_SECTION)__m);
- return 0;
-}
-
-bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)
-{
- return TryEnterCriticalSection((LPCRITICAL_SECTION)__m) != 0;
-}
-
-int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m)
-{
- LeaveCriticalSection((LPCRITICAL_SECTION)__m);
- return 0;
-}
-
-int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m)
-{
- DeleteCriticalSection((LPCRITICAL_SECTION)__m);
- return 0;
-}
-
-int __libcpp_mutex_lock(__libcpp_mutex_t *__m)
-{
- AcquireSRWLockExclusive((PSRWLOCK)__m);
- return 0;
-}
-
-bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m)
-{
- return TryAcquireSRWLockExclusive((PSRWLOCK)__m) != 0;
-}
-
-int __libcpp_mutex_unlock(__libcpp_mutex_t *__m)
-{
- ReleaseSRWLockExclusive((PSRWLOCK)__m);
- return 0;
-}
-
-int __libcpp_mutex_destroy(__libcpp_mutex_t *__m)
-{
- static_cast<void>(__m);
- return 0;
-}
-
-// Condition Variable
-int __libcpp_condvar_signal(__libcpp_condvar_t *__cv)
-{
- WakeConditionVariable((PCONDITION_VARIABLE)__cv);
- return 0;
-}
-
-int __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv)
-{
- WakeAllConditionVariable((PCONDITION_VARIABLE)__cv);
- return 0;
-}
-
-int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m)
-{
- SleepConditionVariableSRW((PCONDITION_VARIABLE)__cv, (PSRWLOCK)__m, INFINITE, 0);
- return 0;
-}
-
-int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,
- __libcpp_timespec_t *__ts)
-{
- using namespace _VSTD::chrono;
-
- auto duration = seconds(__ts->tv_sec) + nanoseconds(__ts->tv_nsec);
- auto abstime =
- system_clock::time_point(duration_cast<system_clock::duration>(duration));
- auto timeout_ms = duration_cast<milliseconds>(abstime - system_clock::now());
-
- if (!SleepConditionVariableSRW((PCONDITION_VARIABLE)__cv, (PSRWLOCK)__m,
- timeout_ms.count() > 0 ? timeout_ms.count()
- : 0,
- 0))
- {
- auto __ec = GetLastError();
- return __ec == ERROR_TIMEOUT ? ETIMEDOUT : __ec;
- }
- return 0;
-}
-
-int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv)
-{
- static_cast<void>(__cv);
- return 0;
-}
-
-// Execute Once
-static inline _LIBCPP_INLINE_VISIBILITY BOOL CALLBACK
-__libcpp_init_once_execute_once_thunk(PINIT_ONCE __init_once, PVOID __parameter,
- PVOID *__context)
-{
- static_cast<void>(__init_once);
- static_cast<void>(__context);
-
- void (*init_routine)(void) = reinterpret_cast<void (*)(void)>(__parameter);
- init_routine();
- return TRUE;
-}
-
-int __libcpp_execute_once(__libcpp_exec_once_flag *__flag,
- void (*__init_routine)(void))
-{
- if (!InitOnceExecuteOnce((PINIT_ONCE)__flag, __libcpp_init_once_execute_once_thunk,
- reinterpret_cast<void *>(__init_routine), NULL))
- return GetLastError();
- return 0;
-}
-
-// Thread ID
-bool __libcpp_thread_id_equal(__libcpp_thread_id __lhs,
- __libcpp_thread_id __rhs)
-{
- return __lhs == __rhs;
-}
-
-bool __libcpp_thread_id_less(__libcpp_thread_id __lhs, __libcpp_thread_id __rhs)
-{
- return __lhs < __rhs;
-}
-
-// Thread
-struct __libcpp_beginthreadex_thunk_data
-{
- void *(*__func)(void *);
- void *__arg;
-};
-
-static inline _LIBCPP_INLINE_VISIBILITY unsigned WINAPI
-__libcpp_beginthreadex_thunk(void *__raw_data)
-{
- auto *__data =
- static_cast<__libcpp_beginthreadex_thunk_data *>(__raw_data);
- auto *__func = __data->__func;
- void *__arg = __data->__arg;
- delete __data;
- return static_cast<unsigned>(reinterpret_cast<uintptr_t>(__func(__arg)));
-}
-
-bool __libcpp_thread_isnull(const __libcpp_thread_t *__t) {
- return *__t == 0;
-}
-
-int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *),
- void *__arg)
-{
- auto *__data = new __libcpp_beginthreadex_thunk_data;
- __data->__func = __func;
- __data->__arg = __arg;
-
- *__t = reinterpret_cast<HANDLE>(_beginthreadex(nullptr, 0,
- __libcpp_beginthreadex_thunk,
- __data, 0, nullptr));
-
- if (*__t)
- return 0;
- return GetLastError();
-}
-
-__libcpp_thread_id __libcpp_thread_get_current_id()
-{
- return GetCurrentThreadId();
-}
-
-__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t)
-{
- return GetThreadId(*__t);
-}
-
-int __libcpp_thread_join(__libcpp_thread_t *__t)
-{
- if (WaitForSingleObjectEx(*__t, INFINITE, FALSE) == WAIT_FAILED)
- return GetLastError();
- if (!CloseHandle(*__t))
- return GetLastError();
- return 0;
-}
-
-int __libcpp_thread_detach(__libcpp_thread_t *__t)
-{
- if (!CloseHandle(*__t))
- return GetLastError();
- return 0;
-}
-
-void __libcpp_thread_yield()
-{
- SwitchToThread();
-}
-
-void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns)
-{
- // round-up to the nearest millisecond
- chrono::milliseconds __ms = chrono::ceil<chrono::milliseconds>(__ns);
- // FIXME(compnerd) this should be an alertable sleep (WFSO or SleepEx)
- Sleep(__ms.count());
-}
-
-// Thread Local Storage
-int __libcpp_tls_create(__libcpp_tls_key* __key,
- void(_LIBCPP_TLS_DESTRUCTOR_CC* __at_exit)(void*))
-{
- DWORD index = FlsAlloc(__at_exit);
- if (index == FLS_OUT_OF_INDEXES)
- return GetLastError();
- *__key = index;
- return 0;
-}
-
-void *__libcpp_tls_get(__libcpp_tls_key __key)
-{
- return FlsGetValue(__key);
-}
-
-int __libcpp_tls_set(__libcpp_tls_key __key, void *__p)
-{
- if (!FlsSetValue(__key, __p))
- return GetLastError();
- return 0;
-}
-
-_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index ca6399fd4a4..00000000000
--- a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,56 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL ebc015cad7377d32e7b2fc0ae5293aa1
-BELONGS ya.make
-FILE_INCLUDE CREDITS.TXT found in files: LICENSE.TXT at line 252
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.TXT [252:252]
-
-KEEP COPYRIGHT_SERVICE_LABEL f52c727d32a7eaf5a8de6bc96b82797c
-BELONGS ya.make
-FILE_INCLUDE CREDITS.TXT found in files: LICENSE.TXT at line 293
- # libcxxabi/CREDITS.TXT included in libcxxabi
- License text:
- Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.TXT [293:293]
diff --git a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index 4ecc10fb97a..00000000000
--- a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,294 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP NCSA AND MIT 4889a4f7db5a93b4117da9cf0a641927
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [240:245]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [240:245]
-
-KEEP NCSA 5a35b4c0d3b3923cac31a5a371332ca2
-BELONGS ya.make
- License text:
- Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [237:237]
-
-KEEP MIT 5debb370f50e1dfd24ff5144233a2ef6
-BELONGS ya.make
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [295:311]
-
-KEEP Apache-2.0 WITH LLVM-exception 755ab7da3ff8c5d6ae90bdbebd177e49
-BELONGS ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/__cxxabi_config.h [3:4]
- include/cxxabi.h [3:4]
- src/abort_message.cpp [3:4]
- src/abort_message.h [3:4]
- src/cxa_aux_runtime.cpp [3:4]
- src/cxa_default_handlers.cpp [3:4]
- src/cxa_demangle.cpp [3:4]
- src/cxa_exception.cpp [3:4]
- src/cxa_exception.h [3:4]
- src/cxa_exception_storage.cpp [3:4]
- src/cxa_guard.cpp [3:4]
- src/cxa_guard_impl.h [3:4]
- src/cxa_handlers.cpp [3:4]
- src/cxa_handlers.h [3:4]
- src/cxa_personality.cpp [3:4]
- src/cxa_thread_atexit.cpp [3:4]
- src/cxa_vector.cpp [3:4]
- src/cxa_virtual.cpp [3:4]
- src/demangle/DemangleConfig.h [3:4]
- src/demangle/ItaniumDemangle.h [3:4]
- src/demangle/StringView.h [3:4]
- src/demangle/Utility.h [3:4]
- src/fallback_malloc.cpp [3:4]
- src/fallback_malloc.h [3:4]
- src/private_typeinfo.cpp [3:4]
- src/private_typeinfo.h [3:4]
- src/stdlib_exception.cpp [3:4]
- src/stdlib_new_delete.cpp [3:4]
- src/stdlib_stdexcept.cpp [3:4]
- src/stdlib_typeinfo.cpp [3:4]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/__cxxabi_config.h [3:4]
- include/cxxabi.h [3:4]
- src/abort_message.cpp [3:4]
- src/abort_message.h [3:4]
- src/cxa_aux_runtime.cpp [3:4]
- src/cxa_default_handlers.cpp [3:4]
- src/cxa_demangle.cpp [3:4]
- src/cxa_exception.cpp [3:4]
- src/cxa_exception.h [3:4]
- src/cxa_exception_storage.cpp [3:4]
- src/cxa_guard.cpp [3:4]
- src/cxa_guard_impl.h [3:4]
- src/cxa_handlers.cpp [3:4]
- src/cxa_handlers.h [3:4]
- src/cxa_personality.cpp [3:4]
- src/cxa_thread_atexit.cpp [3:4]
- src/cxa_vector.cpp [3:4]
- src/cxa_virtual.cpp [3:4]
- src/demangle/DemangleConfig.h [3:4]
- src/demangle/ItaniumDemangle.h [3:4]
- src/demangle/StringView.h [3:4]
- src/demangle/Utility.h [3:4]
- src/fallback_malloc.cpp [3:4]
- src/fallback_malloc.h [3:4]
- src/private_typeinfo.cpp [3:4]
- src/private_typeinfo.h [3:4]
- src/stdlib_exception.cpp [3:4]
- src/stdlib_new_delete.cpp [3:4]
- src/stdlib_stdexcept.cpp [3:4]
- src/stdlib_typeinfo.cpp [3:4]
-
-KEEP Apache-2.0 WITH LLVM-exception 8494a9caed330d9a4f40e19cce7dc770
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TEXT
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [208:222]
-
-KEEP Apache-2.0 9ac77f65a898755c7eed97099caded94
-BELONGS ya.make
- # any and version - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TEXT
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [5:205]
-
-KEEP NCSA b160d8bd561da097b0edd40b062e1c84
-BELONGS ya.make
- # any and list - just words, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : TEXT
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [264:289]
-
-KEEP Apache-2.0 WITH LLVM-exception b7566a1930e050e1090162bf1d543650
-BELONGS ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- include/__cxxabi_config.h [5:5]
- include/cxxabi.h [5:5]
- src/abort_message.cpp [5:5]
- src/abort_message.h [5:5]
- src/cxa_aux_runtime.cpp [5:5]
- src/cxa_default_handlers.cpp [5:5]
- src/cxa_demangle.cpp [5:5]
- src/cxa_exception.cpp [5:5]
- src/cxa_exception.h [5:5]
- src/cxa_exception_storage.cpp [5:5]
- src/cxa_guard.cpp [5:5]
- src/cxa_guard_impl.h [5:5]
- src/cxa_handlers.cpp [5:5]
- src/cxa_handlers.h [5:5]
- src/cxa_personality.cpp [5:5]
- src/cxa_thread_atexit.cpp [5:5]
- src/cxa_vector.cpp [5:5]
- src/cxa_virtual.cpp [5:5]
- src/demangle/DemangleConfig.h [5:5]
- src/demangle/ItaniumDemangle.h [5:5]
- src/demangle/StringView.h [5:5]
- src/demangle/Utility.h [5:5]
- src/fallback_malloc.cpp [5:5]
- src/fallback_malloc.h [5:5]
- src/private_typeinfo.cpp [5:5]
- src/private_typeinfo.h [5:5]
- src/stdlib_exception.cpp [5:5]
- src/stdlib_new_delete.cpp [5:5]
- src/stdlib_stdexcept.cpp [5:5]
- src/stdlib_typeinfo.cpp [5:5]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- include/__cxxabi_config.h [5:5]
- include/cxxabi.h [5:5]
- src/abort_message.cpp [5:5]
- src/abort_message.h [5:5]
- src/cxa_aux_runtime.cpp [5:5]
- src/cxa_default_handlers.cpp [5:5]
- src/cxa_demangle.cpp [5:5]
- src/cxa_exception.cpp [5:5]
- src/cxa_exception.h [5:5]
- src/cxa_exception_storage.cpp [5:5]
- src/cxa_guard.cpp [5:5]
- src/cxa_guard_impl.h [5:5]
- src/cxa_handlers.cpp [5:5]
- src/cxa_handlers.h [5:5]
- src/cxa_personality.cpp [5:5]
- src/cxa_thread_atexit.cpp [5:5]
- src/cxa_vector.cpp [5:5]
- src/cxa_virtual.cpp [5:5]
- src/demangle/DemangleConfig.h [5:5]
- src/demangle/ItaniumDemangle.h [5:5]
- src/demangle/StringView.h [5:5]
- src/demangle/Utility.h [5:5]
- src/fallback_malloc.cpp [5:5]
- src/fallback_malloc.h [5:5]
- src/private_typeinfo.cpp [5:5]
- src/private_typeinfo.h [5:5]
- src/stdlib_exception.cpp [5:5]
- src/stdlib_new_delete.cpp [5:5]
- src/stdlib_stdexcept.cpp [5:5]
- src/stdlib_typeinfo.cpp [5:5]
-
-KEEP NCSA c26d0b72f92421989c4471ae0acbc943
-BELONGS ya.make
- License text:
- University of Illinois/NCSA
- Open Source License
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [249:250]
-
-KEEP Apache-2.0 WITH LLVM-exception df18889e552d44a4679aff552267f802
-BELONGS ya.make
- License text:
- The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [2:2]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [2:2]
diff --git a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/licenses.list.txt b/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/licenses.list.txt
deleted file mode 100644
index af81e45ab66..00000000000
--- a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/licenses.list.txt
+++ /dev/null
@@ -1,381 +0,0 @@
-====================Apache-2.0====================
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
----- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
-
-
-====================COPYRIGHT====================
-Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT
-
-
-====================File: CREDITS.TXT====================
-This file is a partial list of people who have contributed to the LLVM/libc++abi
-project. If you have contributed a patch or made some other contribution to
-LLVM/libc++abi, please submit a patch to this file to add yourself, and it will be
-done!
-
-The list is sorted by surname and formatted to allow easy grepping and
-beautification by scripts. The fields are: name (N), email (E), web-address
-(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
-(S).
-
-N: Aaron Ballman
-D: Minor patches
-
-N: Logan Chien
-D: ARM EHABI Unwind & Exception Handling
-
-N: Marshall Clow
-D: Architect and primary coauthor of libc++abi
-
-N: Matthew Dempsky
-D: Minor patches and bug fixes.
-
-N: Nowar Gu
-D: Minor patches and fixes
-
-N: Howard Hinnant
-D: Architect and primary coauthor of libc++abi
-
-N: Dana Jansens
-D: ARM EHABI Unwind & Exception Handling
-
-N: Nick Kledzik
-
-N: Antoine Labour
-D: ARM EHABI Unwind & Exception Handling
-
-N: Bruce Mitchener, Jr.
-D: Minor typo fixes
-
-N: Andrew Morrow
-D: Minor patches and fixes
-
-N: Erik Olofsson
-D: Minor patches and fixes
-
-N: Jon Roelofs
-D: ARM EHABI Unwind & Exception Handling, Bare-metal
-
-N: Nico Weber
-D: ARM EHABI Unwind & Exception Handling
-
-N: Albert J. Wong
-D: ARM EHABI Unwind & Exception Handling
-
-
-
-====================MIT====================
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-====================NCSA====================
-Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
-
-
-====================NCSA====================
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-
-====================NCSA====================
-University of Illinois/NCSA
-Open Source License
-
-
-====================NCSA AND MIT====================
-The libc++abi library is dual licensed under both the University of Illinois
-"BSD-Like" license and the MIT license. As a user of this code you may choose
-to use it under either license. As a contributor, you agree to allow your code
-to be used under both.
-
-Full text of the relevant licenses is included below.
diff --git a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index 648d4044da6..00000000000
--- a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,72 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL 1d5ea88b15cad450fcd61657e1cf38f0
-BELONGS ya.make
- License text:
- * Copyright 2010-2011 PathScale, Inc. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE [3:3]
- auxhelper.cc [2:2]
- dwarf_eh.h [2:2]
- dynamic_cast.cc [2:2]
- exception.cc [2:2]
- memory.cc [2:2]
- stdexcept.cc [2:2]
- stdexcept.h [2:2]
- typeinfo.h [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL 5efdfd987a88b455d2c1b8018df2035e
-BELONGS ya.make
- License text:
- * Copyright 2012 David Chisnall. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- cxxabi.h [2:2]
-
-KEEP COPYRIGHT_SERVICE_LABEL 69053d6417df98873c8a8b466c648c78
-BELONGS ya.make
- License text:
- * Copyright 2010-2012 PathScale, Inc. All rights reserved.
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- guard.cc [2:2]
- typeinfo.cc [2:2]
diff --git a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index 72889a5c687..00000000000
--- a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,91 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP BSD-3-Clause 88f80886d9ea21e0b7205bd3730230e4
-BELONGS ya.make
- License text:
- The BSD License
- Scancode info:
- Original SPDX id: BSD-3-Clause
- Score : 99.00
- Match type : REFERENCE
- Links : http://www.opensource.org/licenses/BSD-3-Clause, https://spdx.org/licenses/BSD-3-Clause
- Files with this license:
- LICENSE [1:1]
-
-KEEP BSD-2-Clause 8cedb6171c06f89f0e6eefd60e5f79d5
-BELONGS ya.make
-FILE_INCLUDE COPYRIGHT found in files: auxhelper.cc at line 14, auxhelper.cc at line 17, dwarf_eh.h at line 14, dwarf_eh.h at line 17, dynamic_cast.cc at line 14, dynamic_cast.cc at line 17, exception.cc at line 14, exception.cc at line 17, guard.cc at line 14, guard.cc at line 17, memory.cc at line 14, memory.cc at line 17, stdexcept.cc at line 14, stdexcept.cc at line 17, stdexcept.h at line 14, stdexcept.h at line 17, typeinfo.cc at line 14, typeinfo.cc at line 17, typeinfo.h at line 14, typeinfo.h at line 17
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/bsd-license.php, http://www.opensource.org/licenses/BSD-2-Clause, https://spdx.org/licenses/BSD-2-Clause
- Files with this license:
- auxhelper.cc [4:24]
- dwarf_eh.h [4:24]
- dynamic_cast.cc [4:24]
- exception.cc [4:24]
- guard.cc [4:24]
- memory.cc [4:24]
- stdexcept.cc [4:24]
- stdexcept.h [4:24]
- typeinfo.cc [4:24]
- typeinfo.h [4:24]
-
-KEEP MIT 8ee097b6bcb3429ad39c4dbd5cc0e35e
-BELONGS ya.make
-FILE_INCLUDE AUTHORS found in files: cxxabi.h at line 17
-FILE_INCLUDE COPYRIGHT found in files: cxxabi.h at line 17
- # any - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- cxxabi.h [4:20]
-
-KEEP BSD-2-Clause-Views fa822847a0868c8922cbd110b73455fc
-BELONGS ya.make
-FILE_INCLUDE COPYRIGHT found in files: LICENSE at line 12
- # list - just word, not file reference
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: BSD-2-Clause-Views
- Score : 98.16
- Match type : TEXT
- Links : https://github.com/protegeproject/protege/blob/master/license.txt, https://spdx.org/licenses/BSD-2-Clause-Views, https://www.freebsd.org/copyright/freebsd-license.html
- Files with this license:
- LICENSE [5:14]
diff --git a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/licenses.list.txt b/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/licenses.list.txt
deleted file mode 100644
index a88ae308f88..00000000000
--- a/contrib/libs/cxxsupp/libcxxrt/.yandex_meta/licenses.list.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-====================BSD-2-Clause====================
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
- * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-====================BSD-2-Clause-Views====================
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of
-
-====================BSD-3-Clause====================
-The BSD License
-
-
-====================COPYRIGHT====================
- * Copyright 2010-2011 PathScale, Inc. All rights reserved.
-
-
-====================COPYRIGHT====================
- * Copyright 2010-2012 PathScale, Inc. All rights reserved.
-
-
-====================COPYRIGHT====================
- * Copyright 2012 David Chisnall. All rights reserved.
-
-
-====================File: AUTHORS====================
-David Chisnall
-PathScale engineers
-
-
-====================File: COPYRIGHT====================
-PathScale Inc
-NetBSD Foundation
-FreeBSD Foundation
-
-
-====================MIT====================
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/contrib/libs/cxxsupp/libgcc/cxxabi.cpp b/contrib/libs/cxxsupp/libgcc/cxxabi.cpp
deleted file mode 100644
index fdb85e15af5..00000000000
--- a/contrib/libs/cxxsupp/libgcc/cxxabi.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "cxxabi.h"
-
-#include <new>
-
-extern "C" {
- void __cxa_throw_bad_array_length() {
- throw std::bad_alloc();
- }
-
- void __cxa_throw_bad_array_new_length() {
- throw std::bad_alloc();
- }
-}
diff --git a/contrib/libs/cxxsupp/libgcc/cxxabi.h b/contrib/libs/cxxsupp/libgcc/cxxabi.h
deleted file mode 100644
index b63490423fb..00000000000
--- a/contrib/libs/cxxsupp/libgcc/cxxabi.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-extern "C" {
- void __cxa_throw_bad_array_length() __attribute__((weak, noreturn));
- void __cxa_throw_bad_array_new_length() __attribute__((weak, noreturn));
-}
diff --git a/contrib/libs/cxxsupp/libgcc/stdcxx_bits.cpp b/contrib/libs/cxxsupp/libgcc/stdcxx_bits.cpp
deleted file mode 100644
index 0a34ef50c46..00000000000
--- a/contrib/libs/cxxsupp/libgcc/stdcxx_bits.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "stdcxx_bits.h"
-
-#include <stdexcept>
-
-namespace std {
-
-void __throw_out_of_range_fmt(const char* __fmt, ...) {
- (void)__fmt;
- throw std::out_of_range("__throw_out_of_range_fmt");
-}
-
-}
diff --git a/contrib/libs/cxxsupp/libgcc/stdcxx_bits.h b/contrib/libs/cxxsupp/libgcc/stdcxx_bits.h
deleted file mode 100644
index 821ccb185c8..00000000000
--- a/contrib/libs/cxxsupp/libgcc/stdcxx_bits.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-namespace std {
-
-void __throw_out_of_range_fmt(const char*, ...)
- __attribute__((__noreturn__))
- __attribute__((__format__(__printf__, 1, 2)))
- __attribute__((__weak__))
-;
-
-}
diff --git a/contrib/libs/cxxsupp/libsan/generate_symbolizer.py b/contrib/libs/cxxsupp/libsan/generate_symbolizer.py
deleted file mode 100644
index d28c64bd926..00000000000
--- a/contrib/libs/cxxsupp/libsan/generate_symbolizer.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import os
-import sys
-
-
-def main():
- print 'const char* ya_get_symbolizer_gen() {'
- print ' return "{}";'.format(os.path.join(os.path.dirname(sys.argv[1]), 'llvm-symbolizer'))
- print '}'
-
-
-if __name__ == '__main__':
- main()
diff --git a/contrib/libs/cxxsupp/libsan/inject.c b/contrib/libs/cxxsupp/libsan/inject.c
deleted file mode 100644
index 7790db5f36a..00000000000
--- a/contrib/libs/cxxsupp/libsan/inject.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <unistd.h>
-
-extern const char* ya_get_symbolizer_gen();
-
-const char* ya_get_symbolizer() {
- const char* path = ya_get_symbolizer_gen();
- return access(path, X_OK) ? NULL : path;
-}
diff --git a/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.copyrights.report b/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.copyrights.report
deleted file mode 100644
index faf2e30301c..00000000000
--- a/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.copyrights.report
+++ /dev/null
@@ -1,42 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license id} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP COPYRIGHT_SERVICE_LABEL a40b4dfd85d7d2a0c253d02baa200370
-BELONGS ya.make
- License text:
- Copyright (c) 1997-2019 Intel Corporation
- Scancode info:
- Original SPDX id: COPYRIGHT_SERVICE_LABEL
- Score : 100.00
- Match type : COPYRIGHT
- Files with this license:
- LICENSE.TXT [254:254]
- LICENSE.TXT [291:291]
diff --git a/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.licenses.report b/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.licenses.report
deleted file mode 100644
index 7fc086467b2..00000000000
--- a/contrib/libs/cxxsupp/openmp/.yandex_meta/devtools.licenses.report
+++ /dev/null
@@ -1,515 +0,0 @@
-# File format ($ symbol means the beginning of a line):
-#
-# $ # this message
-# $ # =======================
-# $ # comments (all commentaries should starts with some number of spaces and # symbol)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/1/ya.make ./ya/make/2/ya.make
-# ${all_file_action} filename
-# $ # user commentaries (many lines)
-# $ generated description - files with this license, license text... (some number of lines that starts with some number of spaces, do not modify)
-# ${action} {license spdx} {license text hash}
-# $BELONGS ./ya/make/file/relative/path/3/ya.make
-# ${all_file_action} filename
-# $ # user commentaries
-# $ generated description
-# $ ...
-#
-# You can modify action, all_file_action and add commentaries
-# Available actions:
-# keep - keep license in contrib and use in credits
-# skip - skip license
-# remove - remove all files with this license
-# rename - save license text/links into licenses texts file, but not store SPDX into LINCENSE macro. You should store correct license id into devtools.license.spdx.txt file
-#
-# {all file action} records will be generated when license text contains filename that exists on filesystem (in contrib directory)
-# We suppose that that files can contain some license info
-# Available all file actions:
-# FILE_IGNORE - ignore file (do nothing)
-# FILE_INCLUDE - include all file data into licenses text file
-# =======================
-
-KEEP NCSA AND MIT 1046d955b73b76a5985bad28cebed867
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : NOTICE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [240:247]
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : NOTICE
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [240:247]
- Scancode info:
- Original SPDX id: LicenseRef-scancode-generic-cla
- Score : 100.00
- Match type : NOTICE
- Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/generic-cla.LICENSE
- Files with this license:
- LICENSE.TXT [240:247]
-
-KEEP Apache-2.0 WITH LLVM-exception 2eeede7ef78b2b5da03a36caf5f1f61c
-BELONGS ya.make
- License text:
- //// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- //// See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- z_Linux_asm.S [7:8]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- z_Linux_asm.S [7:8]
-
-KEEP NCSA 5a35b4c0d3b3923cac31a5a371332ca2
-BELONGS ya.make
- License text:
- Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [237:237]
-
-KEEP MIT 5debb370f50e1dfd24ff5144233a2ef6
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: MIT
- Score : 100.00
- Match type : TEXT
- Links : http://opensource.org/licenses/mit-license.php, https://spdx.org/licenses/MIT
- Files with this license:
- LICENSE.TXT [293:309]
-
-KEEP NCSA 6caabae7bd314fb6e6055ec150ee747f
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: NCSA
- Score : 99.55
- Match type : TEXT
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [263:287]
-
-KEEP Apache-2.0 WITH LLVM-exception 755ab7da3ff8c5d6ae90bdbebd177e49
-BELONGS ya.make
- License text:
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- kmp.h [8:9]
- kmp_affinity.cpp [7:8]
- kmp_affinity.h [7:8]
- kmp_alloc.cpp [7:8]
- kmp_atomic.cpp [7:8]
- kmp_atomic.h [7:8]
- kmp_barrier.cpp [7:8]
- kmp_barrier.h [7:8]
- kmp_cancel.cpp [4:5]
- kmp_config.h [6:7]
- kmp_csupport.cpp [7:8]
- kmp_debug.cpp [7:8]
- kmp_debug.h [7:8]
- kmp_dispatch.cpp [7:8]
- kmp_dispatch.h [7:8]
- kmp_environment.cpp [7:8]
- kmp_environment.h [7:8]
- kmp_error.cpp [7:8]
- kmp_error.h [7:8]
- kmp_ftn_cdecl.cpp [7:8]
- kmp_ftn_entry.h [7:8]
- kmp_ftn_extra.cpp [7:8]
- kmp_ftn_os.h [7:8]
- kmp_global.cpp [7:8]
- kmp_gsupport.cpp [7:8]
- kmp_i18n.cpp [7:8]
- kmp_i18n.h [7:8]
- kmp_io.cpp [7:8]
- kmp_io.h [7:8]
- kmp_itt.cpp [10:11]
- kmp_itt.h [8:9]
- kmp_lock.cpp [7:8]
- kmp_lock.h [7:8]
- kmp_os.h [7:8]
- kmp_platform.h [7:8]
- kmp_runtime.cpp [7:8]
- kmp_safe_c_api.h [4:5]
- kmp_sched.cpp [7:8]
- kmp_settings.cpp [7:8]
- kmp_settings.h [7:8]
- kmp_stats.h [10:11]
- kmp_str.cpp [7:8]
- kmp_str.h [7:8]
- kmp_taskdeps.cpp [7:8]
- kmp_taskdeps.h [7:8]
- kmp_tasking.cpp [7:8]
- kmp_threadprivate.cpp [7:8]
- kmp_utility.cpp [7:8]
- kmp_version.cpp [7:8]
- kmp_version.h [7:8]
- kmp_wait_release.cpp [7:8]
- kmp_wait_release.h [7:8]
- kmp_wrapper_getpid.h [7:8]
- kmp_wrapper_malloc.h [8:9]
- omp-tools.h [7:8]
- omp.h [8:9]
- ompt-event-specific.h [12:13]
- ompt-general.cpp [7:8]
- ompt-internal.h [7:8]
- ompt-specific.cpp [7:8]
- ompt-specific.h [7:8]
- z_Linux_util.cpp [7:8]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- kmp.h [8:9]
- kmp_affinity.cpp [7:8]
- kmp_affinity.h [7:8]
- kmp_alloc.cpp [7:8]
- kmp_atomic.cpp [7:8]
- kmp_atomic.h [7:8]
- kmp_barrier.cpp [7:8]
- kmp_barrier.h [7:8]
- kmp_cancel.cpp [4:5]
- kmp_config.h [6:7]
- kmp_csupport.cpp [7:8]
- kmp_debug.cpp [7:8]
- kmp_debug.h [7:8]
- kmp_dispatch.cpp [7:8]
- kmp_dispatch.h [7:8]
- kmp_environment.cpp [7:8]
- kmp_environment.h [7:8]
- kmp_error.cpp [7:8]
- kmp_error.h [7:8]
- kmp_ftn_cdecl.cpp [7:8]
- kmp_ftn_entry.h [7:8]
- kmp_ftn_extra.cpp [7:8]
- kmp_ftn_os.h [7:8]
- kmp_global.cpp [7:8]
- kmp_gsupport.cpp [7:8]
- kmp_i18n.cpp [7:8]
- kmp_i18n.h [7:8]
- kmp_io.cpp [7:8]
- kmp_io.h [7:8]
- kmp_itt.cpp [10:11]
- kmp_itt.h [8:9]
- kmp_lock.cpp [7:8]
- kmp_lock.h [7:8]
- kmp_os.h [7:8]
- kmp_platform.h [7:8]
- kmp_runtime.cpp [7:8]
- kmp_safe_c_api.h [4:5]
- kmp_sched.cpp [7:8]
- kmp_settings.cpp [7:8]
- kmp_settings.h [7:8]
- kmp_stats.h [10:11]
- kmp_str.cpp [7:8]
- kmp_str.h [7:8]
- kmp_taskdeps.cpp [7:8]
- kmp_taskdeps.h [7:8]
- kmp_tasking.cpp [7:8]
- kmp_threadprivate.cpp [7:8]
- kmp_utility.cpp [7:8]
- kmp_version.cpp [7:8]
- kmp_version.h [7:8]
- kmp_wait_release.cpp [7:8]
- kmp_wait_release.h [7:8]
- kmp_wrapper_getpid.h [7:8]
- kmp_wrapper_malloc.h [8:9]
- omp-tools.h [7:8]
- omp.h [8:9]
- ompt-event-specific.h [12:13]
- ompt-general.cpp [7:8]
- ompt-internal.h [7:8]
- ompt-specific.cpp [7:8]
- ompt-specific.h [7:8]
- z_Linux_util.cpp [7:8]
-
-KEEP Apache-2.0 WITH LLVM-exception 813a7ee71d9804f118ddde21a452de40
-BELONGS ya.make
- License text:
- \#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- \#// See https://llvm.org/LICENSE.txt for license information.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- exports_so.txt [6:7]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- exports_so.txt [6:7]
-
-KEEP Apache-2.0 WITH LLVM-exception 8494a9caed330d9a4f40e19cce7dc770
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TEXT
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [208:222]
-
-KEEP Apache-2.0 WITH LLVM-exception 8cf6c51a4358f58d16ab5358dd73b2b7
-BELONGS ya.make
- License text:
- //// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- z_Linux_asm.S [9:9]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- z_Linux_asm.S [9:9]
-
-KEEP Apache-2.0 9ac77f65a898755c7eed97099caded94
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TEXT
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [5:205]
-
-KEEP Apache-2.0 WITH LLVM-exception b7566a1930e050e1090162bf1d543650
-BELONGS ya.make
- License text:
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- kmp.h [10:10]
- kmp_affinity.cpp [9:9]
- kmp_affinity.h [9:9]
- kmp_alloc.cpp [9:9]
- kmp_atomic.cpp [9:9]
- kmp_atomic.h [9:9]
- kmp_barrier.cpp [9:9]
- kmp_barrier.h [9:9]
- kmp_cancel.cpp [6:6]
- kmp_config.h [8:8]
- kmp_csupport.cpp [9:9]
- kmp_debug.cpp [9:9]
- kmp_debug.h [9:9]
- kmp_dispatch.cpp [9:9]
- kmp_dispatch.h [9:9]
- kmp_environment.cpp [9:9]
- kmp_environment.h [9:9]
- kmp_error.cpp [9:9]
- kmp_error.h [9:9]
- kmp_ftn_cdecl.cpp [9:9]
- kmp_ftn_entry.h [9:9]
- kmp_ftn_extra.cpp [9:9]
- kmp_ftn_os.h [9:9]
- kmp_global.cpp [9:9]
- kmp_gsupport.cpp [9:9]
- kmp_i18n.cpp [9:9]
- kmp_i18n.h [9:9]
- kmp_io.cpp [9:9]
- kmp_io.h [9:9]
- kmp_itt.cpp [12:12]
- kmp_itt.h [10:10]
- kmp_lock.cpp [9:9]
- kmp_lock.h [9:9]
- kmp_os.h [9:9]
- kmp_platform.h [9:9]
- kmp_runtime.cpp [9:9]
- kmp_safe_c_api.h [6:6]
- kmp_sched.cpp [9:9]
- kmp_settings.cpp [9:9]
- kmp_settings.h [9:9]
- kmp_stats.h [12:12]
- kmp_str.cpp [9:9]
- kmp_str.h [9:9]
- kmp_taskdeps.cpp [9:9]
- kmp_taskdeps.h [9:9]
- kmp_tasking.cpp [9:9]
- kmp_threadprivate.cpp [9:9]
- kmp_utility.cpp [9:9]
- kmp_version.cpp [9:9]
- kmp_version.h [9:9]
- kmp_wait_release.cpp [9:9]
- kmp_wait_release.h [9:9]
- kmp_wrapper_getpid.h [9:9]
- kmp_wrapper_malloc.h [10:10]
- omp-tools.h [9:9]
- omp.h [10:10]
- ompt-event-specific.h [14:14]
- ompt-general.cpp [9:9]
- ompt-internal.h [9:9]
- ompt-specific.cpp [9:9]
- ompt-specific.h [9:9]
- z_Linux_util.cpp [9:9]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- kmp.h [10:10]
- kmp_affinity.cpp [9:9]
- kmp_affinity.h [9:9]
- kmp_alloc.cpp [9:9]
- kmp_atomic.cpp [9:9]
- kmp_atomic.h [9:9]
- kmp_barrier.cpp [9:9]
- kmp_barrier.h [9:9]
- kmp_cancel.cpp [6:6]
- kmp_config.h [8:8]
- kmp_csupport.cpp [9:9]
- kmp_debug.cpp [9:9]
- kmp_debug.h [9:9]
- kmp_dispatch.cpp [9:9]
- kmp_dispatch.h [9:9]
- kmp_environment.cpp [9:9]
- kmp_environment.h [9:9]
- kmp_error.cpp [9:9]
- kmp_error.h [9:9]
- kmp_ftn_cdecl.cpp [9:9]
- kmp_ftn_entry.h [9:9]
- kmp_ftn_extra.cpp [9:9]
- kmp_ftn_os.h [9:9]
- kmp_global.cpp [9:9]
- kmp_gsupport.cpp [9:9]
- kmp_i18n.cpp [9:9]
- kmp_i18n.h [9:9]
- kmp_io.cpp [9:9]
- kmp_io.h [9:9]
- kmp_itt.cpp [12:12]
- kmp_itt.h [10:10]
- kmp_lock.cpp [9:9]
- kmp_lock.h [9:9]
- kmp_os.h [9:9]
- kmp_platform.h [9:9]
- kmp_runtime.cpp [9:9]
- kmp_safe_c_api.h [6:6]
- kmp_sched.cpp [9:9]
- kmp_settings.cpp [9:9]
- kmp_settings.h [9:9]
- kmp_stats.h [12:12]
- kmp_str.cpp [9:9]
- kmp_str.h [9:9]
- kmp_taskdeps.cpp [9:9]
- kmp_taskdeps.h [9:9]
- kmp_tasking.cpp [9:9]
- kmp_threadprivate.cpp [9:9]
- kmp_utility.cpp [9:9]
- kmp_version.cpp [9:9]
- kmp_version.h [9:9]
- kmp_wait_release.cpp [9:9]
- kmp_wait_release.h [9:9]
- kmp_wrapper_getpid.h [9:9]
- kmp_wrapper_malloc.h [10:10]
- omp-tools.h [9:9]
- omp.h [10:10]
- ompt-event-specific.h [14:14]
- ompt-general.cpp [9:9]
- ompt-internal.h [9:9]
- ompt-specific.cpp [9:9]
- ompt-specific.h [9:9]
- z_Linux_util.cpp [9:9]
-
-KEEP Apache-2.0 WITH LLVM-exception b7cec33eded9763725bcb0a858a5da3e
-BELONGS ya.make
- License text:
- \#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : TAG
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- exports_so.txt [8:8]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : TAG
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- exports_so.txt [8:8]
-
-KEEP NCSA c26d0b72f92421989c4471ae0acbc943
-BELONGS ya.make
- License text:
- University of Illinois/NCSA
- Open Source License
- Scancode info:
- Original SPDX id: NCSA
- Score : 100.00
- Match type : REFERENCE
- Links : http://www.otm.illinois.edu/faculty/forms/opensource.asp, https://spdx.org/licenses/NCSA
- Files with this license:
- LICENSE.TXT [251:252]
-
-KEEP Intel-LLVM-SGA d5a6528c4e206fd72c16045a75e34576
-BELONGS ya.make
- Note: matched license text is too long. Read it in the source files.
- Scancode info:
- Original SPDX id: LicenseRef-scancode-arm-llvm-sga
- Score : 99.00
- Match type : TEXT
- Links : https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/arm-llvm-sga.LICENSE
- Files with this license:
- LICENSE.TXT [315:359]
-
-KEEP Apache-2.0 WITH LLVM-exception df18889e552d44a4679aff552267f802
-BELONGS ya.make
- License text:
- The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
- Scancode info:
- Original SPDX id: Apache-2.0
- Score : 100.00
- Match type : NOTICE
- Links : http://www.apache.org/licenses/, http://www.apache.org/licenses/LICENSE-2.0, https://spdx.org/licenses/Apache-2.0
- Files with this license:
- LICENSE.TXT [2:2]
- Scancode info:
- Original SPDX id: LLVM-exception
- Score : 100.00
- Match type : NOTICE
- Links : http://llvm.org/foundation/relicensing/LICENSE.txt, https://spdx.org/licenses/LLVM-exception
- Files with this license:
- LICENSE.TXT [2:2]
diff --git a/contrib/libs/cxxsupp/openmp/.yandex_meta/licenses.list.txt b/contrib/libs/cxxsupp/openmp/.yandex_meta/licenses.list.txt
deleted file mode 100644
index 11c3d44fa68..00000000000
--- a/contrib/libs/cxxsupp/openmp/.yandex_meta/licenses.list.txt
+++ /dev/null
@@ -1,371 +0,0 @@
-====================Apache-2.0====================
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-#// See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
----- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-//// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-//// See https://llvm.org/LICENSE.txt for license information.
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-//// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-====================Apache-2.0 WITH LLVM-exception====================
-The LLVM Project is under the Apache License v2.0 with LLVM Exceptions:
-
-
-====================COPYRIGHT====================
-Copyright (c) 1997-2019 Intel Corporation
-
-
-====================Intel-LLVM-SGA====================
-Software Grant License Agreement ("Agreement")
-
-Except for the license granted herein to you, Intel Corporation ("Intel") reserves
-all right, title, and interest in and to the Software (defined below).
-
-Definition
-
-"Software" means the code and documentation as well as any original work of
-authorship, including any modifications or additions to an existing work, that
-is intentionally submitted by Intel to llvm.org (http://llvm.org) ("LLVM") for
-inclusion in, or documentation of, any of the products owned or managed by LLVM
-(the "Work"). For the purposes of this definition, "submitted" means any form of
-electronic, verbal, or written communication sent to LLVM or its
-representatives, including but not limited to communication on electronic
-mailing lists, source code control systems, and issue tracking systems that are
-managed by, or on behalf of, LLVM for the purpose of discussing and improving
-the Work, but excluding communication that is conspicuously marked otherwise.
-
-1. Grant of Copyright License. Subject to the terms and conditions of this
- Agreement, Intel hereby grants to you and to recipients of the Software
- distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
- royalty-free, irrevocable copyright license to reproduce, prepare derivative
- works of, publicly display, publicly perform, sublicense, and distribute the
- Software and such derivative works.
-
-2. Grant of Patent License. Subject to the terms and conditions of this
- Agreement, Intel hereby grants you and to recipients of the Software
- distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
- royalty-free, irrevocable (except as stated in this section) patent license
- to make, have made, use, offer to sell, sell, import, and otherwise transfer
- the Work, where such license applies only to those patent claims licensable
- by Intel that are necessarily infringed by Intel's Software alone or by
- combination of the Software with the Work to which such Software was
- submitted. If any entity institutes patent litigation against Intel or any
- other entity (including a cross-claim or counterclaim in a lawsuit) alleging
- that Intel's Software, or the Work to which Intel has contributed constitutes
- direct or contributory patent infringement, then any patent licenses granted
- to that entity under this Agreement for the Software or Work shall terminate
- as of the date such litigation is filed.
-
-Unless required by applicable law or agreed to in writing, the software is
-provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-either express or implied, including, without limitation, any warranties or
-conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE.
-
-
-====================MIT====================
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-====================NCSA====================
-Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy):
-
-
-====================NCSA====================
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of Intel Corporation OpenMP Runtime Team nor the
- names of its contributors may be used to endorse or promote products
- derived from this Software without specific prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-
-====================NCSA====================
-University of Illinois/NCSA
-Open Source License
-
-
-====================NCSA AND MIT====================
-The software contained in this directory tree is dual licensed under both the
-University of Illinois "BSD-Like" license and the MIT license. As a user of
-this code you may choose to use it under either license. As a contributor,
-you agree to allow your code to be used under both. The full text of the
-relevant licenses is included below.
-
-In addition, a license agreement from the copyright/patent holders of the
-software contained in this directory tree is included below.
diff --git a/contrib/libs/cxxsupp/system_stl/include/stlfwd b/contrib/libs/cxxsupp/system_stl/include/stlfwd
deleted file mode 100644
index 94e9c17f3f9..00000000000
--- a/contrib/libs/cxxsupp/system_stl/include/stlfwd
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-// STL "forwarding" for the poor
-
-#include <cstddef>
-#include <string>
-#include <string_view>
-#include <utility>
-#include <vector>
-#include <list>
-#include <deque>
-#include <map>
-#include <set>
-#include <functional>