@cpp-linter/clang-tidy-linux-arm64 16.0.3 → 18.1.5

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 (250) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy +2 -2
  3. package/lib/clang/{16 → 18}/include/__clang_cuda_device_functions.h +2 -2
  4. package/lib/clang/{16 → 18}/include/__clang_cuda_intrinsics.h +191 -0
  5. package/lib/clang/{16 → 18}/include/__clang_cuda_libdevice_declares.h +2 -2
  6. package/lib/clang/{16 → 18}/include/__clang_cuda_math.h +3 -3
  7. package/lib/clang/{16 → 18}/include/__clang_cuda_runtime_wrapper.h +2 -2
  8. package/lib/clang/{16 → 18}/include/__clang_hip_cmath.h +1 -1
  9. package/lib/clang/{16 → 18}/include/__clang_hip_libdevice_declares.h +32 -30
  10. package/lib/clang/{16 → 18}/include/__clang_hip_math.h +244 -238
  11. package/lib/clang/{16 → 18}/include/__clang_hip_runtime_wrapper.h +44 -23
  12. package/lib/clang/18/include/__stdarg___gnuc_va_list.h +13 -0
  13. package/lib/clang/18/include/__stdarg___va_copy.h +12 -0
  14. package/lib/clang/18/include/__stdarg_va_arg.h +22 -0
  15. package/lib/clang/18/include/__stdarg_va_copy.h +12 -0
  16. package/lib/clang/18/include/__stdarg_va_list.h +13 -0
  17. package/lib/clang/{16 → 18}/include/__stddef_max_align_t.h +1 -1
  18. package/lib/clang/18/include/__stddef_null.h +29 -0
  19. package/lib/clang/18/include/__stddef_nullptr_t.h +29 -0
  20. package/lib/clang/18/include/__stddef_offsetof.h +17 -0
  21. package/lib/clang/18/include/__stddef_ptrdiff_t.h +20 -0
  22. package/lib/clang/18/include/__stddef_rsize_t.h +20 -0
  23. package/lib/clang/18/include/__stddef_size_t.h +20 -0
  24. package/lib/clang/18/include/__stddef_unreachable.h +21 -0
  25. package/lib/clang/18/include/__stddef_wchar_t.h +28 -0
  26. package/lib/clang/18/include/__stddef_wint_t.h +15 -0
  27. package/lib/clang/18/include/adcintrin.h +160 -0
  28. package/lib/clang/18/include/adxintrin.h +102 -0
  29. package/lib/clang/{16 → 18}/include/altivec.h +167 -136
  30. package/lib/clang/{16 → 18}/include/ammintrin.h +4 -4
  31. package/lib/clang/18/include/amxcomplexintrin.h +169 -0
  32. package/lib/clang/{16 → 18}/include/arm_acle.h +124 -40
  33. package/lib/clang/{16 → 18}/include/arm_neon.h +249 -328
  34. package/lib/clang/18/include/arm_sme.h +2412 -0
  35. package/lib/clang/{16 → 18}/include/arm_sve.h +7454 -364
  36. package/lib/clang/18/include/arm_vector_types.h +345 -0
  37. package/lib/clang/18/include/avx2intrin.h +5284 -0
  38. package/lib/clang/{16 → 18}/include/avx512bf16intrin.h +3 -2
  39. package/lib/clang/{16 → 18}/include/avx512bitalgintrin.h +4 -1
  40. package/lib/clang/{16 → 18}/include/avx512bwintrin.h +28 -38
  41. package/lib/clang/{16 → 18}/include/avx512cdintrin.h +3 -1
  42. package/lib/clang/{16 → 18}/include/avx512dqintrin.h +4 -2
  43. package/lib/clang/{16 → 18}/include/avx512fintrin.h +24 -10
  44. package/lib/clang/{16 → 18}/include/avx512fp16intrin.h +18 -12
  45. package/lib/clang/{16 → 18}/include/avx512ifmaintrin.h +3 -1
  46. package/lib/clang/{16 → 18}/include/avx512ifmavlintrin.h +8 -2
  47. package/lib/clang/{16 → 18}/include/avx512pfintrin.h +0 -5
  48. package/lib/clang/{16 → 18}/include/avx512vbmi2intrin.h +1 -1
  49. package/lib/clang/{16 → 18}/include/avx512vbmiintrin.h +3 -2
  50. package/lib/clang/{16 → 18}/include/avx512vbmivlintrin.h +8 -3
  51. package/lib/clang/{16 → 18}/include/avx512vlbf16intrin.h +8 -6
  52. package/lib/clang/{16 → 18}/include/avx512vlbitalgintrin.h +8 -2
  53. package/lib/clang/{16 → 18}/include/avx512vlbwintrin.h +8 -2
  54. package/lib/clang/{16 → 18}/include/avx512vlcdintrin.h +8 -3
  55. package/lib/clang/{16 → 18}/include/avx512vldqintrin.h +8 -2
  56. package/lib/clang/{16 → 18}/include/avx512vlfp16intrin.h +2 -2
  57. package/lib/clang/{16 → 18}/include/avx512vlintrin.h +8 -2
  58. package/lib/clang/{16 → 18}/include/avx512vlvbmi2intrin.h +8 -2
  59. package/lib/clang/{16 → 18}/include/avx512vlvnniintrin.h +8 -2
  60. package/lib/clang/{16 → 18}/include/avx512vlvp2intersectintrin.h +6 -4
  61. package/lib/clang/{16 → 18}/include/avx512vnniintrin.h +3 -2
  62. package/lib/clang/{16 → 18}/include/avx512vp2intersectintrin.h +3 -2
  63. package/lib/clang/{16 → 18}/include/avx512vpopcntdqintrin.h +3 -1
  64. package/lib/clang/{16 → 18}/include/avx512vpopcntdqvlintrin.h +6 -2
  65. package/lib/clang/{16 → 18}/include/avxintrin.h +29 -12
  66. package/lib/clang/18/include/avxvnniint16intrin.h +473 -0
  67. package/lib/clang/18/include/bmi2intrin.h +255 -0
  68. package/lib/clang/{16 → 18}/include/bmiintrin.h +231 -46
  69. package/lib/clang/{16 → 18}/include/clflushoptintrin.h +9 -0
  70. package/lib/clang/{16 → 18}/include/clzerointrin.h +7 -5
  71. package/lib/clang/18/include/cuda_wrappers/bits/basic_string.h +9 -0
  72. package/lib/clang/18/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  73. package/lib/clang/18/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  74. package/lib/clang/{16 → 18}/include/emmintrin.h +10 -10
  75. package/lib/clang/18/include/fmaintrin.h +780 -0
  76. package/lib/clang/{16 → 18}/include/gfniintrin.h +23 -6
  77. package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +624 -0
  78. package/lib/clang/18/include/ia32intrin.h +863 -0
  79. package/lib/clang/{16 → 18}/include/immintrin.h +182 -11
  80. package/lib/clang/{16 → 18}/include/intrin.h +16 -0
  81. package/lib/clang/{16 → 18}/include/larchintrin.h +13 -1
  82. package/lib/clang/18/include/lasxintrin.h +3884 -0
  83. package/lib/clang/{16 → 18}/include/limits.h +7 -5
  84. package/lib/clang/18/include/llvm_libc_wrappers/assert.h +34 -0
  85. package/lib/clang/18/include/llvm_libc_wrappers/ctype.h +102 -0
  86. package/lib/clang/18/include/llvm_libc_wrappers/inttypes.h +34 -0
  87. package/lib/clang/18/include/llvm_libc_wrappers/stdio.h +80 -0
  88. package/lib/clang/18/include/llvm_libc_wrappers/stdlib.h +45 -0
  89. package/lib/clang/18/include/llvm_libc_wrappers/string.h +96 -0
  90. package/lib/clang/18/include/llvm_libc_wrappers/time.h +34 -0
  91. package/lib/clang/18/include/lsxintrin.h +3750 -0
  92. package/lib/clang/{16 → 18}/include/mmintrin.h +7 -5
  93. package/lib/clang/{16 → 18}/include/module.modulemap +155 -2
  94. package/lib/clang/18/include/mwaitxintrin.h +62 -0
  95. package/lib/clang/{16 → 18}/include/opencl-c-base.h +8 -0
  96. package/lib/clang/{16 → 18}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
  97. package/lib/clang/{16 → 18}/include/openmp_wrappers/cmath +1 -1
  98. package/lib/clang/{16 → 18}/include/openmp_wrappers/new +1 -1
  99. package/lib/clang/{16 → 18}/include/pmmintrin.h +15 -8
  100. package/lib/clang/{16 → 18}/include/ppc_wrappers/emmintrin.h +2 -1
  101. package/lib/clang/18/include/ppc_wrappers/nmmintrin.h +26 -0
  102. package/lib/clang/{16 → 18}/include/ppc_wrappers/smmintrin.h +37 -17
  103. package/lib/clang/18/include/rdseedintrin.h +105 -0
  104. package/lib/clang/18/include/riscv_bitmanip.h +195 -0
  105. package/lib/clang/18/include/riscv_crypto.h +170 -0
  106. package/lib/clang/18/include/riscv_ntlh.h +26 -0
  107. package/lib/clang/18/include/riscv_vector.h +431 -0
  108. package/lib/clang/18/include/sha512intrin.h +200 -0
  109. package/lib/clang/18/include/shaintrin.h +189 -0
  110. package/lib/clang/18/include/sifive_vector.h +16 -0
  111. package/lib/clang/18/include/sm3intrin.h +238 -0
  112. package/lib/clang/18/include/sm4intrin.h +269 -0
  113. package/lib/clang/{16 → 18}/include/smmintrin.h +3 -3
  114. package/lib/clang/{16 → 18}/include/stdalign.h +3 -0
  115. package/lib/clang/18/include/stdarg.h +79 -0
  116. package/lib/clang/{16 → 18}/include/stdatomic.h +7 -2
  117. package/lib/clang/18/include/stdckdint.h +42 -0
  118. package/lib/clang/18/include/stddef.h +123 -0
  119. package/lib/clang/{16 → 18}/include/stdint.h +19 -48
  120. package/lib/clang/{16 → 18}/include/stdnoreturn.h +2 -2
  121. package/lib/clang/{16 → 18}/include/tmmintrin.h +7 -2
  122. package/lib/clang/18/include/usermsrintrin.h +51 -0
  123. package/lib/clang/{16 → 18}/include/vaesintrin.h +4 -2
  124. package/lib/clang/{16 → 18}/include/vecintrin.h +217 -199
  125. package/lib/clang/{16 → 18}/include/wasm_simd128.h +132 -12
  126. package/lib/clang/{16 → 18}/include/x86gprintrin.h +5 -0
  127. package/lib/clang/{16 → 18}/include/xmmintrin.h +9 -5
  128. package/lib/clang/18/include/xsavecintrin.h +84 -0
  129. package/package.json +6 -6
  130. package/lib/clang/16/include/adxintrin.h +0 -72
  131. package/lib/clang/16/include/avx2intrin.h +0 -1148
  132. package/lib/clang/16/include/bmi2intrin.h +0 -81
  133. package/lib/clang/16/include/fmaintrin.h +0 -216
  134. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +0 -223
  135. package/lib/clang/16/include/ia32intrin.h +0 -441
  136. package/lib/clang/16/include/mwaitxintrin.h +0 -33
  137. package/lib/clang/16/include/rdseedintrin.h +0 -42
  138. package/lib/clang/16/include/riscv_vector.h +0 -211
  139. package/lib/clang/16/include/shaintrin.h +0 -61
  140. package/lib/clang/16/include/stdarg.h +0 -51
  141. package/lib/clang/16/include/stddef.h +0 -128
  142. package/lib/clang/16/include/xsavecintrin.h +0 -34
  143. /package/lib/clang/{16 → 18}/include/__clang_cuda_builtin_vars.h +0 -0
  144. /package/lib/clang/{16 → 18}/include/__clang_cuda_cmath.h +0 -0
  145. /package/lib/clang/{16 → 18}/include/__clang_cuda_complex_builtins.h +0 -0
  146. /package/lib/clang/{16 → 18}/include/__clang_cuda_math_forward_declares.h +0 -0
  147. /package/lib/clang/{16 → 18}/include/__clang_cuda_texture_intrinsics.h +0 -0
  148. /package/lib/clang/{16 → 18}/include/__clang_hip_stdlib.h +0 -0
  149. /package/lib/clang/{16 → 18}/include/__wmmintrin_aes.h +0 -0
  150. /package/lib/clang/{16 → 18}/include/__wmmintrin_pclmul.h +0 -0
  151. /package/lib/clang/{16 → 18}/include/amxfp16intrin.h +0 -0
  152. /package/lib/clang/{16 → 18}/include/amxintrin.h +0 -0
  153. /package/lib/clang/{16 → 18}/include/arm64intr.h +0 -0
  154. /package/lib/clang/{16 → 18}/include/arm_bf16.h +0 -0
  155. /package/lib/clang/{16 → 18}/include/arm_cde.h +0 -0
  156. /package/lib/clang/{16 → 18}/include/arm_cmse.h +0 -0
  157. /package/lib/clang/{16 → 18}/include/arm_fp16.h +0 -0
  158. /package/lib/clang/{16 → 18}/include/arm_mve.h +0 -0
  159. /package/lib/clang/{16 → 18}/include/arm_neon_sve_bridge.h +0 -0
  160. /package/lib/clang/{16 → 18}/include/armintr.h +0 -0
  161. /package/lib/clang/{16 → 18}/include/avx512erintrin.h +0 -0
  162. /package/lib/clang/{16 → 18}/include/avxifmaintrin.h +0 -0
  163. /package/lib/clang/{16 → 18}/include/avxneconvertintrin.h +0 -0
  164. /package/lib/clang/{16 → 18}/include/avxvnniint8intrin.h +0 -0
  165. /package/lib/clang/{16 → 18}/include/avxvnniintrin.h +0 -0
  166. /package/lib/clang/{16 → 18}/include/builtins.h +0 -0
  167. /package/lib/clang/{16 → 18}/include/cet.h +0 -0
  168. /package/lib/clang/{16 → 18}/include/cetintrin.h +0 -0
  169. /package/lib/clang/{16 → 18}/include/cldemoteintrin.h +0 -0
  170. /package/lib/clang/{16 → 18}/include/clwbintrin.h +0 -0
  171. /package/lib/clang/{16 → 18}/include/cmpccxaddintrin.h +0 -0
  172. /package/lib/clang/{16 → 18}/include/cpuid.h +0 -0
  173. /package/lib/clang/{16 → 18}/include/crc32intrin.h +0 -0
  174. /package/lib/clang/{16 → 18}/include/cuda_wrappers/algorithm +0 -0
  175. /package/lib/clang/{16 → 18}/include/cuda_wrappers/cmath +0 -0
  176. /package/lib/clang/{16 → 18}/include/cuda_wrappers/complex +0 -0
  177. /package/lib/clang/{16 → 18}/include/cuda_wrappers/new +0 -0
  178. /package/lib/clang/{16 → 18}/include/enqcmdintrin.h +0 -0
  179. /package/lib/clang/{16 → 18}/include/f16cintrin.h +0 -0
  180. /package/lib/clang/{16 → 18}/include/float.h +0 -0
  181. /package/lib/clang/{16 → 18}/include/fma4intrin.h +0 -0
  182. /package/lib/clang/{16 → 18}/include/fxsrintrin.h +0 -0
  183. /package/lib/clang/{16 → 18}/include/hexagon_circ_brev_intrinsics.h +0 -0
  184. /package/lib/clang/{16 → 18}/include/hexagon_protos.h +0 -0
  185. /package/lib/clang/{16 → 18}/include/hexagon_types.h +0 -0
  186. /package/lib/clang/{16 → 18}/include/hlsl/hlsl_basic_types.h +0 -0
  187. /package/lib/clang/{16 → 18}/include/hlsl.h +0 -0
  188. /package/lib/clang/{16 → 18}/include/hresetintrin.h +0 -0
  189. /package/lib/clang/{16 → 18}/include/htmintrin.h +0 -0
  190. /package/lib/clang/{16 → 18}/include/htmxlintrin.h +0 -0
  191. /package/lib/clang/{16 → 18}/include/hvx_hexagon_protos.h +0 -0
  192. /package/lib/clang/{16 → 18}/include/inttypes.h +0 -0
  193. /package/lib/clang/{16 → 18}/include/invpcidintrin.h +0 -0
  194. /package/lib/clang/{16 → 18}/include/iso646.h +0 -0
  195. /package/lib/clang/{16 → 18}/include/keylockerintrin.h +0 -0
  196. /package/lib/clang/{16 → 18}/include/lwpintrin.h +0 -0
  197. /package/lib/clang/{16 → 18}/include/lzcntintrin.h +0 -0
  198. /package/lib/clang/{16 → 18}/include/mm3dnow.h +0 -0
  199. /package/lib/clang/{16 → 18}/include/mm_malloc.h +0 -0
  200. /package/lib/clang/{16 → 18}/include/movdirintrin.h +0 -0
  201. /package/lib/clang/{16 → 18}/include/msa.h +0 -0
  202. /package/lib/clang/{16 → 18}/include/nmmintrin.h +0 -0
  203. /package/lib/clang/{16 → 18}/include/opencl-c.h +0 -0
  204. /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex +0 -0
  205. /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex.h +0 -0
  206. /package/lib/clang/{16 → 18}/include/openmp_wrappers/complex_cmath.h +0 -0
  207. /package/lib/clang/{16 → 18}/include/openmp_wrappers/math.h +0 -0
  208. /package/lib/clang/{16 → 18}/include/pconfigintrin.h +0 -0
  209. /package/lib/clang/{16 → 18}/include/pkuintrin.h +0 -0
  210. /package/lib/clang/{16 → 18}/include/popcntintrin.h +0 -0
  211. /package/lib/clang/{16 → 18}/include/ppc_wrappers/bmi2intrin.h +0 -0
  212. /package/lib/clang/{16 → 18}/include/ppc_wrappers/bmiintrin.h +0 -0
  213. /package/lib/clang/{16 → 18}/include/ppc_wrappers/immintrin.h +0 -0
  214. /package/lib/clang/{16 → 18}/include/ppc_wrappers/mm_malloc.h +0 -0
  215. /package/lib/clang/{16 → 18}/include/ppc_wrappers/mmintrin.h +0 -0
  216. /package/lib/clang/{16 → 18}/include/ppc_wrappers/pmmintrin.h +0 -0
  217. /package/lib/clang/{16 → 18}/include/ppc_wrappers/tmmintrin.h +0 -0
  218. /package/lib/clang/{16 → 18}/include/ppc_wrappers/x86gprintrin.h +0 -0
  219. /package/lib/clang/{16 → 18}/include/ppc_wrappers/x86intrin.h +0 -0
  220. /package/lib/clang/{16 → 18}/include/ppc_wrappers/xmmintrin.h +0 -0
  221. /package/lib/clang/{16 → 18}/include/prfchiintrin.h +0 -0
  222. /package/lib/clang/{16 → 18}/include/prfchwintrin.h +0 -0
  223. /package/lib/clang/{16 → 18}/include/ptwriteintrin.h +0 -0
  224. /package/lib/clang/{16 → 18}/include/raointintrin.h +0 -0
  225. /package/lib/clang/{16 → 18}/include/rdpruintrin.h +0 -0
  226. /package/lib/clang/{16 → 18}/include/rtmintrin.h +0 -0
  227. /package/lib/clang/{16 → 18}/include/s390intrin.h +0 -0
  228. /package/lib/clang/{16 → 18}/include/serializeintrin.h +0 -0
  229. /package/lib/clang/{16 → 18}/include/sgxintrin.h +0 -0
  230. /package/lib/clang/{16 → 18}/include/stdbool.h +0 -0
  231. /package/lib/clang/{16 → 18}/include/tbmintrin.h +0 -0
  232. /package/lib/clang/{16 → 18}/include/tgmath.h +0 -0
  233. /package/lib/clang/{16 → 18}/include/tsxldtrkintrin.h +0 -0
  234. /package/lib/clang/{16 → 18}/include/uintrintrin.h +0 -0
  235. /package/lib/clang/{16 → 18}/include/unwind.h +0 -0
  236. /package/lib/clang/{16 → 18}/include/vadefs.h +0 -0
  237. /package/lib/clang/{16 → 18}/include/varargs.h +0 -0
  238. /package/lib/clang/{16 → 18}/include/velintrin.h +0 -0
  239. /package/lib/clang/{16 → 18}/include/velintrin_approx.h +0 -0
  240. /package/lib/clang/{16 → 18}/include/velintrin_gen.h +0 -0
  241. /package/lib/clang/{16 → 18}/include/vpclmulqdqintrin.h +0 -0
  242. /package/lib/clang/{16 → 18}/include/waitpkgintrin.h +0 -0
  243. /package/lib/clang/{16 → 18}/include/wbnoinvdintrin.h +0 -0
  244. /package/lib/clang/{16 → 18}/include/wmmintrin.h +0 -0
  245. /package/lib/clang/{16 → 18}/include/x86intrin.h +0 -0
  246. /package/lib/clang/{16 → 18}/include/xopintrin.h +0 -0
  247. /package/lib/clang/{16 → 18}/include/xsaveintrin.h +0 -0
  248. /package/lib/clang/{16 → 18}/include/xsaveoptintrin.h +0 -0
  249. /package/lib/clang/{16 → 18}/include/xsavesintrin.h +0 -0
  250. /package/lib/clang/{16 → 18}/include/xtestintrin.h +0 -0
@@ -0,0 +1,269 @@
1
+ /*===--------------- sm4intrin.h - SM4 intrinsics -----------------===
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
+
10
+ #ifndef __IMMINTRIN_H
11
+ #error "Never use <sm4intrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifndef __SM4INTRIN_H
15
+ #define __SM4INTRIN_H
16
+
17
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
18
+ /// operates on independent 128-bit lanes. The calculated results are
19
+ /// stored in \a dst.
20
+ /// \headerfile <immintrin.h>
21
+ ///
22
+ /// \code
23
+ /// __m128i _mm_sm4key4_epi32(__m128i __A, __m128i __B)
24
+ /// \endcode
25
+ ///
26
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
27
+ ///
28
+ /// \param __A
29
+ /// A 128-bit vector of [4 x int].
30
+ /// \param __B
31
+ /// A 128-bit vector of [4 x int].
32
+ /// \returns
33
+ /// A 128-bit vector of [4 x int].
34
+ ///
35
+ /// \code{.operation}
36
+ /// DEFINE ROL32(dword, n) {
37
+ /// count := n % 32
38
+ /// dest := (dword << count) | (dword >> (32-count))
39
+ /// RETURN dest
40
+ /// }
41
+ /// DEFINE SBOX_BYTE(dword, i) {
42
+ /// RETURN sbox[dword.byte[i]]
43
+ /// }
44
+ /// DEFINE lower_t(dword) {
45
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
46
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
47
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
48
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
49
+ /// RETURN tmp
50
+ /// }
51
+ /// DEFINE L_KEY(dword) {
52
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
53
+ /// }
54
+ /// DEFINE T_KEY(dword) {
55
+ /// RETURN L_KEY(lower_t(dword))
56
+ /// }
57
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
58
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
59
+ /// }
60
+ /// FOR i:= 0 to 0
61
+ /// P[0] := __B.xmm[i].dword[0]
62
+ /// P[1] := __B.xmm[i].dword[1]
63
+ /// P[2] := __B.xmm[i].dword[2]
64
+ /// P[3] := __B.xmm[i].dword[3]
65
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
66
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
67
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
68
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
69
+ /// DEST.xmm[i].dword[0] := C[0]
70
+ /// DEST.xmm[i].dword[1] := C[1]
71
+ /// DEST.xmm[i].dword[2] := C[2]
72
+ /// DEST.xmm[i].dword[3] := C[3]
73
+ /// ENDFOR
74
+ /// DEST[MAX:128] := 0
75
+ /// \endcode
76
+ #define _mm_sm4key4_epi32(A, B) \
77
+ (__m128i) __builtin_ia32_vsm4key4128((__v4su)A, (__v4su)B)
78
+
79
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
80
+ /// operates on independent 128-bit lanes. The calculated results are
81
+ /// stored in \a dst.
82
+ /// \headerfile <immintrin.h>
83
+ ///
84
+ /// \code
85
+ /// __m256i _mm256_sm4key4_epi32(__m256i __A, __m256i __B)
86
+ /// \endcode
87
+ ///
88
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
89
+ ///
90
+ /// \param __A
91
+ /// A 256-bit vector of [8 x int].
92
+ /// \param __B
93
+ /// A 256-bit vector of [8 x int].
94
+ /// \returns
95
+ /// A 256-bit vector of [8 x int].
96
+ ///
97
+ /// \code{.operation}
98
+ /// DEFINE ROL32(dword, n) {
99
+ /// count := n % 32
100
+ /// dest := (dword << count) | (dword >> (32-count))
101
+ /// RETURN dest
102
+ /// }
103
+ /// DEFINE SBOX_BYTE(dword, i) {
104
+ /// RETURN sbox[dword.byte[i]]
105
+ /// }
106
+ /// DEFINE lower_t(dword) {
107
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
108
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
109
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
110
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
111
+ /// RETURN tmp
112
+ /// }
113
+ /// DEFINE L_KEY(dword) {
114
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
115
+ /// }
116
+ /// DEFINE T_KEY(dword) {
117
+ /// RETURN L_KEY(lower_t(dword))
118
+ /// }
119
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
120
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
121
+ /// }
122
+ /// FOR i:= 0 to 1
123
+ /// P[0] := __B.xmm[i].dword[0]
124
+ /// P[1] := __B.xmm[i].dword[1]
125
+ /// P[2] := __B.xmm[i].dword[2]
126
+ /// P[3] := __B.xmm[i].dword[3]
127
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
128
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
129
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
130
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
131
+ /// DEST.xmm[i].dword[0] := C[0]
132
+ /// DEST.xmm[i].dword[1] := C[1]
133
+ /// DEST.xmm[i].dword[2] := C[2]
134
+ /// DEST.xmm[i].dword[3] := C[3]
135
+ /// ENDFOR
136
+ /// DEST[MAX:256] := 0
137
+ /// \endcode
138
+ #define _mm256_sm4key4_epi32(A, B) \
139
+ (__m256i) __builtin_ia32_vsm4key4256((__v8su)A, (__v8su)B)
140
+
141
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
142
+ /// operates on independent 128-bit lanes. The calculated results are
143
+ /// stored in \a dst.
144
+ /// \headerfile <immintrin.h>
145
+ ///
146
+ /// \code
147
+ /// __m128i _mm_sm4rnds4_epi32(__m128i __A, __m128i __B)
148
+ /// \endcode
149
+ ///
150
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
151
+ ///
152
+ /// \param __A
153
+ /// A 128-bit vector of [4 x int].
154
+ /// \param __B
155
+ /// A 128-bit vector of [4 x int].
156
+ /// \returns
157
+ /// A 128-bit vector of [4 x int].
158
+ ///
159
+ /// \code{.operation}
160
+ /// DEFINE ROL32(dword, n) {
161
+ /// count := n % 32
162
+ /// dest := (dword << count) | (dword >> (32-count))
163
+ /// RETURN dest
164
+ /// }
165
+ /// DEFINE lower_t(dword) {
166
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
167
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
168
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
169
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
170
+ /// RETURN tmp
171
+ /// }
172
+ /// DEFINE L_RND(dword) {
173
+ /// tmp := dword
174
+ /// tmp := tmp ^ ROL32(dword, 2)
175
+ /// tmp := tmp ^ ROL32(dword, 10)
176
+ /// tmp := tmp ^ ROL32(dword, 18)
177
+ /// tmp := tmp ^ ROL32(dword, 24)
178
+ /// RETURN tmp
179
+ /// }
180
+ /// DEFINE T_RND(dword) {
181
+ /// RETURN L_RND(lower_t(dword))
182
+ /// }
183
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
184
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
185
+ /// }
186
+ /// FOR i:= 0 to 0
187
+ /// P[0] := __B.xmm[i].dword[0]
188
+ /// P[1] := __B.xmm[i].dword[1]
189
+ /// P[2] := __B.xmm[i].dword[2]
190
+ /// P[3] := __B.xmm[i].dword[3]
191
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
192
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
193
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
194
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
195
+ /// DEST.xmm[i].dword[0] := C[0]
196
+ /// DEST.xmm[i].dword[1] := C[1]
197
+ /// DEST.xmm[i].dword[2] := C[2]
198
+ /// DEST.xmm[i].dword[3] := C[3]
199
+ /// ENDFOR
200
+ /// DEST[MAX:128] := 0
201
+ /// \endcode
202
+ #define _mm_sm4rnds4_epi32(A, B) \
203
+ (__m128i) __builtin_ia32_vsm4rnds4128((__v4su)A, (__v4su)B)
204
+
205
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
206
+ /// operates on independent 128-bit lanes. The calculated results are
207
+ /// stored in \a dst.
208
+ /// \headerfile <immintrin.h>
209
+ ///
210
+ /// \code
211
+ /// __m256i _mm256_sm4rnds4_epi32(__m256i __A, __m256i __B)
212
+ /// \endcode
213
+ ///
214
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
215
+ ///
216
+ /// \param __A
217
+ /// A 256-bit vector of [8 x int].
218
+ /// \param __B
219
+ /// A 256-bit vector of [8 x int].
220
+ /// \returns
221
+ /// A 256-bit vector of [8 x int].
222
+ ///
223
+ /// \code{.operation}
224
+ /// DEFINE ROL32(dword, n) {
225
+ /// count := n % 32
226
+ /// dest := (dword << count) | (dword >> (32-count))
227
+ /// RETURN dest
228
+ /// }
229
+ /// DEFINE lower_t(dword) {
230
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
231
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
232
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
233
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
234
+ /// RETURN tmp
235
+ /// }
236
+ /// DEFINE L_RND(dword) {
237
+ /// tmp := dword
238
+ /// tmp := tmp ^ ROL32(dword, 2)
239
+ /// tmp := tmp ^ ROL32(dword, 10)
240
+ /// tmp := tmp ^ ROL32(dword, 18)
241
+ /// tmp := tmp ^ ROL32(dword, 24)
242
+ /// RETURN tmp
243
+ /// }
244
+ /// DEFINE T_RND(dword) {
245
+ /// RETURN L_RND(lower_t(dword))
246
+ /// }
247
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
248
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
249
+ /// }
250
+ /// FOR i:= 0 to 0
251
+ /// P[0] := __B.xmm[i].dword[0]
252
+ /// P[1] := __B.xmm[i].dword[1]
253
+ /// P[2] := __B.xmm[i].dword[2]
254
+ /// P[3] := __B.xmm[i].dword[3]
255
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
256
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
257
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
258
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
259
+ /// DEST.xmm[i].dword[0] := C[0]
260
+ /// DEST.xmm[i].dword[1] := C[1]
261
+ /// DEST.xmm[i].dword[2] := C[2]
262
+ /// DEST.xmm[i].dword[3] := C[3]
263
+ /// ENDFOR
264
+ /// DEST[MAX:256] := 0
265
+ /// \endcode
266
+ #define _mm256_sm4rnds4_epi32(A, B) \
267
+ (__m256i) __builtin_ia32_vsm4rnds4256((__v8su)A, (__v8su)B)
268
+
269
+ #endif // __SM4INTRIN_H
@@ -18,8 +18,8 @@
18
18
 
19
19
  /* Define the default attributes for the functions in this file. */
20
20
  #define __DEFAULT_FN_ATTRS \
21
- __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), \
22
- __min_vector_width__(128)))
21
+ __attribute__((__always_inline__, __nodebug__, \
22
+ __target__("sse4.1,no-evex512"), __min_vector_width__(128)))
23
23
 
24
24
  /* SSE4 Rounding macros. */
25
25
  #define _MM_FROUND_TO_NEAREST_INT 0x00
@@ -645,7 +645,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epi32(__m128i __V1,
645
645
  /// \returns A 128-bit integer vector containing the data stored at the
646
646
  /// specified memory location.
647
647
  static __inline__ __m128i __DEFAULT_FN_ATTRS
648
- _mm_stream_load_si128(__m128i const *__V) {
648
+ _mm_stream_load_si128(const void *__V) {
649
649
  return (__m128i)__builtin_nontemporal_load((const __v2di *)__V);
650
650
  }
651
651
 
@@ -10,6 +10,8 @@
10
10
  #ifndef __STDALIGN_H
11
11
  #define __STDALIGN_H
12
12
 
13
+ #if defined(__cplusplus) || \
14
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202311L)
13
15
  #ifndef __cplusplus
14
16
  #define alignas _Alignas
15
17
  #define alignof _Alignof
@@ -17,5 +19,6 @@
17
19
 
18
20
  #define __alignas_is_defined 1
19
21
  #define __alignof_is_defined 1
22
+ #endif /* __STDC_VERSION__ */
20
23
 
21
24
  #endif /* __STDALIGN_H */
@@ -0,0 +1,79 @@
1
+ /*===---- stdarg.h - Variable argument handling ----------------------------===
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
+
10
+ /*
11
+ * This header is designed to be included multiple times. If any of the __need_
12
+ * macros are defined, then only that subset of interfaces are provided. This
13
+ * can be useful for POSIX headers that need to not expose all of stdarg.h, but
14
+ * need to use some of its interfaces. Otherwise this header provides all of
15
+ * the expected interfaces.
16
+ *
17
+ * When clang modules are enabled, this header is a textual header. It ignores
18
+ * its header guard so that multiple submodules can export its interfaces.
19
+ * Take module SM with submodules A and B, whose headers both include stdarg.h
20
+ * When SM.A builds, __STDARG_H will be defined. When SM.B builds, the
21
+ * definition from SM.A will leak when building without local submodule
22
+ * visibility. stdarg.h wouldn't include any of its implementation headers, and
23
+ * SM.B wouldn't import any of the stdarg modules, and SM.B's `export *`
24
+ * wouldn't export any stdarg interfaces as expected. However, since stdarg.h
25
+ * ignores its header guard when building with modules, it all works as
26
+ * expected.
27
+ *
28
+ * When clang modules are not enabled, the header guards can function in the
29
+ * normal simple fashion.
30
+ */
31
+ #if !defined(__STDARG_H) || __has_feature(modules) || \
32
+ defined(__need___va_list) || defined(__need_va_list) || \
33
+ defined(__need_va_arg) || defined(__need___va_copy) || \
34
+ defined(__need_va_copy)
35
+
36
+ #if !defined(__need___va_list) && !defined(__need_va_list) && \
37
+ !defined(__need_va_arg) && !defined(__need___va_copy) && \
38
+ !defined(__need_va_copy)
39
+ #define __STDARG_H
40
+ #define __need___va_list
41
+ #define __need_va_list
42
+ #define __need_va_arg
43
+ #define __need___va_copy
44
+ /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode
45
+ * or -ansi is not specified, since it was not part of C90.
46
+ */
47
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
48
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
49
+ !defined(__STRICT_ANSI__)
50
+ #define __need_va_copy
51
+ #endif
52
+ #endif
53
+
54
+ #ifdef __need___va_list
55
+ #include <__stdarg___gnuc_va_list.h>
56
+ #undef __need___va_list
57
+ #endif /* defined(__need___va_list) */
58
+
59
+ #ifdef __need_va_list
60
+ #include <__stdarg_va_list.h>
61
+ #undef __need_va_list
62
+ #endif /* defined(__need_va_list) */
63
+
64
+ #ifdef __need_va_arg
65
+ #include <__stdarg_va_arg.h>
66
+ #undef __need_va_arg
67
+ #endif /* defined(__need_va_arg) */
68
+
69
+ #ifdef __need___va_copy
70
+ #include <__stdarg___va_copy.h>
71
+ #undef __need___va_copy
72
+ #endif /* defined(__need___va_copy) */
73
+
74
+ #ifdef __need_va_copy
75
+ #include <__stdarg_va_copy.h>
76
+ #undef __need_va_copy
77
+ #endif /* defined(__need_va_copy) */
78
+
79
+ #endif
@@ -45,9 +45,14 @@ extern "C" {
45
45
  #define ATOMIC_POINTER_LOCK_FREE __CLANG_ATOMIC_POINTER_LOCK_FREE
46
46
 
47
47
  /* 7.17.2 Initialization */
48
-
48
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202311L) || \
49
+ defined(__cplusplus)
50
+ /* ATOMIC_VAR_INIT was removed in C23, but still remains in C++23. */
49
51
  #define ATOMIC_VAR_INIT(value) (value)
50
- #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L) || \
52
+ #endif
53
+
54
+ #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L && \
55
+ __STDC_VERSION__ < 202311L) || \
51
56
  (defined(__cplusplus) && __cplusplus >= 202002L)) && \
52
57
  !defined(_CLANG_DISABLE_CRT_DEPRECATION_WARNINGS)
53
58
  /* ATOMIC_VAR_INIT was deprecated in C17 and C++20. */
@@ -0,0 +1,42 @@
1
+ /*===---- stdckdint.h - Standard header for checking integer----------------===
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
+
10
+ #ifndef __STDCKDINT_H
11
+ #define __STDCKDINT_H
12
+
13
+ /* If we're hosted, fall back to the system's stdckdint.h. FreeBSD, for
14
+ * example, already has a Clang-compatible stdckdint.h header.
15
+ *
16
+ * The `stdckdint.h` header requires C 23 or newer.
17
+ */
18
+ #if __STDC_HOSTED__ && __has_include_next(<stdckdint.h>)
19
+ #include_next <stdckdint.h>
20
+ #else
21
+
22
+ /* C23 7.20.1 Defines several macros for performing checked integer arithmetic*/
23
+
24
+ #define __STDC_VERSION_STDCKDINT_H__ 202311L
25
+
26
+ // Both A and B shall be any integer type other than "plain" char, bool, a bit-
27
+ // precise integer type, or an enumerated type, and they need not be the same.
28
+
29
+ // R shall be a modifiable lvalue of any integer type other than "plain" char,
30
+ // bool, a bit-precise integer type, or an enumerated type. It shouldn't be
31
+ // short type, either. Otherwise, it may be unable to hold two the result of
32
+ // operating two 'int's.
33
+
34
+ // A diagnostic message will be produced if A or B are not suitable integer
35
+ // types, or if R is not a modifiable lvalue of a suitable integer type or R
36
+ // is short type.
37
+ #define ckd_add(R, A, B) __builtin_add_overflow((A), (B), (R))
38
+ #define ckd_sub(R, A, B) __builtin_sub_overflow((A), (B), (R))
39
+ #define ckd_mul(R, A, B) __builtin_mul_overflow((A), (B), (R))
40
+
41
+ #endif /* __STDC_HOSTED__ */
42
+ #endif /* __STDCKDINT_H */
@@ -0,0 +1,123 @@
1
+ /*===---- stddef.h - Basic type definitions --------------------------------===
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
+
10
+ /*
11
+ * This header is designed to be included multiple times. If any of the __need_
12
+ * macros are defined, then only that subset of interfaces are provided. This
13
+ * can be useful for POSIX headers that need to not expose all of stddef.h, but
14
+ * need to use some of its interfaces. Otherwise this header provides all of
15
+ * the expected interfaces.
16
+ *
17
+ * When clang modules are enabled, this header is a textual header. It ignores
18
+ * its header guard so that multiple submodules can export its interfaces.
19
+ * Take module SM with submodules A and B, whose headers both include stddef.h
20
+ * When SM.A builds, __STDDEF_H will be defined. When SM.B builds, the
21
+ * definition from SM.A will leak when building without local submodule
22
+ * visibility. stddef.h wouldn't include any of its implementation headers, and
23
+ * SM.B wouldn't import any of the stddef modules, and SM.B's `export *`
24
+ * wouldn't export any stddef interfaces as expected. However, since stddef.h
25
+ * ignores its header guard when building with modules, it all works as
26
+ * expected.
27
+ *
28
+ * When clang modules are not enabled, the header guards can function in the
29
+ * normal simple fashion.
30
+ */
31
+ #if !defined(__STDDEF_H) || __has_feature(modules) || \
32
+ (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1) || \
33
+ defined(__need_ptrdiff_t) || defined(__need_size_t) || \
34
+ defined(__need_rsize_t) || defined(__need_wchar_t) || \
35
+ defined(__need_NULL) || defined(__need_nullptr_t) || \
36
+ defined(__need_unreachable) || defined(__need_max_align_t) || \
37
+ defined(__need_offsetof) || defined(__need_wint_t)
38
+
39
+ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
40
+ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \
41
+ !defined(__need_NULL) && !defined(__need_nullptr_t) && \
42
+ !defined(__need_unreachable) && !defined(__need_max_align_t) && \
43
+ !defined(__need_offsetof) && !defined(__need_wint_t)
44
+ #define __STDDEF_H
45
+ #define __need_ptrdiff_t
46
+ #define __need_size_t
47
+ /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
48
+ * enabled. */
49
+ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
50
+ #define __need_rsize_t
51
+ #endif
52
+ #define __need_wchar_t
53
+ #define __need_NULL
54
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \
55
+ defined(__cplusplus)
56
+ #define __need_nullptr_t
57
+ #endif
58
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
59
+ #define __need_unreachable
60
+ #endif
61
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
62
+ (defined(__cplusplus) && __cplusplus >= 201103L)
63
+ #define __need_max_align_t
64
+ #endif
65
+ #define __need_offsetof
66
+ /* wint_t is provided by <wchar.h> and not <stddef.h>. It's here
67
+ * for compatibility, but must be explicitly requested. Therefore
68
+ * __need_wint_t is intentionally not defined here. */
69
+ #endif
70
+
71
+ #if defined(__need_ptrdiff_t)
72
+ #include <__stddef_ptrdiff_t.h>
73
+ #undef __need_ptrdiff_t
74
+ #endif /* defined(__need_ptrdiff_t) */
75
+
76
+ #if defined(__need_size_t)
77
+ #include <__stddef_size_t.h>
78
+ #undef __need_size_t
79
+ #endif /*defined(__need_size_t) */
80
+
81
+ #if defined(__need_rsize_t)
82
+ #include <__stddef_rsize_t.h>
83
+ #undef __need_rsize_t
84
+ #endif /* defined(__need_rsize_t) */
85
+
86
+ #if defined(__need_wchar_t)
87
+ #include <__stddef_wchar_t.h>
88
+ #undef __need_wchar_t
89
+ #endif /* defined(__need_wchar_t) */
90
+
91
+ #if defined(__need_NULL)
92
+ #include <__stddef_null.h>
93
+ #undef __need_NULL
94
+ #endif /* defined(__need_NULL) */
95
+
96
+ #if defined(__need_nullptr_t)
97
+ #include <__stddef_nullptr_t.h>
98
+ #undef __need_nullptr_t
99
+ #endif /* defined(__need_nullptr_t) */
100
+
101
+ #if defined(__need_unreachable)
102
+ #include <__stddef_unreachable.h>
103
+ #undef __need_unreachable
104
+ #endif /* defined(__need_unreachable) */
105
+
106
+ #if defined(__need_max_align_t)
107
+ #include <__stddef_max_align_t.h>
108
+ #undef __need_max_align_t
109
+ #endif /* defined(__need_max_align_t) */
110
+
111
+ #if defined(__need_offsetof)
112
+ #include <__stddef_offsetof.h>
113
+ #undef __need_offsetof
114
+ #endif /* defined(__need_offsetof) */
115
+
116
+ /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
117
+ __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
118
+ #if defined(__need_wint_t)
119
+ #include <__stddef_wint_t.h>
120
+ #undef __need_wint_t
121
+ #endif /* __need_wint_t */
122
+
123
+ #endif