เบซเบผเบฑเบเบเบฒเบเบซเบปเบเปเบเบทเบญเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ
เบเบธเบเบชเบปเบกเบเบฑเบเปเปเปเปเบ LLVM 10.0 เบเบฐเบเบญเบเบกเบตเบเบฒเบเบฎเบญเบเบฎเบฑเบ C++ Concepts, เบเปเปเปเบเปเปเบเป Clang เปเบเบฑเบเบเบฐเบเบงเบเบเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบ, เบฎเบญเบเบฎเบฑเบ CFG (control flow guards) checks เบชเปเบฒเบฅเบฑเบ Windows, เปเบฅเบฐเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบ CPU เปเบซเบกเป.
- เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ "
เปเบเบงเบเบงเบฒเบกเบเบดเบ ", เบเบฒเบกเบชเบฐเบเบธเบเปเบกเปเปเบเบ C++ เบเบตเปเบเบฐเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบกเบฒเบเบเบฐเบเบฒเบเบเปเปเปเบ, เบกเบตเบฅเบฐเบซเบฑเบเบเบทเป C++2a (เปเบเบตเบเปเบเบเบเบธเบ -std=c++2a).
เปเบเบงเบเบงเบฒเบกเบเบดเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเปเบฒเบเบปเบเบเบธเบเบเบญเบเบเปเปเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบญเบเปเบกเปเปเบเบเบเบตเป, เปเบเปเบงเบฅเบฒเบฅเบงเบเบฅเบงเบก, เบเปเบฒเบเบฑเบเบเบธเบเบเบญเบ arguments เบเบตเปเบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเปเบเปเปเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบกเปเปเบเบ. เปเบเบงเบเบงเบฒเบกเบเบดเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบงเบฒเบกเบเปเปเบชเบญเบเบเปเบญเบเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบเบฐเปเบเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบเบฒเบเปเบเปเบกเปเปเบเบเปเบฅเบฐเบเบธเบเบชเบปเบกเบเบฑเบเบเบฐเปเบเบเบเปเปเบกเบนเบเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ.เปเบกเปเปเบเบ
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบงเบฒเบกเบชเบฐเปเปเบตเบเบฒเบเบเบฝเบเบเบฝเบ = เบเปเบญเบเบเบฒเบ(T a, T b) {
{ a == b } -> std::boolean;
{ a != b } -> std::boolean;
}; - เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฒเบเปเบเบตเบเบเบปเบงเบเบญเบเบเบฐเบเบงเบเบเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบ (โclang -cc1โ) เปเบเบดเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบเปเบเบทเบเบขเบธเบเปเบเบปเบฒ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบกเปเบเปเบฎเบฑเบเปเบเบเบฐเบเบงเบเบเบฒเบเบเบปเปเบเบเป, เปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบ "-fno-integrated-cc1" เบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบทเปเบเบเบนเบเบถเบเบเบดเบเปเบฒเปเบเบปเปเบฒ.
- เปเปเบเบงเบดเบเบดเบเปเบชเปเปเป:
- "-Wc99-designator" เปเบฅเบฐ "-Wreorder-init-list" เปเบเบทเบญเบเบเปเปเปเบซเปเปเบเป C99 initializers เปเบเปเปเบ C++ เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบงเบเบกเบฑเบเบเบทเบเบเปเบญเบเปเบ C99 เปเบเปเบเปเปเปเบกเปเบเบขเบนเปเปเบ C++20.
- "-Wsizeof-array-div" - เบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบเบฑเปเบ "int arr[10]; โฆsizeof(arr) / sizeof(short)โฆโ (เบเบงเบเบเบฐเปเบเบฑเบ โsizeof(arr) / sizeof(int)โ).
- "-wxor-used-as-po" - เปเบเบทเบญเบเบเปเปเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบเบชเปเบฒเบเปเบเบฑเปเบ: เบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ "^" (xor) เปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเบชเบฑเบเบชเบปเบเบเบฑเบ exponentiation (2^16).
- "-Wfinal-dtor-non-final-class" - เปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบฑเปเบเบฎเบฝเบเบเบตเปเบเปเปเปเบเปเบเบทเบเบซเบกเบฒเบเบเปเบงเบเบเบปเบงเบฅเบฐเบเบธ "เบชเบธเบเบเปเบฒเบ", เปเบเปเบกเบตเบเบปเบงเบเปเบฒเบฅเบฒเบเบเบตเปเบกเบตเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ "เบชเบธเบเบเปเบฒเบ".
- "-Wtautological-bitwise-compare" เปเบกเปเบเบเบธเปเบกเบเบญเบเบเปเบฒเปเบเบทเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเบเบดเบเปเบชเบเบฒเบเบเบฝเบเบเบฝเบ tautological เบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบดเบเบเบดเบเปเบฅเบฐเบเบปเบเบเบตเป, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบตเปเปเบเปเบเบดเบเบชเบฐเปเบซเบกเบตเบเบตเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ bitwise OR เบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเปเบฒเบเบงเบเบเบตเปเบเปเปเปเบกเปเบเบฅเบปเบ.
- "-Wbitwise-conditional-parentheses" เปเบเบทเบญเบเบเบฑเบเบซเบฒเปเบกเบทเปเบญเบเบฐเบชเบปเบกเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฒเบกเปเบซเบเบเบปเบ AND (&) เปเบฅเบฐ OR (|) เบเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฒเบกเปเบเบทเปเบญเบเปเบ (?:).
- "-wmisleading-indentation" เปเบกเปเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบเบเบทเปเบเบฝเบงเบเบฑเบเบเบฒเบ GCC, เปเบเบดเปเบเปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเปเบซเบเปเปเบซเบเปเบฒเบเบทเบเบฑเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ if/else/for/while block, เปเบเปเบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเบเบงเบเบกเบฑเบเบเปเปเปเบเปเบเบทเบเบฅเบงเบกเบขเบนเปเปเบเบเบฅเบฑเบญเบเบเบตเป. .
- เปเบกเบทเปเบญเบฅเบฐเบเบธ "-Wextra", เบเบฒเบเบเบงเบเบชเบญเบ "-Wdeprecated-copy" เบเบทเบเปเบเบตเบเปเบเป, เปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบปเบงเบชเปเบฒเบ.
"เบเปเบฒเบ" เปเบฅเบฐ "เบชเปเบฒเปเบเบปเบฒ" เปเบเบซเปเบญเบเบฎเบฝเบเบเบตเปเบกเบตเบเปเบฒเบเบดเบเบฒเบก destructor เบขเปเบฒเบเบเบฑเบเปเบเบ. - เบเบฒเบเบเบงเบเบชเบญเบ "-Wtautological-overlap-compare", "-Wsizeof-pointer-div", "-Wtautological-compare", "-Wrange-loop-analysis" เปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบ.
- เบเบฒเบเบเบงเบเบชเบญเบ "-Wbitwise-op-parentheses" เปเบฅเบฐ "-Wlogical-op-parentheses" เบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.
- เปเบเบฅเบฐเบซเบฑเบ C เปเบฅเบฐ C++, เบเบณเบชเบฑเปเบเปเบฅเบเบเบฐเบเบดเบเบเบญเบเบเบปเบงเบเบตเปเปเบกเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบขเบนเปเปเบเบญเบฒเปเบฃเปเบเบปเปเบฒเบเบฑเปเบ. เปเบเบทเปเบญเบเบญเบฐเบเบฒเปเบกเบเบถเบเบเบดเบเบณเบเบตเปเบเปเปเปเบเปเบเบณเบเบปเบเปเบงเปเปเบเปเปเบ "-fsanitize=pointer-overflow" เบเบญเบเบเบตเปเบเบฑเบเบเปเบฅเบฐเบเบตเปเบเบฑเปเบเบเบฒเบเปเบเบตเปเบกเบเปเบฒเบเบปเบเปเบเบตเบเบเบตเปเบเปเปเปเบกเปเบเบชเบนเบเปเบชเปเบเบปเบงเบเบตเป null เบซเบผเบทเบชเปเบฒเบเบเบปเบงเบเบตเป null เปเบกเบทเปเบญเบฅเบปเบเบเบณเบเบงเบเปเบเบฑเบกเบเบฒเบเบเบปเบงเบเบตเปเบเบตเปเบเปเปเปเบกเปเบ null.
- เปเบซเบกเบ "-fsanitize=implicit-conversion" (Implicit Conversion Sanitizer) เปเบกเปเบเบเบทเบเบเบฑเบเบเบปเบงเปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบฑเบเบซเบฒเบเบตเปเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบถเปเบ เปเบฅเบฐเบเบฒเบเบซเบผเบธเบเบฅเบปเบเบชเปเบฒเบฅเบฑเบเบเบฐเปเบเบเบเบตเปเบกเบตเบเบฐเปเบฒเบเบเปเบญเบเบเบงเปเบฒเบเบญเบเบเบฐเปเบเบ "int".
- เปเบกเบทเปเบญเปเบฅเบทเบญเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเบปเปเบฒเบซเบกเบฒเบ x86 "-march=skylake-avx512", "-march=icelake-client", "-march=icelake-server", "-march=cascadelake" เปเบฅเบฐ "-march = cooperlake" เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบ vectorized The เบฅเบฐเบซเบฑเบเปเบเปเบขเบธเบเปเบเบปเบฒเบเบฒเบเบเปเบฒเปเบเป 512-bit zmm เบฅเบปเบเบเบฐเบเบฝเบ, เบเบปเบเปเบงเบฑเปเบเบเบฒเบเบเบตเปเบเบญเบเปเบเบเบเบปเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ. เปเบซเบเบเบปเบเปเบกเปเบเบงเปเบฒเบเบงเบฒเบกเบเบตเป CPU เบซเบผเบธเบเบฅเบปเบเปเบกเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบ 512-bit, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบฅเบปเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบฅเบงเบก. เปเบเบทเปเบญเบเปเบฝเบเบเบถเบเบเบดเบเปเบฒเปเบซเบกเป, เบเบฒเบเปเบฅเบทเบญเบ "-mprefer-vector-width=512" เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเป.
- เบเบถเบเบเบดเบเปเบฒเบเบญเบเบเบธเบ "-flax-vector-conversions" เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ GCC: เบเบฒเบเปเบเบเบเบดเบ vector implicit เบฅเบฐเบซเบงเปเบฒเบ integer เปเบฅเบฐ vector-เบเบธเบเบฅเบญเบเปเบกเปเบเบซเปเบฒเบก. เปเบเบทเปเบญเบฅเบปเบเบฅเปเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเป, เบกเบฑเบเปเบเปเบเบทเบเบชเบฐเปเบซเบเบตเปเบซเปเปเบเปเบเบธเบ
"-flax-vector-conversions=all" เปเบเบดเปเบเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. - เบเบฑเบเบเบธเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ CPUs MIPS เบเบญเบเบเบญเบเบเบปเบง Octeon. เปเบเบตเปเบก "octeon+" เปเบชเปเบฅเบฒเบเบเบทเปเบเบญเบเบเบฐเปเบเบ CPU เบเบตเปเบเบทเบเบเปเบญเบ.
- เปเบกเบทเปเบญเบเบฐเบเบญเบเปเบเบปเปเบฒเปเบเบฅเบฐเบซเบฑเบเบเบปเบงเบเบฒเบเบเบญเบ WebAssembly, wasm-opt optimizer เบเบฐเบเบทเบเปเบญเบตเปเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เบเปเบฒเบกเบตเบขเบนเปเปเบเบฅเบฐเบเบปเบ.
- เบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเบตเปเบญเบตเบเปเบชเปเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ RISC-V, เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเบฒเบเบธเบเบฅเบญเบเปเบกเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบขเบนเปเปเบเบเบฑเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบเบเบญเบเบเบฒเบเบเบฐเบเบญเบ inline inserts.
- เปเบเบตเปเบกเบเบธเบ compiler เปเบซเบกเป: "-fgnuc-version" เปเบเบทเปเบญเบเปเบฒเบเบปเบเบเปเบฒเบชเบฐเบเบฑเบเบชเปเบฒเบฅเบฑเบ "__GNUC__" เปเบฅเบฐ macro เบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ; "-fmacro-prefix-map=OLD=NEW" เปเบเบทเปเบญเปเบเบเบเบตเปเบเปเบฒเบเปเบฒเบซเบเปเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบต OLD เบเบฑเบ NEW เปเบเบกเบฒเปเบเปเบเบฑเปเบ "__FILE__"; "-fpatchable-function-entry=N[,M]" เปเบเบทเปเบญเบชเปเบฒเบเบเปเบฒเบเบงเบเบเบตเปเปเบเปเบเบญเบเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒ NOP เบเปเบญเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบธเบเปเบเบปเปเบฒเบเบฑเบเบเบฑเบ. เบชเปเบฒเบฅเบฑเบ RISC-V
เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบธเบ "-ffixed-xX", "-mcmodel=medany" เปเบฅเบฐ "-mcmodel=medlow". - เปเบเบตเปเบกโเบเบฒเบโเบชเบฐโเบซเบเบฑเบโเบชเบฐโเบซเบเบนเบโเบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐ '__attribute__((target("branch-protection=..."))) , เบเบปเบโเบเบฐโเบเบปเบโเบเบญเบโเบเบตเปโเบเปเบฒเบโเบเบทโเบเบฑเบโเบเบฑเบโเบเบฒเบโเปเบฅเบทเบญเบ
-branch-protect . - เปเบเปเบงเบเบต Windows, เปเบกเบทเปเบญเบฅเบฐเบเบธเบเบธเบ "-cfguard", เบเบฒเบเบเบปเบเปเบเบเบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเบฒเบเปเบซเบผเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ (Control Flow Guard) เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบซเบฒเบซเบเปเบฒเบเบตเปเบเบฒเบเบญเปเบญเบกเปเบกเปเบเบเบฐเบเบดเบเบฑเบ. เปเบเบทเปเบญเบเบดเบเบเบฒเบเบเบปเบเปเบเบเบเบฒเบเบเบงเบเบชเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบธเบ "-cfguard-nochecks" เบซเบผเบทเบเบปเบงเปเบเปเปเบ "__declspec(guard(nocf))".
- เบเบถเบเบเบดเบเปเบฒเบเบญเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ gnu_inline เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ GCC เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเปเปเบกเบตเบเปเบฒเบซเบฅเบฑเบ "extern".
- เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ OpenCL เปเบฅเบฐ CUDA เปเบเปเบเบทเบเบเบฐเบซเบเบฒเบเบญเบญเบ. เปเบเบตเปเบกเบเบฒเบเบฎเบญเบเบฎเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบ OpenMP 5.0 เปเปเป.
- เบเบปเบงเปเบฅเบทเบญเบเบกเบฒเบเบเบฐเบเบฒเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบ utility เบฎเบนเบเปเบเบ clang, เปเบเบดเปเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบงเบตเบเบฑเบเบเบญเบเบกเบฒเบเบเบฐเบเบฒเบ C++ เบเบตเปเปเบเปเปเบเปเบงเบฅเบฒเบงเบดเปเบเบฒเบฐเปเบฅเบฐเบเบฒเบเบเบฑเบเบฎเบนเบเปเบเบเบฅเบฐเบซเบฑเบ (เบฅเปเบฒเบชเบธเบ, เบญเบฑเบเบเบฐเปเบเบกเบฑเบ, c ++03, c ++ 11, c ++ 14, c++17, c++20).
- เบเบฒเบเบเบงเบเบชเบญเบเปเปเปเปเบเปเบเบทเบเปเบเบตเปเบกเปเบชเปเปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเบชเบฐเบเบดเบ: alpha.cplusplus.PlacementNew เปเบเบทเปเบญเบเบงเบเบชเบญเบเบงเปเบฒเบกเบตเบเบทเปเบเบเบตเปเบเบฑเบเปเบเบฑเบเบเบฝเบเบเปเบซเบผเบทเบเปเป, fuchsia.HandleChecker เปเบเบทเปเบญเบเบงเบเบซเบฒเบเบฒเบเบฎเบปเปเบงเปเบซเบผเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบปเบงเบเบฑเบเบเบฒเบ Fuchsia, security.insecureAPI.decodeValueOfObjCType เปเบเบทเปเบญเบเบงเบเบซเบฒเบเบฒเบเบฅเบปเปเบเบเบฑเบเปเบเบตเบเบตเปเบญเบฒเบเบเบฐเปเบเบตเบเบเบถเปเบเปเบเปเบงเบฅเบฒเปเบเป [NSCoderjocderbOVOV. :at:].
- เปเบเบทเปเบญเบเบญเบฐเบเบฒเปเบกเบเบถเบเบเบดเบเบณเบเบตเปเบเปเปเปเบเปเบเบณเบเบปเบเปเบงเป (UBSan) เปเบเปเบเบฐเบซเบเบฒเบเบเบฒเบเบเบงเบเบเบฒเบเบฒเบเบฅเบปเปเบเบเบปเบงเบเบตเปเบเบญเบเบกเบฑเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบณเปเบเปเบเบฒเบเบเบปเบเปเบเบตเบเบเบตเปเบเปเปเปเบกเปเบเบชเบนเบเปเบเบซเบฒเบเบปเบงเบเบตเป NULL เบซเบผเบทเบเบปเบเบเบญเบเบเบฒเบเปเบเบตเปเบกเบเปเบฒเบเบปเบเปเบเบตเบเบเบปเบงเบเบตเป NULL.
- เปเบ linter clang-tidy
เปเบเบตเปเบก เบชเปเบงเบเปเบซเบเปเบเบญเบเบเบฒเบเบเบงเบเบชเบญเบเปเบซเบกเป.
เบเบปเปเบโเบเป
- เบเบฑเบเบเบญเบ
เบเบปเบงเปเบเบ เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบซเบกเปเปเบเปเบเบทเบเปเบเบตเปเบก. เบฅเบฑเบเบเบญเบ 19 เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบกเปเบเบเบฒเบเบเบฐเปเบ, เบฅเบงเบกเบเบฑเบ 12 เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ 12 LLVM IR เปเบฅเบฐ 7 เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเปเปเบกเบตเบเบปเบงเบเบปเบเปเบเบฑเปเบ: เบเบตเบงเบดเบ. - เปเบเบตเปเบกเบเบฑเบเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบชเบฒเบเบเบญเบ matrix เปเบซเบกเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบ compiler (
เบเบฒเบเปเบ ), เปเบเบดเปเบเบเบทเบเปเบเบเบเบตเปเบเปเบงเบเบเปเบฒเปเบเบฐเบเปเบฒ vector เบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบก. - เบเบฒเบเบเบฑเบเบเบธเบเบซเบผเบฒเบเบขเปเบฒเบเปเบเปเบเบทเบเปเบฎเบฑเบเบเบฑเบ backends เบชเปเบฒเบฅเบฑเบ X86, AArch64, ARM, SystemZ, MIPS, AMDGPU เปเบฅเบฐเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐ PowerPC. เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ CPU
Cortex-A65, Cortex-A65AE, Neoverse E1 เปเบฅเบฐ Neoverse N1. เบชเปเบฒเบฅเบฑเบ ARMv8.1-M, โโเบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบซเปเปเบซเบกเบฒเบฐเบชเบปเบก (เบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ loops เบเบตเปเบกเบต overhead เบซเบเปเบญเบเบเบตเปเบชเบธเบเปเบเปเบเบฒเบเบปเบ) เปเบฅเบฐเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ auto-vectorization เปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบเปเบเปเบเบฒเบเบเบฐเบซเบเบฒเบ MVE. เบเบฑเบเบเบธเบเบเบฒเบเบฎเบญเบเบฎเบฑเบ CPU MIPS Octeon. เบชเปเบฒเบฅเบฑเบ PowerPC, vectorization เบเบญเบ subroutines เบเบฐเบเบดเบเบชเบฒเบเปเบเบเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบ MASSV (Mathematical Acceleration SubSystem) เบเบทเบเปเบเบตเบเปเบเป, เบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบทเบเบเบฑเบเบเบธเบ, เปเบฅเบฐเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฒเบ loops เปเบกเปเบ optimized. เบชเปเบฒเบฅเบฑเบ x86, เบเบฒเบเบเบฑเบเบเบฒเบ vector เบเบฐเปเบเบ v2i32, v4i16, v2i16, v8i8, v4i8 เปเบฅเบฐ v2i8 เปเบเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ. - เบเบฑเบเบเบธเบเบเบปเบงเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบ WebAssembly. เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ TLS (Thread-Local Storage) เปเบฅเบฐเบเปเบฒเปเบเบฐเบเปเบฒ atomic.fence. เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ SIMD เปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เปเบเบฅเปเบงเบฑเบเบเบธ WebAssembly เปเบเบเบฑเบเบเบธเบเบฑเบเบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเปเบฅเบฒเบเปเบเบฑเบเบเบญเบเบเบฑเบเบเบฑเบเบเบตเปเบกเบตเบเปเบฒเบซเบผเบฒเบ.
- เปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเปเบกเปเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบกเบงเบเบเบปเบ loops
MemorySSA , เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบเบถเปเบเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. MemorySSA เบชเบฒเบกเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบฅเบฐเปเบงเบฅเบฒเบเบฐเบเบดเบเบฑเบเบซเบผเบทเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบ AliasSetTracker เปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบนเบเปเบชเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. - เบเบปเบงเบเบตเบเบฑเบ LLDB เปเบเปเบเบฑเบเบเบธเบเบเบฒเบเบฎเบญเบเบฎเบฑเบเบฎเบนเบเปเบเบ DWARF v5 เบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเบฒเบเบเบฑเบเบเบธเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบงเบ MinGW
เปเบฅเบฐเปเบเบตเปเบกเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบเบเบฒเบเปเบเปเบเบฑเบเบซเบฒ Windows executable เบชเปเบฒเบฅเบฑเบ ARM เปเบฅเบฐ ARM64 architectures. เปเบเบตเปเบกเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบทเปเบกเบเปเปเบกเบนเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบเบฒเบเบเบปเบเปเบเบ. -
เบเบฐเบซเบเบฒเบ เบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป LLD. เบเบฑเบเบเบธเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบฎเบนเบเปเบเบ ELF, เบฅเบงเบกเบเบฑเบเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเปเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบเบญเบเปเบกเปเปเบเบ glob เบเบฑเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป GNU, เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบงเบเบเบตเบเบฑเบเบเบตเปเบเบทเบเบเบตเบเบญเบฑเบ ".zdebug", เปเบเบตเปเบกเบเบธเบเบชเบปเบกเบเบฑเบ PT_GNU_PROPERTY เปเบเบทเปเบญเบเปเบฒเบเบปเบเบชเปเบงเบ .note.gnu.property (เบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเปเปเบเบญเบฐเบเบฒเบเบปเบ. Linux kernels),
เปเบซเบกเบ โ-z noseparate-codeโ, โ-z เปเบเบเบเปเบฒเบเบซเบฒเบ-codeโ เปเบฅเบฐ โ-z เปเบเบเบเปเบฒเบเบซเบฒเบ-loadable-segmentsโ เปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบเบฑเบเบเบธเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ MinGW เปเบฅเบฐ WebAssembly.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru