Emva konyaka wophuhliso, i-suite compiler suite ye-GCC 14.1 ikhululiwe, ukukhululwa kokuqala okubalulekileyo kwisebe elitsha le-GCC 14.x. Ngokuhambelana neskimu samanani esikhutshwayo esitsha, inguqulo ye-14.0 isetyenziswe kwinkqubo yophuhliso, kwaye kungekudala ngaphambi kokukhululwa kwe-GCC 14.1, isebe le-GCC 15.0 lalisele lixutywe, apho ukukhululwa okukhulu okulandelayo, i-GCC 15.1, kuya kwenziwa.
Utshintsho oluphambili:
- Amathuba ohlalutyo lwe-static lwekhowudi kulwimi lwe-C, olufumaneka ngokhetho lwe-"-fanalyzer", luye lwandiswa kakhulu (uhlalutyo lwe-static lwe-C ++ yolwimi alukakaziswa kwifom efanelekileyo). Uhlalutyo lwemisebenzi kunye neentambo kunye nokukhangela ubukho bentambo ephelisa i-null character iye yaqiniswa. Kongezwe isilumkiso esitsha "-Wanalyzer-infinite-loop" ukubona iilophu ezingenasiphelo. Kongezwe uluhlu lwezilumkiso ze-"-Wanalyzer-tainted-*" ukuchonga iingxaki ngegalelo lokuqinisekisa. Isilumkiso "I-Wanalyzer-out-of-bounds" iphuculwe ukuze ibone ukuphuphuma kwe-buffer, umzekelo, ukukwazi ukubonisa itshathi ebonisa isimo esikhokelela ekuphuphumeni kongezwe.

- Yongezwe ukhetho olutsha lokwakha "-yenza i-host-pie" yokwakha umqokeleli weefayile eziphunyezwayo kwimo ye-PIE (Isikhundla esiZimeleyo esiphunyezwayo), kunye nokhetho "-enable-host-bind-ngoku" yokubopha ngeenketho "-Wl , -z, ngoku."
- Ukhetho olutsha olongeziweyo "-fhardened" oluquka iiflegi zokuphucula ukhuseleko (-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -ftrivial-auto-var-init=zero -fPIE -pie -Wl,-z,relro,-z,now -fstack-protector -yomelele -fstack-clash-protection -fcf-protection=igcwele).
- Ukongezwa "-fharden-control-flow-redundancy" ukhetho lokudibanisa imisebenzi yekhowudi ukufumanisa ezinye iindlela zokuziphatha ezingachazwanga ezinokukhokelela ekulawuleni ukuhamba okubangelwa kukuxhatshazwa okuguqula izikhombisi zokusebenza ezigciniweyo kwimemori kunye nokudlulisa ulawulo phakathi kwemisebenzi.
- Yongezwe uhlobo olutsha lwe "hardbool" olukuvumela ukuba ujonge ngaphezulu kumaxabiso ahambelana neempawu eziyinyani kunye nezobuxoki ukwenza iintlobo ezithile zohlaselo zibe nzima ngakumbi.
- Kongezwe uhlobo olutsha loyelelwano lwe-strub ukulawula ukucinywa kwezakhelo zesipaki esinomsebenzi kunye nedatha eguquguqukayo emva kokuba umsebenzi uphumile okanye ngaphandle kuphosiwe.
- Inketho eyongeziweyo -i-finline-stringops ukunika amandla ukwandiswa kwe-inline ye-memcmp, i-memcpy, i-memmove kunye ne-memset imisebenzi, naxa kungafunekiyo ukulungiselela.
- Kongezwe uphawu olutsha lomsebenzi null_terminated_string_arg(PARAM_IDX) ukuphawula iparameters ekufuneka ziphathwe njengemitya engasebenziyo.
- I-vectorizer ixhasa i-vectorization ye-loops equkethe "ikhefu" intetho.
- Inkxaso yokuqala eyongeziweyo yoguqulelo lokuqala lwe-OpenMP 6.0 (i-Open Multi-Processing) inkcazo kunye nokuphunyezwa okuqhubekayo kwemigangatho ye-OpenMP 5.0, 5.1 kunye ne-5.2, echaza i-APIs kunye neendlela zokusebenzisa iindlela zeprogram ezihambelanayo kwi-multi-core kunye ne-hybrid (CPU+ Iinkqubo ze-GPU / DSP ezinememori ekwabelwana ngayo kunye neebhloko ze-vectorization (SIMD).
- Ukuphunyezwa okuphuculweyo kwe-OpenACC 2.7 kunye ne-3.2 yenkqubo ehambelanayo, echaza izixhobo zokukhuphela imisebenzi kwii-GPU kunye neeprosesa ezikhethekileyo ezifana ne-NVIDIA PTX.
- Kwi-C, C ++ kunye ne-Objective-C, inkxaso ye-"__has_feature" kunye ne "__has_extension" izandiso ezisetyenziswe kwi-Clang iphunyeziwe.
- Iimpawu ezichazwe kwixesha elizayo C-standard C23 ziphunyeziwe, ezifana neentlobo "_BitInt (N)" kunye "unsigned _BitInt (N))". Izakhiwo, imibutho, kunye nokubalwa kuvunyelwe ukuba kuchazwe ngaphezu kweyodwa kwinqanaba elifanayo, libonakala ngomxholo ofanayo kunye nethegi ephindayo. Inkxaso eyongeziweyo yefayile yeheader stdckdint.h. Ukuvumela inkxaso yezinto ze-C23, iiflegi "-std=c23", "-std=gnu23" kunye "-Wc11-c23-compat" ziyacetywa.
- Kulwimi lwe-C, ibinzana elithi "#pragma GCC novector" yongezwe, ikhubaza i-vectorization ye-loops ene-annotated.
- Iimpawu ezongeziweyo ezinxulumene nomgangatho weC ++ 23. Inkxaso eyongeziweyo yomatshini "wokuCima oku", ekuvumela ukuba usebenzise iparameters ngophawu "le" kwitemplate kwaye yenza kube lula ukufumanisa umsebenzi weklasi udidi lwentetho (umzekelo, ukuba ayitshintshi ) apho lo msebenzi ubizelwa khona. Imfuno iphunyeziwe, ngokubhekiselele kuyo yonke imisebenzi yokubiza imisebenzi kunye nempawu ye-consteval nayo ibe yi-consteval, i.e. zenziwa ngexesha lokuhlanganiswa. Relaxed ezinye iimfuno ze "constexpr".
- Iimpawu ezongeziweyo ezinxulumene nekamva C ++ 2c (C ++26) umgangatho. Umzekelo, kuyenzeka ukuba kusetyenziswe umtya ocacileyo kumxholo apho zingasetyenziswanga ukuqalisa uluhlu lwabalinganiswa kwaye azipheli kwikhowudi yesiphumo, kodwa zisetyenziswa kuphela ngexesha lokudibanisa imiyalezo yokuxilonga kunye nokuqhubekela phambili. Kongezwe ukukwazi ukusebenzisa iinguqu zesibambi-ndawo ezininzi ezinegama elithi “_” kumda omnye. Ukuguqulwa okucacileyo kwamaxabiso abaliweyo kwizibalo ze-arithmetic kurhoxisiwe.
- i-libstdc++ iphucule inkxaso ye-C++20, C++23 kunye ne-C++26 imigangatho.
- Kumqokeleli weFortran, umsebenzi uqalile ekuxhaseni umgangatho weFortran 2023 (-std=f2023).
- Inkxaso yolwandiso lwe-GCC olukuvumela ukuba uchaze i-array element eguquguqukayo (uluhlu lwesayizi engapheliyo, njenge "int b[]") kungekhona ekupheleni kwesakhiwo (Amalungu e-Flexible Array) iye yatshitshiswa. Uluhlu lobungakanani obungenasiphelo bunokusetyenziswa kuphela ekupheleni kwesakhiwo.
- Umva woyilo lwe-AArch64 uxhasa i-CPU Ampere-1B (ampere1b), i-Arm Cortex-A520 (i-cortex-a520), i-Arm Cortex-A720 (i-cortex-a720), i-Arm Cortex-X4 (i-cortex-x4) kunye ne-Microsoft Cobalt-100 ( cobalt-100). Izichongi ezintsha ze-CPU, i-generic-armv8-a kunye ne-generic-armv9-a, zongezwe ukuze zisetyenziswe kwiinketho ze-“-mcpu=” kunye ne-“-mtune=”. Inkxaso eyongeziweyo ye-Arm SME kunye ne-SME2 (Izandiso ze-Matrix zokuHambisa). Iphunyeziwe ye-AArch64 yoyilo-olulodwa.
- Ngasemva kwi-architecture ye-ARM, inkxaso ye-Cortex-M52 CPUs yongeziwe (i-cortex-m52 kwi-"-mcpu =" kunye ne "-mtune=" iinketho).
- Ikhowudi yokuvelisa i-backend ye-AMD Radeon GPUs (GCN) ixhasa i-AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 kunye ne-gfx1103 (RDNA3) GPUs. Ukusebenza okuphuculweyo kwe-AMD MI100 kunye ne-MI200 izixhobo zothotho. Ngokungagqibekanga, i-gfx900 (Vega) uyilo lwesixhobo luyasebenza.
- Inkxaso ye-Intel AVX86, i-Intel APX (inxalenye), i-Intel AVX-VNNI-INT10.1, i-Intel SHA16, i-Intel SM512, i-Intel SM3, i-Intel USER_MSR yomyalelo wesethi yezandiso zezakhiwo zongezwe kwi-backend ye-architecture ye-x4.
Inkxaso eyongeziweyo ye-AMD CPUs esekwe kwi-Zen 5 core (-march=znver5), kunye ne-Intel Clearwater Forest (-march=clearwaterforest), i-Arrow Lake (-march=arrowlake), i-Arrow Lake S (-march=arrowlake-s ) abaqhubekekisi, iLunar Lake (-march=lunarlake) kunye nePanther Lake (-march=pantherlake). Kongezwe "-m[no-]evex512" ukhetho lokulawula ukusetyenziswa kweevektha ze-512-bit (eyenziwe ngokuzenzakalelayo xa uxhasa i-AVX512F. Inkxaso ye-Intel Xeon Phi CPU iye yatshitshiswa.
- Amandla okubuyisela umva kwi-LoongArch, i-AVR kunye ne-RISC-V iiplatifomu ziye zandiswa.
- Izakhono zemveliso yokuxilonga kwifomathi ye-SARIF, esekelwe kwi-JSON, yandisiwe. Ifomathi ye-SARIF ingasetyenziselwa ukufumana iziphumo zohlalutyo lwe-static (GCC -fanalyzer), kunye nokufumana isilumkiso kunye nolwazi lwephutha.
- Inkxaso ye-ia64 kunye ne-nios2 ekujoliswe kuyo kwi-architectures esetyenziswa kwi-Intel Itanium kunye ne-Nios II processors iye yatshitshiswa kwaye iya kususwa kukukhutshwa kwe-GCC elandelayo.
umthombo: opennet.ru

