ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ áá áºááŸá áºá¡ááŒá¬ááœááºá á¡ááá²á· compiler suite GCC 12.1 ááᯠáá¯ááºáá±áá²á·ááŒá®ážá GCC 12.x áá¬áááœá²á¡áá áºááœáẠááááá¯á¶áž áááá¬áááºááŸá¬ážáá±á¬ ááŒáá·áºáá»áááŸá¯ááŒá áºáááºá á¡áá áºááœááºááŸááá¬ážáá±á¬ áá¶áá«ááºá ááºá áá áºááŸáá·áºá¡áá®á áá¬ážááŸááºáž 12.0 ááᯠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯ááºáááºážá ááºááœáẠá¡áá¯á¶ážááŒá¯áá²á·ááŒá®áž GCC 12.1 áááœááºááŸááá® áááŒá¬áá®ááœááºá GCC 13.0 áá¬áááœá²ááẠáá±á¬ááºáá¬ááá·áº á¡ááááá¯ááºááœáŸááºááŸá¯ááŒá áºááá·áº GCC 13.1 ááᯠá¡ááŒá±áá¶á ááœá²áá¯ááºááá¯ááºááŒá®ááŒá áºááŒá±á¬ááºážá ááœá²á·á ááºážááááºá áá±á 23 áááºáá±á·ááœáẠGCC áááááá¯á¶ážáá¯ááºáá±ááŸá¯á áááºáá²á·ááẠ35 ááŸá áºááŒá±á¬ááºááá±á¬áá»ááºááá¯áá»ááºážááááºááŒá áºáááºá
á¡áááááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž-
- C á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº á¡ááŸá¬ážááŒááºáááºááŒááºážáááºá¹áá±ááá»á¬ážááŒá¬áž áá»áááºáááºááŸá¯áá»á¬ážááŸáá·áº áááºáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»á áºáá áºááááºáááºážá áœá¬ ááááºážáááºážáá±ážááá·áº CTF (Compact Type Format) á¡ááŸá¬ážááŸá¬ááŒááºáá±á¬áºáááºá¡ááœáẠáááºáá±á¬ááºážáá¶á·ááá¯ážááŸá¯á ELF á¡áá¬ááá¹áá¯áá»á¬ážááœáẠááá·áºááœááºážáá±á¬á¡áá«á áá±á¬áºáááºááẠáá±áá¬ááœá¬ážááŒááºážááᯠááŸá±á¬ááºááŸá¬ážááẠEFL áá¬ááºáá±á¬ááºááá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá
- 1980 áá¯ááŸá áºáá»á¬ážááœáẠáááºáá®ážáá²á·áá±á¬ "STABS" á¡ááŸá¬ážááŸá¬á¡ááŸá¬ážááŸá¬ááœá±ááŒááºáž á¡áá»ááºá¡áááºááá¯ááŸá±á¬ááºááŸá¯áá±á¬áºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá¯ááºážáá¬ážáááºá
- á¡áá¯ááºááẠC ááŸáá·áº C++ áá¬áá¬á áá¬ážáá»á¬ážá¡ááœáẠá¡áá¬ááẠC2X ááŸáá·áº C++23 á á¶ááŸá¯ááºážáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºáááºááá¯ážáá»á²á·áá»ááºááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá âif constevalâ ááá¯ááá·áº á áá¬ážáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠááá·áºááœááºážáá¬ážáááºá áá¯ááºáá±á¬ááºáá»ááºá¡ááŒááºážá¡áá¯á¶áá»á¬ážááœáẠá¡ááá¯á¡áá»á±á¬ááºá¡áá¯á¶ážááŒá¯ááœáá·áº (âf(auto(g()))â); constexpr á¡ááŒá ẠááŒá±áá¬áá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠááááááá¯ááºáá±á¬ ááááºážááŸááºáá»á¬ážá goto ááŸáá·áº á¡ááœáŸááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááᯠááœáá·áºááŒá¯áá¬ážáááºá áááºáá±á«ááºážá á¯á¶ á¡ááœáŸááºážá¡á±á¬áºááá±áᬠá¡á±á¬áºááá±áá¬áá»á¬ážá¡ááœáẠáááºáá±á¬ááºážáá¶á·ááá¯ážááŸá¯[]; if, for ááŸáá·áº switch ááœááºá áááŠážáá¯ááºááœááºáá»á¬ážá á áœááºážáááºáá»á¬ážááᯠáá»á²á·ááœááºáá¬ážááẠ(âfor (T = int; T e : v)â)á
- C++ Standard Library ááẠC++20 ááŸáá·áº C++23 á á¶ááŸá¯ááºážáá»á¬ážá á ááºážáááºááŸá¯á¡ááá¯ááºážáá»á¬ážá¡ááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá¬áá«áááºá std::move_only_function á¡ááœáẠáá¶á·ááá¯ážááŸá¯á , std::basic_string::resize_and_overwriteá á ááŸáá·áº std::invoke_rá constexpr áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠstd::unique_ptr, std::vector, std::basic_string, std::optional ááŸáá·áº std::variant ááᯠá¡áá¯á¶ážááŒá¯ááẠááœáá·áºááŒá¯áá¬ážáááºá
- Fortran Frontend ááẠFortran ááŸáá·áº C áá¯ááºááŒá¬áž áááºáá±á¬ááºáááœááºáá°á á±ááá·áº á áœááºážáááºáá»á¬ážááᯠáá±á¬áºááŒááá·áº TS 29113 áááºááŸááºáá»ááºá¡ááœáẠá¡ááŒáá·áºá¡á áá¶á·ááá¯ážáá±ážáá«áááºá
- __builtin_shufflevector(vec1, vec2, index1, index2, ...) ááá¯ážáá»á²á·ááŸá¯ááᯠClang ááœáẠááááºá ááá·áºááœááºážáá¬ážááŒá®ážá áá¯á¶ vector shuffle ááŸáá·áº shuffle áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠáá±á«áºááá¯ááŸá¯áá áºáá¯áááºážááᯠáá¶á·ááá¯ážáá±ážááá·áº Clang ááá¯á· ááŒáá·áºá áœááºáá¬ážáááºá
- "-O2" ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºááŒá¯áá¯ááºááŒááºážá¡ááá·áºááᯠá¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á vectorization ááᯠáá¯á¶áá±ááŒáá·áºááœáá·áºáá¬ážááẠ(-ftree-vectorize ááŸáá·áº -fvect-cost-model=very-cheap modes ááá¯ááœáá·áºáá¬ážáááº)á á á»á±ážáá±á«áá±á¬ áá±á¬áºáááºááẠvector áá¯ááºááẠvectorized áá¯ááºáá¬ážáá±á¬ scalar code ááᯠáá¯á¶ážáá¡á á¬ážááá¯ážááá¯ááºááŸáᬠvectorization ááá¯ááœáá·áºááŒá¯áá«áááºá
- ááŒá¿áá¬áá»á¬ážááá¯ááŒá±áá¬áá¶áááºááŸáá·áº uninitialized variables áá»á¬ážá¡áá¯á¶ážááŒá¯ááŸá¯ááŸáá·áºáááºá ááºáá±áá±á¬ á¡á¬ážáááºážáá»ááºáá»á¬ážááá¯ááááºááá¯á·áááºá¡ááœáẠstack áá±á«áºááŸá variable áá»á¬ážááᯠááŸááºážáááºážááŒááºáá¬ážá áœá¬ á¡á ááŒá¯ááŒááºážá¡á¬áž ááœáá·áºáááºá¡ááœáẠ"-ftrivial-auto-var-init" áá¯ááºááᯠááá·áºááœááºážáá¬ážáááºá
- C ááŸáá·áº C++ áá¬áá¬á áá¬ážáá»á¬ážá¡ááœááºá Clang á០á¡áá¬ážáá°áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ á¡áá¬áá áºáá¯áá¡ááœááºá¡á á¬ážááᯠáá¯á¶ážááŒááºááẠ__builtin_dynamic_object_size ááᯠááá·áºááœááºážáá¬ážáá«áááºá
- C ááŸáá·áº C++ áá¬áá¬á áá¬ážáá»á¬ážá¡ááœááºá âááááŸáááá¯ááºáá«â áááºááœáŸááºážáá»ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá±á«ááºážááá·áºááá¯ááºáá«ááŒá® (á¥ááá¬á áááºá¡áá¯á¶ážááŒá¯áááºááŒáá¯ážá á¬ážáá«á á¡ááŸá¬ážáá áºáá¯áááºáá®ážáá±ážááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááŸááºá¡áá¬ážááŒá¯ááá¯ááºáááº)á
- C ááŸáá·áº C++ áá¬áá¬á áá¬ážáá»á¬ážá¡ááœáẠâ#elifdefâ ááŸáá·áº â#elifndefâ áááºážááœáŸááºáá»ááºáá»á¬ážááᯠááŒáá¯áááºáá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠááá·áºááœááºážáá¬ážáááºá
- UTF-8 á á¬áá¯á¶ážáá»á¬ážááᯠááœá²ááŸá¬ážá áœá¬á¡áá¯á¶ážááŒá¯áá«á ááááá±ážáá»ááºááŒáááẠ"-Wbidi-chars" á¡áá¶ááᯠáá±á«ááºážááá·áºáá¬ážááŒá®ážá áááºážááŒá±á¬ááºážááŸá áºááŒá±á¬ááºážááŸááá±á¬ á á¬áá¬ážááá¯ááŒáááá·áº á¡á á®á¡á á¥áºááᯠááŒá±á¬ááºážáá²ááŒááºážá
- arrays ááá¯áááºááœáŸááºážáá±á¬ operands ááŸá áºáá¯ááᯠááŸáá¯ááºážááŸááºááẠááŒáá¯ážáááºážáá±á¬á¡áá« ááááá±ážáá»ááºááŒáááẠ"-Warray-compare" á¡áá¶ááᯠáá±á«ááºážááá·áºáá¬ážáááºá
- Multi-core ááŸáá·áº hybrid (CPU+GPU/DSP) á áá áºáá»á¬áž áá»áŸáá±áá¬ážáá±á¬ memory ááŸáá·áº vectorization áá°áá áºáá»á¬áž (SIMD) ááœáẠá¡ááŒáá¯ááºáááá¯ááááºážáááºážáááºážáááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠAPI ááŸáá·áº áááºážáááºážáá»á¬ážááᯠáááºááŸááºáá±ážááá·áº OpenMP 5.0 ááŸáá·áº 5.1 (Open Multi-Processing) á á¶ááŸá¯ááºážáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºáž , áááºáááºá
- GPU áá»á¬ážááŸáá·áº NVIDIA PTX áá²á·ááá¯á·áá±á¬ á¡áá°ážááŒá¯áááá¯áááºáá¬áá»á¬ážáá±á«áºááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážá¡ááœáẠáááááá¬áá»á¬ážááᯠáááºááŸááºáá±ážááá·áº OpenACC 2.6 á¡ááŒáá¯ááºáááá¯ááááºážáááºážáááºááŸááºáá»ááºááᯠááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá
- ááá¯ážáá»á²á·ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá¡ááœáẠIntel AVX86-FP512 ááŸáá·áº _Float16 á¡áá»áá¯ážá¡á á¬ážááᯠx16 áááá¯áá¬á¡ááœáẠáá¯ááºáá»áá¯ážáááºáá±á¬ááºááœááºááœáẠááá·áºááœááºážáá¬ážáááºá
- x86 áááá¯áá¬á¡ááœááºá ááŒáœááºážáá»ááºáááŸá ááŸá±á·ááá¯á·áá¯ááºááŒááºážáá¯ááºáá±á¬ááºááŒá®ážáá±á¬áẠááŒáœááºážáá»ááºáááŸá ááŸá±á·ááá¯á·áá¯ááºááŒááºážáá¯ááºáá±á¬ááºááŒá®ážáá±á¬áẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŸááºážááá¯ááºáá±á¬ááºááŒááºážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá¬áá±á¬ áááá¯áááºáá¬áá»á¬ážááœáẠá¡á¬ážáááºážáá»ááºáá»á¬ážááᯠá¡áá¬á¡ááœááºááá·áºááœááºážáá¬ážáááºá ááŸááºáá¬ááºááŸá áá¬áááœá²ááœáŸááºááŒá¬ážáá»ááºáá»á¬áž (SLSá Straight Line Speculation) á¡ááŒá®ážááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŒáá¯áááºáá¯ááºáá±á¬ááºááŒááºážáá»á¬ážááŒá±á¬áá·áº ááŒá¿áá¬ááŒá áºáá±á«áºáá«áááºá á¡áá¬á¡ááœááºááá¯ááœáá·áºáááºá â-mharden-slsâ ááœá±ážáá»ááºááŸá¯ááᯠá¡ááá¯ááŒá¯áá¬ážáááºá
- á ááºážáááºáá²áááºááŒáááºááŸá¯ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááœáẠuniinitialized variables áá»á¬ážá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠáá±á¬ááºááŸááºážááŸá¯ááᯠáá±á«ááºážááá·áºáá¬ážáááºá inline ááá·áºááœááºážááŸá¯áá»á¬ážááœáẠá á¯áá±ážááŸá¯áá¯ááºááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬ááŒááºážá¡ááœáẠáááŠážáá¶á·ááá¯ážááŸá¯ áá±á«ááºážááá·áºáá¬ážáááºá ááŸááºáá¬ááºááŒá±áá¬áá¶ááŒááºážááᯠááá¯ážáááºá á±áááºá ááá¯ááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœáẠáá¯ááºááᯠááŒááºáááºáá±ážáá¬ážááŒá®ážááŒá áºáááºá
- áá¯ááºáá¯ááºáá¯ááºáá°á¡á¬áž á¡ááŒá¬ážáá¯ááºáááºážá ááºáá»á¬ážááœáẠááá·áºááœááºážáááºááŸáá·áº JIT á០bytecode ááᯠá ááºáá¯ááºááá¯á· á á¯á ááºážáááºá¡ááœáẠáá»áŸáá±áá¬ážáá±á¬ á á¬ááŒáá·áºááá¯ááºáá áºáá¯ááŒá áºááá·áº libgccjit ááá¯á· áá±á«áºááá¯ááŸá¯á¡áá Ạ30 áá¯ááᯠáá±á«ááºážááá·áºáá²á·áááºá
- CO-RE (Compile Once - Run Everywhere) á¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž BPF bytecode áá¯ááºáá±ážáááºá¡ááœáẠbackend ááœáẠááá·áºááœááºážáá¬ážááŒá®ážá áááºážááẠLinux kernel á¡ááœáẠeBPF áááá¯ááááºáá»á¬ážá áá¯ááºáá»á¬ážááᯠáá áºááŒáááºáᬠá á¯á ááºážááá¯ááºááŒá®áž áááºážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá á±ááá·áº á¡áá°áž universal loader ááᯠá¡áá¯á¶ážááŒá¯áá«á áááá¯ááááºááᯠáááºááŸá kernel ááŸáá·áº BPF á¡áá»áá¯ážá¡á á¬ážáá»á¬ážáá±á¬áºáááºááá¯á· áááºáá¬ážáááº)á CO-RE ááẠá á¯á ááºážáá¬ážáá±á¬ eBPF áááá¯ááááºáá»á¬ážá áááºáá±á¬ááºáááœááºáá°ááŸá¯ááŒá¿áá¬ááᯠááŒá±ááŸááºážáá±ážáááºá áááºážááẠááááºá áááºážááá¯á·á á¯á ááºážáá¬ážáá±á¬ kernel ááá¬ážááŸááºážááœááºáᬠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áºááŒá¿áá¬ááᯠááŒá±ááŸááºážáá±ážáááºá áá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááŸá ááŒááºá ááºáá»á¬ážáá¡áá±á¡áá¬ážááẠáá¬ážááŸááºážááŸáá¬ážááŸááºážááá¯á·ááŒá±á¬ááºážááœá¬ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
- RISC-V áá±á¬ááºáá¶á¡á áœááºááẠááœáŸááºááŒá¬ážáá»ááºá¡á á¯á¶áááá¯áá¬á¡áááºá¡áá áºáá»á¬ážá¡ááœáẠzbaá zbbá zbc ááŸáá·áº zbs á¡ááŒáẠvector ááŸáá·áº scalar cryptographic operations á¡ááœáẠISA extensions áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áá°áááºážá¡á¬ážááŒáá·áºá RISC-V ISA 20191213 áááºááŸááºáá»ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá T-HEAD c906 cores á¡ááœáẠáá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááá¯ááºá á±ááẠ-mtune=thead-c906 á¡áá¶ááᯠáá±á«ááºážááá·áºáá¬ážáá«áááºá
- __int128_t/integer(kind=16) á¡áá»áá¯ážá¡á á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž GCN microarchitecture ááᯠá¡ááŒá±áá¶á AMD GPUs á¡ááœáẠáá¯ááºáá»áá¯ážááẠáá±á¬ááºááœááºááœáẠááá·áºááœááºážáá¬ážáá«áááºá ááœááºááŒá°áá¬áá°áá Ạ(CU) áá áºáá¯áá»áŸáẠá¡áá¯ááºá¡ááœá²á· 40 á¡ááááŸáá·áº ááœáŸááºááŒá¬ážáá»ááºáá»ááºááŸá¬á ᬠ16 áá¯á¡áá (wavefrontá á¡á¯ááºá á¯áá áºáá¯áá»áŸáẠSIMD á¡ááºáá»ááºááŒáá·áº á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááá·áº threads á¡á á¯á¶) ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááááºá CU áá áºáá¯áá»áŸáẠááœáŸááºááŒá¬ážáá»ááºá¡á áœááºážáá áºáá¯áᬠááœáá·áºááŒá¯áá²á·áááºá
- NVIDIA PTX (Parallel Thread Execution) ááœáŸááºááŒá¬ážáá»ááºá¡á á¯á¶áááá¯áá¬ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºááá¯áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááá·áº NVPTX áá±á¬ááºáá¶áá°ááẠâ-marchâá â-mptxâ ááŸáá·áº â-march-mapâ á¡áá¶áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠáá±á«ááºážááá·áºáá¬ážáááºá PTX ISA sm_53á sm_70á sm_75 ááŸáá·áº sm_80 á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá áá°áááºážáááºáá±á¬ááºáá¯á¶ááẠsm_30 ááŒá áºáááºá
- PowerPC / PowerPC64 / RS6000 áááá¯áááºáá¬áá»á¬ážá¡ááœáẠáá±á¬ááºááœááºááœááºá built-in áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠááŒááºáááºáá±ážáá¬ážáá¬ážáááºá built-in áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž __builtin_get_texasrá __builtin_get_texasruá __builtin_get_tfhará __builtin_get_tfiará __builtin_set_texasrá __builtin_set_texasruá __builtin_set_set_ett.
- Arm Ampere-64 (-mcpu/-mtune ampere1), Arm Cortex-A1 (cortex-a510), Arm Cortex-A510 (cortex-a710) ááŸáá·áº Arm Cortex-X710 (cortex- x2) á¡ááœáẠáá¶á·ááá¯ážááŸá¯á "-march" ááœá±ážáá»ááºááŸá¯ááŒáá·áºá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠARMv2 áááá¯áá¬ááœá±ážáá»ááºááŸá¯áá»á¬ážá¡áá áºá¡ááœáẠáá¶á·ááá¯ážááŸá¯áááºááá·áºáááº- armv8-aá armv8.7-aá armv8.8-aá ááá¯ážáá»á²á· ARM ááœáŸááºááŒá¬ážáá»áẠ(ls9) ááá¯á¡áá¯á¶ážááŒá¯ááŸá¯á¡áá±á«áº á¡ááŒá±áá¶á á¡áá¯ááŒá°áá¯á¶ážáááºááŒááºážááŸáá·áº áá±áá¬ááááºážáááºážááŒááºážá¡ááœáẠááœááºááŒá°áᬠ(Intrinsics) ááœáẠááá·áºááœááºážáá¬ážáá±á¬ C áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá·áºááœááºážáá¬ážáááºá mopsoption ARM ááá¯ážáá»á²á·ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á memcpyá memmove ááŸáá·áº memset áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºáááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯ áááºááá·áºáá¬ážáááºá
- á á áºáá±ážááŒááºážáá¯ááºá¡áá Ạâ-fsanitize=shadow-call-stackâ (ShadowCallStack) ááᯠAArch64 áááá¯áá¬áááºáá¬á¡ááœááºáᬠáááºááŸááááŸáááá¯ááºááŒá®áž â-ffixed-r18â ááœá±ážáá»ááºááŸá¯ááŒáá·áº áááºáá±á¬ááºááá·áºáá¯ááºááœáẠá¡áá¯ááºáá¯ááºááá·áºá¡áá«ááœáẠááá·áºááœááºážáá¬ážáááºá áá¯ááºááẠstack ááœááºááŒá¬ážáá¶áá»á¬ážáá»áŸá¶áá±áá»áááºááœáẠfunction áá áºáá¯ááŸááŒááºáá¬áá±á¬ááááºá á¬ááá¯áááºáá±ážááŒááºážááŸáá¬ááœááºáá±ážáááºá áá¬ááœááºááŸá¯á á¡ááŸá áºáá¬áááŸá¬ ááááºážáá»á¯ááºááŸá¯ááᯠáá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒá®áž áá¯ááºáá±á¬ááºáá»ááºá០áááœááºááœá¬áá® á€ááááºá á¬ááᯠááŒááºáááºááá°ááŒá®ážáá±á¬áẠáá®ážááŒá¬áž "á¡ááááº" á¡ááœááºáá áºáá¯ááœáẠááŒááºáá¬ááá·áºááááºá á¬ááᯠááááºážáááºážáááºááŒá áºáááºá
source: opennet.ru