جي سي سي 11 ڪمپيلر سوٽ جو رليز

ترقي جي هڪ سال کان پوء، آزاد GCC 11.1 گڏ ڪرڻ وارو سوٽ جاري ڪيو ويو آهي، نئين GCC 11.x برانچ ۾ پهريون اهم رليز. نئين رليز نمبرنگ اسڪيم تحت، ورزن 11.0 ڊولپمينٽ دوران استعمال ڪيو ويو، ۽ GCC 11.1 جي رليز ٿيڻ کان ٿورو اڳ، GCC 12.0 برانچ اڳ ۾ ئي ٺھيل ھئي، جنھن مان GCC 12.1 جو ايندڙ اھم رليز ٺھيو ويندو.

GCC 11.1 قابل ذڪر آهي DWARF 5 ڊيبگ فائل فارميٽ استعمال ڪرڻ لاءِ ان جي منتقلي لاءِ ڊفالٽ طور، C++17 معيار جي ڊفالٽ شموليت (“-std=gnu++17”)، C++20 جي حمايت ۾ اهم سڌارا. معياري، C++ 23 لاءِ تجرباتي سپورٽ، مستقبل جي سي ٻوليءَ جي معيار سان لاڳاپيل سڌارا (C2x)، نئين ڪارڪردگي جي اصلاح.

مکيه تبديليون:

  • C++ ٻولي لاءِ ڊفالٽ موڊ تبديل ڪيو ويو آھي C++17 معياري (-std=gnu++17) بدران اڳ ۾ پيش ڪيل C++14. اهو ممڪن آهي ته چونڊيل طور تي نئين C++ 17 رويي کي غير فعال ڪيو وڃي جڏهن ٽيمپليٽس کي پروسيس ڪري رهيا آهن جيڪي ٻين ٽيمپليٽس کي پيراميٽر طور استعمال ڪن ٿا (-fno-new-ttp-matching).
  • ايڊريس سنيٽائيزر ٽول جي هارڊويئر ايڪسلريشن لاءِ سپورٽ شامل ڪئي وئي، جيڪا توهان کي اجازت ڏئي ٿي ته آزاد ٿيل ميموري وارن علائقن تائين رسائي، مختص ٿيل بفر جي حدن کان ٻاهر وڃڻ، ۽ ميموري سان ڪم ڪرڻ وقت ڪجهه ٻين قسمن جون غلطيون. هارڊويئر ايڪسلريشن في الحال صرف AArch64 آرڪيٽيڪچر لاءِ موجود آهي ۽ لينڪس ڪنيل کي گڏ ڪرڻ وقت استعمال تي مرکوز آهي. AddressSanitizer هارڊويئر ايڪسلريشن کي فعال ڪرڻ لاءِ جڏهن يوزر اسپيس جا حصا ٺاهي رهيا آهن، پرچم "-fsanitize=hwaddress" شامل ڪيو ويو آهي، ۽ ڪرنل پرچم "-fsanitize=kernel-hwaddress" شامل ڪيو ويو آهي.
  • جڏهن ڊيبگنگ جي معلومات ٺاهيندي، DWARF 5 فارميٽ ڊفالٽ طور استعمال ڪيو ويندو آهي، جيڪو، پوئين ورزن جي مقابلي ۾، 25٪ وڌيڪ ڪمپيڪٽ ڊيبگنگ ڊيٽا پيدا ڪرڻ جي اجازت ڏئي ٿو. DWARF 5 لاءِ مڪمل سپورٽ گهٽ ۾ گهٽ binutils ورجن 2.35.2 جي ضرورت آهي. DWARF 5 فارميٽ ڊيبگنگ ٽولز ۾ سپورٽ ڪئي وئي آهي GDB 8.0، valgrind 3.17.0، elfutils 0.172 ۽ dwz 0.14 کان. DWARF جي ٻين ورزن کي استعمال ڪندي ڊيبگ فائلون ٺاهڻ لاءِ، توھان استعمال ڪري سگھوٿا "-gdwarf-2"، "-gdwarf-3" ۽ "-gdwarf-4" جا اختيار.
  • گڏ ڪرڻ وارن لاءِ گهرجون جيڪي استعمال ڪري سگھجن ٿيون GCC تعمير ڪرڻ لاءِ. ڪمپلر کي ھاڻي C++ 11 معيار کي سپورٽ ڪرڻ گھرجي (اڳ ۾ C++ 98 گھربل ھو)، يعني. جيڪڏهن GCC 10 GCC 3.4 ٺاهڻ لاءِ ڪافي هو، ته پوءِ گهٽ ۾ گهٽ GCC 11 هاڻي GCC 4.8 ٺاهڻ لاءِ گهربل آهي.
  • فائلن جو نالو ۽ هنڌ محفوظ ڪرڻ لاءِ ڊمپ، عارضي فائلون ۽ LTO اصلاح لاءِ ضروري اضافي معلومات تبديل ڪئي وئي آهي. اهڙيون فائلون ھاڻي ھاڻي ھميشہ موجوده ڊاريڪٽري ۾ محفوظ ڪيون وينديون آھن جيستائين رستو واضح طور تي "-dumpbase"، "-dumpdir" ۽ "-save-temps=*" اختيارن ذريعي تبديل نه ڪيو وڃي.
  • HSAIL (Heterogeneous System Architecture Intermediate Language) ٻولي سان استعمال لاءِ بائنري فارميٽ BRIG لاءِ سپورٽ ختم ڪئي وئي آھي ۽ جلد ئي ختم ڪئي ويندي.
  • ThreadSanitizer موڊ (-fsanitize=thread) جون صلاحيتون وڌايون ويون آهن، جن کي نسل جي حالتن جو پتو لڳائڻ لاءِ ٺاهيو ويو آهي جڏهن هڪ ملٽي ٿريڊ ٿيل ايپليڪيشن جي مختلف ٿريڊن مان ساڳي ڊيٽا شيئر ڪئي وڃي. نئون رليز متبادل رن ٽائمز ۽ ماحوليات لاءِ سپورٽ شامل ڪري ٿو ، انهي سان گڏ KCSAN (Kernel Concurrency Sanitizer) ڊيبگنگ ٽول لاءِ سپورٽ ، لينڪس ڪرنل جي اندر نسل جي حالتن کي متحرڪ طور تي ڳولڻ لاءِ ٺهيل آهي. شامل ڪيا ويا نوان آپشن "-param tsan-distinguish-volatile" ۽ "-param tsan-instrument-func-entry-exit".
  • تشخيصي پيغامن ۾ ڪالمن جا نمبر هاڻي لڪير جي شروعات کان بائيٽ جي ڳڻپ کي ظاهر نٿا ڪن، پر اصل ۾ ڪالمن نمبر جيڪي ملٽي بائيٽ اکرن ۽ اکرن کي حساب ۾ رکن ٿا جيڪي لائن ۾ ڪيترن ئي پوزيشن تي قبضو ڪن ٿا (مثال طور، ڪردار 🙂 ٻن پوزيشن تي قبضو ڪري ٿو ۽ 4 بائيٽ ۾ انڪوڊ ٿيل آهي). ساڳئي طرح، ٽيب اکرن کي ھاڻي ھڪڙي مخصوص تعداد جي طور تي علاج ڪيو ويندو آھي (جي ترتيب سان ترتيب ڏنل -ftabstop اختيار، ڊفالٽ 8). پراڻي رويي کي بحال ڪرڻ لاءِ، ”-fdiagnostics-column-unit=byte“ اختيار پيش ڪيو ويو آهي، ۽ ابتدائي قدر کي طئي ڪرڻ لاءِ (0 يا 1 کان نمبر ڏيڻ) - ”-fdiagnostics-column-origin=“ اختيار.
  • ویکٹرائزر فنڪشن جي سموري مواد کي حساب ۾ رکي ٿو ۽ پروسيسنگ صلاحيتون شامل ڪري ٿو جيڪو چونڪ سان لاڳاپيل آهي ۽ ڪنٽرول-فلو گراف (CFG، ڪنٽرول-فلو گراف) ۾ اڳئين بلاڪن جي حوالي سان.
  • اصلاح ڪندڙ شرطن جي عملن جي ھڪڙي سيريز کي تبديل ڪرڻ جي صلاحيت کي لاڳو ڪري ٿو جيڪو ھڪڙي متغير کي سوئچ ايڪسپريس ۾ موازنہ ڪري ٿو. سوئچ ايڪسپريس کي بعد ۾ بٽ ٽيسٽنگ هدايتون استعمال ڪندي انڪوڊ ڪري سگھجي ٿو (اهڙي تبديلي کي ڪنٽرول ڪرڻ لاءِ "-fbit-tests" آپشن شامل ڪيو ويو آھي).
  • بهتر interprocedural optimizations. هڪ نئون IPA-modref پاس (-fipa-modref) شامل ڪيو ويو ضمني اثرات کي ٽريڪ ڪرڻ لاءِ جڏهن فنڪشن کي ڪال ڪيو وڃي ۽ تجزيو جي درستگي کي بهتر بڻايو وڃي. IPA-ICF پاس (-fipa-icf) جو بهتر عمل، جيڪو ڪمپليشن دوران ميموري جي استعمال کي گھٽائي ٿو ۽ گڏيل ڪمن جو تعداد وڌائي ٿو، جن لاءِ ڪوڊ جا هڪجهڙا بلاڪ گڏ ڪيا ويا آهن. IPA-CP (Interprocedural Constant propagation) پاس ۾، اڳڪٿي ڪرڻ واري هيرسٽڪس کي بهتر ڪيو ويو آهي، اڪائونٽ ۾ ڄاڻايل حدون ۽ لوپ جي خاصيتن کي.
  • Linking Time Optimizations (LTO) ۾، بائيٽ ڪوڊ فارميٽ کي بهتر ڪيو ويو آھي سائيز کي گھٽائڻ ۽ پروسيسنگ جي رفتار کي بھتر ڪرڻ لاءِ. پابندي واري مرحلي دوران چوٽي ياداشت جي گھٽتائي.
  • ڪوڊ پروفائلنگ جي نتيجن جي بنياد تي اصلاحي ميڪانيزم ۾ (PGO - پروفائل-گائيڊ ٿيل اصلاح)، جيڪا اجازت ڏئي ٿي وڌيڪ بهتر ڪوڊ پيدا ڪرڻ جي بنياد تي عمل جي خاصيتن جي تجزيي جي بنياد تي، GCOV ڊيٽا سان فائلن جو سائز گھٽجي ويو آھي صفر ڳڻپيندڙن جي وڌيڪ ڪمپيڪٽ پيڪنگنگ جي ڪري. . بهتر ڪيل "-fprofile-values" موڊ اڻ سڌي طرح ڪالن تي وڌيڪ پيٽرولر جي ٽريڪ رکڻ سان.
  • OpenMP 5.0 (اوپن ملٽي پروسيسنگ) معيار جو نفاذ، جيڪو API ۽ طريقن کي متوازي پروگرامنگ طريقن کي لاڳو ڪرڻ جي وضاحت ڪري ٿو ملٽي ڪور ۽ هائبرڊ (CPU+GPU/DSP) سسٽم تي گڏيل ميموري ۽ ویکٹرائيزيشن يونٽس (SIMD) سان. جاري رهيو. شامل ڪيل ابتدائي مدد لاءِ مختص ڪيل هدايت ۽ استعمال ڪرڻ جي صلاحيت OpenMP تعميرات ۾ heterogeneous loops. OMP_TARGET_OFFLOAD ماحولياتي متغير لاءِ لاڳو ڪيل سپورٽ.
  • C, C++ ۽ Fortran ٻولين لاءِ مهيا ڪيل OpenACC 2.6 متوازي پروگرامنگ وضاحتن تي عمل درآمد کي بھتر ڪيو ويو آھي، جيڪو GPUs ۽ خاص پروسيسرز، جھڙوڪ NVIDIA PTX تي آف لوڊ ڪرڻ جي عملن لاءِ اوزارن جي وضاحت ڪري ٿو.
  • C ٻولين لاءِ، ھڪ نئون وصف ”no_stack_protector“ لاڳو ڪيو ويو آھي، انھن ڪمن کي نشانو بڻائڻ لاءِ ٺاھيو ويو آھي جن لاءِ اسٽيڪ تحفظ کي فعال نه ڪيو وڃي (“-fstack-protector”). ميموري کي مختص ڪرڻ ۽ آزاد ڪرڻ لاءِ ڪالن جي جوڑوں جي سڃاڻپ جي مدد لاءِ ”ميلوڪ“ وصف وڌايو ويو آهي (مختص ڪندڙ/ڊيلوڪٽر)، جيڪو جامد تجزيي ۾ استعمال ڪيو ويندو آهي ميموري سان ڪم ڪرڻ ۾ عام غلطين جي نشاندهي ڪرڻ لاءِ (ميموري ليڪس، آزاد ٿيڻ کان پوءِ استعمال، ڊبل ڪالز کي مفت فنڪشن، وغيره) ۽ گڏ ڪرڻ وارن وارننگز ۾ “-Wmismatched-dealloc”، “-Wmismatched-new-delete” ۽ “-Wfree-nonheap-object”، ميموري ڊيلوڪيشن ۽ ميموري مختص ڪرڻ جي عملن جي وچ ۾ تضاد بابت ڄاڻ ڏيڻ.
  • سي ٻولي لاءِ نئون ڊيڄاريندڙ شامل ڪيو ويو آھي:
    • "-Wmismatched-dealloc" (ڊفالٽ طور تي چالو ڪيو ويو) - ڊيڄاري ٿو ميموري ڊيلوڪيشن عملن جي باري ۾ جيڪي هڪ پوائنٽر استعمال ڪن ٿيون جيڪي ميموري مختص ڪرڻ جي ڪمن سان مطابقت نه رکن ٿيون.
    • "-Wsizeof-array-div" (فعال ڪيو ويو جڏهن "-Wall" بيان ڪيو ويو آهي) - ڊيڄاري ٿو ٻن سائزن جي آپريٽرن کي ورهائڻ جي صورت ۾ جيڪڏهن ڊيوائزر صف جي عنصر جي ماپ سان نه ملندو آهي.
    • "-Wstringop-overread" (ڊفالٽ طور تي چالو ٿيل) - هڪ اسٽرنگ فنڪشن کي ڪال ڪرڻ بابت ڊيڄاري ٿو جيڪو صف جي حد کان ٻاهر واري علائقي مان ڊيٽا پڙهي ٿو.
    • "-Wtsan" (ڊفالٽ طور تي چالو ڪيو ويو) - خاصيتون استعمال ڪرڻ بابت خبردار ڪري ٿو (جهڙوڪ std::atomic_thread_fence) جيڪي ThreadSanitizer ۾ سپورٽ نه آهن.
    • "-Warray-parameter" ۽ "-Wvla-parameter" (جڏهن "-Wall" جي وضاحت ڪرڻ کي فعال ڪيو ويو) - مقرر ٿيل- ۽ متغير-لمبائي صفن سان لاڳاپيل دليلن جي غير مطابقت واري بيان سان اوور رائڊنگ افعال بابت خبردار ڪري ٿو.
    • "-Wuninitialized" ڊيڄاريندڙ ھاڻي غير شروع ٿيل متحرڪ طور تي مختص ڪيل ياداشت مان پڙھڻ جي ڪوشش کي ڳولي ٿو.
    • "-Wfree-nonheap-object" وارننگ ڪيسن جي تعريف کي وڌائي ٿو جتي ميموري ڊيلوڪيشن افعال کي پوائنٽر سان سڏيو وڃي ٿو جيڪو متحرڪ ميموري مختص ڪرڻ جي افعال ذريعي حاصل نه ڪيو ويو آهي.
    • "-Wmaybe-uninitiialized" وارننگ کي وڌايو ويو آھي پاسنگ پوائنٽرز جي سڃاڻپ کي افعال ڏانھن جيڪي غير شروع ٿيل ميموري جڳهن جو حوالو ڏين ٿا.
  • C ٻوليءَ لاءِ، C2X معيار جي فريم ورڪ ۾ ترقي ڪيل نون خصوصيتن جو هڪ حصو لاڳو ڪيو ويو آهي (-std=c2x ۽ -std=gnu2x جي وضاحت ڪندي فعال ڪيو ويو آهي): ميڪروس BOOL_MAX ۽ BOOL_WIDTH، فنڪشن ۾ غير استعمال ٿيل پيرا ميٽرن جي نالن جو اختياري اشارو وصفون (جيئن ته C++ ۾)، انتساب “[ [nodiscard]]، پري پروسيسر آپريٽر "__has_c_attribute"، macros FLT_IS_IEC_60559، DBL_IS_IEC_60559، LDBL_IS_IEC_60559، __STDC_WANT، FIN_60559_INEC_XNUMX، __STDC_WANT_XNUMX، _STDC_WANT_XNUMX_XNUMX_INEC_XNUMX N, DBL_SNAN, LDBL_SNAN, DEC_INFINITY ۽ DEC _NAN, NaN=macros لاءِ FloatN، _FloatNx ۽ _DecimalN، بيانن کان اڳ ۽ مرڪب بيانن جي آخر ۾ جمپ مارڪس جي وضاحت ڪرڻ جي صلاحيت.
  • C++ لاءِ، C++ 20 معيار ۾ تجويز ڪيل تبديلين ۽ جدت جو هڪ حصو لاڳو ڪيو ويو آهي، جنهن ۾ ورچوئل فنڪشنز “consteval virtual”، pseudo-destructors for the life cycle of objects، enum class جو استعمال ۽ "نئين" اظهار ۾ هڪ صف جي سائيز جي حساب سان.
  • C++ لاءِ، تجرباتي مدد شامل ڪئي وئي آهي ڪجهه بهتري لاءِ جيڪي مستقبل جي C++23 معيار (-std=c++23, -std=gnu++23, -std=c++2b, -std=gnu ++2b). مثال طور، ھاڻي ھاڻي سپورٽ آھي لفظي لاڳاپو "zu" لاءِ سائن ٿيل size_t قدرن لاءِ.
  • libstdc++ C++ 17 معيار لاءِ سپورٽ کي بهتر بڻايو آهي، جنهن ۾ فلوٽنگ پوائنٽ جي قسمن لاءِ std::from_chars ۽ std::to_chars لاڳو ڪرڻ شامل آهن. C++ 20 معيار جا نوان عنصر لاڳو ڪيا ويا آهن، جن ۾ std::bit_cast، std::source_location، ايٽمي آپريشن انتظار ۽ اطلاع، ، ، ، ، ۽ گڏوگڏ عناصر مستقبل C++ معيار 23 (std::to_underlying، std::is_scoped_enum). شامل ڪيل تجرباتي سپورٽ قسمن لاءِ متوازي ڊيٽا پروسيسنگ (SIMD، Data-Parallel Types). std::uniform_int_distribution تي عملدرآمد تيز ڪيو ويو آهي.
  • libgccjit مان الفا معيار جي پرچم کي هٽايو ويو، هڪ گڏيل لائبريري هڪ ڪوڊ جنريٽر کي ٻين پروسيس ۾ شامل ڪرڻ ۽ ان کي استعمال ڪرڻ لاء JIT ترتيب ڏيڻ لاء بائيٽ ڪوڊ کي مشين ڪوڊ ۾ ترتيب ڏيڻ لاء. MinGW لاءِ libgccjit ٺاهڻ جي صلاحيت شامل ڪئي وئي.
  • AArch64 Armv8-R فن تعمير لاءِ سپورٽ شامل ڪئي وئي (-march=armv8-r). AArch64 ۽ ARM آرڪيٽيڪچرز لاءِ، پروسيسرز لاءِ سپورٽ شامل ڪئي وئي آهي (پيراميٽر -mcpu ۽ -mtune): Arm Cortex-A78 (cortex-a78)، Arm Cortex-A78AE (cortex-a78ae)، Arm Cortex-A78C (cortex-a78c) ، Arm Cortex-X1 (cortex-x1)، Arm Neoverse V1 (neoverse-v1) ۽ Arm Neoverse N2 (neoverse-n2). Fujitsu A64FX (a64fx) ۽ Arm Cortex-R82 (cortex-r82) CPUs پڻ شامل ڪيا ويا آھن، صرف AArch64 آرڪيٽيڪچر کي سپورٽ ڪندي.
  • Armv8.3-a (AArch64/AArch32)، SVE (AArch64)، SVE2 (AArch64) ۽ MVE (AArch32 M-profile) SIMD ھدايتون شامل ڪرڻ، گھٽائڻ، ضرب ڪرڻ ۽ اضافي/اضافو ڪرڻ جي مختلف قسمن جي ڪارڪردگيءَ کي خودڪار ڪرڻ لاءِ. پيچيده نمبر. MVE هدايتون سيٽ استعمال ڪندي ARM لاءِ آٽو ويڪرائيزيشن لاءِ ابتدائي مدد شامل ڪئي وئي.
  • ARM پليٽ فارمن لاءِ، ڪمپيلر-انٽيگريٽيڊ سي فنڪشنز (انٽرنڪس) جو مڪمل سيٽ مهيا ڪيو ويو آهي، وڌايو ويو ویکٹر هدايتون (SIMD) سان، ACLE Q3 2020 وضاحتن ۾ دستاويز ڪيل سڀني NEON هدايتن کي ڍڪيندي.
  • GCN مائڪرو آرڪيٽيڪچر جي بنياد تي AMD GPUs لاءِ ڪوڊ تيار ڪرڻ لاءِ gfx908 GPU جي سپورٽ پس منظر ۾ شامل ڪئي وئي آهي.
  • شامل ڪيل سپورٽ نون پروسيسرز لاءِ ۽ انهن ۾ لاڳو ڪيل نئين هدايتون سيٽ واڌايون:
    • انٽيل سيمير ريپڊس (-ارچا = مووڊري، MOVDIRE، AVXEMESTES، CTXEMTON، STXTENOS، STXTONE، AMXTONOS، AXECTON، MTX-BFNY، AXEXTON، AXECTERSS، AXEXTONSS، AXPENTENSS، MTX-BFNYSES.
    • Intel Alderlake (-march=alderlake، CLDEMOTE، PTWRITE، WAITPKG، SERIALIZE، KEYLOCKER، AVX-VNNI ۽ HRESET هدايتون لاءِ سپورٽ کي قابل بڻائي ٿو).
    • Intel Rocketlake (-march = rocketlake، SGX سپورٽ کان سواء Rocket Lake وانگر).
    • AMD Zen 3 (-march=znver3).
  • Intel پروسيسرز تي ٻڌل IA-32/x86-64 سسٽم لاءِ، نئين پروسيسر جي هدايتن لاءِ سپورٽ TSXLDTRK، SERIALIZE، HRESET، UINTRKEYLOCKER، AMX-TILE، AMX-INT8، AMX-BF16، AVX-VNNI شامل ڪيو ويو آهي.
  • شامل ڪيل سپورٽ "-march=x86-64-v[234]" جھنڊو x86-64 آرڪيٽيڪچر ليولز کي چونڊڻ لاءِ (v2 - covers SSE4.2, SSSE3, POPCNT ۽ CMPXCHG16B ايڪسٽينشن؛ v3 - AVX2 ۽ MOVBE؛ v4 - AVX-512 ) .
  • شامل ڪيل سپورٽ RISC-V سسٽم لاءِ وڏي-انڊين بائيٽ آرڊر سان. شامل ڪيو ويو "-misa-spec=*" اختيار RISC-V هدايتون سيٽ آرڪيٽيڪچر وضاحتن جو نسخو چونڊڻ لاءِ. Address Sanitizer ۽ اسٽيڪ تحفظ لاءِ شامل ڪيل سپورٽ ڪينري ٽيگ استعمال ڪندي.
  • "-fanalyzer" جامد تجزيو موڊ جي مسلسل سڌاري، جيڪو پروگرام ۾ ڪوڊ جي عمل جي رستن ۽ ڊيٽا جي وهڪري جي وسيلن جي شدت واري بين الاقوامي تجزيي کي انجام ڏئي ٿو. موڊ تاليف واري مرحلي تي مسئلن کي ڳولڻ جي قابل آهي، جهڙوڪ هڪ ميموري ايريا لاءِ فري () فنڪشن کي ڊبل ڪال، فائل ڊسڪرپٽر ليڪس، ڊيريفرنسنگ ۽ پاسنگ نيل پوائنٽرز، آزاد ٿيل ميموري بلاڪس تائين رسائي، غير شروع ڪيل قدر استعمال ڪرڻ وغيره. نئين نسخي ۾:
    • پروگرام جي رياست کي ٽريڪ ڪرڻ لاء ڪوڊ مڪمل طور تي ٻيهر لکيو ويو آهي. تمام وڏي سي فائلن کي اسڪين ڪرڻ سان مسئلا حل ڪيا ويا آهن.
    • شامل ڪيل شروعاتي C++ سپورٽ.
    • ميموري مختص ڪرڻ ۽ ڊيلوڪيشن تجزيي کي مخصوص malloc ۽ مفت افعال مان خلاصو ڪيو ويو آهي، ۽ هاڻي نئين / حذف ۽ نئين []/delete[] کي سپورٽ ڪري ٿو.
    • نئون ڊيڄاريندڙ شامل ڪيو ويو: -وانالائزر-شفٽ-ڳڻپ-منفي، -وانالائيزر-شفٽ-ڳڻپ-اوور فلو، -وانالائيزر-لکڻ-کي-ڪنسٽ ۽ -وانالائيزر-لکڻ-کي-اسٽرنگ-لفظي.
    • نئون ڊيبگنگ آپشن شامل ڪيو ويو -fdump-analyzer-json ۽ -fno-analyzer-feasibility.
    • GCC لاءِ پلگ ان ذريعي تجزيي کي وڌائڻ جي صلاحيت لاڳو ڪئي وئي آهي (مثال طور، CPython ۾ گلوبل لاڪنگ (GIL) جي غلط استعمال کي جانچڻ لاءِ هڪ پلگ ان تيار ڪيو ويو آهي).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو