GCC 9.1


GCC 9.1

3-may kuni GCCning to'qqizinchi versiyasining birinchi ommaviy nashri bo'lib o'tdi: GCC 9.1.
Sakkizinchi bilan solishtirganda juda ko'p muhim yaxshilanishlar va qo'shimchalarni o'z ichiga oladi
versiya.

Umumiy o'zgarishlar

Tanlovlar
Yangi o'rnatilgan xususiyatlar
Yangi atribut
boshqa

Quyidagilar bilan bog'liq ko'plab kod ishlab chiqarish yaxshilanishlari:

  • kommutator konstruksiyalarini yaratish;
  • protseduralararo optimallashtirish;
  • profil ma'lumotlariga asoslangan optimallashtirish;
  • yig'ish bosqichida optimallashtirish (LTO);

Shuningdek, gcovning ichki formati endi JSON va yangi variant --issiqlik-ranglardan foydalanish kod satrlarini qanchalik tez-tez ishlatilishiga qarab rang berishni o'z ichiga oladi.

Tillar

Amalga oshirishning sifati va to'liqligi OpenACC C, C++ va Fortran tillari takomillashishda davom etmoqda.

C-ga o'xshash tillar
  • OpenMP 5.0 uchun qisman qo'llab-quvvatlash amalga oshirildi;
  • Qo'shilgan funksiya __o'rnatilgan_konvertor;
  • Qo'shilgan ogohlantirish -To'plangan a'zoning manzili;
  • Bir qator mavjud ogohlantirishlarni yaxshilash;
  • Makrosga noto'g'ri argumentlar sonini o'tkazishda xato matni endi makroning o'zi deklaratsiyasini o'z ichiga oladi;
  • Xatolarni tuzatish boΚ»yicha takliflar yaxshilandi.
C
  • -std=c2x (kelajakdagi C standarti) uchun bitta argument bilan _Static_assertni qo'llab-quvvatlang;
  • Yangi ogohlantirish - Mutlaq qiymat, bu abs() kabi funktsiyalar uchun noto'g'ri argument turini ushlaydi.
C ++
  • Yangi ogohlantirishlar: -W eskirgan-nusxasi,
    -Winit-list-hayoti,
    - Keraksiz harakat,
    -Wpessimizing-harakat,
    -Wclass-konvertatsiya;
  • Kelajakdagi standartdan yangi xususiyatlarni joriy etish bo'yicha ishlar olib borilmoqda C++ 2a;
  • Frontend endi bir qator manba kodlari elementlari haqida aniqroq ma'lumotlarni saqlaydi, bu esa diagnostikada batafsilroq ma'lumotni ko'rsatish imkonini beradi;
  • Haddan tashqari yuklangan funksiyalar, ikkilik operatorlar, funksiya chaqiruvlari va format satrlari uchun yaxshilangan diagnostika;
  • Bir qator mashhur xatolar (qavslar, nomlar bo'shliqlari, matn terish xatolari va boshqalar) uchun ba'zi ishlab chiqish muhitlari tomonidan qo'llab-quvvatlanadigan avtomatik tuzatishlar qo'shildi.
libstdc++
  • C++ 17 ilovasi endi eksperimental emas;
  • Qo'shilgan parallel algoritmlar, , , A endi -lstdc++fs talab qilmaydi;
  • C++ 2a uchun yaxshilangan eksperimental yordam ( , , std::bind_front va boshqalar);
  • Yo'llari belgi bo'lmagan belgilarni o'z ichiga olgan Windows-da fayl oqimlarini ochishni qo'llab-quvvatlash;
  • Dastlabki qo'llab-quvvatlash Windows-da;
  • Networking TS uchun dastlabki yordam.
D

D tilining 2.076 versiyasi GCCga kiritilgan.

Fortran
  • Asinxron kiritish-chiqarish uchun to'liq qo'llab-quvvatlash;
  • MINLOC va MAXLOC uchun BACK argumenti amalga oshirildi;
  • FINDLOC va IS_CONTIGOUS funktsiyalari amalga oshirildi;
  • Kompleks sonlar komponentlariga kirish sintaksisi amalga oshirildi: c%re va c%im;
  • Amalga oshirilgan sintaksis str%len va a%tur;
  • Amalga oshirilgan C deskriptorlari va ISO_Fortran_binding.h sarlavhasi;
  • Argumentlardan biri NaN bo'lsa, MAX va MIN funksiyalarining natijasi uchun yumshatilgan talablar;
  • Qo'shilgan variant -fdec-o'z ichiga oladi;
  • Direktiv qo'shildi QURILGAN.
libgccjit

boshqa

Arxitektura va operatsion tizimga xos bo'lgan ko'plab o'zgarishlar.

Manba: linux.org.ru

a Izoh qo'shish