рдПрд▓рдПрд▓рд╡реАрдПрдо 22 рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реВрдЯ рдХрд╛ рд╡рд┐рдореЛрдЪрди

рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж, LLVM 22.1.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдЯреВрд▓ (рдХрдВрдкрд╛рдЗрд▓рд░, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдФрд░ рдХреЛрдб рдЬрдирд░реЗрдЯрд░) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ RISC рдЬреИрд╕реА рд╡рд░реНрдЪреБрдЕрд▓ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди (рдПрдХ рдорд▓реНрдЯреА-рд▓реЗрд╡рд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд▓реА рд▓реЛ-рд▓реЗрд╡рд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдХреЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╕реНрдпреВрдбреЛрдХреЛрдб рдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЯрд╛рд░рдЧреЗрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╕реАрдзреЗ рдорд╢реАрди рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо (JIT) рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред LLVM рддрдХрдиреАрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ C, C++ рдФрд░ Objective-C рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ Clang рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред 18.x рдмреНрд░рд╛рдВрдЪ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдПрдХ рдирдИ рд╡рд░реНрдЬрди рдирдВрдмрд░рд┐рдВрдЧ рдпреЛрдЬрдирд╛ рдЕрдкрдирд╛рдИ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд░рд┐рд▓реАрдЬрд╝ 0 ("N.0") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╕реНрдЯреЗрдмрд▓ рд╡рд░реНрдЬрди рдХреЛ "N.1" рдирдВрдмрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд▓реИрдВрдЧ 22 рдореЗрдВ рд╕реБрдзрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • malloc рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдП рдЧрдП рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рдСрдкрд░реЗрд╢рди рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рдЯреЛрдХрди (Allocation Tokens) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдПрд▓реЛрдХреЗрд╢рди рдЯреЛрдХрди рд╣реАрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ, рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдпрд╛ рд╕рдВрд╢реЛрдзрди рдкреИрдЯрд░реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣реЙрдЯ" рдбреЗрдЯрд╛ рдХреЛ "рдХреЛрд▓реНрдб" рдбреЗрдЯрд╛ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛)ред рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "-fsanitize=alloc-token" рдлрд╝реНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рд╕реА рднрд╛рд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
    • "рдбреЗрдлрд░" (рд╕реНрдердЧрд┐рдд рдирд┐рд╖реНрдкрд╛рджрди) рддрдВрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдорд╕реМрджрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреЛрдк рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛ рд╕рдХреЗрдВрдЧреАред "рдбреЗрдлрд░" рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "-fdefer-ts" рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
    • GCC рдореЗрдВ рдореМрдЬреВрдж рдЗрд╕реА рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣, __builtin_stack_address() рдирд╛рдордХ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕ рд╕реНрдЯреИрдХ рдПрдбреНрд░реЗрд╕ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ __builtin_stack_address() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдж рдХреЗ рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЗ рд╕реНрдЯреИрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред
  • рднрд╡рд┐рд╖реНрдп рдХреЗ C2y рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рдХреНрд╖рдорддрд╛рдПрдБ:
    • рдиреЗрдореНрдб рд▓реВрдкреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд▓реВрдкреНрд╕ рдХреЛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЛ рднреА рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдмреНрд░реЗрдХ рдФрд░ рдХрдВрдЯрд┐рдиреНрдпреВ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрдЙрдЯрд░: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { рдХрдВрдЯрд┐рдиреНрдпреВ; // CONT1 рдкрд░ рдЬрд╛рдПрдВ рдХрдВрдЯрд┐рдиреНрдпреВ рдЖрдЙрдЯрд░; // CONT2 рдкрд░ рдЬрд╛рдПрдВ // CONT1 } // CONT2 }
    • рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "__COUNTER__" рдореИрдХреНрд░реЛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдорд╛рдирдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдореИрдХреНрд░реЛ рдХреЛ 2147483647 рдмрд╛рд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ; рдЗрд╕ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред
    • "extern inline" рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЪреЗрддрд╛рд╡рдиреА (-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 рдЖрдкрдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: using MyTypeList = TypeList<__builtin_dedup_pack тАж>; // рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рдХрд╛рд░ TypeList рд╣реЛрдЧрд╛
  • 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 рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрдЯреНрд░рд┐рдВрд╕рд┐рдХреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред рд╡рд╛рдЗрд▓реНрдбрдХреИрдЯ рд▓реЗрдХ (-march=wildcatlake) рдФрд░ рдиреЛрд╡рд╛ рд▓реЗрдХ (-march=novalake) рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯреЗрд▓ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдореЛрдб рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред
  • AArch64 рдмреИрдХрдПрдВрдб рдЕрдм рдПрдореНрдкреАрдпрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдПрдореНрдкреАрдпрд░1C (ampere1c), рдЖрд░реНрдо C1-рдиреИрдиреЛ (c1-nano), рдЖрд░реНрдо C1-рдкреНрд░реЛ (c1-pro), рдЖрд░реНрдо C1-рдкреНрд░реАрдорд┐рдпрдо (c1-premium) рдФрд░ рдЖрд░реНрдо C1-рдЕрд▓реНрдЯреНрд░рд╛ (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 рд╕рд░реНрд╡рд░ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд░реАрджреЗрдВ ЁЯФе рдбреАрдбреАрдУрдПрд╕ рд╕реБрд░рдХреНрд╖рд╛, рд╡реАрдкреАрдПрд╕ рдФрд░ рд╡реАрдбреАрдПрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд░реАрджреЗрдВ | ProHoster