llvm-runtime-resources-darwin 0.0.0 → 22.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +33 -0
  3. package/include/__clang_cuda_builtin_vars.h +121 -0
  4. package/include/__clang_cuda_cmath.h +512 -0
  5. package/include/__clang_cuda_complex_builtins.h +229 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +994 -0
  8. package/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/include/__clang_cuda_math.h +353 -0
  10. package/include/__clang_cuda_math_forward_declares.h +284 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +522 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_hip_cmath.h +848 -0
  14. package/include/__clang_hip_libdevice_declares.h +340 -0
  15. package/include/__clang_hip_math.h +1405 -0
  16. package/include/__clang_hip_runtime_wrapper.h +165 -0
  17. package/include/__clang_hip_stdlib.h +43 -0
  18. package/include/__clang_spirv_builtins.h +217 -0
  19. package/include/__float_float.h +176 -0
  20. package/include/__float_header_macro.h +12 -0
  21. package/include/__float_infinity_nan.h +20 -0
  22. package/include/__stdarg___gnuc_va_list.h +13 -0
  23. package/include/__stdarg___va_copy.h +12 -0
  24. package/include/__stdarg_header_macro.h +12 -0
  25. package/include/__stdarg_va_arg.h +22 -0
  26. package/include/__stdarg_va_copy.h +12 -0
  27. package/include/__stdarg_va_list.h +13 -0
  28. package/include/__stddef_header_macro.h +12 -0
  29. package/include/__stddef_max_align_t.h +27 -0
  30. package/include/__stddef_null.h +29 -0
  31. package/include/__stddef_nullptr_t.h +29 -0
  32. package/include/__stddef_offsetof.h +17 -0
  33. package/include/__stddef_ptrdiff_t.h +20 -0
  34. package/include/__stddef_rsize_t.h +20 -0
  35. package/include/__stddef_size_t.h +20 -0
  36. package/include/__stddef_unreachable.h +21 -0
  37. package/include/__stddef_wchar_t.h +28 -0
  38. package/include/__stddef_wint_t.h +15 -0
  39. package/include/__wmmintrin_aes.h +140 -0
  40. package/include/__wmmintrin_pclmul.h +48 -0
  41. package/include/adcintrin.h +165 -0
  42. package/include/adxintrin.h +107 -0
  43. package/include/altivec.h +19364 -0
  44. package/include/amdgpuintrin.h +191 -0
  45. package/include/ammintrin.h +183 -0
  46. package/include/amo.h +131 -0
  47. package/include/amxavx512intrin.h +596 -0
  48. package/include/amxcomplexintrin.h +167 -0
  49. package/include/amxfp16intrin.h +93 -0
  50. package/include/amxfp8intrin.h +230 -0
  51. package/include/amxintrin.h +492 -0
  52. package/include/amxmovrsintrin.h +48 -0
  53. package/include/amxtf32intrin.h +108 -0
  54. package/include/andes_vector.h +16 -0
  55. package/include/arm64intr.h +35 -0
  56. package/include/arm_acle.h +865 -0
  57. package/include/arm_bf16.h +20 -0
  58. package/include/arm_cde.h +410 -0
  59. package/include/arm_cmse.h +217 -0
  60. package/include/arm_fp16.h +596 -0
  61. package/include/arm_mve.h +19187 -0
  62. package/include/arm_neon.h +74183 -0
  63. package/include/arm_neon_sve_bridge.h +182 -0
  64. package/include/arm_sme.h +3741 -0
  65. package/include/arm_sve.h +32278 -0
  66. package/include/arm_vector_types.h +432 -0
  67. package/include/armintr.h +31 -0
  68. package/include/avx10_2_512bf16intrin.h +568 -0
  69. package/include/avx10_2_512convertintrin.h +322 -0
  70. package/include/avx10_2_512minmaxintrin.h +127 -0
  71. package/include/avx10_2_512niintrin.h +314 -0
  72. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  73. package/include/avx10_2_512satcvtintrin.h +301 -0
  74. package/include/avx10_2bf16intrin.h +1094 -0
  75. package/include/avx10_2convertintrin.h +3257 -0
  76. package/include/avx10_2copyintrin.h +66 -0
  77. package/include/avx10_2minmaxintrin.h +232 -0
  78. package/include/avx10_2niintrin.h +409 -0
  79. package/include/avx10_2satcvtdsintrin.h +376 -0
  80. package/include/avx10_2satcvtintrin.h +312 -0
  81. package/include/avx2intrin.h +5191 -0
  82. package/include/avx512bf16intrin.h +292 -0
  83. package/include/avx512bitalgintrin.h +75 -0
  84. package/include/avx512bwintrin.h +1895 -0
  85. package/include/avx512cdintrin.h +112 -0
  86. package/include/avx512dqintrin.h +1350 -0
  87. package/include/avx512fintrin.h +9378 -0
  88. package/include/avx512fp16intrin.h +3355 -0
  89. package/include/avx512ifmaintrin.h +68 -0
  90. package/include/avx512ifmavlintrin.h +138 -0
  91. package/include/avx512vbmi2intrin.h +368 -0
  92. package/include/avx512vbmiintrin.h +98 -0
  93. package/include/avx512vbmivlintrin.h +179 -0
  94. package/include/avx512vlbf16intrin.h +527 -0
  95. package/include/avx512vlbitalgintrin.h +135 -0
  96. package/include/avx512vlbwintrin.h +3064 -0
  97. package/include/avx512vlcdintrin.h +202 -0
  98. package/include/avx512vldqintrin.h +1156 -0
  99. package/include/avx512vlfp16intrin.h +2090 -0
  100. package/include/avx512vlintrin.h +8083 -0
  101. package/include/avx512vlvbmi2intrin.h +710 -0
  102. package/include/avx512vlvnniintrin.h +313 -0
  103. package/include/avx512vlvp2intersectintrin.h +123 -0
  104. package/include/avx512vnniintrin.h +116 -0
  105. package/include/avx512vp2intersectintrin.h +77 -0
  106. package/include/avx512vpopcntdqintrin.h +62 -0
  107. package/include/avx512vpopcntdqvlintrin.h +105 -0
  108. package/include/avxifmaintrin.h +193 -0
  109. package/include/avxintrin.h +5064 -0
  110. package/include/avxneconvertintrin.h +484 -0
  111. package/include/avxvnniint16intrin.h +451 -0
  112. package/include/avxvnniint8intrin.h +454 -0
  113. package/include/avxvnniintrin.h +233 -0
  114. package/include/bmi2intrin.h +253 -0
  115. package/include/bmiintrin.h +604 -0
  116. package/include/builtins.h +19 -0
  117. package/include/cet.h +66 -0
  118. package/include/cetintrin.h +115 -0
  119. package/include/cldemoteintrin.h +36 -0
  120. package/include/clflushoptintrin.h +36 -0
  121. package/include/clwbintrin.h +38 -0
  122. package/include/clzerointrin.h +38 -0
  123. package/include/cmpccxaddintrin.h +70 -0
  124. package/include/cpuid.h +451 -0
  125. package/include/crc32intrin.h +100 -0
  126. package/include/cuda_wrappers/__utility/declval.h +28 -0
  127. package/include/cuda_wrappers/algorithm +116 -0
  128. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  129. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  130. package/include/cuda_wrappers/bits/c++config.h +61 -0
  131. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  132. package/include/cuda_wrappers/cmath +44 -0
  133. package/include/cuda_wrappers/complex +90 -0
  134. package/include/cuda_wrappers/new +108 -0
  135. package/include/emmintrin.h +4940 -0
  136. package/include/enqcmdintrin.h +63 -0
  137. package/include/f16cintrin.h +176 -0
  138. package/include/float.h +48 -0
  139. package/include/fma4intrin.h +220 -0
  140. package/include/fmaintrin.h +826 -0
  141. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  142. package/include/fxsrintrin.h +91 -0
  143. package/include/gfniintrin.h +238 -0
  144. package/include/gpuintrin.h +330 -0
  145. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  146. package/include/hexagon_protos.h +8439 -0
  147. package/include/hexagon_types.h +2628 -0
  148. package/include/hresetintrin.h +49 -0
  149. package/include/htmintrin.h +212 -0
  150. package/include/htmxlintrin.h +345 -0
  151. package/include/hvx_hexagon_protos.h +5399 -0
  152. package/include/ia32intrin.h +863 -0
  153. package/include/immintrin.h +595 -0
  154. package/include/intrin.h +491 -0
  155. package/include/intrin0.h +256 -0
  156. package/include/inttypes.h +101 -0
  157. package/include/invpcidintrin.h +23 -0
  158. package/include/iso646.h +31 -0
  159. package/include/keylockerintrin.h +518 -0
  160. package/include/larchintrin.h +260 -0
  161. package/include/lasxintrin.h +3999 -0
  162. package/include/limits.h +133 -0
  163. package/include/llvm_libc_wrappers/assert.h +32 -0
  164. package/include/llvm_libc_wrappers/ctype.h +28 -0
  165. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  166. package/include/llvm_libc_wrappers/stdio.h +52 -0
  167. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  168. package/include/llvm_libc_wrappers/string.h +28 -0
  169. package/include/llvm_libc_wrappers/time.h +28 -0
  170. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  171. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  172. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  173. package/include/lsxintrin.h +3752 -0
  174. package/include/lwpintrin.h +136 -0
  175. package/include/lzcntintrin.h +109 -0
  176. package/include/mm3dnow.h +22 -0
  177. package/include/mm_malloc.h +67 -0
  178. package/include/mmintrin.h +1541 -0
  179. package/include/module.modulemap +360 -0
  180. package/include/movdirintrin.h +49 -0
  181. package/include/movrs_avx10_2_512intrin.h +98 -0
  182. package/include/movrs_avx10_2intrin.h +174 -0
  183. package/include/movrsintrin.h +59 -0
  184. package/include/msa.h +573 -0
  185. package/include/mwaitxintrin.h +62 -0
  186. package/include/nmmintrin.h +20 -0
  187. package/include/nvptxintrin.h +219 -0
  188. package/include/opencl-c-base.h +758 -0
  189. package/include/opencl-c.h +18676 -0
  190. package/include/openmp_wrappers/__clang_openmp_device_functions.h +104 -0
  191. package/include/openmp_wrappers/cmath +132 -0
  192. package/include/openmp_wrappers/complex +55 -0
  193. package/include/openmp_wrappers/complex.h +35 -0
  194. package/include/openmp_wrappers/complex_cmath.h +393 -0
  195. package/include/openmp_wrappers/math.h +61 -0
  196. package/include/openmp_wrappers/new +48 -0
  197. package/include/pconfigintrin.h +40 -0
  198. package/include/pkuintrin.h +34 -0
  199. package/include/pmmintrin.h +302 -0
  200. package/include/popcntintrin.h +59 -0
  201. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  202. package/include/ppc_wrappers/bmiintrin.h +165 -0
  203. package/include/ppc_wrappers/emmintrin.h +2269 -0
  204. package/include/ppc_wrappers/immintrin.h +27 -0
  205. package/include/ppc_wrappers/mm_malloc.h +45 -0
  206. package/include/ppc_wrappers/mmintrin.h +1453 -0
  207. package/include/ppc_wrappers/nmmintrin.h +26 -0
  208. package/include/ppc_wrappers/pmmintrin.h +145 -0
  209. package/include/ppc_wrappers/smmintrin.h +683 -0
  210. package/include/ppc_wrappers/tmmintrin.h +453 -0
  211. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  212. package/include/ppc_wrappers/x86intrin.h +28 -0
  213. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  214. package/include/prfchiintrin.h +61 -0
  215. package/include/prfchwintrin.h +57 -0
  216. package/include/profile/InstrProfData.inc +1001 -0
  217. package/include/profile/instr_prof_interface.h +88 -0
  218. package/include/ptrauth.h +407 -0
  219. package/include/ptwriteintrin.h +37 -0
  220. package/include/raointintrin.h +203 -0
  221. package/include/rdpruintrin.h +57 -0
  222. package/include/rdseedintrin.h +105 -0
  223. package/include/riscv_bitmanip.h +195 -0
  224. package/include/riscv_corev_alu.h +128 -0
  225. package/include/riscv_crypto.h +170 -0
  226. package/include/riscv_mips.h +34 -0
  227. package/include/riscv_nds.h +89 -0
  228. package/include/riscv_ntlh.h +26 -0
  229. package/include/riscv_vector.h +422 -0
  230. package/include/rtmintrin.h +45 -0
  231. package/include/s390intrin.h +25 -0
  232. package/include/sanitizer/allocator_interface.h +106 -0
  233. package/include/sanitizer/asan_interface.h +348 -0
  234. package/include/sanitizer/common_interface_defs.h +544 -0
  235. package/include/sanitizer/coverage_interface.h +36 -0
  236. package/include/sanitizer/dfsan_interface.h +220 -0
  237. package/include/sanitizer/hwasan_interface.h +109 -0
  238. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  239. package/include/sanitizer/lsan_interface.h +89 -0
  240. package/include/sanitizer/msan_interface.h +135 -0
  241. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  242. package/include/sanitizer/rtsan_interface.h +75 -0
  243. package/include/sanitizer/scudo_interface.h +38 -0
  244. package/include/sanitizer/tsan_interface.h +316 -0
  245. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  246. package/include/sanitizer/ubsan_interface.h +34 -0
  247. package/include/serializeintrin.h +30 -0
  248. package/include/sgxintrin.h +60 -0
  249. package/include/sha512intrin.h +200 -0
  250. package/include/shaintrin.h +190 -0
  251. package/include/sifive_vector.h +174 -0
  252. package/include/sm3intrin.h +238 -0
  253. package/include/sm4evexintrin.h +32 -0
  254. package/include/sm4intrin.h +269 -0
  255. package/include/smmintrin.h +2352 -0
  256. package/include/spirvintrin.h +194 -0
  257. package/include/stdalign.h +24 -0
  258. package/include/stdarg.h +75 -0
  259. package/include/stdatomic.h +204 -0
  260. package/include/stdbool.h +39 -0
  261. package/include/stdckdint.h +42 -0
  262. package/include/stdcountof.h +15 -0
  263. package/include/stddef.h +139 -0
  264. package/include/stddefer.h +19 -0
  265. package/include/stdint.h +844 -0
  266. package/include/stdnoreturn.h +35 -0
  267. package/include/tbmintrin.h +128 -0
  268. package/include/tgmath.h +1368 -0
  269. package/include/tmmintrin.h +779 -0
  270. package/include/tsxldtrkintrin.h +56 -0
  271. package/include/uintrintrin.h +157 -0
  272. package/include/unwind.h +332 -0
  273. package/include/usermsrintrin.h +51 -0
  274. package/include/vadefs.h +51 -0
  275. package/include/vaesintrin.h +86 -0
  276. package/include/varargs.h +16 -0
  277. package/include/vecintrin.h +12868 -0
  278. package/include/velintrin.h +71 -0
  279. package/include/velintrin_approx.h +120 -0
  280. package/include/velintrin_gen.h +1257 -0
  281. package/include/vpclmulqdqintrin.h +30 -0
  282. package/include/waitpkgintrin.h +42 -0
  283. package/include/wasm_simd128.h +2143 -0
  284. package/include/wbnoinvdintrin.h +24 -0
  285. package/include/wmmintrin.h +23 -0
  286. package/include/x86gprintrin.h +49 -0
  287. package/include/x86intrin.h +35 -0
  288. package/include/xmmintrin.h +3175 -0
  289. package/include/xopintrin.h +780 -0
  290. package/include/xsavecintrin.h +84 -0
  291. package/include/xsaveintrin.h +63 -0
  292. package/include/xsaveoptintrin.h +34 -0
  293. package/include/xsavesintrin.h +44 -0
  294. package/include/xtestintrin.h +27 -0
  295. package/include/yvals_core.h +25 -0
  296. package/include/zos_wrappers/builtins.h +18 -0
  297. package/index.js +5 -0
  298. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  299. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  300. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  301. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  302. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  303. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  304. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  305. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  306. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  307. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  308. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  309. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  310. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  311. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  312. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  313. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  314. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  315. package/lib/darwin/libclang_rt.ios.a +0 -0
  316. package/lib/darwin/libclang_rt.iossim.a +0 -0
  317. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  318. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  319. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  320. package/lib/darwin/libclang_rt.osx.a +0 -0
  321. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  322. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  323. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  324. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  327. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  329. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  330. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  331. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  332. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  333. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  334. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  335. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  336. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  337. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  338. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  339. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  342. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  343. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  344. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  345. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  348. package/package.json +40 -1
  349. package/share/asan_ignorelist.txt +14 -0
  350. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,544 @@
1
+ //===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ //
9
+ // Common part of the public sanitizer interface.
10
+ //===----------------------------------------------------------------------===//
11
+
12
+ #ifndef SANITIZER_COMMON_INTERFACE_DEFS_H
13
+ #define SANITIZER_COMMON_INTERFACE_DEFS_H
14
+
15
+ #include <stddef.h>
16
+ #include <stdint.h>
17
+
18
+ // Windows allows a user to set their default calling convention, but we always
19
+ // use __cdecl
20
+ #ifdef _WIN32
21
+ #define SANITIZER_CDECL __cdecl
22
+ #else
23
+ #define SANITIZER_CDECL
24
+ #endif
25
+
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+ // Arguments for __sanitizer_sandbox_on_notify() below.
30
+ typedef struct {
31
+ // Enable sandbox support in sanitizer coverage.
32
+ int coverage_sandboxed;
33
+ // File descriptor to write coverage data to. If -1 is passed, a file will
34
+ // be pre-opened by __sanitizer_sandbox_on_notify(). This field has no
35
+ // effect if coverage_sandboxed == 0.
36
+ intptr_t coverage_fd;
37
+ // If non-zero, split the coverage data into well-formed blocks. This is
38
+ // useful when coverage_fd is a socket descriptor. Each block will contain
39
+ // a header, allowing data from multiple processes to be sent over the same
40
+ // socket.
41
+ unsigned int coverage_max_block_size;
42
+ } __sanitizer_sandbox_arguments;
43
+
44
+ // Tell the tools to write their reports to "path.<pid>" instead of stderr.
45
+ void SANITIZER_CDECL __sanitizer_set_report_path(const char *path);
46
+ // Tell the tools to write their reports to the provided file descriptor
47
+ // (casted to void *).
48
+ void SANITIZER_CDECL __sanitizer_set_report_fd(void *fd);
49
+ // Get the current full report file path, if a path was specified by
50
+ // an earlier call to __sanitizer_set_report_path. Returns null otherwise.
51
+ const char *SANITIZER_CDECL __sanitizer_get_report_path();
52
+
53
+ // Notify the tools that the sandbox is going to be turned on. The reserved
54
+ // parameter will be used in the future to hold a structure with functions
55
+ // that the tools may call to bypass the sandbox.
56
+ void SANITIZER_CDECL
57
+ __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args);
58
+
59
+ // This function is called by the tool when it has just finished reporting
60
+ // an error. 'error_summary' is a one-line string that summarizes
61
+ // the error message. This function can be overridden by the client.
62
+ void SANITIZER_CDECL
63
+ __sanitizer_report_error_summary(const char *error_summary);
64
+
65
+ // Some of the sanitizers (for example ASan/TSan) could miss bugs that happen
66
+ // in unaligned loads/stores. To find such bugs reliably, you need to replace
67
+ // plain unaligned loads/stores with these calls.
68
+
69
+ /// Loads a 16-bit unaligned value.
70
+ //
71
+ /// \param p Pointer to unaligned memory.
72
+ ///
73
+ /// \returns Loaded value.
74
+ uint16_t SANITIZER_CDECL __sanitizer_unaligned_load16(const void *p);
75
+
76
+ /// Loads a 32-bit unaligned value.
77
+ ///
78
+ /// \param p Pointer to unaligned memory.
79
+ ///
80
+ /// \returns Loaded value.
81
+ uint32_t SANITIZER_CDECL __sanitizer_unaligned_load32(const void *p);
82
+
83
+ /// Loads a 64-bit unaligned value.
84
+ ///
85
+ /// \param p Pointer to unaligned memory.
86
+ ///
87
+ /// \returns Loaded value.
88
+ uint64_t SANITIZER_CDECL __sanitizer_unaligned_load64(const void *p);
89
+
90
+ /// Stores a 16-bit unaligned value.
91
+ ///
92
+ /// \param p Pointer to unaligned memory.
93
+ /// \param x 16-bit value to store.
94
+ void SANITIZER_CDECL __sanitizer_unaligned_store16(void *p, uint16_t x);
95
+
96
+ /// Stores a 32-bit unaligned value.
97
+ ///
98
+ /// \param p Pointer to unaligned memory.
99
+ /// \param x 32-bit value to store.
100
+ void SANITIZER_CDECL __sanitizer_unaligned_store32(void *p, uint32_t x);
101
+
102
+ /// Stores a 64-bit unaligned value.
103
+ ///
104
+ /// \param p Pointer to unaligned memory.
105
+ /// \param x 64-bit value to store.
106
+ void SANITIZER_CDECL __sanitizer_unaligned_store64(void *p, uint64_t x);
107
+
108
+ // Returns 1 on the first call, then returns 0 thereafter. Called by the tool
109
+ // to ensure only one report is printed when multiple errors occur
110
+ // simultaneously.
111
+ int SANITIZER_CDECL __sanitizer_acquire_crash_state();
112
+
113
+ /// Annotates the current state of a contiguous container, such as
114
+ /// <c>std::vector</c>, <c>std::string</c>, or similar.
115
+ ///
116
+ /// A contiguous container is a container that keeps all of its elements
117
+ /// in a contiguous region of memory. The container owns the region of memory
118
+ /// <c>[beg, end)</c>; the memory <c>[beg, mid)</c> is used to store the
119
+ /// current elements, and the memory <c>[mid, end)</c> is reserved for future
120
+ /// elements (<c>beg <= mid <= end</c>). For example, in
121
+ /// <c>std::vector<> v</c>:
122
+ ///
123
+ /// \code
124
+ /// beg = &v[0];
125
+ /// end = beg + v.capacity() * sizeof(v[0]);
126
+ /// mid = beg + v.size() * sizeof(v[0]);
127
+ /// \endcode
128
+ ///
129
+ /// This annotation tells the Sanitizer tool about the current state of the
130
+ /// container so that the tool can report errors when memory from
131
+ /// <c>[mid, end)</c> is accessed. Insert this annotation into methods like
132
+ /// <c>push_back()</c> or <c>pop_back()</c>. Supply the old and new values of
133
+ /// <c>mid</c>(<c><i>old_mid</i></c> and <c><i>new_mid</i></c>). In the initial
134
+ /// state <c>mid == end</c>, so that should be the final state when the
135
+ /// container is destroyed or when the container reallocates the storage.
136
+ ///
137
+ /// For ASan, <c><i>beg</i></c> no longer needs to be 8-aligned,
138
+ /// first and last granule may be shared with other objects
139
+ /// and therefore the function can be used for any allocator.
140
+ ///
141
+ /// The following example shows how to use the function:
142
+ ///
143
+ /// \code
144
+ /// int32_t x[3]; // 12 bytes
145
+ /// char *beg = (char*)&x[0];
146
+ /// char *end = beg + 12;
147
+ /// __sanitizer_annotate_contiguous_container(beg, end, beg, end);
148
+ /// \endcode
149
+ ///
150
+ /// \note Use this function with caution and do not use for anything other
151
+ /// than vector-like classes.
152
+ /// \note Unaligned <c><i>beg</i></c> or <c><i>end</i></c> may miss bugs in
153
+ /// these granules.
154
+ ///
155
+ /// \param beg Beginning of memory region.
156
+ /// \param end End of memory region.
157
+ /// \param old_mid Old middle of memory region.
158
+ /// \param new_mid New middle of memory region.
159
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
160
+ __attribute__((__internal_linkage__)) inline void SANITIZER_CDECL
161
+ __sanitizer_annotate_contiguous_container(const void *beg, const void *end,
162
+ const void *old_mid,
163
+ const void *new_mid) {}
164
+ #else
165
+ void SANITIZER_CDECL __sanitizer_annotate_contiguous_container(
166
+ const void *beg, const void *end, const void *old_mid, const void *new_mid);
167
+ #endif
168
+
169
+ /// Similar to <c>__sanitizer_annotate_contiguous_container</c>.
170
+ ///
171
+ /// Annotates the current state of a contiguous container memory,
172
+ /// such as <c>std::deque</c>'s single chunk, when the boundries are moved.
173
+ ///
174
+ /// A contiguous chunk is a chunk that keeps all of its elements
175
+ /// in a contiguous region of memory. The container owns the region of memory
176
+ /// <c>[storage_beg, storage_end)</c>; the memory <c>[container_beg,
177
+ /// container_end)</c> is used to store the current elements, and the memory
178
+ /// <c>[storage_beg, container_beg), [container_end, storage_end)</c> is
179
+ /// reserved for future elements (<c>storage_beg <= container_beg <=
180
+ /// container_end <= storage_end</c>). For example, in <c> std::deque </c>:
181
+ /// - chunk with a frist deques element will have container_beg equal to address
182
+ /// of the first element.
183
+ /// - in every next chunk with elements, true is <c> container_beg ==
184
+ /// storage_beg </c>.
185
+ ///
186
+ /// Argument requirements:
187
+ /// During unpoisoning memory of empty container (before first element is
188
+ /// added):
189
+ /// - old_container_beg_p == old_container_end_p
190
+ /// During poisoning after last element was removed:
191
+ /// - new_container_beg_p == new_container_end_p
192
+ /// \param storage_beg Beginning of memory region.
193
+ /// \param storage_end End of memory region.
194
+ /// \param old_container_beg Old beginning of used region.
195
+ /// \param old_container_end End of used region.
196
+ /// \param new_container_beg New beginning of used region.
197
+ /// \param new_container_end New end of used region.
198
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
199
+ __attribute__((__internal_linkage__)) inline void
200
+ SANITIZER_CDECL __sanitizer_annotate_double_ended_contiguous_container(
201
+ const void *storage_beg, const void *storage_end,
202
+ const void *old_container_beg, const void *old_container_end,
203
+ const void *new_container_beg, const void *new_container_end) {}
204
+ #else
205
+ void SANITIZER_CDECL __sanitizer_annotate_double_ended_contiguous_container(
206
+ const void *storage_beg, const void *storage_end,
207
+ const void *old_container_beg, const void *old_container_end,
208
+ const void *new_container_beg, const void *new_container_end);
209
+ #endif
210
+
211
+ /// Copies memory annotations from a source storage region to a destination
212
+ /// storage region. After the operation, the destination region has the same
213
+ /// memory annotations as the source region, as long as sanitizer limitations
214
+ /// allow it (more bytes may be unpoisoned than in the source region, resulting
215
+ /// in more false negatives, but never false positives). If the source and
216
+ /// destination regions overlap, only the minimal required changes are made to
217
+ /// preserve the correct annotations. Old storage bytes that are not in the new
218
+ /// storage should have the same annotations, as long as sanitizer limitations
219
+ /// allow it.
220
+ ///
221
+ /// This function is primarily designed to be used when moving trivially
222
+ /// relocatable objects that may have poisoned memory, making direct copying
223
+ /// problematic under sanitizer. However, this function does not move memory
224
+ /// content itself, only annotations.
225
+ ///
226
+ /// A contiguous container is a container that keeps all of its elements in a
227
+ /// contiguous region of memory. The container owns the region of memory
228
+ /// <c>[src_begin, src_end)</c> and <c>[dst_begin, dst_end)</c>. The memory
229
+ /// within these regions may be alternately poisoned and non-poisoned, with
230
+ /// possibly smaller poisoned and unpoisoned regions.
231
+ ///
232
+ /// If this function fully poisons a granule, it is marked as "container
233
+ /// overflow".
234
+ ///
235
+ /// Argument requirements: The destination container must have the same size as
236
+ /// the source container, which is inferred from the beginning and end of the
237
+ /// source region. Addresses may be granule-unaligned, but this may affect
238
+ /// performance.
239
+ ///
240
+ /// \param src_begin Begin of the source container region.
241
+ /// \param src_end End of the source container region.
242
+ /// \param dst_begin Begin of the destination container region.
243
+ /// \param dst_end End of the destination container region.
244
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
245
+ __attribute__((__internal_linkage__)) inline void SANITIZER_CDECL
246
+ __sanitizer_copy_contiguous_container_annotations(const void *src_begin,
247
+ const void *src_end,
248
+ const void *dst_begin,
249
+ const void *dst_end) {}
250
+ #else
251
+ void SANITIZER_CDECL __sanitizer_copy_contiguous_container_annotations(
252
+ const void *src_begin, const void *src_end, const void *dst_begin,
253
+ const void *dst_end);
254
+ #endif
255
+
256
+ /// Returns true if the contiguous container <c>[beg, end)</c> is properly
257
+ /// poisoned.
258
+ ///
259
+ /// Proper poisoning could occur, for example, with
260
+ /// <c>__sanitizer_annotate_contiguous_container</c>), that is, if
261
+ /// <c>[beg, mid)</c> is addressable and <c>[mid, end)</c> is unaddressable.
262
+ /// Full verification requires O (<c>end - beg</c>) time; this function tries
263
+ /// to avoid such complexity by touching only parts of the container around
264
+ /// <c><i>beg</i></c>, <c><i>mid</i></c>, and <c><i>end</i></c>.
265
+ ///
266
+ /// \param beg Beginning of memory region.
267
+ /// \param mid Middle of memory region.
268
+ /// \param end Old end of memory region.
269
+ ///
270
+ /// \returns True if the contiguous container <c>[beg, end)</c> is properly
271
+ /// poisoned.
272
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
273
+ __attribute__((__internal_linkage__)) inline int
274
+ SANITIZER_CDECL __sanitizer_verify_contiguous_container(const void *beg,
275
+ const void *mid,
276
+ const void *end) {}
277
+ #else
278
+ int SANITIZER_CDECL __sanitizer_verify_contiguous_container(const void *beg,
279
+ const void *mid,
280
+ const void *end);
281
+ #endif
282
+
283
+ /// Returns true if the double ended contiguous
284
+ /// container <c>[storage_beg, storage_end)</c> is properly poisoned.
285
+ ///
286
+ /// Proper poisoning could occur, for example, with
287
+ /// <c>__sanitizer_annotate_double_ended_contiguous_container</c>), that is, if
288
+ /// <c>[storage_beg, container_beg)</c> is not addressable, <c>[container_beg,
289
+ /// container_end)</c> is addressable and <c>[container_end, end)</c> is
290
+ /// unaddressable. Full verification requires O (<c>storage_end -
291
+ /// storage_beg</c>) time; this function tries to avoid such complexity by
292
+ /// touching only parts of the container around <c><i>storage_beg</i></c>,
293
+ /// <c><i>container_beg</i></c>, <c><i>container_end</i></c>, and
294
+ /// <c><i>storage_end</i></c>.
295
+ ///
296
+ /// \param storage_beg Beginning of memory region.
297
+ /// \param container_beg Beginning of used region.
298
+ /// \param container_end End of used region.
299
+ /// \param storage_end End of memory region.
300
+ ///
301
+ /// \returns True if the double-ended contiguous container <c>[storage_beg,
302
+ /// container_beg, container_end, end)</c> is properly poisoned - only
303
+ /// [container_beg; container_end) is addressable.
304
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
305
+ __attribute__((__internal_linkage__)) inline int SANITIZER_CDECL
306
+ __sanitizer_verify_double_ended_contiguous_container(const void *storage_beg,
307
+ const void *container_beg,
308
+ const void *container_end,
309
+ const void *storage_end) {}
310
+ #else
311
+ int SANITIZER_CDECL __sanitizer_verify_double_ended_contiguous_container(
312
+ const void *storage_beg, const void *container_beg,
313
+ const void *container_end, const void *storage_end);
314
+ #endif
315
+
316
+ /// Similar to <c>__sanitizer_verify_contiguous_container()</c> but also
317
+ /// returns the address of the first improperly poisoned byte.
318
+ ///
319
+ /// Returns NULL if the area is poisoned properly.
320
+ ///
321
+ /// \param beg Beginning of memory region.
322
+ /// \param mid Middle of memory region.
323
+ /// \param end Old end of memory region.
324
+ ///
325
+ /// \returns The bad address or NULL.
326
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
327
+ __attribute__((__internal_linkage__)) inline const void *SANITIZER_CDECL
328
+ __sanitizer_contiguous_container_find_bad_address(const void *beg,
329
+ const void *mid,
330
+ const void *end) {}
331
+ #else
332
+ const void *SANITIZER_CDECL __sanitizer_contiguous_container_find_bad_address(
333
+ const void *beg, const void *mid, const void *end);
334
+ #endif
335
+
336
+ /// returns the address of the first improperly poisoned byte.
337
+ ///
338
+ /// Returns NULL if the area is poisoned properly.
339
+ ///
340
+ /// \param storage_beg Beginning of memory region.
341
+ /// \param container_beg Beginning of used region.
342
+ /// \param container_end End of used region.
343
+ /// \param storage_end End of memory region.
344
+ ///
345
+ /// \returns The bad address or NULL.
346
+ #ifdef __SANITIZER_DISABLE_CONTAINER_OVERFLOW__
347
+ __attribute__((__internal_linkage__)) inline const void *SANITIZER_CDECL
348
+ __sanitizer_double_ended_contiguous_container_find_bad_address(
349
+ const void *storage_beg, const void *container_beg,
350
+ const void *container_end, const void *storage_end) {}
351
+ #else
352
+ const void *SANITIZER_CDECL
353
+ __sanitizer_double_ended_contiguous_container_find_bad_address(
354
+ const void *storage_beg, const void *container_beg,
355
+ const void *container_end, const void *storage_end);
356
+ #endif
357
+
358
+ /// Prints the stack trace leading to this call (useful for calling from the
359
+ /// debugger).
360
+ void SANITIZER_CDECL __sanitizer_print_stack_trace(void);
361
+
362
+ // Symbolizes the supplied 'pc' using the format string 'fmt'.
363
+ // Outputs at most 'out_buf_size' bytes into 'out_buf'.
364
+ // If 'out_buf' is not empty then output is zero or more non empty C strings
365
+ // followed by single empty C string. Multiple strings can be returned if PC
366
+ // corresponds to inlined function. Inlined frames are printed in the order
367
+ // from "most-inlined" to the "least-inlined", so the last frame should be the
368
+ // not inlined function.
369
+ // Inlined frames can be removed with 'symbolize_inline_frames=0'.
370
+ // The format syntax is described in
371
+ // lib/sanitizer_common/sanitizer_stacktrace_printer.h.
372
+ void SANITIZER_CDECL __sanitizer_symbolize_pc(void *pc, const char *fmt,
373
+ char *out_buf,
374
+ size_t out_buf_size);
375
+ // Same as __sanitizer_symbolize_pc, but for data section (i.e. globals).
376
+ void SANITIZER_CDECL __sanitizer_symbolize_global(void *data_ptr,
377
+ const char *fmt,
378
+ char *out_buf,
379
+ size_t out_buf_size);
380
+ // Determine the return address.
381
+ #if !defined(_MSC_VER) || defined(__clang__)
382
+ #define __sanitizer_return_address() \
383
+ __builtin_extract_return_addr(__builtin_return_address(0))
384
+ #else
385
+ void *_ReturnAddress(void);
386
+ #pragma intrinsic(_ReturnAddress)
387
+ #define __sanitizer_return_address() _ReturnAddress()
388
+ #endif
389
+
390
+ /// Sets the callback to be called immediately before death on error.
391
+ ///
392
+ /// Passing 0 will unset the callback.
393
+ ///
394
+ /// \param callback User-provided callback.
395
+ void SANITIZER_CDECL __sanitizer_set_death_callback(void (*callback)(void));
396
+
397
+ // Interceptor hooks.
398
+ // Whenever a libc function interceptor is called, it checks if the
399
+ // corresponding weak hook is defined, and calls it if it is indeed defined.
400
+ // The primary use-case is data-flow-guided fuzzing, where the fuzzer needs
401
+ // to know what is being passed to libc functions (for example memcmp).
402
+ // FIXME: implement more hooks.
403
+
404
+ /// Interceptor hook for <c>memcmp()</c>.
405
+ ///
406
+ /// \param called_pc PC (program counter) address of the original call.
407
+ /// \param s1 Pointer to block of memory.
408
+ /// \param s2 Pointer to block of memory.
409
+ /// \param n Number of bytes to compare.
410
+ /// \param result Value returned by the intercepted function.
411
+ void SANITIZER_CDECL __sanitizer_weak_hook_memcmp(void *called_pc,
412
+ const void *s1,
413
+ const void *s2, size_t n,
414
+ int result);
415
+
416
+ /// Interceptor hook for <c>strncmp()</c>.
417
+ ///
418
+ /// \param called_pc PC (program counter) address of the original call.
419
+ /// \param s1 Pointer to block of memory.
420
+ /// \param s2 Pointer to block of memory.
421
+ /// \param n Number of bytes to compare.
422
+ /// \param result Value returned by the intercepted function.
423
+ void SANITIZER_CDECL __sanitizer_weak_hook_strncmp(void *called_pc,
424
+ const char *s1,
425
+ const char *s2, size_t n,
426
+ int result);
427
+
428
+ /// Interceptor hook for <c>strncasecmp()</c>.
429
+ ///
430
+ /// \param called_pc PC (program counter) address of the original call.
431
+ /// \param s1 Pointer to block of memory.
432
+ /// \param s2 Pointer to block of memory.
433
+ /// \param n Number of bytes to compare.
434
+ /// \param result Value returned by the intercepted function.
435
+ void SANITIZER_CDECL __sanitizer_weak_hook_strncasecmp(void *called_pc,
436
+ const char *s1,
437
+ const char *s2, size_t n,
438
+ int result);
439
+
440
+ /// Interceptor hook for <c>strcmp()</c>.
441
+ ///
442
+ /// \param called_pc PC (program counter) address of the original call.
443
+ /// \param s1 Pointer to block of memory.
444
+ /// \param s2 Pointer to block of memory.
445
+ /// \param result Value returned by the intercepted function.
446
+ void SANITIZER_CDECL __sanitizer_weak_hook_strcmp(void *called_pc,
447
+ const char *s1,
448
+ const char *s2, int result);
449
+
450
+ /// Interceptor hook for <c>strcasecmp()</c>.
451
+ ///
452
+ /// \param called_pc PC (program counter) address of the original call.
453
+ /// \param s1 Pointer to block of memory.
454
+ /// \param s2 Pointer to block of memory.
455
+ /// \param result Value returned by the intercepted function.
456
+ void SANITIZER_CDECL __sanitizer_weak_hook_strcasecmp(void *called_pc,
457
+ const char *s1,
458
+ const char *s2,
459
+ int result);
460
+
461
+ /// Interceptor hook for <c>strstr()</c>.
462
+ ///
463
+ /// \param called_pc PC (program counter) address of the original call.
464
+ /// \param s1 Pointer to block of memory.
465
+ /// \param s2 Pointer to block of memory.
466
+ /// \param result Value returned by the intercepted function.
467
+ void SANITIZER_CDECL __sanitizer_weak_hook_strstr(void *called_pc,
468
+ const char *s1,
469
+ const char *s2, char *result);
470
+
471
+ void SANITIZER_CDECL __sanitizer_weak_hook_strcasestr(void *called_pc,
472
+ const char *s1,
473
+ const char *s2,
474
+ char *result);
475
+
476
+ void SANITIZER_CDECL __sanitizer_weak_hook_memmem(void *called_pc,
477
+ const void *s1, size_t len1,
478
+ const void *s2, size_t len2,
479
+ void *result);
480
+
481
+ // Prints stack traces for all live heap allocations ordered by total
482
+ // allocation size until top_percent of total live heap is shown. top_percent
483
+ // should be between 1 and 100. At most max_number_of_contexts contexts
484
+ // (stack traces) are printed.
485
+ // Experimental feature currently available only with ASan on Linux/x86_64.
486
+ void SANITIZER_CDECL __sanitizer_print_memory_profile(
487
+ size_t top_percent, size_t max_number_of_contexts);
488
+
489
+ /// Notify ASan that a fiber switch has started (required only if implementing
490
+ /// your own fiber library).
491
+ ///
492
+ /// Before switching to a different stack, you must call
493
+ /// <c>__sanitizer_start_switch_fiber()</c> with a pointer to the bottom of the
494
+ /// destination stack and with its size. When code starts running on the new
495
+ /// stack, it must call <c>__sanitizer_finish_switch_fiber()</c> to finalize
496
+ /// the switch. The <c>__sanitizer_start_switch_fiber()</c> function takes a
497
+ /// <c>void**</c> pointer argument to store the current fake stack if there is
498
+ /// one (it is necessary when the runtime option
499
+ /// <c>detect_stack_use_after_return</c> is enabled).
500
+ ///
501
+ /// When restoring a stack, this <c>void**</c> pointer must be given to the
502
+ /// <c>__sanitizer_finish_switch_fiber()</c> function. In most cases, this
503
+ /// pointer can be stored on the stack immediately before switching. When
504
+ /// leaving a fiber definitely, NULL must be passed as the first argument to
505
+ /// the <c>__sanitizer_start_switch_fiber()</c> function so that the fake stack
506
+ /// is destroyed. If your program does not need stack use-after-return
507
+ /// detection, you can always pass NULL to these two functions.
508
+ ///
509
+ /// \note The fake stack mechanism is disabled during fiber switch, so if a
510
+ /// signal callback runs during the switch, it will not benefit from stack
511
+ /// use-after-return detection.
512
+ ///
513
+ /// \param[out] fake_stack_save Fake stack save location.
514
+ /// \param bottom Bottom address of stack.
515
+ /// \param size Size of stack in bytes.
516
+ void SANITIZER_CDECL __sanitizer_start_switch_fiber(void **fake_stack_save,
517
+ const void *bottom,
518
+ size_t size);
519
+
520
+ /// Notify ASan that a fiber switch has completed (required only if
521
+ /// implementing your own fiber library).
522
+ ///
523
+ /// When code starts running on the new stack, it must call
524
+ /// <c>__sanitizer_finish_switch_fiber()</c> to finalize
525
+ /// the switch. For usage details, see the description of
526
+ /// <c>__sanitizer_start_switch_fiber()</c>.
527
+ ///
528
+ /// \param fake_stack_save Fake stack save location.
529
+ /// \param[out] bottom_old Bottom address of old stack.
530
+ /// \param[out] size_old Size of old stack in bytes.
531
+ void SANITIZER_CDECL __sanitizer_finish_switch_fiber(void *fake_stack_save,
532
+ const void **bottom_old,
533
+ size_t *size_old);
534
+
535
+ // Get full module name and calculate pc offset within it.
536
+ // Returns 1 if pc belongs to some module, 0 if module was not found.
537
+ int SANITIZER_CDECL __sanitizer_get_module_and_offset_for_pc(
538
+ void *pc, char *module_path, size_t module_path_len, void **pc_offset);
539
+
540
+ #ifdef __cplusplus
541
+ } // extern "C"
542
+ #endif
543
+
544
+ #endif // SANITIZER_COMMON_INTERFACE_DEFS_H
@@ -0,0 +1,36 @@
1
+ //===-- sanitizer/coverage_interface.h --------------------------*- C++ -*-===//
2
+ //
3
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ //
9
+ // Public interface for sanitizer coverage.
10
+ //===----------------------------------------------------------------------===//
11
+
12
+ #ifndef SANITIZER_COVERAG_INTERFACE_H
13
+ #define SANITIZER_COVERAG_INTERFACE_H
14
+
15
+ #include <sanitizer/common_interface_defs.h>
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // Record and dump coverage info.
22
+ void SANITIZER_CDECL __sanitizer_cov_dump(void);
23
+
24
+ // Clear collected coverage info.
25
+ void SANITIZER_CDECL __sanitizer_cov_reset(void);
26
+
27
+ // Dump collected coverage info. Sorts pcs by module into individual .sancov
28
+ // files.
29
+ void SANITIZER_CDECL __sanitizer_dump_coverage(const uintptr_t *pcs,
30
+ uintptr_t len);
31
+
32
+ #ifdef __cplusplus
33
+ } // extern "C"
34
+ #endif
35
+
36
+ #endif // SANITIZER_COVERAG_INTERFACE_H