GCC 13 เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจธเฉ‚เจŸ เจฆเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ

เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจพเจฒ เจฌเจพเจ…เจฆ, เจฎเฉเจซเจค เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจธเฉ‚เจŸ GCC 13.1 เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจจเจตเฉ€เจ‚ GCC 13.x เจธเจผเจพเจ–เจพ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจฐเฉ€เจฒเฉ€เจœเจผเฅค เจจเจตเฉ€เจ‚ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉฐเจฌเจฐเจฟเฉฐเจ— เจธเจ•เฉ€เจฎ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจตเจฟเจ•เจพเจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเจฟเฉฑเจš เจธเฉฐเจธเจ•เจฐเจฃ 13.0 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจ…เจคเฉ‡ GCC 13.1 เจฆเฉ‡ เจœเจพเจฐเฉ€ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฅเฉ‹เฉœเฉเจนเฉ€ เจฆเฉ‡เจฐ เจชเจนเจฟเจฒเจพเจ‚, GCC 14.0 เจธเจผเจพเจ–เจพ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฌเฉฐเจฆ เจนเฉ‹ เจ—เจˆ เจธเฉ€, เจœเจฟเจธ เจคเฉ‹เจ‚ เจ…เจ—เจฒเฉ€ เจตเฉฑเจกเฉ€ เจฐเฉ€เจฒเฉ€เจœเจผ, GCC 14.1, เจฌเจฃเจพเจˆ เจœเจพเจตเฉ‡เจ—เฉ€เฅค

เจฎเฉเฉฑเจ– เจฌเจฆเจฒเจพเจ…:

  • GCC เจตเจฟเฉฑเจš เจฎเฉ‹เจกเฉ‚เจฒเจพ-2 เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจซเจฐเฉฐเจŸเจเจ‚เจก เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค PIM2, PIM3 เจ…เจคเฉ‡ PIM4 เจ‰เจชเจญเจพเจธเจผเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจ•เฉ‹เจก เจฆเฉ€ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€, เจ…เจคเฉ‡ เจจเจพเจฒ เจนเฉ€ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจญเจพเจธเจผเจพ เจฒเจˆ เจธเจตเฉ€เจ•เจพเจฐ เจ•เฉ€เจคเฉ‡ ISO เจฎเจฟเจ†เจฐ, เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค
  • เจœเฉ€เจธเฉ€เจธเฉ€เจ†เจฐเจเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ (เจœเฉ€เจธเฉ€เจธเฉ€ เจฐเจธเจŸ) เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจœเฉฐเจ—เจพเจฒ เจญเจพเจธเจผเจพ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจตเจพเจฒเจพ เจ‡เฉฑเจ• เจซเจฐเฉฐเจŸ เจเจ‚เจก GCC เจธเจฐเฉ‹เจค เจŸเฉเจฐเฉ€ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจธเจฆเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจซเจพเจฐเจตเจฐเจก เจธเจฟเจฐเฉ‡ เจจเฉ‚เฉฐ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจตเจœเฉ‹เจ‚ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจซเจฐเฉฐเจŸเจเจ‚เจก เจคเจฟเจ†เจฐ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ…เจ—เจฒเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ), เจฎเจฟเจ†เจฐเฉ€ GCC เจŸเฉ‚เจฒเจœเจผ เจจเฉ‚เฉฐ LLVM เจตเจฟเจ•เจพเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฃเจพเจ เจ—เจ, Rustc เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ Rust เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจˆเจฒ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  • เจฒเจฟเฉฐเจ• เจŸเจพเจˆเจฎ เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ (LTO) เจ‡เฉฐเจœเจฃ เจจเฉ‡ เจ•เจˆ เจฅเจฐเจฟเฉฑเจกเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจฌเจฟเจฒเจกเจพเจ‚ เจฆเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ GNU เจฎเฉ‡เจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจธเจฎเจฐเจฅเจฟเจค เจœเฉŒเจฌเจธเจฐเจตเจฐ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆเฅค GCC เจตเจฟเฉฑเจš, เจœเฉŒเจฌเจธเจฐเจตเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจชเฉ‚เจฐเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ (WPA, เจชเฉ‚เจฐเฉ‡-เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ) เจฆเฉ‡ เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฑเจš LTO เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเฉŒเจฌเจธเจฐเจตเจฐ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ, เจจเจพเจฎเจฟเจค เจชเจพเจˆเจชเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (-jobserver-style=fifo)เฅค
  • เจธเจŸเฉˆเจŸเจฟเจ• เจเจจเจพเจฒเจพเจˆเจœเจผเจฐ (-เจซเฉˆเจจเจฒเจพเจˆเจœเจผเจฐ) 20 เจจเจตเฉ‡เจ‚ เจกเจพเจ‡เจ—เจจเฉŒเจธเจŸเจฟเจ• เจœเจพเจ‚เจšเจพเจ‚ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš โ€œ-เจตเฉˆเจจเจพเจฒเจพเจˆเจœเจผเจฐ-เจ†เจŠเจŸ-เจ†เจซ-เจฌเจพเจ‰เจ‚เจกเจธโ€, โ€œ-เจตเฉˆเจจเจพเจฒเจพเจˆเจœเจผเจฐ-เจ…เจฒเฉ‹เจ•เฉ‡เจธเจผเจจ-เจธเจพเจˆเจœเจผโ€, โ€œ-เจตเฉˆเจจเจพเจฒเจพเจˆเจœเจผเจฐ-เจกเฉ‡เจฐเฉ‡เจซ-เจชเจนเจฟเจฒเจพเจ‚-เจšเฉˆเฉฑเจ•โ€, โ€œ-เจตเฉˆเจจเจพเจฒเจพเจˆเจœเจผเจฐ- เจ…เจจเฉฐเจค -recursion" -Wanalyzer-jump-through-null", "-Wanalyzer-va-เจฒเจฟเจธเจŸ-เจฒเฉ€เจ•"เฅค
  • JSON 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค SARIF เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจกเจพเจ‡เจ—เจจเฉŒเจธเจŸเจฟเจ•เจธ เจจเฉ‚เฉฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจจเจตเฉ‡เจ‚ เจซเจพเจฐเจฎเฉˆเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจฅเจฟเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจจเจคเฉ€เจœเฉ‡ (GCC -fanalyzer) เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจ…เจคเฉ‡ เจ—เจฒเจคเฉ€ เจฆเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจฏเฉ‹เจ— เจ•เจฐเจจเจพ "-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-file" เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ "json" เจตเจพเจฒเฉ‡ เจตเจฟเจ•เจฒเจช JSON เจซเจพเจฐเจฎเฉˆเจŸ เจฆเฉ‡ GCC-เจตเจฟเจธเจผเฉ‡เจธเจผ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเจฟเฉฑเจš เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค .
  • C23 C เจธเจŸเฉˆเจ‚เจกเจฐเจก เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉเจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจจเจฒ เจชเฉเจ†เจ‡เฉฐเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ nullptr เจธเจฅเจฟเจฐเจคเจพ, เจตเจฟเจญเจฟเฉฐเจจ เจธเฉ‚เจšเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจฃเจพ, เจ—เจฟเจฃเจคเฉ€เจ†เจ‚ เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเจจเจพ, noreturn เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ, เจตเจธเจคเฉ‚เจ†เจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ constexpr เจ…เจคเฉ‡ auto เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจฃเจพ, เจ•เจฟเจธเจฎ เจ…เจคเฉ‡ typeof_unqual, เจจเจตเฉ‡เจ‚ เจ•เฉ€เจตเจฐเจกเจธ alignas, alignof, bool, false, static_asssert, thread_local เจ…เจคเฉ‡ true, เจœเจฟเจธ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€เจ•เจฐเจฃ เจฆเฉŒเจฐเจพเจจ เจ–เจพเจฒเฉ€ เจฌเจฐเฉˆเจ•เจŸ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค
  • C++23 เจธเจŸเฉˆเจ‚เจกเจฐเจก เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉเจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเจฟเจธเจผเจฐเจฟเจค เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจšเจฟเฉฐเจจเฉเจน เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ, char8_t เจ•เจฟเจธเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ, #warning เจชเฉเจฐเฉ€เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฟเจต, เจธเฉ€เจฎเจฟเจค (\u{}, \o{}, \x{}) เจ…เจคเฉ‡ เจจเจพเจฎ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† ('\N{เจฒเฉˆเจŸเจฟเจจ เจ•เฉˆเจชเฉ€เจŸเจฒ เจฒเฉˆเจŸเจฐ A}') เจฌเจšเจฃ เจฆเฉ‡ เจ•เฉเจฐเจฎ, เจธเจฅเจฟเจฐ เจ†เจชเจฐเฉ‡เจŸเจฐ(), เจธเจฅเจฟเจฐ เจ†เจชเจฐเฉ‡เจŸเจฐ[], เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจฎเจพเจจเจคเจพ เจ†เจชเจฐเฉ‡เจŸเจฐ, constexpr เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ 'เจคเฉ‡ เจ•เฉเจ เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚ เจฆเจพ เจ–เจพเจคเจฎเจพ, UTF เจฒเจˆ เจธเจฎเจฐเจฅเจจ -8 เจธเจฐเฉ‹เจค เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš.
  • libstdc++ เจจเฉ‡ C++20 เจ…เจคเฉ‡ C++23 เจธเจŸเฉˆเจ‚เจกเจฐเจกเจพเจ‚ เจฒเจˆ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจธเจฎเจฐเจฅเจจ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจฟเจฐเจฒเฉ‡เจ– เจซเจพเจˆเจฒ เจธเจนเจฟเจฏเฉ‹เจ— เจœเฉ‹เฉœเจจเจพเฅค เจ…เจคเฉ‡ std::เจซเจพเจฐเจฎเฉˆเจŸ, เจตเจฟเจธเจคเฉเจฐเจฟเจค เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ , เจตเจพเจงเฉ‚ เจซเจฒเฉ‹เจŸเจฟเฉฐเจ— เจชเฉเจ†เจ‡เฉฐเจŸ เจ•เจฟเจธเจฎเจพเจ‚ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚, เจธเจฟเจฐเจฒเฉ‡เจ– เจซเจพเจˆเจฒเจพเจ‚ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจ…เจคเฉ‡ .
  • เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจ เจœเฉ‹ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฐเจฃเจจเจ•เจฐเจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจชเจพเจธ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ: "__attribute__((fd_arg(N))), "__attribute__((fd_arg_read(N))" เจ…เจคเฉ‡ "__attribute__((fd_arg_write(N))) )" เจจเจฟเจฐเจงเจพเจฐเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฅเจฟเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ• (-เจซเฉˆเจจเจฒเจพเจˆเจœเจผเจฐ) เจตเจฟเฉฑเจš เจซเจพเจˆเจฒ เจกเจฟเจธเจ•เฉเจฐเจฟเจชเจŸเจฐเจพเจ‚ เจฆเฉ€ เจ—เจฒเจค เจ•เจพเจฐเจตเจพเจˆ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจเจŸเจฐเฉ€เจฌเจฟเจŠเจŸ โ€œ__attribute__((เจงเจพเจฐเจจเจพ(EXPR)))โ€ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‚เฉฐ เจฆเฉฑเจธ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจธเจฎเฉ€เจ•เจฐเจจ เจธเจนเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจธเจฎเฉ€เจ•เจฐเจจ เจฆเจพ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ‡เจธ เจคเฉฑเจฅ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  • เจขเจพเจ‚เจšเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจฒเจšเจ•เจฆเจพเจฐ เจเจฐเฉ‡ เจเจฒเฉ€เจฎเฉˆเจ‚เจŸเจธ เจจเฉ‚เฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจตเฉ‡เจฒเฉ‡ เจตเจฟเจนเจพเจฐ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฒเจˆ "-fstrict-flex-arrays=[level]" เจซเจฒเฉˆเจ— เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† (เจฒเจšเจ•เจฆเจพเจฐ เจเจฐเฉ‡ เจฎเฉˆเจ‚เจฌเจฐ, เจ‡เฉฑเจ• เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ…เจฃเจฎเจฟเฉฑเจฅเฉ‡ เจ†เจ•เจพเจฐ เจฆเฉ€ เจ‡เฉฑเจ• เจเจฐเฉ‡, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, "int b[]" ).
  • เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• enum เจ•เจฟเจธเจฎ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจ•เจฟเจธเจฎ เจฆเฉ‡ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจฎเฉ‡เจฒ เจจเจนเฉ€เจ‚ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฆเฉ‡เจฃ เจฒเจˆ "-Wenum-int-mismatch" เจซเจฒเฉˆเจ— เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค
  • เจซเฉ‹เจฐเจŸเจฐเจจ เจญเจพเจธเจผเจพ เจฒเจˆ เจซเจฐเฉฐเจŸเจเจ‚เจก เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เฉฐเจคเจฟเจฎ เจฐเฉ‚เจช เจฆเฉ‡เจฃ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจ—เฉ‹ เจญเจพเจธเจผเจพ เจฒเจˆ เจซเจฐเฉฐเจŸ เจเจ‚เจก เจตเจฟเฉฑเจš, เจœเฉˆเจจเจฐเจฟเจ• เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฟเจธเจฎเจพเจ‚ (เจœเจจเจฐเจฟเจ•) เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจ—เฉ‹ เจญเจพเจธเจผเจพ 1.18 เจฒเจˆ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • AArch64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) เจ…เจคเฉ‡ Arm Neoverse V2 (Arm Neoverse V2) เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค -v9.1)เฅค "-march=" เจตเจฟเจ•เจฒเจช เจฒเจˆ "armv9.2-a", "armv9.3-a" เจ…เจคเฉ‡ "armv2-a" เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค FEAT_LRCPC, FEAT_CSSC เจ…เจคเฉ‡ FEAT_LSEXNUMX เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค
  • CPU STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) เจ…เจคเฉ‡ Arm Cortex-M85 (cortex-m85) เจฒเจˆ เจธเจนเจฟเจฏเฉ‹เจ— เจจเฉ‚เฉฐ ARM เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • x86 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids Processors, AMD Zen 4 (znver4) เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค เจ‡เฉฐเจŸเฉ‡เจฒ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจธเฉˆเฉฑเจŸ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT เจ…เจคเฉ‡ AMX-COMPLEX, เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค SSE2 เจธเจฟเจธเจŸเจฎเจพเจ‚ 'เจคเฉ‡ C เจ…เจคเฉ‡ C++ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฒเจˆ, __bf16 เจ•เจฟเจธเจฎ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค
  • AMD Radeon GPUs (GCN) เจฒเจˆ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจธเจผเจจ เจฌเฉˆเจ•เจเจ‚เจก เจตเจฟเฉฑเจš OpenMP/OpenACC เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ AMD Instinct MI200 เจเจ•เจธเจฒเฉ‡เจŸเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค SIMD เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจตเฉˆเจ•เจŸเจฐเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • LoongArch เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจ•เจพเจซเฉ€ เจตเจฟเจธเจฅเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • RISC-V เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจฌเฉˆเจ•เจเจ‚เจก เจตเจฟเฉฑเจš, เจŸเฉ€-เจนเฉˆเฉฑเจก เจฆเฉ‡ XuanTie C906 (thead-c906) CPU เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค RISC-V เจตเฉˆเจ•เจŸเจฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ 0.11 เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจตเฉˆเจ•เจŸเจฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค RISC-V เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจš 30 เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†เฅค
  • -เจธเจผเฉ‡เจ…เจฐเจก เจตเจฟเจ•เจฒเจช เจฆเฉ‡ เจจเจพเจฒ เจธเจผเฉ‡เจ…เจฐเจก เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃเจพ เจซเจฒเฉ‹เจŸเจฟเฉฐเจ— เจชเฉเจ†เจ‡เฉฐเจŸ เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจŸเจพเจฐเจŸเจ…เจช เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ -Ofast, -ffast-math, เจœเจพเจ‚ -funsafe-math-optimizations เจฏเฉ‹เจ— เจนเจจเฅค
  • DWARF เจกเฉ€เจฌเฉฑเจ— เจซเจพเจฐเจฎเฉˆเจŸ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฒเจ—เจญเจ— เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • Zstandard เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจกเฉ€เจฌเจ—เจฟเฉฐเจ— เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจ•เจฐเจจ เจฒเจˆ "-gz=zstd" เจตเจฟเจ•เจฒเจช เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค เจชเฉเจฐเจพเจคเจจ "-gz=zlib-gnu" เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • OpenMP 5.2 (เจ“เจชเจจ เจฎเจฒเจŸเฉ€-เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—) เจฒเจˆ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเจฐเจฅเจจ เจ…เจคเฉ‡ OpenMP 5.0 เจ…เจคเฉ‡ 5.1 เจฎเจฟเจ†เจฐเจพเจ‚ เจฆเจพ เจจเจฟเจฐเฉฐเจคเจฐ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ เจธเจพเจ‚เจเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจตเจพเจฒเฉ‡ เจฎเจฒเจŸเฉ€-เจ•เฉ‹เจฐ เจ…เจคเฉ‡ เจนเจพเจˆเจฌเฉเจฐเจฟเจก (CPU+GPU/DSP) เจธเจฟเจธเจŸเจฎเจพเจ‚ 'เจคเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจตเจฟเจงเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ API เจ…เจคเฉ‡ เจตเจฟเจงเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ…เจคเฉ‡ เจตเฉˆเจ•เจŸเฉ‹เจฐเจพเจˆเจœเจผเฉ‡เจธเจผเจจ เจฏเฉ‚เจจเจฟเจŸเจธ (SIMD)เฅค
  • 1980 เจฆเฉ‡ เจฆเจนเจพเจ•เฉ‡ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ เจ—เจ เจ…เจคเฉ‡ dbx เจกเฉ€เจฌเฉฑเจ—เจฐ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจตเจฟเจฐเจพเจธเจคเฉ€ โ€œSTABSโ€ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ เจซเจพเจฐเจฎเฉˆเจŸ (-gstabs เจ…เจคเฉ‡ -gxcoff เจตเจฟเจ•เจฒเจชเจพเจ‚ เจจเจพเจฒ เจฏเฉ‹เจ—) เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค
  • เจธเฉ‹เจฒเจพเจฐเจฟเจธ 11.3 เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจฌเจฐเจคเจฐเจซเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ (เจ‡เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจจเฉ‚เฉฐ เจธเจฎเจฐเจฅเจจ เจฆเฉ‡เจฃ เจฒเจˆ เจ•เฉ‹เจก เจญเจตเจฟเฉฑเจ– เจฆเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจตเจฟเฉฑเจš เจนเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจตเฉ‡เจ—เจพ)เฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹