LLVM 9.0 เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชธเซเชฏเซเชŸเชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ

เชตเชฟเช•เชพเชธเชจเชพ เช› เชฎเชนเชฟเชจเชพ เชชเช›เซ€ เชชเซเชฐเชธเซเชคเซเชค เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเซเชฐเช•เชพเชถเชจ เชเชฒเชเชฒเชตเซ€เชเชฎ 9.0 โ€” GCC-เชธเซเชธเช‚เช—เชค เชธเชพเชงเชจเซ‹ (เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ, เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเชฐเซเชธ เช…เชจเซ‡ เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸเชฐ), RISC-เชœเซ‡เชตเซ€ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชธเซ‚เชšเชจเชพเช“ (เชฎเชฒเซเชŸเซ€-เชฒเซ‡เชตเชฒ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡ เชฒเซ‹-เชฒเซ‡เชตเชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ) เชจเชพ เช‡เชจเซเชŸเชฐเชฎเซ€เชกเชฟเชฏเซ‡เชŸ เชฌเซ€เชŸเช•เซ‹เชกเชฎเชพเช‚ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเซ‡ เช›เซ‡. เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เชธเซเชฏเซเชกเซ‹เช•เซ‹เชกเชจเซ‡ JIT เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชเช•เซเชเชฟเช•เซเชฏเซเชถเชจ เชธเชฎเชฏเซ‡ เชธเซ€เชงเชพ เชœ เชฎเชถเซ€เชจ เชธเซ‚เชšเชจเชพเช“เชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

LLVM 9.0 เชจเซ€ เชจเชตเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเช“เชฎเชพเช‚ เชฒเช•เซเชทเซเชฏ RISC-V เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐเชฅเซ€ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชกเชฟเชเชพเช‡เชจ เชŸเซ‡เช—เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพ, OpenCL เชฎเชพเชŸเซ‡ C++ เชธเชชเซ‹เชฐเซเชŸ, LLD เชฎเชพเช‚ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชฒเซ‹เชก เชฅเชฏเซ‡เชฒเชพ เชญเชพเช—เซ‹เชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ, เช…เชจเซ‡ "asm เชœเชพเช“", Linux เช•เชฐเซเชจเชฒ เช•เซ‹เชกเชฎเชพเช‚ เชตเชชเชฐเชพเชฏ เช›เซ‡. libc++ เช WASI (WebAssembly System Interface) เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐ เช‰เชฎเซ‡เชฐเซเชฏเซ‹, เช…เชจเซ‡ LLD เช WebAssembly เชกเชพเชฏเชจเซ‡เชฎเชฟเช• เชฒเชฟเช‚เช•เชฟเช‚เช— เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช†เชงเชพเชฐ เช‰เชฎเซ‡เชฐเซเชฏเซ‹.

เชธเซเชงเชพเชฐเชฃเชพ เชฐเชฃเช•เชพเชฐ 9.0 เชฎเชพเช‚:

  • เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ GCC-เชตเชฟเชถเชฟเชทเซเชŸ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเชจเซเช‚ เช…เชฎเชฒเซ€เช•เชฐเชฃ "asm เชœเชพเช“", เชœเซ‡ เชคเชฎเชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเชฐ เช‡เชจเชฒเชพเช‡เชจ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚เชฅเซ€ C เช•เซ‹เชกเชจเชพ เชฒเซ‡เชฌเชฒ เชชเชฐ เชœเชตเชพ เชฆเซ‡ เช›เซ‡. x86_64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชธเชฟเชธเซเชŸเชฎเซ‹ เชชเชฐ เช•เซเชฒเซ‡เช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ "CONFIG_JUMP_LABEL=y" เชฎเซ‹เชกเชฎเชพเช‚ Linux เช•เชฐเซเชจเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช† เชฒเช•เซเชทเชฃ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช…เช—เชพเช‰เชจเชพ เชชเซเชฐเช•เชพเชถเชจเซ‹เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชคเชพ, Linux เช•เชฐเซเชจเชฒเชจเซ‡ เชนเชตเซ‡ x86_64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เช•เซเชฒเซ‡เช‚เช—เชฎเชพเช‚ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เช…เช—เชพเช‰ เชฎเชพเชคเซเชฐ เช†เชฐเซเชฎ, aarch64, ppc32, ppc64le เช…เชจเซ‡ mips เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡เชจเซเช‚ เชฌเชพเช‚เชงเช•เชพเชฎ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชนเชคเซเช‚). เชตเชงเซเชฎเชพเช‚, เชเชจเซเชกเซเชฐเซ‹เช‡เชก เช…เชจเซ‡ เช•เซเชฐเซ‹เชฎเช“เชเชธ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเซ‡ เช•เชฐเซเชจเชฒ เชฌเชฟเชฒเซเชกเชฟเช‚เช— เชฎเชพเชŸเซ‡ เช•เซเชฒเซ‡เช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡, เช…เชจเซ‡ Google เชคเซ‡เชจเซ€ เช‰เชคเซเชชเชพเชฆเชจ Linux เชธเชฟเชธเซเชŸเชฎเซเชธ เชฎเชพเชŸเซ‡ เช•เชฐเซเชจเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซเช–เซเชฏ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชคเชฐเซ€เช•เซ‡ เช•เซเชฒเซ‡เช‚เช—เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚, เช…เชจเซเชฏ LLVM เช˜เชŸเช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชจเชฒ เชฌเชฟเชฒเซเชก เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ LLD, llvm-objcopy, llvm-ar, llvm-nm, เช…เชจเซ‡ llvm-objdump;
  • OpenCL เชฎเชพเช‚ C++17 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚. เชตเชฟเชถเชฟเชทเซเชŸ เชฒเช•เซเชทเชฃเซ‹เชฎเชพเช‚ เชธเชฐเชจเชพเชฎเชพเช‚ เชธเซเชฅเชพเชจ เชตเชฟเชถเซ‡เชทเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ, เชชเซเชฐเช•เชพเชฐ เช•เชพเชธเซเชŸเชฟเช‚เช— เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชจเชพเชฎเชพเช‚ เชธเซเชฅเชพเชจเชจเชพ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฃเชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเซเช‚, C เชฎเชพเชŸเซ‡ OpenCL เชฎเชพเช‚ เชตเซ‡เช•เซเชŸเชฐ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ€ เชœเซ‹เช—เชตเชพเชˆ, เช›เชฌเซ€เช“, เช‡เชตเซ‡เชจเซเชŸเซเชธ, เชšเซ‡เชจเชฒเซ‹ เชตเช—เซ‡เชฐเซ‡ เชฎเชพเชŸเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ OpenCL เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ€ เชนเชพเชœเชฐเซ€เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.
  • เชซเซเชฐเชจเซเชŸเชเชจเซเชก (เชชเชพเชฐเซเชธเชฟเช‚เช—, เช‡เชจเชฟเชถเชฟเชฏเชฒเชพเชˆเชเซ‡เชถเชจ) เช…เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชก (เช“เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชธเซเชŸเซ‡เชœ)เชจเชพ เชตเชฟเชตเชฟเชง เชคเชฌเช•เซเช•เชพเชจเชพ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชŸเชพเช‡เชฎ เชชเชฐ เชฐเชฟเชชเซ‹เชฐเซเชŸ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชตเชพ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชซเซเชฒเซ‡เช—เซเชธ โ€œ-ftime-traceโ€ เช…เชจเซ‡ โ€œ-ftime-trace-granularity=Nโ€ เช‰เชฎเซ‡เชฐเซเชฏเชพ. เชฐเชฟเชชเซ‹เชฐเซเชŸ json เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡ chrome://tracing เช…เชจเซ‡ speedscope.app เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡;
  • โ€œ__declspec(เชเชฒเซ‹เช•เซ‡เชŸเชฐ)โ€ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เช…เชจเซ‡ เชธเชพเชฅเซ‡เชจเซ€ เชกเซ€เชฌเช—เซ€เช‚เช— เชฎเชพเชนเชฟเชคเซ€เชจเซ€ เชœเชจเชฐเซ‡เชถเชจเชจเซ€ เช‰เชฎเซ‡เชฐเซ‡เชฒเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชœเซ‡ เชคเชฎเชจเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถเชจเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡;
  • C เชญเชพเชทเชพ เชฎเชพเชŸเซ‡, โ€œ__FILE_NAME__โ€ เชฎเซ‡เช•เซเชฐเซ‹ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ โ€œ__FILE__โ€ เชฎเซ‡เช•เซเชฐเซ‹ เชœเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเช‚เชชเซ‚เชฐเซเชฃ เชชเชพเชฅ เชตเชฟเชจเชพ เชฎเชพเชคเซเชฐ เชซเชพเช‡เชฒ เชจเชพเชฎเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡;
  • C++ เช เชชเชฐเชฟเชฎเชพเชฃ เช…เชจเซ‡ เชฆเชฒเซ€เชฒ เชชเซ‡เชŸเชฐเซเชจ, เชธเช‚เชฆเชฐเซเชญ เชชเซเชฐเช•เชพเชฐเซ‹, เชตเชณเชคเชฐ เชชเซเชฐเช•เชพเชฐ เช…เชจเซเชฎเชพเชจ, เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธ, เช‘เชŸเซ‹-เชœเชจเชฐเซ‡เชŸเซ‡เชก เชซเช‚เช•เซเชถเชจเซเชธ, เชฌเชฟเชฒเซเชŸ-เช‡เชจ เช‘เชชเชฐเซ‡เชŸเชฐเซเชธ เช…เชจเซ‡ เชตเชงเซ เชธเชนเชฟเชค เชตเชฟเชตเชฟเชง C++ เชธเซเชตเชฟเชงเชพเช“เชจเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เชเชกเซเชฐเซ‡เชธ เชธเซเชชเซ‡เชธ เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸเซเชธ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸเชจเซ‹ เชตเชฟเชธเซเชคเชพเชฐ เช•เชฐเซเชฏเซ‹ เช›เซ‡.
  • OpenCL, OpenMP เช…เชจเซ‡ CUDA เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เช•เซเชทเชฎเชคเชพเช“ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช†เชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ-เช‡เชจ OpenCL เชซเช‚เช•เซเชถเชจเซเชธเชจเชพ เช—เชฐเซเชญเชฟเชค เชธเชฎเชพเชตเซ‡เชถ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชธเชฎเชฐเซเชฅเชจเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ (โ€œ-fdeclare-opencl-builtinsโ€ เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡), cl_arm_integer_dot_product เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เช…เชจเซ‡ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชŸเซ‚เชฒเซเชธเชจเซ‹ เชตเชฟเชธเซเชคเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡;
  • เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเชพ เช•เชพเชฐเซเชฏเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชชเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช‰เชชเชฒเชฌเซเชง เชšเซ‡เช•เชฐ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชธเชฎเชฐเซเชฅเชฟเชค เชตเชฟเช•เชฒเซเชชเซ‹ ("-เชตเชฟเชถเซเชฒเซ‡เชทเช•-เชšเซ‡เช•เชฐ[-เชตเชฟเช•เชฒเซเชช]-เชธเชนเชพเชฏ", "-เชตเชฟเชถเซเชฒเซ‡เชทเช•-เชšเซ‡เช•เชฐ[-เชตเชฟเช•เชฒเซเชช]-เชนเซ‡เชฒเซเชช-เช†เชฒเซเชซเชพ" เช…เชจเซ‡ "-เชตเชฟเชถเซเชฒเซ‡เชทเช•-เชšเซ‡เช•เชฐ[-เชตเชฟเช•เชฒเซเชช]-เชธเชนเชพเชฏ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเซเชฏเชพ. "-เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ"). เชšเซ‡เชคเชตเชฃเซ€เช“เชจเซ‡ เชญเซ‚เชฒเซ‹ เชคเชฐเซ€เช•เซ‡ เช—เชฃเชตเชพ เชฎเชพเชŸเซ‡ "-เชตเชฟเชถเซเชฒเซ‡เชทเช•-werror" เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
    เชจเชตเชพ เชšเช•เชพเชธเชฃเซ€ เชฎเซ‹เชก เช‰เชฎเซ‡เชฐเซเชฏเชพ:

    • security.insecureAPI.DeprecatedOrUnsafeBufferHandling เชฌเชซเชฐเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชธเซเชฐเช•เซเชทเชฟเชค เชชเซเชฐเชฅเชพเช“ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡;
    • osx.MIGChecker MIG (Mach เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชœเชจเชฐเซ‡เชŸเชฐ) เช•เซ‹เชฒ เชจเชฟเชฏเชฎเซ‹เชจเชพ เช‰เชฒเซเชฒเช‚เช˜เชจเชจเซ€ เชถเซ‹เชง เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡;
    • เช–เซ‹เชŸเชพ XNU libkern เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฃเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ optin.osx.OSObjectCStyleCast;
    • LLVM เช•เซ‹เชกเชฌเซ‡เชเชฎเชพเช‚ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‹เชกเซ‡เชฒเชฟเช‚เช— เชšเช•เชพเชธเชฃเซ€ เช•เชพเชฐเซเชฏเซ‹เชจเชพ เชธเชฎเซ‚เชน เชธเชพเชฅเซ‡ apiModeling.llvm;
    • เชฌเชฟเชจ-เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• C++ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธ (optin.cplusplus เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚ UninitializedObject) เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชฅเชฟเชฐ เช•เซ‹เชก;
  • เช•เซเชฒเซ‡เช‚เช—-เชซเซ‹เชฐเซเชฎเซ‡เชŸ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เช C# เชญเชพเชทเชพเชฎเชพเช‚ เช•เซ‹เชก เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเซเชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ Microsoft เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเซ€ เช•เซ‹เชก เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฟเช‚เช— เชถเซˆเชฒเซ€ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡;
  • clang-cl, เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชฎเชพเชจเซเชก-เชฒเชพเช‡เชจ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช•เซ‡ เชœเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซเชŸเซเชกเชฟเชฏเซ‹เชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ cl.exe เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชธเชพเชฅเซ‡ เชตเชฟเช•เชฒเซเชช-เชธเซเชคเชฐเชจเซ€ เชธเซเชธเช‚เช—เชคเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฃเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เช•เชฎเชพเชจเซเชก-เชฒเชพเช‡เชจ เชตเชฟเช•เชฒเซเชชเซ‹ เชคเชฐเซ€เช•เซ‡ เช—เชฃเชตเชพ เช…เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชšเซ‡เชคเชตเชฃเซ€ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชนเซเชฏเซเชฐเชฟเชธเซเชŸเชฟเช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "clang-cl /diagnostic :caret /c test.cc" เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡;
  • เชจเชตเชพ เชšเซ‡เช•เชจเซ‹ เชฎเซ‹เชŸเซ‹ เชนเชฟเชธเซเชธเซ‹ linter clang-tidyเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ OpenMP API เชฎเชพเชŸเซ‡ เชšเซ‹เช•เซเช•เชธ เชตเชงเชพเชฐเชพเชจเชพ เชšเซ‡เช•เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡;
  • เชตเชฟเชธเซเชคเซƒเชค เชธเชฐเซเชตเชฐ เช•เซเชทเชฎเชคเชพเช“ clangd (เช•เซเชฒเชพเช‚เช— เชธเชฐเซเชตเชฐ), เชœเซ‡เชฎเชพเช‚ เชฌเซ‡เช•เช—เซเชฐเชพเช‰เชจเซเชก เช‡เชจเซเชกเซ‡เช•เซเชธ เชฌเชฟเชฒเซเชกเซ€เช‚เช— เชฎเซ‹เชก เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชธเช•เซเชทเชฎ เช›เซ‡, เช•เซ‹เชก เชธเชพเชฅเซ‡ เชธเช‚เชฆเชฐเซเชญเชฟเชค เช•เซเชฐเชฟเชฏเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ (เชšเชฒ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ, เช“เชŸเซ‹ เช…เชจเซ‡ เชฎเซ‡เช•เซเชฐเซ‹ เชตเซเชฏเชพเช–เซเชฏเชพเช“เชจเซเช‚ เชตเชฟเชธเซเชคเชฐเชฃ, เชเชธเซเช•เซ‡เชชเซเชก เชธเซเชŸเซเชฐเชฟเช‚เช—เซเชธเชจเซเช‚ เช…เชจเชธเซเช•เซ‡เชชเซเชกเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐ), เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชฐเชฃเช•เชพเชฐ-เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชคเชฐเชซเชฅเซ€ เชšเซ‡เชคเชตเชฃเซ€เช“, เชนเซ‡เชกเชฐ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชตเชฟเชธเซเชคเซƒเชค เชจเชฟเชฆเชพเชจ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชฐ เชชเชฆเชพเชจเซเช•เซเชฐเชฎ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเซ€;

เชฎเซเช–เซเชฏ เชจเชตเซ€เชจเชคเชพเช“ LLVM 9.0:

  • LLD เชฒเชฟเช‚เช•เชฐเชฎเชพเช‚ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชชเชพเชฐเซเชŸเซ€เชถเชจเชฟเช‚เช— เชธเซเชตเชฟเชงเชพ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เชเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชญเชพเช—เซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชเช• เช…เชฒเช— ELF เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡. เช† เชธเซเชตเชฟเชงเชพ เชคเชฎเชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเชพ เชฎเซเช–เซเชฏ เชญเชพเช—เชจเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡ เช“เชชเชฐเซ‡เชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชฎเซเชœเชฌ เช…เชจเซเชฏ เช˜เชŸเช•เซ‹เชจเซ‡ เชฒเซ‹เชก เช•เชฐเชถเซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชชเซ€เชกเซ€เชเชซ เชตเซเชฏเซ‚เช…เชฐเชจเซ‡ เช…เชฒเช— เชซเชพเช‡เชฒเชฎเชพเช‚ เช…เชฒเช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชชเซ€เชกเซ€เชเชซ เช–เซ‹เชฒเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชœ เชฒเซ‹เชก เชฅเชถเซ‡. เชซเชพเช‡เชฒ).

    เชเชฒเชเชฒเชกเซ€ เชฒเชฟเช‚เช•เชฐ เชธเชพเชฎเซ‡ เชฒเชพเชตเซเชฏเชพ arm32_7, arm64, ppc64le เช…เชจเซ‡ x86_64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ Linux เช•เชฐเซเชจเชฒเชจเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚.
    เชจเชตเชพ เชตเชฟเช•เชฒเซเชชเซ‹ "-" (stdout เชฎเชพเชŸเซ‡ เช†เช‰เชŸเชชเซเชŸ), "-[no-]allow-shlib-undefined", "-undefined-glob", "-nmagic", "-omagic", "-เช†เชถเซเชฐเชฟเชค-เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€", " - z ifunc-noplt" เช…เชจเซ‡ "-z เชธเชพเชฎเชพเชจเซเชฏ-เชชเซƒเชทเซเช -เช•เชฆ". AArch64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡, BTI (เชฌเซเชฐเชพเชจเซเชš เชŸเชพเชฐเซเช—เซ‡เชŸ เช‡เชจเซเชกเชฟเช•เซ‡เชŸเชฐ) เช…เชจเซ‡ PAC (เชชเซ‹เช‡เชจเซเชŸเชฐ เช“เชฅเซ‡เชจเซเชŸเชฟเช•เซ‡เชถเชจ เช•เซ‹เชก) เชธเซ‚เชšเชจเชพเช“ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. MIPS, RISC-V เช…เชจเซ‡ PowerPC เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เช›เซ‡. WebAssembly เชฎเชพเชŸเซ‡ เชกเชพเชฏเชจเซ‡เชฎเชฟเช• เชฒเชฟเช‚เช•เชฟเช‚เช— เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚;

  • libc++ เชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซ‹ เชซเช‚เช•เซเชถเชจเชจเซเช‚ เช•เชฆ, std::is_constant_evaluated, std::midpoint เช…เชจเซ‡ std::lerp, เชชเชฆเซเชงเชคเชฟเช“ "เชซเซเชฐเชจเซเชŸ" เช…เชจเซ‡ "เชฌเซ‡เช•" std::span เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, std::is_unbounded_array เช…เชจเซ‡ std::is_bounded_array เชชเซเชฐเช•เชพเชฐเซ‹เชจเชพ เชฒเช•เซเชทเชฃเซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. , std เช•เซเชทเชฎเชคเชพเช“ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡: :atomic. GCC 4.9 เชฎเชพเชŸเซ‡เชจเซ‹ เช†เชงเชพเชฐ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ (GCC 5.1 เช…เชจเซ‡ เชจเชตเชพ เชชเซเชฐเช•เชพเชถเชจเซ‹ เชธเชพเชฅเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡). เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เช†เชงเชพเชฐ เชตเชพเชธเซ€ (เชตเซ‡เชฌเชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเชฟเชธเซเชŸเชฎ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ, เชฌเซเชฐเชพเช‰เชเชฐเชจเซ€ เชฌเชนเชพเชฐ เชตเซ‡เชฌ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ);
  • เชจเชตเชพ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เช•เซ‡เชŸเชฒเซ€เช• เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚ bcmp เชฎเชพเช‚ memcmp เช•เซ‰เชฒเชจเซเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐ เชธเช•เซเชทเชฎ เช•เชฐเซเชฏเซเช‚. เชœเชฎเซเชช เช•เซ‹เชทเซเชŸเช•เซ‹ เชฎเชพเชŸเซ‡ เชฐเซ‡เชจเซเชœ เชšเซ‡เช•เชฟเช‚เช—เชจเซ€ เช…เชฎเชฒเซ€ เชฌเชพเชฆเชฌเชพเช•เซ€ เชœเซ‡เชฎเชพเช‚ เชจเซ€เชšเชฒเชพ เชธเซเชตเซ€เชš เชฌเซเชฒเซ‹เช•เซเชธ เชชเชนเซ‹เช‚เชšเซ€ เชจ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เชนเซ‹เชฏ เช…เชฅเชตเชพ เชœเซเชฏเชพเชฐเซ‡ เชธเซ‚เชšเชจเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจ เชฅเชคเซ‹ เชนเซ‹เชฏ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชŸเชพเชˆเชช เชตเซ‹เชˆเชก เชธเชพเชฅเซ‡ เชซเช‚เช•เซเชถเชจเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡;
  • RISC-V เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชฌเซ‡เช•เชเชจเซเชก เชธเซเชฅเชฟเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชนเชตเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชคเชฐเซ€เช•เซ‡ เชธเซเชฅเชฟเชค เชจเชฅเซ€ เช…เชจเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฌเชจเซ‡เชฒ เช›เซ‡. MAFDC เชเช•เซเชธเซเชŸเซ‡เชจเซเชถเชจเซเชธ เชธเชพเชฅเซ‡ RV32I เช…เชจเซ‡ RV64I เชธเซ‚เชšเชจเชพ เชธเซ‡เชŸ เชตเซ‡เชฐเชฟเช…เชจเซเชŸเซเชธ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เซ‹เชก เชœเชจเชฐเซ‡เชถเชจ เชธเชชเซ‹เชฐเซเชŸ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡;
  • X86, AArch64, ARM, SystemZ, MIPS, AMDGPU เช…เชจเซ‡ PowerPC เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ เช…เชธเช‚เช–เซเชฏ เชธเซเชงเชพเชฐเชพเช“ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡
    AArch64 เช SVE2 (เชธเซเช•เซ‡เชฒเซ‡เชฌเชฒ เชตเซ‡เช•เซเชŸเชฐ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ 2) เช…เชจเซ‡ MTE (เชฎเซ‡เชฎเชฐเซ€ เชŸเซ‡เช—เชฟเช‚เช— เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ) เชธเซ‚เชšเชจเชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚; ARM เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚, Armv8.1-M เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เช…เชจเซ‡ MVE (M-เชชเซเชฐเซ‹เชซเชพเช‡เชฒ เชตเซ‡เช•เซเชŸเชฐ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ) เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. GFX10 (Navi) เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ AMDGPU เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชซเช‚เช•เซเชถเชจ เช•เซ‰เชฒเชฟเช‚เช— เช•เซเชทเชฎเชคเชพเช“ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชธเช•เซเชทเชฎ เช›เซ‡, เช…เชจเซ‡ เชธเช‚เชฏเซเช•เซเชค เชชเชพเชธ เชธเช•เซเชฐเชฟเชฏ เชฅเชฏเซ‡เชฒ เช›เซ‡. DPP (เชกเซ‡เชŸเชพ-เชธเชฎเชพเช‚เชคเชฐ เช†เชฆเชฟเชฎ).

  • LLDB เชกเซ€เชฌเช—เชฐ เชชเชพเชธเซ‡ เชนเชตเซ‡ เชฌเซ‡เช•เชŸเซเชฐเซ‡เชธ เชฎเชพเชŸเซ‡ เช•เชฒเชฐ เชนเชพเช‡เชฒเชพเช‡เชŸเชฟเช‚เช— เช›เซ‡ เช…เชจเซ‡ DWARF4 debug_types เช…เชจเซ‡ DWARF5 debug_info เชฌเซเชฒเซ‹เช•เซเชธ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเซเชฏเซ‹ เช›เซ‡;
  • COFF เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เช…เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒเซ‹ เชฎเชพเชŸเซ‡เชจเซ‹ เช†เชงเชพเชฐ llvm-objcopy เช…เชจเซ‡ llvm-strip เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹