GCC 9.1

3-р сарын 9.1-нд GCC-ийн ес дэх хувилбарын анхны олон нийтэд гарсан хувилбар: GCC XNUMX.
Энэ нь найм дахьтай харьцуулахад олон чухал сайжруулалт, нэмэлтүүдийг агуулдаг
хувилбар.

Ерөнхий өөрчлөлтүүд

Сонголтууд
  • Хэмжээг хүлээн авах командууд одоо 64 битийн утгууд болон хэмжээг зааж өгөх дагаваруудыг дэмждэг;
  • Нэмэлт сонголт -flive-patching,динамик,код солиход хор хөнөөл учруулж болзошгүй оновчлолыг хянах;
  • Командын бүрхүүлд автоматаар гүйцээхийг дэмжихийн тулд --дуусгах сонголтыг нэмсэн;
  • Хөрвүүлэгчийн оношилгоонд мөрийн дугаар (-fno-оношлогоо-шугааны-тоог харуулах) болон
    төрлийн мэдээлэл (fno-диагностик-шошго);
  • Нэмэлт сонголт -fdiagnostics-format=json JSON форматаар оношийг гаргах;
  • Зэрэгцүүлэх сонголтууд (-falign-функцууд, жишээ нь) одоо хэд хэдэн тохируулгын сонголтыг хүлээн авах боломжтой;
  • Файлуудын жагсаалтыг шүүх сонголтуудыг нэмсэн (-fprofile-filter-файлууд, -fprofile-exclude-файлууд) нь профайл үүсгэгчээр хийгдсэн;
  • AddressSanitizer одоо стек дээрх хувьсагчдад буруу хандалтыг барихын тулд илүү нягт уялдаа холбоог ашигладаг;
  • Олон тооны гаралтын сайжруулалт -fopt-info;
  • Нэмэлт сонголт -fsave-optimization-record оновчлолын тайланг файлд хадгалах;
  • Нэмэлт сонголт -fipa-стекийн тэгшитгэх и -fipa-лавлагаа-хаягтай.
Шинэ суулгасан функцууд
Шинэ шинж чанар
Бусад

Дараахтай холбоотой олон тооны код үүсгэх сайжруулалт:

  • шилжүүлэгчийн бүтцийг бий болгох;
  • процедур хоорондын оновчлол;
  • профайлын мэдээлэлд үндэслэн оновчтой болгох;
  • угсралтын үе шатанд оновчтой болгох (LTO);

Мөн gcov-ийн дотоод формат нь одоо JSON бөгөөд шинэ сонголт юм --халуун-өнгө-хэрэглэх Энэ нь кодын мөрүүдийг хэр олон удаа ашиглаж байгаагаас нь хамааруулан будах явдал юм.

Хэлнүүд

Хэрэгжилтийн чанар, бүрэн гүйцэд байдал OpenACC C, C++, Fortran хэлүүд сайжирсаар байна.

C-тэй төстэй хэлүүд
  • OpenMP 5.0-ийн хэсэгчилсэн дэмжлэгийг хэрэгжүүлсэн;
  • Нэмэлт функц __барьсан_хувиргагч;
  • Анхааруулга нэмсэн -Багцлагдсан гишүүний хаяг;
  • Одоо байгаа хэд хэдэн анхааруулгыг сайжруулах;
  • Макро руу буруу тооны аргумент дамжуулахад гарсан алдааны текст нь одоо макроны мэдэгдлийг багтаасан болно;
  • Үг үсгийн алдаа засах зөвлөмжийг сайжруулсан.
C
  • -std=c2x (ирээдүйн С стандарт)-ын хувьд нэг аргументтай _Static_assert-ийг дэмжих;
  • Шинэ сэрэмжлүүлэг - Үнэмлэхүй үнэ цэнэ, энэ нь abs() гэх мэт функцүүдийн буруу аргументын төрлийг барьж авдаг.
C ++
  • Шинэ сэрэмжлүүлэг: -Хуулаагүй-хуулбар,
    -Winit-list-насан туршдаа,
    -Зайлшгүй нүүдэл,
    -Wpessimizing-Move,
    -Wclass-хувиргах;
  • Ирээдүйн стандартаас шинэ боломжуудыг нэвтрүүлэх ажил хийгдэж байна C++ 2a;
  • Frontend нь одоо хэд хэдэн эх кодын элементүүдийн талаар илүү үнэн зөв мэдээллийг хадгалдаг бөгөөд энэ нь оношлогоонд илүү нарийвчилсан мэдээллийг харуулах боломжийг олгодог;
  • Хэт ачаалалтай функцууд, хоёртын операторууд, функцүүдийн дуудлага, форматын мөрүүдийг оношлох сайжруулсан;
  • Хэд хэдэн түгээмэл алдаануудад (дутуу хашилт, нэрийн талбар, үсгийн алдаа гэх мэт) зарим хөгжүүлэлтийн орчинд дэмжигдсэн автомат засваруудыг нэмсэн.
libstdc++
  • C++ 17 хэрэгжилт нь туршилт байхаа больсон;
  • Зэрэгцээ алгоритм нэмсэн, , , А -lstdc++fs шаардлагагүй болсон;
  • C++ 2a-д зориулсан сайжруулсан туршилтын дэмжлэг ( , , std::bind_front гэх мэт);
  • Замууд нь тэмдэгтгүй тэмдэгт агуулсан Windows дээр файлын урсгалыг нээхэд дэмжлэг үзүүлэх;
  • Анхны дэмжлэг Windows дээр;
  • Networking TS-ийн анхны дэмжлэг.
D

D хэлний 2.076 хувилбарыг GCC-д оруулсан болно.

Фортран
  • Асинхрон оролт / гаралтын бүрэн дэмжлэг;
  • MINLOC болон MAXLOC-ийн BACK аргументыг хэрэгжүүлсэн;
  • FINDLOC болон IS_CONTIGOUS функцуудыг хэрэгжүүлсэн;
  • Комплекс тоонуудын бүрэлдэхүүн хэсгүүдэд хандах синтаксийг хэрэгжүүлсэн: c%re ба c%im;
  • str%len болон a% төрлийн синтаксийг хэрэгжүүлсэн;
  • С тодорхойлогч болон ISO_Fortran_binding.h толгой хэсгийг хэрэгжүүлсэн;
  • Аргументуудын аль нэг нь NaN байх үед MAX ба MIN функцуудын үр дүнд тавигдах зөөлрүүлсэн шаардлага;
  • Нэмэлт сонголт -fdec-үүнд орно;
  • Удирдамж нэмсэн БАРЬСАН.
libgccjit

Бусад

Архитектур болон үйлдлийн системд хамаарах олон өөрчлөлтүүд.

Эх сурвалж: linux.org.ru

сэтгэгдэл нэмэх