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

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

เชฐเชฃเช•เชพเชฐ 16.0 เชฎเชพเช‚ เชฎเซเช–เซเชฏ เชธเซเชงเชพเชฐเชพเช“:

  • เชกเชฟเชซเซ‰เชฒเซเชŸ C++/ObjC++ เชธเซเชŸเชพเชจเซเชกเชฐเซเชก gnu++17 (เช…เช—เชพเช‰ gnu++14) เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ GNU เชเช•เซเชธเซเชŸเซ‡เชจเซเชถเชจ เชธเชพเชฅเซ‡ C++17 เชธเซเชตเชฟเชงเชพเช“ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡. เชชเชพเช›เชฒเซ€ เชตเชฐเซเชคเชฃเซ‚เช• เชชเชฐเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ "-std=gnu++14" เชตเชฟเช•เชฒเซเชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.
  • C++20 เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‡ เชฒเช—เชคเซ€ เช…เชฆเซเชฏเชคเชจ เชธเซเชตเชฟเชงเชพเช“ เชฒเชพเช—เซ เช•เชฐเซ€:
    • เชถเชฐเชคเซ€ เชคเซเชšเซเช› เชตเชฟเชถเซ‡เชท เชธเชญเซเชฏ เช•เชพเชฐเซเชฏเซ‹,
    • เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชก เชฌเชพเชˆเชจเซเชกเชฟเช‚เช—เซเชธ เช•เซ‡เชชเซเชšเชฐ เช•เชฐเชตเซเช‚,
    • เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชจเซ€ เช…เช‚เชฆเชฐ เชธเชฎเชพเชจเชคเชพ เช“เชชเชฐเซ‡เชŸเชฐ,
    • เช•เซ‡เชŸเชฒเชพเช• เชธเช‚เชฆเชฐเซเชญเซ‹เชฎเชพเช‚ เชŸเชพเช‡เชชเชจเชพเชฎ เช•เซ€เชตเชฐเซเชกเชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชจเซ‹ เชตเชฟเช•เชฒเซเชช,
    • เช•เซŒเช‚เชธเชฎเชพเช‚ เชฎเชพเชจเซเชฏ เชเช•เช‚เชฆเชฐ เช†เชฐเช‚เชญ (โ€œAggr(val1, val2)โ€).
  • เชญเชตเชฟเชทเซเชฏเชจเชพ C++2b เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชธเซเชตเชฟเชงเชพเช“ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡:
    • เชธเช‚เชฏเซ‹เชœเชจ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชจเชพ เช…เช‚เชคเซ‡ เชฒเซ‡เชฌเชฒเซเชธ เชฎเซ‚เช•เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡,
    • เชธเซเชŸเซ‡เชŸเชฟเช• เช“เชชเชฐเซ‡เชŸเชฐ(),
    • เชธเซเชŸเซ‡เชŸเชฟเช• เช“เชชเชฐเซ‡เชŸเชฐ[],
    • char8_t เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชคเชคเชพ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡,
    • "\N{...}" เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชฎเชพเชจเซเชฏ เช…เช•เซเชทเชฐเซ‹เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡
    • เช•เซ‹เชจเซเชธเซเชŸเซ‡เช•เซเชธเชชเซเชฐ เชคเชฐเซ€เช•เซ‡ เชœเชพเชนเซ‡เชฐ เช•เชฐเชพเชฏเซ‡เชฒเชพ เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ "เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชจเซเชธเซเชŸเซ‡เช•เซเชธเชชเซเชฐ" เชคเชฐเซ€เช•เซ‡ เช˜เซ‹เชทเชฟเชค เชšเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชพเชˆ.
  • เชญเชพเชตเชฟ C-เชธเซเชŸเชพเชจเซเชกเชฐเซเชก C2x เชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชธเซเชตเชฟเชงเชพเช“ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡:
    • "-Wunused-label" เชšเซ‡เชคเชตเชฃเซ€เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, "[[maybe_unused]]" เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸเชจเซ‡ เชฒเซ‡เชฌเชฒ เชชเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡
    • เชคเซ‡เชจเซ‡ เชธเช‚เชฏเซ‹เชœเชจ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชฎเชพเช‚ เช—เชฎเซ‡ เชคเซเชฏเชพเช‚ เชฒเซ‡เชฌเชฒ เชฎเซ‚เช•เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡,
    • typeof เช…เชจเซ‡ typeof_unqual เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เช‰เชฎเซ‡เชฐเซเชฏเชพ,
    • เชเช• เชจเชตเซ‹ เชชเซเชฐเช•เชพเชฐ nullptr_t เช…เชจเซ‡ nullptr เช•เซ‹เชจเซเชธเซเชŸเชจเซเชŸ เชจเชฒ เชชเซ‹เช‡เชจเซเชŸเชฐเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เชœเซ‡ เช•เซ‹เชˆเชชเชฃ เชชเซ‹เช‡เชจเซเชŸเชฐ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ NULL เชจเชพ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เช…เชจเซ‡ เชฐเชฆเชฌเชพเชคเชฒ* เชชเซเชฐเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชฌเช‚เชงเชพเชฏเซ‡เชฒ เชจเชฅเซ€.
    • C2x เชฎเซ‹เชกเชฎเชพเช‚, va_start เชฎเซ‡เช•เซเชฐเซ‹เชจเซ‡ เชฆเชฒเซ€เชฒเซ‹เชจเซ€ เชšเชฒ เชธเช‚เช–เซเชฏเชพ (เชตเซ‡เชฐเชฟเชฏเซ‡เชกเชฟเช•) เชธเชพเชฅเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡.
  • C99, C11, เช…เชจเซ‡ C17 เช…เชจเซเชชเชพเชฒเชจ เชฎเซ‹เชกเซเชธเชฎเชพเช‚, เชกเชฟเชซเซ‰เชฒเซเชŸ เชตเชฟเช•เชฒเซเชชเซ‹ "-Wimplicit-function-declaration" เช…เชจเซ‡ "-Wimplicit-int" เชนเชตเซ‡ เชšเซ‡เชคเชตเชฃเซ€เชจเซ‡ เชฌเชฆเชฒเซ‡ เชญเซ‚เชฒ เชชเซ‡เชฆเชพ เช•เชฐเซ‡ เช›เซ‡.
  • C++ เชฎเซ‹เชกเชฎเชพเช‚ "void *" (เชฆเชพ.เชค. "void func(void *p) { *p; }") เชจเซ‹ เชชเชฐเซ‹เช•เซเชท เช‰เชชเชฏเซ‹เช— เชนเชตเซ‡ ISO C++, GCC, ICC เช…เชจเซ‡ MSVC เชœเซ‡เชตเซ€ เชญเซ‚เชฒ เชชเซ‡เชฆเชพ เช•เชฐเซ‡ เช›เซ‡.
  • เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸ-เชถเซˆเชฒเซ€เชจเชพ เช‡เชจเชฒเชพเช‡เชจ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚ เชธเซ‚เชšเชจเชพ เช“เชชเชฐเซ‡เชจเซเชกเซเชธ (เชฆเชพ.เชค. "__asm โ€‹โ€‹{ mov eax, s.bf }") เชคเชฐเซ€เช•เซ‡ เชฌเซ€เชŸเชซเชฟเชฒเซเชกเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชฅเซ€ เชนเชตเซ‡ เชญเซ‚เชฒ เชธเชฐเซเชœเชพเชฏ เช›เซ‡.
  • เชตเชฟเชตเชฟเชง เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชฎเชพเช‚ เชธเชฎเชพเชจ เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เชตเชฟเชตเชฟเชง เชฌเช‚เชงเชพเชฐเชฃเซ‹ เช…เชจเซ‡ เชฏเซเชจเชฟเชฏเชจเซ‹เชจเซ€ เชนเชพเชœเชฐเซ€ เชฎเชพเชŸเซ‡ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเชพ.
  • OpenCL เช…เชจเซ‡ OpenMP เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒเซ€ เช•เซเชทเชฎเชคเชพเช“ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. OpenCL เช•เชฐเซเชจเชฒ เชฆเชฒเซ€เชฒเซ‹เชฎเชพเช‚ เชตเชชเชฐเชพเชคเชพ C++ เชจเชฎเซ‚เชจเชพเช“ เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ. AMDGPU เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เช•เชคเชพเชฐ เชฌเซเชฒเซ‹เช• เช†เชงเชพเชฐ. nounwind เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸ เชฌเชงเชพ เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ เช…เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฌเชฟเชฒเซเชŸ-เช‡เชจ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ.
  • เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ CLANG_CRASH_DIAGNOSTICS_DIR เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช•เซเชฐเซ‡เชถ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชกเซ‡เชŸเชพ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.
  • เชฏเซเชจเชฟเช•เซ‹เชก เชธเชชเซ‹เชฐเซเชŸเชจเซ‡ เชฏเซเชจเชฟเช•เซ‹เชก 15.0 เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃเชฎเชพเช‚ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช“เชณเช–เช•เชฐเซเชคเชพเช“เชฎเชพเช‚ เช•เซ‡เชŸเชฒเชพเช• เช—เชพเชฃเชฟเชคเชฟเช• เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ "โ‚Š" (เชฆเชพ.เชค. "เชกเชฌเชฒ xโ‚–โ‚Šโ‚").
  • เชฌเชนเซเชตเชฟเชง เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒเซ‹ เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เช†เชงเชพเชฐ (เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒเซ‹ เชชเชนเซ‡เชฒเชพ เชฒเซ‹เชก เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡ โ€œ--config=โ€ เชซเซเชฒเซ‡เช— เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชนเชตเซ‡ เช˜เชฃเซ€ เชตเช–เชค เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡). เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒเซ‹เชจเซ‹ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฒเซ‹เชกเชฟเช‚เช— เช•เซเชฐเชฎ เชฌเชฆเชฒเซเชฏเซ‹: เช•เซเชฒเซ‡เช‚เช— เชชเชนเซ‡เชฒเชพ เชซเชพเชˆเชฒ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡ - .cfg, เช…เชจเซ‡ เชœเซ‹ เชคเซ‡ เชจ เชฎเชณเซ‡ เชคเซ‹ เชคเซ‡ เชฌเซ‡ เชซเชพเช‡เชฒเซ‹ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡ .cfg เช…เชจเซ‡ .cfg. เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซเช‚ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, โ€œ--เชจเซ‹-เชกเชฟเชซเซ‹เชฒเซเชŸ-เชฐเซ‚เชชเชฐเซ‡เช–เชพโ€ เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.
  • เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฌเชฟเชฒเซเชกเซเชธเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, SOURCE_DATE_EPOCH เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชตเซ‡เชฐเซ€เชเชฌเชฒเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชธเชฎเชฏ เชธเชพเชฅเซ‡ __DATE__, __TIME__ เช…เชจเซ‡ __TIMESTAMP__ เชฎเซ‡เช•เซเชฐเซ‹เชฎเชพเช‚ เชตเชฐเซเชคเชฎเชพเชจ เชคเชพเชฐเซ€เช– เช…เชจเซ‡ เชธเชฎเชฏ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชฌเชฆเชฒเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡.
  • เชธเซเชฅเชฟเชฐเชพเช‚เช•เซ‹เชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเชˆ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเช‚เช•เซเชถเชจเซเชธ (เชฌเชฟเชฒเซเชŸเชฟเชจ) เชจเซ€ เชนเชพเชœเชฐเซ€ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡, เชฎเซ‡เช•เซเชฐเซ‹ โ€œ__has_constexpr_builtinโ€ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.
  • เชธเช‚เชฐเซ‡เช–เชฟเชค เช•เซ‹เชฐเซ‹เชŸเซ€เชจ เชซเซเชฐเซ‡เชฎ เชซเชพเชณเชตเชฃเซ€ เชฎเชพเชŸเซ‡ เชจเชตเซ‹ เชธเช‚เช•เชฒเชจ เชงเซเชตเชœ "-fcoro-aligned-alocation" เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
  • โ€œ-fstrict-flex-arrays=โ€ เชซเซเชฒเซ‡เช— เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชธเชฎเชพเช‚ เชซเซเชฒเซ‡เช•เซเชธเชฟเชฌเชฒ เชเชฐเซ‡ เชคเชคเซเชตเซ‹เชจเซ€ เชšเช•เชพเชธเชฃเซ€เชจเชพ เชคเซเชฐเซ€เชœเชพ เชธเซเชคเชฐ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡ (เชฒเชตเชšเซ€เช• เชเชฐเซ‡ เชธเชญเซเชฏเซ‹, เชฌเช‚เชงเชพเชฐเชฃเชจเชพ เช…เช‚เชคเซ‡ เช…เชจเชฟเชถเซเชšเชฟเชค เช•เชฆเชจเซ€ เชเชฐเซ‡). เชคเซเชฐเซ€เชœเชพ เชธเซเชคเชฐ เชชเชฐ, เชซเช•เซเชค "[]" (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "int b[]") เชฎเชพเชชเชจเซ‡ เชฒเชตเชšเซ€เช• เชเชฐเซ‡ เชคเชฐเซ€เช•เซ‡ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช•เชฆ "[0]" (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "int b[0]") เชจเชฅเซ€.
  • เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค C++ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชฎเชพเชŸเซ‡ เชธเชฟเช‚เช—เชฒ-เชซเซ‡เช เช•เชฎเซเชชเชพเช‡เชฒเซ‡เชถเชจ เชฎเซ‹เชกเชฒเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-fmodule-output" เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
  • เชธเซเชŸเซ‡เช• เชซเซเชฐเซ‡เชฎ เชฒเซ‡เช†เช‰เชŸ เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพเช“เชจเซเช‚ เชจเชฟเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-Rpass-analysis=stack-frame-layout" เชฎเซ‹เชก เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
  • AArch1 เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชตเชฟเชถเซ‡เชทเชคเชพเช“เชจเชพ เชตเชฟเชถเชฟเชทเซเชŸ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซ€ เชตเชฟเชถเซ‡เชทเชคเชพ __attribute__((target_version("cpu_features"))) เช‰เชฎเซ‡เชฐเซ€ เช…เชจเซ‡ เชตเชฟเชถเซ‡เชทเชคเชพ __attribute__((target_clones("cpu_features2","cpu_features64",...))) เชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ€. CPUs.
  • เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชธเชพเชงเชจเซ‹ เชตเชฟเชธเซเชคเซƒเชค:
    • เชธเชฟเช‚เช—เชฒ-เชฌเซ€เชŸ เชนเชธเซเชคเชพเช•เซเชทเชฐเชฟเชค เชฌเซ€เชŸเชซเชฟเชฒเซเชกเชจเซ‡ เชธเซ‹เช‚เชชเชคเซ€ เชตเช–เชคเซ‡ เช—เชฐเซเชญเชฟเชค เช•เชพเชชเชจเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ "-Wsingle-bit-bitfield-constant-conversion" เชšเซ‡เชคเชตเชฃเซ€ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€.
    • เชฌเชฟเชจ-เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช•เซ‹เชจเซเชธเซเชŸเซ‡เช•เซเชธเชชเซเชฐ เชšเชฒเซ‹เชจเซเช‚ เชจเชฟเชฆเชพเชจ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.
    • เชซเช‚เช•เซเชถเชจ เชชเซเชฐเช•เชพเชฐ เช•เชพเชธเซเชŸเชฟเช‚เช— เชธเชพเชฅเซ‡ เชธเช‚เชญเชตเชฟเชค เชธเชฎเชธเซเชฏเชพเช“ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ "-Wcast-function-type-strict" เช…เชจเซ‡ "-Wincompatible-function-pointer-types-strict" เชšเซ‡เชคเชตเชฃเซ€เช“ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.
    • เชจเชฟเช•เชพเชธ เชฌเซเชฒเซ‹เช•เซเชธเชฎเชพเช‚ เช–เซ‹เชŸเชพ เช…เชฅเชตเชพ เช†เชฐเช•เซเชทเชฟเชค เชฎเซ‹เชกเซเชฏเซเชฒ เชจเชพเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเชพ.
    • เชตเซเชฏเชพเช–เซเชฏเชพเช“เชฎเชพเช‚ เช—เซเชฎ เชฅเชฏเซ‡เชฒ "เช“เชŸเซ‹" เช•เซ€เชตเชฐเซเชกเซเชธเชจเซ€ เชธเซเชงเชพเชฐเซ‡เชฒ เชถเซ‹เชง.
    • "-เชตเชฟเชจเซเชŸเซ‡เชœเชฐ-เช“เชตเชฐเชซเซเชฒเซ‹" เชšเซ‡เชคเชตเชฃเซ€เชจเชพ เช…เชฎเชฒเชฅเซ€ เช“เชตเชฐเชซเซเชฒเซ‹ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชคเซ€ เชตเชงเชพเชฐเชพเชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“ เชฎเชพเชŸเซ‡ เชคเชชเชพเชธ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.
  • LoongArch เชธเซ‚เชšเชจเชพ เชธเซ‡เชŸ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ (-march=loongarch64 เช…เชฅเชตเชพ -march=la464) เชฎเชพเชŸเซ‡ เช…เชฎเชฒเซ€ เชธเชชเซ‹เชฐเซเชŸ, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— Loongson 3 5000 เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ MIPS เช…เชจเซ‡ RISC-V เชจเซ€ เชœเซ‡เชฎ เชœ เชจเชตเชพ RISC ISA เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡.

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

  • LLVM เช•เซ‹เชกเชจเซ‡ C++17 เชงเซ‹เชฐเชฃเชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชคเชคเซเชตเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡.
  • เชเชฒเชเชฒเชตเซ€เชเชฎ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹เชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เชฌเชฟเชฒเซเชก เชŸเซ‚เชฒเซเชธ เชนเชตเซ‡ C++17 เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ GCC 7.1, Clang 5.0, Apple Clang 10.0 เช…เชฅเชตเชพ Visual Studio 2019 16.7เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  • AArch64 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชฌเซ‡เช•เชเชจเซเชก Cortex-A715, Cortex-X3 เช…เชจเซ‡ Neoverse V2 CPUs, RME MEC (เชฎเซ‡เชฎเชฐเซ€ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เชธเช‚เชฆเชฐเซเชญเซ‹), Armv8.3 เชเช•เซเชธเซเชŸเซ‡เชจเซเชถเชจเซเชธ (เช•เซ‹เชฎเซเชชเซเชฒเซ‡เช•เซเชธ เชจเช‚เชฌเชฐ) เช…เชจเซ‡ เชซเช‚เช•เซเชถเชจ เชฎเชฒเซเชŸเซ€ เชตเชฐเซเชเชจเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเชฐ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡.
  • ARM เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡เชจเชพ เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚, Armv2, Armv2A, Armv3 เช…เชจเซ‡ Armv3M เชฒเช•เซเชทเซเชฏ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชธเชพเชšเชพ เช•เซ‹เชกเชจเซ€ เชœเชจเชฐเซ‡เชถเชจเชจเซ€ เช–เชพเชคเชฐเซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชจเชฅเซ€. เชœเชŸเชฟเชฒ เชธเช‚เช–เซเชฏเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเซ€.
  • X86 เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡เชจเชพ เชฌเซ‡เช•เชเชจเซเชกเซ‡ เชˆเชจเซเชธเซเชŸเซเชฐเช•เซเชถเชจ เชธเซ‡เชŸ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเซเชธ (ISAs) AMX-FP16, CMPCCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเซเชฏเซ‹ เช›เซ‡. RDMSRLIST, RMSRLIST เช…เชจเซ‡ WRMSRNS เชธเซ‚เชšเชจเชพเช“ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เช†เชงเชพเชฐ. "-mcpu=raptorlake", "-mcpu=meteorlake", "-mcpu=emeraldrapids", "-mcpu=sierraforest", "-mcpu=graniterapids" เช…เชจเซ‡ "-mcpu=grandridge" เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชพเชฏเซ‡เชฒ เช›เซ‡.
  • LoongArch เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚.
  • MIPS, PowerPC เช…เชจเซ‡ RISC-V เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชฌเซ‡เช•เชเชจเซเชก
  • LLDB เชกเชฟเชฌเช—เชฐเชฎเชพเช‚ LoongArch เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ 64-เชฌเซ€เชŸ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒเชจเซ‡ เชกเชฟเชฌเช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชพเชฏเซ‹. COFF เชกเซ€เชฌเช— เชชเซเชฐเชคเซ€เช•เซ‹เชจเซเช‚ เชธเซเชงเชพเชฐเซ‡เชฒ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช—. เชฒเซ‹เชก เช•เชฐเซ‡เชฒเชพ เชตเชฟเชจเซเชกเซ‹เช เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เชกเซเชชเซเชฒเชฟเช•เซ‡เชŸ เชกเซ€เชเชฒเชเชฒเชจเซเช‚ เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช— เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.
  • Libc++ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชฎเชพเช‚, เชฎเซเช–เซเชฏ เช•เชพเชฐเซเชฏ C++20 เช…เชจเซ‡ C++23 เชงเซ‹เชฐเชฃเซ‹เชจเซ€ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เชฎเชพเชŸเซ‡ เช†เชงเชพเชฐเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชชเชฐ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เชนเชคเซเช‚.
  • เชเชฒเชกเซ€เชกเซ€ เชฒเชฟเชจเซเช•เชฐ เชธเชฐเชจเชพเชฎเชพเช‚ เชฐเชฟเชฒเซ‹เช•เซ‡เชถเชจ เชธเซเช•เซ‡เชจเชฟเช‚เช— เช…เชจเซ‡ เชธเซ‡เช•เซเชถเชจ เช‡เชจเชฟเชถเชฟเชฏเชฒเชพเช‡เชเซ‡เชถเชจ เช‘เชชเชฐเซ‡เชถเชจเชจเซ‡ เชธเชฎเชพเช‚เชคเชฐ เช•เชฐเซ€เชจเซ‡ เชฒเชฟเช‚เช•เชฟเช‚เช— เชธเชฎเชฏเชจเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เช˜เชŸเชพเชกเซ‡ เช›เซ‡. ZSTD เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซ‡เช•เซเชถเชจ เช•เชฎเซเชชเซเชฐเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚.

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

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