ืืืืจ ืฉืืฉื ืืืืฉืื ืฉื ืคืืชืื
ืชืืื ืืช ืืืฉืืช ืฉื LLVM 9.0 ืืืืืืช ืืกืจืช ืชื ืืขืืฆืื ืื ืืกืืื ื ืืคืืืคืืจืืช ืืืขื RISC-V, ืชืืืื ื-C++ ืขืืืจ OpenCL, ืืืืืืช ืืคืฆื ืชืืื ืืช ืืืืงืื ืืขืื ืื ืืื ืืืช ื-LLD, ืืืืืขื ืฉื "
-
ื ืืกืฃ ืืืฉืื ืืืืืื ืืกืคืฆืืคื ื-GCC "asm goto ", ืืืืคืฉืจ ืื ืืขืืืจ ืืืืืง ืืกืืืืจ ืืืืืข ืืชืืืืช ืืงืื C. ืชืืื ื ืื ื ืืจืฉืช ืืื ืืื ืืช ืืช ืืืืช ืืื ืืงืก ืืืฆื "CONFIG_JUMP_LABEL=y" ืืืืฆืขืืช Clang ืืืขืจืืืช ืขื ืืจืืืืงืืืจืช x86_64. ืืืชืืฉื ืืฉืื ืืืื ืฉื ืืกืคื ืืืืืืจืืช ืงืืืืืช, ื ืืชื ืืื ืืช ืืขืช ืืช ืืืืช ืืื ืืงืก ื-Clang ืขืืืจ ืืจืืืืงืืืจืช x86_64 (ืืขืืจ ื ืชืืื ืจืง ืื ืืื ืขืืืจ ืืืจืืข, aarch64, ppc32, ppc64le ื-mips). ืืชืจื ืืื, ืคืจืืืงืืื ืฉื ืื ืืจืืืื ื-ChromeOS ืืืจ ืืืืจื ืืฉืืืืฉ ื-Clang ืืื ืืืช ืืืื, ืืืืื ืืืื ืช ืืช Clang ืืคืืืคืืจืื ืืขืืงืจืืช ืืื ืืืช ืืจืขืื ืื ืขืืืจ ืืขืจืืืช ืืืืฆืืจ ืฉื ืืื ืืงืก. ืืขืชืื, ื ืืชื ืืืฉืชืืฉ ืืจืืืื LLVM ืืืจืื ืืชืืืื ืื ืืืช ืืงืจื ื, ืืืื LLD, llvm-objcopy, llvm-ar, llvm-nm ื-llvm-objdump; - ื ืืกืคื ืชืืืื ื ืืกืืื ืืช ืืฉืืืืฉ ื-C++17 ื-OpenCL. ืชืืื ืืช ืกืคืฆืืคืืืช ืืืืืืช ืชืืืื ืืชืืื ืืช ืืจืื ืืชืืืืช, ืืกืืืช ืืืจืช ืืจืื ืืชืืืืช ืขื ืืื ืืคืขืืื ืืืืืง ืกืืืื, ืืชื ืกืืื ืืงืืืจืื ืืื ื-OpenCL ืขืืืจ C, ื ืืืืืช ืฉื ืกืืื OpenCL ืกืคืฆืืคืืื ืืชืืื ืืช, ืืืจืืขืื, ืขืจืืฆืื ืืื'.
- ื ืืกืคื ืืืื ืืืืจ ืืืฉืื "-ftime-trace" ื- "-ftime-trace-granularity=N" ืืื ืืืคืืง ืืื ืขื ืืื ืืืืฆืืข ืฉื ืฉืืืื ืฉืื ืื ืฉื ื-frontend (ื ืืชืื, ืืชืืื) ื-backend (ืฉืืื ืืืคืืืืืืฆืื). ืืืื ื ืฉืืจ ืืคืืจืื json, ืชืืื ื-chrome://tracing ื-speedscope.app;
- ื ืืกืฃ ืขืืืื ืฉื ืืคืจื "__declspec(allocator)" ืืืฆืืจืช ืืืืข ื ืืคืื ืืืืื ื ืืืื ืืืืคืฉืจ ืื ืื ืืจ ืืช ืฆืจืืืช ืืืืืจืื ืืกืืืืช Visual Studio;
- ืขืืืจ ืฉืคืช C, ื ืืกืคื ืชืืืื ืืืืงืจื "__FILE_NAME__", ืืืืื ืืืืงืจื "__FILE__", ืื ืืืื ืจืง ืืช ืฉื ืืงืืืฅ ืืื ืื ืชืื ืืืื;
- C++ ืืจืืืื ืืช ืืชืืืื ืืชืืื ืืช ืืจืื ืืืชืืืืช ืืื ืืืกืืช ืชืืื ืืช C++ ืฉืื ืืช, ืืืื ืืคืืกื ืคืจืืืจืื ืืืจืืืื ืืื, ืกืืื ืืคื ืืืช, ืืกืงื ืืช ืืกืื ืืืืจื, ืืืืืืงืืื, ืคืื ืงืฆืืืช ืฉื ืืฆืจื ืืืืืืืืช, ืืืคืจืืืจืื ืืืื ืื ืืขืื.
- ืืืืืืืช ืืงืฉืืจืืช ืืชืืืื ื-OpenCL, OpenMP ื-CUDA ืืืจืืื. ืื ืืืื ืชืืืื ืจืืฉืื ืืช ืืืืืื ืืจืืืืช ืฉื ืคืื ืงืฆืืืช OpenCL ืืืื ืืช (ืืืื "-fdeclare-opencl-builtins" ื ืืกืฃ), ืืืจืืื cl_arm_integer_dot_product ืืืฉืื, ืืืื ืืืืื ืืืจืืื;
- ืขืืืืชื ืฉื ืืื ืชื ืืกืืื ืฉืืคืจื ืื ืืกืฃ ืชืืขืื ืขื ืืืฆืืข ื ืืชืื ืกืืื. ื ืืกืคื ืืืืื ืืืฆืืช ืืืืืื ืืืืง ืืืื ืื ืืืคืฉืจืืืืช ื ืชืืืืช ("-analyzer-checker[-option]-help", "-analyzer-checker[-option]-help-alpha" ื-"-analyzer-checker[-option]-help "-ืืคืชื"). ื ืืกืฃ ืืื "-analyzer-error" ืืื ืืืชืืืืก ืืืืืจืืช ืืฉืืืืืช.
ื ืืกืคื ืืฆืื ืืืืืช ืืืฉืื:- security.insecureAPI.DeprecatedOrUnsafeBufferHandling ืืืืืื ืฉืืืืช ืขืืืื ืื ืืืืืืช ืืขืืืื ืขื ืืืืจืื;
- osx.MIGChecker ืืื ืืืคืฉ ืืคืจืืช ืฉื ืืืื ืฉืืืืช MIG (Mach Interface Generator);
- optin.osx.OSObjectCStyleCast ืืื ืืืฆืื ืืืจืืช ืฉืืืืืช ืฉื ืืืืืืงื XNU libkern;
- apiModeling.llvm ืขื ืงืืืฆื ืฉื ืคืื ืงืฆืืืช ืืืืงืช ืืืืืื ืืืืืื ืฉืืืืืช ืืืกืืก ืืงืื ืฉื LLVM;
- ืงืื ืืืืฆื ืืืืืงืช ืืืืืืงืื C++ ืื ืืืืชืืืื (UninitializedObject ืืืืืืช optin.cplusplus);
- ืชืืื ืืช ืืฉืืจืืช clang-format ืืืกืืคื ืชืืืื ืืขืืฆืื ืงืื ืืฉืคืช C# ืืืกืคืงืช ืชืืืื ืืกืื ืื ืขืืฆืื ืืงืื ืืืฉืืฉ ืืช Microsoft;
- clang-cl, ืืืฉืง ืฉืืจืช ืคืงืืื ืืืืคื ืืืกืคืง ืชืืืืืช ืืจืืช ืืืคืฉืจืืืืช ืขื ืืืืืจ cl.exe ืืืืื ื-Visual Studio, ืืืกืืฃ ืืืืจืืกืืืงืืช ืืื ืืืชืืืืก ืืงืืฆืื ืฉืืื ื ืงืืืืื ืืืคืฉืจืืืืช ืฉืืจืช ืคืงืืื ืืืืฆืื ืืืืจื ืืชืืืื (ืืืืืื, ืืขืช ืืคืขืืช "clang-cl /diagnostic :caret /c test.cc");
- ืืืง ืืืื ืฉื ืฆ'ืงืื ืืืฉืื ื ืืกืคื ื-linter clang-tidy, ืืืื ืฆ'ืงืื ื ืืกืคืื ืกืคืฆืืคืืื ื-OpenMP API;
-
ืืึผืจืึธื ืืืืืืช ืฉืจืชclangd (Clang Server), ืฉืื ืืฆื ืื ืืืช ืืื ืืงืก ืืจืงืข ืืืคืขื ืืืจืืจืช ืืืื, ื ืืกืคื ืชืืืื ืืคืขืืืืช ืืงืฉืจืืืช ืขื ืงืื (ืฉืืืคื ืฉื ืืฉืชื ืื, ืืจืืืช ืืืืจืืช ืืืืืืืืืช ืืืงืจื, ืืืจื ืฉื ืืืจืืืืช ืืจืืื ืืืืจืืืืช ืฉืื ื ืืืื), ืืืืืช ืชืฆืืื ืืืืจืืช ื-Clang-tidy, ืืืืื ืืืจืื ืฉื ืฉืืืืืช ืืงืืฆื ืืืชืจืืช ืืืืกืืคื ืืช ืืืืืืช ืืืฆืื ืืืืข ืขื ืืืจืจืืืืช ืืกืืืื;
ืืขืืงืจื
- ืืืงืฉืจ LLD ื ืืกืคื ืชืืื ืช ืืืืงื ื ืืกืืื ืืช, ืืืืคืฉืจืช ืืคืฆื ืชืืื ืืช ืืืช ืืืกืคืจ ืืืงืื, ืฉืื ืืื ืืื ืืืืงื ืืงืืืฅ ELF ื ืคืจื. ืชืืื ื ืื ืืืคืฉืจืช ืืืคืขืื ืืช ืืืืง ืืขืืงืจื ืฉื ืืชืืื ืืช, ืืฉืจ ืืืขื ืจืืืืื ื ืืกืคืื ืืคื ืืฆืืจื ืืืืื ืืคืขืืื (ืืืืืื, ื ืืชื ืืืคืจืื ืืช ืืฆืื ื-PDF ืืืืื ื ืืงืืืฅ ื ืคืจื, ืฉืืืืขื ืจืง ืืืฉืจ ืืืฉืชืืฉ ืืคืชื ืืช ื-PDF ืงืึนืึถืฅ).
ืงืืฉืืจ LLD
ืืืื ืืืฆื ืืืชืืื ืืงืืฉืืจ ืืืืช ืืื ืืงืก ืขืืืจ ืืจืืืืงืืืจืืช arm32_7, arm64, ppc64le ื-x86_64.
ืืคืฉืจืืืืช ืืืฉืืช "-" (ืคืื ื-stdout), "-[no-]allow-shlib-undefined", "-undefined-glob", "-nmagic", "-omagic", "-dependent-library", "- z ifunc-noplt" ื-"-z common-page-size". ืขืืืจ ืืจืืืืงืืืจืช AArch64, ื ืืกืคื ืชืืืื ืืืืจืืืช BTI (Branch Target Indicator) ื-PAC (Pointer Authentication Code). ืืชืืืื ืืคืืืคืืจืืืช MIPS, RISC-V ื-PowerPC ืฉืืคืจื ืืฉืืขืืชืืช. ื ืืกืคื ืชืืืื ืจืืฉืื ืืช ืืงืืฉืืจ ืืื ืื ืขืืืจ WebAssembly; - ื-libc++
ืืืืืข ืคืื ืงืฆืืืช ssize, std::is_constant_evaluated, std::midpoint ื-std::lerp, ืฉืืืืช "front" ื-"back" ื ืืกืคื ื-std::span, ื ืืกืคื ืชืืื ืืช ืืกืื std::is_unbounded_array ื-std::is_bounded_array , ืืืืืืช std ืืืจืืื: :atomic. ืืชืืืื ื-GCC 4.9 ืืืคืกืงื (ื ืืชื ืืืฉืชืืฉ ืื ืขื GCC 5.1 ืืืจืกืืืช ืืืฉืืช ืืืชืจ). ื ืืกืคื ืชืืืืWASI (WebAssembly System Interface, ืืืฉืง ืืฉืืืืฉ ื-WebAssembly ืืืืฅ ืืืคืืคื); - ื ืืกืคื ืืืคืืืืืืฆืืืช ืืืฉืืช. ืืคืฉืจื ืืืจื ืฉื ืงืจืืืืช memcmp ื-bcmp ืืืฆืืื ืืกืืืืื. ืืฉืืื ืืืืฉืืช ืฉื ืืืืงืช ืืืื ืขืืืจ ืืืืืืช ืงืคืืฆื ืฉืืื ืืืืงืื ืืชืืื ืชืืชืื ืื ืืื ื ื ืืชื ืื ืืืฉืื ืื ืืืฉืจ ืื ื ืขืฉื ืฉืืืืฉ ืืืืจืืืช, ืืืฉื, ืืขืช ืงืจืืื ืืคืื ืงืฆืืืช ืขื ืกืื void;
- ืืงืฆื ืืืืืจื ืฉื ืืจืืืืงืืืจืช RISC-V ืืืฆื, ืฉืืื ื ืืืืงื ืขืื ืื ืืกืื ืืื ืื ืืืจืืจืช ืืืื. ืืกืคืง ืชืืืื ืืืื ืืืฆืืจืช ืงืื ืขืืืจ ืืจืกืืืช ืฉื ืขืจืืืช ืืืจืืืช RV32I ื-RV64I ืขื ืืจืืืืช MAFDC;
- ืฉืืคืืจืื ืจืืื ืืืฆืขื ืืงืฆื ืืืืืจื ืขืืืจ ืืจืืืืงืืืจืืช X86, AArch64, ARM, SystemZ, MIPS, AMDGPU ื- PowerPC. ืืืฉื, ืืืืจืืืืืช
AArch64 ืืืกืืคื ืชืืืื ืืืืจืืืช SVE2 (Scalable Vector Extension 2) ื-MTE (Memory Tagging Extensions); ืืงืฆื ืืขืืจืคื ืฉื ARM, ื ืืกืคื ืชืืืื ืืืจืืืืงืืืจืช Armv8.1-M ืืืจืืื MVE (M-Profile Vector Extension). ืชืืืื ืืืจืืืืงืืืจืช GFX10 (Navi) ื ืืกืคื ืืงืฆื ืืืืืจื ืฉื AMDGPU, ืืืืืืช ืงืจืืืช ืคืื ืงืฆืืืช ืืืคืขืืืช ืืืจืืจืช ืืืื, ืืืขืืจ ืืฉืืื ืืืคืขืDPP (ืคืจืืืืืืืื ืืงืืืืื ืื ืชืื ืื). - ื-LLDB ืืืชืจ ืืืืืื ืืฉ ืืขืช ืืืืฉืช ืฆืืข ืขืืืจ ืืขืงืืื ืืืืืจ ืืชืืืื ื ืืกืคืช ืขืืืจ ืืืืงืื DWARF4 debug_types ื-DWARF5 debug_info;
- ืชืืืื ืืงืืืฆื ืืืืืืงื ืืืงืืฆื ืืคืขืื ืืคืืจืื COFF ื ืืกืคื ืืืื ืืฉืืจืืช llvm-objcopy ื-llvm-strip.
ืืงืืจ: OpenNet.ru