GCC

Screenshot Software:
GCC
Mga detalye ng Software:
Bersyon: 8.2.0 Na-update
I-upload ang petsa: 16 Aug 18
Nag-develop: The GCC Team
Lisensya: Libre
Katanyagan: 108

Rating: 3.0/5 (Total Votes: 3)

GCC (GNU Compiler Collection) ay isang open source command-line software na idinisenyo upang kumilos bilang tagatala para sa mga operating system ng GNU / Linux at BSD. Kabilang dito ang front-ends para sa maraming mga programming language, kabilang ang Objective-C, Go, C ++, Java, C, Ada, at Fortran.


Mga tampok sa isang sulyap

Sa GCC maaari mong i-configure, i-compile at i-install ang mga application ng GNU / Linux sa mga operating system ng Linux o BSD gamit lamang ang source archive ng kani-kanilang programa. Gayunpaman, ang mga gumagamit ay hindi kailangang makipag-ugnayan sa tagatala, dahil awtomatiko itong ginagawa sa pamamagitan ng pag-configure at gumawa ng mga script.

Kasama rin sa proyekto ang mga aklatan para sa iba't ibang mga programming language, tulad ng libstdc at libgcj, at tulad ng karamihan sa software ng GNU, kailangang i-configure ito bago ito maitayo at mai-install sa iyong computer.

Maaari rin itong ipakita ang buong landas sa isang tukoy na aklatan, mga folder sa path ng paghahanap ng tagatala, buong landas sa isang partikular na sangkap, direktang mga direktoryo ng mga aklatan, suffix sysroot na ginagamit upang makahanap ng mga header, at normalized na target na GNU triplet.

Sa karagdagan, may iba't ibang mga opsyon para sa pagpasa ng ilang mga pagpipilian at mga argumento na pinaghiwalay ng kuwit sa assembler, preprocessor at linker, sumulat ng libro at magtipon nang walang pag-uugnay, lumikha ng isang shared library, at marami pang iba.


Idinisenyo para sa operating system ng GNU
Ang orihinal na isinulat bilang pangunahing tagatala para sa operating system ng GNU, binuo ng GCC (GNU Compiler Collection) upang maging 100% libreng software at naka-install ito bilang default sa anumang pamamahagi ng Linux.

Ang software ay ginagamit din ng mga developer ng Open Source upang ipunin ang kanilang mga programa. Ang command-line ay may ilang mga pagpipilian, bukod sa kung saan maaari naming banggitin ang kakayahan upang ipakita ang compiler & rsquo; s target na processor, pati na rin ang kamag-anak na landas sa OS library.


Ibabang linya

Lahat ng lahat, ang GCC ay isa sa mga pinaka mahalagang bahagi ng anumang operating system ng GNU / Linux. Hindi lamang na maaari naming isipin ang isang mundo nang wala ito, ngunit ang GCC ang pangunahing dahilan sa likod ng buong ecosystem ng Open Source.

Ano ang bagong sa paglabas na ito:

Ang GCC 7.3 ay isang bug-fix release mula sa sangay ng GCC 7 na naglalaman ng mga mahahalagang pag-aayos para sa mga regression at malubhang mga bug sa GCC 7.2 na may higit sa 99 mga bug na naayos mula noong nakaraang release.
  • Ang release na ito ay kasama ang mga pagpipilian sa pagbuo ng code upang palawigin ang Variant 2 (CVE 2017-5715) para sa mga target na x86 at powerpc.
  • Ano ang bago sa bersyon 8.1.0:

    • Ang GCC 7.3 ay isang bug-fix release mula sa Ang sangay ng GCC 7 na naglalaman ng mga mahahalagang pag-aayos para sa mga regression at malubhang mga bug sa GCC 7.2 na may higit sa 99 mga bug na naayos mula noong nakaraang release.
    • Ang release na ito ay kasama ang mga pagpipilian sa pagbuo ng code upang palawigin ang Variant 2 (CVE 2017-5715) para sa mga target na x86 at powerpc.

    Ano ang bagong sa bersyon:

    • Ang GCC 7.1 ay isang pangunahing release na naglalaman ng malaking bagong pag-andar na hindi magagamit sa GCC 6.x o nakaraang mga paglabas ng GCC. Ang C + + frontend ngayon ay mayroong pang-eksperimentong suporta para sa lahat ng kasalukuyang draft na C ++ 17, na may -std = c ++ 1z at -std = gnu ++z mga opsyon, at ang library ng libstdc ++ ay may pinakamaraming C ++ draft Ang mga tampok ng library ay ipinatupad rin. Ang mga paglabas na ito ay nagtatampok ng iba't ibang mga pagpapahusay sa mga diagnostic na napalabas, kabilang ang pinahusay na mga lokasyon, mga saklaw ng lokasyon, mga mungkahi para sa mga maling pagkakilala ng mga pagkakakilanlan, mga pangalan ng pagpipilian, pag-aayos-mga pahiwatig at iba't ibang mga bagong babala ang naidagdag. Ang mga optimizer ay pinabuting, na may mga pagpapahusay na lumilitaw sa lahat ng mga pag-optimize ng intra- at inter-pamamaraan, mga pag-optimize ng oras ng pag-link at iba't ibang mga backend ng target, kabilang ang, ngunit hindi limitado sa, mga karagdagan ng store merging pass, pag-optimize ng code hoisting, paghihiwalay ng loop, at pag-urong pagpapabuti ng pambalot. Ang Address Sanitizer ay maaari na ngayong mag-ulat ng mga paggamit ng mga variable pagkatapos na umalis sa kanilang saklaw. Ang GCC ay maaari na ngayong i-configure para sa offloading ng OpenMP 4.5 sa NVidia PTX GPGPUs.

    Ano ang bago sa bersyon 6.3.0:

    • Ang GCC 6.3 ay isang bug-fix release mula sa sangay ng GCC 6 na naglalaman ng mahahalagang pag-aayos para sa mga regression at malubhang mga bug sa GCC 6.2 na may higit sa 79 mga bug na naayos mula noong nakaraang release.

    Ano ang bago sa bersyon 6.2.0:

    • Ang paglabas na ito ay isang bug-fix release, na naglalaman ng mga pag-aayos para sa mga regression sa GCC 5.2 kaugnay sa mga nakaraang release ng GCC.

    Ano ang bago sa bersyon 6.1.0:

    • Ang paglabas na ito ay isang bug-fix release, na naglalaman ng mga pag-aayos para sa mga regression sa GCC 5.2 kaugnay sa mga nakaraang release ng GCC.

    Ano ang bago sa bersyon 5.3.0:

    • Ang paglabas na ito ay isang bug-fix release, na naglalaman ng mga pag-aayos para sa mga regression sa GCC 5.2 kaugnay sa mga nakaraang release ng GCC.

    Ano ang bago sa bersyon 5.2.0:

    • Ang paglabas na ito ay isang bug-fix release, na naglalaman ng mga pag-aayos para sa mga regression sa GCC 5.1 kaugnay sa mga nakaraang release ng GCC.

    Ano ang bago sa bersyon 5.1.0:

    • Ang front-end na C ++ ngayon ay may ganap na suporta sa wika ng C ++ 14 at ang Standard C ++ Library ay may ganap na suporta sa C + + 11 at pang-eksperimentong buong suporta C ++ 14. Ang buong suporta sa C + + 11 ay naging posible sa pamamagitan ng pagpapatibay ng Dual ABI, tingnan ang https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html para sa higit pang mga detalye.
    • Ang default na frontend ng C ngayon ay default sa C11 mode na may mga extension ng GNU, na nakakaapekto sa mga semantika ng inline na keyword at nagdudulot ng maraming iba pang mga nakikitang pagbabago ng gumagamit, tingnan ang https://gcc.gnu.org/gcc-5/porting_to.html para sa higit pang mga detalye.
    • Naglalaman ang GCC 5.1 ng iba't ibang pagpapabuti ng interprocedural na pag-optimize, hal. isang bagong IPA Identical Code Folding pass at iba't ibang pagpapahusay ng LTO, hal. Pagsasama ng ODR batay sa mga uri ng C ++, tingnan ang http://hubicka.blogspot.cz/2015/04/GCC5-IPA-LTO-news.html para sa higit pang mga detalye.
    • Ang GCC 5.1 Local Register Allocator ay naglalaman na ngayon ng isang subtitle na lapatan, sa i 86 / x86-64 ay magagamit muli ang PIC hard registro upang mapabuti ang pagganap ng posisyong independiyenteng code, mayroong isang simpleng interprocedural RA pass at iba pang rehistro Ang mga pagpapabuti ng laang-gugulin ay naidagdag.
    • Ang GCC 5.1 ay nagdaragdag ng bahagyang suporta para sa pamantayan ng OpenACC, suporta para sa OpenMP 4.0 offloading sa paparating na Intel Xeon Phi accelerators at suporta para sa OpenACC offloading sa PTX. Ang Undefined Behavior Sanitizer sa GCC ay pinalawig sa pamamagitan ng pagdaragdag ng iba't ibang bagong mga tseke sa runtime. Ang isang pang-eksperimentong GCC JIT library ay naidagdag sa GCC 5.1.

    Ano ang bago sa bersyon 4.8.4:

    • Pagpapabuti ng Pangkalahatang Optimizer:
    • AddressSanitizer, isang detector ng error sa mabilis na memorya, ay magagamit na ngayon sa ARM.
    • UndefinedBehaviorSanitizer (ubsan), isang mabilis na hindi natukoy na detector ng pag-uugali, ay naidagdag at maaaring paganahin sa pamamagitan ng -fsanitize = hindi natukoy. Ang iba't ibang mga pagtutuos ay maaaring magamit upang makita ang hindi natukoy na pag-uugali sa runtime. Kasalukuyang hindi magagamit ang UndefinedBehaviorSanitizer para sa mga wika ng C at C ++.
    • Pagpapabuti ng link-time na pag-optimize (LTO):
    • Ang pagsasama ng uri ay muling isinulat. Ang bagong pagpapatupad ay mas mabilis at mas gumagamit ng mas memorya.
    • Mas mahusay na algorithm ng partisyon na nagreresulta sa hindi gaanong streaming sa oras ng pag-link.
    • Maagang pag-aalis ng mga virtual na pamamaraan ay binabawasan ang laki ng mga file ng bagay at nagpapabuti sa paggamit ng memory-link sa oras at sumulat ng oras.
    • Ang mga katawan ng function ay na-load na ngayon sa on-demand at pinakawalan nang maaga pagpapabuti ng kabuuang paggamit ng memory sa oras ng pag-link.
    • Ang mga naka-key na paraan ng C ++ ay maaari na ngayong ma-optimize.
    • Kapag gumagamit ng linker plugin, ang pag-compile sa opsyon na -flto ngayon ay bumubuo ng mga slim object file (.o) na naglalaman lamang ng intermediate na representasyon ng wika para sa LTO. Gamitin -ffat -to-bagay upang lumikha ng mga file na naglalaman ng karagdagan sa object code. Upang makabuo ng mga static na library na angkop para sa pagpoproseso ng LTO, gamitin ang gcc-ar at gcc-ranlib; upang ilista ang mga simbolo mula sa isang manipis na file ng paggamit ng paggamit gcc-nm. (Ito ay nangangailangan na ang ar, ranlib at nm ay naipon na may suporta sa plugin.)
    • Ang paggamit ng memorya sa paggamit ng Firefox na may debug na naka-enable ay nabawasan mula sa 15GB hanggang 3.5GB; oras ng pag-link mula sa 1700 segundo hanggang 350 segundo.
    • Mga pagpapabuti sa pag-optimize ng inter-pamamaraan:
    • Bagong uri ng module ng pag-aaral ng mana pagpapabuti ng devirtualization. Ang Devirtualization ngayon ay tumatagal ng account anonymous names-spaces at ang C ++ 11 final keyword.
    • Bagong teorya na paglihis ng paglihis (na kontrolado ng -fdevirtualize-speculatively.
    • Ang mga tawag na direktang ginawa direkta ay bumalik sa hindi tuwirang kung saan ang direktang tawag ay hindi mas mura.
    • Ang mga lokal na alias ay ipinakilala para sa mga simbolo na kilala na katumbas sa kabuuan ng mga nakabahaging mga library na nagpapabuti sa dynamic na mga oras ng pag-uugnay.
    • Ang direksyon ng feedback ay nagpapahiwatig ng mga pagpapabuti sa pag-optimize:
    • Ang pag-profile ng mga programa gamit ang mga function sa mga inline na C + ay mas maaasahan ngayon.
    • Ang bagong pag-uugnay ng oras ay tumutukoy sa pangkaraniwang pagkakasunud-sunod kung saan ang mga function ay pinaandar.
    • Ang isang bagong function reordering pass (kontrolado ng -freorder-function) makabuluhang binabawasan ang oras ng startup ng mga malalaking application. Hanggang nakumpleto ang suporta sa binutils, epektibo lamang ito sa pag-optimize ng link-time.
    • Hinimok ng feedback ang hindi direktang pag-aalis ng tawag at ang devirtualization ngayon na humahawak ng mga tawag sa cross-module kapag pinagana ang pag-optimize ng link-time.
    • Mga tukoy na pagpapabuti sa Bagong Wika at Wika:
    • Ang Bersyon 4.0 ng pagtutukoy ng OpenMP ay sinusuportahan na ngayon sa mga compiler ng C at C + at nagsisimula sa release 4.9.1 sa Fortran compiler. Maaaring gamitin ang bagong -fopenmp-simd na opsyon upang paganahin ang mga direktiba ng OpenMP's SIMD, habang binabalewala ang iba pang mga direktiba ng OpenMP. Ang bagong -fsimd-cost-model = permiso sa pagpipilian upang ibagay ang modelo ng gastos sa vectorization para sa mga loop na naka-annotate sa mga direktiba ng OpenMP at Cilk Plus; Nagbabala ang Wopenmp-simd kapag pinapalitan ng kasalukuyang modelo ng gastos ang mga direktong simdeng itinakda ng user.
    • Ang -Wdate-time na opsyon ay idinagdag para sa mga compiler ng C, C ++ at Fortran, na nagbabala kung ginagamit ang mga __DATE__, __TIME__ o __TIMESTAMP__ macro. Ang mga macro na iyon ay maaaring maiwasan ang mga bit-wise-identical reproducible compilations.
    • Ada:
    • GNAT lumipat sa Ada 2012 sa halip ng Ada 2005 bilang default.
    • C family:
    • Suporta para sa pag-colorize ng mga diagnostic na ibinaba ng GCC ay idinagdag. Ang -fdiagnostics-color = auto ay magbibigay-daan ito kapag ang outputting sa mga terminal, -fdiagnostics-color = laging walang kondisyon. Ang variable ng kapaligiran ng GCC_COLORS ay maaaring gamitin upang i-customize ang mga kulay o huwag paganahin ang pangkulay. Kung ang variable na GCC_COLORS ay nasa kapaligiran, ang default ay -fdiagnostics-color = auto, kung hindi man -fdiagnostics-color = hindi.
    • Gawing output ng diagnostics:
    • $ g ++ -fdiagnostics-color = always -S -Wall test.C
    • test.C: Sa function na & lsquo; int foo () ':
    • test.C: 1: 14: babala: walang return statement sa function returning non-void [-Wreturn-type]
    • int foo () {}
    • test.C: 2: 46: error: ang template depth ng instantiation ay lumampas sa maximum na 900 (paggamit-lalim-lalim = upang madagdagan ang maximum) instantiating & lsquo; struct X '
    • template struct X {static const int value = X :: value; }; template struct X;
    • test.C: 2: 46: kinakailangang recursively mula sa & lsquo; const int X :: value '
    • test.C: 2: 46: kailangan mula sa & lsquo; const int X :: value '
    • test.C: 2: 88: kinakailangan mula rito
    • test.C: 2: 46: error: hindi kumpletong uri & lsquo; X 'na ginamit sa nested na tagatukoy ng pangalan
    • Gamit ang bagong #pragma GCC ivdep, ang user ay maaaring igiit na walang mga loop na dinadala na mga dependency na maiiwasan ang sabay-sabay na pagpapatupad ng magkakasunod na mga pag-ulit gamit ang mga pagtuturo ng SIMD (solong pagtuturo ng maramihang data).
    • Suporta para sa Cilk Plus ay naidagdag at maaaring paganahin gamit ang pagpipiliang -fcilkplus. Ang Cilk Plus ay isang extension sa C at C ++ na wika upang suportahan ang data at gawain parallelism. Sinusunod ng kasalukuyang pagpapatupad ang ABI version 1.2; lahat ng mga tampok ngunit _Cilk_sa ipinatupad.
    • Ang atomika ng ISO C11 (ang specifier ng uri ng _Atomic at qualifier at ang header) ay sinusuportahan na ngayon.
    • Mga generic na seleksyon ng ISO C11 (_Generic keyword) ay sinusuportahan na ngayon.
    • Ang lokal na imbakan ng thread na lokal na ISO C11 (_Thread_local, katulad ng GNU C __thread) ay sinusuportahan na ngayon.
    • Ang suporta ng ISO C11 ay ngayon sa isang katulad na antas ng pagkakumpleto sa suporta ng ISO C99: lubusang kumpleto na mga bug sa modulo, pinalawak na mga tagapagpakilala (suportado maliban sa mga kaso ng sulok kapag ginamit-kinunan ang mga pagkakakilanlan), mga isyu na lumulutang-point (pangunahin ngunit hindi ganap na may kaugnayan sa opsyonal na mga tampok ng C99 mula sa Mga Annexe F at G) at ang opsyonal na Annexes K (Mga interface ng check-at) at L (Analyzability).
    • Ang __auto_type extension ng bagong C ay nagbibigay ng isang subset ng pag-andar ng C ++ 11 auto sa GNU C.
    • C ++:
    • Ang pagpapatupad ng G ++ ng C ++ 1y return type na pagbabawas para sa mga normal na function ay na-update upang sumunod sa N3638, ang panukalang tinanggap sa work paper. Karamihan sa mga kapansin-pansin, nagdadagdag ito ng decltype (auto) para sa pagkuha ng mga semantika ng decltype sa halip na mga pagbabawas ng argument ng template ng plain auto:
    • int & amp; f ();
    • auto i1 = f (); / int
    • decltype (auto) i2 = f (); / int & amp;
    • Sinusuportahan ng G ++ ang C ++ 1y lambda upang makuha ang mga initializer:
    • [x = 42] {...};
    • Sa totoo lang, sila ay tinanggap mula noong GCC 4.5, ngunit ngayon ang tagatala ay hindi nagbababala tungkol sa mga ito sa -std = c ++ 1y, at sinusuportahan din ang parenthesized at brace-enclosed initializers.
    • Sinusuportahan ng G ++ ang mga arrays ng variable na C ++ 1y. Sinusuportahan na ng G ++ ang GNU / C99-style VLAs sa loob ng mahabang panahon, ngunit ngayon ay sinusuportahan din ng karagdagan ang mga initializers at lambda na nakuha sa pamamagitan ng sanggunian. Sa C ++ 1y mode G ++ ay magreklamo tungkol sa mga paggamit ng VLA na hindi pinahihintulutan ng draft na pamantayan, tulad ng pagbuo ng isang pointer sa uri ng VLA o paglalapat ng sizeof sa isang variable ng VLA. Tandaan na lumilitaw na ngayon na ang VLA ay hindi magiging bahagi ng C ++ 14, ngunit magiging bahagi ng isang hiwalay na dokumento at pagkatapos ay marahil ay C + + 17.
    • walang laman f (int n) {
    • int a [n] = {1, 2, 3}; / throws std :: bad_array_length if n & lt; 3
    • [& amp; a] {for (int i: a) {cout

    Ano ang bago sa bersyon 4.9.1:

    • GCC 4.9.1 ay isang bug-fix release mula sa sangay ng GCC 4.9 na naglalaman ng mga mahahalagang pag-aayos para sa mga regression at malubhang mga bug sa GCC 4.9.0 na may higit sa 88 na mga bug na naayos mula noong nakaraang release. Bukod sa na, ang release ng GCC 4.9.1 ay sumusuporta sa OpenMP 4.0 din sa Fortran, sa halip na sa C at C ++.

    Ano ang bago sa bersyon 4.9.0:

    • Pagpapabuti ng Pangkalahatang Optimizer:
    • AddressSanitizer, isang detector ng error sa mabilis na memorya, ay magagamit na ngayon sa ARM.
    • UndefinedBehaviorSanitizer (ubsan), isang mabilis na hindi natukoy na detector ng pag-uugali, ay naidagdag at maaaring paganahin sa pamamagitan ng -fsanitize = hindi natukoy. Ang iba't ibang mga pagtutuos ay maaaring magamit upang makita ang hindi natukoy na pag-uugali sa runtime. Kasalukuyang hindi magagamit ang UndefinedBehaviorSanitizer para sa mga wika ng C at C ++.
    • Pagpapabuti ng link-time na pag-optimize (LTO):
    • Ang pagsasama ng uri ay muling isinulat. Ang bagong pagpapatupad ay mas mabilis at mas gumagamit ng mas memorya.
    • Mas mahusay na algorithm ng partisyon na nagreresulta sa hindi gaanong streaming sa oras ng pag-link.
    • Maagang pag-aalis ng mga virtual na pamamaraan ay binabawasan ang laki ng mga file ng bagay at nagpapabuti sa paggamit ng memory-link sa oras at sumulat ng oras.
    • Ang mga katawan ng function ay na-load na ngayon sa on-demand at pinakawalan nang maaga pagpapabuti ng kabuuang paggamit ng memory sa oras ng pag-link.
    • Ang mga naka-key na paraan ng C ++ ay maaari na ngayong ma-optimize.
    • Kapag gumagamit ng plugin ng linker, ang pag-compile sa opsyon na -flto ngayon ay bumubuo ng mga slim object files (.o) na naglalaman lamang ng intermediate na representasyon ng wika para sa LTO. Gamitin -ffat -to-bagay upang lumikha ng mga file na naglalaman ng karagdagan sa object code. Upang makabuo ng mga static na library na angkop para sa pagpoproseso ng LTO, gamitin ang gcc-ar at gcc-ranlib; upang ilista ang mga simbolo mula sa isang manipis na file ng paggamit ng paggamit gcc-nm. (Nangangailangan na ang ar, ranlib at nm ay naipon na may suporta sa plugin.)
    • Ang paggamit ng memorya sa paggamit ng Firefox na may debug na naka-enable ay nabawasan mula sa 15GB hanggang 3.5GB; oras ng pag-link mula sa 1700 segundo hanggang 350 segundo.
    • Mga pagpapabuti sa pag-optimize ng inter-pamamaraan:
    • Bagong uri ng module ng pag-aaral ng mana pagpapabuti ng devirtualization. Ang Devirtualization ngayon ay tumatagal ng account anonymous names-spaces at ang C ++ 11 final keyword.
    • Bagong teorya na paglihis ng paglihis (na kontrolado ng -fdevirtualize-speculatively.
    • Ang mga tawag na direktang ginawa direkta ay bumalik sa hindi tuwirang kung saan ang direktang tawag ay hindi mas mura.
    • Ang mga lokal na alias ay ipinakilala para sa mga simbolo na kilala na katumbas sa kabuuan ng mga nakabahaging mga library na nagpapabuti sa dynamic na mga oras ng pag-uugnay.
    • Ang direksyon ng feedback ay nagpapahiwatig ng mga pagpapabuti sa pag-optimize:
    • Ang pag-profile ng mga programa gamit ang mga function sa mga inline na C + ay mas maaasahan ngayon.
    • Ang bagong pag-uugnay ng oras ay tumutukoy sa pangkaraniwang pagkakasunud-sunod kung saan ang mga function ay pinaandar.
    • Ang isang bagong function reordering pass (kontrolado ng -freorder-function) makabuluhang binabawasan ang oras ng startup ng mga malalaking application. Hanggang nakumpleto ang suporta sa binutils, epektibo lamang ito sa pag-optimize ng link-time.
    • Hinimok ng feedback ang hindi direktang pag-aalis ng tawag at ang devirtualization ngayon na humahawak ng mga tawag sa cross-module kapag pinagana ang pag-optimize ng link-time.
    • Mga tukoy na pagpapabuti sa Bagong Wika at Wika:
    • Ang Bersyon 4.0 ng pagtutukoy ng OpenMP ay sinusuportahan na ngayon para sa mga compiler ng C at C ++. Maaaring gamitin ang bagong -fopenmp-simd na opsyon upang paganahin ang mga direktiba ng OpenMP's SIMD, habang binabalewala ang iba pang mga direktiba ng OpenMP. Ang bagong -fsimd-cost-model = permiso sa pagpipilian upang ibagay ang modelo ng gastos sa vectorization para sa mga loop na naka-annotate sa mga direktiba ng OpenMP at Cilk Plus; -Wopenmp-simd warns kapag ang kasalukuyang costmodel ay sinusubukan ang mga direktong simd na itinakda ng user.
    • Ang -Wdate-time na opsyon ay idinagdag para sa mga compiler ng C, C ++ at Fortran, na nagbabala kung ginagamit ang mga __DATE__, __TIME__ o __TIMESTAMP__ macro. Ang mga macro na iyon ay maaaring maiwasan ang mga bit-wise-identical reproducible compilations.
    • Ada:
    • GNAT lumipat sa Ada 2012 sa halip ng Ada 2005 bilang default.
    • C family:
    • Suporta para sa pag-colorize ng mga diagnostic na ibinaba ng GCC ay idinagdag. Ang -fdiagnostics-color = auto ay magbibigay-daan ito kapag ang outputting sa mga terminal, -fdiagnostics-color = laging walang kondisyon. Ang variable ng kapaligiran ng GCC_COLORS ay maaaring gamitin upang i-customize ang mga kulay o huwag paganahin ang pangkulay. Kung ang variable na GCC_COLORS ay nasa kapaligiran, ang default ay -fdiagnostics-color = auto, kung hindi man -fdiagnostics-color = hindi.
    • Gawing output ng diagnostics:
    • $ g ++ -fdiagnostics-color = always -S -Wall test.C
    • test.C: Sa function na & lsquo; int foo () ':
    • test.C: 1: 14: babala: walang return statement sa function returning non-void [-Wreturn-type]
    • int foo () {}
    • test.C: 2: 46: error: ang template depth ng instantiation ay lumampas sa maximum na 900 (paggamit-lalim-lalim = upang madagdagan ang maximum) instantiating & lsquo; struct X '
    • template struct X {static const int value = X :: value; }; template struct X;
    • test.C: 2: 46: kinakailangang recursively mula sa & lsquo; const int X :: value '
    • test.C: 2: 46: kailangan mula sa & lsquo; const int X :: value '
    • test.C: 2: 88: kinakailangan mula rito
    • test.C: 2: 46: error: hindi kumpletong uri & lsquo; X 'na ginamit sa nested na tagatukoy ng pangalan
    • Gamit ang bagong #pragma GCC ivdep, ang user ay maaaring igiit na walang mga loop na dinadala na mga dependency na maiiwasan ang sabay-sabay na pagpapatupad ng magkakasunod na mga pag-ulit gamit ang mga pagtuturo ng SIMD (solong pagtuturo ng maramihang data).
    • Suporta para sa Cilk Plus ay naidagdag at maaaring paganahin gamit ang pagpipiliang -fcilkplus. Ang Cilk Plus ay isang extension sa C at C ++ na wika upang suportahan ang data at gawain parallelism. Sinusunod ng kasalukuyang pagpapatupad ang ABI version 1.2; lahat ng mga tampok ngunit _Cilk_sa ipinatupad.
    • Ang atomika ng ISO C11 (ang specifier ng uri ng _Atomic at qualifier at ang header) ay sinusuportahan na ngayon.
    • Mga generic na seleksyon ng ISO C11 (_Generic keyword) ay sinusuportahan na ngayon.
    • Ang lokal na imbakan ng thread na lokal na ISO C11 (_Thread_local, katulad ng GNU C __thread) ay sinusuportahan na ngayon.
    • Ang suporta ng ISO C11 ay ngayon sa isang katulad na antas ng pagkakumpleto sa suporta ng ISO C99: lubusang kumpleto na mga bug sa modulo, pinalawak na mga tagapagpakilala (suportado maliban sa mga kaso ng sulok kapag ginamit-kinunan ang mga pagkakakilanlan), mga isyu na lumulutang-point (pangunahin ngunit hindi ganap na may kaugnayan sa opsyonal na mga tampok ng C99 mula sa Mga Annexe F at G) at ang opsyonal na Annexes K (Mga interface ng check-at) at L (Analyzability).
    • Ang __auto_type extension ng bagong C ay nagbibigay ng isang subset ng pag-andar ng C ++ 11 auto sa GNU C.
    • C ++:
    • Ang pagpapatupad ng G ++ ng C ++ 1y return type na pagbabawas para sa mga normal na function ay na-update upang sumunod sa N3638, ang panukalang tinanggap sa work paper. Karamihan sa mga kapansin-pansin, nagdadagdag ito ng decltype (auto) para sa pagkuha ng mga semantika ng decltype sa halip na mga pagbabawas ng argument ng template ng plain auto:
    • int & amp; f ();
    • auto i1 = f (); / int
    • decltype (auto) i2 = f (); / int & amp;
    • Sinusuportahan ng G ++ ang C ++ 1y lambda upang makuha ang mga initializer:
    • [x = 42] {...};
    • Sa totoo lang, sila ay tinanggap mula noong GCC 4.5, ngunit ngayon ang tagatala ay hindi nagbababala tungkol sa mga ito sa -std = c ++ 1y, at sinusuportahan din ang parenthesized at brace-enclosed initializers.
    • Sinusuportahan ng G ++ ang mga array ng haba ng variable na C ++ 1y. Sinusuportahan na ng G ++ ang GNU / C99-style VLAs sa loob ng mahabang panahon, ngunit ngayon ay sinusuportahan din ng karagdagan ang mga initializers at lambda na nakuha sa pamamagitan ng sanggunian. Sa C ++ 1y mode G ++ ay magreklamo tungkol sa mga paggamit ng VLA na hindi pinahihintulutan ng draft na pamantayan, tulad ng pagbuo ng isang pointer sa uri ng VLA o paglalapat ng sizeof sa isang variable ng VLA. Tandaan na lumilitaw na ngayon na ang VLA ay hindi magiging bahagi ng C ++ 14, ngunit magiging bahagi ng isang hiwalay na dokumento at pagkatapos ay marahil ay C + + 17.
    • walang laman f (int n) {
    • int a [n] = {1, 2, 3}; / throws std :: bad_array_length if n & lt; 3
    • [& amp; a] {for (int i: a) {cout

    Katulad na software

    ccache
    ccache

    20 Feb 15

    Mumps Compiler
    Mumps Compiler

    28 Sep 15

    Pyexpander
    Pyexpander

    20 Feb 15

    nwcc
    nwcc

    11 May 15

    Mga komento sa GCC

    1 Puna
    • http://www.eduwizzonlinetrainings.com 29 Dec 17
      EduwizzOnlineTraining is one of the Best Online Training Institute in Hyderabad, Bangalore. Eduwizz provide courses like Hybris Development, WebSphere Commerce Server,Blockchain Training,Hyperledger Fabric Development ,Ethereum Development ,Commvault Training, Devops , Netapps , Mulesoft ESB ,Machine Learning,Data Science , Internet of Things , Hybris ,Angular JS , Node JS , Express JS , Business Analyst, Selenium testing with webdriver, Guidewire ,Adobe, RPA ,TSM, EMC...etc
    Magdagdag ng komento
    I-sa mga imahe!