Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΏΠ°ΡΡΠ΅ΠΉ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Spectre ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, ΡΡΠ°Π»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΄Π°Π»ΠΎΡΡ Π±Ρ ΡΠ΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΡΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π² ΡΠ΄ΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΡΡ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠ΄ΡΠΎ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ANSI C (Π‘89), ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΅ΡΡ Π² 1989 Π³ΠΎΠ΄Ρ.
Π‘Π²ΡΠ·Π°Π½Π½Π°Ρ ΡΠΎ Spectre ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΊΠΎΠ΄Π΅ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»Π° — Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΎΡ ΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ, ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΊΠ»Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C99 ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΈΠΊΠ»Π° Π² Π±Π»ΠΎΠΊΠ΅ for(), ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ Π±Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π· ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°Π½ΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΉ.
ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΡΠΎΠ³Π»Π°ΡΠΈΠ»ΡΡ Ρ ΠΈΠ΄Π΅Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΠ΄ΡΠ΅ 5.18 Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C11, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² 2011 Π³ΠΎΠ΄Ρ. ΠΡΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠ±ΠΎΡΠΊΠ° Π² GCC ΠΈ Clang Π² Π½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΡΠ»Π° Π±Π΅Π· ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π² ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ
ΡΠΊΡΠΈΠΏΡΠ°Ρ
ΡΠ΄ΡΠ° 5.18 ΠΎΠΏΡΠΈΡ ‘—std=gnu89’ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° ‘—std=gnu11 -Wno-shift-negative-value’. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C17, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ GCC. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ C11 ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π²Π΅ΡΡΠΈΠΈ GCC (5.1).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru