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

เช› เชฎเชนเชฟเชจเชพเชจเชพ เชตเชฟเช•เชพเชธ เชชเช›เซ€, LLVM 22.1.0 เชฐเชฟเชฒเซ€เช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชคเซ‡ เชเชตเชพ เชธเชพเชงเชจเซ‹ (เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ, เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเชฐเซเชธ เช…เชจเซ‡ เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸเชฐ) เชตเชฟเช•เชธเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ RISC เชœเซ‡เชตเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชธเซ‚เชšเชจเชพเช“ (เชฎเชฒเซเชŸเชฟ-เชฒเซ‡เชตเชฒ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจ เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡เชจเซเช‚ เชฒเซ‹-เชฒเซ‡เชตเชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ) เชจเชพ เช‡เชจเซเชŸเชฐเชฎเซ€เชกเชฟเชฏเซ‡เชŸ เชฌเซ€เชŸเช•เซ‹เชกเชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเซ‡ เช›เซ‡. เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เชธเซเชฏเซเชกเซ‹เช•เซ‹เชกเชจเซ‡ เช†เชชเซ‡เชฒ เชŸเชพเชฐเซเช—เซ‡เชŸ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชฎเชถเซ€เชจ เช•เซ‹เชกเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชฅเชตเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชเช•เซเชเชฟเช•เซเชฏเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเซ€เชงเชพ เชฎเชถเซ€เชจ เชธเซ‚เชšเชจเชพเช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชธเซเชŸ-เช‡เชจ-เชŸเชพเช‡เชฎ (JIT) เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเชˆ เชถเช•เชพเชฏ เช›เซ‡. LLVM เชŸเซ‡เช•เชจเซ‹เชฒเซ‹เชœเซ€เชจเชพ เช†เชงเชพเชฐเซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซเชฒเซ…เช‚เช— เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชตเชฟเช•เชธเชพเชตเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เชœเซ‡ C, C++ เช…เชจเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸเชฟเชต-C เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. 18.x เชถเชพเช–เชพเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชจเชตเซ€ เช†เชตเซƒเชคเซเชคเชฟ เชจเช‚เชฌเชฐเชฟเช‚เช— เชธเซเช•เซ€เชฎ เชชเชฐ เชธเซเชตเชฟเชš เชฅเชฏเซ‹, เชœเซ‡ เชฎเซเชœเชฌ เชตเชฟเช•เชพเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฐเชฟเชฒเซ€เช 0 ("N.0") เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชชเซเชฐเชฅเชฎ เชธเซเชฅเชฟเชฐ เชธเช‚เชธเซเช•เชฐเชฃ "N.1" เชจเช‚เชฌเชฐ เชฅเชฏเซ‡เชฒ เช›เซ‡.

เชฐเชฃเช•เชพเชฐ 22 เชฎเชพเช‚ เชธเซเชงเชพเชฐเชพเช“เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡:

  • เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชŸเซ‹เช•เชจเซเชธ (เชเชฒเซ‹เช•เซ‡เชถเชจ เชŸเซ‹เช•เชจเซเชธ) เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ, เช…เชจเชจเซเชฏ เช“เชณเช–เช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ malloc เชœเซ‡เชตเชพ เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชซเชพเชณเชตเชฃเซ€ เชŸเซ‹เช•เชจเซเชธ เชนเซ€เชช เชฎเชพเชนเชฟเชคเซ€เชจเซเช‚ เชฎเชพเชณเช–เซเช‚ เชฌเชจเชพเชตเชตเชพ, เชฎเซ‡เชฎเชฐเซ€ เชฒเซ€เช• เชถเซ‹เชงเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชนเซ‡เชคเซ เช…เชฅเชตเชพ เชซเซ‡เชฐเชซเชพเชฐ เชชเซ‡เชŸเชฐเซเชจเชจเชพ เช†เชงเชพเชฐเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธเชจเชพ เชœเซ‚เชฅเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ (เชฆเชพ.เชค., "เช—เชฐเชฎ" เชจเซ‡ "เช เช‚เชกเชพ" เชกเซ‡เชŸเชพเชฅเซ€ เช…เชฒเช— เช•เชฐเชตเซเช‚). เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, "-fsanitize=alloc-token" เชซเซเชฒเซ‡เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.
  • เชธเซ€ เชญเชพเชทเชพ เชธเช‚เชฌเช‚เชงเชฟเชค เชธเซเชตเชฟเชงเชพเช“:
    • "เชกเชฟเชซเชฐ" เชกเชฟเชซเชฐเซเชก เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชคเซ€ เชกเซเชฐเชพเชซเซเชŸ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเช•เซ‹เชช เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ‡ เชคเซเชฏเชพเชฐเซ‡ เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. "เชกเชฟเชซเชฐ" เชธเชชเซ‹เชฐเซเชŸเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-fdefer-ts" เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡.
    • เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเช‚เช•เซเชถเชจ __builtin_stack_address() เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ GCC เชฎเชพเช‚ เชธเชฎเชพเชจ เชซเช‚เช•เซเชถเชจเชจเซ‡ เชชเซเชฐเชคเชฟเชฌเชฟเช‚เชฌเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เช† เชซเช‚เช•เซเชถเชจ __builtin_stack_address() เชจเชพเชฎเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชซเช‚เช•เซเชถเชจเชจเชพ เชธเซเชŸเซ‡เช• เชเชฐเชฟเชฏเชพ เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€เชจเชพ เชซเช‚เช•เซเชถเชจเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซ‡ เช…เชฒเช— เช•เชฐเชคเซเช‚ เชธเซเชŸเซ‡เช• เชเชกเซเชฐเซ‡เชธ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.
  • เชญเชตเชฟเชทเซเชฏเชจเชพ C2y เชงเซ‹เชฐเชฃ เชฎเชพเชŸเซ‡ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ‡เชฒเซ€ เช•เซเชทเชฎเชคเชพเช“:
    • เชจเชพเชฎเชพเช‚เช•เชฟเชค เชฒเซ‚เชชเซเชธ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ, เชœเซ‡ เชคเชฎเชจเซ‡ เชฒเซ‚เชชเซเชธเชจเซ‡ เชจเชพเชฎเซ‹ เชธเซ‹เช‚เชชเชตเชพ เช…เชจเซ‡ เชธเซเชŸเซ‡เชŸเชฎเซ‡เชจเซเชŸ เชธเซเชตเชฟเชš เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‡ เชฌเซเชฐเซ‡เช• เช…เชจเซ‡ เช•เชจเซเชŸเชฟเชจเซเชฏเซ เชธเซเชŸเซ‡เชŸเชฎเซ‡เชจเซเชŸเชฎเชพเช‚ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชœเซ‡เชฅเซ€ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชฒเซ‚เชชเชจเซ‡ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ. outer: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { continue; // go to CONT1 continue outer; // go to CONT2 // CONT1 } // CONT2 }
    • เช…เชจเชจเซเชฏ เช“เชณเช–เช•เชฐเซเชคเชพ เชจเชพเชฎเซ‹ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เชฌเชฟเชฒเซเชŸ-เช‡เชจ "__COUNTER__" เชฎเซ‡เช•เซเชฐเซ‹เชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชงเซ‹เชฐเชฃเชฎเชพเช‚ เชธเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช† เชฎเซ‡เช•เซเชฐเซ‹ เชชเชฐ 2147483647 เช•เซ‹เชฒเซเชธเชจเซ€ เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡; เช† เชฎเชฐเซเชฏเชพเชฆเชพ เช“เชณเช‚เช—เชตเชพเชฅเซ€ เชญเซ‚เชฒ เชฅเชถเซ‡.
    • "เชฌเชพเชนเซเชฏ เช‡เชจเชฒเชพเช‡เชจ" เชคเชฐเซ€เช•เซ‡ เชœเชพเชนเซ‡เชฐ เช•เชฐเชพเชฏเซ‡เชฒเชพ เชซเช‚เช•เซเชถเชจเซเชธเชจเซ€ เช…เช‚เชฆเชฐ เชธเซเชŸเซ‡เชŸเชฟเช• เชซเช‚เช•เซเชถเชจเซเชธ เช…เชฅเชตเชพ เชšเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชšเซ‡เชคเชตเชฃเซ€ (-Wstatic-in-inline) เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€.
  • C23 C เชงเซ‹เชฐเชฃเชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เซเชทเชฎเชคเชพเช“:
    • float.h เชนเซ‡เชกเชฐ เชซเชพเช‡เชฒ เชนเชตเซ‡ FLT_SNAN, DBL_SNAN, เช…เชจเซ‡ LDBL_SNAN เชฎเซ‡เช•เซเชฐเซ‹เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชซเซเชฒเซ‹เชŸ, เชกเชฌเชฒ เช…เชจเซ‡ เชฒเซ‹เช‚เช— เชกเชฌเชฒ เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เชธเชฟเช—เซเชจเชฒเซเชก (เช…เช‚เช•เช—เชฃเชฟเชค เช•เชพเชฎเช—เซ€เชฐเซ€เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเซ€ เชตเช–เชคเซ‡ เช…เชชเชตเชพเชฆเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡) NaN เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡.
    • เชเช• เชœ เชญเชพเชทเชพเช‚เชคเชฐ เชเช•เชฎเชฎเชพเช‚ เชœเซ‹ เชธเชฎเชพเชจ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เชนเซ‹เชฏ เชคเซ‹ เชตเชฟเชตเชฟเชง เช…เชจเชพเชฎเซ€ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‡ เชธเซเชธเช‚เช—เชค เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชนเชคเชพ เชคเซ‡ เชฌเช—เชจเซ‡ เชธเซเชงเชพเชฐเซ€.
    • เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€ เชธเซเช•เซ‡เชจเชฟเช‚เช— เชฆเชฐเชฎเชฟเชฏเชพเชจ เช—เซเชฎ เชฅเชฏเซ‡เชฒ เชนเซ‡เชกเชฐ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เช…เชตเช—เชฃเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชคเซ‹ "-MG" เชซเซเชฒเซ‡เช— "#embed" เชกเชพเชฏเชฐเซ‡เช•เซเชŸเชฟเชตเซเชธ เชธเซเชงเซ€ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ เชนเชตเซ‡ เชœเซเชฏเชพเชฐเซ‡ "#embed" เชกเชพเชฏเชฐเซ‡เช•เซเชŸเชฟเชตเชฎเชพเช‚ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชซเชพเช‡เชฒ เช—เซเชฎ เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ "เชซเชพเช‡เชฒ เชฎเชณเซ€ เชจเชฅเซ€" เชญเซ‚เชฒเชจเซ‡ เชฆเชฌเชพเชตเซ€ เชฆเซ‡ เช›เซ‡.
  • C++ เชธเช‚เชฌเช‚เชงเชฟเชค เชธเซเชตเชฟเชงเชพเช“:
    • C++2c (C++26) เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃเชฎเชพเช‚ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ "constexpr" เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชก เชฌเชพเชˆเชจเซเชกเชฟเช‚เช—เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชธเชคเชค เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชจเชพ เชธเช‚เชฆเชฐเซเชญเซ‹ เชนเชตเซ‡ เชชเซ‹เชคเซ‡ เชธเชคเชค เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชเชฐเซ‡ เช…เชจเซ‡ เชธเชฐเชณ เชฎเชพเชณเช–เชพ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ (เชŸเซเชฏเซเชชเชฒเซเชธ เชนเชœเซ เชธเซเชงเซ€ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชจเชฅเซ€). constexpr int arr[] = {1, 2}; constexpr auto [x, y] = arr;
    • C++20 เชธเซเชŸเชพเชจเซเชกเชฐเซเชก เชฆเซเชตเชพเชฐเชพ เช†เชตเชถเซเชฏเช•เชคเชพ เชฎเซเชœเชฌ, เชนเชตเซ‡ เชšเช•เชพเชธเชฃเซ€ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เช…เชตเชฐเซ‹เชงเซ‹เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชตเชงเซ เชธเชšเซ‹เชŸ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชธเช‚เชฆเซ‡เชถเชพเช“ เช…เชจเซ‡ เชซเช•เซเชค เช•เซ‹เชจเซเชธเซ‡เชชเซเชŸ-เช†เช‡เชกเซ€เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชฆเชฒเซ€เชฒเซ‹เชฎเชพเช‚ เช…เชตเซ‡เชœเซ€ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชฏเซ‹เช—เซเชฏ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
    • "<", ">", "<=", เช…เชจเซ‡ ">=" เชธเชฐเช–เชพเชฎเชฃเซ€ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ "<=>" เช“เชชเชฐเซ‡เชŸเชฐเชฎเชพเช‚เชฅเซ€ เชธเช‚เชถเซเชฒเซ‡เชทเชฟเชค เชฅเชฏเชพ เชนเชคเชพ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ "__builtin_[lt|gt|le|ge]_synthesizes_from_spaceship" เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเช‚เช•เซเชถเชจเซเชธเชจเซ‹ เชเช• เชชเชฐเชฟเชตเชพเชฐ เช‰เชฎเซ‡เชฐเซเชฏเซ‹.
    • "-Wincompatible-pointer-types" เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชจเซ‡ เชšเซ‡เชคเชตเชฃเซ€เชจเซ‡ เชฌเชฆเชฒเซ‡ เชญเซ‚เชฒ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชชเชพเช›เชฒเชพ เชตเชฐเซเชคเชจ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเชตเชพ เชฎเชพเชŸเซ‡, "-Wno-error=incompatible-pointer-types" เชตเชฟเช•เชฒเซเชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.
  • เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเช‚เช•เซเชถเชจเซเชธ __builtin_bswapg, __builtin_elementwise_ldexp, __builtin_elementwise_fshl, __builtin_elementwise_fshr, __builtin_elementwise_minnumnum, __builtin_elementwise_maxnumnum, __builtin_masked_load, __builtin_masked_expand_load, __builtin_masked_store, __builtin_masked_compress_store, __builtin_masked_gather, __builtin_masked_scatter, เช…เชจเซ‡ __builtin_dedup_pack. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, builtin_dedup_pack เชคเชฎเชจเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เชกเซเชชเซเชฒเชฟเช•เซ‡เชŸเซเชธ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡: MyTypeList = TypeList<__builtin_dedup_pack เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ โ€ฆ>; // เชชเชฐเชฟเชฃเชพเชฎเซ€ เชชเซเชฐเช•เชพเชฐ เชŸเชพเช‡เชชเชฒเชฟเชธเซเชŸ เชนเชถเซ‡
  • UBSan (-fsanitize=undefined -fsanitize-trap=undefined) เชธเชพเชฅเซ‡ เช…เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชตเชฐเซเชคเชฃเซ‚เช•เชจเซ‡ เชกเซ€เชฌเช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชญเซ‚เชฒ เช•เชพเชฐเชฃ เชฎเชพเชนเชฟเชคเซ€ เชนเชตเซ‡ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เชกเชฟเชฌเช— เชฎเชพเชนเชฟเชคเซ€เชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เช›เซ‡. เชญเซ‚เชฒ เชฎเชพเชนเชฟเชคเซ€เชฎเชพเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชธเซเชคเชฐ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-fsanitize-debug-trap-reasons" เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจเซ‹ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ "เชฎเซ‚เชณเชญเซ‚เชค" เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชฆเชพ.เชค., "เชชเซ‚เชฐเซเชฃเชพเช‚เช• เช‰เชฎเซ‡เชฐเซ‹ เช“เชตเชฐเชซเซเชฒเซ‹ เชฅเชฏเซ‹") เช…เชจเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชพเชนเชฟเชคเซ€ เชถเชพเชฎเซ‡เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "เชตเชฟเช—เชคเชตเชพเชฐ" เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชฆเชพ.เชค., "'a + b' เชฎเชพเช‚ เชธเชนเซ€ เช•เชฐเซ‡เชฒ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เช‰เชฎเซ‡เชฐเซ‹ เช“เชตเชฐเชซเซเชฒเซ‹ เชฅเชฏเซ‹").
  • เชจเชตเชพ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชซเซเชฒเซ‡เช— เช‰เชฎเซ‡เชฐเซเชฏเชพ:
    • "-f[no-]sanitize-debug-trap-reasons" "-fsanitize-trap" เชฎเซ‹เชก เชธเชพเชฅเซ‡ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชกเชฟเชฌเช— เชฎเชพเชนเชฟเชคเซ€เชฎเชพเช‚ เช…เชชเชตเชพเชฆ เชŸเซเชฐเซ‡เชช เช•เชพเชฐเชฃเซ‹ เชเชฎเซเชฌเซ‡เชก เช•เชฐเซ‡เชฒเชพ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.
    • เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชŸเซ‹เช•เชจเซเชธเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-fsanitize=alloc-token", "-falloc-token-max", "-fsanitize-alloc-token-fast-abi", เช…เชจเซ‡ "-fsanitize-alloc-token-extended".
    • เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชชเซเชฐเช•เชพเชฐเซ‹เชจเชพ เชฎเซ‡เชฎเชฐเซ€ เชฒเซ‡เช†เช‰เชŸเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "-fmatrix-memory-layout" (เชฆเชพ.เชค., เช•เซ‰เชฒเชฎ-เชฎเซ‡เชœเชฐ เชฎเชพเชŸเซ‡ เช•เซ‰เชฒเชฎ-เชฎเซ‡เชœเชฐ, เชชเช‚เช•เซเชคเชฟ-เชฎเซ‡เชœเชฐ เชฎเชพเชŸเซ‡ เชชเช‚เช•เซเชคเชฟ-เชฎเซ‡เชœเชฐ).
  • เชซเช‚เช•เซเชถเชจเซเชธเชฎเชพเช‚ เชนเชตเซ‡ "malloc_span" เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸ เช›เซ‡, เชœเซ‡ malloc เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸ เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชซเช‚เช•เซเชถเชจเซเชธเชจเซ‡ เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡ เชœเซ‡ เชฌเซเชฒเซ‹เช•เชจเชพ เช…เช‚เชค เชธเซเชงเซ€ เชชเซ‹เช‡เชจเซเชŸเชฐ เช…เชจเซ‡ เชซเซ€เชฒเซเชก เชงเชฐเชพเชตเชคเซ€ เชธเซเชชเชพเชจ เชœเซ‡เชตเซ€ เชฐเชšเชจเชพเช“ เช…เชฅเชตเชพ เชชเซ‹เช‡เชจเซเชŸเชฐ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.
  • เชฒเชฟเช‚เช• เชธเชฎเชฏเซ‡ printf เชซเช‚เช•เซเชถเชจเชจเชพ เชœเชฐเซ‚เชฐเซ€ เชธเซเชŸเซ‡เชŸเชฟเช•เชฒเซ€ เชฒเชฟเช‚เช•เซเชก เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "modular_format" เชเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚.
  • เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เช…เชจเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชเชจเชพเชฒเชฟเชธเชฟเชธ เชŸเซ‚เชฒเซเชธเชจเซ‹ เชตเชฟเชธเซเชคเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡, เชจเชตเซ€ เชคเชชเชพเชธ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ (เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•-เชธเช‚เชฌเช‚เชงเชฟเชค เช…เชจเซ‡เช• เชกเชเชจ เชธเซเชงเชพเชฐเชพเช“).
  • X86 เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ SSE, AVX, เช…เชจเซ‡ AVX512 เชเช•เซเชธเชŸเซ‡เชจเซเชถเชจ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เช†เช‚เชคเชฐเชฟเช• เช˜เชŸเช•เซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. Wildcat Lake (-march=wildcatlake) เช…เชจเซ‡ Nova Lake (-march=novalake) เชฎเชพเช‡เช•เซเชฐเซ‹เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชชเชฐ เช†เชงเชพเชฐเชฟเชค Intel CPU เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเซเชก เชฎเซ‹เชกเซเชธ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡.
  • AArch64 เชฌเซ‡เช•เชเชจเซเชก เชนเชตเซ‡ เชเชฎเซเชชเซ€เชฏเชฐ เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เชเชฎเซเชชเซ€เชฏเชฐ1C (เชเชฎเซเชชเซ€เชฏเชฐ1c), เช†เชฐเซเชฎ C1-เชจเซ‡เชจเซ‹ (c1-เชจเซ‡เชจเซ‹), เช†เชฐเซเชฎ C1-เชชเซเชฐเซ‹ (c1-เชชเซเชฐเซ‹), เช†เชฐเซเชฎ C1-เชชเซเชฐเซ€เชฎเชฟเชฏเชฎ (c1-เชชเซเชฐเซ€เชฎเชฟเชฏเชฎ), เช…เชจเซ‡ เช†เชฐเซเชฎ C1-เช…เชฒเซเชŸเซเชฐเชพ (c1-เช…เชฒเซเชŸเซเชฐเชพ) เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. FCVTZ[US], FCVTN[US], FCVTM[US], FCVTP[US], เช…เชจเซ‡ FCVTA[US] เชธเซ‚เชšเชจเชพเช“ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเช‚เช•เซเชถเชจ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เชซเช‚เช•เซเชถเชจ เชฎเชฒเซเชŸเซ€-เชตเชฐเซเชเชจเชฟเช‚เช— (FMV) เชธเชชเซ‹เชฐเซเชŸ เชธเซเชฅเชฟเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชนเชตเซ‡ เชตเชฟเชตเชฟเชง เชซเช‚เช•เซเชถเชจ เชตเชฐเซเชเชจเชจเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพเชจเซ‡ เช“เชตเชฐเชฐเชพเช‡เชก เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.
  • LoongArch32 (LA32R, LA32S) เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชชเซ‹เชฐเซเชŸ.
  • ARM, AMDGPU, RISC-V, LoongArch64, MIPS, WebAssembly เช…เชจเซ‡ PowerPC เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชฎเชพเชŸเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เชฌเซ‡เช•เชเชจเซเชก.

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

DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเชคเซ€ เชธเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ ๐Ÿ”ฅ DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ | ProHoster