GCC 9.1

3์›” 9.1์ผ, GCC XNUMX๋ฒˆ์งธ ๋ฒ„์ „์ธ GCC XNUMX์˜ ์ฒซ ๋ฒˆ์งธ ๊ณต๊ฐœ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
XNUMX๋ฒˆ์งธ ๋ฒ„์ „์— ๋น„ํ•ด ๋งŽ์€ ์ค‘์š”ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ์ถ”๊ฐ€ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฒ„์ „.

์ผ๋ฐ˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

์˜ต์…˜
  • ํฌ๊ธฐ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ช…๋ น์€ ์ด์ œ 64๋น„ํŠธ ๊ฐ’๊ณผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ์˜ต์…˜ -flive-ํŒจ์นญ, ๋™์ ์ธ ์ฝ”๋“œ ๊ต์ฒด์— ์ž ์žฌ์ ์œผ๋กœ ํŒŒ๊ดด์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด;
  • ๋ช…๋ น ์…ธ์—์„œ ์ž๋™ ์™„์„ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด --completion ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ์ปดํŒŒ์ผ๋Ÿฌ ์ง„๋‹จ์— ์ค„ ๋ฒˆํ˜ธ(-fno-diagnostics-show-line-numbers) ๊ทธ๋ฆฌ๊ณ 
    ์œ ํ˜• ์ •๋ณด(fno-์ง„๋‹จ-ํ‘œ์‹œ-๋ ˆ์ด๋ธ”);
  • ์ถ”๊ฐ€๋œ ์˜ต์…˜ -fdiagnostics-format=json JSON ํ˜•์‹์œผ๋กœ ์ง„๋‹จ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ •๋ ฌ ์ง€์ • ์˜ต์…˜(-falign-ํ•จ์ˆ˜์˜ˆ๋ฅผ ๋“ค์–ด) ์ด์ œ ๋ช‡ ๊ฐ€์ง€ ์ •๋ ฌ ์˜ต์…˜์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ๋ชฉ๋ก์„ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(-fํ”„๋กœํ•„-ํ•„ํ„ฐ-ํŒŒ์ผ, -fprofile-์ œ์™ธ-ํŒŒ์ผ), ์ด๋Š” ํ”„๋กœํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๊ณ„์ธก๋ฉ๋‹ˆ๋‹ค.
  • AddressSanitizer๋Š” ์ด์ œ ๋” ๊ฐ„๊ฒฐํ•œ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์œ ํšจํ•˜์ง€ ์•Š์€ ์•ก์„ธ์Šค๋ฅผ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ ๊ฐœ์„  -fopt-์ •๋ณด;
  • ์ถ”๊ฐ€๋œ ์˜ต์…˜ -fsave-์ตœ์ ํ™”-๊ธฐ๋ก ์ตœ์ ํ™” ๋ณด๊ณ ์„œ๋ฅผ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ์˜ต์…˜ -fipa-์Šคํƒ ์ •๋ ฌ ะธ -fipa-์ฐธ์กฐ-์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅ.
์ƒˆ๋กœ์šด ๋‚ด์žฅ ๊ธฐ๋Šฅ
์ƒˆ๋กœ์šด ์†์„ฑ
๋‹ค๋ฅธ

๋‹ค์Œ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ ๊ฐœ์„  ์‚ฌํ•ญ:

  • ์Šค์œ„์น˜ ๊ตฌ์„ฑ์˜ ์ƒ์„ฑ;
  • ์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™”;
  • ํ”„๋กœํŒŒ์ผ๋ง ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ตœ์ ํ™”;
  • ์กฐ๋ฆฝ ๋‹จ๊ณ„(LTO)์—์„œ์˜ ์ตœ์ ํ™”;

๋˜ํ•œ gcov์˜ ๋‚ด๋ถ€ ํ˜•์‹์€ ์ด์ œ JSON์ด๋ฉฐ ์ƒˆ ์˜ต์…˜์€ --์‚ฌ์šฉ-ํ•ซ๋„-์ƒ‰์ƒ ์‚ฌ์šฉ ๋นˆ๋„์— ๋”ฐ๋ผ ์ฝ”๋“œ ์ค„์„ ์ƒ‰์น ํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์–ธ์–ด

๊ตฌํ˜„์˜ ํ’ˆ์งˆ ๋ฐ ์™„์„ฑ๋„ ์˜คํ”ˆACC C, C++, Fortran ์–ธ์–ด๋Š” ๊ณ„์†ํ•ด์„œ ๊ฐœ์„ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

C์™€ ์œ ์‚ฌํ•œ ์–ธ์–ด
  • OpenMP 5.0์— ๋Œ€ํ•œ ๋ถ€๋ถ„ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ __๋‚ด์žฅ_๋ณ€ํ™˜๋ฒกํ„ฐ;
  • ๊ฒฝ๊ณ ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -ํฌ์žฅ ํšŒ์›์˜ Waddress;
  • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ์กด ๊ฒฝ๊ณ ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋งคํฌ๋กœ์— ์ž˜๋ชป๋œ ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ํ…์ŠคํŠธ์— ๋งคํฌ๋กœ ์ž์ฒด์˜ ์„ ์–ธ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ์˜คํƒ€ ์ˆ˜์ • ์ œ์•ˆ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
C
  • -std=c2x(ํ–ฅํ›„ C ํ‘œ์ค€)์— ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ์ธ์ˆ˜๋กœ _Static_assert๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๊ฒฝ๊ณ  -W์ ˆ๋Œ€๊ฐ’, ์ด๋Š” abs()์™€ ๊ฐ™์€ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ž˜๋ชป๋œ ์ธ์ˆ˜ ์œ ํ˜•์„ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
C + +
  • ์ƒˆ๋กœ์šด ๊ฒฝ๊ณ : -Wdeprecated-copy,
    -Winit-๋ชฉ๋ก-์ˆ˜๋ช…,
    - ์ค‘๋ณต ์ด๋™,
    -W๋น„๊ด€์  ์ด๋™,
    -Wclass ๋ณ€ํ™˜;
  • ๋ฏธ๋ž˜ ํ‘œ์ค€์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. C++2a;
  • ์ด์ œ ํ”„๋ŸฐํŠธ์—”๋“œ์— ์—ฌ๋Ÿฌ ์†Œ์Šค ์ฝ”๋“œ ์š”์†Œ์— ๋Œ€ํ•œ ๋” ์ •ํ™•ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋ฏ€๋กœ ์ง„๋‹จ ์‹œ ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋ฒ„๋กœ๋“œ๋œ ํ•จ์ˆ˜, ์ด์ง„ ์—ฐ์‚ฐ์ž, ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐ ํ˜•์‹ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์ง„๋‹จ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜(๊ด„ํ˜ธ ๋ˆ„๋ฝ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ์˜คํƒ€ ๋“ฑ)์— ๋Œ€ํ•ด ์ผ๋ถ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ง€์›๋˜๋Š” ์ž๋™ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
libstdc++
  • C++17 ๊ตฌํ˜„์€ ๋” ์ด์ƒ ์‹คํ—˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ณ‘๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. , , ใ… ๋” ์ด์ƒ -lstdc++fs๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • C++2a์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์‹คํ—˜์  ์ง€์›( , , std::bind_front ๋“ฑ);
  • ๊ฒฝ๋กœ์— ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ Windows์—์„œ ํŒŒ์ผ ์ŠคํŠธ๋ฆผ ์—ด๊ธฐ ์ง€์›
  • ์ดˆ๊ธฐ ์ง€์› ์œˆ๋„์šฐ์—์„œ;
  • ๋„คํŠธ์›Œํ‚น TS์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›.
D

D ์–ธ์–ด ๋ฒ„์ „ 2.076์ด GCC์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌํŠธ๋ž€
  • ๋น„๋™๊ธฐ I/O๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • MINLOC ๋ฐ MAXLOC์— ๋Œ€ํ•œ BACK ์ธ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • FINDLOC ๋ฐ IS_CONTIGOUS ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณต์†Œ์ˆ˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค: c%re ๋ฐ c%im;
  • str%len ๋ฐ a%kind ๊ตฌ๋ฌธ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • C ์„ค๋ช…์ž ๋ฐ ISO_Fortran_binding.h ํ—ค๋”๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ NaN์ธ ๊ฒฝ์šฐ MAX ๋ฐ MIN ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์™„ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ์˜ต์…˜ -fdec-ํฌํ•จ;
  • ์ง€์‹œ๋ฌธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์žฅ.
libgccjit

๋‹ค๋ฅธ

๋งŽ์€ ์•„ํ‚คํ…์ฒ˜ ๋ฐ OS ๊ด€๋ จ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : linux.org.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€