āĻāϝāĻŧ āĻŽāĻžāϏ āϧāϰ⧠āĻāύā§āύāϝāĻŧāύā§āϰ āĻĒāϰ, LLVM 22.1.0 āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻāĻŽāύ āϏāϰāĻā§āĻāĻžāĻŽ (āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ, āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻžāϰ āĻāĻŦāĻ āĻā§āĻĄ āĻā§āύāĻžāϰā§āĻāϰ) āϤā§āϰāĻŋ āĻāϰ⧠āϝāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋāĻā§ RISC-āϏāĻĻā§āĻļ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞā§āϰ (āĻāĻāĻāĻŋ āĻŦāĻšā§-āϏā§āϤāϰā§āϰ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāύ āϏāĻŋāϏā§āĻā§āĻŽ āϏāĻš āĻāĻāĻāĻŋ āύāĻŋāĻŽā§āύ-āϏā§āϤāϰā§āϰ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻŽā§āĻļāĻŋāύ) āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻŦāĻŋāĻāĻā§āĻĄā§ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰā§āĨ¤ āĻā§āĻĒāύā§āύ āϏāĻŋāĻāĻĄā§āĻā§āĻĄ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϞāĻā§āώā§āϝ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻŽā§āĻļāĻŋāύ āĻā§āĻĄā§ āϰā§āĻĒāĻžāύā§āϤāϰāĻŋāϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻ āĻĨāĻŦāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āϏāĻŽāϝāĻŧ āϏāϰāĻžāϏāϰāĻŋ āĻŽā§āĻļāĻŋāύ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻ-āĻāύ-āĻāĻžāĻāĻŽ (JIT) āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ LLVM āĻĒā§āϰāϝā§āĻā§āϤāĻŋāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰā§, āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ Clang āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰ āϤā§āϰāĻŋ āĻāϰāĻā§, āϝāĻž C, C++ āĻāĻŦāĻ Objective-C āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻžāĻā§āϞāĻŋāĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤ 18.x āĻļāĻžāĻāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰā§, āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ āĻāĻāĻāĻŋ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ āύāĻŽā§āĻŦāϰāĻāϰāĻŖ āϏā§āĻāĻŋāĻŽā§ āϏā§āϝā§āĻāĻ āĻāϰā§āĻā§, āϝāĻžāϰ āĻ āύā§āϏāĻžāϰ⧠āϰāĻŋāϞāĻŋāĻ 0 ("N.0") āĻāύā§āύāϝāĻŧāύā§āϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰāĻĨāĻŽ āϏā§āĻĨāĻŋāϤāĻŋāĻļā§āϞ āϏāĻāϏā§āĻāϰāĻŖāĻāĻŋāĻā§ "N.1" āύāĻŽā§āĻŦāϰ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤
āĻā§āϞā§āϝāĻžāĻ 22-āĻāϰ āĻāύā§āύāϤāĻŋāϰ āĻŽāϧā§āϝ⧠āϰāϝāĻŧā§āĻā§:
- āĻŽā§āĻŽā§āϰāĻŋ āĻ ā§āϝāĻžāϞā§āĻā§āĻļāύ āĻā§āĻā§āύ (āĻ ā§āϝāĻžāϞā§āĻā§āĻļāύ āĻā§āĻā§āύ) āĻāϰ āĻāύā§āϝ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŽāϰā§āĻĨāύ, āϝāĻž malloc āĻāϰ āĻŽāϤ⧠āĻĢāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻ āύāύā§āϝ āĻļāύāĻžāĻā§āϤāĻāĻžāϰ⧠āĻĻāĻŋāϝāĻŧā§ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻŽā§āĻŽā§āϰāĻŋ āĻ ā§āϝāĻžāϞā§āĻā§āĻļāύ āĻ āĻĒāĻžāϰā§āĻļāύ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰā§āĨ¤ āĻ ā§āϝāĻžāϞā§āĻā§āĻļāύ āĻā§āĻā§āύāĻā§āϞāĻŋ āĻšāĻŋāĻĒ āϤāĻĨā§āϝ āĻāĻ āύ, āĻŽā§āĻŽā§āϰāĻŋ āϞāĻŋāĻ āϏāύāĻžāĻā§āϤāĻāϰāĻŖ āϏāĻšāĻāϤāϰ āĻāϰāĻžāϰ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻŦāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϧāϰāĻŖāĻā§āϞāĻŋāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻŦāϏā§āϤā§āϰ āĻā§āώā§āĻ ā§āĻāϰāĻŖ āϏāĻā§āώāĻŽ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ (āϝā§āĻŽāύ, "āĻāϰāĻŽ" āĻĨā§āĻā§ "āĻ āĻžāύā§āĻĄāĻž" āĻĄā§āĻāĻž āĻāϞāĻžāĻĻāĻž āĻāϰāĻž)āĨ¤ āϏāĻā§āώāĻŽ āĻāϰāϤā§, "-fsanitize=alloc-token" āĻĒāϤāĻžāĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
- āϏāĻŋ āĻāĻžāώāĻžāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ:
- "defer" āĻŦāĻŋāϞāĻŽā§āĻŦāĻŋāϤ āĻāĻžāϰā§āϝāĻāϰāĻāϰāĻŖ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰ⧠āĻāĻāĻāĻŋ āĻāϏāĻĄāĻŧāĻž āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻā§āĻļāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧā§āĻā§, āϝāĻž āĻŦāϰā§āϤāĻŽāĻžāύ āϏā§āĻā§āĻĒāĻāĻŋ āĻĒā§āϰāϏā§āĻĨāĻžāύ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤ "defer" āϏāĻŽāϰā§āĻĨāύ āϏāĻā§āώāĻŽ āĻāϰāĻžāϰ āĻāύā§āϝ "-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 āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻāĻāύ 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
