ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ LLVM 22 ืงืึทืžืคึผื™ื™ืœืขืจ ืฉื˜ืขืœืŸ

ื ืืš ื–ืขืงืก ื—ื“ืฉื™ื ืคื•ืŸ ืื ื˜ื•ื•ื™ืงืœื•ื ื’, ืื™ื– LLVM 22.1.0 ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืืจืŸ. ืขืก ืื ื˜ื•ื•ื™ืงืœื˜ ื’ืขืฆื™ื™ื’ (ืงืืžืคื™ื™ืœืขืจ, ืืคื˜ื™ืžื™ื–ื™ืจืขืจ, ืื•ืŸ ืงืื•ื“ ื“ื–ืฉืขื ืขืจืื˜ืืจืŸ) ื•ื•ืืก ืงืืžืคื™ื™ืœืŸ ืคืจืื’ืจืืžืขืŸ ืื™ืŸ ืื™ื ื˜ืขืจืžืขื“ื™ืื˜ ื‘ื™ื˜ืงืื•ื“ ืคื•ืŸ RISC-ืขื ืœืขื›ืข ื•ื•ื™ืจื˜ื•ืขืœืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก (ื ื ื™ื“ืจื™ื’-ืœืขื•ื•ืขืœ ื•ื•ื™ืจื˜ื•ืขืœืข ืžืืฉื™ืŸ ืžื™ื˜ ื ืžื•ืœื˜ื™-ืœืขื•ื•ืขืœ ืืคื˜ื™ืžื™ื–ืืฆื™ืข ืกื™ืกื˜ืขื). ื“ืขืจ ื’ืขื ืขืจื™ืจื˜ืขืจ ืคืกืขื•ื•ื“ืืงืื•ื“ ืงืขืŸ ื•ื•ืขืจืŸ ืคืืจื•ื•ืื ื“ืœื˜ ืื™ืŸ ืžืืฉื™ืŸ ืงืื•ื“ ืคืืจ ื ื’ืขื’ืขื‘ืขื ืข ืฆื™ืœ ืคืœืื˜ืคืืจืžืข ืื“ืขืจ ื’ืขื ื•ืฆื˜ ื“ื•ืจืš ื ื“ื–ืฉืืกื˜-ืื™ืŸ-ื˜ื™ื™ื (JIT) ืงืืžืคื™ื™ืœืขืจ ืฆื• ื“ื–ืฉืขื ืขืจื™ืจืŸ ืžืืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื’ืœื™ื™ืš ื‘ืขืช ืคืจืื’ืจืื ืื•ื™ืกืคื™ืจื•ื ื’. ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ LLVM ื˜ืขื›ื ืืœืื’ื™ืขืก, ืื ื˜ื•ื•ื™ืงืœื˜ ื“ืขืจ ืคืจืื™ืขืงื˜ ื“ืขื ืงืœืื ื’ ืงืืžืคื™ื™ืœืขืจ, ื•ื•ืืก ืฉื˜ื™ืฆื˜ ื“ื™ C, C++, ืื•ืŸ ืื‘ื™ืขืงื˜ื™ื•ื•-C ืคืจืื’ืจืืžื™ืจืŸ ืฉืคืจืื›ืŸ. ืื ืคืื ื’ืขื ื“ื™ื’ ืžื™ื˜ืŸ 18.x ืฆื•ื•ื™ื™ื’, ื”ืื˜ ื“ืขืจ ืคืจืื™ืขืงื˜ ื’ืขื˜ื•ื™ืฉื˜ ืฆื• ื ื ื™ื™ืข ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจื™ืจื•ื ื’ ืกื›ืขืžืข, ืœื•ื™ื˜ ื•ื•ืขืœื›ืขืจ ืืจื•ื™ืกื’ืขื‘ื•ื ื’ 0 ("N.0") ื•ื•ืขืจื˜ ื’ืขื ื•ืฆื˜ ื‘ืขืช ืื ื˜ื•ื•ื™ืงืœื•ื ื’, ืื•ืŸ ื“ื™ ืขืจืฉื˜ืข ืกื˜ืื‘ืขืœืข ื•ื•ืขืจืกื™ืข ืื™ื– ื ื•ืžืขืจื™ืจื˜ "N.1."

ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืื™ืŸ Clang 22 ืึทืจื™ื™ึทื ื ืขืžืขืŸ:

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืข ืคืืจ ื–ื›ึผืจื•ืŸ ืึทืœืึธืงืึทืฆื™ืข ื˜ืึธืงืขื ืก (ืึทืœืึธืงืึทืฆื™ืข ื˜ืึธืงืขื ืก) ืคืืจืŸ ืžืึทืจืงื™ืจืŸ ื–ื›ึผืจื•ืŸ ืึทืœืึธืงืึทืฆื™ืข ืึธืคึผืขืจืึทืฆื™ืขืก ื“ื•ืจื›ื’ืขืคื™ืจื˜ ืžื™ื˜ ืคื•ื ืงืฆื™ืขืก ื•ื•ื™ ืžืึทืœืึธืง ืžื™ื˜ ืึท ื™ื™ื ืฆื™ืงืŸ ืื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืขืจ. ืึทืœืึธืงืึทืฆื™ืข ื˜ืึธืงืขื ืก ืขืจืžืขื’ืœืขื›ืŸ ืกื˜ืจื•ืงื˜ื•ืจื™ืจืŸ ื”ื™ืคึผ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืคืึทืจืคึผืฉื•ื˜ืขืจืŸ ื–ื›ึผืจื•ืŸ ืœื™ืง ื“ืขื˜ืขืงืฆื™ืข, ืื•ืŸ ืขืจืžืขื’ืœืขื›ืŸ ื’ืจื•ืคึผื™ืจืŸ ืคื•ืŸ ืึธื‘ื™ืขืงื˜ืŸ ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื–ื™ื™ืขืจ ืฆื•ื•ืขืง ืึธื“ืขืจ ืžืึธื“ื™ืคื™ืงืึทืฆื™ืข ืคึผืึทื˜ืขืจื ื– (ืœืžืฉืœ, ืฆืขืฉื™ื™ื“ืŸ "ื”ื™ื™ืก" ืคื•ืŸ "ืงืึทืœื˜" ื“ืึทื˜ืŸ). ืฆื• ืขืจืžืขื’ืœืขื›ืŸ, ื ื™ืฆื˜ ื“ืขื "-fsanitize=alloc-token" ืคืึธืŸ.
  • ืื™ื™ื’ื ืฉืืคื˜ืŸ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ืขืจ C ืฉืคืจืืš:
    • ื ืกืงื™ืฆืข ืคื•ืŸ โ€‹โ€‹ื ืคืจืื’ืจืื ื•ื•ืืก ื“ืขืคื™ื ื™ืจื˜ ื“ืขื "ื“ืขืคืขืจ" ื“ืขืคืขืจื“ ืขืงืกืขืงื•ืฆื™ืข ืžืขื›ืื ื™ื–ื ืื™ื– ืื™ืžืคืœืขืžืขื ื˜ื™ืจื˜ ื’ืขื•ื•ืืจืŸ, ื•ื•ืืก ืขืจืœื•ื™ื‘ื˜ ืื•ื™ืกืฆื•ืคื™ืจืŸ ืืงืฆื™ืขืก ื•ื•ืขืŸ ื“ืขืจ ื™ืขืฆื˜ื™ื’ืขืจ ืคืืจื ืขื ืขื ื“ื™ื’ื˜ ื–ื™ืš. ื“ื™ "-fdefer-ts" ืคืืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืืจืŸ ืฆื• ื’ืขื‘ืŸ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคืืจ "ื“ืขืคืขืจ" ืฉื˜ื™ืฆืข.
    • ื“ื™ ืื™ื™ื ื’ืขื‘ื•ื™ื˜ืข ืคื•ื ืงืฆื™ืข __builtin_stack_address() ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ, ืฉืคึผื™ื’ืœื ื“ื™ื’ ื“ื™ ืขื ืœืขื›ืข ืคื•ื ืงืฆื™ืข ืื™ืŸ GCC. ื“ื™ ืคื•ื ืงืฆื™ืข ื’ื™ื˜ ืฆื•ืจื™ืง ื“ืขื ืกื˜ืขืง ืึทื“ืจืขืก ื•ื•ืึธืก ื˜ื™ื™ืœื˜ ืึธืคึผ ื“ืขื ืกื˜ืขืง ื’ืขื’ื ื˜ ืคื•ืŸ ื“ืขืจ ืื™ืฆื˜ื™ืงืขืจ ืคื•ื ืงืฆื™ืข ื•ื•ืึธืก ื”ืึธื˜ ื’ืขืจื•ืคืŸ __builtin_stack_address() ืื•ืŸ ื“ื™ ื ืึธื›ืคืึธืœื’ื ื“ื™ืงืข ืคื•ื ืงืฆื™ืขืก ื•ื•ืึธืก ื–ื™ ืจื•ืคื˜ ืึธืŸ.
  • ืžืขื’ืœืขื›ืงื™ื™ื˜ืŸ ื•ื•ืึธืก ื•ื•ืขืจืŸ ืึทื ื˜ื•ื•ื™ืงืœื˜ ืคึฟืึทืจ ื“ืขื ืฆื•ืงื•ื ืคึฟื˜ื™ืงืŸ C2y ืกื˜ืึทื ื“ืึทืจื˜:
    • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืข ืคืืจ ื‘ืื ื™ืžื˜ืข ืฉืœื™ื™ืคืŸ, ื•ื•ืืก ืขืจืœื•ื™ื‘ื˜ ืื™ื™ืš ืฆื• ื‘ืืฉื˜ื™ืžืขืŸ ื ืขืžืขืŸ ืฆื• ืฉืœื™ื™ืคืŸ ืื•ืŸ ืกื•ื•ื™ื˜ืฉ ืกื˜ืขื™ื˜ืžืขื ื˜ืก, ื•ื•ืืก ืงืขื ืขืŸ ืกืคืขืฆื™ืคื™ืฆื™ืจื˜ ื•ื•ืขืจืŸ ืื™ืŸ break ืื•ืŸ continue ืกื˜ืขื™ื˜ืžืขื ื˜ืก ืฆื• ืื•ื™ืกื“ืจื™ืงืœื™ืš ื“ืขืคื™ื ื™ืจืŸ ื“ืขื ืฉืœื™ื™ืคืŸ ืคื•ืŸ ื•ื•ืืก ืฆื• ืคืืจืœืื–ืŸ. outer: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { continue; // ื’ื™ื™ ืฆื• CONT1 continue outer; // ื’ื™ื™ ืฆื• CONT2 // CONT1 } // CONT2 }
    • ื“ื™ ืื™ืžืคึผืœืขืžืขื ื˜ืึทืฆื™ืข ืคึฟื•ืŸ ื“ืขื ืื™ื™ื ื’ืขื‘ื•ื™ื˜ืŸ "__COUNTER__" ืžืึทืงืจืึธ, ื•ื•ืึธืก ืื™ื– ื’ืขืžืึทื›ื˜ ืฆื• ืฉืึทืคึฟืŸ ืื™ื™ื ืฆื™ืงืึทืจื˜ื™ืงืข ืื™ื“ืขื ื˜ื™ืคึฟื™ืงืึทื˜ืึธืจ ื ืขืžืขืŸ, ืื™ื– ืคึฟืึทืจื‘ืจื™ื™ื˜ืขืจื˜ ื’ืขื•ื•ืึธืจืŸ ืื•ืŸ ืึทืจืฒึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ืขื ืกื˜ืึทื ื“ืึทืจื˜. ืึท ืœื™ืžื™ื˜ ืคึฟื•ืŸ 2147483647 ืจื•ืคึฟืŸ ืฆื• ื“ืขื ืžืึทืงืจืึธ ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜ ื’ืขื•ื•ืึธืจืŸ; ืื™ื‘ืขืจื˜ืจืขื˜ืŸ ื“ืขื ืœื™ืžื™ื˜ ื•ื•ืขื˜ ืฉืึทืคึฟืŸ ืึท ื˜ืขื•ืช.
    • ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ื“ื™ ื•ื•ืืจืขื ื•ื ื’ (-Wstatic-in-inline) ื•ื•ืขืŸ ืžืขืŸ ื ื™ืฆื˜ ืกื˜ืึทื˜ื™ืฉืข ืคื•ื ืงืฆื™ืขืก ืื“ืขืจ ื•ื•ืขืจื™ืึทื‘ืึทืœืŸ ืื™ื ืขื•ื•ื™ื™ื ื™ืง ืคื•ื ืงืฆื™ืขืก ื“ืขืงืœืขืจื™ืจื˜ ื•ื•ื™ "extern inline".
  • ืžืขื’ืœืขื›ืงื™ื™ื˜ืŸ ื“ืขืคื™ื ื™ืจื˜ ืื™ืŸ ื“ืขื C23 C ืกื˜ืึทื ื“ืึทืจื˜:
    • ื“ื™ float.h ื›ืขื“ืขืจ ื˜ืขืงืข ืฉื˜ื™ืฆื˜ ืื™ืฆื˜ ื“ื™ FLT_SNAN, DBL_SNAN, ืื•ืŸ LDBL_SNAN ืžืึทืงืจืึธืก, ื•ื•ืขืœื›ืข ื™ืžืคึผืœืขืžืขื ื˜ื™ืจืŸ ืกื™ื’ื ืึทืœื“ (ื•ื•ืึธืก ืคืึทืจืื•ืจื–ืึทื›ื˜ ืึทืŸ ืื•ื™ืกื ืึทื ื•ื•ืขืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืึทืจื™ื˜ืžืขื˜ื™ืง ืึธืคึผืขืจืึทืฆื™ืขืก) NaN ื•ื•ืขืจื˜ืŸ ืคึฟืึทืจ float, double, ืื•ืŸ long double ื˜ื™ืคึผืŸ.
    • ื’ืขืคื™ืงืกื˜ ืึท ื‘ืึทื’ ื•ื•ืื• ืคึฟืึทืจืฉื™ื“ืขื ืข ืื•ืžื‘ืึทื ืึทื ื˜ืข ื˜ื™ืคึผืŸ ื–ืขื ืขืŸ ื‘ืึทื”ืึทื ื“ืœื˜ ื’ืขื•ื•ืึธืจืŸ ื•ื•ื™ ืงืึธืžืคึผืึทื˜ื™ื‘ืœ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ืขืจ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืึทืคึผืึทืจืึทื˜ ืื•ื™ื‘ ื–ื™ื™ ื”ืึธื‘ืŸ ื’ืขื”ืึทื˜ ื“ื™ ื–ืขืœื‘ืข ืคึฟืขืœื“ืขืจ.
    • ื“ื™ "-MG" ืคืึธืŸ ื’ืขื ื™ืฆื˜ ืฆื• ืื™ื’ื ืึธืจื™ืจืŸ ืคืขืœื ื“ื™ืงืข ื›ืขื“ืขืจ ื˜ืขืงืขืก ื‘ืขืช ื“ืขืคึผืขื ื“ืขื ืกื™ ืกืงืึทื ื™ื ื’ ืื™ื– ื’ืขื•ื•ืึธืจืŸ ืื•ื™ืกื’ืขื‘ืจื™ื™ื˜ืขืจื˜ ืฆื• "#embed" ื“ื™ืจืขืงื˜ื™ื•ื•ืŸ ืื•ืŸ ืื™ืฆื˜ ืื•ื ื˜ืขืจื“ืจื™ืงื˜ ื“ื™ "ื˜ืขืงืข ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ" ื˜ืขื•ืช ื•ื•ืขืŸ ืึท ื˜ืขืงืข ืกืคึผืขืกื™ืคึฟื™ืฆื™ืจื˜ ืื™ืŸ ืึท "#embed" ื“ื™ืจืขืงื˜ื™ื•ื• ืื™ื– ืคืขืœื ื“ื™ืง.
  • C++ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ:
    • ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืฆื• ื ื™ืฆืŸ ืกื˜ืจื•ืงื˜ื•ืจื™ืจื˜ืข ื‘ื™ื ื“ื•ื ื’ืขืŸ ืื™ืŸ ื“ืขื "constexpr" ืงืื ื˜ืขืงืกื˜, ื•ื•ื™ ืื ื˜ื•ื•ื™ืงืœื˜ ืื™ืŸ ื“ืขืจ C++2c (C++26) ืกืคืขืฆื™ืคื™ืงืืฆื™ืข, ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืืจืŸ. ื“ืืก ืžื™ื™ื ื˜ ืื– ืจืขืคืขืจืขื ืฆืŸ ืฆื• ืงืื ืกื˜ืื ื˜ืข ืื•ื™ืกื“ืจื•ืงืŸ ืงืขื ืขืŸ ื™ืขืฆื˜ ืืœื™ื™ืŸ ื–ื™ื™ืŸ ืงืื ืกื˜ืื ื˜ืข ืื•ื™ืกื“ืจื•ืงืŸ. ืฉื˜ื™ืฆืข ืื™ื– ืื™ืžืคืœืขืžืขื ื˜ื™ืจื˜ ืคืืจ ืขืจื™ื™ื– ืื•ืŸ ืคืฉื•ื˜ืข ืกื˜ืจื•ืงื˜ื•ืจืŸ (ื˜ืืคืœืก ื•ื•ืขืจืŸ ื ืืš ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜). 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 ืื˜ืจื™ื‘ื™ื•ื˜ ืื‘ืขืจ ื ื•ืฆื‘ืืจ ืคืืจ ืคื•ื ืงืฆื™ืขืก ื•ื•ืืก ื’ืขื‘ืŸ ืฆื•ืจื™ืง span-ืขื ืœืขื›ืข ืกื˜ืจื•ืงื˜ื•ืจืŸ ืžื™ื˜ ื ืฆื™ื™ื’ืขืจ ืื•ืŸ ื ืคืขืœื“ ืžื™ื˜ ื“ืขืจ ื’ืจื™ื™ืก ืื“ืขืจ ื ืฆื™ื™ื’ืขืจ ืฆื•ื ืกื•ืฃ ืคื•ื ืขื ื‘ืœืืง.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ืขื "modular_format" ืึทื˜ืจื™ื‘ื™ื•ื˜ ืฆื• ื“ื™ื ืึทืžื™ืฉ ืื•ื™ืกืงืœืฒึทื‘ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ืข ืกื˜ืึทื˜ื™ืฉ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืื™ืžืคึผืœืขืžืขื ื˜ืึทืฆื™ืข ืคึฟื•ืŸ ื“ืขืจ printf ืคื•ื ืงืฆื™ืข ื‘ืฒึทื ืคึฟืึทืจื‘ื™ื ื“ืŸ.
  • ื“ื™ืึทื’ื ืึธืกื˜ื™ืฉืข ืื•ืŸ ืกื˜ืึทื˜ื™ืฉืข ืึทื ืึทืœื™ื– ืžื›ืฉื™ืจื™ื ื–ืขื ืขืŸ ืื•ื™ืกื’ืขื‘ืจื™ื™ื˜ืขืจื˜ ื’ืขื•ื•ืึธืจืŸ, ื ืฒึทืข ืงืึธื ื˜ืจืึธืœืŸ ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ (ืขื˜ืœืขื›ืข ื˜ื•ืฅ ื“ื™ืึทื’ื ืึธืกื˜ื™ืฉืข ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ืขืŸ).
  • ื ืึธืš ืื™ื ื˜ืจื™ื ืกื™ืงืก ืคึฟืึทืจ ื“ื™ SSE, AVX, ืื•ืŸ AVX512 ืขืงืกื˜ืขื ืฉืึทื ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ ืฆื• ื“ื™ X86 ื‘ืึทืงืขื ื“. ื‘ื•ื™ืขืŸ ืžืึธื“ืขืก ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ ืคึฟืึทืจ Intel CPUs ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ Wildcat Lake (-march=wildcatlake) ืื•ืŸ Nova Lake (-march=novalake) ืžื™ืงืจืึธืึทืจื›ื™ื˜ืขืงื˜ื•ืจืŸ.
  • ื“ืขืจ AArch64 ื‘ืึทืงืขื ื“ ืฉื˜ื™ืฆื˜ ืื™ืฆื˜ ื“ื™ Ampere Computing Ampere1C (ampere1c), Arm C1-Nano (c1-nano), Arm C1-Pro (c1-pro), Arm C1-Premium (c1-premium), ืื•ืŸ Arm C1-Ultra (c1-ultra) ืคึผืจืึทืกืขืกืึธืจืŸ. ื ืึธืš ืื™ื™ื ื’ืขื‘ื•ื™ื˜ืข ืคื•ื ืงืฆื™ืขืก ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ ืคึฟืึทืจ ื“ื™ 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