अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

g++-4.7 - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में जी ++ -4.7 चलाएं

यह कमांड g++-4.7 है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


जीसीसी - जीएनयू प्रोजेक्ट सी और सी ++ कंपाइलर

SYNOPSIS


जीसीसी [-c|-S|-E] [-एसटीडी=मानक]
[-g] [-पीजी] [-Oस्तर]
[-Wचेतावनी देना...] [पांडित्य]
[-Iदीर...] [-Lदीर...]
[-Dमैक्रो[=रक्षा]...] [-Uमैक्रो]
[-fविकल्प...] [-mमशीन-विकल्प...]
[-o आउटफाइल] [@पट्टिका] फाइल में...

केवल सबसे उपयोगी विकल्प यहां सूचीबद्ध हैं; शेष के लिए नीचे देखें। जी ++ स्वीकार करता है
ज्यादातर एक ही विकल्प के रूप में जीसीसी.

वर्णन


जब आप जीसीसी का आह्वान करते हैं, तो यह सामान्य रूप से प्रीप्रोसेसिंग, संकलन, असेंबली और लिंकिंग करता है।
"समग्र विकल्प" आपको इस प्रक्रिया को एक मध्यवर्ती चरण में रोकने की अनुमति देते हैं। के लिये
उदाहरण, द -c विकल्प कहता है कि लिंकर को न चलाएं। तब आउटपुट में ऑब्जेक्ट होता है
असेंबलर द्वारा फाइल आउटपुट।

अन्य विकल्पों को प्रसंस्करण के एक चरण में पारित किया जाता है। कुछ विकल्प नियंत्रित करते हैं
प्रीप्रोसेसर और अन्य कंपाइलर ही। फिर भी अन्य विकल्प असेंबलर को नियंत्रित करते हैं और
लिंकर; इनमें से अधिकांश का दस्तावेजीकरण यहां नहीं किया गया है, क्योंकि आपको इनमें से किसी का भी उपयोग करने की शायद ही कभी आवश्यकता होती है।

अधिकांश कमांड-लाइन विकल्प जिनका आप GCC के साथ उपयोग कर सकते हैं, C प्रोग्राम के लिए उपयोगी हैं; कब
एक विकल्प केवल दूसरी भाषा (आमतौर पर सी ++) के साथ उपयोगी होता है, स्पष्टीकरण ऐसा कहता है
स्पष्ट रूप से। यदि किसी विशेष विकल्प के विवरण में स्रोत का उल्लेख नहीं है
भाषा, आप सभी समर्थित भाषाओं के साथ उस विकल्प का उपयोग कर सकते हैं।

RSI जीसीसी प्रोग्राम ऑपरेंड के रूप में विकल्पों और फ़ाइल नामों को स्वीकार करता है। कई विकल्पों में बहु-
पत्र के नाम; इसलिए एकाधिक एकल-अक्षर विकल्प हो सकते हैं नहीं समूहीकृत होना: -डीवी है बहुत
से अलग -d -v.

आप विकल्प और अन्य तर्कों को मिला सकते हैं। अधिकांश भाग के लिए, आप जिस ऑर्डर का उपयोग करते हैं वह नहीं है
मामला। ऑर्डर मायने रखता है जब आप एक ही तरह के कई विकल्पों का उपयोग करते हैं; उदाहरण के लिए, अगर
आप निर्दिष्ट करें -L एक से अधिक बार, निर्देशिकाओं को निर्दिष्ट क्रम में खोजा जाता है। भी,
की नियुक्ति -l विकल्प महत्वपूर्ण है।

कई विकल्पों के लंबे नाम होते हैं जिनकी शुरुआत से होती है -f या के साथ -W---उदाहरण के लिए,
-fmove-लूप-इनवेरिएंट, -स्वरूप और इसी तरह। इनमें से अधिकांश में सकारात्मक और नकारात्मक दोनों हैं
रूप; का नकारात्मक रूप -फ्फू होगा -फनो-फू. यह मैनुअल दस्तावेजों में से केवल एक
ये दो रूप, इनमें से जो भी डिफ़ॉल्ट नहीं है।

विकल्प


विकल्प सारांश
यहां प्रकार के आधार पर समूहीकृत सभी विकल्पों का सारांश दिया गया है। स्पष्टीकरण निम्नलिखित में हैं
वर्गों.

कुल ऑप्शंस
-c -S -E -o पट्टिका -नो-कैनोनिकल-उपसर्ग -पाइप -पास-निकास-कोड -x भाषा -v
-### --मदद[=कक्षा[, ...]] --लक्ष्य-सहायता --संस्करण -आवरण @पट्टिका -फ़्प्लगिन =पट्टिका
-फ्लूगिन-आर्ग-नाम=arg -fdump-ada-कल्पना[-पतला] -फडम्प-गो-स्पेक =पट्टिका

C भाषा ऑप्शंस
-अनसी -एसटीडी=मानक -fgnu89-इनलाइन -ऑक्स-जानकारी फ़ाइल का नाम
-परती-पैरामीटर रहित-वैरिएडिक-फ़ंक्शंस -फनो-एएसएम -फनो-बिल्टिन -फनो-बिल्टिन-समारोह
-फॉस्टेड -फ्रीस्टैंडिंग -फोपेनएमपी -एफएमएस-एक्सटेंशन -फप्लान9-एक्सटेंशन -ट्रिग्राफ
-नहीं-एकीकृत-सीपीपी पारंपरिक -पारंपरिक-सीपीपी -परती-एकल-सटीक
-fcond-बेमेल -सन-वेक्टर-रूपांतरण -fsigned-बिटफील्ड्स -फसाइनड-चार
-फनसाइनड-बिटफील्ड्स -funsigned-char

सी + + भाषा ऑप्शंस
-फैबी-संस्करण=n -फनो-एक्सेस-कंट्रोल -fcheck-नया -fconserve-space
-fconstexpr-गहराई=n -दोस्त-इंजेक्शन -फनो-एलिड-कंस्ट्रक्टर्स -फनो-एनफोर्स-एह-स्पेसिफिकेशंस
-फॉर-स्कोप -फनो-फॉर-स्कोप -फनो-ग्नू-कीवर्ड -फनो-अंतर्निहित-टेम्पलेट्स
-फनो-अंतर्निहित-इनलाइन-टेम्पलेट्स -फनो-कार्यान्वयन-इनलाइन्स -एफएमएस-एक्सटेंशन
-फनो-नोनानसी-बिलिन्स -फनोथ्रो-ऑप्ट -फनो-ऑपरेटर-नाम -फनो-वैकल्पिक-डायग्स
-फर्मिसिव -फनो-सुंदर-टेम्पलेट्स -फ्रेपो -फनो-आरटीटीआई -fstats -फटेम्पलेट-गहराई =n
-फनो-थ्रेडसेफ-स्टैटिक्स -फ्यूज-सीएक्सए-एटेक्सिट -फनो-कमजोर -नोस्टडिंक++ -फनो-डिफॉल्ट-इनलाइन
-दृश्यता-इनलाइन्स-छिपा हुआ -दृश्यता-एमएस-संगत -वाबी -Wरूपांतरण-शून्य
-Wctor-dtor-गोपनीयता -Wdelete-गैर-आभासी-dtor - सिकुड़ा हुआ -कोई अपवाद नहीं
-गैर-आभासी-dtor -वॉर्डर -वेफक++ -विस्ट्रिक्ट-नल-सेंटिनल
-नो-नॉन-टेम्प्लेट-मित्र -वल्ड-स्टाइल-कास्ट -ववरलोडेड-वर्चुअल -Wno-pmf-रूपांतरण
-Wsign-प्रोमो

उद्देश्य सी और उद्देश्य-सी++ भाषा ऑप्शंस
-फकॉन्स्टेंट-स्ट्रिंग-क्लास =कक्षा का नाम -फग्नू-रनटाइम -फनेक्स्ट-रनटाइम -फनो-शून्य-रिसीवर
-फोबजेसी-एबी-संस्करण =n -fobjc-कॉल-cxx-cdtors -फोबजेसी-प्रत्यक्ष-प्रेषण -फोबजेसी-अपवाद
-फोबजेसी-जीसी -फोबजेसी-निलचेक -फोबजेसी-एसटीडी=ओबीजेसी1 -फ्रीप्लेस-ओबीजेसी-क्लासेस -फजीरो-लिंक
-जेन-डिक्लेस -असाइन-अवरोध -Wno-प्रोटोकॉल - चयनकर्ता - सख्त-चयनकर्ता-मैच
-वंडघोषित-चयनकर्ता

भाषा स्वतंत्र ऑप्शंस
-fmessage-लंबाई=n -fdiagnostics-शो-स्थान=[एक बार|हर पंक्ति]
-फनो-डायग्नोस्टिक्स-शो-विकल्प

चेतावनी ऑप्शंस
-fsyntax-केवल -फमैक्स-त्रुटियां =n पांडित्य -पांडित्य-त्रुटियों -w -वेक्स्ट्रा -दीवार
-पता -वैग्रेगेट-रिटर्न -वार-सीमा -Wno-विशेषताएँ
-बिना बिलिन-मैक्रो-पुनर्परिभाषित -डब्ल्यूसी++ - कॉम्पैट -Wc++11-संगत -Wcast-संरेखण -वास्ट-क्वाली
-वचर-सब्सक्राइब -वक्लबरेड -कमेन्ट करें -वरूपांतरण -कवरेज-बेमेल -वो-सीपीपी
-कोई पदावनत -अना-बहिष्कृत-घोषणाएँ -अक्षम-अनुकूलन -वनो-डिव-बाय-जीरो
डबल-पदोन्नति -खाली-शरीर -वेनम-तुलना -Wno-endif-लेबल -आतंक -भय =*
घातक-त्रुटियों -फ्लोट-बराबर -स्वरूप -फॉर्मैट = 2 -नो-प्रारूप-शामिल-शून्य
-नो-प्रारूप-अतिरिक्त-आर्ग्स -Wformat-गैर-शाब्दिक -स्वरूप-सुरक्षा -Wformat-y2k
-वफ्रेम-बड़ा-से =लेन -नो-फ्री-नॉनहीप-ऑब्जेक्ट -वजम्प-मिस-इनिट
-विग्नोर-क्वालिफायर -विम्पलिसिट -विम्प्लिकिट-फ़ंक्शन-घोषणा -विम्प्लिशिट-इंट
-विनिट-सेल्फ -विनलाइन -शायद-अप्रारंभीकृत -नो-इंट-टू-पॉइंटर-कास्ट
-अवैध-ऑफसेटऑफ़ नहीं -विनवैलिड-pch -बड़ा-से =लेन -वुनसेफ-लूप-ऑप्टिमाइज़ेशन
-वैलॉजिकल-ऑप -लंबा-लंबा -वमेन -शायद-अप्रारंभीकृत -विस्मिंग-ब्रेसिज़
-विमिसिंग-फील्ड-प्रारंभकर्ता -विस्मिंग-प्रारूप-विशेषता -विस्मिंग-शामिल-डीआईआर
-वनो-मडफ्लैप -वनो-मल्टीचार -वोननुल -कोई अतिप्रवाह -ओवरलेंथ-स्ट्रिंग्स - पैक्ड
-पैक्ड-बिटफील्ड-कंपैट -पैडेड -कोष्ठक -वेदांतिक-एमएस-प्रारूप
-नो-पेडेंटिक-एमएस-फॉर्मेट -पॉइंटर-अरिथ -नो-पॉइंटर-टू-इंट-कास्ट -अनावश्यक-गिरावट
-रिटर्न-प्रकार -अनुक्रम-बिंदु -छाया -Wsign-तुलना -साइन-रूपांतरण
-स्टैक-रक्षक -स्टैक-उपयोग =लेन -स्ट्रिक्ट-अलियासिंग -स्ट्रिक्ट-अलियासिंग = n
-स्ट्रिक्ट-ओवरफ्लो -स्ट्रिक्ट-ओवरफ्लो =n -सुझाव-विशेषता =[शुद्ध|const|वापसी नहीं]
-स्विच -स्विच-डिफ़ॉल्ट -विसिच-एनम -Wsync-नंद -डब्ल्यूसिस्टम-हेडर -ट्रैम्पोलिन्स
-वट्रिग्राफ -Wtype-सीमा -वुंडेफ -अप्रारंभीकृत -अज्ञात-प्राग्मास -नहीं-प्रगमास
-वंसफिक्स्ड-फ्लोट-स्थिरांक -वुनयूज्ड -वुनयूज्ड-फंक्शन -वुनयूज्ड-लेबल
-वुनयूज्ड-लोकल-टाइपडिफ्स -वुनयूज्ड-पैरामीटर -अप्रयुक्त-अप्रयुक्त-परिणाम -अप्रयुक्त-मूल्य
-अप्रयुक्त-चर -अप्रयुक्त-लेकिन-सेट-पैरामीटर -अप्रयुक्त-लेकिन-सेट-चर
-वेरिएडिक-मैक्रोज़ -वेक्टर-ऑपरेशन-प्रदर्शन -व्वला -अस्थिर-रजिस्टर-वर
-लिखें-तार -शून्य-के-शून्य-सूचक-स्थिरांक

C और उद्देश्य-सी-केवल चेतावनी ऑप्शंस
-वबद-फ़ंक्शन-कास्ट -विस्मिंग-घोषणाएँ -विस्मिंग-पैरामीटर-प्रकार
-विमिसिंग-प्रोटोटाइप -वेस्टेड-बाहरी -वल्ड-स्टाइल-घोषणा -वल्ड-शैली-परिभाषा
-स्ट्रिक्ट-प्रोटोटाइप -पारंपरिक -Wपारंपरिक-रूपांतरण
-विघोषणा-बाद-बयान -Wpointer-चिह्न

डीबगिंग ऑप्शंस
-dपत्र -डंपस्पेक्स -डंपमशीन -डंपवर्सन -एफडीबीजी-सीएनटी-सूची -एफडीबीजी-सीएनटी=काउंटर
मूल्य सूची -fdisable-आईपीए-पास_नाम -fअक्षम-आरटीएल-पास_नाम -fअक्षम-आरटीएल-उत्तीर्ण-
नाम=श्रेणी-सूची -fdisable-पेड़-पास_नाम -fdisable-पेड़-पास-नाम=श्रेणी-सूची
-fdump-noaddr -फडंप-अननंबर्ड -फडंप-अननंबर्ड-लिंक्स -फडंप-अनुवाद-इकाई[-n]
-फडम्प-वर्ग-पदानुक्रम[-n] -फडम्प-आईपीए-सब -फडंप-आईपीए-सीग्राफ -फडम्प-आईपीए-इनलाइन
-फडंप-पास -fdump-आँकड़े -फडंप-पेड़-सब -फडंप-पेड़-मूल[-n]
-फडंप-पेड़-अनुकूलित[-n] -fdump-पेड़-cfg -फडंप-पेड़-वीसीजी -फडम्प-पेड़-उपनाम
-फडंप-पेड़-चो -fdump-पेड़-ssa[-n] -फडंप-पेड़-पूर्व[-n] -फडंप-पेड़-सीसीपी[-n]
-फडंप-पेड़-डीसीई[-n] -फडंप-पेड़-गिंपल[-कच्चा] -फडंप-पेड़-मडफ्लैप[-n]
-फडंप-पेड़-डोम[-n] -फडंप-पेड़-डीएसई[-n] -फडंप-पेड़-फिप्रोप[-n] -फडंप-पेड़-फिओप्ट[-n]
-फडंप-पेड़-फॉरप्रॉप[-n] -फडंप-पेड़-कॉपीरेनेम[-n] -फडंप-पेड़-एनआरवी -फडंप-पेड़-vect
-फडंप-पेड़-सिंक -fdump-पेड़-sra[-n] -फडंप-पेड़-फॉरप्रॉप[-n] -फडंप-पेड़-मुक्त[-n]
-फडंप-पेड़-वीआरपी[-n] -फ्ट्री-वेक्टराइज़र-वर्बोज़=n -फडंप-पेड़-स्टोरccp[-n]
-फडंप-फाइनल-इंसंस =पट्टिका -fतुलना-डीबग[=opts] -fतुलना-डीबग-सेकंड
-फेलिमिनेट-बौना2-डुप्स -फेलिमिनेट-अप्रयुक्त-डीबग-प्रकार
-फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक -स्त्री-वर्ग-डीबग-हमेशा - योग्य-तरह-पास
- योग्य-तरह-पास=श्रेणी-सूची -फडेबग-प्रकार-अनुभाग -एफएमईएम-रिपोर्ट -फप्री-आईपीए-मेम-रिपोर्ट
-फपोस्ट-आईपीए-मेम-रिपोर्ट -फ्रोफाइल-आर्क्स -फ्रैंडम-बीज=स्ट्रिंग -fsched-क्रिया =n
-एफएसईएल-शेड्यूल-वर्बोज़ -fsel-अनुसूचित-डंप-cfg -fsel-अनुसूचित-पाइपलाइनिंग-क्रिया -फस्टैक-उपयोग
-फटेस्ट-कवरेज -फटाइम-रिपोर्ट -fvar-ट्रैकिंग -fvar-ट्रैकिंग-असाइनमेंट
-fvar-ट्रैकिंग-असाइनमेंट-टॉगल -g -gस्तर -gtoggle -गकॉफ -जीडवार्फ-संस्करण -जीजीडीबी
-ग्रेकॉर्ड-जीसीसी-स्विच -ग्नो-रिकॉर्ड-जीसीसी-स्विच -गैस्टैब्स -गैस्टैब्स+ -गस्ट्रिक्ट-बौना
-ग्नो-सख्त-बौना -gvms -gxcoff -जीएक्सकॉफ+ -फनो-मर्ज-डीबग-स्ट्रिंग्स
-फनो-बौना2-सीएफआई-एएसएम -फडेबग-उपसर्ग-मानचित्र=पुराना=नई -स्त्री-संरचना-डीबग-आधारभूत
-स्त्री-संरचना-डीबग-कम किया गया -स्त्री-संरचना-डीबग-विस्तृत[=कल्पना-सूची] -p -पीजी
-प्रिंट-फ़ाइल-नाम=पुस्तकालय -प्रिंट-libgcc-फ़ाइल-नाम -प्रिंट-मल्टी-डायरेक्टरी
-प्रिंट-मल्टी-लिब -प्रिंट-मल्टी-ओएस-डायरेक्टरी -प्रिंट-प्रोग-नाम=कार्यक्रम
-प्रिंट-खोज-डीआईआर -Q -प्रिंट-सिसरूट -प्रिंट-सिसरूट-हेडर-प्रत्यय -बचाओ-अस्थायी
-सेव-टेम्प्स = cwd -सेव-टेम्प्स = obj -पहर[=पट्टिका]

इष्टतमीकरण ऑप्शंस
-फालिग्न-फ़ंक्शंस[=n] -फलाइन-कूदता है[=n] -फ़लाइन-लेबल[=n] -फलाइन-लूप[=n]
-फैसोसिएटिव-गणित -फॉटो-इंक-दिसंबर -fशाखा-संभावनाएं -फ्ब्रांच-लक्ष्य-लोड-अनुकूलन
-fbranch-target-load-optimize2 -एफबीटीआर-बीबी-अनन्य -fcaller-बचाता है -फचेक-डेटा-डिप्स
-fcombine-ढेर-समायोजन -fconserve-ढेर -फतुलना-एलीम -एफसीप्रॉप-रजिस्टर
-क्रॉस जंपिंग -fcse-अनुसरण-कूदता है -एफसीई-स्किप-ब्लॉक -एफसीएक्स-फोरट्रान-नियम
-एफसीएक्स-सीमित-रेंज -fdata-अनुभाग -एफडीसी -fdelayed-शाखा -fdelete-null-pointer-checks
-fdevirualize -एफडीएसई -भयभीत इनलाइनिंग -फिपा-सर -महंगे-अनुकूलन
-ffat-lto-वस्तुओं -फफास्ट-गणित -अनंत-गणित-केवल -फ्लोट-स्टोर
-फेक्सस-सटीक =अंदाज आगे-प्रचार करना -ffp-अनुबंध =अंदाज -फंक्शन-सेक्शन
-एफजीसीएसई -fgcse-आफ्टर-रीलोड -fgcse-लास -एफजीसीएसई-एलएम -फग्रेफाइट-पहचान -fgcse-एसएम
-फिफ-रूपांतरण -फिफ-रूपांतरण2 -findirect-इनलाइनिंग -फिनलाइन-फ़ंक्शंस
-फिनलाइन-फ़ंक्शंस-कॉल-वन्स -फिनलाइन-सीमा =n -फिनलाइन-छोटे-फ़ंक्शंस -फिपा-सीपी
-फिपा-सीपी-क्लोन -फिपा-मैट्रिक्स-पुनर्गठन -फिपा-पीटीए -फिपा-प्रोफाइल -फिपा-शुद्ध-कॉन्स्ट
-फिपा-संदर्भ -फिरा-एल्गोरिदम=कलन विधि -फिरा-क्षेत्र=क्षेत्र -फिरा-लूप-दबाव
-फनो-इरा-शेयर-सेव-स्लॉट -फनो-इरा-शेयर-स्पिल-स्लॉट -फिरा-क्रिया=n -फिवोप्ट्स
-फ़कीप-इनलाइन-फ़ंक्शंस -फकीप-स्थिर-स्थिरांक -फ्लॉप-ब्लॉक फ़्लॉप-फ़्लैटन
-फ्लॉप-इंटरचेंज -फ्लूप-स्ट्रिप-माइन -फ्लॉप-समानांतर-सभी -फ्लोटो
-flto-संपीड़न-स्तर -flto-विभाजन=ALG -फ्लो-रिपोर्ट -फमर्ज-ऑल-स्थिरांक
-फमर्ज-स्थिरांक -फमोडुलो-अनुसूची -फमोडुलो-शेड्यूल-अनुमति-regmoves -fmove-लूप-इनवेरिएंट
fmudflap -फमुडफ्लैपिर -फमडफ्लैप्थ -फनो-शाखा-गिनती-रेग -फनो-डिफॉल्ट-इनलाइन
-फनो-डेफर-पॉप -फनो-फ़ंक्शन-सीएसई -फनो-अनुमान-शाखा-प्रायिकता -फनो-इनलाइन
-फनो-गणित-त्रुटि -फनो-पीपहोल -फनो-पीपहोल2 -फनो-शेड-इंटरब्लॉक -फनो-अनुसूचित-कल्पना
-फनो-हस्ताक्षरित-शून्य -फनो-टॉपलेवल-रीऑर्डर -फनो-ट्रैपिंग-गणित
-फनो-जीरो-इनिशियलाइज्ड-इन-बीएसएस -फोमिट-फ्रेम-पॉइंटर -फॉप्टिमाइज-रजिस्टर-मूव
-foptimize-भाई-बहन-कॉल -fआंशिक-इनलाइनिंग -फपील-लूप्स -फप्रेडिक्टिव-कॉमनिंग
-fprefetch-लूप-सरणी -फ्रोफाइल-सुधार -फ्रोफाइल-डीआईआर=पथ -फ्रोफाइल-उत्पन्न
-फ्रोफाइल-जेनरेट=पथ -फ्रोफाइल-उपयोग -फ्रोफाइल-उपयोग =पथ -फ्रोफाइल-मान
-फ्रेसिप्रोकल-गणित -मुक्त -फ्रेगमोव -फ्रेनेम-रजिस्टर -फ्रीऑर्डर-ब्लॉक
-फ्रीऑर्डर-ब्लॉक-और-विभाजन -फ्रीऑर्डर-फ़ंक्शंस -फ्रेरुन-सीएसई-आफ्टर-लूप
-फ़्रेशेड्यूल-मॉड्यूलो-शेड्यूल-लूप -आधार-गणित -fsched2-उपयोग-सुपरब्लॉक
-fsched-दबाव -fsched-कल्पना-लोड -फस्ड-स्पेक-लोड-खतरनाक
-fsched-stalled-insns-dep [=n] -fsched-stalled-insns[=n] -फस्ड-ग्रुप-हेयुरिस्टिक
-fsched-महत्वपूर्ण-पथ-अनुमानी -फस्ड-स्पेक-इन्स-हेयुरिस्टिक -फस्ड-रैंक-हेयुरिस्टिक
-fsched-अंतिम-इंस-हेयुरिस्टिक -फस्ड-डिप-काउंट-हेयुरिस्टिक -fschedule-insns
-fschedule-insns2 -फसेक्शन-एंकर -चयनात्मक-निर्धारण -fचयनात्मक-निर्धारण2
-fsel-अनुसूचित-पाइपलाइनिंग -fsel-अनुसूचित-पाइपलाइनिंग-बाहरी-लूप -फश्रिंक-रैप
-fsignaling-nans -फसिंगल-सटीक-स्थिर -fsplit-ivs-इन-अनरोलर
-fsplit-चौड़ा-प्रकार -स्टैक-रक्षक -फस्टैक-रक्षक-सभी -फस्ट्रिक्ट-अलियासिंग
-फस्ट्रिक्ट-ओवरफ्लो -फथ्रेड-कूद -फ्ट्रेसर -फट्री-बिट-सीसीपी -फट्री-बिल्टिन-कॉल-डीसीई
-फट्री-सीसीपी -फ्ट्री-चो -फट्री-कोलेस-इनलाइन-वर्स -फट्री-कोलेस-वर्स -फट्री-कॉपी-प्रोप
-फट्री-कॉपीरेनेम -ftree-dce -फट्री-डोमिनेटर-ऑप्ट्स -फट्री-डीएसई -ftree-forwprop
-फ़्री-फ़्री -फट्री-लूप-अगर-कन्वर्ट -फट्री-लूप-अगर-कन्वर्ट-स्टोर्स -फट्री-लूप-इम
-फट्री-फिप्रोप -फट्री-लूप-वितरण -फट्री-लूप-वितरण-पैटर्न
-फट्री-लूप-इवकैनन -फट्री-लूप-रैखिक -फट्री-लूप-ऑप्टिमाइज़ -फट्री-समानांतर-लूप =n
-फट्री-प्री -फट्री-आंशिक-पूर्व -फट्री-पीटीए -ftree-reassoc -फट्री-सिंक -फट्री-सर
-फट्री-स्विच-रूपांतरण -फट्री-टेल-मर्ज -फट्री-टेर -फट्री-वेक्ट-लूप-संस्करण
-फ़्री-वेक्टराइज़ -फट्री-वीआरपी -फनिट-एट-ए-टाइम -फ़नरोल-ऑल-लूप्स -फ़नरोल-लूप्स
-फनसेफ-लूप-ऑप्टिमाइज़ेशन -फनसेफ-गणित-अनुकूलन -फनस्विच-लूप
-परिवर्तनीय-विस्तार-इन-अनरोलर -फवेक्ट-लागत-मॉडल -एफवीपीटी -फवेब पूरे कार्यक्रम -एफडब्ल्यूपीए
-फ्यूज-एलडी =संयोजक -फ्यूज-लिंकर-प्लगइन --परम नाम=मूल्य -O -ओ३ -ओ३ -ओ३ -ओ३ -ओस
-ओफ़ास्ट

प्रीप्रोसेसर ऑप्शंस
-Aप्रश्न=जवाब -A-प्रश्न[=जवाब] -C -डीडी डि -डीएम -डीएन -Dमैक्रो[=रक्षा] -E -H
-इदिराफ्टर दीर -शामिल पट्टिका -इमैक्रोस पट्टिका -आईप्रीफिक्स पट्टिका -iwithउपसर्ग दीर
-iसाथउपसर्गपहले दीर -सिस्टम दीर -इमल्टीलिब दीर -इसिसरूट दीर -M -एमएम -एमएफ -एमजी
-एमपी -एमक्यू -एमटी -नोस्टडिंक -P -एफडीबग-सीपीपी -फ्रैक-मैक्रो-विस्तार -फ़वर्किंग-निर्देशिका
-रेमैप -ट्रिग्राफ -अनडेफ -Uमैक्रो -डब्ल्यूपी,विकल्प -एक्सप्रीप्रोसेसर विकल्प

कोडांतरक विकल्प
-वा,विकल्प -एक्ससेम्बलर विकल्प

संयोजक ऑप्शंस
वस्तु-फ़ाइल-नाम -lपुस्तकालय -नोस्टार्टफाइल्स -नोडिफॉल्टलिब्स -नोस्टडलिब -पाई -गतिशील -s
स्थैतिक -स्थैतिक-libgcc -स्थैतिक-libstdc++ कमरा साझा -साझा-libgcc -प्रतीकात्मक -T लिपि
-डब्ल्यूएल,विकल्प -एक्सलिंकर विकल्प -u प्रतीक

निर्देशिका ऑप्शंस
-Bउपसर्ग -Iदीर -आईप्लगइंडिर=दीर -मैं उद्धृत करता हूंदीर -Lदीर - चश्मा =पट्टिका -मैं- --सिसरूट=दीर

मशीन निर्भर ऑप्शंस
AAArch64 ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -जनरल-regs-only -एमसीमॉडल = छोटा
-एमसीमॉडल = छोटा -एमसीमॉडल = बड़ा -मस्ट्रिक्ट-संरेखण -मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर -mtls-बोली=desc -एमटीएलएस-बोली=पारंपरिक -मार्च=नाम
-एमसीपीयू =नाम -मट्यून =नाम

अदपतेवा घोषणा ऑप्शंस -एमहाफ-रेग-फाइल -मपसंद-लघु-इन्स-regs - शाखा-लागत =संख्या
-एमसीमूव -मनोप्स=संख्या -एमसॉफ्ट-सीएमपीएसएफ -एमएसप्लिट-लोही -एमपोस्ट-इंक -mpost-संशोधित
-मस्टैक-ऑफ़सेट=संख्या -माउंड-निकटतम -मलॉन्ग-कॉल -एमशॉर्ट-कॉल -एमएसस्मॉल16 -एमएफपी-मोड =मोड
-mvect-डबल -मैक्स-वेक्ट-संरेखण =संख्या -msplit-vecmove-जल्दी -एम1रेग-REG

एआरएम ऑप्शंस -मैप्स-फ्रेम -एमनो-एपीसीएस-फ्रेम -माबी=नाम -मैप्स-स्टैक-चेक
-एमनो-एपीसीएस-स्टैक-चेक -मैप्स-फ्लोट -एमनो-एपीसीएस-फ्लोट -मैप्स-रीएंट्रेंट
-एमनो-एपीसीएस-रीएंट्रेंट -मशेड-प्रोलॉग -मनो-अनुसूचित-प्रस्तावना -थोड़ा-एंडियन -मबिग-एंडियन
-मॉर्ड्स-लिटिल-एंडियन -मफ्लोट-अबी =नाम -एमएफपीई -एमएफपी16-प्रारूप =नाम -मथंब-इंटरवर्क
-मनो-अंगूठे-इंटरवर्क -एमसीपीयू =नाम -मार्च=नाम -एमएफपीयू=नाम -एमस्ट्रक्चर-आकार-सीमा =n
-मबॉर्ट-ऑन-नोरटर्न -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -एकल-तस्वीर-आधार
-मनो-एकल-तस्वीर-आधार -एमपीआईसी-रजिस्टर=REG -मनोप-मज़ा-dllimport -मसीरस-फिक्स-अमान्य-इंसंस
-मनो-सिरस-फिक्स-अमान्य-इंसंस -मपोक-फ़ंक्शन-नाम -मथंब -मर्म -एमटीपीसी-फ्रेम
-एमटीपीसी-पत्ती-फ्रेम -मैकलर-सुपर-इंटरवर्किंग -मैकली-सुपर-इंटरवर्किंग -एमटीपी=नाम
-mtls-बोली=बोली -mword-स्थानांतरण -एमफिक्स-कॉर्टेक्स-एम3-एलडीआरडी -मुना-संरेखित-पहुंच
-नियॉन-फॉर-64बिट्स

AVR ऑप्शंस -एमएमसीयू =एमसीयू -संकुचित-आर्ग्स - शाखा-लागत =लागत -mcall-प्रस्तावना -मिंट8
-मनो-बाधित -मेरेलैक्स -एमशॉर्ट-कॉल -मस्ट्रिक्ट-X -मटिनी-स्टैक

ब्लैकफिन ऑप्शंस -एमसीपीयू =सीपीयू[-सिरविज़न] -मसिम -मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर -mspecld-विसंगति -मनो-स्पेकल्ड-विसंगति -एमसीसिंक-विसंगति
-मनो-सीसिंक-विसंगति -एमएलओ-64k -मनो-लो64k -मस्टैक-चेक-l1 -मिड-शेयर्ड-लाइब्रेरी
-मनो-आईडी-साझा-लाइब्रेरी -mshared-लाइब्रेरी-आईडी=n -mleaf-आईडी-साझा-लाइब्रेरी
-मनो-लीफ-आईडी-साझा-लाइब्रेरी -एमएसईपी-डेटा -मनो-सितंबर-डेटा -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल
-एमफास्ट-एफपी -मिनलाइन-पीएलटी -मल्टीकोर -मकोरिया -मकोरबे -एमएसड्राम -मिकप्लब

सी6एक्स ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -मार्च=सीपीयू -मसिम -एमएसडेटा =sdata-प्रकार

क्रिस ऑप्शंस -एमसीपीयू =सीपीयू -मार्च=सीपीयू -मट्यून =सीपीयू -एमएमएक्स-स्टैक-फ्रेम =n
-मेलिनक्स-स्टैकसाइज =n -मेट्रैक्स4 -मेट्रैक्स100 -एमपीडीबग -एमसीसी-इनिट -मनो-दुष्प्रभाव
-मस्टैक-संरेखण -mdata-संरेखण -mconst-संरेखण -एम 32-बिट -एम 16-बिट -एम 8-बिट
-मनो-प्रस्तावना-उपसंहार -मनो-गॉटप्लाट -मेल्फ़ -मौत -मेलिनक्स -मिलिनक्स -सिम -सिम2
-mmul-बग-समाधान -मनो-मुल-बग-वर्कअराउंड

CR16 ऑप्शंस -एमएमएसी -एमसीआर16सीप्लस -एमसीआर16सी -मसिम -मिंट32 -एमबिट-ऑप्स -mdata-मॉडल=आदर्श

डार्विन ऑप्शंस -सभी_लोड -स्वीकार्य_क्लाइंट —करना -आर्च_एरर्स_फेटल -आर्च_ओनली
-बाइंड_एट_लोड -बंडला -बंडल_लोडर -ग्राहक का नाम -संगतता_संस्करण
-वर्तमान संस्करण -डेड_स्ट्रिप -निर्भरता-फ़ाइल -dylib_file -डिलिंकर_इंस्टॉल_नाम
-स्वाभाविक -गतिशीललिब -निर्यात_प्रतीक_सूची -फ़ाइलसूची -फ्लैट_नामस्थान
-force_cpusubtype_ALL -force_flat_namespace -हेडरपैड_मैक्स_इंस्टॉल_नाम -आईफ्रेमवर्क
-इमेज_बेस -इस में -इंस्टॉल_नाम -निजी_बाहरी रखें -मल्टी_मॉड्यूल
-गुणा_परिभाषित -गुणा_परिभाषित_अप्रयुक्त -नोऑल_लोड
-नो_डेड_स्ट्रिप_इनिट्स_एंड_टर्म्स -नोफिक्स प्रीबाइंडिंग -नोमल्टीडेफ्स -नोप्रेबाइंड
-नोसेग्लिंकसंपादित करें -पेजेरो_साइज -प्रीबाइंड -prebind_all_twolevel_modules -निजी_बंडल
-read_only_relocs -सेक्टलाइन -सेक्टोबजेक्टप्रतीक -व्हायलोड -seg1addr -संप्रदाय बनाना
-सेक्टोबजेक्टप्रतीक -सेक्टर -सेगद्रो -segs_read_only_addr -segs_read_write_addr
-seg_addr_table -seg_addr_table_filename -सेग्लिंकसंपादित करें -सेगप्रोट -segs_read_only_addr
-segs_read_write_addr -एकल_मॉड्यूल स्थैतिक -उप_लाइब्रेरी -उप_छाता
-दोस्तर_नाम स्थान -छतरी -अपरिभाषित -unexported_symbols_list
-कमजोर_संदर्भ_बेमेल -व्हाट्सलोडेड -F -गुस्ड -गफुल -mmacosx-संस्करण-मिनट=संस्करण
-मकर्नेल -मोन-बाइट-बूल

दिसम्बर अल्फा ऑप्शंस -मनो-एफपी-रेग्स -एमसॉफ्ट-फ्लोट -माल्फा-अस -मगास -मीई
-मिई-साथ-अचूक -मी-अनुरूपक -एमएफपी-ट्रैप-मोड =मोड -एमएफपी-राउंडिंग-मोड =मोड
-mtrap-सटीक =मोड -एमबिल्ड-स्थिरांक -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमबीडब्ल्यूएक्स -एममैक्स
-एमफिक्स -एमसीएक्स -मफ्लोट-वैक्स -मफ्लोट-आईईईई -मेक्सप्लिसिट-रिलोक्स -एमएसस्मॉल-डेटा -मिलर्ज-डेटा
-एमएसस्मॉल-पाठ -मलर्ज-पाठ -मेमरी-विलंबता =पहर

दिसम्बर अल्फा/वीएमएस ऑप्शंस -एमवीएमएस-रिटर्न-कोड्स -एमडीबग-मुख्य =उपसर्ग -mmalloc64

FR30 ऑप्शंस -एमएसस्मॉल-मॉडल -मनो-लसिम

FRV ऑप्शंस -एमजीपीआर-32 -एमजीपीआर-64 -एमएफपीआर-32 -एमएफपीआर-64 -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट
-मॉलोक-सीसी -एमफिक्स्ड-सीसी -एमडीवर्ड -मनो-डवर्ड -मडबल -मनो-डबल -मिमीडिया -मनो-मीडिया
-ममुलद्द -मनो-मुलद्द -एमएफडीपीआईसी -मिनलाइन-पीएलटी -एमजीप्रेल-आरओई -मल्टीलिब-लाइब्रेरी-तस्वीर
-mlinked-एफपी -मलॉन्ग-कॉल -दुर्भावनापूर्ण-लेबल -पुस्तकालय-तस्वीर -मैक-4 -मैक-8 -एमपीक
-मनो-पैक -मनो-फ्लैग्स -mcond-चाल -मनो-कंड-मूव -मोप्टिमाइज-सदस्य
-mno-अनुकूलन-सदस्य -एमएससीसी -मनो-एससीसी -mcond-कार्यकारी -मनो-कंड-निष्पादन -मवलीव-शाखा
-मनो-वलीव-शाखा -एममल्टी-कंड-निष्पादन -मनो-मल्टी-कंड-निष्पादन -मनेस्टेड-कंड-निष्पादन
-मनो-नेस्टेड-कंड-निष्पादन -mtomcat-आँकड़े -एमटीएलएस -एमटीएलएसओ -एमसीपीयू =सीपीयू

ग्नू / लिनक्स ऑप्शंस -एमजीलिबसी -म्यूक्लिबक -मबायोनिक -मैंड्रॉइड -tno-एंड्रॉइड-सीसी -tno-एंड्रॉइड-एलडी

H8 / 300 ऑप्शंस -मेरेलैक्स -मह -एमएस -एमएन -मिंट32 -मैलिग्न-300

एचपीपीए ऑप्शंस -मार्च=वास्तुकला-प्रकार -एमबिग-स्विच -mdisable-fpregs
-mdisable-अनुक्रमण -mfast-अप्रत्यक्ष-कॉल -मगास -एमजीएनयू-एलडी -एमएचपी-एलडी
-मफिक्स्ड-रेंज =रजिस्टर-रेंज -एमजंप-इन-देरी -मलिंकर-ऑप्ट -मलॉन्ग-कॉल
-मलॉन्ग-लोड-स्टोर -मनो-बिग-स्विच -मनो-अक्षम-fpregs -मनो-अक्षम-अनुक्रमण
-मनो-फास्ट-अप्रत्यक्ष-कॉल -मनो-गैस -मनो-कूद-इन-देरी -मनो-लॉन्ग-लोड-स्टोर
-मनो-पोर्टेबल-रनटाइम -मनो-सॉफ्ट-फ्लोट -एमनो-स्पेस-रेज -एमसॉफ्ट-फ्लोट -एमपीए-रिस्क-1-0
-एमपीए-रिस्क-1-1 -एमपीए-रिस्क-2-0 -पोर्टेबल-रनटाइम -एमएसशेड्यूल=सीपीयू प्रकार -mspace-regs
-एमएसआईओ -म्व्सियो -मुनिक्स =यूनिक्स-एसटीडी -नोलिब्डल्ड स्थैतिक -धागे

i386 और x86-64 ऑप्शंस -मट्यून =सीपीयू प्रकार -मार्च=सीपीयू प्रकार -एमएफपीमठ=इकाई -मासम =बोली
-मनो-फैंसी-गणित-387 -मनो-एफपी-रिट-इन-387 -एमसॉफ्ट-फ्लोट -मनो-वाइड-गुणा -एमआरटीडी
-मैलिग्न-डबल -mpreferred-ढेर-सीमा =संख्या -मिनकमिंग-स्टैक-सीमा =संख्या -एमसीएलडी
-एमसीएक्स16 -मसाहफी -ममोवबे -एमसीआरसी32 -मरेसिप -मरेसिप =चुनना -मवज़ेरुपर -mprefer-avx128 -एमएमएमएक्स
-एमएसएसई -एमएसएसई2 -एमएसएसई3 -एमएसएसएसई3 -एमएसएसई4.1 -एमएसएसई4.2 -एमएसएसई4 -मावक्स -मावएक्स2 -मासे -एमपीसीएलमुल
-एमएफएसजीएसबेस -एमआरडीआरएनडी -एमएफ16सी -एमएफएमए -एमएसएसई4ए -m3dnow -एमपीओपीसीएनटी -मबम -एमबीएमआई -एमटीबीएम -एमएफएमए4
-मक्सोप -एमएलजेडसीएनटी -एमबीएमआई2 -एमएलडब्ल्यूपी -मथ्रेड्स -मनो-संरेखण-स्ट्रिंगोप्स -मिनलाइन-ऑल-स्ट्रिंगॉप्स
-मिनलाइन-स्ट्रिंगोप्स-गतिशील रूप से -मस्ट्रिंगॉप-रणनीति =ALG -मपुश-आर्ग्स
-संकुचित-आउटगोइंग-आर्ग्स -एम 128 बिट-लॉन्ग-डबल -एम 96 बिट-लॉन्ग-डबल -मृगपर्म =संख्या
-मसेरेगपार्म -मवेक्लिबाबी=टाइप -mvect8-रिट-इन-मेम -एमपीसी32 -एमपीसी64 -एमपीसी80 -mstackrealign
-मोमित-पत्ती-फ्रेम-सूचक -मनो-रेड-ज़ोन -मनो-टीएलएस-डायरेक्ट-सेग-रेफ्स -एमसीमॉडल=कोड-मॉडल
-माबी=नाम -मैड्रेस-मोड =मोड -एम 32 -एम 64 -एमएक्स32 -मिलर्ज-डेटा-दहलीज =संख्या -एमएसई2एवीएक्स
-मफेंट्री -m8bit-idiv -mavx256-विभाजन-असंरेखित-लोड -mavx256-विभाजन-असंरेखित-स्टोर

i386 और x86-64 Windows ऑप्शंस -एमकंसोल -मसीगविन -मनो-साइगविन -एमडीएल
-मनोप-मज़ा-dllimport -मथ्रेड -मुनिकोड -एमविन32 -एमविंडो -फनो-सेट-स्टैक-निष्पादन योग्य

IA-64 ऑप्शंस -मबिग-एंडियन -थोड़ा-एंडियन -मग्नू-के रूप में -एमजीएनयू-एलडी -मनो-पिक
-अस्थिर-एएसएम-रोक -मजिस्टर-नाम -एमएसडेटा -मनो-एसडीटा -मकॉन्स्टेंट-जीपी -मोटो-तस्वीर
-मफ्यूज्ड-मैड -मिनलाइन-फ्लोट-डिवाइड-मिन-लेटेंसी -मिनलाइन-फ्लोट-डिवाइड-मैक्स-थ्रूपुट
-मनो-इनलाइन-फ्लोट-डिवाइड -मिनलाइन-इंट-डिवाइड-मिन-लेटेंसी
-मिनलाइन-इंट-डिवाइड-मैक्स-थ्रूपुट -मनो-इनलाइन-इंट-डिवाइड -मिनलाइन-वर्ग-मिनट-विलंबता
-मिनलाइन-वर्ग-अधिकतम-थ्रूपुट -मनो-इनलाइन-वर्ग -mdwarf2-asm -मायरली-स्टॉप-बिट्स
-मफिक्स्ड-रेंज =रजिस्टर-रेंज -एमटीएलएस-आकार =टीएलएस-आकार -मट्यून =सीपीयू प्रकार -मिलप32 -एमएलपी64
-msched-br-डेटा-कल्पना -msched-ar-डेटा-कल्पना -msched-नियंत्रण-कल्पना -मशेड-बीआर-इन-डेटा-कल्पना
-मशेड-एआर-इन-डेटा-कल्पना -मशेड-इन-कंट्रोल-स्पेक -msched-कल्पना-ldc
-msched-कल्पना-नियंत्रण-ldc -msched-वरीयता-गैर-डेटा-कल्पना-insns
-msched-पसंद-गैर-नियंत्रण-कल्पना-insns -मैशेड-स्टॉप-बिट्स-आफ्टर-हर-साइकल
-मशेड-गिनती-कल्पना-में-महत्वपूर्ण-पथ -एमएसएल-शेड्यूल-न-चेक-कंट्रोल-स्पेक
-msched-fp-mem-deps-शून्य-लागत -msched-अधिकतम-मेमोरी-इंस-हार्ड-लिमिट
-msched-अधिकतम-मेमोरी-इंसंस=मैक्स-इन्स

आईए-64/वीएमएस ऑप्शंस -एमवीएमएस-रिटर्न-कोड्स -एमडीबग-मुख्य =उपसर्ग -mmalloc64

LM32 ऑप्शंस -एमबैरल-शिफ्ट-सक्षम -mडिवाइड-सक्षम -mmultiply-सक्षम
-msign-विस्तार-सक्षम -म्यूजर-सक्षम

M32R/डी ऑप्शंस -एम32आर2 -एम32आरएक्स -एम32आर -एमडीबग -मैलिग्न-लूप -मनो-संरेखण-लूप
-मुद्दे-दर =संख्या - शाखा-लागत =संख्या -मॉडेल =कोड-आकार-मॉडल-प्रकार -एमएसडेटा =एसडीटा-
टाइप -मनो-फ्लश-फंक -एमफ्लश-फंक =नाम -मनो-फ्लश-ट्रैप -mflush-जाल=संख्या -G संख्या

M32C ऑप्शंस -एमसीपीयू =सीपीयू -मसिम -मेमरेग्स =संख्या

M680x0 ऑप्शंस -मार्च=मेहराब -एमसीपीयू =सीपीयू -मट्यून =धुन -एम 68000 -एम 68020 -एम68020-40
-एम68020-60 -एम 68030 -एम 68040 -एम 68060 -एमसीपीयू32 -एम 5200 -एम5206ई -m528x -एम 5307 -एम 5407
-एमसीएफवी4ई -एमबिटफ़ील्ड -मनो-बिटफ़ील्ड -एमसी68000 -एमसी68020 -मनोबिटफील्ड -एमआरटीडी -मनो-आरटीडी
-एमडीवी -मनो-डिव -मशॉर्ट -मनो-शॉर्ट -महार्ड-फ्लोट -एम 68881 -एमसॉफ्ट-फ्लोट -एमपीसीआरएल
-मालिग्न-इंट -मस्ट्रिक्ट-संरेखण -एमएसईपी-डेटा -मनो-सितंबर-डेटा -mshared-लाइब्रेरी-आईडी = n
-मिड-शेयर्ड-लाइब्रेरी -मनो-आईडी-साझा-लाइब्रेरी -मक्सगोट -मनो-एक्सगोट

एमकोर ऑप्शंस -महार्डलिट -मनो-हार्डलिट -एमडीवी -मनो-डिव -मेरेलैक्स-तत्काल
-मनो-आराम-तत्काल -मवाइड-बिटफ़ील्ड -मनो-वाइड-बिटफ़ील्ड -एम4बाइट-फ़ंक्शंस
-मनो-4बाइट-फ़ंक्शंस -मैकॉलग्राफ-डेटा -मनो-कॉलग्राफ-डेटा -एमएसलो-बाइट्स
-मनो-धीमी-बाइट्स -मनो-लसिम -थोड़ा-एंडियन -मबिग-एंडियन -एम 210 -एम 340
-मस्टैक-वृद्धि

एमईपी ऑप्शंस -मैब्सडिफ -मॉल-ऑप्ट्स -मावरेज -एमबेड =n -एमबीटॉप्स -एमसी =n -एमसीलिप
-एमकॉन्फिग =नाम -मकोप -एमसीओपी32 -एमसीओपी64 -एमआईवीसी2 -एमडीसी -एमडीवी -मेब -मेले -मियो-अस्थिर -एमएल
-मलेड्ज़ो -म -मिमिनमैक्स -मिमल -मनो-ऑप्स -मरेपीट -एमएस -मसतुर -एमएसड्राम -मसिम -मसिमनोवेक
-एमटीएफ -मिनी =n

माइक्रोब्लाज ऑप्शंस -एमसॉफ्ट-फ्लोट -महार्ड-फ्लोट -स्मॉल-डिवाइड -एमसीपीयू =सीपीयू -mmemcpy
-एमएक्सएल-सॉफ्ट-मुल -एमएक्सएल-सॉफ्ट-डिव -एमएक्सएल-बैरल-शिफ्ट -एमएक्सएल-पैटर्न-तुलना -एमएक्सएल-स्टैक-चेक
-एमएक्सएल-जीपी-ऑप्ट -मनो-क्लीयरबस -एमएक्सएल-गुणा-उच्च -एमएक्सएल-फ्लोट-कन्वर्ट -एमएक्सएल-फ्लोट-वर्ग
-एमएक्सएल-मोड-ऐप-मॉडल

एमआइपी ऑप्शंस हैं El -ईबी -मार्च=मेहराब -मट्यून =मेहराब -मिप्स1 -मिप्स2 -मिप्स3 -मिप्स4
-मिप्स32 -मिप्स32r2 -मिप्स64 -मिप्स64r2 -मिप्स16 -मनो-मिप्स16 -एमएफलिप-मिप्स16
-मिन्टरलिंक-मिप्स16 -मनो-इंटरलिंक-मिप्स16 -माबी=अबी -मैबिकल्स -मनो-एबिकल्स
-mshared -मनो-साझा -एमपीएलटी -मनो-पीएलटी -मक्सगोट -मनो-एक्सगोट -एमजीपी32 -एमजीपी64 -एमएफपी32
-एमएफपी64 -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट -एकल-फ्लोट -मडबल-फ्लोट -एमडीएसपी -मनो-डीएसपी
-एमडीएसपीआर2 -मनो-डीएसपीआर2 -एमएफपीयू=एफपीयू-प्रकार -एमएसमार्टमिप्स -मनो-स्मार्टमिप्स -युग्मित-एकल
-मनो-पेयर-सिंगल -एमडीएमएक्स -मनो-एमडीएमएक्स -मिप्स3डी -मनो-मिप्स3डी -एमएमटी -मनो-एमटी -एमएलएससी
-मनो-एलएलएससी -एमएलॉन्ग64 -एमएलॉन्ग32 -एमएसआईएम32 -मनो-सिम32 -Gसंख्या -मलोकल-एसडीटा
-मनो-लोकल-एसडीटा -मेक्सटर्न-एसडीटा -मनो-बाहरी-एसडीटा -एमजीपॉप्ट -मनो-गोप्टो -मेम्बेडेड-डेटा
-एमनो-एम्बेडेड-डेटा -मुनीनिट-कॉन्स्ट-इन-रोडाटा -मनो-यूनिट-कॉन्स्ट-इन-रोडाटा
-एमकोड-पठनीय =की स्थापना -एमएसप्लिट-पते -मनो-विभाजन-पते -मेक्सप्लिसिट-रिलोक्स
-मनो-स्पष्ट-रिलोक्स -एमचेक-शून्य-विभाजन -मनो-चेक-जीरो-डिवीजन -विभाजित-जाल
-विभाजित-विराम -mmemcpy -मनो-मेम्सीपी -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -एमएमएडी -मनो-मद
-मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -एनओसीपीपी -एमफिक्स-24k -मनो-फिक्स-24k -एमफिक्स-आर4000
-मनो-फिक्स-आर 4000 -एमफिक्स-आर4400 -मनो-फिक्स-आर 4400 -एमफिक्स-आर10000 -मनो-फिक्स-आर 10000 -एमफिक्स-वीआर4120
-मनो-फिक्स-vr4120 -एमफिक्स-वीआर4130 -मनो-फिक्स-vr4130 -एमफिक्स-एसबी1 -मनो-फिक्स-एसबी 1
-एमफ्लश-फंक =समारोह -मनो-फ्लश-फंक - शाखा-लागत =संख्या शाखा-संभावित
-मनो-शाखा-संभावित -एमएफपी-अपवाद -मनो-एफपी-अपवाद -mvr4130-संरेखण -mno-vr4130-संरेखण
-मसिंसी -मनो-सिंसी -मेरेलैक्स-तस्वीर-कॉल -मनो-आराम-तस्वीर-कॉल -mmकाउंट-आरए-पता

एमएमआईक्स ऑप्शंस -एमएलबीफनक्स -mno-libfuncs -मेप्सिलॉन -मनो-एप्सिलॉन -मबी = ग्नू
-मबी = मिमीिक्सवेयर -mzero-विस्तार -मकनुथदिव -mtoplevel-प्रतीकों -मेल्फ़ -शाखा-भविष्यवाणी
-मनो-शाखा-भविष्यवाणी -एमबेस-पते -मनो-आधार-पते -एकल-निकास
-मनो-एकल-निकास

MN10300 ऑप्शंस -मिमल-बग -मनो-मल्टी-बग -मनो-एम33 -Mam33 -Mam33-2 -Mam34 -मट्यून =सी पी यू-
टाइप -mreturn-सूचक-पर-d0 -मनो-सीआरटी0 -मेरेलैक्स -मिलीव -मसेटएलबी

पीडीपी -11 ऑप्शंस -एमएफपीयू -एमसॉफ्ट-फ्लोट -मैक0 -मनो-एसी0 -एम 40 -एम 45 -एम 10 -एमबीकॉपी
-एमबीकॉपी-बिलिन -मिंट32 -मनो-इंट16 -मिंट16 -मनो-इंट32 -एमफ्लोट32 -मनो-फ्लोट64
-एमफ्लोट64 -मनो-फ्लोट32 -मबशी -मनो-अब्शी -मशाखा-महंगा -मब्रांच-सस्ते
-मुनिक्स-एएसएम -एमडीईसी-एएसएम

पिकोचिप ऑप्शंस -माई =ae_type -मवलीव-लुकहेड =N -mप्रतीक-जैसा-पता
-मनो-अक्षम-चेतावनी

PowerPC ऑप्शंस आरएस/6000 और पावरपीसी विकल्प देखें।

RL78 ऑप्शंस -मसिम -mmul=कोई नहीं -एममूल = जी 13 -एमएमुल=आरएल78

रुपये / 6000 और PowerPC ऑप्शंस -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमसीमॉडल=कोड-मॉडल -मपावर
-मनो-पावर -एमपावर2 -मनो-पावर2 -एमपॉवरपीसी -एमपॉवरपीसी64 -एमनो-पावरपीसी -माल्टीवेसी
-मनो-altivec -एमपॉवरपीसी-जीपीओपीटी -मनो-पावरपीसी-जीपीओपीटी -एमपॉवरपीसी-जीएफएक्सऑप्ट -एमनो-पावरपीसी-जीएफएक्सओपीटी
-एमएमएफसीआरएफ -मनो-एमएफसीआरएफ -एमपीओपीसीएनटीबी -मनो-पॉपसीएनटीबी -एमपीओपीसीएनटीडी -मनो-पॉपसीएनटीडी -एमएफपीआरएनडी
-मनो-एफआरएनडी -एमसीएमपीबी -एमनो-सीएमपीबी -एमएमएफपीजीपीआर -मनो-एमएफपीजीपीआर -महार्ड-डीएफपी -मनो-हार्ड-डीएफपी
-नव-निमोनिक्स -मोल्ड-निमोनिक्स -एमफुल-टोक -मिमिनिमल-टोक -मनो-एफपी-इन-टोक
-मनो-सम-इन-टोक -एम 64 -एम 32 -mxl-compat -मनो-एक्सएल-संगत -एमपीई -घातक-शक्ति
-घातक-प्राकृतिक -एमसॉफ्ट-फ्लोट -महार्ड-फ्लोट -मिमल्टीपल -मनो-मल्टीपल -एकल-फ्लोट
-मडबल-फ्लोट -एमएससरल-एफपीयू -मस्ट्रिंग -मनो-स्ट्रिंग -मपडेट -मनो-अपडेट
-मावॉइड-अनुक्रमित-पते -मनो-बचें-अनुक्रमित-पते -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड
-एमबिट-संरेखण -मनो-बिट-संरेखण -मस्ट्रिक्ट-संरेखण -मनो-सख्त-संरेखण -मरिलोकेबल
-मनो-स्थानांतरणीय -mrelocatable-lib -mno-स्थानांतरित-lib -एमटीओसी -मनो-टोकसी -थोड़ा
-थोड़ा-एंडियन -मबिगो -मबिग-एंडियन -mगतिशील-नहीं-तस्वीर -माल्टीवेसी -मस्वदिव
-एकल-तस्वीर-आधार - प्राथमिकता-प्रतिबंधित-इन्स =प्राथमिकता
-मस्केड-महंगा-डिप =निर्भरता_प्रकार -मिन्सर्ट-शेड-एनओपीएस =योजना -एमकॉल-sysv
-एमकॉल-नेटबीएसडी -मैक्स-स्ट्रक्चर-रिटर्न -msvr4-संरचना-वापसी -माबी=अबी-प्रकार -मसिक्योर-पीएलटी
-एमबीएस-पीएलटी -मब्लॉक-चाल-इनलाइन-सीमा =संख्या -मिसेल -मनो-इसेल -मिसल = हाँ -मिसल = नहीं -एमएसपीई
-मनो-स्पे -एमएसपीई = हाँ -एमएसपीई = नहीं -युग्मित -मेजेन-सेल-माइक्रोकोड -मवार्न-सेल-माइक्रोकोड
-मवरसेव -मनो-वरसेव -ममुल्ह्वा -मनो-मुल्ह्वा -एमडीएलएमजेबी -मनो-dlmzb -एमफ्लोट-जीपीआरएस = हाँ
-एमफ्लोट-जीपीआरएस = नहीं -एमफ्लोट-जीपीआरएस = सिंगल -एमफ्लोट-जीपीआरएस = डबल -प्रोटोटाइप -मनो-प्रोटोटाइप
-मसिम -एमएमवीएमई -पागल -मयेलोनाइफ -मेम्ब -एमएसडेटा -एमएसडेटा =चुनना -एमवीएक्सवर्क्स -G संख्या
-पथ्रेड -मरेसिप -मरेसिप =चुनना -मनो-रेसिपी -मरेसिप-सटीक -मो-नुस्खा-सटीक
-मवेक्लिबाबी=टाइप -मफ़्रिज़ -मनो-फ़्रिज़ -एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
-मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस -msave-toc-अप्रत्यक्ष -मनो-सेव-टॉक-इनडायरेक्ट

RX ऑप्शंस -एम64बिट-डबल्स -एम32बिट-डबल्स -एफपीयू -नोफपु -एमसीपीयू = -एमबिग-एंडियन-डेटा
-थोड़ा-एंडियन-डेटा -एमएसस्मॉल-डेटा -मसिम -मनो-सिम -mas100-वाक्यविन्यास -mno-as100-वाक्यविन्यास
-मेरेलैक्स -एमएमएक्स-स्थिर-आकार = -मिंट-रजिस्टर= -एमपीआईडी -msave-ac-in-interrupts

एस / 390 और जेड सीरीज ऑप्शंस -मट्यून =सीपीयू प्रकार -मार्च=सीपीयू प्रकार -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट
-महार्ड-डीएफपी -मनो-हार्ड-डीएफपी -मलॉन्ग-डबल-64 -मलॉन्ग-डबल-128 -एमबैकचेन
-मनो-बैकचेन -पैक्ड-स्टैक -मनो-पैक-स्टैक -एमएसस्मॉल-निष्पादन -मनो-छोटा-निष्पादन
-एमएमवीसीएल -मनो-एमवीसीएल -एम 64 -एम 31 -एमडीबग -मनो-डीबग -मेसा -मज़ार्च -एमटीपीएफ-ट्रेस
-एमनो-टीपीएफ-ट्रेस -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -मवार्न-फ़्रेमसाइज़ -मवार्न-डायनामिकस्टैक
-मस्टैक-आकार -मस्टैक-गार्ड

स्कोर ऑप्शंस -मेब -मेले -मन्हव्लूप -मुल्स -एमएमएसी -एमएसकोर5 -मस्कोर5यू -एमएसकोर7 -एमएसकोर7डी

SH ऑप्शंस -एम 1 -एम 2 -एम2ई -एम2ए-नोफपु -m2a-एकल-केवल -m2a-एकल -एम2ए -एम 3 -एम3ई
-एम4-नोफपु -m4-एकल-केवल -एम 4-एकल -एम 4 -एम4ए-नोफपु -m4a-एकल-केवल -m4a-एकल
-एम4ए -m4al -एम5-64मीडिया -एम5-64मीडिया-नोफपु -एम5-32मीडिया -एम5-32मीडिया-नोफपु -एम5-कॉम्पैक्ट
-एम5-कॉम्पैक्ट-नोफपु -एमबी -एमएल -mdalign -मेरेलैक्स -मबिगटेबल -एमएफमोवडी -मिताची -मेरेनेसा
-मनो-रेनेसा -मनोमैकसेव -मीई -मनो-आईईईई -एमबीटॉप्स -मिसाइज़ -मिनलाइन-आईसी_अमान्य
-एमपीडस्ट्रक्ट -एमस्पेस -मप्रेफरगोट -मुसरमोड -मल्टीकॉस्ट =संख्या -एमडीवी =रणनीति
-mdivsi3_libfunc=नाम -मफिक्स्ड-रेंज =रजिस्टर-रेंज -पागल-समायोजित-अनरोल
-दिमागदार-संबोधन -मगेटरकॉस्ट =संख्या -एमपीटी-फिक्स्ड -संकुचित-आउटगोइंग-आर्ग्स
-मिनवैलिड-प्रतीक -एमसॉफ्ट-परमाणु - शाखा-लागत =संख्या -एमसीब्रांचडी -एमसीएमपीपीडी -मफ्यूज्ड-मैड
-व्याख्या-सीमूव

सोलारिस 2 ऑप्शंस -मिमप्योर-पाठ -मनो-अशुद्ध-पाठ -पथ्रेड -पथ्रेड

स्पार्क ऑप्शंस -एमसीपीयू =सीपीयू प्रकार -मट्यून =सीपीयू प्रकार -एमसीमॉडल=कोड-मॉडल -मेमरी-मॉडल =मेम-
आदर्श -एम 32 -एम 64 -मैप-regs -मनो-ऐप-regs -mfaster-structs -मनो-तेज़-संरचनाएं
-एमएफएलएटी -मनो-फ्लैट -एमएफपीयू -मनो-एफपीयू -महार्ड-फ्लोट -एमसॉफ्ट-फ्लोट -महार्ड-क्वाड-फ्लोट
-एमसॉफ्ट-क्वाड-फ्लोट -मस्टैक-पूर्वाग्रह -मनो-स्टैक-पूर्वाग्रह -मुनसंरेखित-युगल
-मनो-असंरेखित-युगल -एमवी8प्लस -मनो-वी8प्लस -मविसो -मनो-विज़ -एमविस2 -मनो-विज़2
-एमविस3 -मनो-विज़3 -एमएफएमएएफ -मनो-एफएमएफ़ -एमपीओपीसी -मनो-पॉपसी -एमफिक्स-एटी697एफ

एस पी यू ऑप्शंस -मवार्न-रिलोक -आतंक-स्थानांतरण -एमसेफ-डीएमए -मुंसेफ-डीएमए -एमब्रांच-संकेत
-एमएसस्मॉल-मेम -मिलर्ज-मेम -एमएसटीडीमेन -मफिक्स्ड-रेंज =रजिस्टर-रेंज -mea32 -mea64
-मैड्रेस-स्पेस-रूपांतरण -मनो-पता-स्थान-रूपांतरण -mcache-आकार =कैचे आकार
-परमाणु-अद्यतन -मनो-परमाणु-अद्यतन

प्रणाली V ऑप्शंस -क्यूयू -क्यूएन -वाईपी,पथ -यम,दीर

टाइल-जीएक्स ऑप्शंस -एमसीपीयू =सीपीयू -एम 32 -एम 64

टाइलप्रो ऑप्शंस -एमसीपीयू =सीपीयू -एम 32

V850 ऑप्शंस -मलॉन्ग-कॉल -मनो-लॉन्ग-कॉल -मेप -मनो-एपी -मप्रोलॉग-फ़ंक्शन
-मनो-प्रोलॉग-फ़ंक्शन -एमस्पेस -एमटीडीए=n -एमएसडीए=n -मज़्दा =n -मैप-regs -मनो-ऐप-regs
-mअक्षम-कॉलट -मनो-अक्षम-कॉल्ट -एमवी850ई2वी3 -एमवी850ई2 -एमवी850ई1 -mv850es -एमवी850ई
-एमवी850 -एमबिग-स्विच

वैक्स ऑप्शंस -एमजी -एमजीएनयू -मुनिक्स

वीएक्सवर्क्स ऑप्शंस -एमआरटीपी -गैर स्थैतिक -बस्टेटिक -बडायनामिक -Xbind-आलसी -Xbind-अब

x86-64 ऑप्शंस i386 और x86-64 विकल्प देखें।

तूफानी16 ऑप्शंस -मसिम

Xtensa ऑप्शंस -एमकॉन्स्ट16 -मनो-कॉन्स्ट 16 -मफ्यूज्ड-मैड -मनो-फ्यूज्ड-मैड -मफोर्स-नो-पिक
-mserialize-अस्थिर -मनो-क्रमबद्ध-अस्थिर -mtext-अनुभाग-शाब्दिक
-मनो-पाठ-अनुभाग-शाब्दिक -mलक्ष्य-संरेखण -मनो-लक्ष्य-संरेखण -मलॉन्गकॉल्स
-मनो-लॉन्गकॉल्स

जेड सीरीज ऑप्शंस S/390 और zSeries विकल्प देखें।

कोड पीढ़ी ऑप्शंस
-fcall-सेव्ड-REG -fcall-प्रयुक्त-REG -फिक्स्ड-REG अपवाद -फॉन-कॉल-अपवाद
-फनविंड-टेबल -फैसिंक्रोनस-अनविंड-टेबल्स -फिनहिबिट-आकार-निर्देश
-फिंस्ट्रमेंट-फ़ंक्शंस -फंस्ट्रमेंट-फ़ंक्शंस-बहिष्कृत-फ़ंक्शन-सूची =प्रतीक,प्रतीक, ...
-फिनस्ट्रुमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची =पट्टिका,पट्टिका, ... -फनो-कॉमन -फनो-पहचान
-एफपीसीसी-स्ट्रक्चर-रिटर्न -एफपीआईसी -एफपीआईसी -एफपीआई -एफपीआईई -फनो-जंप-टेबल -फ़्रेकॉर्ड-जीसीसी-स्विच
-फ्रेग-स्ट्रक्चर-रिटर्न -फशॉर्ट-एनम्स -फशॉर्ट-डबल -फशॉर्ट-वचार -fverbose-asm
-फपैक-स्ट्रक्चर[=n] -फस्टैक-चेक -फस्टैक-सीमा-रजिस्टर=REG -फस्टैक-सीमा-प्रतीक =प्रतीक
-फनो-स्टैक-लिमिट -फस्प्लिट-स्टैक -अग्रणी-अंडरस्कोर -एफटीएलएस-मॉडल =आदर्श -फ्ट्रैपवी
-fwrapv -फबाउंड्स-चेक -दृश्यता -फस्ट्रिक्ट-अस्थिर-बिटफील्ड्स

ऑप्शंस नियंत्रित करना la बच्चा of उत्पादन
संकलन में चार चरण शामिल हो सकते हैं: प्रीप्रोसेसिंग, संकलन उचित, असेंबली और
लिंकिंग, हमेशा उस क्रम में। जीसीसी कई प्रीप्रोसेसिंग और संकलन करने में सक्षम है
फाइलें या तो कई असेंबलर इनपुट फाइलों में, या एक असेंबलर इनपुट फाइल में; फिर
प्रत्येक असेंबलर इनपुट फ़ाइल एक ऑब्जेक्ट फ़ाइल उत्पन्न करती है, और लिंकिंग सभी ऑब्जेक्ट को जोड़ती है
फ़ाइलें (वे नए संकलित, और जो इनपुट के रूप में निर्दिष्ट हैं) एक निष्पादन योग्य फ़ाइल में।

किसी भी इनपुट फ़ाइल के लिए, फ़ाइल नाम प्रत्यय निर्धारित करता है कि किस प्रकार का संकलन है
किया हुआ:

पट्टिका.c
सी स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए।

पट्टिका.i
सी स्रोत कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिकाii
सी ++ स्रोत कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिका.m
उद्देश्य-सी स्रोत कोड। ध्यान दें कि आपको इसके साथ लिंक करना होगा libobjc पुस्तकालय बनाने के लिए
उद्देश्य-सी कार्यक्रम कार्य।

पट्टिका.एमआई
उद्देश्य-सी स्रोत कोड जिसे पहले से संसाधित नहीं किया जाना चाहिए।

पट्टिका.mm
पट्टिका.M
उद्देश्य-सी ++ स्रोत कोड। ध्यान दें कि आपको इसके साथ लिंक करना होगा libobjc बनाने के लिए पुस्तकालय
एक उद्देश्य-सी ++ प्रोग्राम काम करता है। ध्यान दें कि .M एक शाब्दिक राजधानी एम को संदर्भित करता है।

पट्टिका.एमआईआई
उद्देश्य-सी++ स्रोत कोड जिसे पूर्वसंसाधित नहीं किया जाना चाहिए।

पट्टिका.h
C, C++, Objective-C या Objective-C++ हेडर फाइल को प्रीकंपील्ड में बदलना होगा
हेडर (डिफ़ॉल्ट), या सी, सी ++ हेडर फ़ाइल को एडीए स्पेक में बदलना है (के माध्यम से)
-fdump-ada-कल्पना स्विच)।

पट्टिका. सीसी
पट्टिका.सीपी
पट्टिका.cxx
पट्टिकासीपीपी
पट्टिकासीपीपी
पट्टिका.सी++
पट्टिका.C
सी ++ स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए। ध्यान दें कि में .cxx, अंतिम दो अक्षर
दोनों का शाब्दिक होना चाहिए x। इसी तरह, .C एक शाब्दिक पूंजी सी को संदर्भित करता है।

पट्टिका.mm
पट्टिका.M
उद्देश्य-सी++ स्रोत कोड जिसे पहले से संसाधित किया जाना चाहिए।

पट्टिका.एमआईआई
उद्देश्य-सी++ स्रोत कोड जिसे पूर्वसंसाधित नहीं किया जाना चाहिए।

पट्टिकाएचएचएच
पट्टिका.H
पट्टिका.एचपी
पट्टिका.hxx
पट्टिका.hpp
पट्टिकाएचपीपी
पट्टिका.एच++
पट्टिका.टीसीसी
सी ++ हेडर फ़ाइल को प्रीकंपील्ड हेडर या एडीए स्पेक में बदलना है।

पट्टिका.f
पट्टिका।के लिये
पट्टिका.एफटीएन
फिक्स्ड फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिका.F
पट्टिका।के लिये
पट्टिकाएफपीपी
पट्टिकाएफपीपी
पट्टिकाएफटीएन
फिक्स्ड फॉर्म फोरट्रान स्रोत कोड जिसे प्रीप्रोसेस किया जाना चाहिए (पारंपरिक के साथ
प्रीप्रोसेसर)।

पट्टिका.f90
पट्टिका.f95
पट्टिका.f03
पट्टिका.f08
फ्री फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस नहीं किया जाना चाहिए।

पट्टिकाएफ90
पट्टिकाएफ95
पट्टिकाएफ03
पट्टिकाएफ08
फ्री फॉर्म फोरट्रान सोर्स कोड जिसे प्रीप्रोसेस किया जाना चाहिए (पारंपरिक के साथ)
प्रीप्रोसेसर)।

पट्टिका।जाओ
स्रोत कोड जाओ।

पट्टिका।विज्ञापन
एडीए स्रोत कोड फ़ाइल जिसमें एक पुस्तकालय इकाई घोषणा (एक की घोषणा) शामिल है
पैकेज, उपप्रोग्राम, या सामान्य, या एक सामान्य तात्कालिकता), या एक पुस्तकालय इकाई
नाम बदलने की घोषणा (एक पैकेज, सामान्य, या उपप्रोग्राम का नाम बदलने की घोषणा)। ऐसा
फ़ाइलें भी कहा जाता है ऐनक.

पट्टिका.दब
एडीए स्रोत कोड फ़ाइल जिसमें लाइब्रेरी यूनिट बॉडी (एक सबप्रोग्राम या पैकेज बॉडी) शामिल है।
ऐसी फाइलों को भी कहा जाता है शव.

पट्टिका.s
असेंबलर कोड।

पट्टिका.S
पट्टिका.sx
असेंबलर कोड जिसे प्रीप्रोसेस किया जाना चाहिए।

अन्य
एक ऑब्जेक्ट फ़ाइल को सीधे लिंकिंग में फीड किया जाना है। कोई भी फ़ाइल नाम जिसकी कोई पहचान नहीं है
प्रत्यय का व्यवहार इस प्रकार किया जाता है।

आप इनपुट भाषा को स्पष्ट रूप से निर्दिष्ट कर सकते हैं -x विकल्प:

-x भाषा
स्पष्ट रूप से निर्दिष्ट करें भाषा निम्नलिखित इनपुट फाइलों के लिए (बजाय
कंपाइलर फ़ाइल नाम प्रत्यय के आधार पर एक डिफ़ॉल्ट चुनें)। यह विकल्प सभी पर लागू होता है
अगले तक इनपुट फाइलों का पालन करना -x विकल्प। के लिए संभावित मान भाषा यह है:

सी सी-हेडर सीपीपी-आउटपुट
सी++ सी++-हेडर सी++-सीपीपी-आउटपुट
उद्देश्य-सी उद्देश्य-सी-शीर्षलेख उद्देश्य-सी-सीपीपी-आउटपुट
उद्देश्य-सी++ उद्देश्य-सी++-शीर्षलेख उद्देश्य-सी++-सीपीपी-आउटपुट
कोडांतरक-साथ-cpp
एडीए
f77 f77-cpp-इनपुट f95 f95-cpp-input
go
जावा

-x कोई नहीं
किसी भाषा के किसी भी विनिर्देश को बंद करें, ताकि बाद की फाइलों को संभाला जा सके
उनके फ़ाइल नाम प्रत्यय के अनुसार (जैसा कि वे if . हैं) -x बिल्कुल उपयोग नहीं किया गया है)।

-पास-निकास-कोड
आम तौर पर जीसीसी प्रोग्राम 1 के कोड के साथ बाहर निकल जाएगा यदि कंपाइलर का कोई चरण है
एक गैर-सफलता वापसी कोड देता है। यदि आप निर्दिष्ट करते हैं -पास-निकास-कोड, जीसीसी कार्यक्रम
इसके बजाय लौटाए गए किसी भी चरण द्वारा उत्पादित संख्यात्मक रूप से उच्चतम त्रुटि के साथ वापस आ जाएगा
एक त्रुटि संकेत। सी, सी ++, और फोरट्रान फ्रंटएंड 4 लौटाते हैं, यदि कोई आंतरिक
संकलक त्रुटि का सामना करना पड़ा है।

यदि आप केवल संकलन के कुछ चरणों को चाहते हैं, तो आप उपयोग कर सकते हैं -x (या फ़ाइल नाम प्रत्यय)
बताने के लिए जीसीसी कहां से शुरू करें, और विकल्पों में से एक -c, -Sया, -E कहने के लिए कहाँ जीसीसी करने के लिए है
विराम। ध्यान दें कि कुछ संयोजन (उदाहरण के लिए, -x सीपीपी-आउटपुट -E) निर्देश देना जीसीसी करना
कुछ भी नहीं।

-c स्रोत फ़ाइलों को संकलित या इकट्ठा करें, लेकिन लिंक न करें। लिंकिंग चरण बस है
नहीं किया। अंतिम आउटपुट प्रत्येक स्रोत फ़ाइल के लिए ऑब्जेक्ट फ़ाइल के रूप में होता है।

डिफ़ॉल्ट रूप से, स्रोत फ़ाइल के लिए ऑब्जेक्ट फ़ाइल नाम प्रत्यय को बदलकर बनाया जाता है .c,
.i, .s, आदि, साथ .o.

गैर-मान्यता प्राप्त इनपुट फ़ाइलें, जिन्हें संकलन या असेंबली की आवश्यकता नहीं है, को अनदेखा कर दिया जाता है।

-S संकलन के उचित चरण के बाद रुकें; इकट्ठा मत करो। आउटपुट में है
निर्दिष्ट प्रत्येक गैर-असेंबलर इनपुट फ़ाइल के लिए एक कोडांतरक कोड फ़ाइल का रूप।

डिफ़ॉल्ट रूप से, स्रोत फ़ाइल के लिए कोडांतरक फ़ाइल नाम प्रत्यय को बदलकर बनाया जाता है
.c, .i, आदि, साथ .s.

इनपुट फ़ाइलें जिन्हें संकलन की आवश्यकता नहीं है, उन्हें अनदेखा कर दिया जाता है।

-E प्रीप्रोसेसिंग चरण के बाद बंद करो; कंपाइलर को ठीक से न चलाएं। आउटपुट में है
प्रीप्रोसेस्ड सोर्स कोड का रूप, जो मानक आउटपुट को भेजा जाता है।

इनपुट फ़ाइलें जिन्हें प्रीप्रोसेसिंग की आवश्यकता नहीं होती है, उन्हें अनदेखा कर दिया जाता है।

-o पट्टिका
फ़ाइल में आउटपुट रखें पट्टिका. यह किसी भी प्रकार के आउटपुट की परवाह किए बिना लागू होता है
उत्पादित किया जा रहा है, चाहे वह एक निष्पादन योग्य फ़ाइल हो, एक ऑब्जेक्ट फ़ाइल, एक असेंबलर फ़ाइल या
प्रीप्रोसेस्ड सी कोड।

If -o निर्दिष्ट नहीं है, डिफ़ॉल्ट एक निष्पादन योग्य फ़ाइल डालना है ए.आउट, वस्तु
के लिए दर्ज स्रोत प्रत्यय in स्रोत.ओ, इसकी असेंबलर फ़ाइल in स्रोत.एस, एक पूर्वसंकलित
हेडर फ़ाइल में स्रोत.प्रत्यय.gch, और मानक आउटपुट पर सभी प्रीप्रोसेस्ड सी स्रोत।

-v के चरणों को चलाने के लिए निष्पादित कमांड (मानक त्रुटि आउटपुट पर) प्रिंट करें
संकलन साथ ही कंपाइलर ड्राइवर प्रोग्राम का वर्जन नंबर प्रिंट करें
प्रीप्रोसेसर और कंपाइलर उचित।

-###
पसंद -v सिवाय आदेशों को निष्पादित नहीं किया जाता है और तर्क तब तक उद्धृत किए जाते हैं जब तक कि वे
केवल अल्फ़ान्यूमेरिक वर्ण या "./-_" हों। यह शेल स्क्रिप्ट के लिए उपयोगी है
ड्राइवर-जनरेटेड कमांड लाइन कैप्चर करें।

-पाइप
के विभिन्न चरणों के बीच संचार के लिए अस्थायी फाइलों के बजाय पाइप का प्रयोग करें
संकलन यह कुछ सिस्टम पर काम करने में विफल रहता है जहां असेंबलर पढ़ने में असमर्थ है
एक पाइप से; लेकिन जीएनयू असेंबलर को कोई परेशानी नहीं है।

--मदद
द्वारा समझे गए कमांड-लाइन विकल्पों का विवरण (मानक आउटपुट पर) प्रिंट करें
जीसीसी। अगर -v विकल्प भी निर्दिष्ट है तो --मदद को भी पारित किया जाएगा
द्वारा लागू की गई विभिन्न प्रक्रियाएं जीसीसी, ताकि वे कमांड-लाइन विकल्प प्रदर्शित कर सकें
वे स्वीकार करते हैं। अगर -वेक्स्ट्रा विकल्प भी निर्दिष्ट किया गया है (इससे पहले --मदद
विकल्प), फिर कमांड-लाइन विकल्प जिनके साथ कोई दस्तावेज जुड़ा नहीं है
भी प्रदर्शित किया जाएगा।

--लक्ष्य-सहायता
(मानक आउटपुट पर) लक्ष्य-विशिष्ट कमांड-लाइन विकल्पों का विवरण प्रिंट करें
प्रत्येक उपकरण के लिए। कुछ लक्ष्यों के लिए अतिरिक्त लक्ष्य-विशिष्ट जानकारी भी हो सकती है
मुद्रित।

--सहायता = {कक्षा|[^]क्वालीफायर}[, ...]
द्वारा समझे गए कमांड-लाइन विकल्पों का विवरण (मानक आउटपुट पर) प्रिंट करें
कंपाइलर जो सभी निर्दिष्ट वर्गों और क्वालीफायर में फिट होता है। ये हैं
समर्थित वर्ग:

आशावादी
यह संकलक द्वारा समर्थित सभी अनुकूलन विकल्पों को प्रदर्शित करेगा।

चेतावनी
यह द्वारा उत्पादित चेतावनी संदेशों को नियंत्रित करने वाले सभी विकल्पों को प्रदर्शित करेगा
संकलक।

लक्ष्य
यह लक्ष्य-विशिष्ट विकल्प प्रदर्शित करेगा। से भिन्न --लक्ष्य-सहायता विकल्प
हालांकि, लिंकर और असेंबलर के लक्ष्य-विशिष्ट विकल्प नहीं होंगे
प्रदर्शित किया गया। ऐसा इसलिए है क्योंकि वे उपकरण वर्तमान में विस्तारित का समर्थन नहीं करते हैं
--सहायता= वाक्य - विन्यास।

पैरामीटर
यह द्वारा मान्यता प्राप्त मूल्यों को प्रदर्शित करेगा --परम विकल्प.

भाषा
यह इसके लिए समर्थित विकल्पों को प्रदर्शित करेगा भाषा, जहां भाषा नाम है
जीसीसी के इस संस्करण में समर्थित भाषाओं में से एक।

सामान्य
यह उन विकल्पों को प्रदर्शित करेगा जो सभी भाषाओं के लिए समान हैं।

ये समर्थित क्वालिफायर हैं:

गैर-दस्तावेजी
केवल उन्हीं विकल्पों को प्रदर्शित करें जो अनिर्दिष्ट हैं।

में शामिल हो गए
एक तर्क लेने के विकल्प प्रदर्शित करें जो समान चिह्न के बाद दिखाई देता है
पाठ का निरंतर टुकड़ा, जैसे: --सहायता = लक्ष्य.

अलग
एक तर्क लेने वाले विकल्प प्रदर्शित करें जो निम्नलिखित के बाद एक अलग शब्द के रूप में प्रकट होता है
मूल विकल्प, जैसे: -o निर्गम संचिका.

इस प्रकार उदाहरण के लिए समर्थित सभी गैर-दस्तावेज लक्ष्य-विशिष्ट स्विच प्रदर्शित करने के लिए
संकलक निम्नलिखित का उपयोग किया जा सकता है:

--सहायता = लक्ष्य, अनिर्दिष्ट

एक क्वालीफायर की भावना को इसके साथ उपसर्ग करके उलटा किया जा सकता है ^ चरित्र, इसलिए के लिए
उदाहरण सभी बाइनरी चेतावनी विकल्पों को प्रदर्शित करने के लिए (यानी, जो या तो चालू या बंद हैं
और वह तर्क नहीं लेता है) जिसका विवरण है, उपयोग करें:

--help=चेतावनी,^शामिल हुए,^अदस्तावेजीकृत

करने के लिए तर्क --सहायता= केवल उल्टे क्वालिफायर शामिल नहीं होने चाहिए।

कई वर्गों का संयोजन संभव है, हालांकि यह आमतौर पर आउटपुट को प्रतिबंधित करता है
इतना कि प्रदर्शित करने के लिए कुछ भी नहीं है। एक मामला जहां यह काम करता है, वह तब होता है जब
वर्गों में से एक है लक्ष्य. तो उदाहरण के लिए सभी लक्ष्य-विशिष्ट प्रदर्शित करने के लिए
अनुकूलन विकल्प निम्नलिखित का उपयोग किया जा सकता है:

--सहायता = लक्ष्य, अनुकूलक

RSI --सहायता= कमांड लाइन पर विकल्प दोहराया जा सकता है। प्रत्येक क्रमिक उपयोग होगा
विकल्पों के अपने अनुरोधित वर्ग को प्रदर्शित करें, जो पहले से ही हो चुके हैं उन्हें छोड़ दें
का प्रदर्शन किया।

अगर -Q से पहले कमांड लाइन पर विकल्प दिखाई देता है --सहायता= विकल्प, फिर
द्वारा प्रदर्शित वर्णनात्मक पाठ --सहायता= बदल गया है। प्रदर्शित का वर्णन करने के बजाय
विकल्प, एक संकेत दिया जाता है कि विकल्प सक्षम है, अक्षम है या सेट है
एक विशिष्ट मूल्य के लिए (यह मानते हुए कि संकलक इसे उस बिंदु पर जानता है जहां
--सहायता= विकल्प) का प्रयोग किया जाता है।

एआरएम पोर्ट से एक छोटा उदाहरण यहां दिया गया है जीसीसी:

% gcc -Q -mabi=2 --help=target -c
निम्नलिखित विकल्प लक्ष्य विशिष्ट हैं:
-मबी = 2
-मबॉर्ट-ऑन-नोरटर्न [अक्षम]
-मैप्स [अक्षम]

आउटपुट पिछले कमांड-लाइन विकल्पों के प्रभावों के प्रति संवेदनशील है, इसलिए के लिए
उदाहरण यह पता लगाना संभव है कि कौन से अनुकूलन सक्षम हैं -ओ३ का उपयोग करके:

-Q -O2 --help=ऑप्टिमाइज़र

वैकल्पिक रूप से आप खोज सकते हैं कि कौन से बाइनरी अनुकूलन सक्षम हैं -ओ३ का उपयोग करके:

gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
अंतर /tmp/O2-opts /tmp/O3-opts | जीआरपी सक्षम

-नो-कैनोनिकल-उपसर्ग
किसी भी प्रतीकात्मक लिंक का विस्तार न करें, संदर्भों को हल करें /../ or /./, या रास्ता बनाओ
एक सापेक्ष उपसर्ग उत्पन्न करते समय निरपेक्ष।

--संस्करण
लागू जीसीसी की संस्करण संख्या और कॉपीराइट प्रदर्शित करें।

-आवरण
एक रैपर प्रोग्राम के तहत सभी उप-आदेशों को आमंत्रित करें। रैपर प्रोग्राम का नाम और
इसके मापदंडों को अल्पविराम से अलग सूची के रूप में पारित किया जाता है।

gcc -c tc -wrapper gdb,--args

यह के सभी उपप्रोग्रामों को लागू करेगा जीसीसी के अंतर्गत जी.डी.बी. --आर्ग्स, इस प्रकार का आह्वान cc1
होगा जी.डी.बी. --आर्ग्स cc1 ....

-फ़्प्लगिन =नाम.so
फ़ाइल में प्लगइन कोड लोड करें नाम.so, द्वारा साझा की जाने वाली साझा वस्तु के रूप में माना जाता है
संकलक। साझा ऑब्जेक्ट फ़ाइल का मूल नाम प्लगइन की पहचान करने के लिए उपयोग किया जाता है
तर्क विश्लेषण के प्रयोजनों के लिए (देखें -फ्लूगिन-आर्ग-नाम-कुंजी=मूल्य नीचे)। प्रत्येक
प्लगइन को प्लगइन्स एपीआई में निर्दिष्ट कॉलबैक फ़ंक्शन को परिभाषित करना चाहिए।

-फ्लूगिन-आर्ग-नाम-कुंजी=मूल्य
एक तर्क को परिभाषित करें जिसे कहा जाता है कुंजी value के मान के साथ मूल्य प्लगइन के लिए कहा जाता है नाम.

-fdump-ada-कल्पना[-पतला]
सी और सी ++ स्रोत के लिए और फाइलों को शामिल करें, संबंधित एडीए चश्मा उत्पन्न करें।

-फडम्प-गो-स्पेक =पट्टिका
किसी भी भाषा में इनपुट फ़ाइलों के लिए, संबंधित गो डिक्लेरेशन जेनरेट करें पट्टिका। इस
गो "कॉन्स्ट", "टाइप", "var", और "func" घोषणाएं उत्पन्न करता है जो एक उपयोगी तरीका हो सकता है
किसी अन्य भाषा में लिखे गए कोड के लिए गो इंटरफ़ेस लिखना शुरू करने के लिए।

@पट्टिका
से कमांड-लाइन विकल्प पढ़ें पट्टिका. पढ़े गए विकल्पों को के स्थान पर सम्मिलित किया जाता है
मूल @पट्टिका विकल्प। अगर पट्टिका मौजूद नहीं है, या पढ़ा नहीं जा सकता है, तो विकल्प
शाब्दिक रूप से व्यवहार किया जाएगा, और हटाया नहीं जाएगा।

में विकल्प पट्टिका व्हाइटस्पेस द्वारा अलग किया जाता है। एक व्हाइटस्पेस वर्ण शामिल किया जा सकता है
एकल या दोहरे उद्धरण चिह्नों में संपूर्ण विकल्प को घेरकर एक विकल्प में। कोई भी
कैरेक्टर (बैकस्लैश सहित) को कैरेक्टर को बी . से प्रीफिक्स करके शामिल किया जा सकता है
बैकस्लैश के साथ शामिल है। NS पट्टिका स्वयं में अतिरिक्त @ हो सकता हैपट्टिका विकल्प; कोई भी
ऐसे विकल्पों को पुनरावर्ती रूप से संसाधित किया जाएगा।

संकलन सी + + प्रोग्राम्स
C++ स्रोत फ़ाइलें पारंपरिक रूप से किसी एक प्रत्यय का उपयोग करती हैं .C, . सीसी, सीपीपी, सीपीपी, .सी++, .सीपीया,
.cxx; C++ शीर्षलेख फ़ाइलें अक्सर उपयोग करती हैं एचएचएच, .hpp, .H, या (साझा टेम्पलेट कोड के लिए) .टीसीसी, और
पूर्वसंसाधित C++ फ़ाइलें प्रत्यय का उपयोग करती हैं ii. जीसीसी इन नामों वाली फाइलों को पहचानता है और
उन्हें सी ++ प्रोग्राम के रूप में संकलित करता है, भले ही आप कंपाइलर को उसी तरह से कॉल करें जैसे संकलन के लिए
सी प्रोग्राम (आमतौर पर नाम के साथ जीसीसी).

हालाँकि, का उपयोग जीसीसी सी ++ पुस्तकालय नहीं जोड़ता है। जी ++ एक प्रोग्राम है जो GCC को कॉल करता है और
व्यवहार करता है .c, .h और .i सी स्रोत फ़ाइलों के बजाय सी ++ स्रोत फ़ाइलों के रूप में फ़ाइलें जब तक -x is
उपयोग किया जाता है, और स्वचालित रूप से C++ लाइब्रेरी के विरुद्ध लिंकिंग निर्दिष्ट करता है। यह कार्यक्रम भी है
सी हेडर फ़ाइल को a . के साथ प्रीकंपाइल करते समय उपयोगी .h सी ++ संकलन में उपयोग के लिए विस्तार।
कई प्रणालियों पर, जी ++ नाम के साथ भी स्थापित है सी ++.

जब आप C++ प्रोग्राम संकलित करते हैं, तो आप कई समान कमांड-लाइन विकल्पों को निर्दिष्ट कर सकते हैं जो
आप किसी भी भाषा में प्रोग्राम संकलित करने के लिए उपयोग करते हैं; या कमांड-लाइन विकल्प C . के लिए सार्थक हैं
और संबंधित भाषाएं; या विकल्प जो केवल C++ प्रोग्राम के लिए अर्थपूर्ण हैं।

ऑप्शंस नियंत्रित करना C बोली
निम्नलिखित विकल्प सी की बोली को नियंत्रित करते हैं (या सी से प्राप्त भाषाएं, जैसे सी ++,
ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++) जिसे कंपाइलर स्वीकार करता है:

-अनसी
सी मोड में, यह बराबर है -एसटीडी = सी 90. सी ++ मोड में, यह बराबर है
-एसटीडी=सी++98.

यह GCC की कुछ विशेषताओं को बंद कर देता है जो ISO C90 के साथ असंगत हैं (जब
सी कोड संकलित करना), या मानक सी ++ (सी ++ कोड संकलित करते समय), जैसे "एएसएम" और
"टाइपोफ़" कीवर्ड, और "यूनिक्स" और "वैक्स" जैसे पूर्वनिर्धारित मैक्रोज़ जो निम्नलिखित की पहचान करते हैं
आप जिस प्रकार की प्रणाली का उपयोग कर रहे हैं। यह अवांछनीय और शायद ही कभी उपयोग किए जाने वाले आईएसओ को भी सक्षम बनाता है
ट्रिग्राफ सुविधा। सी कंपाइलर के लिए, यह सी ++ शैली की पहचान को अक्षम करता है //
टिप्पणियों के साथ-साथ "इनलाइन" कीवर्ड।

वैकल्पिक कीवर्ड "__asm__", "__extension__", "__inline__" और "__typeof__"
के बावजूद काम करना जारी रखें -अनसी. आप उन्हें ISO C प्रोग्राम में उपयोग नहीं करना चाहेंगे,
बेशक, लेकिन उन्हें हेडर फाइलों में रखना उपयोगी होता है जिन्हें इसमें शामिल किया जा सकता है
के साथ किया गया संकलन -अनसी. वैकल्पिक पूर्वनिर्धारित मैक्रोज़ जैसे "__unix__" और
"__vax__" साथ या बिना भी उपलब्ध हैं -अनसी.

RSI -अनसी विकल्प गैर-आईएसओ कार्यक्रमों को अनावश्यक रूप से अस्वीकार करने का कारण नहीं बनता है। के लिये
कि, पांडित्य के अतिरिक्त आवश्यक है -अनसी.

मैक्रो "__STRICT_ANSI__" पूर्वनिर्धारित होता है जब -अनसी विकल्प का प्रयोग किया जाता है। कुछ हेडर
फ़ाइलें इस मैक्रो को नोटिस कर सकती हैं और कुछ कार्यों को घोषित करने या परिभाषित करने से बचना चाहिए
कुछ मैक्रोज़ जिन्हें ISO मानक की आवश्यकता नहीं है; यह हस्तक्षेप से बचने के लिए है
किसी भी प्रोग्राम के साथ जो इन नामों का उपयोग अन्य चीजों के लिए कर सकता है।

ऐसे कार्य जो सामान्य रूप से निर्मित होते हैं लेकिन ISO C . द्वारा परिभाषित शब्दार्थ नहीं होते हैं
(जैसे "alloca" और "ffs") बिल्ट-इन फंक्शन नहीं होते हैं जब -अनसी प्रयोग किया जाता है।

-एसटीडी=
भाषा मानक निर्धारित करें। यह विकल्प वर्तमान में केवल तभी समर्थित है जब
सी या सी ++ संकलित करना।

कंपाइलर कई आधार मानकों को स्वीकार कर सकता है, जैसे c90 or सी++98, और GNU बोलियाँ
उन मानकों के, जैसे जीएनयू२३४ or जीएनयू++98. एक आधार मानक निर्दिष्ट करके,
कंपाइलर उस मानक का पालन करने वाले और जीएनयू का उपयोग करने वाले सभी कार्यक्रमों को स्वीकार करेगा
एक्सटेंशन जो इसका खंडन नहीं करते हैं। उदाहरण के लिए, -एसटीडी = सी 90 निश्चित बंद हो जाता है
GCC की विशेषताएं जो ISO C90 के साथ असंगत हैं, जैसे "asm" और "typeof"
कीवर्ड, लेकिन अन्य GNU एक्सटेंशन नहीं जिनका ISO C90 में कोई अर्थ नहीं है, जैसे
"?:" अभिव्यक्ति के मध्य पद को छोड़ना। दूसरी ओर, एक GNU निर्दिष्ट करके
एक मानक की बोली, सभी सुविधाएँ संकलक समर्थन सक्षम हैं, तब भी जब वे
सुविधाएँ आधार मानक और कुछ सख्त-अनुरूप कार्यक्रमों के अर्थ को बदल देती हैं
खारिज किया जा सकता है। विशेष मानक का उपयोग द्वारा किया जाता है पांडित्य किसकी पहचान करना
विशेषताएं जीएनयू एक्सटेंशन हैं जो मानक के उस संस्करण को देखते हैं। उदाहरण के लिए -एसटीडी = जीएनयू 90
पांडित्य सी ++ शैली के बारे में चेतावनी देगा // टिप्पणियाँ, जबकि -एसटीडी = जीएनयू 99 पांडित्य होगा
नहीं।

इस विकल्प के लिए एक मान प्रदान किया जाना चाहिए; संभावित मान हैं

c90
c89
आईएसओ 9899 1990: XNUMX
सभी ISO C90 प्रोग्रामों का समर्थन करें (कुछ GNU एक्सटेंशन जो ISO C90 के साथ विरोध करते हैं
अक्षम हैं)। के समान -अनसी सी कोड के लिए।

आईएसओ 9899 199409: XNUMX
आईएसओ C90 संशोधन 1 में संशोधित के रूप में।

c99
C9X
आईएसओ 9899 1999: XNUMX
आईएसओ9899:199x
आईएसओ सी 99। ध्यान दें कि यह मानक अभी तक पूरी तरह से समर्थित नहीं है; देख
<http://gcc.gnu.org/gcc-4.7/c99status.html> अधिक जानकारी के लिए। नाम C9X
और आईएसओ9899:199x पदावनत हैं।

c11
C1X
आईएसओ 9899 2011: XNUMX
ISO C11, ISO C मानक का 2011 का संशोधन। समर्थन अधूरा है और
प्रयोगात्मक। नाम C1X पदावनत किया गया है।

जीएनयू२३४
जीएनयू२३४
ISO C90 की GNU बोली (कुछ C99 सुविधाओं सहित)। यह C . के लिए डिफ़ॉल्ट है
कोड।

जीएनयू२३४
जीएनयू9एक्स
आईएसओ सी99 की जीएनयू बोली। जब ISO C99 को GCC में पूरी तरह से लागू कर दिया जाता है, तो यह होगा
डिफ़ॉल्ट बनें। नाम जीएनयू9एक्स पदावनत किया गया है।

जीएनयू२३४
जीएनयू1एक्स
ISO C11 की GNU बोली. समर्थन अधूरा और प्रयोगात्मक है। नाम जीएनयू1एक्स
पदावनत किया गया है।

सी++98
1998 ISO C++ मानक प्लस संशोधन। के समान -अनसी सी ++ कोड के लिए।

जीएनयू++98
जीएनयू की बोली -एसटीडी=सी++98. यह C++ कोड के लिए डिफ़ॉल्ट है।

सी++11
2011 आईएसओ सी ++ मानक प्लस संशोधन। C++11 के लिए समर्थन अभी भी है
प्रयोगात्मक, और भविष्य के रिलीज में असंगत तरीकों से बदल सकता है।

जीएनयू++11
जीएनयू की बोली -एसटीडी=सी++11. C++11 के लिए समर्थन अभी भी प्रायोगिक है, और बदल सकता है
भविष्य के रिलीज में असंगत तरीकों से।

-fgnu89-इनलाइन
विकल्प -fgnu89-इनलाइन GCC को "इनलाइन" के लिए पारंपरिक GNU शब्दार्थ का उपयोग करने के लिए कहता है
C99 मोड में होने पर कार्य करता है।
इस विकल्प को जीसीसी संस्करण 4.1.3 तक स्वीकार और अनदेखा कर दिया गया है लेकिन इसमें शामिल नहीं है
4.3. GCC संस्करण 4.3 और बाद में यह C99 मोड में GCC के व्यवहार को बदल देता है। का उपयोग करते हुए
यह विकल्प मोटे तौर पर "gnu_inline" फ़ंक्शन विशेषता को सभी में जोड़ने के बराबर है
इनलाइन फ़ंक्शन।

विकल्प -fno-gnu89-इनलाइन स्पष्ट रूप से GCC को C99 शब्दार्थ का उपयोग करने के लिए कहता है
"इनलाइन" जब सी 99 या जीएनयू 99 मोड में (यानी, यह डिफ़ॉल्ट व्यवहार निर्दिष्ट करता है)। इस
विकल्प को पहले जीसीसी 4.3 में समर्थित किया गया था। यह विकल्प समर्थित नहीं है -एसटीडी = सी 90 or
-एसटीडी = जीएनयू 90 मोड।

प्रीप्रोसेसर मैक्रोज़ "__GNUC_GNU_INLINE__" और "__GNUC_STDC_INLINE__" का उपयोग किया जा सकता है
यह जाँचने के लिए कि "इनलाइन" फ़ंक्शंस के लिए कौन से शब्दार्थ प्रभावी हैं।

-ऑक्स-जानकारी फ़ाइल का नाम
दिए गए फ़ाइल नाम के लिए आउटपुट घोषित सभी कार्यों के लिए प्रोटोटाइप घोषणाएं और/या
एक अनुवाद इकाई में परिभाषित किया गया है, जिसमें हेडर फाइलें भी शामिल हैं। यह विकल्प है
सी के अलावा किसी भी भाषा में चुपचाप नजरअंदाज कर दिया।

घोषणाओं के अलावा, फ़ाइल, टिप्पणियों में, प्रत्येक घोषणा के मूल को इंगित करती है
(स्रोत फ़ाइल और लाइन), क्या घोषणा निहित थी, प्रोटोटाइप थी या
अप्रमाणित (I, N नए or . के लिए O पुराने के लिए, क्रमशः, पहले वर्ण में के बाद
लाइन नंबर और कोलन), और क्या यह घोषणा या परिभाषा से आया है
(C or F, क्रमशः, निम्नलिखित वर्ण में)। समारोह के मामले में
परिभाषाएँ, तर्कों की एक K&R-शैली सूची, जिसके बाद उनकी घोषणाएँ होती हैं
प्रदान की गई, टिप्पणियों के अंदर, घोषणा के बाद।

-परती-पैरामीटर रहित-वैरिएडिक-फ़ंक्शंस
नामित पैरामीटर के बिना विविध कार्यों को स्वीकार करें।

हालांकि इस तरह के एक फ़ंक्शन को परिभाषित करना संभव है, यह बहुत उपयोगी नहीं है क्योंकि यह है
तर्कों को पढ़ना संभव नहीं है। यह केवल C के लिए समर्थित है क्योंकि यह निर्माण है
सी ++ द्वारा अनुमत।

-फनो-एएसएम
"asm", "inline" या "typeof" को एक कीवर्ड के रूप में न पहचानें, ताकि कोड इनका उपयोग कर सके
पहचानकर्ता के रूप में शब्द। आप कीवर्ड "__asm__", "__inline__" और . का उपयोग कर सकते हैं
इसके बजाय "__typeof__"। -अनसी का तात्पर्य -फनो-एएसएम.

C++ में, यह स्विच केवल "typeof" कीवर्ड को प्रभावित करता है, क्योंकि "asm" और "inline" हैं
मानक कीवर्ड। आप का उपयोग करना चाह सकते हैं -फनो-ग्नू-कीवर्ड इसके बजाय ध्वज, जिसमें है
एक ही प्रभाव। C99 मोड में (-एसटीडी = सी 99 or -एसटीडी = जीएनयू 99), यह स्विच केवल को प्रभावित करता है
"asm" और "typeof" कीवर्ड, क्योंकि "इनलाइन" ISO C99 में एक मानक कीवर्ड है।

-फनो-बिल्टिन
-फनो-बिल्टिन-समारोह
उन अंतर्निहित कार्यों को न पहचानें जो शुरू नहीं होते हैं __बिल्टिन_ उपसर्ग के रूप में।

जीसीसी आम तौर पर कुछ अंतर्निहित कार्यों को संभालने के लिए विशेष कोड उत्पन्न करता है
कुशलता से; उदाहरण के लिए, "alloca" के लिए कॉल एकल निर्देश बन सकते हैं जो
स्टैक को सीधे समायोजित करें, और "memcpy" पर कॉल इनलाइन कॉपी लूप बन सकते हैं। NS
परिणामी कोड अक्सर छोटा और तेज़ दोनों होता है, लेकिन चूंकि फ़ंक्शन कॉल नहीं करता है
लंबे समय तक ऐसे दिखाई देते हैं, आप उन कॉलों पर ब्रेकपॉइंट सेट नहीं कर सकते हैं, न ही आप बदल सकते हैं
एक अलग पुस्तकालय से जोड़कर कार्यों का व्यवहार। इसके अलावा, जब
किसी फ़ंक्शन को एक अंतर्निहित फ़ंक्शन के रूप में पहचाना जाता है, GCC उसके बारे में जानकारी का उपयोग कर सकता है
उस फ़ंक्शन पर कॉल के साथ समस्याओं के बारे में चेतावनी देने के लिए, या अधिक उत्पन्न करने के लिए कार्य करता है
कुशल कोड, भले ही परिणामी कोड में अभी भी उस फ़ंक्शन के लिए कॉल हों। के लिये
उदाहरण के साथ, चेतावनियां दी गई हैं -स्वरूप "प्रिंटफ" के लिए खराब कॉल के लिए, जब "प्रिंटफ" है
में बनाया गया है, और "strlen" वैश्विक स्मृति को संशोधित नहीं करने के लिए जाना जाता है।

उसके साथ -फनो-बिल्टिन-समारोह विकल्प केवल अंतर्निहित फ़ंक्शन समारोह अक्षम है।
समारोह से शुरू नहीं होना चाहिए __बिल्टिन_. यदि किसी फ़ंक्शन का नाम है जो अंतर्निहित नहीं है
GCC के इस संस्करण में, इस विकल्प पर ध्यान नहीं दिया जाता है। कोई संगत नहीं है
-फबिल्टिन-समारोह विकल्प; यदि आप अंतर्निर्मित कार्यों को चुनिंदा रूप से सक्षम करना चाहते हैं जब
का उपयोग -फनो-बिल्टिन or -फ्रीस्टैंडिंग, आप मैक्रो को परिभाषित कर सकते हैं जैसे:

# परिभाषित एब्स (एन) __builtin_abs ((एन))
# परिभाषित करें strcpy(d, s) __builtin_strcpy ((d), (s))

-फॉस्टेड
जोर दें कि संकलन एक होस्टेड वातावरण में होता है। यह संकेत करता है -फबिल्टिन.
एक होस्टेड वातावरण वह होता है जिसमें संपूर्ण मानक पुस्तकालय उपलब्ध होता है, और
जिसमें "मुख्य" में "int" का रिटर्न प्रकार होता है। उदाहरण लगभग सब कुछ हैं सिवाय a . के
गिरी यह बराबर है -फनो-फ्रीस्टैंडिंग.

-फ्रीस्टैंडिंग
जोर दें कि संकलन एक स्वतंत्र वातावरण में होता है। यह संकेत करता है
-फनो-बिल्टिन. एक स्वतंत्र वातावरण वह है जिसमें मानक पुस्तकालय नहीं हो सकता है
मौजूद है, और प्रोग्राम स्टार्टअप जरूरी नहीं कि "मुख्य" पर हो। सबसे स्पष्ट उदाहरण
एक ओएस कर्नेल है। यह बराबर है -फनो-होस्टेड.

-फोपेनएमपी
सी/सी++ में ओपनएमपी निर्देशों "#pragma omp" और फोरट्रान में "!$omp" को संभालने में सक्षम करें।
. -फोपेनएमपी निर्दिष्ट है, संकलक के अनुसार समानांतर कोड उत्पन्न करता है
ओपनएमपी एप्लीकेशन प्रोग्राम इंटरफेस v3.0http://www.openmp.org/>. इस विकल्प
का तात्पर्य -पथ्रेड, और इस प्रकार केवल उन लक्ष्यों पर समर्थित है जिनके पास समर्थन है
-पथ्रेड.

-फग्नू-टीएम
जब विकल्प -फग्नू-टीएम निर्दिष्ट है, संकलक Linux के लिए कोड उत्पन्न करेगा
इंटेल के वर्तमान ट्रांजेक्शनल मेमोरी एबीआई विनिर्देश दस्तावेज़ का संस्करण (संशोधन
1.1, 6 मई 2009)। यह एक प्रयोगात्मक विशेषता है जिसका इंटरफ़ेस बदल सकता है
जीसीसी के भविष्य के संस्करण, जैसा कि आधिकारिक विनिर्देश बदलता है। कृपया ध्यान दें कि नहीं
इस सुविधा के लिए सभी आर्किटेक्चर समर्थित हैं।

लेनदेन संबंधी स्मृति के लिए जीसीसी के समर्थन के बारे में अधिक जानकारी के लिए,

ध्यान दें कि लेनदेन संबंधी स्मृति सुविधा गैर-कॉल अपवादों के साथ समर्थित नहीं है
(-फॉन-कॉल-अपवाद).

-एफएमएस-एक्सटेंशन
Microsoft शीर्षलेख फ़ाइलों में प्रयुक्त कुछ गैर-मानक निर्माणों को स्वीकार करें।

सी ++ कोड में, यह संरचना में सदस्य नामों को पिछले प्रकारों के समान होने की अनुमति देता है
घोषणाएं

टाइपिफ़ इंट यूओडब्ल्यू;
संरचना एबीसी {
यूओओ यूओओ;
};

संरचनाओं और संघों में अज्ञात क्षेत्रों के कुछ मामलों को केवल इसके साथ ही स्वीकार किया जाता है
विकल्प.

-फप्लान9-एक्सटेंशन
योजना 9 कोड में प्रयुक्त कुछ गैर-मानक निर्माणों को स्वीकार करें।

यह सक्षम करता है -एफएमएस-एक्सटेंशन, अज्ञात के साथ संरचनाओं को पॉइंटर्स पास करने की अनुमति देता है
फ़ील्ड से फ़ंक्शंस जो फ़ील्ड के प्रकार के तत्वों के लिए पॉइंटर्स की अपेक्षा करते हैं, और
टाइपिफ़ का उपयोग करके घोषित अज्ञात फ़ील्ड का जिक्र करने की अनुमति देता है। यह केवल .... ही
सी के लिए समर्थित, सी ++ नहीं।

-ट्रिग्राफ
आईएसओ सी ट्रिग्राफ का समर्थन करें। NS -अनसी विकल्प (और -एसटीडी सख्त आईएसओ सी के लिए विकल्प
अनुरूपता) का तात्पर्य है -ट्रिग्राफ.

-नहीं-एकीकृत-सीपीपी
दो पास में एक संकलन करता है: प्रीप्रोसेसिंग और संकलन। यह विकल्प अनुमति देता है
एक उपयोगकर्ता ने "cc1", "cc1plus", या "cc1obj" के माध्यम से आपूर्ति की -B विकल्प। उपयोगकर्ता ने आपूर्ति की
संकलन चरण तब सामान्य के बाद एक अतिरिक्त प्रीप्रोसेसिंग चरण में जोड़ सकता है
प्रीप्रोसेसिंग लेकिन संकलन से पहले। डिफ़ॉल्ट रूप से एकीकृत cpp . का उपयोग करना है
(आंतरिक सीपीपी)

यदि "cc1", "cc1plus", और "cc1obj" को मर्ज कर दिया जाता है, तो इस विकल्प का अर्थ बदल जाएगा।

पारंपरिक
-पारंपरिक-सीपीपी
पूर्व में, इन विकल्पों के कारण GCC को एक पूर्व-मानक C कंपाइलर का अनुकरण करने का प्रयास करना पड़ा।
वे अब केवल के साथ समर्थित हैं -E स्विच। प्रीप्रोसेसर समर्थन करना जारी रखता है
एक पूर्व मानक मोड। विवरण के लिए जीएनयू सीपीपी मैनुअल देखें।

-fcond-बेमेल
दूसरे और तीसरे तर्कों में बेमेल प्रकारों के साथ सशर्त अभिव्यक्तियों की अनुमति दें।
ऐसी अभिव्यक्ति का मूल्य शून्य है। यह विकल्प C++ के लिए समर्थित नहीं है।

-सन-वेक्टर-रूपांतरण
तत्वों की भिन्न संख्या वाले वैक्टर के बीच निहित रूपांतरण की अनुमति दें और/या
असंगत तत्व प्रकार। नए कोड के लिए इस विकल्प का उपयोग नहीं किया जाना चाहिए।

-funsigned-char
प्रकार "चार" को अहस्ताक्षरित होने दें, जैसे "अहस्ताक्षरित चार"।

"चार" क्या होना चाहिए, इसके लिए प्रत्येक प्रकार की मशीन में डिफ़ॉल्ट होता है। यह या तो पसंद है
डिफ़ॉल्ट रूप से "हस्ताक्षरित चार" या डिफ़ॉल्ट रूप से "हस्ताक्षरित चार" की तरह।

आदर्श रूप से, एक पोर्टेबल प्रोग्राम को हमेशा "हस्ताक्षरित चार" या "अहस्ताक्षरित चार" का उपयोग करना चाहिए जब यह
किसी वस्तु के हस्ताक्षर पर निर्भर करता है। लेकिन उपयोग करने के लिए कई प्रोग्राम लिखे गए हैं
सादा "चार" और उम्मीद है कि इस पर हस्ताक्षर किए जाएंगे, या उम्मीद है कि यह हस्ताक्षरित होने की उम्मीद है,
जिन मशीनों के लिए वे लिखे गए थे। यह विकल्प, और इसका प्रतिलोम, आपको ऐसा बनाने देता है a
प्रोग्राम विपरीत डिफ़ॉल्ट के साथ काम करता है।

प्रकार "चार" हमेशा "हस्ताक्षरित चार" या "हस्ताक्षरित" में से प्रत्येक से एक अलग प्रकार होता है
char", भले ही इसका व्यवहार हमेशा उन दोनों में से एक जैसा ही हो।

-फसाइनड-चार
"चार" प्रकार पर हस्ताक्षर किए जाने दें, जैसे "हस्ताक्षरित चार"।

ध्यान दें कि यह बराबर है -फनो-अहस्ताक्षरित-चार, जो का नकारात्मक रूप है
-funsigned-char. इसी तरह, विकल्प -फनो-हस्ताक्षरित-चार के बराबर है
-funsigned-char.

-fsigned-बिटफील्ड्स
-फनसाइनड-बिटफील्ड्स
-फनो-हस्ताक्षरित-बिटफ़ील्ड
-फनो-अहस्ताक्षरित-बिटफ़ील्ड
ये विकल्प नियंत्रित करते हैं कि घोषणा के समय बिट-फ़ील्ड हस्ताक्षरित या अहस्ताक्षरित है या नहीं
या तो "हस्ताक्षरित" या "हस्ताक्षरित" का उपयोग नहीं करता है। डिफ़ॉल्ट रूप से, ऐसे बिट-फ़ील्ड पर हस्ताक्षर किए जाते हैं,
क्योंकि यह सुसंगत है: मूल पूर्णांक प्रकार जैसे "int" हस्ताक्षरित प्रकार हैं।

ऑप्शंस नियंत्रित करना सी + + बोली
यह खंड कमांड-लाइन विकल्पों का वर्णन करता है जो केवल C++ प्रोग्राम के लिए अर्थपूर्ण हैं;
लेकिन आप जीएनयू के अधिकांश कंपाइलर विकल्पों का भी उपयोग कर सकते हैं, भले ही आपकी भाषा कोई भी हो
कार्यक्रम में है। उदाहरण के लिए, आप "firstClass.C" फ़ाइल को इस तरह संकलित कर सकते हैं:

जी++ -जी -फ्रेपो -ओ -सी फर्स्टक्लास.सी

इस उदाहरण में, केवल -फ्रेपो एक विकल्प है जो केवल C++ प्रोग्राम के लिए है; आप का उपयोग कर सकते हैं
जीसीसी द्वारा समर्थित किसी भी भाषा के साथ अन्य विकल्प।

यहां उन विकल्पों की सूची दी गई है जो हैं केवल सी ++ प्रोग्राम संकलित करने के लिए:

-फैबी-संस्करण=n
संस्करण का प्रयोग करें n सी ++ एबीआई की। संस्करण 2 C++ ABI का संस्करण है जो पहले
जी ++ 3.4 में दिखाई दिया। संस्करण 1 सी ++ एबीआई का संस्करण है जो पहली बार में दिखाई दिया
जी ++ 3.2। संस्करण 0 हमेशा वह संस्करण होगा जो C++ के सबसे निकट के अनुरूप होगा
एबीआई विनिर्देश। इसलिए, संस्करण 0 का उपयोग करके प्राप्त एबीआई एबीआई के रूप में बदल जाएगा
बग फिक्स हैं।

डिफ़ॉल्ट संस्करण 2 है।

संस्करण 3 एक निरंतर पते को टेम्पलेट तर्क के रूप में प्रबंधित करने में त्रुटि को ठीक करता है।

संस्करण 4, जो पहली बार जी ++ 4.5 में दिखाई दिया, वेक्टर के लिए एक मानक मैंगलिंग लागू करता है
प्रकार के।

संस्करण 5, जो पहली बार G++ 4.6 में दिखाई दिया, विशेषता के प्रबंधन को ठीक करता है
फ़ंक्शन पॉइंटर प्रकारों पर कॉन्स्ट/अस्थिर, एक सादे decl की घोषणा, और a . का उपयोग
किसी अन्य पैरामीटर की घोषणा में फ़ंक्शन पैरामीटर।

संस्करण 6, जो पहली बार G++ 4.7 में प्रदर्शित हुआ, C++11 . के प्रचार व्यवहार को ठीक करता है
स्कोप्ड एनम और टेम्प्लेट तर्क पैक, कॉन्स्ट / स्टैटिक_कास्ट, उपसर्ग ++ . का प्रबंधन
और --, और टेम्पलेट तर्क के रूप में उपयोग किया जाने वाला क्लास स्कोप फ़ंक्शन।

यह भी देखें -वाबी.

-फनो-एक्सेस-कंट्रोल
सभी एक्सेस चेकिंग बंद करें। यह स्विच मुख्य रूप से बग के आसपास काम करने के लिए उपयोगी है
अभिगम नियंत्रण कोड।

-fcheck-नया
कोशिश करने से पहले जांचें कि "ऑपरेटर नया" द्वारा लौटाया गया सूचक गैर-शून्य है
आवंटित भंडारण को संशोधित करें। यह जाँच सामान्य रूप से अनावश्यक है क्योंकि C++
मानक निर्दिष्ट करता है कि "ऑपरेटर नया" घोषित होने पर केवल 0 लौटाएगा फेंकना(),
इस मामले में संकलक हमेशा इसके बिना भी वापसी मूल्य की जांच करेगा
विकल्प। अन्य सभी मामलों में, जब "ऑपरेटर नया" में एक गैर-रिक्त अपवाद होता है
विनिर्देश, स्मृति थकावट "std :: bad_alloc" फेंक कर संकेतित है। यह सभी देखें
नई (नोथ्रो).

-fconserve-space
अप्रारंभीकृत या रन-टाइम-आरंभिक वैश्विक चर को सामान्य खंड में रखें, जैसे
सी करता है। यह डुप्लिकेट का निदान न करने की कीमत पर निष्पादन योग्य में स्थान बचाता है
परिभाषाएं यदि आप इस ध्वज के साथ संकलन करते हैं और आपका प्रोग्राम रहस्यमय तरीके से क्रैश हो जाता है
"मुख्य ()" पूरा होने के बाद, आपके पास एक वस्तु हो सकती है जिसे दो बार नष्ट किया जा रहा है
क्योंकि दो परिभाषाओं को मिला दिया गया था।

यह विकल्प अब अधिकांश लक्ष्यों पर उपयोगी नहीं है, अब इसके लिए समर्थन जोड़ा गया है
बीएसएस में वेरिएबल को सामान्य किए बिना डालना।

-fconstexpr-गहराई=n
C++11 constexpr फ़ंक्शंस के लिए अधिकतम नेस्टेड मूल्यांकन गहराई सेट करें n. सीमा
निरंतर अभिव्यक्ति मूल्यांकन के दौरान अंतहीन रिकर्सन का पता लगाने के लिए आवश्यक है। NS
मानक द्वारा निर्दिष्ट न्यूनतम 512 है।

-fdeduce-init-list
एक ब्रेस से एक टेम्पलेट प्रकार पैरामीटर की कटौती को std::initializer_list के रूप में सक्षम करें-
संलग्न प्रारंभकर्ता सूची, अर्थात

टेम्पलेट ऑटो फॉरवर्ड (टी टी) -> डिक्लेटाइप (रियलएफएन (टी))
{
वास्तविक वापसी (टी);
}

शून्य च ()
{
फॉरवर्ड ({1,2}); // आगे बुलाना >
}

यह कटौती मूल रूप से प्रस्तावित . के संभावित विस्तार के रूप में लागू की गई थी
सी ++ 11 मानक के लिए शब्दार्थ, लेकिन अंतिम मानक का हिस्सा नहीं था, इसलिए यह है
डिफ़ॉल्ट रूप से अक्षम। यह विकल्प बहिष्कृत है, और भविष्य में इसे हटाया जा सकता है
जी ++ का संस्करण।

-दोस्त-इंजेक्शन
मित्र कार्यों को संलग्न नामस्थान में इंजेक्ट करें, ताकि वे बाहर दिखाई दें
जिस वर्ग में उन्हें घोषित किया गया है उसका दायरा। मित्र कार्यों का दस्तावेजीकरण किया गया
पुराने एनोटेट सी ++ संदर्भ मैनुअल में इस तरह से काम करने के लिए, और जी ++ के संस्करणों से पहले
4.1 हमेशा इसी तरह से काम करता था। हालाँकि, ISO C++ में एक मित्र फ़ंक्शन जो नहीं है
एक संलग्न दायरे में घोषित केवल तर्क निर्भर लुकअप का उपयोग करके पाया जा सकता है।
यह विकल्प मित्रों को इंजेक्शन लगाने का कारण बनता है क्योंकि वे पहले रिलीज़ में थे।

यह विकल्प संगतता के लिए है, और भविष्य में G++ के रिलीज़ में हटाया जा सकता है।

-फनो-एलिड-कंस्ट्रक्टर्स
सी ++ मानक एक कार्यान्वयन को अस्थायी बनाने की अनुमति देता है जो केवल है
उसी प्रकार के किसी अन्य ऑब्जेक्ट को प्रारंभ करने के लिए उपयोग किया जाता है। इस विकल्प को निर्दिष्ट करना अक्षम करता है
वह ऑप्टिमाइज़ेशन, और G++ को सभी मामलों में कॉपी कंस्ट्रक्टर को कॉल करने के लिए बाध्य करता है।

-फनो-एनफोर्स-एह-स्पेसिफिकेशंस
रन टाइम पर अपवाद विनिर्देशों के उल्लंघन की जांच के लिए कोड जनरेट न करें।
यह विकल्प C++ मानक का उल्लंघन करता है, लेकिन कोड आकार को कम करने के लिए उपयोगी हो सकता है
उत्पादन बनाता है, बहुत कुछ परिभाषित करने जैसा नेडबग. यह उपयोगकर्ता कोड की अनुमति नहीं देता है
अपवाद विनिर्देशों के उल्लंघन में अपवाद फेंकना; संकलक करेगा
अभी भी विनिर्देशों के आधार पर अनुकूलित करें, इसलिए एक अप्रत्याशित अपवाद फेंकना होगा
अपरिभाषित व्यवहार में परिणाम।

-फॉर-स्कोप
-फनो-फॉर-स्कोप
If -फॉर-स्कोप निर्दिष्ट किया गया है, a . में घोषित चर का दायरा फॉर-इनिट-स्टेटमेंट
तक सीमित है एसटी लूप ही, जैसा कि C++ मानक द्वारा निर्दिष्ट किया गया है। अगर
-फनो-फॉर-स्कोप निर्दिष्ट किया गया है, a . में घोषित चर का दायरा फॉर-इनिट-स्टेटमेंट
संलग्न दायरे के अंत तक फैली हुई है, जैसा कि जी ++ के पुराने संस्करणों में था, और
सी ++ के अन्य (पारंपरिक) कार्यान्वयन।

डिफ़ॉल्ट अगर मानक का पालन करने के लिए न तो ध्वज दिया जाता है, लेकिन अनुमति देने और देने के लिए a
पुरानी शैली के कोड के लिए चेतावनी जो अन्यथा अमान्य होगी, या अलग होगी
व्यवहार.

-फनो-ग्नू-कीवर्ड
"टाइपोफ़" को एक कीवर्ड के रूप में न पहचानें, ताकि कोड इस शब्द का उपयोग एक के रूप में कर सके
पहचानकर्ता। आप इसके बजाय "__typeof__" कीवर्ड का उपयोग कर सकते हैं। -अनसी का तात्पर्य
-फनो-ग्नू-कीवर्ड.

-फनो-अंतर्निहित-टेम्पलेट्स
गैर-इनलाइन टेम्पलेट्स के लिए कभी भी कोड का उत्सर्जन न करें, जो कि तत्काल रूप से निहित हैं (अर्थात by
उपयोग); केवल स्पष्ट तात्कालिकता के लिए कोड उत्सर्जित करें।

-फनो-अंतर्निहित-इनलाइन-टेम्पलेट्स
या तो इनलाइन टेम्पलेट्स के निहित तात्कालिकता के लिए कोड उत्सर्जित न करें। डिफ़ॉल्ट
इनलाइनों को अलग तरह से संभालना है ताकि ऑप्टिमाइज़ेशन के साथ और बिना कंपाइल किया जा सके
स्पष्ट तात्कालिकता के समान सेट की आवश्यकता है।

-फनो-कार्यान्वयन-इनलाइन्स
स्थान बचाने के लिए, द्वारा नियंत्रित इनलाइन कार्यों की आउट-ऑफ़-लाइन प्रतियों का उत्सर्जन न करें
#प्रैग्मा कार्यान्वयन. यह लिंकर त्रुटियों का कारण होगा यदि ये कार्य नहीं हैं
इनलाइन हर जगह उन्हें बुलाया जाता है।

-एफएमएस-एक्सटेंशन
एमएफसी में प्रयुक्त निर्माणों के बारे में पैडेंटिक चेतावनियां अक्षम करें, जैसे निहित int और
गैर-मानक सिंटैक्स के माध्यम से सदस्य फ़ंक्शन के लिए एक सूचक प्राप्त करना।

-फनो-नोनानसी-बिलिन्स
उन कार्यों की अंतर्निहित घोषणाओं को अक्षम करें जो एएनएसआई/आईएसओ सी द्वारा अनिवार्य नहीं हैं। ये
"ffs", "alloca", "_exit", "index", "bzero", "conjf", और अन्य संबंधित शामिल करें
कार्य करता है.

-फनोथ्रो-ऑप्ट
एक "फेंक ()" अपवाद विनिर्देश के साथ व्यवहार करें जैसे कि यह एक "निष्क्रिय" विनिर्देश था
बिना किसी अपवाद के किसी फ़ंक्शन के सापेक्ष टेक्स्ट आकार ओवरहेड को कम करने या समाप्त करने के लिए
विशिष्टता। यदि फ़ंक्शन में गैर-तुच्छ प्रकार के स्थानीय चर हैं
विध्वंसक, अपवाद विनिर्देश वास्तव में फ़ंक्शन को छोटा कर देगा
क्योंकि उन चरों के लिए EH क्लीनअप को दूर अनुकूलित किया जा सकता है। शब्दार्थ
प्रभाव यह है कि इस तरह के अपवाद के साथ किसी फ़ंक्शन से अपवाद को फेंक दिया जाता है
विनिर्देश के परिणामस्वरूप "अप्रत्याशित" के बजाय "समाप्त" करने के लिए कॉल किया जाएगा।

-फनो-ऑपरेटर-नाम
ऑपरेटर नाम कीवर्ड "और", "बिटैंड", "बिटर", "कॉम्प्ल", "नहीं", "या" का इलाज न करें
और "xor" कीवर्ड के समानार्थी के रूप में।

-फनो-वैकल्पिक-डायग्स
डायग्नोस्टिक्स को अक्षम करें कि मानक कहता है कि एक कंपाइलर को जारी करने की आवश्यकता नहीं है।
वर्तमान में, G++ द्वारा जारी किया गया एकमात्र ऐसा डायग्नोस्टिक है जिसका नाम है
एक वर्ग के भीतर कई अर्थ।

-फर्मिसिव
गैर-अनुरूपता कोड के बारे में कुछ निदानों को त्रुटियों से चेतावनियों में डाउनग्रेड करें। इस प्रकार,
का उपयोग -फर्मिसिव कुछ गैर-अनुरूपता कोड संकलित करने की अनुमति देगा।

-फनो-सुंदर-टेम्पलेट्स
जब कोई त्रुटि संदेश किसी फ़ंक्शन टेम्पलेट की विशेषज्ञता को संदर्भित करता है, तो कंपाइलर
सामान्य रूप से टेम्प्लेट के हस्ताक्षर प्रिंट करेगा जिसके बाद टेम्प्लेट तर्क होंगे
और हस्ताक्षर में कोई टाइपिफ़ या टाइपनाम (उदाहरण के लिए "शून्य एफ (टी) [टी = int के साथ]"
से "void f(int)") ताकि यह स्पष्ट हो जाए कि कौन सा टेम्प्लेट शामिल है। जब कोई त्रुटि
संदेश एक वर्ग टेम्पलेट की विशेषज्ञता को संदर्भित करता है, संकलक किसी को भी छोड़ देगा
टेम्प्लेट तर्क जो उस टेम्प्लेट के डिफ़ॉल्ट टेम्प्लेट तर्कों से मेल खाते हैं। अगर
इनमें से कोई भी व्यवहार त्रुटि संदेश को समझने के बजाय कठिन बना देता है
आसान, उपयोग करना -फनो-सुंदर-टेम्पलेट्स उन्हें निष्क्रिय कर देगा।

-फ्रेपो
लिंक समय पर स्वचालित टेम्पलेट इंस्टेंटेशन सक्षम करें। इस विकल्प का अर्थ यह भी है
-फनो-अंतर्निहित-टेम्पलेट्स.

-फनो-आरटीटीआई
द्वारा उपयोग के लिए आभासी कार्यों के साथ हर वर्ग के बारे में जानकारी की पीढ़ी को अक्षम करें
C++ रन-टाइम प्रकार की पहचान सुविधाएँ (डायनामिक_कास्ट और typeid) यदि आप नहीं
भाषा के उन हिस्सों का उपयोग करें, आप इस ध्वज का उपयोग करके कुछ स्थान बचा सकते हैं। ध्यान दें
वह अपवाद प्रबंधन समान जानकारी का उपयोग करता है, लेकिन यह इसे आवश्यकतानुसार उत्पन्न करेगा।
RSI डायनामिक_कास्ट ऑपरेटर का उपयोग अभी भी उन कास्ट के लिए किया जा सकता है जिन्हें रन-टाइम की आवश्यकता नहीं है
प्रकार की जानकारी, यानी "शून्य *" या स्पष्ट आधार वर्गों के लिए डाली जाती है।

-fstats
संकलन के अंत में फ्रंट-एंड प्रोसेसिंग के बारे में आंकड़े जारी करें। इस
जानकारी आम तौर पर केवल G++ विकास टीम के लिए उपयोगी होती है।

-फस्ट्रिक्ट-एनम्स
संकलक को इस धारणा का उपयोग करके अनुकूलित करने की अनुमति दें कि एन्यूमरेटेड प्रकार का मान
केवल गणना के मूल्यों में से एक हो सकता है (जैसा कि सी ++ मानक में परिभाषित किया गया है;
मूल रूप से, एक मान जिसे आवश्यक बिट्स की न्यूनतम संख्या में दर्शाया जा सकता है
सभी प्रगणकों का प्रतिनिधित्व करते हैं)। यदि प्रोग्राम उपयोग करता है तो यह धारणा मान्य नहीं हो सकती है
एक मनमाना पूर्णांक मान को प्रगणित प्रकार में बदलने के लिए एक कलाकार।

-फटेम्पलेट-गहराई =n
टेम्पलेट कक्षाओं के लिए अधिकतम तात्कालिकता गहराई सेट करें n. पर एक सीमा
टेम्प्लेट के दौरान अंतहीन पुनरावृत्ति का पता लगाने के लिए टेम्प्लेट इंस्टेंटेशन गहराई की आवश्यकता होती है
वर्ग तात्कालिकता। एएनएसआई/आईएसओ सी++ अनुरूप कार्यक्रमों को अधिकतम पर निर्भर नहीं होना चाहिए
17 से अधिक गहराई (C++1024 में 11 में परिवर्तित)। डिफ़ॉल्ट मान 900 है, जैसा कि
कुछ स्थितियों में 1024 मारने से पहले कंपाइलर स्टैक स्पेस से बाहर निकल सकता है।

-फनो-थ्रेडसेफ-स्टैटिक्स
थ्रेड के लिए C++ ABI में निर्दिष्ट रूटीन का उपयोग करने के लिए अतिरिक्त कोड का उत्सर्जन न करें-
स्थानीय स्टैटिक्स का सुरक्षित आरंभीकरण। कोड आकार को कम करने के लिए आप इस विकल्प का उपयोग कर सकते हैं
थोड़ा कोड में जिसे थ्रेड-सुरक्षित होने की आवश्यकता नहीं है।

-फ्यूज-सीएक्सए-एटेक्सिट
"__cxa_atexit" के साथ स्थिर भंडारण अवधि वाली वस्तुओं के लिए विनाशकों को पंजीकृत करें
"एटेक्सिट" फ़ंक्शन के बजाय फ़ंक्शन। यह विकल्प पूरी तरह से आवश्यक है
स्थिर विनाशकों के मानक-अनुरूप संचालन, लेकिन केवल तभी काम करेगा जब आपका C
पुस्तकालय "__cxa_atexit" का समर्थन करता है।

-फनो-यूज-सीएक्सए-गेट-अपवाद-पीटीआर
"__cxa_get_exception_ptr" रनटाइम रूटीन का उपयोग न करें। यह कारण होगा
"std::uncaught_exception" गलत है, लेकिन यह आवश्यक है यदि रनटाइम रूटीन है
उपलब्ध नहीं है।

-दृश्यता-इनलाइन्स-छिपा हुआ
यह स्विच घोषित करता है कि उपयोगकर्ता पॉइंटर्स को इनलाइन से तुलना करने का प्रयास नहीं करता है
कार्य या विधियाँ जहाँ दो कार्यों के पते अलग-अलग लिए गए थे
साझा की गई वस्तुएं।

इसका प्रभाव यह है कि जीसीसी इनलाइन विधियों को प्रभावी ढंग से चिह्नित कर सकता है
"__attribute__ ((दृश्यता ("छिपा हुआ")))" ताकि वे निर्यात में दिखाई न दें
एक डीएसओ की तालिका और डीएसओ के भीतर उपयोग किए जाने पर पीएलटी संकेत की आवश्यकता नहीं होती है।
इस विकल्प को सक्षम करने से DSO के लोड और लिंक समय पर नाटकीय प्रभाव पड़ सकता है क्योंकि यह
जब पुस्तकालय भारी हो जाता है तो गतिशील निर्यात तालिका के आकार को बड़े पैमाने पर कम कर देता है
टेम्पलेट्स का उपयोग।

इस स्विच का व्यवहार विधियों को छुपा के रूप में चिह्नित करने जैसा नहीं है
सीधे, क्योंकि यह फ़ंक्शन या कारण के लिए स्थानीय स्थिर चर को प्रभावित नहीं करता है
संकलक यह निष्कर्ष निकालने के लिए कि फ़ंक्शन केवल एक साझा ऑब्जेक्ट में परिभाषित किया गया है।

आप के प्रभाव को नकारने के लिए एक विधि को स्पष्ट रूप से दृश्यता के रूप में चिह्नित कर सकते हैं
उस विधि के लिए स्विच करें। उदाहरण के लिए, यदि आप पॉइंटर्स की तुलना a . से करना चाहते हैं
विशेष इनलाइन विधि, आप इसे डिफ़ॉल्ट दृश्यता के रूप में चिह्नित कर सकते हैं। चिह्नित करना
स्पष्ट दृश्यता के साथ संलग्न वर्ग का कोई प्रभाव नहीं पड़ेगा।

स्पष्ट रूप से तत्काल इनलाइन विधियां इस विकल्प से उनके जुड़ाव के रूप में अप्रभावित रहती हैं
अन्यथा साझा पुस्तकालय सीमा को पार कर सकता है।

-दृश्यता-एमएस-संगत
यह ध्वज GCC के C++ लिंकेज मॉडल को बनाने के लिए दृश्यता सेटिंग्स का उपयोग करने का प्रयास करता है
माइक्रोसॉफ्ट विजुअल स्टूडियो के साथ संगत।

ध्वज इन परिवर्तनों को GCC के लिंकेज मॉडल में करता है:

1. यह डिफ़ॉल्ट दृश्यता को "हिडन" पर सेट करता है, जैसे -दृश्यता = छिपा हुआ.

2. प्रकार, लेकिन उनके सदस्य नहीं, डिफ़ॉल्ट रूप से छिपे नहीं होते हैं।

3. स्पष्ट दृश्यता के बिना प्रकारों के लिए एक परिभाषा नियम में ढील दी गई है
विनिर्देश जो एक से अधिक अलग-अलग साझा किए गए ऑब्जेक्ट में परिभाषित हैं: वे
घोषणाओं की अनुमति है यदि उन्हें अनुमति दी गई होती जब यह विकल्प था
उपयोग नहीं किया।

नए कोड में इसका उपयोग करना बेहतर है -दृश्यता = छिपा हुआ और उन वर्गों को निर्यात करें जो हैं
बाहरी रूप से दिखाई देने का इरादा। दुर्भाग्य से कोड पर भरोसा करना संभव है,
शायद गलती से, विजुअल स्टूडियो व्यवहार पर।

इन परिवर्तनों के परिणामों में एक ही प्रकार के स्थिर डेटा सदस्य शामिल हैं
एक ही नाम के साथ लेकिन अलग-अलग साझा वस्तुओं में परिभाषित अलग होंगे, इसलिए
एक को बदलने से दूसरा नहीं बदलेगा; और यह कि सदस्यों को परिभाषित करने के लिए संकेत करता है
विभिन्न साझा वस्तुओं में समान की तुलना नहीं हो सकती है। जब यह झंडा दिया जाता है, तो यह होता है a
समान नाम वाले प्रकारों को अलग-अलग तरीके से परिभाषित करने के लिए ODR का उल्लंघन।

-फनो-कमजोर
कमजोर प्रतीक समर्थन का उपयोग न करें, भले ही वह लिंकर द्वारा प्रदान किया गया हो। डिफ़ॉल्ट रूप से, जी++
उपलब्ध होने पर कमजोर प्रतीकों का प्रयोग करेंगे। यह विकल्प केवल परीक्षण के लिए मौजूद है, और
अंतिम उपयोगकर्ताओं द्वारा उपयोग नहीं किया जाना चाहिए; इसका परिणाम निम्न कोड होगा और इसका कोई लाभ नहीं होगा।
इस विकल्प को G++ के भावी रिलीज़ में हटाया जा सकता है।

-नोस्टडिंक++
C++ के लिए विशिष्ट मानक निर्देशिकाओं में शीर्षलेख फ़ाइलों की खोज न करें, लेकिन करें
अभी भी अन्य मानक निर्देशिका खोजें। (इस विकल्प का उपयोग भवन बनाते समय किया जाता है
सी ++ लाइब्रेरी।)

इसके अलावा, इन अनुकूलन, चेतावनी और कोड जनरेशन विकल्पों के केवल अर्थ हैं
सी ++ कार्यक्रमों के लिए:

-फनो-डिफॉल्ट-इनलाइन
नही मानो इनलाइन एक वर्ग के दायरे में परिभाषित कार्यों के लिए।
ध्यान दें कि इन फ़ंक्शंस में इनलाइन फ़ंक्शंस जैसे लिंकेज होंगे; वे बस नहीं करेंगे
डिफ़ॉल्ट रूप से इनलाइन हो।

-वाबी (सी, ऑब्जेक्टिव-सी, सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब G++ कोड उत्पन्न करता है जो शायद विक्रेता-तटस्थ के साथ संगत नहीं है
सी ++ एबीआई। हालांकि ऐसे तमाम मामलों से आगाह करने की कोशिश की गई है, लेकिन हैं
शायद कुछ मामले जिनके बारे में चेतावनी नहीं दी गई है, भले ही G++ उत्पन्न कर रहा हो
असंगत कोड। ऐसे मामले भी हो सकते हैं जहां चेतावनियां उत्सर्जित की जाती हैं, भले ही
उत्पन्न होने वाला कोड संगत होगा।

यदि आप इसके बारे में चिंतित हैं तो इन चेतावनियों से बचने के लिए आपको अपना कोड फिर से लिखना चाहिए
तथ्य यह है कि जी ++ द्वारा उत्पन्न कोड बाइनरी द्वारा उत्पन्न कोड के साथ संगत नहीं हो सकता है
अन्य संकलक।

में ज्ञात असंगतताएं -फैबी-संस्करण = 2 (डिफ़ॉल्ट) में शामिल हैं:

· संदर्भ प्रकार के गैर-प्रकार के टेम्प्लेट पैरामीटर वाला एक टेम्प्लेट उलझा हुआ है
गलत तरीके से:

बाहरी इंट एन;
टेम्पलेट संरचना एस {};
शून्य एन (एस ) {2}

यह में तय है -फैबी-संस्करण = 3.

· "__attribute ((vector_size))" का उपयोग करके घोषित SIMD वेक्टर प्रकार a . में उलझे हुए हैं
गैर-मानक तरीका जो वैक्टर लेने वाले कार्यों को ओवरलोड करने की अनुमति नहीं देता है
विभिन्न आकारों के।

मैंगलिंग को बदल दिया गया है -फैबी-संस्करण = 4.

में ज्ञात असंगतताएं -फैबी-संस्करण = 1 शामिल हैं:

बिट-फ़ील्ड के लिए टेल-पैडिंग की गलत हैंडलिंग। G++ डेटा पैक करने का प्रयास कर सकता है
बेस क्लास के समान बाइट में। उदाहरण के लिए:

संरचना ए {वर्चुअल शून्य एफ (); इंट f1: 1; };
संरचना बी: सार्वजनिक ए {int f2: 1; };

इस स्थिति में, G++ "B::f2" को उसी बाइट में "A::f1" के रूप में रखेगा; अन्य संकलक
नहीं होगा। आप स्पष्ट रूप से "ए" को पैड करके इस समस्या से बच सकते हैं ताकि इसका आकार
आपके प्लेटफ़ॉर्म पर बाइट आकार का गुणक है; जो G++ और अन्य का कारण बनेगा
समान रूप से "बी" लेआउट के लिए कंपाइलर।

वर्चुअल बेस के लिए टेल-पैडिंग की गलत हैंडलिंग। जी ++ पूंछ का उपयोग नहीं करता है
वर्चुअल बेस बिछाते समय पैडिंग। उदाहरण के लिए:

संरचना ए {वर्चुअल शून्य एफ (); चार c1; };
संरचना बी {बी (); चार c2; };
संरचना सी: सार्वजनिक ए, सार्वजनिक आभासी बी {};

इस स्थिति में, G++ "B" को "A" के लिए टेल-पैडिंग में नहीं रखेगा; अन्य
संकलक करेंगे। आप स्पष्ट रूप से "ए" को पैड करके इस समस्या से बच सकते हैं ताकि इसका
size इसके संरेखण का एक गुणक है (आभासी आधार वर्गों की अनदेखी); वो होगा
जी ++ और अन्य कंपाइलर्स को समान रूप से "सी" लेआउट करने का कारण बनता है।

उनकी तुलना में अधिक घोषित चौड़ाई वाले बिट-फ़ील्ड का गलत संचालन
अंतर्निहित प्रकार, जब एक संघ में बिट-फ़ील्ड दिखाई देते हैं। उदाहरण के लिए:

यूनियन यू {इंट आई: 4096; };

यह मानते हुए कि "int" में 4096 बिट नहीं हैं, G++ संघ को बहुत छोटा कर देगा
"int" में बिट्स की संख्या से।

· खाली कक्षाओं को गलत ऑफसेट पर रखा जा सकता है। उदाहरण के लिए:

संरचना ए {};

संरचना बी {
ए ए;
आभासी शून्य एफ ();
};

संरचना सी: सार्वजनिक बी, सार्वजनिक ए {};

G++ "C" के "A" बेस क्लास को एक गैर-शून्य ऑफसेट पर रखेगा; इसे रखा जाना चाहिए
ऑफसेट जीरो पर। G++ गलती से मानता है कि "B" का "A" डेटा सदस्य है
पहले से ही ऑफसेट जीरो पर।

· टेम्प्लेट फ़ंक्शंस के नाम जिनके प्रकारों में "टाइपनाम" या टेम्प्लेट टेम्प्लेट शामिल हैं
मापदंडों को गलत तरीके से उलझाया जा सकता है।

टेम्पलेट
शून्य f(टाइपनाम Q::X) {}

टेम्पलेट कक्षा क्यू>
शून्य f(टाइपनाम Q ::एक्स) {}

इन टेम्प्लेट के इंस्टेंटेशन को गलत तरीके से मैनेज किया जा सकता है।

यह psABI से संबंधित परिवर्तनों की चेतावनी भी देता है। इस बिंदु पर ज्ञात psABI परिवर्तनों में शामिल हैं:

· SYSV/x86-64 के लिए, लॉन्ग डबल के साथ यूनियन पास करते समय, इसे पास करने के लिए बदल दिया जाता है
psABI में निर्दिष्ट मेमोरी। उदाहरण के लिए:

संघ यू {
लंबा डबल एलडी;
int i;
};

"यूनियन यू" हमेशा स्मृति में पारित किया जाएगा।

-Wctor-dtor-गोपनीयता (सी++ और ऑब्जेक्टिव-सी++ केवल)
जब कोई वर्ग अनुपयोगी लगता है तो चेतावनी दें क्योंकि उसमें सभी निर्माता या विध्वंसक हैं
वर्ग निजी हैं, और इसमें न तो मित्र हैं और न ही सार्वजनिक स्थैतिक सदस्य कार्य हैं।

-Wdelete-गैर-आभासी-dtor (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब हटाना वर्चुअल फ़ंक्शंस वाले वर्ग के उदाहरण को नष्ट करने के लिए उपयोग किया जाता है
और गैर आभासी विनाशक। व्युत्पन्न वर्ग के उदाहरण को हटाना असुरक्षित है
बेस क्लास में पॉइंटर के माध्यम से यदि बेस क्लास में वर्चुअल नहीं है
विनाशक यह चेतावनी द्वारा सक्षम की गई है -दीवार.

- सिकुड़ा हुआ (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी जब C++11 द्वारा प्रतिबंधित एक संकुचित रूपांतरण भीतर होता है { }, उदा

इंट आई = {2.2}; // त्रुटि: डबल से इंट तक सीमित करना

यह ध्वज शामिल है -दीवार और -Wc++11-संगत.

-std=c++11 के साथ, -नहीं-संकीर्ण मानक द्वारा आवश्यक निदान को दबा देता है।
ध्यान दें कि यह सुव्यवस्थित कोड के अर्थ को प्रभावित नहीं करता है; रूपांतरणों को कम करना
SFINAE संदर्भ में अभी भी गलत तरीके से बनाए गए माने जाते हैं।

-कोई अपवाद नहीं (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब कोई अपवाद-अभिव्यक्ति किसी फ़ंक्शन को कॉल करने के कारण असत्य का मूल्यांकन करती है
जिसमें गैर-फेंकने वाला अपवाद विनिर्देश नहीं है (यानी फेंकना() or बिना किसी अपवाद के)
लेकिन संकलक द्वारा कभी भी अपवाद नहीं फेंकने के लिए जाना जाता है।

-गैर-आभासी-dtor (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब किसी वर्ग में आभासी कार्य और सुलभ गैर-आभासी विनाशक हों,
किस मामले में यह संभव होगा लेकिन व्युत्पन्न वर्ग के उदाहरण को हटाना असुरक्षित होगा
बेस क्लास के लिए एक पॉइंटर के माध्यम से। यह चेतावनी भी सक्षम है यदि -वेफक++ is
निर्दिष्ट।

-वॉर्डर (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी जब कोड में दिए गए सदस्य प्रारंभकर्ताओं का क्रम क्रम से मेल नहीं खाता
जिसमें उन्हें निष्पादित किया जाना चाहिए। उदाहरण के लिए:

संरचना ए {
int i;
इंट जे;
ए (): जे (0), मैं (1) { }
};

कंपाइलर सदस्य प्रारंभकर्ताओं को इसके लिए पुनर्व्यवस्थित करेगा i और j मैच करना
इस आशय की चेतावनी देते हुए सदस्यों का घोषणा आदेश। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

निम्नलिखित -डब्ल्यू... विकल्प प्रभावित नहीं हैं -दीवार.

-वेफक++ (सी++ और ऑब्जेक्टिव-सी++ केवल)
स्कॉट मेयर्स से निम्नलिखित शैली दिशानिर्देशों के उल्लंघन के बारे में चेतावनी दें प्रभावी
सी ++, दूसरा संस्करण किताब:

· आइटम 11: के साथ कक्षाओं के लिए एक कॉपी कंस्ट्रक्टर और एक असाइनमेंट ऑपरेटर को परिभाषित करें
गतिशील रूप से आवंटित स्मृति।

· आइटम 12: कंस्ट्रक्टर्स में असाइनमेंट के लिए इनिशियलाइज़ेशन को प्राथमिकता दें।

· आइटम 14: बेस क्लास में डिस्ट्रक्टर्स को वर्चुअल बनाएं।

· आइटम 15: "ऑपरेटर =" को *इस का संदर्भ दें।

· आइटम 23: जब आपको कोई वस्तु वापस करनी हो तो किसी संदर्भ को वापस करने का प्रयास न करें।

स्कॉट मेयर्स से निम्नलिखित शैली दिशानिर्देशों के उल्लंघन के बारे में भी चेतावनी दें। अधिक
प्रभावी सी + + किताब:

· आइटम 6: वेतन वृद्धि और वेतन वृद्धि के उपसर्ग और पोस्टफिक्स रूपों के बीच अंतर करें
ऑपरेटरों।

· आइटम 7: "&&", "||", या "," को कभी भी ओवरलोड न करें।

इस विकल्प का चयन करते समय, ध्यान रखें कि मानक पुस्तकालय शीर्षलेख सभी का पालन नहीं करते हैं
इन दिशानिर्देशों में से; उपयोग ग्रेप -v उन चेतावनियों को फ़िल्टर करने के लिए।

-विस्ट्रिक्ट-नल-सेंटिनल (सी++ और ऑब्जेक्टिव-सी++ केवल)
प्रहरी के रूप में एक असंबद्ध "NULL" के उपयोग के बारे में भी चेतावनी दें। केवल संकलन करते समय
GCC यह एक मान्य प्रहरी है, क्योंकि "NULL" को "__null" के रूप में परिभाषित किया गया है। हालांकि यह एक शून्य है
सूचक स्थिरांक एक अशक्त सूचक नहीं है, यह गारंटी है कि यह a . के समान आकार का होगा
सूचक। लेकिन यह प्रयोग विभिन्न कंपाइलरों में पोर्टेबल नहीं है।

-नो-नॉन-टेम्प्लेट-मित्र (सी++ और ऑब्जेक्टिव-सी++ केवल)
जब टेम्पलेट के भीतर गैर-टेम्पलेट किए गए मित्र फ़ंक्शन घोषित किए जाते हैं तो चेतावनियां अक्षम करें।
G++ में स्पष्ट टेम्पलेट विनिर्देश समर्थन के आगमन के बाद से, यदि का नाम
दोस्त एक अयोग्य-आईडी है (यानी, मित्र फू (इंट)), C++ भाषा विनिर्देश
मांग करता है कि मित्र एक सामान्य, गैर-टेम्पलेट फ़ंक्शन को घोषित या परिभाषित करे। (अनुभाग
14.5.3)। G++ स्पष्ट विनिर्देश लागू करने से पहले, अयोग्य-आईडी हो सकते हैं
एक टेम्प्लेटाइज्ड फ़ंक्शन की एक विशेष विशेषज्ञता के रूप में व्याख्या की गई। क्योंकि यह
गैर-अनुरूप व्यवहार अब G++ के लिए डिफ़ॉल्ट व्यवहार नहीं है,
-गैर-टेम्पलेट-मित्र संभावित परेशानी के लिए संकलक को मौजूदा कोड की जांच करने की अनुमति देता है
स्पॉट और डिफ़ॉल्ट रूप से चालू है। इस नए कंपाइलर व्यवहार को बंद किया जा सकता है
-नो-नॉन-टेम्प्लेट-मित्र, जो अनुरूप संकलक कोड रखता है लेकिन अक्षम करता है
सहायक चेतावनी।

-वल्ड-स्टाइल-कास्ट (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि एक गैर-शून्य प्रकार में डाली गई पुरानी शैली (सी-शैली) का उपयोग सी ++ प्रोग्राम के भीतर किया जाता है।
नई शैली की कास्ट (डायनामिक_कास्ट, स्टेटिक_कास्ट, पुनर्व्याख्या_कास्ट, तथा const_cast) रहे
अनपेक्षित प्रभावों के प्रति कम संवेदनशील और खोजने में बहुत आसान।

-ववरलोडेड-वर्चुअल (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब कोई फ़ंक्शन घोषणा बेस क्लास से वर्चुअल फ़ंक्शंस छुपाती है। के लिये
उदाहरण, में:

संरचना ए {
आभासी शून्य एफ ();
};

संरचना बी: सार्वजनिक ए {
शून्य एफ (इंट);
};

"एफ" का "ए" वर्ग संस्करण "बी" में छिपा हुआ है, और कोड जैसे:

बी * बी;
बी-> एफ ();

संकलित करने में विफल रहेगा।

-Wno-pmf-रूपांतरण (सी++ और ऑब्जेक्टिव-सी++ केवल)
बाउंड पॉइंटर को सदस्य फ़ंक्शन में प्लेन में बदलने के लिए डायग्नोस्टिक को अक्षम करें
सूचक।

-Wsign-प्रोमो (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब अधिभार समाधान अहस्ताक्षरित या प्रगणित प्रकार से पदोन्नति का चयन करता है
एक हस्ताक्षरित प्रकार, एक ही आकार के एक अहस्ताक्षरित प्रकार के रूपांतरण पर। पहले का
जी ++ के संस्करण अहस्ताक्षरितता को संरक्षित करने का प्रयास करेंगे, लेकिन मानक अनिवार्य है
वर्तमान व्यवहार।

संरचना ए {
ऑपरेटर इंट ();
ए और ऑपरेटर = (इंट);
};

मुख्य ()
{
ए ए, बी;
ए = बी;
}

इस उदाहरण में, G++ डिफ़ॉल्ट को संश्लेषित करेगा A& ऑपरेटर = (स्थल ए&);, जबकि सामने
उपयोगकर्ता परिभाषित का उपयोग करेगा ऑपरेटर =.

ऑप्शंस नियंत्रित करना उद्देश्य सी और उद्देश्य-सी++ बोलियाँ
(नोट: यह मैनुअल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ भाषाओं का वर्णन नहीं करता है
खुद को।

यह खंड कमांड-लाइन विकल्पों का वर्णन करता है जो केवल उद्देश्य-सी के लिए सार्थक हैं
और ऑब्जेक्टिव-सी++ प्रोग्राम, लेकिन आप अधिकांश भाषा-स्वतंत्र जीएनयू का भी उपयोग कर सकते हैं
संकलक विकल्प। उदाहरण के लिए, आप "some_class.m" फ़ाइल को इस तरह संकलित कर सकते हैं:

जीसीसी-जी-फग्नू-रनटाइम-ओ-सी some_class.m

इस उदाहरण में, -फग्नू-रनटाइम केवल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ के लिए एक विकल्प है
कार्यक्रम; आप जीसीसी द्वारा समर्थित किसी भी भाषा के साथ अन्य विकल्पों का उपयोग कर सकते हैं।

ध्यान दें कि चूंकि उद्देश्य-सी सी भाषा का विस्तार है, उद्देश्य-सी संकलन
सी फ्रंट-एंड के लिए विशिष्ट विकल्पों का भी उपयोग कर सकते हैं (उदाहरण के लिए, -पारंपरिक)। इसी तरह,
उद्देश्य-सी ++ संकलन सी ++ - विशिष्ट विकल्पों का उपयोग कर सकते हैं (उदाहरण के लिए, -वाबी).

यहां उन विकल्पों की सूची दी गई है जो हैं केवल ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ को कंपाइल करने के लिए
कार्यक्रम:

-फकॉन्स्टेंट-स्ट्रिंग-क्लास =कक्षा का नाम
उपयोग कक्षा का नाम प्रत्येक शाब्दिक स्ट्रिंग के लिए तत्काल करने के लिए वर्ग के नाम के रूप में
सिंटैक्स "@"..."" के साथ निर्दिष्ट। डिफ़ॉल्ट वर्ग का नाम "NXConstantString" है यदि
GNU रनटाइम का उपयोग किया जा रहा है, और "NSConstantString" यदि NeXT रनटाइम किया जा रहा है
इस्तेमाल किया (नीचे देखें)। NS -fconstant-cfstrings विकल्प, यदि भी मौजूद है, को ओवरराइड कर देगा
-फकॉन्स्टेंट-स्ट्रिंग-क्लास सेटिंग और कारण "@"..."" अक्षर को स्थिर के रूप में रखा जाना चाहिए
कोरफाउंडेशन स्ट्रिंग्स।

-फग्नू-रनटाइम
मानक जीएनयू ऑब्जेक्टिव-सी रनटाइम के साथ संगत ऑब्जेक्ट कोड जेनरेट करें। यह है
अधिकांश प्रकार के सिस्टम के लिए डिफ़ॉल्ट।

-फनेक्स्ट-रनटाइम
नेक्स्ट रनटाइम के साथ संगत आउटपुट जेनरेट करें। यह नेक्स्ट-आधारित . के लिए डिफ़ॉल्ट है
डार्विन और मैक ओएस एक्स सहित सिस्टम। मैक्रो "__NEXT_RUNTIME__" पूर्वनिर्धारित है यदि
(और केवल अगर) इस विकल्प का उपयोग किया जाता है।

-फनो-शून्य-रिसीवर
मान लें कि सभी उद्देश्य-सी संदेश प्रेषण ("[रिसीवर संदेश: arg]") इसमें
अनुवाद इकाई सुनिश्चित करती है कि रिसीवर "शून्य" नहीं है। यह और अधिक के लिए अनुमति देता है
उपयोग किए जाने वाले रनटाइम में कुशल प्रवेश बिंदु। यह विकल्प केवल में उपलब्ध है
नेक्स्ट रनटाइम और एबीआई संस्करण 0 या 1 के साथ संयोजन।

-फोबजेसी-एबी-संस्करण =n
संस्करण का प्रयोग करें n चयनित रनटाइम के लिए Objective-C ABI का। यह विकल्प है
वर्तमान में केवल नेक्स्ट रनटाइम के लिए समर्थित है। उस स्थिति में, संस्करण 0 है
संपत्तियों और अन्य उद्देश्य-सी 32 . के समर्थन के बिना पारंपरिक (2.0-बिट) एबीआई
परिवर्धन। संस्करण 1 पारंपरिक (32-बिट) एबीआई गुणों के समर्थन के साथ है और
अन्य उद्देश्य-सी 2.0 परिवर्धन। संस्करण 2 आधुनिक (64-बिट) एबीआई है। अगर कुछ नहीं है
निर्दिष्ट, डिफ़ॉल्ट 0-बिट लक्ष्य मशीनों पर संस्करण 32 है, और 2-बिट पर संस्करण 64 है
लक्ष्य मशीनें।

-fobjc-कॉल-cxx-cdtors
प्रत्येक ऑब्जेक्टिव-सी क्लास के लिए, जांचें कि क्या इसका कोई इंस्टेंस वेरिएबल C++ ऑब्जेक्ट है
एक गैर-तुच्छ डिफ़ॉल्ट कन्स्ट्रक्टर के साथ। यदि हां, तो एक विशेष "- (आईडी) का संश्लेषण करें।
.cxx_construct" इंस्टेंस विधि जो किसी भी पर गैर-तुच्छ डिफ़ॉल्ट कंस्ट्रक्टर चलाएगी
ऐसे उदाहरण चर, क्रम में, और फिर "स्वयं" लौटाएं। इसी तरह, जाँच करें कि क्या कोई है
आवृत्ति चर एक गैर-तुच्छ विनाशक के साथ एक सी ++ ऑब्जेक्ट है, और यदि ऐसा है, तो संश्लेषित करें
एक विशेष "- (शून्य) .cxx_destruct" विधि जो ऐसे सभी डिफ़ॉल्ट विनाशकों को चलाएगी,
उल्टे क्रम में।

इस प्रकार उत्पन्न "- (id) .cxx_construct" और "- (void) .cxx_destruct" विधियाँ होंगी
केवल वर्तमान ऑब्जेक्टिव-सी क्लास में घोषित इंस्टेंस वेरिएबल्स पर काम करते हैं, और नहीं
जिन्हें सुपरक्लास से विरासत में मिला है। यह उद्देश्य-सी की जिम्मेदारी है
किसी वस्तु के वंशानुक्रम पदानुक्रम में ऐसी सभी विधियों को लागू करने के लिए रनटाइम। आईडी)
.cxx_construct" विधियों को एक नई वस्तु के तुरंत बाद रनटाइम द्वारा लागू किया जाएगा
उदाहरण आवंटित किया गया है; "- (शून्य) .cxx_destruct" विधियों को लागू किया जाएगा
रनटाइम से ठीक पहले ऑब्जेक्ट इंस्टेंस को हटा देता है।

इस लेखन के समय, मैक ओएस एक्स 10.4 पर केवल नेक्स्ट रनटाइम और बाद में इसके लिए समर्थन है
"- (आईडी) .cxx_construct" और "- (शून्य) .cxx_destruct" विधियों को लागू करना।

-फोबजेसी-प्रत्यक्ष-प्रेषण
संदेश प्रेषक को तेजी से कूदने की अनुमति दें। डार्विन पर यह के माध्यम से पूरा किया जाता है
कॉम पेज।

-फोबजेसी-अपवाद
ऑब्जेक्टिव-सी में स्ट्रक्चर्ड एक्सेप्शन हैंडलिंग के लिए सिंटैक्टिक सपोर्ट को सक्षम करें, जैसे
सी ++ और जावा द्वारा क्या पेश किया जाता है। उद्देश्य-सी . का उपयोग करने के लिए यह विकल्प आवश्यक है
कीवर्ड @try, @throw, @catch, @finally और @synchronized। यह विकल्प उपलब्ध है
जीएनयू रनटाइम और नेक्स्ट रनटाइम दोनों के साथ (लेकिन संयोजन के साथ उपलब्ध नहीं है
मैक ओएस एक्स 10.2 और इससे पहले के संस्करण पर नेक्स्ट रनटाइम)।

-फोबजेसी-जीसी
ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ प्रोग्राम में गारबेज कलेक्शन (जीसी) सक्षम करें। इस विकल्प
केवल NeXT रनटाइम के साथ उपलब्ध है; जीएनयू रनटाइम में एक अलग कचरा है
संग्रह कार्यान्वयन जिसके लिए विशेष संकलक झंडे की आवश्यकता नहीं है।

-फोबजेसी-निलचेक
एबीआई के संस्करण 2 के साथ नेक्स्ट रनटाइम के लिए, विधि में एक शून्य रिसीवर की जांच करें
वास्तविक विधि कॉल करने से पहले आमंत्रण। यह डिफ़ॉल्ट है और हो सकता है
अक्षम का उपयोग कर -फनो-ओबीजेसी-निलचेक. क्लास मेथड्स और सुपर कॉल्स को कभी चेक नहीं किया जाता है
शून्य के लिए इस तरह से कोई फर्क नहीं पड़ता कि यह ध्वज किस पर सेट है। वर्तमान में यह ध्वज करता है
कुछ भी नहीं जब GNU रनटाइम, या नेक्स्ट रनटाइम ABI के पुराने संस्करण का उपयोग किया जाता है।

-फोबजेसी-एसटीडी=ओबीजेसी1
ऑब्जेक्टिव-सी 1.0 के भाषा सिंटैक्स के अनुरूप, जीसीसी 4.0 द्वारा मान्यता प्राप्त भाषा।
यह केवल C/C++ भाषा में Objective-C परिवर्धन को प्रभावित करता है; यह प्रभावित नहीं करता है
सी/सी++ मानकों के अनुरूप, जिसे अलग सी/सी++ बोली द्वारा नियंत्रित किया जाता है
विकल्प झंडे। जब इस विकल्प का प्रयोग Objective-C या Objective-C++ के साथ किया जाता है
कंपाइलर, कोई भी ऑब्जेक्टिव-सी सिंटैक्स जिसे GCC 4.0 द्वारा मान्यता प्राप्त नहीं है, अस्वीकार कर दिया गया है। इस
उपयोगी है यदि आपको यह सुनिश्चित करने की आवश्यकता है कि आपका उद्देश्य-सी कोड संकलित किया जा सकता है
जीसीसी के पुराने संस्करण।

-फ्रीप्लेस-ओबीजेसी-क्लासेस
निर्देश देने वाले एक विशेष मार्कर का उत्सर्जन करें ld(1) परिणामी वस्तु में स्थिर रूप से लिंक नहीं करना
फ़ाइल, और अनुमति दें डाइल्ड(1) इसके बजाय इसे रन टाइम पर लोड करने के लिए। इसका उपयोग में किया जाता है
फिक्स-एंड-कंटिन्यू डिबगिंग मोड के साथ संयोजन, जहां ऑब्जेक्ट फ़ाइल in
प्रश्न को पुन: संकलित किया जा सकता है और कार्यक्रम के दौरान गतिशील रूप से पुनः लोड किया जा सकता है
निष्पादन, कार्यक्रम को पुनः आरंभ करने की आवश्यकता के बिना। वर्तमान में, फिक्स-एंड-
जारी रखें कार्यक्षमता केवल मैक पर नेक्स्ट रनटाइम के संयोजन के साथ उपलब्ध है
ओएस एक्स 10.3 और बाद में।

-फजीरो-लिंक
नेक्स्ट रनटाइम के लिए संकलन करते समय, कंपाइलर आमतौर पर कॉल को बदल देता है
"objc_getClass("...")" (जब कक्षा का नाम संकलन समय पर ज्ञात हो) के साथ
स्थिर वर्ग संदर्भ जो लोड समय पर प्रारंभ होते हैं, जो रन-टाइम में सुधार करते हैं
प्रदर्शन। निर्दिष्ट करना -फजीरो-लिंक झंडा इस व्यवहार और कारणों को दबा देता है
कॉल "objc_getClass("...")" को बनाए रखने के लिए। यह जीरो-लिंक में उपयोगी है
डिबगिंग मोड, क्योंकि यह अलग-अलग वर्ग के कार्यान्वयन को संशोधित करने की अनुमति देता है
कार्यक्रम निष्पादन के दौरान। GNU रनटाइम वर्तमान में हमेशा कॉल को बरकरार रखता है
"objc_get_class("...")" कमांड-लाइन विकल्पों की परवाह किए बिना।

-जेन-डिक्लेस
स्रोत फ़ाइल में देखे गए सभी वर्गों के लिए इंटरफ़ेस घोषणाओं को नाम की फ़ाइल में डंप करें
स्रोतनाम.decl.

-असाइन-अवरोध (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब भी कोई ऑब्जेक्टिव-सी असाइनमेंट गारबेज कलेक्टर द्वारा इंटरसेप्ट किया जा रहा हो।

-Wno-प्रोटोकॉल (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
यदि किसी वर्ग को प्रोटोकॉल लागू करने की घोषणा की जाती है, तो प्रत्येक विधि के लिए एक चेतावनी जारी की जाती है
प्रोटोकॉल में जो वर्ग द्वारा लागू नहीं किया जाता है। डिफ़ॉल्ट व्यवहार है
कक्षा में स्पष्ट रूप से लागू नहीं की गई प्रत्येक विधि के लिए चेतावनी जारी करें, भले ही a
विधि कार्यान्वयन सुपरक्लास से विरासत में मिला है। यदि आप का उपयोग करते हैं -Wno-प्रोटोकॉल
विकल्प है, तो सुपरक्लास से विरासत में मिली विधियों को लागू माना जाता है,
और उनके लिए कोई चेतावनी जारी नहीं की जाती है।

- चयनकर्ता (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि क्या एक ही चयनकर्ता के लिए विभिन्न प्रकार के कई तरीके पाए जाते हैं
संकलन अंतिम चरण में विधियों की सूची पर जाँच की जाती है
संकलन इसके अतिरिक्त, a . में प्रदर्शित होने वाले प्रत्येक चयनकर्ता के लिए एक जाँच की जाती है
"@selector(...)" एक्सप्रेशन, और उस चयनकर्ता के लिए एक संगत विधि रही है
संकलन के दौरान पाया गया। क्योंकि ये चेक केवल अंत में मेथड टेबल को स्कैन करते हैं
संकलन के अंतिम चरण में होने पर ये चेतावनियाँ उत्पन्न नहीं होती हैं
नहीं पहुंचा, उदाहरण के लिए क्योंकि संकलन के दौरान कोई त्रुटि पाई जाती है, या क्योंकि
-fsyntax-केवल विकल्प का प्रयोग किया जा रहा है।

- सख्त-चयनकर्ता-मैच (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि अलग-अलग तर्क और/या रिटर्न प्रकार वाले कई तरीके a . के लिए पाए जाते हैं
दिए गए चयनकर्ता को इस चयनकर्ता का उपयोग करके संदेश भेजने का प्रयास करते समय
"आईडी" या "कक्षा" टाइप करें। जब यह फ़्लैग बंद होता है (जो कि डिफ़ॉल्ट व्यवहार है), तो
संकलक ऐसी चेतावनियों को छोड़ देगा यदि कोई अंतर पाया जाता है जो उस प्रकार तक ही सीमित है
समान आकार और संरेखण साझा करें।

-वंडघोषित-चयनकर्ता (ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि "@selector(...)" एक अघोषित चयनकर्ता को संदर्भित करने वाला अभिव्यक्ति पाया जाता है। ए
चयनकर्ता को अघोषित माना जाता है यदि उस नाम के साथ कोई विधि पहले घोषित नहीं की गई है
"@selector(...)" एक्सप्रेशन, या तो स्पष्ट रूप से @interface या @protocol . में
घोषणा, या परोक्ष रूप से एक @कार्यान्वयन अनुभाग में। यह विकल्प हमेशा प्रदर्शन करता है
जैसे ही "@ चयनकर्ता (...)" अभिव्यक्ति मिलती है, इसकी जांच होती है, जबकि - चयनकर्ता केवल
संकलन के अंतिम चरण में इसकी जाँच करता है। यह कोडिंग को भी लागू करता है
शैली सम्मेलन है कि उपयोग किए जाने से पहले विधियों और चयनकर्ताओं को घोषित किया जाना चाहिए।

-प्रिंट-ओबीजेसी-रनटाइम-जानकारी
मूल्य द्वारा पारित सबसे बड़ी संरचना का वर्णन करने वाला सी हेडर जेनरेट करें, यदि कोई हो।

ऑप्शंस सेवा मेरे नियंत्रण नैदानिक संदेश फॉर्मेटिंग
परंपरागत रूप से, डायग्नोस्टिक संदेशों को आउटपुट डिवाइस की परवाह किए बिना स्वरूपित किया गया है
पहलू (जैसे इसकी चौड़ाई, ...) नीचे वर्णित विकल्पों का उपयोग नियंत्रित करने के लिए किया जा सकता है
डायग्नोस्टिक संदेश स्वरूपण एल्गोरिदम, उदाहरण के लिए प्रति पंक्ति कितने वर्ण, कितनी बार
स्रोत स्थान की जानकारी की सूचना दी जानी चाहिए। अभी, केवल C++ फ्रंट एंड ही कर सकता है
इन विकल्पों का सम्मान करें। हालांकि, निकट भविष्य में यह उम्मीद की जाती है कि शेष मोर्चा
सिरे उन्हें ठीक से पचा सकेंगे।

-fmessage-लंबाई=n
त्रुटि संदेशों को प्रारूपित करने का प्रयास करें ताकि वे लगभग . की तर्ज पर फ़िट हों n पात्र।
के लिए डिफ़ॉल्ट 72 वर्ण है जी ++ और 0 द्वारा समर्थित शेष सामने के सिरों के लिए
जीसीसी अगर n शून्य है, तो कोई लाइन-रैपिंग नहीं की जाएगी; प्रत्येक त्रुटि संदेश दिखाई देगा
एक ही लाइन पर।

-fdiagnostics-शो-स्थान=एक बार
केवल लाइन-रैपिंग मोड में सार्थक। नैदानिक ​​​​संदेश रिपोर्टर को निर्देश देता है
फेंकना एक बार स्रोत स्थान की जानकारी; यानी, यदि संदेश फिट होने के लिए बहुत लंबा है
एक भौतिक रेखा पर और लपेटा जाना है, स्रोत स्थान उत्सर्जित नहीं होगा
(उपसर्ग के रूप में) बार-बार, बाद की निरंतरता पंक्तियों में। यह है
डिफ़ॉल्ट व्यवहार।

-fdiagnostics-शो-स्थान=हर-पंक्ति
केवल लाइन-रैपिंग मोड में सार्थक। नैदानिक ​​​​संदेश रिपोर्टर को निर्देश देता है
भौतिक रेखाओं के लिए समान स्रोत स्थान की जानकारी (उपसर्ग के रूप में) उत्सर्जित करें जिसके परिणामस्वरूप
एक संदेश को तोड़ने की प्रक्रिया से जो एक पंक्ति में फिट होने के लिए बहुत लंबा है।

-फनो-डायग्नोस्टिक्स-शो-विकल्प
डिफ़ॉल्ट रूप से, उत्सर्जित प्रत्येक डायग्नोस्टिक में कमांड-लाइन विकल्प को इंगित करने वाला टेक्स्ट शामिल होता है
जो सीधे डायग्नोस्टिक को नियंत्रित करता है (यदि ऐसा विकल्प डायग्नोस्टिक के लिए जाना जाता है
मशीनरी)। निर्दिष्ट करना -फनो-डायग्नोस्टिक्स-शो-विकल्प झंडा दबा देता है कि
व्यवहार.

ऑप्शंस सेवा मेरे निवेदन or दबाने :
चेतावनियाँ नैदानिक ​​संदेश हैं जो उन निर्माणों की रिपोर्ट करते हैं जो स्वाभाविक रूप से नहीं हैं
गलत है लेकिन यह जोखिम भरा है या सुझाव है कि कोई त्रुटि हो सकती है।

निम्नलिखित भाषा-स्वतंत्र विकल्प विशिष्ट चेतावनियों को सक्षम नहीं करते हैं लेकिन नियंत्रित करते हैं
जीसीसी द्वारा निर्मित डायग्नोस्टिक्स के प्रकार।

-fsyntax-केवल
सिंटैक्स त्रुटियों के लिए कोड की जाँच करें, लेकिन इससे आगे कुछ भी न करें।

-फमैक्स-त्रुटियां =n
त्रुटि संदेशों की अधिकतम संख्या को सीमित करता है n, जिस बिंदु पर GCC बल्कि बेल आउट हो जाता है
स्रोत कोड को संसाधित करना जारी रखने का प्रयास करने के बजाय। अगर n 0 है (डिफ़ॉल्ट),
उत्पन्न त्रुटि संदेशों की संख्या की कोई सीमा नहीं है। अगर घातक-त्रुटियों भी है
निर्दिष्ट, तो घातक-त्रुटियों इस विकल्प पर वरीयता लेता है।

-w सभी चेतावनी संदेशों को रोकें।

-आतंक
सभी चेतावनियों को त्रुटियों में बनाओ।

-आतंक =
निर्दिष्ट चेतावनी को त्रुटि में बदलें। चेतावनी के लिए विनिर्देशक संलग्न है,
उदाहरण के लिये -आतंक = स्विच द्वारा नियंत्रित चेतावनियों को बदल देता है -स्विच त्रुटियों में।
यह स्विच नकारात्मक रूप लेता है, जिसका उपयोग नकारात्मक करने के लिए किया जाता है -आतंक विशिष्ट चेतावनियों के लिए,
उदाहरण के लिये -नो-त्रुटि = स्विच बनाता है -स्विच चेतावनियाँ त्रुटियाँ न हों, तब भी जब -आतंक
प्रभाव में है।

प्रत्येक नियंत्रणीय चेतावनी के लिए चेतावनी संदेश में वह विकल्प शामिल होता है जो नियंत्रित करता है
चेतावनी। उस विकल्प का उपयोग तब किया जा सकता है -आतंक = और -नो-त्रुटि = के रूप में वर्णित
ऊपर। (चेतावनी संदेश में विकल्प की छपाई का उपयोग करके अक्षम किया जा सकता है
-फनो-डायग्नोस्टिक्स-शो-विकल्प झंडा।)

ध्यान दें कि निर्दिष्ट करना -आतंक =foo स्वचालित रूप से तात्पर्य है -Wfoo. हालांकि, -नो-त्रुटि =foo
कुछ भी मतलब नहीं है।

घातक-त्रुटियों
यह विकल्प संकलक को पहली त्रुटि होने पर संकलन को रद्द करने का कारण बनता है
आगे त्रुटि संदेशों को जारी रखने और प्रिंट करने की कोशिश करने के बजाय।

आप शुरुआत के विकल्पों के साथ कई विशिष्ट चेतावनियों का अनुरोध कर सकते हैं -W, उदाहरण के लिए -विम्पलिसिट
निहित घोषणाओं पर चेतावनियों का अनुरोध करने के लिए। इनमें से प्रत्येक विशिष्ट चेतावनी विकल्प भी
शुरुआत एक नकारात्मक रूप है -नहीं- चेतावनियों को बंद करने के लिए; उदाहरण के लिए, -कोई निहित.
यह मैनुअल दो रूपों में से केवल एक को सूचीबद्ध करता है, जो भी डिफ़ॉल्ट नहीं है। आगे के लिए,
भाषा-विशिष्ट विकल्प भी देखें सी + + बोली ऑप्शंस और उद्देश्य सी और
उद्देश्य-सी++ बोली ऑप्शंस.

जब एक अपरिचित चेतावनी विकल्प का अनुरोध किया जाता है (उदाहरण के लिए, -अज्ञात-चेतावनी), जीसीसी उत्सर्जित करेगा
एक निदान जिसमें कहा गया है कि विकल्प पहचाना नहीं गया है। हालांकि, अगर -नहीं- रूप है
उपयोग किया जाता है, व्यवहार थोड़ा अलग होता है: इसके लिए कोई निदान नहीं तैयार किया जाएगा
-अज्ञात-चेतावनी जब तक कि अन्य डायग्नोस्टिक्स का उत्पादन नहीं किया जा रहा हो। यह के उपयोग की अनुमति देता है
नई -नहीं- पुराने संकलक के साथ विकल्प, लेकिन अगर कुछ गलत हो जाता है, तो संकलक चेतावनी देगा
कि एक अपरिचित विकल्प का उपयोग किया गया था।

पांडित्य
सख्त ISO C और ISO C++ द्वारा मांगी गई सभी चेतावनियों को जारी करें; उन सभी कार्यक्रमों को अस्वीकार करें जो
निषिद्ध एक्सटेंशन का उपयोग करें, और कुछ अन्य प्रोग्राम जो आईएसओ सी और आईएसओ का पालन नहीं करते हैं
सी ++। आईएसओ सी के लिए, किसी के द्वारा निर्दिष्ट आईएसओ सी मानक के संस्करण का अनुसरण करता है -एसटीडी
इस्तेमाल किया विकल्प।

मान्य ISO C और ISO C++ प्रोग्राम इस विकल्प के साथ या उसके बिना ठीक से संकलित होने चाहिए
(हालांकि कुछ दुर्लभ लोगों की आवश्यकता होगी -अनसी या एक -एसटीडी आवश्यक संस्करण निर्दिष्ट करने वाला विकल्प
आईएसओ सी)। हालांकि, इस विकल्प के बिना, कुछ GNU एक्सटेंशन और पारंपरिक C और
C++ सुविधाएँ भी समर्थित हैं। इस विकल्प के साथ, उन्हें अस्वीकार कर दिया जाता है।

पांडित्य वैकल्पिक खोजशब्दों के उपयोग के लिए चेतावनी संदेश नहीं देता है जिसका
नाम से शुरू और खत्म होते हैं __. अभिव्यक्ति में पांडित्य चेतावनी भी अक्षम हैं
जो "__extension__" का अनुसरण करता है। हालांकि, केवल सिस्टम हेडर फाइलों को ही इनका उपयोग करना चाहिए
बचने के मार्ग; आवेदन कार्यक्रमों से बचना चाहिए।

कुछ उपयोगकर्ता उपयोग करने का प्रयास करते हैं पांडित्य सख्त आईएसओ सी अनुरूपता के लिए कार्यक्रमों की जांच करने के लिए। वे
जल्द ही पता चलता है कि यह वह नहीं करता जो वे चाहते हैं: यह कुछ गैर-आईएसओ प्रथाओं को पाता है,
लेकिन सभी नहीं --- केवल वे जिनके लिए आईएसओ सी की आवश्यकता होती है एक निदान, और कुछ अन्य के लिए
जिसमें डायग्नोस्टिक्स जोड़े गए हैं।

आईएसओ सी के अनुरूप किसी भी विफलता की रिपोर्ट करने की सुविधा कुछ मामलों में उपयोगी हो सकती है,
लेकिन इसके लिए काफी अतिरिक्त काम की आवश्यकता होगी और यह काफी अलग होगा
पांडित्य. निकट भविष्य में इस तरह की सुविधा का समर्थन करने की हमारी कोई योजना नहीं है।

जहां मानक के साथ निर्दिष्ट किया गया है -एसटीडी C की GNU विस्तारित बोली का प्रतिनिधित्व करता है, जैसे
जीएनयू२३४ or जीएनयू२३४, एक संगत है आधार मानक, आईएसओ सी का संस्करण जिस पर
जीएनयू विस्तारित बोली आधारित है। से चेतावनियाँ पांडित्य दिए जाते हैं जहां वे हैं
आधार मानक द्वारा आवश्यक। (ऐसी चेतावनियां दिए जाने का कोई मतलब नहीं होगा
केवल उन विशेषताओं के लिए जो निर्दिष्ट GNU C बोली में नहीं हैं, क्योंकि परिभाषा के अनुसार GNU
सी की बोलियों में सभी सुविधाएं शामिल हैं जो संकलक दिए गए विकल्प के साथ समर्थन करता है, और
चेतावनी देने के लिए कुछ भी नहीं होगा।)

-पांडित्य-त्रुटियों
पसंद पांडित्य, सिवाय इसके कि चेतावनियों के बजाय त्रुटियां उत्पन्न होती हैं।

-दीवार
यह निर्माण के बारे में सभी चेतावनियों को सक्षम करता है जिसे कुछ उपयोगकर्ता मानते हैं
संदिग्ध, और इससे बचना आसान है (या चेतावनी को रोकने के लिए संशोधित करें), यहां तक ​​कि
मैक्रोज़ के साथ संयोजन। यह वर्णित कुछ भाषा-विशिष्ट चेतावनियों को भी सक्षम बनाता है
in सी + + बोली ऑप्शंस और उद्देश्य सी और उद्देश्य-सी++ बोली ऑप्शंस.

-दीवार निम्नलिखित चेतावनी झंडे चालू करता है:

-पता -वार-सीमा (सिर्फ साथ -ओ३) -Wc++11-संगत -वचर-सब्सक्राइब
-वेनम-तुलना (सी/ओबीजेसी में; यह डिफ़ॉल्ट रूप से सी ++ में चालू है) -विम्प्लिशिट-इंट (सी और
उद्देश्य-सी केवल) -विम्प्लिकिट-फ़ंक्शन-घोषणा (सी और उद्देश्य-सी केवल) -कमेन्ट करें
-स्वरूप -वमेन (केवल सी/ओबीजेसी के लिए और जब तक कि -फ्रीस्टैंडिंग) -शायद-अप्रारंभीकृत
-विस्मिंग-ब्रेसिज़ -वोननुल -कोष्ठक -Wpointer-चिह्न -वॉर्डर -रिटर्न-प्रकार
-अनुक्रम-बिंदु -Wsign-तुलना (केवल सी ++ में) -स्ट्रिक्ट-अलियासिंग -स्ट्रिक्ट-ओवरफ्लो = 1
-स्विच -वट्रिग्राफ -अप्रारंभीकृत -अज्ञात-प्राग्मास -वुनयूज्ड-फंक्शन
-वुनयूज्ड-लेबल -अप्रयुक्त-मूल्य -अप्रयुक्त-चर -अस्थिर-रजिस्टर-वर

ध्यान दें कि कुछ चेतावनी झंडे किसके द्वारा निहित नहीं हैं -दीवार. उनमें से कुछ के बारे में चेतावनी देते हैं
ऐसे निर्माण जिन्हें उपयोगकर्ता आम तौर पर संदिग्ध नहीं मानते हैं, लेकिन जो
कभी-कभी आप जांचना चाहेंगे; अन्य उन निर्माणों के बारे में चेतावनी देते हैं जो हैं
कुछ मामलों में बचने के लिए आवश्यक या कठिन है, और इसे संशोधित करने का कोई आसान तरीका नहीं है
चेतावनी को दबाने के लिए कोड। उनमें से कुछ द्वारा सक्षम हैं -वेक्स्ट्रा लेकिन उनमें से कई
व्यक्तिगत रूप से सक्षम होना चाहिए।

-वेक्स्ट्रा
यह कुछ अतिरिक्त चेतावनी फ़्लैग सक्षम करता है जो इसके द्वारा सक्षम नहीं हैं -दीवार. (इस विकल्प का इस्तेमाल किया गया
कहा जा सकता है -W. पुराना नाम अभी भी समर्थित है, लेकिन नया नाम अधिक है
वर्णनात्मक।)

-वक्लबरेड -खाली-शरीर -विग्नोर-क्वालिफायर -विमिसिंग-फील्ड-प्रारंभकर्ता
-विस्मिंग-पैरामीटर-प्रकार (सी केवल) -वल्ड-स्टाइल-घोषणा (सी केवल) -वोवरराइड-इनिट
-Wsign-तुलना -Wtype-सीमा -अप्रारंभीकृत -वुनयूज्ड-पैरामीटर (सिर्फ साथ -वुनयूज्ड or
-दीवार) -अप्रयुक्त-लेकिन-सेट-पैरामीटर (सिर्फ साथ -वुनयूज्ड or -दीवार)

विकल्प -वेक्स्ट्रा निम्नलिखित मामलों के लिए चेतावनी संदेश भी प्रिंट करता है:

एक सूचक की तुलना पूर्णांक शून्य से की जाती है <, <=, >या, >=.

· (केवल C++) एक गणक और एक गैर-गणनाकर्ता दोनों एक सशर्त में दिखाई देते हैं
अभिव्यक्ति।

· (केवल C++) अस्पष्ट आभासी आधार।

· (केवल C++) घोषित की गई सरणी की सदस्यता लेना रजिस्टर.

· (केवल C++) घोषित किए गए चर का पता लेना रजिस्टर.

· (केवल C++) एक बेस क्लास को व्युत्पन्न वर्ग के कॉपी कंस्ट्रक्टर में इनिशियलाइज़ नहीं किया जाता है।

-वचर-सब्सक्राइब
चेतावनी दें कि एक सरणी सबस्क्रिप्ट में "चार" टाइप है। यह त्रुटि का एक सामान्य कारण है, जैसे
प्रोग्रामर अक्सर भूल जाते हैं कि कुछ मशीनों पर इस प्रकार के हस्ताक्षर किए गए हैं। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-कमेन्ट करें
जब भी कोई टिप्पणी-प्रारंभ अनुक्रम चेतावनी दें /* में प्रकट होता है /* टिप्पणी करें, या जब भी
बैकस्लैश-न्यूलाइन a . में प्रकट होता है // टिप्पणी। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-नो-कवरेज-बेमेल
चेतावनी दें कि अगर फीडबैक प्रोफाइल का उपयोग करते समय मेल नहीं खाता है -फ्रोफाइल-उपयोग विकल्प। यदि एक
स्रोत फ़ाइल के बीच बदल दिया गया था -फ्रोफाइल-जीन और -फ्रोफाइल-उपयोग, के साथ फ़ाइलें
प्रोफ़ाइल फ़ीडबैक स्रोत फ़ाइल से मेल खाने में विफल हो सकता है और GCC प्रोफ़ाइल का उपयोग नहीं कर सकता
प्रतिक्रिया जानकारी। डिफ़ॉल्ट रूप से, यह चेतावनी सक्षम है और इसे एक त्रुटि के रूप में माना जाता है।
-नो-कवरेज-बेमेल चेतावनी को अक्षम करने के लिए इस्तेमाल किया जा सकता है या
-नो-त्रुटि = कवरेज-बेमेल त्रुटि को अक्षम करने के लिए इस्तेमाल किया जा सकता है। त्रुटि अक्षम करना
इस चेतावनी के परिणामस्वरूप खराब अनुकूलित कोड हो सकता है और केवल के मामले में उपयोगी है
मौजूदा कोड-बेस में बग फिक्स जैसे बहुत ही मामूली बदलाव। पूरी तरह से अक्षम
चेतावनी की अनुशंसा नहीं की जाती है।

-वो-सीपीपी
(सी, ऑब्जेक्टिव-सी, सी++, ऑब्जेक्टिव-सी++ और फोरट्रान केवल)

"#चेतावनी" निर्देशों द्वारा उत्सर्जित चेतावनी संदेशों को रोकें।

डबल-पदोन्नति (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
एक चेतावनी दें जब "फ्लोट" प्रकार का मान निहित रूप से "डबल" में प्रचारित किया जाता है। सीपीयू
32-बिट "एकल-सटीक" फ़्लोटिंग-पॉइंट इकाई के साथ हार्डवेयर में "फ्लोट" लागू करें,
लेकिन सॉफ्टवेयर में "डबल" का अनुकरण करें। ऐसी मशीन पर, का उपयोग करके गणना करना
सॉफ़्टवेयर के लिए आवश्यक ओवरहेड के कारण "डबल" मान बहुत अधिक महंगा है
अनुकरण।

गलती से "डबल" के साथ गणना करना आसान है क्योंकि फ्लोटिंग-पॉइंट
शाब्दिक रूप से "डबल" प्रकार के होते हैं। उदाहरण के लिए, में:

फ्लोट क्षेत्र (फ्लोट त्रिज्या)
{
वापसी 3.14159 * त्रिज्या * त्रिज्या;
}

कंपाइलर संपूर्ण गणना "डबल" के साथ करेगा क्योंकि फ्लोटिंग-
बिंदु शाब्दिक एक "डबल" है।

-स्वरूप
"प्रिंटफ" और "स्कैनफ", आदि के लिए कॉल की जांच करें, यह सुनिश्चित करने के लिए कि तर्क दिए गए हैं
निर्दिष्ट प्रारूप स्ट्रिंग के लिए उपयुक्त प्रकार हैं, और यह कि रूपांतरण
प्रारूप स्ट्रिंग में निर्दिष्ट समझ में आता है। इसमें मानक कार्य शामिल हैं, और
प्रारूप विशेषताओं द्वारा निर्दिष्ट अन्य, "printf", "scanf", "strftime" और . में
"strfmon" (एक एक्स/ओपन एक्सटेंशन, सी मानक में नहीं) परिवार (या अन्य लक्ष्य-
विशिष्ट परिवार)। प्रारूप विशेषताओं के बिना कौन से फ़ंक्शन चेक किए गए हैं
निर्दिष्ट मानक चयनित संस्करण पर निर्भर करता है, और कार्यों की ऐसी जांच
निर्दिष्ट विशेषता के बिना अक्षम हैं -फ्रीस्टैंडिंग or -फनो-बिल्टिन.

जीएनयू libc संस्करण 2.2 द्वारा समर्थित प्रारूप सुविधाओं के खिलाफ प्रारूपों की जांच की जाती है।
इनमें सभी ISO C90 और C99 विशेषताएं शामिल हैं, साथ ही सिंगल यूनिक्स की विशेषताएं भी शामिल हैं
विशिष्टता और कुछ बीएसडी और जीएनयू एक्सटेंशन। अन्य पुस्तकालय कार्यान्वयन नहीं हो सकते हैं
इन सभी सुविधाओं का समर्थन करें; GCC उन सुविधाओं के बारे में चेतावनी का समर्थन नहीं करता जो इससे आगे जाती हैं
एक विशेष पुस्तकालय की सीमाएँ। हालांकि, यदि पांडित्य के साथ प्रयोग किया जाता है -स्वरूप,
प्रारूप सुविधाओं के बारे में चेतावनी दी जाएगी जो चयनित मानक संस्करण में नहीं है (लेकिन
"स्ट्रफमोन" प्रारूपों के लिए नहीं, क्योंकि वे सी मानक के किसी भी संस्करण में नहीं हैं)।

जबसे -स्वरूप कई कार्यों के लिए अशक्त प्रारूप तर्कों की भी जाँच करता है, -स्वरूप
इसका अर्थ यह भी है -वोननुल.

-स्वरूप में शामिल है -दीवार. प्रारूप जाँच के कुछ पहलुओं पर अधिक नियंत्रण के लिए,
विकल्प -Wformat-y2k, -नो-प्रारूप-अतिरिक्त-आर्ग्स, -नो-प्रारूप-शून्य-लंबाई,
-Wformat-गैर-शाब्दिक, -स्वरूप-सुरक्षा, तथा -फॉर्मैट = 2 उपलब्ध हैं, लेकिन नहीं हैं
में शामिल -दीवार.

नोट: उबंटू 8.10 और बाद के संस्करणों में यह विकल्प सी, सी ++ के लिए डिफ़ॉल्ट रूप से सक्षम है,
ओबीजेसी, ओबीजेसी++. अक्षम करने के लिए, उपयोग करें -फॉर्मैट = 0.

-Wformat-y2k
If -स्वरूप निर्दिष्ट है, "strftime" स्वरूपों के बारे में भी चेतावनी देता है जो केवल a . उत्पन्न कर सकते हैं
दो अंकों का वर्ष।

-नो-प्रारूप-शामिल-शून्य
If -स्वरूप निर्दिष्ट है, NUL बाइट्स वाले प्रारूप स्ट्रिंग्स के बारे में चेतावनी न दें।

-नो-प्रारूप-अतिरिक्त-आर्ग्स
If -स्वरूप निर्दिष्ट है, "printf" या "scanf" के अतिरिक्त तर्कों के बारे में चेतावनी न दें
प्रारूप समारोह। सी मानक निर्दिष्ट करता है कि ऐसे तर्कों को अनदेखा किया जाता है।

जहां अप्रयुक्त तर्क प्रयुक्त तर्कों के बीच स्थित होते हैं जिन्हें निर्दिष्ट किया जाता है $
संकार्य संख्या विनिर्देश, आम तौर पर चेतावनियां अभी भी दी जाती हैं, क्योंकि
कार्यान्वयन यह नहीं जान सका कि अप्रयुक्त को छोड़ने के लिए "va_arg" को किस प्रकार पास करना है
तर्क। हालांकि, "स्कैनफ" प्रारूपों के मामले में, यह विकल्प दबा देगा
चेतावनी अगर अप्रयुक्त तर्क सभी संकेत हैं, क्योंकि सिंगल यूनिक्स विशिष्टता
का कहना है कि इस तरह के अप्रयुक्त तर्कों की अनुमति है।

-नो-प्रारूप-शून्य-लंबाई
If -स्वरूप निर्दिष्ट है, शून्य-लंबाई वाले स्वरूपों के बारे में चेतावनी न दें। सी मानक
निर्दिष्ट करता है कि शून्य-लंबाई प्रारूपों की अनुमति है।

-Wformat-गैर-शाब्दिक
If -स्वरूप निर्दिष्ट है, यह भी चेतावनी दें कि प्रारूप स्ट्रिंग एक स्ट्रिंग शाब्दिक नहीं है और
इसलिए जाँच नहीं की जा सकती, जब तक कि स्वरूप फ़ंक्शन अपने स्वरूप तर्कों को a के रूप में नहीं लेता है
"va_list"।

-स्वरूप-सुरक्षा
If -स्वरूप निर्दिष्ट है, यह प्रतिनिधित्व करने वाले प्रारूप कार्यों के उपयोग के बारे में भी चेतावनी देता है
संभावित सुरक्षा समस्याएं। वर्तमान में, यह "printf" को कॉल के बारे में चेतावनी देता है और
"स्कैनफ" फ़ंक्शन जहां प्रारूप स्ट्रिंग एक स्ट्रिंग अक्षर नहीं है और वहां नहीं हैं
प्रारूप तर्क, जैसा कि "printf (foo);" में है। यह एक सुरक्षा छेद हो सकता है यदि प्रारूप
स्ट्रिंग अविश्वसनीय इनपुट से आई है और इसमें शामिल है %n. (यह वर्तमान में क्या का एक सबसेट है
-Wformat-गैर-शाब्दिक के बारे में चेतावनी देता है, लेकिन भविष्य में चेतावनियों को इसमें जोड़ा जा सकता है
-स्वरूप-सुरक्षा जो में शामिल नहीं है -Wformat-गैर-शाब्दिक.)

नोट: उबंटू 8.10 और बाद के संस्करणों में यह विकल्प सी, सी ++ के लिए डिफ़ॉल्ट रूप से सक्षम है,
ओबीजेसी, ओबीजेसी++. अक्षम करने के लिए, उपयोग करें -नो-प्रारूप-सुरक्षा, या सभी प्रारूप चेतावनियों को अक्षम करें
साथ में -फॉर्मैट = 0. प्रारूप सुरक्षा चेतावनियों को घातक बनाने के लिए, निर्दिष्ट करें
-आतंक = प्रारूप-सुरक्षा.

-फॉर्मैट = 2
सक्षम -स्वरूप प्लस प्रारूप जांच में शामिल नहीं है -स्वरूप. वर्तमान में के बराबर
-स्वरूप -Wformat-गैर-शाब्दिक -स्वरूप-सुरक्षा -Wformat-y2k.

-वोननुल
गैर-शून्य मान की आवश्यकता के रूप में चिह्नित तर्कों के लिए एक शून्य सूचक पास करने के बारे में चेतावनी दें
"नॉननल" फ़ंक्शन विशेषता द्वारा।

-वोननुल में शामिल है -दीवार और -स्वरूप. इसे के साथ अक्षम किया जा सकता है -नो-नॉननल
विकल्प.

-विनिट-सेल्फ (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
गैर-आरंभिक चर के बारे में चेतावनी दें जो स्वयं के साथ प्रारंभ किए गए हैं। इसे नोट करें
विकल्प का उपयोग केवल के साथ किया जा सकता है -अप्रारंभीकृत विकल्प.

उदाहरण के लिए, GCC केवल निम्नलिखित स्निपेट में "i" के अप्रारंभीकृत होने के बारे में चेतावनी देगा
कब -विनिट-सेल्फ निर्दिष्ट किया गया है:

इंट एफ ()
{
इंट मैं = मैं;
मैं लौटा;
}

-विम्प्लिशिट-इंट (सी और उद्देश्य-सी केवल)
चेतावनी दें जब एक घोषणा एक प्रकार निर्दिष्ट नहीं करती है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-विम्प्लिकिट-फ़ंक्शन-घोषणा (सी और उद्देश्य-सी केवल)
घोषित होने से पहले जब भी किसी फ़ंक्शन का उपयोग किया जाता है तो चेतावनी दें। C99 मोड में
(-एसटीडी = सी 99 or -एसटीडी = जीएनयू 99), यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है और इसे एक में बनाया गया है
द्वारा त्रुटि -पांडित्य-त्रुटियों. यह चेतावनी द्वारा भी सक्षम की गई है -दीवार.

-विम्पलिसिट (सी और उद्देश्य-सी केवल)
के समान -विम्प्लिशिट-इंट और -विम्प्लिकिट-फ़ंक्शन-घोषणा. यह चेतावनी सक्षम है
by -दीवार.

-विग्नोर-क्वालिफायर (सी और सी++ केवल)
चेतावनी दें कि किसी फ़ंक्शन के रिटर्न प्रकार में "कॉन्स्ट" जैसे प्रकार का क्वालीफायर है। आईएसओ सी . के लिए
इस प्रकार के क्वालीफायर का कोई प्रभाव नहीं पड़ता है, क्योंकि किसी फ़ंक्शन द्वारा लौटाया गया मान एक नहीं है
मूल्य सी ++ के लिए, चेतावनी केवल स्केलर प्रकारों या "शून्य" के लिए उत्सर्जित होती है। आईएसओ सी
फ़ंक्शन परिभाषाओं पर योग्य "शून्य" रिटर्न प्रकारों को प्रतिबंधित करता है, इसलिए ऐसे रिटर्न प्रकार
इस विकल्प के बिना भी हमेशा एक चेतावनी प्राप्त करें।

यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-वमेन
चेतावनी दें यदि प्रकार मुख्य संदेहास्पद है। मुख्य बाहरी के साथ एक समारोह होना चाहिए
लिंकेज, रिटर्निंग इंट, या तो शून्य तर्क, दो, या तीन तर्क
उपयुक्त प्रकार। यह चेतावनी डिफ़ॉल्ट रूप से C++ में सक्षम है और किसी भी द्वारा सक्षम है
-दीवार or पांडित्य.

-विस्मिंग-ब्रेसिज़
चेतावनी दें कि अगर कोई एग्रीगेट या यूनियन इनिशियलाइज़र पूरी तरह से ब्रैकेटेड नहीं है। निम्नलिखित में
उदाहरण के लिए, प्रारंभकर्ता a पूरी तरह से ब्रैकेटेड नहीं है, लेकिन इसके लिए b पूरी तरह से है
कोष्ठक

इंट ए [2] [2] = {0, 1, 2, 3};
इंट बी [2] [2] = { { 0, 1 }, { 2, 3 } };

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-विस्मिंग-शामिल-डीआईआर (सी, सी++, ऑब्जेक्टिव-सी और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि यदि उपयोगकर्ता द्वारा प्रदत्त निर्देशिका मौजूद नहीं है।

-कोष्ठक
चेतावनी दें कि अगर कुछ संदर्भों में कोष्ठक छोड़े गए हैं, जैसे कि जब कोई
एक ऐसे संदर्भ में असाइनमेंट जहां एक सत्य मूल्य अपेक्षित है, या जब ऑपरेटरों को नेस्टेड किया जाता है
जिनकी प्राथमिकता को लेकर लोग अक्सर भ्रमित रहते हैं।

साथ ही चेतावनी दें कि तुलना पसंद है एक्स<=y<=z दिखाई पड़ना; यह बराबर है (एक्स<=y ? 1 : 0)
<= z, जो सामान्य गणितीय अंकन से भिन्न व्याख्या है।

उन निर्माणों के बारे में भी चेतावनी दें जहाँ भ्रम हो सकता है कि कौन सा "if" कथन a
"अन्य" शाखा के अंतर्गत आता है। यहाँ ऐसे मामले का एक उदाहरण है:

{
यदि एक)
अगर (बी)
फू ();
अन्य
छड़ ();
}

C/C++ में, प्रत्येक "अन्य" शाखा अंतरतम संभव "if" कथन से संबंधित है, जो
इस उदाहरण में "अगर (बी)" है। यह अक्सर वह नहीं होता जिसकी प्रोग्रामर को उम्मीद होती है, जैसे
उपरोक्त उदाहरण में प्रोग्रामर द्वारा चुने गए इंडेंटेशन द्वारा सचित्र। जब वहाँ
इस भ्रम की संभावना, GCC चेतावनी जारी करेगा जब यह ध्वज होगा
निर्दिष्ट। चेतावनी को समाप्त करने के लिए, अंतरतम "if" के चारों ओर स्पष्ट ब्रेसिज़ जोड़ें
बयान इसलिए कोई रास्ता नहीं है कि "अन्य" संलग्न "अगर" से संबंधित हो सकता है। NS
परिणामी कोड इस तरह दिखेगा:

{
यदि एक)
{
अगर (बी)
फू ();
अन्य
छड़ ();
}
}

के खतरनाक उपयोगों के लिए भी चेतावनी दें?: छोड़े गए मध्य ऑपरेंड जीएनयू एक्सटेंशन के साथ। कब
में शर्त?: ऑपरेटर एक बूलियन अभिव्यक्ति है छोड़ा गया मान होगा
हमेशा 1. अक्सर उपयोगकर्ता अपेक्षा करता है कि यह सशर्त के अंदर गणना की गई मान हो
इसके बजाय अभिव्यक्ति।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अनुक्रम-बिंदु
उस कोड के बारे में चेतावनी दें जिसमें अनुक्रम के उल्लंघन के कारण अपरिभाषित शब्दार्थ हो सकते हैं
सी और सी ++ मानकों में बिंदु नियम।

C और C++ मानक उस क्रम को परिभाषित करते हैं जिसमें C/C++ प्रोग्राम में भाव होते हैं
के संदर्भ में मूल्यांकन किया गया अनुक्रम अंक, जो के बीच आंशिक क्रम का प्रतिनिधित्व करता है
कार्यक्रम के कुछ हिस्सों का निष्पादन: अनुक्रम बिंदु से पहले निष्पादित, और वे
इसके बाद निष्पादित। ये एक पूर्ण अभिव्यक्ति के मूल्यांकन के बाद होते हैं (एक जो
एक बड़ी अभिव्यक्ति का हिस्सा नहीं है), a . के पहले ऑपरेंड के मूल्यांकन के बाद
"&&", "||", "? :" या "," (अल्पविराम) ऑपरेटर, किसी फ़ंक्शन को कॉल करने से पहले (लेकिन बाद में
इसके तर्कों का मूल्यांकन और तथाकथित फ़ंक्शन को दर्शाने वाली अभिव्यक्ति), और में
कुछ अन्य स्थान। अनुक्रम बिंदु नियमों द्वारा व्यक्त के अलावा, आदेश
एक अभिव्यक्ति के उप-अभिव्यक्तियों के मूल्यांकन के लिए निर्दिष्ट नहीं है। ये सभी नियम
कुल आदेश के बजाय केवल आंशिक आदेश का वर्णन करें, उदाहरण के लिए, यदि दो
कार्यों को एक अभिव्यक्ति के भीतर बुलाया जाता है, उनके बीच कोई अनुक्रम बिंदु नहीं होता है,
जिस क्रम में कार्यों को बुलाया जाता है वह निर्दिष्ट नहीं है। हालांकि, मानकों
समिति ने फैसला सुनाया है कि फ़ंक्शन कॉल ओवरलैप नहीं होते हैं।

यह निर्दिष्ट नहीं है जब अनुक्रम बिंदुओं के बीच के मूल्यों में संशोधन होता है
वस्तुएं प्रभावी होती हैं। जिन प्रोग्रामों का व्यवहार इस पर निर्भर करता है उनमें अपरिभाषित व्यवहार होता है;
सी और सी ++ मानक निर्दिष्ट करते हैं कि "पिछले और अगले अनुक्रम बिंदु के बीच एक
ऑब्जेक्ट का संग्रहीत मूल्य एक के मूल्यांकन द्वारा अधिकतम एक बार संशोधित किया जाएगा
अभिव्यक्ति। इसके अलावा, पूर्व मूल्य को केवल मूल्य निर्धारित करने के लिए पढ़ा जाएगा
स्टोर किया जा सकता है।"। यदि कोई प्रोग्राम इन नियमों को तोड़ता है, तो किसी विशेष पर परिणाम
कार्यान्वयन पूरी तरह से अप्रत्याशित है।

अपरिभाषित व्यवहार वाले कोड के उदाहरण हैं "a = a++;", "a[n] = b[n++]" और "a[i++] =
i;" इस विकल्प द्वारा कुछ और जटिल मामलों का निदान नहीं किया जाता है, और यह एक दे सकता है
कभी-कभी गलत सकारात्मक परिणाम, लेकिन सामान्य तौर पर यह काफी प्रभावी पाया गया है
कार्यक्रमों में इस तरह की समस्या का पता लगाना।

मानक भ्रमित करने वाला शब्द है, इसलिए सटीक पर कुछ बहस है
सूक्ष्म मामलों में अनुक्रम बिंदु नियमों का अर्थ। चर्चाओं के लिंक
प्रस्तावित औपचारिक परिभाषाओं सहित समस्या, जीसीसी रीडिंग पेज पर पाई जा सकती है,
परhttp://gcc.gnu.org/readings.html>.

यह चेतावनी द्वारा सक्षम की गई है -दीवार सी और सी ++ के लिए।

-रिटर्न-प्रकार
चेतावनी दें कि जब भी किसी फ़ंक्शन को रिटर्न-प्रकार के साथ परिभाषित किया जाता है जो "int" पर डिफ़ॉल्ट होता है। भी
किसी भी "रिटर्न" स्टेटमेंट के बारे में चेतावनी दें, जिसमें किसी फ़ंक्शन में कोई रिटर्न-वैल्यू न हो, जिसका रिटर्न-टाइप
"शून्य" नहीं है (फ़ंक्शन बॉडी के अंत से गिरना रिटर्निंग माना जाता है
एक मूल्य के बिना), और एक समारोह में एक अभिव्यक्ति के साथ एक "वापसी" बयान के बारे में
जिसका रिटर्न-टाइप "शून्य" है।

सी ++ के लिए, रिटर्न प्रकार के बिना एक फ़ंक्शन हमेशा डायग्नोस्टिक संदेश उत्पन्न करता है, यहां तक ​​​​कि
कब -नो-रिटर्न-टाइप निर्दिष्ट किया जाता है। केवल अपवाद हैं मुख्य और कार्य
सिस्टम हेडर में परिभाषित।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-स्विच
चेतावनी दें कि जब भी "स्विच" स्टेटमेंट में एन्यूमरेटेड टाइप का इंडेक्स होता है और "केस" का अभाव होता है
उस गणना के एक या अधिक नामित कोड के लिए। (एक "डिफ़ॉल्ट" की उपस्थिति
लेबल इस चेतावनी को रोकता है।) एन्यूमरेशन रेंज के बाहर "केस" लेबल भी
जब इस विकल्प का उपयोग किया जाता है तो चेतावनियां भड़काएं (भले ही "डिफ़ॉल्ट" लेबल हो)। इस
चेतावनी सक्षम है -दीवार.

-स्विच-डिफ़ॉल्ट
चेतावनी दें कि जब भी "स्विच" कथन में "डिफ़ॉल्ट" मामला न हो।

-विसिच-एनम
चेतावनी दें कि जब भी "स्विच" स्टेटमेंट में एन्यूमरेटेड टाइप का इंडेक्स होता है और "केस" का अभाव होता है
उस गणना के एक या अधिक नामित कोड के लिए। के बाहर "केस" लेबल
जब इस विकल्प का उपयोग किया जाता है तो एन्यूमरेशन रेंज चेतावनियों को भी भड़काती है। एकमात्र अंतर
के बीच -स्विच और यह विकल्प यह है कि यह विकल्प छोड़े गए के बारे में चेतावनी देता है
"डिफ़ॉल्ट" लेबल होने पर भी गणना कोड।

-Wsync-नंद (सी और सी++ केवल)
चेतावनी दें जब "__sync_fetch_and_nand" और "__sync_nand_and_fetch" बिल्ट-इन फ़ंक्शन हों
उपयोग किया गया। इन कार्यों ने जीसीसी 4.4 में शब्दार्थ को बदल दिया।

-वट्रिग्राफ
चेतावनी दें कि यदि कोई ट्रिग्राफ का सामना करना पड़ता है जो कार्यक्रम के अर्थ को बदल सकता है
(टिप्पणियों के भीतर ट्रिग्राफ के बारे में चेतावनी नहीं दी जाती है)। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अप्रयुक्त-लेकिन-सेट-पैरामीटर
चेतावनी दें कि जब भी कोई फ़ंक्शन पैरामीटर असाइन किया जाता है, लेकिन अन्यथा अप्रयुक्त (इसके अलावा .)
इसकी घोषणा)।

इस चेतावनी को दबाने के लिए उपयोग करें अप्रयुक्त विशेषता।

यह चेतावनी द्वारा भी सक्षम की गई है -वुनयूज्ड साथ साथ -वेक्स्ट्रा.

-अप्रयुक्त-लेकिन-सेट-चर
जब भी कोई स्थानीय चर असाइन किया जाता है, तो चेतावनी दें, लेकिन अन्यथा अप्रयुक्त (इसके अलावा)
घोषणा)। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए उपयोग करें अप्रयुक्त विशेषता।

यह चेतावनी द्वारा भी सक्षम की गई है -वुनयूज्ड, जो द्वारा सक्षम किया गया है -दीवार.

-वुनयूज्ड-फंक्शन
जब भी कोई स्थिर कार्य घोषित किया जाता है, लेकिन परिभाषित नहीं किया जाता है या एक गैर-इनलाइन स्थैतिक चेतावनी दी जाती है
फ़ंक्शन अप्रयुक्त है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वुनयूज्ड-लेबल
जब भी कोई लेबल घोषित किया जाता है लेकिन उपयोग नहीं किया जाता है तो चेतावनी दें। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए उपयोग करें अप्रयुक्त विशेषता।

-वुनयूज्ड-लोकल-टाइपडिफ्स (सी, ऑब्जेक्टिव-सी, सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें कि जब किसी फ़ंक्शन में स्थानीय रूप से परिभाषित टाइपिफ़ का उपयोग नहीं किया जाता है।

-वुनयूज्ड-पैरामीटर
चेतावनी दें कि जब भी कोई फ़ंक्शन पैरामीटर अपनी घोषणा के अलावा अप्रयुक्त होता है।

इस चेतावनी को दबाने के लिए उपयोग करें अप्रयुक्त विशेषता।

-अप्रयुक्त-अप्रयुक्त-परिणाम
चेतावनी न दें यदि "warn_unused_result" विशेषता के साथ चिह्नित फ़ंक्शन का कॉलर करता है
इसके वापसी मूल्य का उपयोग न करें। डिफ़ॉल्ट है -वुनयूज्ड-परिणाम.

-अप्रयुक्त-चर
चेतावनी दें कि जब भी एक स्थानीय चर या गैर-स्थिर स्थिर चर का उपयोग नहीं किया जाता है
इसकी घोषणा। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

इस चेतावनी को दबाने के लिए उपयोग करें अप्रयुक्त विशेषता।

-अप्रयुक्त-मूल्य
चेतावनी दें कि जब भी कोई कथन ऐसे परिणाम की गणना करता है जिसका स्पष्ट रूप से उपयोग नहीं किया गया है। दबाना
इस चेतावनी ने अप्रयुक्त अभिव्यक्ति को कास्ट किया शून्य. इसमें एक अभिव्यक्ति-कथन शामिल है
या अल्पविराम अभिव्यक्ति के बाईं ओर जिसका कोई साइड इफेक्ट नहीं है। के लिये
उदाहरण, एक अभिव्यक्ति जैसे एक्स [मैं, जे] चेतावनी देगा, जबकि एक्स [(शून्य) मैं, जे] मर्जी
नहीं।

यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वुनयूज्ड
उपर्युक्त सभी -वुनयूज्ड विकल्प संयुक्त।

अप्रयुक्त फ़ंक्शन पैरामीटर के बारे में चेतावनी प्राप्त करने के लिए, आपको या तो निर्दिष्ट करना होगा
-वेक्स्ट्रा -वुनयूज्ड (ध्यान दें कि -दीवार का तात्पर्य -वुनयूज्ड), या अलग से निर्दिष्ट करें
-वुनयूज्ड-पैरामीटर.

-अप्रारंभीकृत
चेतावनी दें कि यदि स्वचालित चर का उपयोग पहले आरंभ किए बिना किया जाता है या यदि कोई चर है
एक "setjmp" कॉल द्वारा पकड़ा जा सकता है। सी ++ में, चेतावनी दें कि एक गैर स्थैतिक संदर्भ या गैर-
स्थिर const सदस्य बिना कंस्ट्रक्टर के वर्ग में दिखाई देता है।

यदि आप उस कोड के बारे में चेतावनी देना चाहते हैं जो चर के प्रारंभिक मान का उपयोग करता है
अपने स्वयं के प्रारंभकर्ता, का उपयोग करें -विनिट-सेल्फ विकल्प.

ये चेतावनियां संरचना के अलग-अलग अप्रारंभीकृत या क्लोबर्ड तत्वों के लिए होती हैं,
संघ या सरणी चर के साथ-साथ उन चरों के लिए जो अप्रारंभीकृत या क्लॉबर्ड हैं
पूरा का पूरा। वे चर या "अस्थिर" घोषित तत्वों के लिए नहीं होते हैं। चूंकि
ये चेतावनियां अनुकूलन पर निर्भर करती हैं, सटीक चर या तत्व जिसके लिए वहां
क्या चेतावनियां सटीक अनुकूलन विकल्पों और उपयोग किए गए जीसीसी के संस्करण पर निर्भर करेंगी।

ध्यान दें कि एक चर के बारे में कोई चेतावनी नहीं हो सकती है जिसका उपयोग केवल गणना करने के लिए किया जाता है a
वह मान जो स्वयं कभी उपयोग नहीं किया जाता है, क्योंकि ऐसी गणनाओं को डेटा प्रवाह द्वारा हटाया जा सकता है
चेतावनियों के मुद्रित होने से पहले विश्लेषण।

-शायद-अप्रारंभीकृत
एक स्वचालित चर के लिए, यदि फ़ंक्शन प्रविष्टि से उपयोग के लिए पथ मौजूद है
वेरिएबल जो इनिशियलाइज़ किया गया है, लेकिन कुछ अन्य पथ मौजूद हैं वेरिएबल नहीं है
आरंभिक, संकलक एक चेतावनी का उत्सर्जन करेगा यदि यह अप्रारंभीकृत साबित नहीं कर सकता है
पथ रन टाइम पर नहीं होते हैं। इन चेतावनियों को वैकल्पिक बना दिया गया है क्योंकि जीसीसी नहीं है
दिखने के बावजूद कोड के सही होने के सभी कारणों को देखने के लिए पर्याप्त स्मार्ट
एक त्रुटि है। यह कैसे हो सकता है इसका एक उदाहरण यहां दिया गया है:

{
इंट x;
स्विच (वाई)
{
केस 1: एक्स = 1;
तोड़;
केस 2: एक्स = 4;
तोड़;
केस 3: एक्स = 5;
}
फू (एक्स);
}

यदि "y" का मान हमेशा 1, 2 या 3 होता है, तो "x" को हमेशा इनिशियलाइज़ किया जाता है, लेकिन GCC
यह नहीं जानता। चेतावनी को दबाने के लिए, उपयोगकर्ता को एक डिफ़ॉल्ट मामला प्रदान करना होगा
साथ में जोर(0) या समान कोड।

यह विकल्प तब भी चेतावनी देता है जब एक गैर-वाष्पशील स्वचालित चर को a . द्वारा बदला जा सकता है
"longjmp" पर कॉल करें। ये चेतावनियाँ भी केवल ऑप्टिमाइज़ करने में ही संभव हैं
संकलन।

संकलक केवल "setjmp" को कॉल देखता है। यह नहीं जान सकता कि "longjmp" कहाँ होगा
बुलाया; वास्तव में, एक सिग्नल हैंडलर इसे कोड के किसी भी बिंदु पर कॉल कर सकता है। के तौर पर
परिणाम, आपको वास्तव में कोई समस्या न होने पर भी चेतावनी मिल सकती है क्योंकि "longjmp"
वास्तव में उस स्थान पर नहीं बुलाया जा सकता है जिससे समस्या हो।

यदि आप अपने द्वारा उपयोग किए जाने वाले सभी कार्यों की घोषणा करते हैं तो कुछ नकली चेतावनियों से बचा जा सकता है
कभी भी "नोरेटर्न" के रूप में वापस न आएं।

यह चेतावनी द्वारा सक्षम की गई है -दीवार or -वेक्स्ट्रा.

-अज्ञात-प्राग्मास
चेतावनी जब एक "#pragma" निर्देश का सामना करना पड़ता है जिसे जीसीसी द्वारा नहीं समझा जाता है। अगर यह
कमांड-लाइन विकल्प का उपयोग किया जाता है, अज्ञात प्रगति के लिए भी चेतावनी जारी की जाएगी
सिस्टम हेडर फ़ाइलें। यह मामला नहीं है अगर चेतावनियों को केवल द्वारा सक्षम किया गया था
-दीवार कमांड लाइन विकल्प।

-नहीं-प्रगमास
प्राग्मास के दुरुपयोग के बारे में चेतावनी न दें, जैसे कि गलत पैरामीटर, अमान्य सिंटैक्स, या
प्राग्मास के बीच संघर्ष। यह सभी देखें -अज्ञात-प्राग्मास.

-स्ट्रिक्ट-अलियासिंग
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-अलियासिंग सक्रिय है। यह कोड के बारे में चेतावनी देता है कि
संकलक अनुकूलन के लिए उपयोग कर रहे सख्त एलियासिंग नियमों को तोड़ सकता है।
चेतावनी सभी मामलों को नहीं पकड़ती है, लेकिन अधिक सामान्य को पकड़ने का प्रयास करती है
नुकसान इसमें शामिल है -दीवार। इसके बराबर है -स्ट्रिक्ट-अलियासिंग=3

-स्ट्रिक्ट-अलियासिंग = n
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-अलियासिंग सक्रिय है। यह कोड के बारे में चेतावनी देता है कि
संकलक अनुकूलन के लिए उपयोग कर रहे सख्त एलियासिंग नियमों को तोड़ सकता है।
उच्च स्तर उच्च सटीकता (कम झूठी सकारात्मक) के अनुरूप हैं। उच्च स्तर
-ओ काम करने के तरीके के समान, अधिक प्रयास के अनुरूप भी। -स्ट्रिक्ट-अलियासिंग is
के बराबर -स्ट्रिक्ट-अलियासिंग = n, एन = 3 के साथ।

स्तर 1: सबसे आक्रामक, तेज, कम से कम सटीक। संभवतः उपयोगी जब उच्च स्तर
चेतावनी न दें लेकिन -फस्ट्रिक्ट-अलियासिंग अभी भी कोड को तोड़ता है, क्योंकि इसमें बहुत कम झूठे हैं
नकारात्मक। हालांकि, इसमें कई झूठी सकारात्मकताएं हैं। सभी सूचक रूपांतरणों के लिए चेतावनी
संभवतः असंगत प्रकारों के बीच, भले ही कभी भी संदर्भित न किया गया हो। सामने दौड़ता है
केवल अंत।

स्तर 2: आक्रामक, तेज, बहुत सटीक नहीं। अभी भी कई झूठे सकारात्मक हो सकते हैं (नहीं
हालांकि स्तर 1 जितना हो सकता है), और कुछ झूठे नकारात्मक (लेकिन संभवतः स्तर 1 से अधिक)।
स्तर 1 के विपरीत, यह केवल तभी चेतावनी देता है जब कोई पता लिया जाता है। अपूर्ण प्रकारों के बारे में चेतावनी देता है।
फ्रंट एंड में ही चलता है।

स्तर 3 (के लिए डिफ़ॉल्ट -स्ट्रिक्ट-अलियासिंग): बहुत कम झूठी सकारात्मक और कुछ होनी चाहिए
झूठे नकारात्मक। अनुकूलन सक्षम होने पर स्तर 1 या 2 से थोड़ा धीमा।
सामने के छोर में सामान्य पन + डीरेफरेंस पैटर्न का ख्याल रखता है:
"*(int*)&some_float"। यदि अनुकूलन सक्षम है, तो यह बैक एंड में भी चलता है, जहां
यह फ्लो-सेंसिटिव पॉइंट-टू-सूचना का उपयोग करते हुए कई स्टेटमेंट मामलों से संबंधित है।
केवल तभी चेतावनी देता है जब परिवर्तित सूचक को संदर्भित किया जाता है। अपूर्ण के बारे में चेतावनी नहीं देता
प्रकार के।

-स्ट्रिक्ट-ओवरफ्लो
-स्ट्रिक्ट-ओवरफ्लो =n
यह विकल्प तभी सक्रिय होता है जब -फस्ट्रिक्ट-ओवरफ्लो सक्रिय है। यह मामलों के बारे में चेतावनी देता है
जहां संकलक इस धारणा के आधार पर अनुकूलन करता है कि हस्ताक्षरित अतिप्रवाह नहीं करता है
घटित होना। ध्यान दें कि यह उन सभी मामलों के बारे में चेतावनी नहीं देता है जहां कोड अतिप्रवाह हो सकता है: it
केवल उन मामलों के बारे में चेतावनी देता है जहां संकलक कुछ अनुकूलन लागू करता है। इस प्रकार यह
चेतावनी अनुकूलन स्तर पर निर्भर करती है।

एक अनुकूलन जो मानता है कि हस्ताक्षरित अतिप्रवाह नहीं होता है वह पूरी तरह से सुरक्षित है यदि
शामिल चर के मान ऐसे हैं कि अतिप्रवाह कभी नहीं करता है, वास्तव में,
घटित होना। इसलिए यह चेतावनी आसानी से झूठी सकारात्मक दे सकती है: कोड के बारे में चेतावनी
यह वास्तव में कोई समस्या नहीं है। महत्वपूर्ण मुद्दों पर ध्यान केंद्रित करने में मदद के लिए, कई चेतावनी
स्तरों को परिभाषित किया गया है। अपरिभाषित हस्ताक्षरित अतिप्रवाह के उपयोग के लिए कोई चेतावनी जारी नहीं की जाती है
यह अनुमान लगाते समय कि लूप को कितने पुनरावृत्तियों की आवश्यकता होगी, विशेष रूप से जब
यह निर्धारित करना कि क्या एक लूप बिल्कुल निष्पादित किया जाएगा।

-स्ट्रिक्ट-ओवरफ्लो = 1
उन मामलों के बारे में चेतावनी दें जो संदिग्ध और बचने में आसान दोनों हैं। उदाहरण के लिए: "एक्स +
1> एक्स"; के साथ -फस्ट्रिक्ट-ओवरफ्लो, संकलक इसे 1 तक सरल कर देगा। यह स्तर
of -स्ट्रिक्ट-ओवरफ्लो द्वारा सक्षम किया गया है -दीवार; उच्च स्तर नहीं हैं, और होना चाहिए
स्पष्ट रूप से अनुरोध किया।

-स्ट्रिक्ट-ओवरफ्लो = 2
अन्य मामलों के बारे में भी चेतावनी दें जहां एक तुलना को स्थिर करने के लिए सरल किया जाता है। के लिये
उदाहरण: "एब्स (एक्स)> = 0"। इसे तभी सरल बनाया जा सकता है जब -फस्ट्रिक्ट-ओवरफ्लो में है
प्रभाव, क्योंकि "abs (INT_MIN)" "INT_MIN" से अधिक हो जाता है, जो शून्य से कम है।
-स्ट्रिक्ट-ओवरफ्लो (बिना स्तर के) समान है -स्ट्रिक्ट-ओवरफ्लो = 2.

-स्ट्रिक्ट-ओवरफ्लो = 3
अन्य मामलों के बारे में भी चेतावनी दें जहां तुलना को सरल बनाया गया है। उदाहरण के लिए: "एक्स + 1
> 1" को "x> 0" में सरलीकृत किया जाएगा।

-स्ट्रिक्ट-ओवरफ्लो = 4
अन्य सरलीकरणों के बारे में भी चेतावनी दें जो उपरोक्त मामलों में शामिल नहीं हैं। के लिये
उदाहरण: "(x * 10)/5" को "x * 2" में सरलीकृत किया जाएगा।

-स्ट्रिक्ट-ओवरफ्लो = 5
उन मामलों के बारे में भी चेतावनी दें जहां संकलक स्थिरांक के परिमाण को कम करता है
तुलना में शामिल है। उदाहरण के लिए: "x + 2> y" को "x + 1 . तक सरल बनाया जाएगा
>= y"। यह केवल उच्चतम चेतावनी स्तर पर सूचित किया जाता है क्योंकि यह
सरलीकरण कई तुलनाओं पर लागू होता है, इसलिए यह चेतावनी स्तर बहुत कुछ देगा
बड़ी संख्या में झूठी सकारात्मक।

-सुझाव-विशेषता =[शुद्ध|const|वापसी नहीं]
ऐसे मामलों के लिए चेतावनी दें जिनमें विशेषता जोड़ना फ़ायदेमंद हो सकता है. वर्तमान में गुण
समर्थित नीचे सूचीबद्ध हैं।

-सुझाव-विशेषता = शुद्ध
-Wsuggest-विशेषता=const
-सुझाव-विशेषता=नोरिटर्न
उन कार्यों के बारे में चेतावनी दें जो "शुद्ध", "कॉन्स्ट" या . विशेषताओं के लिए उम्मीदवार हो सकते हैं
"वापसी नहीं"। संकलक केवल अन्य संकलन में दिखाई देने वाले कार्यों के लिए चेतावनी देता है
इकाइयाँ या ("शुद्ध" और "स्थिरांक" के मामले में) यदि यह साबित नहीं कर सकता है कि फ़ंक्शन
सामान्य रूप से लौटता है। एक फ़ंक्शन सामान्य रूप से वापस आता है यदि इसमें अनंत नहीं होता है
लूप और न ही फेंककर, "abort ()" या ट्रैप करके असामान्य रूप से वापस लौटता है। इस
विश्लेषण के लिए विकल्प की आवश्यकता है -फिपा-शुद्ध-कॉन्स्ट, जो डिफ़ॉल्ट रूप से सक्षम है -O और
उच्चतर। उच्च अनुकूलन स्तर विश्लेषण की सटीकता में सुधार करते हैं।

-वार-सीमा
यह विकल्प तभी सक्रिय होता है जब -फट्री-वीआरपी सक्रिय है (के लिए डिफ़ॉल्ट -ओ३ और ऊपर)। यह
उन सरणियों की सदस्यता के बारे में चेतावनी देता है जो हमेशा सीमा से बाहर होती हैं। यह चेतावनी है
द्वारा सक्षम किया गया -दीवार.

-वनो-डिव-बाय-जीरो
संकलन-समय पूर्णांक विभाजन के बारे में शून्य से चेतावनी न दें। फ़्लोटिंग-पॉइंट डिवीजन द्वारा
शून्य के बारे में चेतावनी नहीं दी जाती है, क्योंकि यह अनंत प्राप्त करने का एक वैध तरीका हो सकता है और
NaNs

-डब्ल्यूसिस्टम-हेडर
सिस्टम हेडर फाइलों में पाए गए निर्माणों के लिए चेतावनी संदेश प्रिंट करें। से चेतावनियाँ
सिस्टम हेडर आमतौर पर इस धारणा पर दबाए जाते हैं कि वे आमतौर पर नहीं करते हैं
वास्तविक समस्याओं को इंगित करता है और केवल संकलक आउटपुट को पढ़ने के लिए कठिन बना देगा। का उपयोग करते हुए
यह कमांड-लाइन विकल्प जीसीसी को सिस्टम हेडर से चेतावनियां उत्सर्जित करने के लिए कहता है जैसे कि वे
उपयोगकर्ता कोड में हुआ। हालाँकि, ध्यान दें कि उपयोग करना -दीवार इस विकल्प के साथ
मर्जी नहीं सिस्टम हेडर में अज्ञात प्रागमा के बारे में चेतावनी दें --- उसके लिए, -अज्ञात-प्राग्मास
भी इस्तेमाल किया जाना चाहिए।

-ट्रैम्पोलिन्स
नेस्टेड कार्यों के लिए पॉइंटर्स के लिए उत्पन्न ट्रैम्पोलिन के बारे में चेतावनी दें।

एक ट्रैम्पोलिन डेटा या कोड का एक छोटा सा टुकड़ा होता है जो रन पर बनाया जाता है
स्टैक पर समय जब एक नेस्टेड फ़ंक्शन का पता लिया जाता है, और
नेस्टेड फ़ंक्शन को अप्रत्यक्ष रूप से कॉल करने के लिए उपयोग किया जाता है। कुछ लक्ष्यों के लिए, यह
केवल डेटा से बना है और इस प्रकार किसी विशेष उपचार की आवश्यकता नहीं है। परंतु,
अधिकांश लक्ष्यों के लिए, यह कोड से बना होता है और इस प्रकार स्टैक की आवश्यकता होती है
कार्यक्रम को ठीक से काम करने के लिए निष्पादन योग्य बनाया जाना है।

-फ्लोट-बराबर
चेतावनी दें कि समानता तुलनाओं में फ़्लोटिंग-पॉइंट मानों का उपयोग किया जाता है।

इसके पीछे विचार यह है कि कभी-कभी यह (प्रोग्रामर के लिए) सुविधाजनक होता है
फ़्लोटिंग-पॉइंट मानों को असीम रूप से सटीक वास्तविक संख्याओं के सन्निकटन के रूप में मानें।
यदि आप ऐसा कर रहे हैं, तो आपको गणना करने की आवश्यकता है (कोड का विश्लेषण करके, या कुछ में)
अन्य तरीके से) अधिकतम या संभावित अधिकतम त्रुटि जो संगणना का परिचय देती है, और
तुलना करते समय इसके लिए अनुमति दें (और आउटपुट का उत्पादन करते समय, लेकिन यह एक है
अलग समस्या)। विशेष रूप से, समानता के परीक्षण के बजाय, आप जाँच करेंगे
यह देखने के लिए कि क्या दो मानों की श्रेणियां ओवरलैप करती हैं; और यह के साथ किया जाता है
रिलेशनल ऑपरेटर्स, इसलिए समानता की तुलना शायद गलत है।

-पारंपरिक (सी और उद्देश्य-सी केवल)
पारंपरिक और आईएसओ सी में अलग व्यवहार करने वाले कुछ निर्माणों के बारे में चेतावनी दें। इसके अलावा
आईएसओ सी निर्माणों के बारे में चेतावनी दें जिनके पास कोई पारंपरिक सी समकक्ष नहीं है, और/या समस्याग्रस्त
निर्माण से बचा जाना चाहिए।

मैक्रो पैरामीटर जो मैक्रो बॉडी में स्ट्रिंग लिटरल के भीतर दिखाई देते हैं। में
पारंपरिक सी मैक्रो प्रतिस्थापन स्ट्रिंग अक्षर के भीतर होता है, लेकिन नहीं
आईएसओ सी में

पारंपरिक सी में, कुछ प्रीप्रोसेसर निर्देश मौजूद नहीं थे। परंपरागत
प्रीप्रोसेसर केवल एक लाइन को एक निर्देश मानेंगे यदि # इसमें दिखाई दिया
कॉलम 1 लाइन पर। इसलिए -पारंपरिक निर्देशों के बारे में चेतावनी देता है कि
पारंपरिक सी समझता है लेकिन अनदेखा करेगा क्योंकि # के रूप में प्रकट नहीं होता है
लाइन पर पहला चरित्र। यह भी सुझाव देता है कि आप निर्देशों को छिपाते हैं जैसे #प्रैग्मा
पारंपरिक सी द्वारा उन्हें इंडेंट करके नहीं समझा जाता है। कुछ पारंपरिक
कार्यान्वयन नहीं पहचानेंगे #एलिफ, इसलिए यह इसे पूरी तरह से टालने का सुझाव देता है।

एक फ़ंक्शन जैसा मैक्रो जो बिना तर्क के प्रकट होता है।

· यूनरी प्लस ऑपरेटर।

· U पूर्णांक स्थिरांक प्रत्यय, या F or L फ़्लोटिंग-पॉइंट निरंतर प्रत्यय।
(पारंपरिक सी समर्थन करता है L पूर्णांक स्थिरांक पर प्रत्यय।) ध्यान दें, ये
अधिकांश आधुनिक प्रणालियों के सिस्टम हेडर में परिभाषित मैक्रोज़ में प्रत्यय दिखाई देते हैं,
उदाहरण के लिए _मिन/_मैक्स मैक्रोज़ " ". उपयोगकर्ता कोड में इन मैक्रो का उपयोग हो सकता है
आम तौर पर नकली चेतावनियां होती हैं, हालांकि जीसीसी के एकीकृत प्रीप्रोसेसर में है
इन मामलों में चेतावनी से बचने के लिए पर्याप्त संदर्भ।

· एक फ़ंक्शन को एक ब्लॉक में बाहरी घोषित किया जाता है और फिर इसका उपयोग समाप्त होने के बाद किया जाता है
ब्लॉक।

· एक "स्विच" स्टेटमेंट में "लॉन्ग" प्रकार का ऑपरेंड होता है।

· एक गैर-"स्थैतिक" फ़ंक्शन घोषणा एक "स्थैतिक" का अनुसरण करती है। यह निर्माण नहीं है
कुछ पारंपरिक सी कंपाइलरों द्वारा स्वीकार किया गया।

· एक पूर्णांक स्थिरांक के ISO प्रकार की चौड़ाई या हस्ताक्षर इसके से भिन्न होते हैं
पारंपरिक प्रकार। यह चेतावनी केवल तभी जारी की जाती है जब स्थिरांक का आधार दस हो।
यानी हेक्साडेसिमल या ऑक्टल मान, जो आमतौर पर बिट पैटर्न का प्रतिनिधित्व करते हैं, नहीं हैं
के बारे में चेतावनी दी।

आईएसओ स्ट्रिंग संयोजन के उपयोग का पता चला है।

· स्वचालित समुच्चय का प्रारंभ।

पहचानकर्ता लेबल के साथ विरोध करता है। पारंपरिक सी के लिए एक अलग नाम स्थान का अभाव है
लेबल।

· यूनियनों की शुरुआत। यदि प्रारंभकर्ता शून्य है, तो चेतावनी छोड़ी जाती है।
यह इस धारणा के तहत किया जाता है कि उपयोगकर्ता कोड में शून्य प्रारंभकर्ता दिखाई देता है
लापता प्रारंभकर्ता चेतावनियों से बचने के लिए उदाहरण के लिए "__STDC__" पर वातानुकूलित और निर्भर करता है
पारंपरिक सी मामले में डिफ़ॉल्ट प्रारंभिक शून्य।

· निश्चित/अस्थायी-बिंदु मानों के बीच प्रोटोटाइप द्वारा रूपांतरण और इसके विपरीत। NS
पारंपरिक सी के साथ संकलन करते समय इन प्रोटोटाइपों की अनुपस्थिति गंभीर हो सकती है
समस्या। यह पूरे सेट के लिए संभावित रूपांतरण चेतावनियों का एक सबसेट है
उपयोग -Wपारंपरिक-रूपांतरण.

आईएसओ सी शैली समारोह परिभाषाओं का प्रयोग करें। यह चेतावनी जानबूझकर है नहीं निर्गत
प्रोटोटाइप घोषणाओं या विविध कार्यों के लिए क्योंकि ये आईएसओ सी विशेषताएं होंगी
लिबर्टी के पारंपरिक सी संगतता मैक्रोज़ का उपयोग करते समय आपके कोड में दिखाई देते हैं,
"परम" और "VPARAMS"। नेस्टेड कार्यों के लिए इस चेतावनी को भी दरकिनार कर दिया गया है
क्योंकि वह सुविधा पहले से ही एक GCC एक्सटेंशन है और इस प्रकार से प्रासंगिक नहीं है
पारंपरिक सी संगतता।

-Wपारंपरिक-रूपांतरण (सी और उद्देश्य-सी केवल)
चेतावनी दें कि यदि कोई प्रोटोटाइप एक प्रकार के रूपांतरण का कारण बनता है जो कि जो होगा उससे अलग है
एक प्रोटोटाइप की अनुपस्थिति में एक ही तर्क के लिए। इसमें के रूपांतरण शामिल हैं
फ़्लोटिंग के लिए निश्चित बिंदु और इसके विपरीत, और चौड़ाई बदलने वाले रूपांतरण या
एक निश्चित-बिंदु तर्क की हस्ताक्षरता, जब तक कि डिफ़ॉल्ट पदोन्नति के समान न हो।

-विघोषणा-बाद-बयान (सी और उद्देश्य-सी केवल)
ब्लॉक में स्टेटमेंट के बाद डिक्लेरेशन मिलने पर चेतावनी दें। यह निर्माण, ज्ञात
सी ++ से, आईएसओ सी 99 के साथ पेश किया गया था और डिफ़ॉल्ट रूप से जीसीसी में इसकी अनुमति है। यह नहीं
ISO C90 द्वारा समर्थित और GCC 3.0 से पहले GCC संस्करणों द्वारा समर्थित नहीं था।

-वुंडेफ
चेतावनी दें कि क्या एक अपरिभाषित पहचानकर्ता का मूल्यांकन किया जाता है #अगर निर्देश.

-Wno-endif-लेबल
जब भी कोई चेतावनी न दें #else या एक #endif पाठ द्वारा पीछा किया जाता है।

-छाया
चेतावनी दें कि जब भी कोई स्थानीय चर या प्रकार की घोषणा किसी अन्य चर को छाया देती है,
पैरामीटर, प्रकार, या वर्ग सदस्य (सी ++ में), या जब भी कोई अंतर्निहित फ़ंक्शन होता है
छाया हुआ। ध्यान दें कि C++ में, कंपाइलर चेतावनी नहीं देगा यदि कोई स्थानीय चर छाया a
स्ट्रक्चर/क्लास/एनम, लेकिन चेतावनी देगा कि क्या यह एक स्पष्ट टाइपपीफ छाया करता है।

-बड़ा-से =लेन
जब भी से बड़ी वस्तु की चेतावनी दें लेन बाइट्स परिभाषित किया गया है।

-वफ्रेम-बड़ा-से =लेन
चेतावनी दें कि फ़ंक्शन फ़्रेम का आकार इससे बड़ा है लेन बाइट्स। गणना की गई
यह निर्धारित करने के लिए कि स्टैक फ्रेम आकार अनुमानित है और रूढ़िवादी नहीं है। वास्तविक
आवश्यकताएं कुछ हद तक अधिक हो सकती हैं लेन भले ही आपको चेतावनी न मिले। में
इसके अलावा, "एलोका", चर-लंबाई वाले सरणियों, या संबंधित के माध्यम से आवंटित कोई भी स्थान
कंस्ट्रक्शन को कंपाइलर द्वारा शामिल नहीं किया जाता है, जब यह निर्धारित किया जाता है कि a जारी करना है या नहीं
चेतावनी।

-नो-फ्री-नॉनहीप-ऑब्जेक्ट
उस वस्तु को मुक्त करने का प्रयास करते समय चेतावनी न दें जिसे ढेर पर आवंटित नहीं किया गया था।

-स्टैक-उपयोग =लेन
चेतावनी दें कि क्या किसी फ़ंक्शन का स्टैक उपयोग इससे बड़ा हो सकता है लेन बाइट्स। गणना
यह निर्धारित करने के लिए किया जाता है कि स्टैक का उपयोग रूढ़िवादी है। "आलोका" के माध्यम से आवंटित कोई भी स्थान,
चर-लंबाई सरणियों, या संबंधित निर्माणों को संकलक द्वारा शामिल किया जाता है जब
यह निर्धारित करना कि चेतावनी जारी करनी है या नहीं।

संदेश के आउटपुट को ध्यान में रखते हुए है -फस्टैक-उपयोग.

· यदि स्टैक का उपयोग पूरी तरह से स्थिर है लेकिन निर्दिष्ट राशि से अधिक है, तो यह है:

चेतावनी: स्टैक का उपयोग 1120 बाइट्स है

· यदि स्टैक का उपयोग (आंशिक रूप से) गतिशील लेकिन बाध्य है, तो यह है:

चेतावनी: स्टैक का उपयोग 1648 बाइट्स हो सकता है

· यदि स्टैक का उपयोग (आंशिक रूप से) गतिशील है और बाध्य नहीं है, तो यह है:

चेतावनी: ढेर का उपयोग असीमित हो सकता है

-वुनसेफ-लूप-ऑप्टिमाइज़ेशन
चेतावनी दें कि क्या लूप को अनुकूलित नहीं किया जा सकता है क्योंकि संकलक कुछ भी ग्रहण नहीं कर सका
लूप इंडेक्स की सीमा। साथ में -फनसेफ-लूप-ऑप्टिमाइज़ेशन चेतावनी अगर संकलक
ऐसी धारणाएं बनाईं।

-नो-पेडेंटिक-एमएस-फॉर्मेट (केवल MinGW लक्ष्य)
गैर-ISO "printf" / "scanf" प्रारूप चौड़ाई विनिर्देशक "I32" के बारे में चेतावनियों को अक्षम करता है,
जब आप उपयोग कर रहे हों, तो एमएस रनटाइम के आधार पर विंडोज़ लक्ष्यों पर "आई 64", और "आई" का उपयोग किया जाता है
विकल्प -स्वरूप और पांडित्य बिना ग्नू-एक्सटेंशन के।

-पॉइंटर-अरिथ
किसी फ़ंक्शन प्रकार या "शून्य" के "आकार" पर निर्भर होने वाली किसी भी चीज़ के बारे में चेतावनी दें। जीएनयू सी
"शून्य *" के साथ गणना में सुविधा के लिए इन प्रकारों को 1 का आकार प्रदान करता है
कार्यों के लिए संकेत और संकेत। सी ++ में, एक अंकगणितीय ऑपरेशन होने पर भी चेतावनी दें
"नल" शामिल है। यह चेतावनी द्वारा भी सक्षम की गई है पांडित्य.

-Wtype-सीमा
चेतावनी दें कि तुलना हमेशा सही होती है या सीमित सीमा के कारण हमेशा गलत होती है
डेटा प्रकार, लेकिन निरंतर अभिव्यक्तियों के लिए चेतावनी न दें। उदाहरण के लिए, चेतावनी दें कि क्या कोई अहस्ताक्षरित है
चर की तुलना शून्य से की जाती है < or >=. यह चेतावनी द्वारा भी सक्षम की गई है
-वेक्स्ट्रा.

-वबद-फ़ंक्शन-कास्ट (सी और उद्देश्य-सी केवल)
जब भी कोई फ़ंक्शन कॉल गैर-मिलान प्रकार पर डाली जाती है तो चेतावनी दें। उदाहरण के लिए, चेतावनी दें if
"int malloc ()" को "कुछ भी *" पर डाला जाता है।

-डब्ल्यूसी++ - कॉम्पैट (सी और उद्देश्य-सी केवल)
ISO C निर्माणों के बारे में चेतावनी दें जो ISO C और ISO के सामान्य उपसमुच्चय से बाहर हैं
सी ++, उदाहरण के लिए "शून्य *" से एक सूचक को गैर- "शून्य" में निहित रूपांतरण के लिए अनुरोध
प्रकार।

-Wc++11-संगत (सी++ और ऑब्जेक्टिव-सी++ केवल)
C++ निर्माणों के बारे में चेतावनी दें जिनका अर्थ ISO C++ 1998 और ISO C++ 2011 के बीच भिन्न है,
उदाहरण के लिए, ISO C++ 1998 में पहचानकर्ता जो ISO C++ 2011 में कीवर्ड हैं। यह चेतावनी
चालू करें - सिकुड़ा हुआ और द्वारा सक्षम किया गया है -दीवार.

-वास्ट-क्वाली
जब भी कोई पॉइंटर डाला जाता है तो चेतावनी दें ताकि लक्ष्य प्रकार से टाइप क्वालिफायर को हटा दिया जा सके।
उदाहरण के लिए, चेतावनी दें कि क्या "कॉन्स्ट चार *" को सामान्य "चार *" में डाला जाता है।

एक असुरक्षित तरीके से एक प्रकार के क्वालीफायर का परिचय देने वाली कास्ट बनाते समय भी चेतावनी दें। के लिये
उदाहरण के लिए, "char **" को "const char **" में कास्ट करना असुरक्षित है, जैसा कि इस उदाहरण में है:

/* p चार ** मान है। */
कास्ट चार ** क्यू = (स्थिरांक चार **) पी;
/* केवल पढ़ने के लिए स्ट्रिंग को const char * पर असाइन करना ठीक है। */
* क्यू = "स्ट्रिंग";
/* अब char** पॉइंटर केवल-पढ़ने के लिए मेमोरी की ओर इशारा करता है। */
**पी = 'बी';

-Wcast-संरेखण
जब भी कोई पॉइंटर इस प्रकार डाला जाता है कि लक्ष्य का आवश्यक संरेखण हो तो चेतावनी दें
बढ़ी हुई। उदाहरण के लिए, चेतावनी दें कि क्या मशीनों पर "char *" को "int *" में डाला जाता है, जहां
पूर्णांकों को केवल दो या चार-बाइट सीमाओं पर ही पहुँचा जा सकता है।

-लिखें-तार
सी को संकलित करते समय, स्ट्रिंग स्थिरांक टाइप करें "कॉन्स्ट चार [लंबाई]" ताकि नकल
एक का पता एक गैर- "कॉन्स्ट" "चार *" पॉइंटर में एक चेतावनी मिलेगी। इन
चेतावनियाँ आपको संकलन समय कोड खोजने में मदद करेंगी जो एक स्ट्रिंग में लिखने का प्रयास कर सकता है
स्थिर, लेकिन केवल तभी जब आप घोषणाओं में "स्थिरांक" का उपयोग करने के बारे में बहुत सावधान रहे हों
और प्रोटोटाइप। अन्यथा, यह सिर्फ एक उपद्रव होगा। इसलिए हमने नहीं बनाया
-दीवार इन चेतावनियों का अनुरोध करें।

सी ++ संकलित करते समय, स्ट्रिंग अक्षर से बहिष्कृत रूपांतरण के बारे में चेतावनी दें "char
*"। यह चेतावनी डिफ़ॉल्ट रूप से C++ प्रोग्राम के लिए सक्षम है।

-वक्लबरेड
वेरिएबल के लिए चेतावनी जो इसके द्वारा बदले जा सकते हैं लोंगजम्प or vfork. यह चेतावनी भी है
द्वारा सक्षम किया गया -वेक्स्ट्रा.

-वरूपांतरण
निहित रूपांतरणों के लिए चेतावनी दें जो किसी मान को बदल सकते हैं। इसमें रूपांतरण शामिल हैं
वास्तविक और पूर्णांक के बीच, जैसे "abs (x)" जब "x" "डबल" हो; के बीच रूपांतरण
हस्ताक्षरित और अहस्ताक्षरित, जैसे "अहस्ताक्षरित ui = -1"; और छोटे प्रकारों में रूपांतरण, जैसे
"sqrtf (M_PI)"। "abs ((int) x)" और "ui = ." जैसी स्पष्ट जातियों के लिए चेतावनी न दें
(अहस्ताक्षरित) -1", या यदि "abs (2.0)" जैसे रूपांतरण द्वारा मान नहीं बदला गया है।
हस्ताक्षरित और अहस्ताक्षरित पूर्णांकों के बीच रूपांतरणों के बारे में चेतावनियों को इसके द्वारा अक्षम किया जा सकता है
का उपयोग -नो-साइन-रूपांतरण.

सी ++ के लिए, उपयोगकर्ता द्वारा परिभाषित रूपांतरणों के लिए भ्रमित करने वाले ओवरलोड रिज़ॉल्यूशन के लिए भी चेतावनी दें; तथा
रूपांतरण जो कभी भी एक प्रकार के रूपांतरण ऑपरेटर का उपयोग नहीं करेंगे: "शून्य" में रूपांतरण, the
एक ही प्रकार, एक आधार वर्ग या उनके लिए एक संदर्भ। के बीच रूपांतरणों के बारे में चेतावनियाँ
हस्ताक्षरित और अहस्ताक्षरित पूर्णांक डिफ़ॉल्ट रूप से C++ में अक्षम होते हैं जब तक कि -साइन-रूपांतरण
स्पष्ट रूप से सक्षम है।

-कोई-रूपांतरण-शून्य (सी++ और ऑब्जेक्टिव-सी++ केवल)
"नल" और गैर-सूचक प्रकारों के बीच रूपांतरण के लिए चेतावनी न दें। -Wरूपांतरण-शून्य is
डिफ़ॉल्ट रूप से सक्षम।

-शून्य-के-शून्य-सूचक-स्थिरांक (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनी दें जब एक शाब्दिक '0' का प्रयोग शून्य सूचक स्थिरांक के रूप में किया जाता है। यह उपयोगी हो सकता है
C++11 में "nullptr" में रूपांतरण की सुविधा प्रदान करें।

-खाली-शरीर
खाली शरीर होने पर चेतावनी दें if, अन्य or do जब बयान। यह चेतावनी है
द्वारा भी सक्षम किया गया -वेक्स्ट्रा.

-वेनम-तुलना
विभिन्न प्रगणित प्रकारों के मूल्यों के बीच तुलना के बारे में चेतावनी दें। सी++ एनुमरल में
सशर्त अभिव्यक्तियों में बेमेल का भी निदान किया जाता है और चेतावनी को सक्षम किया जाता है
चूक जाना। सी में यह चेतावनी सक्षम है -दीवार.

-वजम्प-मिस-इनिट (सी, उद्देश्य-सी केवल)
यदि कोई "गोटो" कथन या "स्विच" कथन आगे बढ़ता है तो चेतावनी दें
एक वैरिएबल का इनिशियलाइज़ेशन, या वेरिएबल होने के बाद एक लेबल पर पीछे की ओर कूदता है
आरंभ किया गया। यह केवल उन चरों के बारे में चेतावनी देता है जो प्रारंभ होने पर प्रारंभ होते हैं
घोषित किया। यह चेतावनी केवल C और Objective-C के लिए समर्थित है; सी ++ में इस तरह का
किसी भी मामले में शाखा एक त्रुटि है।

-वजम्प-मिस-इनिट में शामिल है -डब्ल्यूसी++ - कॉम्पैट. इसे के साथ अक्षम किया जा सकता है
-वो-कूद-चूक-इनिट विकल्प.

-Wsign-तुलना
चेतावनी दें कि जब हस्ताक्षरित और अहस्ताक्षरित मूल्यों के बीच तुलना गलत उत्पन्न कर सकती है
परिणाम जब हस्ताक्षरित मान को अहस्ताक्षरित में बदल दिया जाता है। यह चेतावनी भी सक्षम है
by -वेक्स्ट्रा; की अन्य चेतावनियां प्राप्त करने के लिए -वेक्स्ट्रा इस चेतावनी के बिना, उपयोग करें -वेक्स्ट्रा
-नो-साइन-तुलना.

-साइन-रूपांतरण
ऐसे अंतर्निहित रूपांतरणों के लिए चेतावनी जो पूर्णांक मान के चिह्न को बदल सकते हैं, जैसे
एक अहस्ताक्षरित पूर्णांक चर के लिए एक हस्ताक्षरित पूर्णांक अभिव्यक्ति निर्दिष्ट करना। एक स्पष्ट
कास्ट चेतावनी को चुप करा देता है। सी में, यह विकल्प भी सक्षम है -वरूपांतरण.

-पता
स्मृति पतों के संदिग्ध उपयोगों के बारे में चेतावनी दें। इनमें a . के पते का उपयोग करना शामिल है
एक सशर्त अभिव्यक्ति में कार्य, जैसे "शून्य func (शून्य); अगर (func)", और
एक स्ट्रिंग अक्षर के स्मृति पते के विरुद्ध तुलना, जैसे "if (x == "abc")"।
इस तरह के उपयोग आमतौर पर एक प्रोग्रामर त्रुटि का संकेत देते हैं: एक फ़ंक्शन का पता हमेशा
सत्य का मूल्यांकन करता है, इसलिए सशर्त में उनका उपयोग आमतौर पर इंगित करता है कि प्रोग्रामर
फ़ंक्शन कॉल में कोष्ठक भूल गए; और स्ट्रिंग अक्षर के खिलाफ तुलना
अनिर्दिष्ट व्यवहार में परिणाम और सी में पोर्टेबल नहीं हैं, इसलिए वे आमतौर पर संकेत देते हैं
कि प्रोग्रामर "strcmp" का उपयोग करने का इरादा रखता है। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-वैलॉजिकल-ऑप
भावों में तार्किक संचालकों के संदिग्ध उपयोगों के बारे में चेतावनी दें। इसमें उपयोग करना शामिल है
तार्किक ऑपरेटरों के संदर्भ में जहां एक बिट-वार ऑपरेटर की उम्मीद की जा सकती है।

-वैग्रेगेट-रिटर्न
चेतावनी दें कि यदि कोई फ़ंक्शन जो संरचनाओं या यूनियनों को लौटाता है उसे परिभाषित या बुलाया जाता है। (में
भाषाएँ जहाँ आप एक सरणी वापस कर सकते हैं, इससे एक चेतावनी भी मिलती है।)

-Wno-विशेषताएँ
यदि किसी अनपेक्षित "__attribute__" का उपयोग किया जाता है, जैसे कि अपरिचित विशेषताएँ, तो चेतावनी न दें।
चर, आदि पर लागू फ़ंक्शन विशेषताएँ। यह त्रुटियों को नहीं रोकेगा
समर्थित विशेषताओं का गलत उपयोग।

-बिना बिलिन-मैक्रो-पुनर्परिभाषित
कुछ अंतर्निहित मैक्रोज़ को फिर से परिभाषित किए जाने पर चेतावनी न दें। यह इसके लिए चेतावनियों को दबा देता है
"__TIMESTAMP__", "__TIME__", "__DATE__", "__FILE__", और
"__BASE_FILE__"।

-स्ट्रिक्ट-प्रोटोटाइप (सी और उद्देश्य-सी केवल)
चेतावनी दें कि कोई फ़ंक्शन तर्क प्रकारों को निर्दिष्ट किए बिना घोषित या परिभाषित किया गया है। (एक
पुरानी शैली की फ़ंक्शन परिभाषा को चेतावनी के बिना अनुमति दी जाती है यदि पहले a
घोषणा जो तर्क प्रकार निर्दिष्ट करती है।)

-वल्ड-स्टाइल-घोषणा (सी और उद्देश्य-सी केवल)
अप्रचलित उपयोगों के लिए चेतावनी, सी मानक के अनुसार, एक घोषणा में। के लिये
उदाहरण के लिए, चेतावनी दें कि "स्थैतिक" जैसे स्टोरेज-क्लास विनिर्देशक पहली चीजें नहीं हैं
घोषणा। यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-वल्ड-शैली-परिभाषा (सी और उद्देश्य-सी केवल)
यदि पुरानी शैली की फ़ंक्शन परिभाषा का उपयोग किया जाता है तो चेतावनी दें। होने पर भी चेतावनी दी जाती है
एक पिछला प्रोटोटाइप।

-विस्मिंग-पैरामीटर-प्रकार (सी और उद्देश्य-सी केवल)
के एंड आर-शैली के कार्यों में एक प्रकार के विनिर्देशक के बिना एक फ़ंक्शन पैरामीटर घोषित किया जाता है:

शून्य फू (बार) { }

यह चेतावनी द्वारा भी सक्षम की गई है -वेक्स्ट्रा.

-विमिसिंग-प्रोटोटाइप (सी और उद्देश्य-सी केवल)
चेतावनी दें कि वैश्विक फ़ंक्शन को पिछले प्रोटोटाइप घोषणा के बिना परिभाषित किया गया है। इस
चेतावनी जारी की जाती है, भले ही परिभाषा स्वयं एक प्रोटोटाइप प्रदान करती हो। उद्देश्य है
वैश्विक कार्यों का पता लगाएं जो हेडर फाइलों में घोषित नहीं हैं।

-विस्मिंग-घोषणाएँ
चेतावनी दें कि वैश्विक फ़ंक्शन को पिछली घोषणा के बिना परिभाषित किया गया है। ऐसा करें भले ही
परिभाषा ही एक प्रोटोटाइप प्रदान करती है। वैश्विक का पता लगाने के लिए इस विकल्प का प्रयोग करें
फ़ंक्शन जो हेडर फ़ाइलों में घोषित नहीं किए गए हैं। C++ में, इसके लिए कोई चेतावनी जारी नहीं की जाती है
फ़ंक्शन टेम्प्लेट, या इनलाइन फ़ंक्शंस के लिए, या अनाम नामस्थानों में फ़ंक्शंस के लिए।

-विमिसिंग-फील्ड-प्रारंभकर्ता
चेतावनी दें कि संरचना के प्रारंभकर्ता में कुछ फ़ील्ड गुम हैं। उदाहरण के लिए, निम्नलिखित
कोड ऐसी चेतावनी का कारण बनेगा, क्योंकि "xh" परोक्ष रूप से शून्य है:

संरचना एस {इंट एफ, जी, एच; };
संरचना एसएक्स = {3, 4};

यह विकल्प निर्दिष्ट प्रारंभकर्ताओं के बारे में चेतावनी नहीं देता है, इसलिए निम्न संशोधन
चेतावनी ट्रिगर नहीं करेगा:

संरचना एस {इंट एफ, जी, एच; };
संरचना sx = {.f = 3, .g = 4};

यह चेतावनी शामिल है -वेक्स्ट्रा. दूसरे को पाने के लिए -वेक्स्ट्रा इसके बिना चेतावनियाँ,
उपयोग -वेक्स्ट्रा -नो-मिसिंग-फील्ड-इनिशियलाइज़र.

-विस्मिंग-प्रारूप-विशेषता
फ़ंक्शन पॉइंटर्स के बारे में चेतावनी दें जो "प्रारूप" विशेषताओं के लिए उम्मीदवार हो सकते हैं। ध्यान दें
ये केवल संभावित उम्मीदवार हैं, निरपेक्ष नहीं। जीसीसी अनुमान लगाएगा कि समारोह
"प्रारूप" विशेषताओं वाले पॉइंटर्स जो असाइनमेंट, इनिशियलाइज़ेशन में उपयोग किए जाते हैं,
पैरामीटर पासिंग या रिटर्न स्टेटमेंट में संबंधित "प्रारूप" विशेषता होनी चाहिए
परिणामी प्रकार में। यानी असाइनमेंट या इनिशियलाइज़ेशन के बाईं ओर,
पैरामीटर चर का प्रकार, या युक्त फ़ंक्शन का रिटर्न प्रकार
चेतावनी से बचने के लिए क्रमशः "प्रारूप" विशेषता भी होनी चाहिए।

जीसीसी फ़ंक्शन परिभाषाओं के बारे में भी चेतावनी देगा जो "प्रारूप" के लिए उम्मीदवार हो सकते हैं
गुण। फिर, ये केवल संभावित उम्मीदवार हैं। जीसीसी अनुमान लगाएगा कि "प्रारूप"
विशेषताएँ किसी भी फ़ंक्शन के लिए उपयुक्त हो सकती हैं जो "vprintf" जैसे फ़ंक्शन को कॉल करती है
या "vscanf", लेकिन यह हमेशा मामला नहीं हो सकता है, और कुछ कार्य जिनके लिए
"प्रारूप" विशेषताएँ उपयुक्त हैं, उनका पता नहीं लगाया जा सकता है।

-वनो-मल्टीचार
चेतावनी न दें यदि एक बहुचरित्र स्थिरांक ('फूफ') प्रयोग किया जाता है। आमतौर पर वे संकेत देते हैं a
उपयोगकर्ता के कोड में टाइपो, क्योंकि उनके पास कार्यान्वयन-परिभाषित मान हैं, और नहीं होना चाहिए
पोर्टेबल कोड में उपयोग किया जाता है।

-सामान्यीकृत =
आईएसओ सी और आईएसओ सी ++ में, दो पहचानकर्ता अलग हैं यदि वे अलग-अलग अनुक्रम हैं
पात्र। हालाँकि, कभी-कभी जब मूल ASCII वर्ण के बाहर वर्ण सेट होते हैं
का उपयोग किया जाता है, तो आपके पास दो अलग-अलग वर्ण अनुक्रम हो सकते हैं जो समान दिखते हैं। कन्नी काटना
भ्रम, आईएसओ 10646 मानक कुछ निर्धारित करता है सामान्यीकरण नियम जो लागू होने पर
सुनिश्चित करें कि समान दिखने वाले दो अनुक्रम एक ही क्रम में बदल गए हैं। जीसीसी
यदि आप ऐसे पहचानकर्ताओं का उपयोग कर रहे हैं जिन्हें सामान्यीकृत नहीं किया गया है, तो आपको चेतावनी दे सकते हैं; इस विकल्प
उस चेतावनी को नियंत्रित करता है।

जीसीसी द्वारा समर्थित चेतावनी के चार स्तर हैं। डिफ़ॉल्ट है -सामान्यीकृत = एनएफसी,
जो किसी भी पहचानकर्ता के बारे में चेतावनी देता है जो आईएसओ 10646 "सी" सामान्यीकृत रूप में नहीं है,
एनएफसी. अधिकांश उपयोगों के लिए एनएफसी अनुशंसित रूप है।

दुर्भाग्य से, आईएसओ सी और आईएसओ सी ++ द्वारा पहचानकर्ताओं में कुछ वर्णों की अनुमति है
कि, जब एनएफसी में बदल दिया जाता है, तो पहचानकर्ताओं में इसकी अनुमति नहीं होती है। यानी कोई रास्ता नहीं है
पोर्टेबल आईएसओ सी या सी ++ में इन प्रतीकों का उपयोग करने के लिए और एनएफसी में आपके सभी पहचानकर्ता हैं।
-सामान्यीकृत = आईडी इन पात्रों के लिए चेतावनी को दबा देता है। आशा है कि भविष्य
शामिल मानकों के संस्करण इसे सही करेंगे, यही वजह है कि यह विकल्प नहीं है
डिफ़ॉल्ट।

आप लिखकर सभी वर्णों के लिए चेतावनी बंद कर सकते हैं -सामान्यीकृत = कोई नहीं. आप
ऐसा केवल तभी करना चाहेंगे जब आप किसी अन्य सामान्यीकरण योजना का उपयोग कर रहे हों (जैसे
"डी"), क्योंकि अन्यथा आप आसानी से बग बना सकते हैं जो सचमुच असंभव हैं
देखते हैं.

आईएसओ 10646 में कुछ वर्णों के अलग-अलग अर्थ हैं लेकिन कुछ फोंट में समान दिखते हैं
या प्रदर्शन पद्धतियां, विशेष रूप से एक बार स्वरूपण लागू होने के बाद। उदाहरण के लिए
"\u207F", "सुपरस्क्रिप्ट लैटिन स्मॉल लेटर एन", एक नियमित "एन" की तरह ही प्रदर्शित होगा
जिसे एक सुपरस्क्रिप्ट में रखा गया है। आईएसओ 10646 परिभाषित करता है एनएफकेसी सामान्यीकरण
इन सभी को एक मानक रूप में भी बदलने की योजना है, और जीसीसी चेतावनी देगा यदि आपका
यदि आप उपयोग करते हैं तो कोड NFKC में नहीं है -सामान्यीकृत = एनएफकेसी. यह चेतावनी तुलनीय है
प्रत्येक पहचानकर्ता के बारे में चेतावनी जिसमें O अक्षर होता है क्योंकि यह भ्रमित हो सकता है
अंक 0 के साथ, और इसलिए डिफ़ॉल्ट नहीं है, लेकिन स्थानीय कोडिंग के रूप में उपयोगी हो सकता है
सम्मेलन अगर प्रोग्रामिंग वातावरण इन्हें प्रदर्शित करने के लिए तय करने में असमर्थ है
वर्ण स्पष्ट रूप से।

-कोई पदावनत
बहिष्कृत सुविधाओं के उपयोग के बारे में चेतावनी न दें।

-अना-बहिष्कृत-घोषणाएँ
द्वारा बहिष्कृत के रूप में चिह्नित कार्यों, चरों और प्रकारों के उपयोग के बारे में चेतावनी न दें
"बहिष्कृत" विशेषता का उपयोग करना।

-कोई अतिप्रवाह
निरंतर अभिव्यक्तियों में संकलन-समय अतिप्रवाह के बारे में चेतावनी न दें।

-वोवरराइड-इनिट (सी और उद्देश्य-सी केवल)
यदि निर्दिष्ट का उपयोग करते समय साइड इफेक्ट के बिना एक आरंभिक फ़ील्ड को ओवरराइड किया जाता है तो चेतावनी दें
प्रारंभकर्ता।

यह चेतावनी शामिल है -वेक्स्ट्रा. दूसरे को पाने के लिए -वेक्स्ट्रा इसके बिना चेतावनियाँ,
उपयोग -वेक्स्ट्रा -नो-ओवरराइड-init.

- पैक्ड
चेतावनी दें कि यदि संरचना को पैक की गई विशेषता दी गई है, लेकिन पैक की गई विशेषता में नहीं है
संरचना के लेआउट या आकार पर प्रभाव। इस तरह की संरचनाओं के लिए गलत गठबंधन किया जा सकता है
थोड़ा लाभ। उदाहरण के लिए, इस कोड में, "स्ट्रक्चर बार" में वेरिएबल "fx" होगा
भले ही "स्ट्रक्चर बार" में पैक की गई विशेषता न हो, गलत तरीके से संरेखित किया जाए:

संरचना फू {
इंट x;
चार ए, बी, सी, डी;
} __attribute __ ((पैक));
स्ट्रक्चर बार {
चार जेड;
संरचना फू च;
};

-पैक्ड-बिटफील्ड-कंपैट
जीसीसी की 4.1, 4.2 और 4.3 श्रृंखला प्रकार के बिट-फ़ील्ड पर "पैक" विशेषता को अनदेखा करती है
"चार"। यह GCC 4.4 में तय किया गया है, लेकिन परिवर्तन से इसमें अंतर हो सकता है
संरचना लेआउट। GCC में ऐसे फ़ील्ड का ऑफ़सेट कब बदल गया है, GCC आपको सूचित करता है
4.4. उदाहरण के लिए इसमें फ़ील्ड "ए" और "बी" के बीच 4-बिट पैडिंग नहीं है
संरचना:

संरचना फू
{
चार ए: 4;
चार बी:8;
} __विशेषता__ ((पैक));

यह चेतावनी डिफ़ॉल्ट रूप से सक्षम है। उपयोग -नहीं-पैक-बिटफ़ील्ड-संगत इसे अक्षम करने के लिए
चेतावनी।

-पैडेड
चेतावनी दें कि क्या पैडिंग को संरचना में शामिल किया गया है, या तो के तत्व को संरेखित करने के लिए
संरचना या पूरी संरचना को संरेखित करने के लिए। कभी-कभी जब ऐसा होता है तो संभव है
पैडिंग को कम करने के लिए संरचना के क्षेत्रों को पुनर्व्यवस्थित करना और इस प्रकार बनाना
संरचना छोटी।

-अनावश्यक-गिरावट
चेतावनी अगर एक ही दायरे में एक से अधिक बार कुछ भी घोषित किया जाता है, यहां तक ​​​​कि उन मामलों में भी जहां
एकाधिक घोषणा मान्य है और कुछ भी नहीं बदलता है।

-वेस्टेड-बाहरी (सी और उद्देश्य-सी केवल)
चेतावनी दें कि किसी फ़ंक्शन के भीतर "बाहरी" घोषणा का सामना करना पड़ता है।

-विनलाइन
चेतावनी दें कि क्या कोई फ़ंक्शन इनलाइन नहीं किया जा सकता है और इसे इनलाइन घोषित किया गया था। इसके साथ भी
विकल्प, संकलक घोषित इनलाइन कार्यों में विफलताओं के बारे में चेतावनी नहीं देगा
सिस्टम हेडर।

संकलक यह निर्धारित करने के लिए कि क्या इनलाइन करना है या नहीं, विभिन्न प्रकार के अनुमान का उपयोग करता है
समारोह। उदाहरण के लिए, कंपाइलर फ़ंक्शन के आकार को ध्यान में रखता है
इनलाइन और इनलाइनिंग की मात्रा जो वर्तमान फ़ंक्शन में पहले ही की जा चुकी है।
इसलिए, स्रोत कार्यक्रम में प्रतीत होने वाले महत्वहीन परिवर्तन का कारण बन सकते हैं
द्वारा उत्पादित चेतावनियां -विनलाइन प्रकट होना या गायब होना।

-अवैध-ऑफसेटऑफ़ नहीं (सी++ और ऑब्जेक्टिव-सी++ केवल)
चेतावनियों को लागू करने से रोकें ऑफ़सेटऑफ़ एक गैर-पीओडी प्रकार के लिए मैक्रो। के अनुसार
1998 ISO C++ मानक, लागू करना ऑफ़सेटऑफ़ एक गैर-पीओडी प्रकार के लिए अपरिभाषित है। में
मौजूदा C++ कार्यान्वयन, हालांकि, ऑफ़सेटऑफ़ आम तौर पर सार्थक परिणाम देता है
कुछ प्रकार के गैर-पीओडी प्रकारों पर लागू होने पर भी। (जैसे एक साधारण struct कि
केवल एक निर्माता होने के कारण POD प्रकार होने में विफल रहता है।) यह ध्वज के लिए है
उपयोगकर्ता जो जानते हैं कि वे गैर-पोर्टेबल कोड लिख रहे हैं और जिन्होंने जानबूझकर किया है
इसके बारे में चेतावनी को नजरअंदाज करने के लिए चुना।

पर प्रतिबंध ऑफ़सेटऑफ़ C++ मानक के भावी संस्करण में ढील दी जा सकती है।

-नो-इंट-टू-पॉइंटर-कास्ट
किसी भिन्न आकार के पूर्णांक के सूचक प्रकार से कास्ट से चेतावनियों को रोकें। में
सी ++, छोटे आकार के सूचक प्रकार को कास्टिंग एक त्रुटि है। विंट-टू-पॉइंटर-कास्ट is
डिफ़ॉल्ट रूप से सक्षम।

-नो-पॉइंटर-टू-इंट-कास्ट (सी और उद्देश्य-सी केवल)
एक सूचक से एक अलग आकार के एक पूर्णांक प्रकार के लिए कास्ट से चेतावनियों को दबाएं।

-विनवैलिड-pch
चेतावनी दें कि यदि खोज पथ में कोई पूर्व-संकलित शीर्षलेख मिलता है, लेकिन उसका उपयोग नहीं किया जा सकता है।

-लंबा-लंबा
चेतावनी अगर लंबा लंबा प्रकार का प्रयोग किया जाता है। यह या तो सक्षम है पांडित्य or -पारंपरिक
ISO C90 और C++98 मोड में। चेतावनी संदेशों को बाधित करने के लिए, उपयोग करें -नो-लॉन्ग-लॉन्ग.

-वेरिएडिक-मैक्रोज़
चेतावनी दें कि यदि विविध मैक्रोज़ का उपयोग पांडित्य ISO C90 मोड, या GNU वैकल्पिक सिंटैक्स में किया जाता है
जब पांडित्य आईएसओ C99 मोड में। यह डिफ़ॉल्ट है। चेतावनी संदेशों को बाधित करने के लिए, उपयोग करें
-नो-वैराडिक-मैक्रोज़.

-वेक्टर-ऑपरेशन-प्रदर्शन
अगर आर्किटेक्चर की SIMD क्षमताओं के माध्यम से वेक्टर ऑपरेशन लागू नहीं किया जाता है तो चेतावनी दें।
प्रदर्शन ट्यूनिंग के लिए मुख्य रूप से उपयोगी है। वेक्टर ऑपरेशन लागू किया जा सकता है
"टुकड़ावार", जिसका अर्थ है कि प्रत्येक वेक्टर पर स्केलर ऑपरेशन किया जाता है
तत्व; "समानांतर में", जिसका अर्थ है कि वेक्टर ऑपरेशन का उपयोग करके कार्यान्वित किया जाता है
व्यापक प्रकार के स्केलर, जो सामान्य रूप से अधिक प्रदर्शन कुशल होते हैं; और "एकल के रूप में"
scalar", जिसका अर्थ है कि वेक्टर एक अदिश प्रकार में फ़िट हो जाता है।

-व्वला
यदि कोड में चर लंबाई सरणी का उपयोग किया जाता है तो चेतावनी दें। -वनो-व्ला की रोकथाम करेगा
पांडित्य परिवर्तनीय लंबाई सरणी की चेतावनी।

-अस्थिर-रजिस्टर-वर
चेतावनी दें कि रजिस्टर चर को अस्थिर घोषित किया गया है। अस्थिर संशोधक नहीं करता है
उन सभी अनुकूलन को रोकें जो रजिस्टर करने के लिए पढ़ने और/या लिखने को समाप्त कर सकते हैं
चर। यह चेतावनी द्वारा सक्षम की गई है -दीवार.

-अक्षम-अनुकूलन
अनुरोधित अनुकूलन पास अक्षम होने पर चेतावनी दें। यह चेतावनी आम तौर पर नहीं होती है
इंगित करें कि आपके कोड में कुछ गड़बड़ है; यह केवल इंगित करता है कि जीसीसी का
अनुकूलक प्रभावी ढंग से कोड को संभालने में असमर्थ थे। अक्सर समस्या यह होती है कि
आपका कोड बहुत बड़ा या बहुत जटिल है; GCC प्रोग्राम को ऑप्टिमाइज़ करने से मना कर देगा जब
अनुकूलन में अत्यधिक समय लगने की संभावना है।

-Wpointer-चिह्न (सी और उद्देश्य-सी केवल)
पॉइंटर तर्क पारित करने या अलग-अलग हस्ताक्षर के साथ असाइनमेंट के लिए चेतावनी दें। इस
विकल्प केवल सी और उद्देश्य-सी के लिए समर्थित है। इसका तात्पर्य है -दीवार और तक
पांडित्य, जिसे अक्षम किया जा सकता है -नो-सूचक-चिह्न.

-स्टैक-रक्षक
यह विकल्प तभी सक्रिय होता है जब -स्टैक-रक्षक सक्रिय है। यह कार्यों के बारे में चेतावनी देता है
जो स्टैक स्मैशिंग से सुरक्षित नहीं होगा।

-वनो-मडफ्लैप
उन निर्माणों के बारे में चेतावनियों को रोकें जिन्हें द्वारा यंत्रित नहीं किया जा सकता है -फमडफ्लैप.

-ओवरलेंथ-स्ट्रिंग्स
"न्यूनतम अधिकतम" लंबाई से अधिक लंबे स्ट्रिंग स्थिरांक के बारे में चेतावनी दें
सी मानक में निर्दिष्ट। आधुनिक कंपाइलर आमतौर पर स्ट्रिंग स्थिरांक की अनुमति देते हैं कि
मानक की न्यूनतम सीमा से बहुत अधिक हैं, लेकिन बहुत पोर्टेबल प्रोग्राम होना चाहिए
लंबे तार का उपयोग करने से बचें।

सीमा लागू होती है बाद स्ट्रिंग निरंतर संयोजन, और अनुगामी की गणना नहीं करता है
एनयूएल। C90 में, सीमा 509 वर्ण थी; C99 में, इसे बढ़ाकर 4095 कर दिया गया। C++98 करता है
एक मानक न्यूनतम अधिकतम निर्दिष्ट न करें, इसलिए हम ओवरलेंथ स्ट्रिंग्स का निदान नहीं करते हैं
सी ++।

यह विकल्प द्वारा निहित है पांडित्य, और के साथ अक्षम किया जा सकता है -नो-ओवरलेंथ-स्ट्रिंग्स.

-वंसफिक्स्ड-फ्लोट-स्थिरांक (सी और उद्देश्य-सी केवल)
GCC ऐसे किसी भी अस्थायी स्थिरांक के लिए चेतावनी जारी करेगा जिसमें प्रत्यय नहीं है। कब
के साथ प्रयोग किया जाता है -डब्ल्यूसिस्टम-हेडर यह सिस्टम हेडर में ऐसे स्थिरांक के बारे में चेतावनी देगा
फ़ाइलें। "FLOAT_CONST_DECIMAL64" के साथ उपयोग करने के लिए कोड तैयार करते समय यह उपयोगी हो सकता है
प्राग्मा दशमलव फ़्लोटिंग-पॉइंट एक्सटेंशन से C99 तक।

ऑप्शंस एसटी डीबगिंग आपका कार्यक्रम or जीसीसी
जीसीसी में कई विशेष विकल्प हैं जिनका उपयोग आपके प्रोग्राम या जीसीसी को डीबग करने के लिए किया जाता है:

-g ऑपरेटिंग सिस्टम के मूल स्वरूप में डिबगिंग जानकारी तैयार करें (स्टैब्स, सीओएफएफ,
XCOFF, या DWARF 2)। GDB इस डिबगिंग जानकारी के साथ काम कर सकता है।

स्टैब्स प्रारूप का उपयोग करने वाले अधिकांश सिस्टम पर, -g अतिरिक्त डिबगिंग जानकारी के उपयोग को सक्षम बनाता है
जिसका उपयोग केवल GDB ही कर सकता है; यह अतिरिक्त जानकारी GDB में डिबगिंग कार्य को बेहतर बनाती है लेकिन
संभवतः अन्य डिबगर्स को क्रैश कर देगा या प्रोग्राम को पढ़ने से मना कर देगा। अगर आप चाहते हैं
निश्चित रूप से नियंत्रित करने के लिए कि क्या अतिरिक्त जानकारी उत्पन्न करना है, उपयोग करें -गैस्टैब्स+,
-गैस्टैब्स, -जीएक्सकॉफ+, -gxcoffया, -gvms (निचे देखो)।

जीसीसी आपको उपयोग करने की अनुमति देता है -g साथ में -O. अनुकूलित कोड द्वारा लिया गया शॉर्टकट हो सकता है
कभी-कभी आश्चर्यजनक परिणाम उत्पन्न करते हैं: आपके द्वारा घोषित कुछ चर मौजूद नहीं हो सकते हैं
सब; नियंत्रण का प्रवाह कुछ समय के लिए वहां जा सकता है जहां आपने इसकी अपेक्षा नहीं की थी; कुछ बयान मई
निष्पादित नहीं किया जा सकता क्योंकि वे निरंतर परिणामों की गणना करते हैं या उनके मान पहले से ही थे
हाथ; कुछ बयान अलग-अलग जगहों पर निष्पादित हो सकते हैं क्योंकि उन्हें बाहर ले जाया गया था
लूप।

फिर भी अनुकूलित आउटपुट को डीबग करना संभव साबित होता है। यह उचित बनाता है
उन प्रोग्रामों के लिए अनुकूलक का उपयोग करने के लिए जिनमें बग हो सकते हैं।

निम्नलिखित विकल्प तब उपयोगी होते हैं जब जीसीसी अधिक क्षमता के साथ उत्पन्न होता है
एक से अधिक डिबगिंग प्रारूप।

-जीजीडीबी
GDB द्वारा उपयोग के लिए डिबगिंग जानकारी तैयार करें। इसका अर्थ है सबसे अधिक अभिव्यंजक का उपयोग करना
उपलब्ध प्रारूप (DWARF 2, स्टैब्स, या मूल प्रारूप यदि उनमें से कोई भी नहीं है
समर्थित), यदि संभव हो तो GDB एक्सटेंशन सहित।

-गैस्टैब्स
GDB के बिना, स्टैब्स प्रारूप (यदि वह समर्थित है) में डिबगिंग जानकारी तैयार करें
एक्सटेंशन। यह अधिकांश बीएसडी सिस्टम पर डीबीएक्स द्वारा उपयोग किया जाने वाला प्रारूप है। MIPS, अल्फा और . पर
सिस्टम V रिलीज़ 4 सिस्टम यह विकल्प स्टैब्स डिबगिंग आउटपुट उत्पन्न करता है जो कि नहीं है
DBX या SDB द्वारा समझा जाता है। सिस्टम V रिलीज़ 4 सिस्टम पर इस विकल्प के लिए GNU की आवश्यकता होती है
इकट्ठा करनेवाला।

-फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक
केवल प्रतीकों के लिए, स्टैब्स प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)
जिनका वास्तव में उपयोग किया जाता है।

-स्त्री-वर्ग-डीबग-हमेशा
केवल एक ऑब्जेक्ट फ़ाइल में C++ वर्ग के लिए डिबगिंग जानकारी उत्सर्जित करने के बजाय,
कक्षा का उपयोग करके सभी ऑब्जेक्ट फ़ाइलों में इसे उत्सर्जित करें। इस विकल्प का उपयोग केवल के साथ किया जाना चाहिए
डिबगर्स जो जीसीसी के सामान्य रूप से डिबगिंग जानकारी का उत्सर्जन करने के तरीके को संभालने में असमर्थ हैं
कक्षाओं के लिए क्योंकि इस विकल्प का उपयोग करने से डिबगिंग जानकारी का आकार बढ़ जाएगा
दो के एक कारक जितना।

-फनो-डीबग-प्रकार-अनुभाग
डिफ़ॉल्ट रूप से DWARF v4 या उच्च प्रकार के DIE का उपयोग करते समय उन्हें अपने में डाल दिया जाएगा
.debug_types अनुभाग को .debug_info अनुभाग का हिस्सा बनाने के बजाय। यह है
लिंकर के बाद से उन्हें एक अलग कॉमडेट अनुभागों में रखने के लिए और अधिक कुशल होगा
डुप्लिकेट को हटाने में सक्षम। लेकिन सभी DWARF उपभोक्ता .debug_types अनुभागों का समर्थन नहीं करते हैं
अभी तक.

-गैस्टैब्स+
जीएनयू का उपयोग करके, स्टैब्स प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)
एक्सटेंशन केवल GNU डिबगर (GDB) द्वारा समझे जाते हैं। इन एक्सटेंशन का उपयोग है
अन्य डिबगर्स को क्रैश करने या प्रोग्राम को पढ़ने से इनकार करने की संभावना है।

-गकॉफ
सीओएफएफ प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
सिस्टम V रिलीज़ 4 से पहले अधिकांश सिस्टम V सिस्टम पर SDB द्वारा उपयोग किया जाने वाला प्रारूप।

-gxcoff
XCOFF प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
IBM RS/6000 सिस्टम पर DBX डीबगर द्वारा उपयोग किया जाने वाला प्रारूप।

-जीएक्सकॉफ+
GNU का उपयोग करके XCOFF प्रारूप (यदि वह समर्थित है) में डिबगिंग जानकारी तैयार करें
एक्सटेंशन केवल GNU डिबगर (GDB) द्वारा समझे जाते हैं। इन एक्सटेंशन का उपयोग है
अन्य डिबगर्स को क्रैश करने या प्रोग्राम को पढ़ने से इंकार करने की संभावना है, और इसका कारण हो सकता है
GNU असेंबलर (GAS) के अलावा अन्य असेंबलर एक त्रुटि के साथ विफल हो जाते हैं।

-जीडवार्फ-संस्करण
डीडब्ल्यूएआरएफ प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
आईआरआईएक्स 6 पर डीबीएक्स द्वारा प्रयुक्त प्रारूप। का मूल्य संस्करण 2, 3 या 4 हो सकता है; NS
डिफ़ॉल्ट संस्करण 2 है।

ध्यान दें कि DWARF संस्करण 2 के साथ कुछ पोर्ट की आवश्यकता होती है, और हमेशा उपयोग करेंगे, कुछ गैर-
अनइंड टेबल में परस्पर विरोधी DWARF 3 एक्सटेंशन।

संस्करण 4 के लिए GDB 7.0 और . की आवश्यकता हो सकती है -fvar-ट्रैकिंग-असाइनमेंट अधिकतम लाभ के लिए।

-ग्रेकॉर्ड-जीसीसी-स्विच
यह स्विच कमांड-लाइन विकल्पों का कारण बनता है जो कंपाइलर को आमंत्रित करने के लिए उपयोग किया जाता है जो हो सकता है
DWARF में DW_AT_producer विशेषता में जोड़े जाने वाले कोड जनरेशन को प्रभावित करते हैं
डिबगिंग जानकारी। विकल्पों को रिक्त स्थान के साथ संयोजित किया जाता है जो उन्हें से अलग करते हैं
एक दूसरे और संकलक संस्करण से। यह सभी देखें -फ़्रेकॉर्ड-जीसीसी-स्विच अन्य के लिए
ऑब्जेक्ट फ़ाइल में कंपाइलर विकल्पों को संग्रहीत करने का तरीका।

-ग्नो-रिकॉर्ड-जीसीसी-स्विच
DWARF में DW_AT_producer विशेषता में कमांड-लाइन विकल्प जोड़ने की अनुमति न दें
डिबगिंग जानकारी। यह डिफ़ॉल्ट है।

-गस्ट्रिक्ट-बौना
के साथ चयनित की तुलना में बाद के DWARF मानक संस्करण के एक्सटेंशन का उपयोग करने की अनुमति न दें
-जीडवार्फ-संस्करण. बाद से गैर-विरोधी DWARF एक्सटेंशन का उपयोग करने वाले अधिकांश लक्ष्यों पर
मानक संस्करणों की अनुमति है।

-ग्नो-सख्त-बौना
के साथ चयनित की तुलना में बाद के DWARF मानक संस्करण के एक्सटेंशन का उपयोग करने की अनुमति दें
-जीडवार्फ-संस्करण.

-gvms
वीएमएस डीबग प्रारूप में डिबगिंग जानकारी तैयार करें (यदि वह समर्थित है)। यह है
VMS सिस्टम पर DEBUG द्वारा उपयोग किया जाने वाला प्रारूप।

-gस्तर
-जीजीडीबीस्तर
-गैस्टैब्सस्तर
-गकॉफस्तर
-gxcoffस्तर
-gvmsस्तर
डिबगिंग जानकारी का अनुरोध करें और उपयोग भी करें स्तर यह निर्दिष्ट करने के लिए कि कितनी जानकारी है। NS
डिफ़ॉल्ट स्तर 2 है।

स्तर 0 कोई डिबग जानकारी बिल्कुल नहीं देता है। इस प्रकार, -जी0 नकारता -g.

स्तर 1 न्यूनतम जानकारी उत्पन्न करता है, जो कि के कुछ हिस्सों में बैकट्रेस बनाने के लिए पर्याप्त है
प्रोग्राम जिसे आप डीबग करने की योजना नहीं बनाते हैं। इसमें कार्यों का विवरण शामिल है और
बाहरी चर, लेकिन स्थानीय चर और कोई पंक्ति संख्या के बारे में कोई जानकारी नहीं।

स्तर 3 में अतिरिक्त जानकारी शामिल है, जैसे कि इसमें मौजूद सभी मैक्रो परिभाषाएँ
कार्यक्रम। जब आप उपयोग करते हैं तो कुछ डिबगर मैक्रो विस्तार का समर्थन करते हैं -जी3.

-जीडवार्फ-2 एक संयोजित डिबग स्तर को स्वीकार नहीं करता है, क्योंकि GCC a का समर्थन करता था
विकल्प -गद्वारफ इसका मतलब DWARF के संस्करण 1 में डिबग जानकारी उत्पन्न करना था
प्रारूप (जो संस्करण 2 से बहुत अलग है), और यह बहुत भ्रमित करने वाला होता।
वह डिबग प्रारूप लंबे समय से अप्रचलित है, लेकिन विकल्प को अभी बदला नहीं जा सकता है। इसके बजाय उपयोग करें
अतिरिक्त -gस्तर DWARF के लिए डिबग स्तर को बदलने का विकल्प।

-gtoggle
डिबग जानकारी की पीढ़ी को बंद करें, अगर इस विकल्प को छोड़ने से यह उत्पन्न होता,
या इसे स्तर 2 पर चालू करें अन्यथा। कमांड लाइन में इस तर्क की स्थिति
कोई फर्क नहीं पड़ता, यह अन्य सभी विकल्पों के संसाधित होने के बाद प्रभावी होता है, और यह ऐसा करता है
केवल एक बार, चाहे कितनी बार दिया जाए। यह मुख्य रूप से इस्तेमाल करने का इरादा है
साथ में -fतुलना-डीबग.

-फडंप-फाइनल-इंसंस[=पट्टिका]
अंतिम आंतरिक प्रतिनिधित्व (RTL) को डंप करें पट्टिका. यदि वैकल्पिक तर्क है
छोड़ा गया (या यदि पट्टिका है "।"), डंप फ़ाइल का नाम संलग्न करके निर्धारित किया जाएगा
संकलन आउटपुट फ़ाइल नाम के लिए ".gkd"।

-fतुलना-डीबग[=opts]
यदि संकलन के दौरान कोई त्रुटि नहीं होती है, तो संकलक को दूसरी बार चलाएँ, जोड़कर opts और
-fतुलना-डीबग-सेकंड दूसरे संकलन के लिए पारित तर्कों के लिए। डंप
दोनों संकलनों में अंतिम आंतरिक प्रतिनिधित्व, और यदि वे भिन्न हैं तो एक त्रुटि प्रिंट करें।

यदि बराबर चिह्न छोड़ा जाता है, तो डिफ़ॉल्ट -gtoggle प्रयोग किया जाता है।

पर्यावरण चर GCC_COMPARE_DEBUG, यदि परिभाषित किया गया है, गैर-रिक्त और अशून्य,
परोक्ष रूप से सक्षम करता है -fतुलना-डीबग. अगर GCC_COMPARE_DEBUG एक स्ट्रिंग के लिए परिभाषित किया गया है
एक डैश से शुरू होता है, फिर इसका उपयोग किया जाता है opts, अन्यथा डिफ़ॉल्ट -gtoggle is
उपयोग किया गया।

-फकंपेयर-डीबग=, समान चिह्न के साथ लेकिन बिना opts, के बराबर है
-फनो-तुलना-डीबग, जो अंतिम प्रतिनिधित्व के डंपिंग को अक्षम करता है और
दूसरा संकलन, यहां तक ​​कि रोकना GCC_COMPARE_DEBUG प्रभावी होने से।

के दौरान पूर्ण कवरेज सत्यापित करने के लिए -fतुलना-डीबग परीक्षण, सेट GCC_COMPARE_DEBUG कहना
-fतुलना-डीबग-ओवरराइड नहीं;, जिसे जीसीसी किसी भी रूप में अमान्य विकल्प के रूप में अस्वीकार कर देगा
वास्तविक संकलन (प्रीप्रोसेसिंग, असेंबली या लिंकिंग के बजाय)। सिर्फ एक पाने के लिए
चेतावनी, सेटिंग GCC_COMPARE_DEBUG सेवा मेरे -w%n-fतुलना-डीबग नहीं ओवरराइड करूँगा।

-fतुलना-डीबग-सेकंड
अनुरोधित दूसरे संकलन के लिए यह विकल्प संकलक को निहित रूप से पारित किया गया है
by -fतुलना-डीबग, चेतावनियों को शांत करने और अन्य विकल्पों को छोड़ने के विकल्पों के साथ
जो फाइलों या मानक आउटपुट के साइड-इफेक्ट कंपाइलर आउटपुट का कारण बनता है।
डंप फ़ाइलें और संरक्षित अस्थायी फ़ाइलों का नाम बदल दिया जाता है ताकि ".gk" को शामिल किया जा सके
दूसरे संकलन के दौरान अतिरिक्त विस्तार, उन्हें अधिलेखित करने से बचने के लिए
पहले द्वारा उत्पन्न।

जब यह विकल्प कंपाइलर ड्राइवर को दिया जाता है, तो इसका कारण बनता है प्रथम करने के लिए संकलन
छोड़ दिया जाए, जो इसे कंपाइलर को उचित रूप से डिबग करने के अलावा कुछ और के लिए उपयोगी बनाता है।

-फेलिमिनेट-बौना2-डुप्स
प्रत्येक के बारे में डुप्लिकेट जानकारी को समाप्त करके DWARF2 डिबगिंग जानकारी को संपीड़ित करें
प्रतीक। यह विकल्प केवल DWARF2 डिबगिंग जानकारी उत्पन्न करते समय समझ में आता है
साथ में -जीडवार्फ-2.

-स्त्री-संरचना-डीबग-आधारभूत
संरचना जैसे प्रकारों के लिए डिबग जानकारी का उत्सर्जन केवल तभी करें जब का मूल नाम
संकलन स्रोत फ़ाइल उस फ़ाइल के मूल नाम से मेल खाती है जिसमें संरचना परिभाषित की गई थी।

यह विकल्प डिबगिंग जानकारी के आकार को काफी हद तक कम कर देता है, लेकिन पर
डिबगर को प्रकार की जानकारी में महत्वपूर्ण संभावित नुकसान। देखो
-स्त्री-संरचना-डीबग-कम किया गया कम आक्रामक विकल्प के लिए। देखो
-स्त्री-संरचना-डीबग-विस्तृत अधिक विस्तृत नियंत्रण के लिए।

यह विकल्प केवल DWARF 2 के साथ काम करता है।

-स्त्री-संरचना-डीबग-कम किया गया
संरचना जैसे प्रकारों के लिए डिबग जानकारी का उत्सर्जन केवल तभी करें जब का मूल नाम
संकलन स्रोत फ़ाइल उस फ़ाइल के मूल नाम से मेल खाती है जिसमें प्रकार परिभाषित किया गया था,
जब तक कि संरचना एक टेम्प्लेट या सिस्टम हेडर में परिभाषित न हो।

यह विकल्प डिबगिंग जानकारी के आकार को काफी कम कर देता है, कुछ के साथ
डीबगर को प्रकार की जानकारी में संभावित नुकसान। देखो -स्त्री-संरचना-डीबग-आधारभूत
अधिक आक्रामक विकल्प के लिए। देखो -स्त्री-संरचना-डीबग-विस्तृत अधिक विस्तृत के लिए
नियंत्रित करते हैं.

यह विकल्प केवल DWARF 2 के साथ काम करता है।

-स्त्री-संरचना-डीबग-विस्तृत[=कल्पना-सूची]
संरचना-जैसी प्रकार निर्दिष्ट करें जिसके लिए संकलक डीबग जानकारी उत्पन्न करेगा।
इरादा अलग-अलग ऑब्जेक्ट के बीच डुप्लिकेट स्ट्रक्चर डिबग जानकारी को कम करना है
एक ही कार्यक्रम के भीतर फ़ाइलें।

यह विकल्प का विस्तृत संस्करण है -स्त्री-संरचना-डीबग-कम किया गया और
-स्त्री-संरचना-डीबग-आधारभूत, जो अधिकांश जरूरतों के लिए काम करेगा।

एक विनिर्देशन में सिंटैक्स होता है [dir:|इंड:][ऑर्ड:|शैली:](कोई|व्यवस्था|आधार|कोई नहीं)

वैकल्पिक पहला शब्द विनिर्देश को सीधे उपयोग किए जाने वाले स्ट्रक्चर्स तक सीमित करता है
(dir:) या परोक्ष रूप से उपयोग किया जाता है (इंड:) एक संरचना प्रकार का उपयोग सीधे तब किया जाता है जब वह प्रकार होता है
एक चर का, सदस्य। पॉइंटर्स से स्ट्रक्चर्स के माध्यम से अप्रत्यक्ष उपयोग उत्पन्न होते हैं। अर्थात्,
जब एक अपूर्ण संरचना का उपयोग कानूनी होगा, तो उपयोग अप्रत्यक्ष है। एक उदाहरण है
struct एक प्रत्यक्ष; struct दो * परोक्ष;.

वैकल्पिक दूसरा शब्द विनिर्देश को सामान्य संरचना तक सीमित करता है (ऑर्ड:) या
सामान्य संरचनाएं (शैली:) जेनेरिक स्ट्रक्चर समझाने के लिए थोड़ा जटिल हैं। सी ++ के लिए,
ये टेम्पलेट वर्गों, या गैर-टेम्पलेट कक्षाओं की गैर-स्पष्ट विशेषज्ञता हैं
उपरोक्त के भीतर। अन्य प्रोग्रामिंग भाषाओं में जेनरिक होते हैं, लेकिन
-स्त्री-संरचना-डीबग-विस्तृत अभी तक उन्हें लागू नहीं करता है।

तीसरा शब्द उन structs के लिए स्रोत फ़ाइलों को निर्दिष्ट करता है जिनके लिए कंपाइलर
डीबग जानकारी उत्सर्जित करेगा। मूल्य कोई नहीं और कोई सामान्य अर्थ रखते हैं। NS
मूल्य आधार इसका मतलब है कि फ़ाइल के नाम का आधार जिसमें प्रकार की घोषणा है
प्रकट होता है मुख्य संकलन फ़ाइल के नाम के आधार से मेल खाना चाहिए। व्यवहार में,
इसका मतलब है कि प्रकार घोषित किया गया फू.सी और फू.एच डीबग जानकारी होगी, लेकिन
अन्य शीर्षलेख में घोषित प्रकार नहीं होंगे। महत्व व्यवस्था मतलब उन प्रकार के संतोषजनक
आधार या सिस्टम या कंपाइलर हेडर में घोषित किया गया।

आपको अपने आवेदन के लिए सर्वोत्तम सेटिंग्स निर्धारित करने के लिए प्रयोग करने की आवश्यकता हो सकती है।

डिफ़ॉल्ट है -फेमिट-स्ट्रक्चर-डीबग-विस्तृत = सभी.

यह विकल्प केवल DWARF 2 के साथ काम करता है।

-फनो-मर्ज-डीबग-स्ट्रिंग्स
लिंकर को डिबगिंग जानकारी में स्ट्रिंग्स को एक साथ मर्ज न करने के लिए निर्देशित करें जो हैं
विभिन्न ऑब्जेक्ट फ़ाइलों में समान। विलय सभी असेंबलरों द्वारा समर्थित नहीं है या
लिंकर्स मर्ज करने से आउटपुट फ़ाइल में डिबग जानकारी का आकार कम हो जाता है
लिंक प्रसंस्करण समय बढ़ाने की लागत। मर्जिंग डिफ़ॉल्ट रूप से सक्षम है।

-फडेबग-उपसर्ग-मानचित्र=पुराना=नई
निर्देशिका में फ़ाइलें संकलित करते समय पुराना, डिबगिंग जानकारी रिकॉर्ड करें जो उनका वर्णन करती है
in नई बजाय.

-फनो-बौना2-सीएफआई-एएसएम
Emit DWARF 2 उपयोग करने के बजाय कंपाइलर जनरेटेड ".eh_frame" सेक्शन के रूप में जानकारी को खोल दें
गैस ".cfi_*" निर्देश।

-p विश्लेषण कार्यक्रम के लिए उपयुक्त प्रोफ़ाइल जानकारी लिखने के लिए अतिरिक्त कोड उत्पन्न करें
रखने की. आपको इस विकल्प का उपयोग उन स्रोत फ़ाइलों को संकलित करते समय करना चाहिए जिनके बारे में आप डेटा चाहते हैं,
और आपको लिंक करते समय भी इसका इस्तेमाल करना चाहिए।

-पीजी विश्लेषण कार्यक्रम के लिए उपयुक्त प्रोफ़ाइल जानकारी लिखने के लिए अतिरिक्त कोड उत्पन्न करें
ग्प्रोफ. आपको इस विकल्प का उपयोग उन स्रोत फ़ाइलों को संकलित करते समय करना चाहिए जिनके बारे में आप डेटा चाहते हैं,
और आपको लिंक करते समय भी इसका इस्तेमाल करना चाहिए।

-Q कम्पाइलर को प्रत्येक फंक्शन नाम को संकलित करने के लिए प्रिंट आउट करवाता है, और कुछ प्रिंट करता है
समाप्त होने पर प्रत्येक पास के बारे में आंकड़े।

-फटाइम-रिपोर्ट
कंपाइलर को प्रत्येक पास द्वारा खर्च किए गए समय के बारे में कुछ आंकड़े प्रिंट करता है जब यह
खत्म।

-एफएमईएम-रिपोर्ट
संकलक को स्थायी स्मृति आवंटन के बारे में कुछ आँकड़े प्रिंट करवाता है जब यह
खत्म।

-फप्री-आईपीए-मेम-रिपोर्ट
-फपोस्ट-आईपीए-मेम-रिपोर्ट
संकलक को या . से पहले स्थायी स्मृति आवंटन के बारे में कुछ आंकड़े मुद्रित करता है
अंतरप्रक्रियात्मक अनुकूलन के बाद।

-फस्टैक-उपयोग
प्रति-फ़ंक्शन पर प्रोग्राम के लिए कंपाइलर आउटपुट स्टैक उपयोग जानकारी बनाता है
आधार। डंप के लिए फ़ाइल नाम संलग्न करके बनाया गया है .SU को औक्सनाम. औक्सनाम is
आउटपुट फ़ाइल के नाम से उत्पन्न, यदि स्पष्ट रूप से निर्दिष्ट किया गया है और यह एक नहीं है
निष्पादन योग्य, अन्यथा यह स्रोत फ़ाइल का बेसनाम है। एक प्रविष्टि . से बनी है
तीन क्षेत्र:

· समारोह का नाम।

· कई बाइट्स।

· एक या अधिक क्वालीफायर: "स्थिर", "गतिशील", "बाध्य"।

क्वालीफायर "स्थिर" का अर्थ है कि फ़ंक्शन स्थिर रूप से स्टैक में हेरफेर करता है: a
फ़ंक्शन प्रविष्टि पर फ़्रेम के लिए बाइट्स की निश्चित संख्या आवंटित की जाती है और जारी की जाती है
समारोह से बाहर निकलें; फ़ंक्शन में अन्यथा कोई स्टैक समायोजन नहीं किया जाता है। दूसरा
फ़ील्ड बाइट्स की यह निश्चित संख्या है।

क्वालीफायर "डायनेमिक" का अर्थ है कि फ़ंक्शन गतिशील रूप से स्टैक में हेरफेर करता है: in
ऊपर वर्णित स्थिर आवंटन के अलावा, स्टैक समायोजन में किए जाते हैं
फ़ंक्शन का मुख्य भाग, उदाहरण के लिए फ़ंक्शन कॉल के आस-पास तर्कों को पुश/पॉप करने के लिए। अगर
क्वालीफायर "बाउंडेड" भी मौजूद है, इन समायोजनों की मात्रा सीमित है
संकलन समय और दूसरा क्षेत्र उपयोग किए गए स्टैक की कुल मात्रा की ऊपरी सीमा है
समारोह द्वारा। यदि यह मौजूद नहीं है, तो इन समायोजनों की राशि सीमित नहीं है
संकलन समय पर और दूसरा क्षेत्र केवल बंधे हुए भाग का प्रतिनिधित्व करता है।

-फ्रोफाइल-आर्क्स
कोड जोड़ें ताकि प्रोग्राम प्रवाहित हो आर्क्स वाद्य यंत्र हैं। कार्यक्रम के निष्पादन के दौरान
रिकॉर्ड करता है कि प्रत्येक शाखा और कॉल कितनी बार निष्पादित की जाती है और कितनी बार ली जाती है
या लौटता है। जब संकलित प्रोग्राम बाहर निकलता है तो यह इस डेटा को एक फ़ाइल में सहेजता है जिसे कहा जाता है
auxname.gcda प्रत्येक स्रोत फ़ाइल के लिए। डेटा का उपयोग प्रोफ़ाइल-निर्देशित के लिए किया जा सकता है
अनुकूलन (-fशाखा-संभावनाएं), या परीक्षण कवरेज विश्लेषण के लिए
(-फटेस्ट-कवरेज) प्रत्येक वस्तु फ़ाइल का औक्सनाम के नाम से उत्पन्न होता है
आउटपुट फ़ाइल, यदि स्पष्ट रूप से निर्दिष्ट है और यह अंतिम निष्पादन योग्य नहीं है, अन्यथा यह
स्रोत फ़ाइल का बेसनाम है। दोनों ही मामलों में कोई भी प्रत्यय हटा दिया जाता है (जैसे
foo.gcda इनपुट फ़ाइल के लिए डीआईआर/फू.सीया, डीआईआर/foo.gcda के रूप में निर्दिष्ट आउटपुट फ़ाइल के लिए -o
dir / foo.o).

--कवरेज
इस विकल्प का उपयोग कवरेज विश्लेषण के लिए उपकरण कोड को संकलित और लिंक करने के लिए किया जाता है। NS
विकल्प का समानार्थी है -फ्रोफाइल-आर्क्स -फटेस्ट-कवरेज (संकलन करते समय) और -एलजीसीओवी
(लिंक करते समय)। अधिक विवरण के लिए उन विकल्पों के लिए दस्तावेज़ देखें।

स्रोत फ़ाइलों को संकलित करें -फ्रोफाइल-आर्क्स प्लस ऑप्टिमाइज़ेशन और कोड जनरेशन
विकल्प। परीक्षण कवरेज विश्लेषण के लिए, अतिरिक्त का उपयोग करें -फटेस्ट-कवरेज विकल्प.
आपको प्रोग्राम में प्रत्येक स्रोत फ़ाइल को प्रोफाइल करने की आवश्यकता नहीं है।

· अपनी वस्तु फाइलों को के साथ लिंक करें -एलजीसीओवी or -फ्रोफाइल-आर्क्स (उत्तरार्द्ध का तात्पर्य है
भूतपूर्व)।

आर्क प्रोफाइल बनाने के लिए प्रोग्राम को प्रतिनिधि वर्कलोड पर चलाएं
जानकारी। इसे कितनी भी बार दोहराया जा सकता है। आप समवर्ती चला सकते हैं
आपके प्रोग्राम के उदाहरण, और बशर्ते कि फ़ाइल सिस्टम लॉकिंग का समर्थन करता हो,
डेटा फ़ाइलों को सही ढंग से अपडेट किया जाएगा। इसके अलावा "कांटा" कॉल का पता लगाया जाता है और
सही ढंग से संभाला (दोहरी गिनती नहीं होगी)।

प्रोफ़ाइल-निर्देशित अनुकूलन के लिए, स्रोत फ़ाइलों को उसी के साथ फिर से संकलित करें
अनुकूलन और कोड जनरेशन विकल्प प्लस -fशाखा-संभावनाएं.

· परीक्षण कवरेज विश्लेषण के लिए, उपयोग करें जीसीओवी से मानव पठनीय जानकारी का उत्पादन करने के लिए
la .gcno और .gcda फ़ाइलें। को देखें जीसीओवी आगे के लिए दस्तावेज
जानकारी.

- -फ्रोफाइल-आर्क्स, आपके प्रोग्राम के प्रत्येक फंक्शन के लिए GCC एक प्रोग्राम फ़्लो बनाता है
ग्राफ, फिर ग्राफ के लिए फैले हुए पेड़ को ढूंढता है। केवल चाप जो पर नहीं हैं
फैले हुए पेड़ को यंत्रीकृत किया जाना चाहिए: संकलक संख्या की गणना करने के लिए कोड जोड़ता है
कई बार इन चापों को निष्पादित किया जाता है। जब चाप के लिए एकमात्र निकास या एकमात्र प्रवेश द्वार है
एक ब्लॉक, इंस्ट्रूमेंटेशन कोड को ब्लॉक में जोड़ा जा सकता है; अन्यथा, एक नया मूल
इंस्ट्रूमेंटेशन कोड रखने के लिए ब्लॉक बनाया जाना चाहिए।

-फटेस्ट-कवरेज
एक नोट फ़ाइल तैयार करें कि जीसीओवी कोड-कवरेज उपयोगिता प्रोग्राम दिखाने के लिए उपयोग कर सकती है
कवरेज। प्रत्येक स्रोत फ़ाइल की नोट फ़ाइल कहलाती है औक्सनाम.gcno। को देखें
-फ्रोफाइल-आर्क्स के विवरण के लिए उपरोक्त विकल्प औक्सनाम और कैसे करना है पर निर्देश
परीक्षण कवरेज डेटा उत्पन्न करें। कवरेज डेटा स्रोत फ़ाइलों से अधिक निकटता से मेल खाएगा,
यदि आप अनुकूलन नहीं करते हैं।

-एफडीबीजी-सीएनटी-सूची
सभी डिबग काउंटरों के लिए नाम और काउंटर की ऊपरी सीमा को प्रिंट करें।

-एफडीबीजी-सीएनटी=काउंटर-वैल्यू-लिस्ट
आंतरिक डीबग काउंटर ऊपरी बाउंड सेट करें। काउंटर-वैल्यू-लिस्ट अल्पविराम से अलग किया गया है
की सूची नाम:मूल्य जोड़े जो प्रत्येक डिबग काउंटर की ऊपरी सीमा निर्धारित करते हैं नाम सेवा मेरे
मूल्य. सभी डिबग काउंटरों की आरंभिक ऊपरी सीमा होती है UINT_MAX, इस प्रकार डीबीजी_सीएनटी ()
हमेशा सत्य लौटाता है जब तक कि ऊपरी सीमा इस विकल्प द्वारा निर्धारित नहीं की जाती है। उदाहरण के साथ
-fdbg-cnt=dce:10,tail_call:0 dbg_cnt(dce) केवल पहले 10 के लिए सही होगा
आमंत्रण

- योग्य-तरह-पास
-fअक्षम-तरह-पास=श्रेणी-सूची
यह डिबगिंग विकल्पों का एक सेट है जिसका उपयोग स्पष्ट रूप से अक्षम/सक्षम करने के लिए किया जाता है
अनुकूलन गुजरता है। कंपाइलर उपयोगकर्ताओं के लिए, पास को सक्षम/अक्षम करने के लिए नियमित विकल्प
की जगह इस्तेमाल किया जाना चाहिए।

*<-fdisable-आईपीए-पास>
आईपीए पास अक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या।

*<-fdisable-rtl-पास>
*<-fdisable-rtl-पास=श्रेणी-सूची>
आरटीएल पास अक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या। श्रेणी-सूची अल्पविराम से अलग की गई सूची है
फ़ंक्शन रेंज या असेंबलर नाम। प्रत्येक श्रेणी एक संख्या जोड़ी है जो a . से अलग होती है
बृहदान्त्र। सीमा दोनों सिरों में समावेशी है। यदि सीमा तुच्छ है, तो संख्या
जोड़ी को एकल संख्या के रूप में सरल बनाया जा सकता है। यदि फ़ंक्शन का cgraph नोड है यूआईडी is
निर्दिष्ट सीमाओं में से एक के भीतर गिरने, पास उसके लिए अक्षम है
समारोह। यूआईडी डंप फ़ाइल के फ़ंक्शन हेडर में दिखाया गया है, और पास
विकल्प का उपयोग करके नामों को डंप किया जा सकता है -फडंप-पास.

*<-fdisable-पेड़-पास>
*<-fdisable-पेड़-पास=श्रेणी-सूची>
ट्री पास अक्षम करें पास. देखना -fdisable-rtl विकल्प के विवरण के लिए
तर्क।

*<-फेनेबल-आईपीए-पास>
आईपीए पास सक्षम करें पास. पास पास नाम है। यदि वही पास स्थिर है
कंपाइलर में कई बार इनवॉइस किया जाता है, पास का नाम a . के साथ जोड़ा जाना चाहिए
1 से शुरू होने वाली अनुक्रमिक संख्या।

*<-फेनेबल-आरटीएल-पास>
*<-फेनेबल-आरटीएल-पास=श्रेणी-सूची>
आरटीएल पास सक्षम करें पास. देखना -fdisable-rtl विकल्प तर्क विवरण के लिए और
उदाहरण।

*<-फनेबल-पेड़-पास>
*<-फनेबल-पेड़-पास=श्रेणी-सूची>
ट्री पास सक्षम करें पास. देखना -fdisable-rtl विकल्प तर्कों के विवरण के लिए।

# सभी कार्यों के लिए ccp1 को अक्षम करें
-fdisable-पेड़-ccp1
# उस फ़ंक्शन के लिए पूर्ण अनरोल अक्षम करें जिसका cgraph नोड uid 1 है
-फेनेबल-पेड़-कुनरोल = 1
# निम्नलिखित श्रेणियों में कार्यों के लिए gcse2 को अक्षम करें [1,1],
# [300,400], और [400,1000]
# foo और foo2 फ़ंक्शन के लिए gcse2 को अक्षम करें
-fdisable-rtl-gcse2=foo,foo2
# अर्ली इनलाइनिंग अक्षम करें
-fdisable-पेड़-einline
# आईपीए इनलाइनिंग अक्षम करें
-fdisable-आईपीए-इनलाइन
# ट्री फुल अनरोल सक्षम करें
-फेनेबल-पेड़-अनरोल

-dपत्र
-फडंप-आरटीएल-पास
द्वारा निर्दिष्ट समय पर संकलन के दौरान डिबगिंग डंप बनाने के लिए कहते हैं पत्र। इस
कंपाइलर के RTL-आधारित पास को डीबग करने के लिए उपयोग किया जाता है। अधिकांश के लिए फ़ाइल नाम
एक पास नंबर और एक शब्द जोड़कर डंप किए जाते हैं डंपनाम, और
फ़ाइलें आउटपुट फ़ाइल की निर्देशिका में बनाई जाती हैं। ध्यान दें कि पास संख्या है
पास प्रबंधक के रूप में पास पंजीकृत होने के साथ ही सांख्यिकीय रूप से गणना की जाती है। इस प्रकार
नंबरिंग पास के निष्पादन के गतिशील क्रम से संबंधित नहीं है। विशेष रूप से,
एक प्लगइन द्वारा स्थापित एक पास की संख्या 200 से अधिक हो सकती है, भले ही इसे काफी निष्पादित किया गया हो
जल्दी। डंपनाम आउटपुट फ़ाइल के नाम से उत्पन्न होता है, यदि स्पष्ट रूप से
निर्दिष्ट है और यह निष्पादन योग्य नहीं है, अन्यथा यह स्रोत का आधारनाम है
फ़ाइल। इन स्विच के अलग-अलग प्रभाव हो सकते हैं जब -E प्रीप्रोसेसिंग के लिए उपयोग किया जाता है।

डीबग डंप को सक्षम किया जा सकता है a -fdump-rtl स्विच या कुछ -d विकल्प पत्र। यहाँ
में उपयोग के लिए संभावित अक्षर हैं पास और पत्र, और उनके अर्थ:

-फडंप-आरटीएल-संरेखण
डंप के बाद शाखा संरेखण की गणना की गई है।

-fdump-rtl-asmcons
आरटीएल स्टेटमेंट्स को ठीक करने के बाद डंप करें जो असंतुष्ट/बाहर बाधाओं से संतुष्ट हैं।

-fdump-rtl-auto_inc_dec
ऑटो-इंक-दिसंबर खोज के बाद डंप करें। यह पास केवल आर्किटेक्चर पर चलता है कि
ऑटो इंक या ऑटो डीसी निर्देश हैं।

-फडंप-आरटीएल-बाधाएं
बैरियर निर्देशों की सफाई के बाद डंप करें।

-फडंप-आरटीएल-बीबीपार्ट
गर्म और ठंडे बुनियादी ब्लॉकों को विभाजित करने के बाद डंप करें।

-fdump-rtl-bbro
ब्लॉक रीऑर्डर करने के बाद डंप करें।

-फडंप-आरटीएल-बीटीएल1
-फडंप-आरटीएल-बीटीएल2
-फडंप-आरटीएल-बीटीएल1 और -फडंप-आरटीएल-बीटीएल2 दो शाखा लक्ष्य के बाद डंपिंग सक्षम करें
लोड अनुकूलन गुजरता है।

-फडंप-आरटीएल-बाईपास
कूदने के बाद डंप करें और प्रवाह अनुकूलन को नियंत्रित करें।

-फडंप-आरटीएल-गठबंधन
RTL निर्देश संयोजन पास होने के बाद डंप करें।

-फडम्प-आरटीएल-कंपगोटोस
गणना किए गए गोटो को डुप्लिकेट करने के बाद डंप करें।

-फडंप-आरटीएल-सीई1
-फडंप-आरटीएल-सीई2
-फडंप-आरटीएल-सीई3
-फडंप-आरटीएल-सीई1, -फडंप-आरटीएल-सीई2, तथा -फडंप-आरटीएल-सीई3 तीन के बाद डंपिंग सक्षम करें
यदि रूपांतरण गुजरता है।

-fdump-rtl-cprop_hardreg
हार्ड रजिस्टर कॉपी प्रचार के बाद डंप करें।

-फडंप-आरटीएल-सीएसए
स्टैक समायोजन के संयोजन के बाद डंप करें।

-फडंप-आरटीएल-सीएसई1
-फडंप-आरटीएल-सीएसई2
-फडंप-आरटीएल-सीएसई1 और -फडंप-आरटीएल-सीएसई2 दो सामान्य उप के बाद डंपिंग सक्षम करें
अभिव्यक्ति उन्मूलन गुजरता है।

-फडंप-आरटीएल-डीसीई
स्टैंडअलोन डेड कोड एलिमिनेशन पास होने के बाद डंप करें।

-fdump-rtl-dbr
विलंबित शाखा शेड्यूलिंग के बाद डंप करें।

-फडम्प-आरटीएल-डीसीई1
-फडम्प-आरटीएल-डीसीई2
-फडम्प-आरटीएल-डीसीई1 और -फडम्प-आरटीएल-डीसीई2 दो मृत दुकान के बाद डंपिंग सक्षम करें
उन्मूलन गुजरता है।

-फडम्प-आरटीएल-एह
ईएच हैंडलिंग कोड को अंतिम रूप देने के बाद डंप करें।

-fdump-rtl-eh_ranges
ईएच हैंडलिंग रेंज क्षेत्रों के रूपांतरण के बाद डंप।

-फडंप-आरटीएल-विस्तार
आरटीएल पीढ़ी के बाद डंप।

-fdump-rtl-fwprop1
-fdump-rtl-fwprop2
-fdump-rtl-fwprop1 और -fdump-rtl-fwprop2 दो आगे के बाद डंपिंग सक्षम करें
प्रसार गुजरता है।

-फडम्प-आरटीएल-जीसीएसई1
-फडम्प-आरटीएल-जीसीएसई2
-फडम्प-आरटीएल-जीसीएसई1 और -फडम्प-आरटीएल-जीसीएसई2 ग्लोबल कॉमन के बाद डंपिंग सक्षम करें
उप-अभिव्यक्ति उन्मूलन।

-fdump-rtl-init-regs
रजिस्टरों के आरंभीकरण के बाद डंप करें।

-fdump-rtl-initvals
प्रारंभिक मान सेट की गणना के बाद डंप करें।

-fdump-rtl-into_cfglayout
cfglayout मोड में कनवर्ट करने के बाद डंप करें।

-फडंप-आरटीएल-इरा
पुनरावृत्त रजिस्टर आवंटन के बाद डंप करें।

-फडंप-आरटीएल-जंप
दूसरी छलांग अनुकूलन के बाद डंप करें।

-फडंप-आरटीएल-लूप2
-फडंप-आरटीएल-लूप2 rtl लूप ऑप्टिमाइज़ेशन पास होने के बाद डंपिंग को सक्षम करता है।

-फडंप-आरटीएल-मच
मशीन पर निर्भर पुनर्गठन पास करने के बाद डंप करें, यदि वह पास है
मौजूद।

-fdump-rtl-mode_sw
अनावश्यक मोड स्विच को हटाने के बाद डंप करें।

-fdump-rtl-rnreg
रजिस्टर रीनंबरिंग के बाद डंप करें।

-fdump-rtl-outof_cfglayout
cfglayout मोड से कनवर्ट करने के बाद डंप करें।

-फडंप-आरटीएल-पीपहोल2
पीपहोल पास होने के बाद डंप करें।

-fdump-rtl-postreload
पोस्ट-रीलोड ऑप्टिमाइज़ेशन के बाद डंप करें।

-fdump-rtl-pro_and_epilogue
फ़ंक्शन प्रस्तावना और उपसंहार उत्पन्न करने के बाद डंप करें।

-fdump-rtl-regmove
रजिस्टर मूव पास के बाद डंप करें।

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 और -fdump-rtl-sched2 मूल ब्लॉक के बाद डंपिंग सक्षम करें
शेड्यूलिंग पास।

-फडंप-आरटीएल-देखें
साइन एक्सटेंशन हटाने के बाद डंप करें।

-फडंप-आरटीएल-सेकब्स्ट्र
सामान्य अनुक्रम खोज के बाद डंप करें।

-फडंप-आरटीएल-छोटा
शाखाओं को छोटा करने के बाद डंप करें।

-फडंप-आरटीएल-सिबलिंग
सिबलिंग कॉल ऑप्टिमाइज़ेशन के बाद डंप करें।

-फडम्प-आरटीएल-स्प्लिट1
-फडम्प-आरटीएल-स्प्लिट2
-फडम्प-आरटीएल-स्प्लिट3
-फडम्प-आरटीएल-स्प्लिट4
-फडम्प-आरटीएल-स्प्लिट5
-फडम्प-आरटीएल-स्प्लिट1, -फडम्प-आरटीएल-स्प्लिट2, -फडम्प-आरटीएल-स्प्लिट3, -फडम्प-आरटीएल-स्प्लिट4 और
-फडम्प-आरटीएल-स्प्लिट5 निर्देश बंटवारे के पांच दौर के बाद डंपिंग सक्षम करें।

-फडंप-आरटीएल-एसएमएस
मॉड्यूल शेड्यूलिंग के बाद डंप करें। यह पास केवल कुछ आर्किटेक्चर पर चलाया जाता है।

-फडंप-आरटीएल-स्टैक
GCC की "फ्लैट रजिस्टर फ़ाइल" रजिस्टर से x87's . में रूपांतरण के बाद डंप करें
ढेर की तरह रजिस्टर। यह पास केवल x86 वेरिएंट पर चलता है।

-fdump-rtl-subreg1
-fdump-rtl-subreg2
-fdump-rtl-subreg1 और -fdump-rtl-subreg2 दो सबरेग के बाद डंपिंग सक्षम करें
विस्तार गुजरता है।

-फडंप-आरटीएल-अनशेयर
डंप के बाद सभी rtl को साझा नहीं किया गया है।

-fdump-rtl-vartrack
परिवर्तनीय ट्रैकिंग के बाद डंप करें।

-fdump-rtl-vregs
वर्चुअल रजिस्टर को हार्ड रजिस्टर में बदलने के बाद डंप करें।

-फडंप-आरटीएल-वेब
लाइव रेंज बंटवारे के बाद डंप करें।

-फडम्प-आरटीएल-रेगक्लास
-fdump-rtl-subregs_of_mode_init
-fdump-rtl-subregs_of_mode_finish
-fdump-rtl-dfinit
-fdump-rtl-dfinish
ये डंप परिभाषित हैं लेकिन हमेशा खाली फाइलें उत्पन्न करते हैं।

-इन
-फडंप-आरटीएल-सभी
ऊपर सूचीबद्ध सभी डंपों का उत्पादन करें।

-डीए असेंबलर आउटपुट को विविध डिबगिंग जानकारी के साथ एनोटेट करें।

-डीडी सामान्य के अलावा, प्रीप्रोसेसिंग के अंत में सभी मैक्रो परिभाषाओं को डंप करें
उत्पादन.

-डीएच जब भी कोई त्रुटि होती है तो कोर डंप तैयार करें।

-डॉ एक टिप्पणी के साथ असेंबलर आउटपुट को एनोटेट करें जो दर्शाता है कि कौन सा पैटर्न और
वैकल्पिक प्रयोग किया गया। प्रत्येक निर्देश की लंबाई भी मुद्रित होती है।

-डीपी प्रत्येक निर्देश से पहले एक टिप्पणी के रूप में आरटीएल को असेंबलर आउटपुट में डंप करें। भी
चालू करें -डॉ एनोटेशन।

-डीवी अन्य संकेतित डंप फ़ाइलों में से प्रत्येक के लिए (-फडंप-आरटीएल-पास), डंप ए
वीसीजी के साथ देखने के लिए उपयुक्त नियंत्रण प्रवाह ग्राफ का प्रतिनिधित्व
फ़ाइल.पास.वीसीजी.

-डीएक्स इसे संकलित करने के बजाय किसी फ़ंक्शन के लिए बस आरटीएल उत्पन्न करें। आमतौर पर के साथ प्रयोग किया जाता है
-फडंप-आरटीएल-विस्तार.

-fdump-noaddr
डिबगिंग डंप करते समय, एड्रेस आउटपुट को दबाएं। यह इसे और अधिक व्यवहार्य बनाता है
विभिन्न कंपाइलर बायनेरिज़ के साथ कंपाइलर इनवोकेशन के लिए डिबगिंग डंप पर उपयोग करें
और/या अलग-अलग टेक्स्ट/बीएसएस/डेटा/हीप/स्टैक/डीएसओ स्टार्ट लोकेशन।

-फडंप-अननंबर्ड
डिबगिंग डंप करते समय, निर्देश संख्या और पता आउटपुट दबाएं। इस
कंपाइलर इनवोकेशन के लिए डिबगिंग डंप पर अंतर का उपयोग करना अधिक संभव बनाता है
विभिन्न विकल्प, विशेष रूप से साथ और बिना -g.

-फडंप-अननंबर्ड-लिंक्स
डिबगिंग डंप करते समय (देखें -d उपरोक्त विकल्प), के लिए निर्देश संख्या को दबाएं
एक क्रम में पिछले और अगले निर्देशों के लिंक।

-फडंप-अनुवाद-इकाई (सी ++ केवल)
-फडंप-अनुवाद-इकाई-विकल्पों (सी ++ केवल)
फ़ाइल में संपूर्ण अनुवाद इकाई के लिए ट्री संरचना का प्रतिनिधित्व डंप करें।
फ़ाइल का नाम संलग्न करके बनाया गया है .तु स्रोत फ़ाइल नाम के लिए, और फ़ाइल है
आउटपुट फ़ाइल के समान निर्देशिका में बनाया गया। अगर -विकल्पों प्रपत्र का उपयोग किया जाता है,
विकल्पों के लिए वर्णित डंप के विवरण को नियंत्रित करता है -फडंप-पेड़ विकल्प.

-फडम्प-वर्ग-पदानुक्रम (सी ++ केवल)
-फडम्प-वर्ग-पदानुक्रम-विकल्पों (सी ++ केवल)
प्रत्येक वर्ग के पदानुक्रम और वर्चुअल फ़ंक्शन टेबल लेआउट का प्रतिनिधित्व a
फ़ाइल। फ़ाइल का नाम संलग्न करके बनाया गया है ।कक्षा स्रोत फ़ाइल नाम और फ़ाइल के लिए
आउटपुट फ़ाइल के समान निर्देशिका में बनाया गया है। अगर -विकल्पों प्रपत्र का उपयोग किया जाता है,
विकल्पों के लिए वर्णित डंप के विवरण को नियंत्रित करता है -फडंप-पेड़ विकल्प.

-फडम्प-आईपीए-स्विच
अंतर-प्रक्रियात्मक विश्लेषण भाषा ट्री के विभिन्न चरणों में डंपिंग को नियंत्रित करने के लिए a
फ़ाइल। फ़ाइल नाम स्रोत में एक स्विच विशिष्ट प्रत्यय जोड़कर उत्पन्न होता है
फ़ाइल नाम, और फ़ाइल आउटपुट फ़ाइल के समान निर्देशिका में बनाई गई है। NS
निम्नलिखित डंप संभव हैं:

सब सभी अंतर-प्रक्रियात्मक विश्लेषण डंप सक्षम करता है।

सीग्राफ
कॉल-ग्राफ़ ऑप्टिमाइज़ेशन, अप्रयुक्त फ़ंक्शन हटाने और . के बारे में जानकारी डंप करता है
इनलाइनिंग निर्णय।

इनलाइन
फ़ंक्शन इनलाइनिंग के बाद डंप करें।

-फडंप-पास
ऑप्टिमाइज़ेशन पास की सूची को डंप करें जो वर्तमान द्वारा चालू और बंद हैं
कमांड लाइन विकल्प।

-fdump-आँकड़े-विकल्प
एक अलग फ़ाइल में पास आँकड़ों की डंपिंग को सक्षम और नियंत्रित करें। फ़ाइल का नाम है
में समाप्त होने वाले प्रत्यय को जोड़कर उत्पन्न होता है .आँकड़े स्रोत फ़ाइल नाम के लिए, और
फ़ाइल आउटपुट फ़ाइल के समान निर्देशिका में बनाई गई है। अगर -विकल्प रूप है
उपयोग किया गया, -आंकड़े पूरे संकलन इकाई पर काउंटरों को सम्‍मिलित करने का कारण होगा
-विवरण हर घटना को डंप कर देगा क्योंकि पास उन्हें उत्पन्न करते हैं। डिफ़ॉल्ट के साथ नहीं
विकल्प संकलित प्रत्येक फ़ंक्शन के लिए काउंटरों को जोड़ना है।

-फडंप-पेड़-स्विच
-फडंप-पेड़-स्विच-विकल्पों
मध्यवर्ती भाषा ट्री के प्रसंस्करण के विभिन्न चरणों में डंपिंग को नियंत्रित करने के लिए
एक पंक्ति। फ़ाइल का नाम स्विच विशिष्ट प्रत्यय को जोड़ने के द्वारा उत्पन्न होता है
स्रोत फ़ाइल नाम, और फ़ाइल उसी निर्देशिका में बनाई गई है जिसमें आउटपुट फ़ाइल है।
अगर -विकल्पों प्रपत्र का उपयोग किया जाता है, विकल्पों की एक सूची है - अलग विकल्प जो नियंत्रित करते हैं
डंप का विवरण। सभी विकल्प सभी डंप पर लागू नहीं होते हैं; जो हैं
सार्थक नहीं की उपेक्षा की जाएगी। निम्न विकल्प उपलब्ध हैं

पता
प्रत्येक नोड का पता प्रिंट करें। आमतौर पर यह अर्थपूर्ण नहीं होता क्योंकि यह बदल जाता है
पर्यावरण और स्रोत फ़ाइल के अनुसार। इसका प्राथमिक उपयोग a को बांधने के लिए होता है
डिबग वातावरण के साथ डंप फ़ाइल।

असमनाम
यदि "DECL_ASSEMBLER_NAME" को किसी दिए गए decl के लिए सेट किया गया है, तो उसे डंप में उपयोग करें
"DECL_NAME" के बजाय। इसका प्राथमिक उपयोग उपयोग में आसानी से पीछे की ओर काम करना है
असेंबली फ़ाइल में उलझा हुआ नाम।

पतला
किसी फ़ंक्शन के दायरे या निकाय के सदस्यों के डंपिंग को केवल इसलिए रोकें कि
दायरे में आ गया है। ऐसी वस्तुओं को केवल तभी डंप करें जब वे सीधे पहुंच योग्य हों
कुछ और रास्ता। सुंदर-मुद्रित पेड़ों को डंप करते समय, यह विकल्प डंपिंग को रोकता है
नियंत्रण संरचनाओं के निकाय।

कच्चा पेड़ का कच्चा प्रतिनिधित्व प्रिंट करें। डिफ़ॉल्ट रूप से, पेड़ सुंदर-मुद्रित होते हैं
एक सी-जैसा प्रतिनिधित्व।

विवरण
अधिक विस्तृत डंप सक्षम करें (प्रत्येक डंप विकल्प द्वारा सम्मानित नहीं)।

आँकड़े
पास के बारे में विभिन्न आँकड़ों को डंप करना सक्षम करें (प्रत्येक डंप द्वारा सम्मानित नहीं
विकल्प)।

ब्लॉक
बुनियादी ब्लॉक सीमाएं दिखाना सक्षम करें (कच्चे डंप में अक्षम)।

वोप्स
प्रत्येक कथन के लिए वर्चुअल ऑपरेंड दिखाना सक्षम करें।

लिनेनो
कथनों के लिए लाइन नंबर दिखाना सक्षम करें।

यूआईडी प्रत्येक चर के लिए अद्वितीय आईडी ("DECL_UID") दिखाना सक्षम करें।

वाचाल
प्रत्येक कथन के लिए ट्री डंप दिखाना सक्षम करें।

eh प्रत्येक स्टेटमेंट को पकड़े हुए EH क्षेत्र संख्या दिखाना सक्षम करें।

scev
अदिश विकास विश्लेषण विवरण दिखाना सक्षम करें।

सब छोड़कर सभी विकल्प चालू करें कच्चा, पतला, वाचाल और लिनेनो.

निम्नलिखित पेड़ डंप संभव हैं:

मूल
किसी भी पेड़ आधारित अनुकूलन से पहले डंप करें फ़ाइल.मूल.

अनुकूलित
सभी पेड़ आधारित अनुकूलन के बाद डंप करें फ़ाइल.अनुकूलित.

गिंपल
एक फ़ाइल में gimplification पास करने से पहले और बाद में प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है गिंपल स्रोत फ़ाइल नाम के लिए।

cfg प्रत्येक फ़ंक्शन के नियंत्रण प्रवाह ग्राफ़ को फ़ाइल में डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर .cfg स्रोत फ़ाइल नाम के लिए।

वीसीजी प्रत्येक फ़ंक्शन के नियंत्रण प्रवाह ग्राफ को वीसीजी प्रारूप में फ़ाइल में डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है .वीसीजी स्रोत फ़ाइल नाम के लिए। ध्यान दें कि यदि फ़ाइल
एक से अधिक फ़ंक्शन होते हैं, जेनरेट की गई फ़ाइल का सीधे उपयोग नहीं किया जा सकता है
वीसीजी। आपको प्रत्येक फ़ंक्शन के ग्राफ़ को उसके अलग-अलग हिस्सों में काटने और चिपकाने की आवश्यकता होगी
पहले फाइल करें।

ch लूप हेडर को कॉपी करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.ch स्रोत फ़ाइल नाम के लिए।

सर्व शिक्षा अभियान फ़ाइल में SSA से संबंधित जानकारी डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है एसएसए
स्रोत फ़ाइल नाम के लिए।

उर्फ
प्रत्येक फ़ंक्शन के लिए अलियासिंग जानकारी डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.उपनाम स्रोत फ़ाइल नाम के लिए।

सीसीपी CCP के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है सीसीपी को
स्रोत फ़ाइल का नाम।

स्टोर सीसीपी
प्रत्येक फ़ंक्शन को STORE-CCP के बाद डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है .storeccp
स्रोत फ़ाइल नाम के लिए।

पूर्व आंशिक अतिरेक उन्मूलन के बाद पेड़ों को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर पूर्व स्रोत फ़ाइल नाम के लिए।

fre पूर्ण अतिरेक उन्मूलन के बाद पेड़ों को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
फ्री स्रोत फ़ाइल नाम के लिए।

कॉपीप्रॉप
कॉपी प्रचार के बाद पेड़ों को डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है .कॉपीप्रॉप
स्रोत फ़ाइल नाम के लिए।

स्टोर_कॉपीप्रॉप
स्टोर कॉपी-प्रचार के बाद पेड़ डंप करें। फ़ाइल का नाम संलग्न करके बनाया गया है
.store_copyprop स्रोत फ़ाइल नाम के लिए।

DCE डेड कोड एलिमिनेशन के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर डीसीई स्रोत फ़ाइल नाम के लिए।

मिट्टी से बचाने के लिए पल्ला
मडफ्लैप इंस्ट्रूमेंटेशन जोड़ने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर ।मिट्टी से बचाने के लिए पल्ला स्रोत फ़ाइल नाम के लिए।

एसआरए समुच्चय का अदिश प्रतिस्थापन करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है .Sra स्रोत फ़ाइल नाम के लिए।

सिंक
कोड सिंकिंग करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर ।हौज स्रोत फ़ाइल नाम के लिए।

उपहार डोमिनेटर ट्री ऑप्टिमाइजेशन लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया डोम स्रोत फ़ाइल नाम के लिए।

दिल्ली शेयर बाजार डेड स्टोर एलिमिनेशन लागू करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम बनाया गया है
जोड़कर डीएसई स्रोत फ़ाइल नाम के लिए।

फिओप्टो
PHI नोड्स को स्ट्रेटलाइन कोड में अनुकूलित करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल
नाम जोड़कर बनाया गया है .फिओप्ट स्रोत फ़ाइल नाम के लिए।

फॉरप्रॉप
सिंगल यूज वेरिएबल्स को फॉरवर्ड करने के बाद प्रत्येक फंक्शन को डंप करें। फ़ाइल का नाम
जोड़कर बनाया गया है .forprop स्रोत फ़ाइल नाम के लिए।

कॉपीरीनेम
प्रतिलिपि नाम बदलने के अनुकूलन को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया .कॉपीरिनेम स्रोत फ़ाइल नाम के लिए।

NRV जेनेरिक पर नामित रिटर्न वैल्यू ऑप्टिमाइज़ेशन लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें
पेड़। फ़ाइल का नाम संलग्न करके बनाया गया है .एनआरवी स्रोत फ़ाइल नाम के लिए।

वेक्टर
लूपों के वैश्वीकरण को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम बनाया गया है
जोड़कर सदिश स्रोत फ़ाइल नाम के लिए।

एसएलपी बुनियादी ब्लॉकों के वैश्वीकरण को लागू करने के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम है
जोड़कर बनाया गया एसएलपी स्रोत फ़ाइल नाम के लिए।

VRP वैल्यू रेंज प्रोपेगेशन (वीआरपी) के बाद प्रत्येक फ़ंक्शन को डंप करें। फ़ाइल का नाम द्वारा बनाया गया है
जोड़कर वीआरपी स्रोत फ़ाइल नाम के लिए।

सब इस विकल्प में दिए गए फ़्लैग के साथ सभी उपलब्ध ट्री डंप सक्षम करें।

-फ्ट्री-वेक्टराइज़र-वर्बोज़=n
यह विकल्प वेक्टराइज़र प्रिंट के डिबगिंग आउटपुट की मात्रा को नियंत्रित करता है। इस
सूचना मानक त्रुटि के लिए लिखी जाती है, जब तक कि -फडंप-पेड़-सब or -फडंप-पेड़-vect
निर्दिष्ट है, जिस स्थिति में यह सामान्य डंप लिस्टिंग फ़ाइल के लिए आउटपुट है, सदिश. के लिए
n= 0 कोई नैदानिक ​​​​जानकारी नहीं दी गई है। अगर n=1 वेक्टराइज़र प्रत्येक लूप की रिपोर्ट करता है
जो वेक्टरकृत हो गया, और सदिशीकृत होने वाले लूपों की कुल संख्या। अगर n=2 द
वेक्टराइज़र गैर-वेक्टराइज्ड लूप की भी रिपोर्ट करता है जो पहले विश्लेषण चरण से गुजरे हैं
(vect_analyze_loop_form) - यानी काउंटेबल, इनर-मोस्ट, सिंगल-बीबी, सिंगल-एंट्री/एग्जिट
लूप। यह वही वर्बोसिटी लेवल है कि -फडंप-पेड़-vect-आंकड़े उपयोग करता है। उच्चतर
वर्बोसिटी स्तर का मतलब है कि प्रत्येक रिपोर्ट किए गए लूप के लिए या तो अधिक जानकारी डंप की गई है, या समान
अधिक लूप के लिए रिपोर्ट की गई जानकारी की मात्रा: if n=3, वेक्टराइज़र लागत मॉडल
सूचना दी जाती है। अगर n=4, संरेखण संबंधी जानकारी को इसमें जोड़ा जाता है
रिपोर्ट। अगर n=5, डेटा-संदर्भ संबंधित जानकारी (जैसे स्मृति निर्भरता, स्मृति
एक्सेस-पैटर्न) को रिपोर्ट में जोड़ा जाता है। अगर n=6, वेक्टराइज़र रिपोर्ट भी गैर-
वेक्टराइज्ड इनर-मोस्ट लूप्स जो पहले विश्लेषण चरण को पास नहीं कर पाए (यानी, नहीं हो सकता है
गणनीय हो, या जटिल नियंत्रण-प्रवाह हो सकता है)। अगर n=7, वेक्टरिज़र रिपोर्ट
गैर-वेक्टराइज्ड नेस्टेड लूप भी। अगर n=8, एसएलपी से संबंधित जानकारी को इसमें जोड़ा जाता है
रिपोर्ट। के लिये n=9, सभी जानकारी जो वेक्टर अपने विश्लेषण के दौरान उत्पन्न करता है
और परिवर्तन बताया गया है। यह वही वर्बोसिटी लेवल है कि
-फडंप-पेड़-vect-विवरण का उपयोग करता है।

-फ्रैंडम-बीज=स्ट्रिंग
यह विकल्प एक बीज प्रदान करता है जिसे जीसीसी उपयोग करता है जब वह अन्यथा यादृच्छिक संख्याओं का उपयोग करेगा।
इसका उपयोग कुछ प्रतीक नामों को उत्पन्न करने के लिए किया जाता है जिन्हें प्रत्येक में अलग होना चाहिए
संकलित फ़ाइल। इसका उपयोग कवरेज डेटा फ़ाइलों और में अद्वितीय टिकटों को रखने के लिए भी किया जाता है
ऑब्जेक्ट फ़ाइलें जो उन्हें उत्पन्न करती हैं। आप का उपयोग कर सकते हैं -फ्रैंडम-बीज उत्पादन का विकल्प
प्रतिलिपि प्रस्तुत करने योग्य समान वस्तु फ़ाइलें।

RSI स्ट्रिंग आपके द्वारा संकलित प्रत्येक फ़ाइल के लिए अलग होना चाहिए।

-fsched-क्रिया =n
निर्देश शेड्यूलिंग का उपयोग करने वाले लक्ष्यों पर, यह विकल्प की मात्रा को नियंत्रित करता है
डिबगिंग आउटपुट शेड्यूलर प्रिंट करता है। यह जानकारी मानक त्रुटि के लिए लिखी गई है,
जब तक -fdump-rtl-sched1 or -fdump-rtl-sched2 निर्दिष्ट है, जिस स्थिति में यह आउटपुट है
सामान्य डंप लिस्टिंग फ़ाइल के लिए, .अनुसूचित1 or .अनुसूचित2 क्रमश। हालांकि के लिए n
नौ से अधिक, आउटपुट हमेशा मानक त्रुटि पर मुद्रित होता है।

के लिए n शून्य से बड़ा, -fsched-verbose उसी जानकारी को आउटपुट करता है
-fdump-rtl-sched1 और -fdump-rtl-sched2. के लिए n एक से अधिक, यह मूल उत्पादन भी करता है
ब्लॉक संभावनाएं, विस्तृत तैयार सूची की जानकारी और इकाई/सूचना संबंधी जानकारी। के लिये n
दो से अधिक, इसमें गर्भपात बिंदु, नियंत्रण-प्रवाह और क्षेत्रों की जानकारी पर आरटीएल शामिल है। और
एसटी n चार से अधिक, -fsched-verbose निर्भरता जानकारी भी शामिल है।

-बचाओ-अस्थायी
-सेव-टेम्प्स = cwd
सामान्य "अस्थायी" मध्यवर्ती फ़ाइलों को स्थायी रूप से संग्रहीत करें; उन्हें वर्तमान में रखें
निर्देशिका और स्रोत फ़ाइल के आधार पर उन्हें नाम दें। इस प्रकार, संकलन फू.सी साथ में -c
-बचाओ-अस्थायी फाइलों का उत्पादन करेगा फू.आई और फू.एस, के रूप में के रूप में अच्छी तरह से फू.ओ. यह एक बनाता है
पूर्वसंसाधित फू.आई आउटपुट फ़ाइल भले ही कंपाइलर अब सामान्य रूप से a . का उपयोग करता हो
एकीकृत प्रीप्रोसेसर।

जब के संयोजन में उपयोग किया जाता है -x कमांड लाइन विकल्प, -बचाओ-अस्थायी समझदार है
एक इनपुट स्रोत फ़ाइल को एक ही एक्सटेंशन के साथ लिखने से बचने के लिए पर्याप्त है
मध्यवर्ती फ़ाइल। नाम बदलकर संबंधित मध्यवर्ती फ़ाइल प्राप्त की जा सकती है
स्रोत फ़ाइल का उपयोग करने से पहले -बचाओ-अस्थायी.

यदि आप समानांतर में जीसीसी का आह्वान करते हैं, तो कई अलग-अलग स्रोत फाइलों को संकलित करते हैं जो साझा करते हैं a
विभिन्न उपनिर्देशिकाओं में सामान्य आधार नाम या एक ही स्रोत फ़ाइल के लिए संकलित
एकाधिक आउटपुट गंतव्य, यह संभावना है कि विभिन्न समांतर कंपाइलर्स करेंगे
एक दूसरे के साथ हस्तक्षेप करें, और अस्थायी फ़ाइलों को अधिलेखित करें। उदाहरण के लिए:

gcc -save-temps -o outdir1/foo.o indir1/foo.c&
gcc -save-temps -o outdir2/foo.o indir2/foo.c&

में परिणाम हो सकता है फू.आई और फू.ओ दोनों कंपाइलरों द्वारा एक साथ लिखा जा रहा है।

-सेव-टेम्प्स = obj
सामान्य "अस्थायी" मध्यवर्ती फ़ाइलों को स्थायी रूप से संग्रहीत करें। अगर -o विकल्प का उपयोग किया जाता है,
अस्थायी फ़ाइलें ऑब्जेक्ट फ़ाइल पर आधारित होती हैं। अगर -o विकल्प का उपयोग नहीं किया जाता है,
-सेव-टेम्प्स = obj स्विच की तरह व्यवहार करता है -बचाओ-अस्थायी.

उदाहरण के लिए:

gcc -save-temps=obj -c foo.c
जीसीसी -सेव-टेम्प्स=ओबीजे-सी बार.सी-ओ डीआईआर/एक्सबार.ओ
जीसीसी -save-temps=obj foobar.c -o dir2/yfoobar

पैदा करेगा फू.आई, फू.एस, डीआईआर/xbar.i, डीआईआर/xbar.s, dir2/yfoobar.i, dir2/yfoobar.s, तथा
dir2/yfoobar.o.

-पहर[=पट्टिका]
संकलन अनुक्रम में प्रत्येक उपप्रक्रिया द्वारा लिए गए CPU समय की रिपोर्ट करें। सी के लिए
स्रोत फ़ाइलें, यह कंपाइलर उचित और असेंबलर है (साथ ही लिंकर अगर लिंकिंग है
किया हुआ)।

आउटपुट फ़ाइल के विनिर्देश के बिना, आउटपुट इस तरह दिखता है:

# सीसी1 0.12 0.01
# 0.00 0.01 . के रूप में

प्रत्येक पंक्ति पर पहला नंबर "उपयोगकर्ता समय" है, जो कि निष्पादित करने में लगने वाला समय है
कार्यक्रम ही। दूसरा नंबर "सिस्टम टाइम" है, ऑपरेटिंग निष्पादित करने में लगने वाला समय
कार्यक्रम की ओर से सिस्टम रूटीन। दोनों नंबर सेकंड में हैं।

आउटपुट फ़ाइल के विनिर्देशन के साथ, आउटपुट को नामित फ़ाइल में जोड़ा जाता है,
और यह इस तरह दिखता है:

0.12 0.01 सीसी1
0.00 0.01 के रूप में

"उपयोगकर्ता समय" और "सिस्टम समय" को प्रोग्राम के नाम से पहले स्थानांतरित कर दिया जाता है, और
प्रोग्राम को दिए गए विकल्पों को प्रदर्शित किया जाता है, ताकि कोई बाद में बता सके कि कौन सी फाइल थी
संकलित किया जा रहा है, और किन विकल्पों के साथ।

-fvar-ट्रैकिंग
चर ट्रैकिंग पास चलाएँ। यह गणना करता है कि प्रत्येक स्थिति में चर कहाँ संग्रहीत किए जाते हैं
कोड में। बेहतर डिबगिंग जानकारी तब उत्पन्न होती है (यदि डिबगिंग जानकारी
प्रारूप इस जानकारी का समर्थन करता है)।

अनुकूलन के साथ संकलन करते समय यह डिफ़ॉल्ट रूप से सक्षम होता है (-ओस, -O, -ओ३, ...),
डिबगिंग जानकारी (-g) और डिबग जानकारी प्रारूप इसका समर्थन करता है।

-fvar-ट्रैकिंग-असाइनमेंट
संकलन के आरंभ में उपयोगकर्ता चरों के लिए असाइनमेंट की व्याख्या करें और ले जाने का प्रयास करें
एक प्रयास में पूरे संकलन के अंत तक एनोटेशन खत्म हो गए हैं
अनुकूलन करते समय डिबग जानकारी में सुधार करने के लिए। का उपयोग -जीडवार्फ-4 साथ अनुशंसित है
इसके साथ.

वर-ट्रैकिंग अक्षम होने पर भी इसे सक्षम किया जा सकता है, जिस स्थिति में एनोटेशन होंगे
बनाया और बनाए रखा, लेकिन अंत में त्याग दिया।

-fvar-ट्रैकिंग-असाइनमेंट-टॉगल
टॉगल -fvar-ट्रैकिंग-असाइनमेंटउसी तरह से -gtoggle टॉगल -g.

-प्रिंट-फ़ाइल-नाम=पुस्तकालय
लाइब्रेरी फ़ाइल का पूरा नाम प्रिंट करें पुस्तकालय जिसका उपयोग तब किया जाएगा जब
लिंकिंग --- और कुछ भी न करें। इस विकल्प के साथ, GCC संकलित या लिंक नहीं करता है
कुछ भी; यह सिर्फ फ़ाइल नाम प्रिंट करता है।

-प्रिंट-मल्टी-डायरेक्टरी
किसी अन्य स्विच द्वारा चयनित मल्टीलिब के अनुरूप निर्देशिका नाम प्रिंट करें
कमांड लाइन में मौजूद है। इस निर्देशिका में मौजूद माना जाता है जीसीसी_EXEC_PREFIX.

-प्रिंट-मल्टी-लिब
मैपिंग को मल्टीलिब डायरेक्टरी नामों से कंपाइलर स्विच में प्रिंट करें जो उन्हें सक्षम करते हैं।
निर्देशिका नाम को स्विच से अलग किया जाता है ;, और प्रत्येक स्विच a . से शुरू होता है
@ के स्थान पर -, एकाधिक स्विच के बीच रिक्त स्थान के बिना। यह माना जाता है
शेल-प्रसंस्करण को आसान बनाएं।

-प्रिंट-मल्टी-ओएस-डायरेक्टरी
कुछ के सापेक्ष, चयनित मल्टीलिब के लिए ओएस पुस्तकालयों के लिए पथ प्रिंट करें lib
उपनिर्देशिका। यदि ओएस पुस्तकालय मौजूद हैं lib उपनिर्देशिका और कोई मल्टीलिब नहीं
उपयोग किया जाता है, यह आमतौर पर बस ., यदि OS पुस्तकालय मौजूद हैं libsuffix भाई
निर्देशिका यह प्रिंट करता है उदाहरण के लिए ../lib64, ../ दायित्व or ../lib32, या यदि OS पुस्तकालय हैं
में उपस्थित लिब/उपदिर उपनिर्देशिकाएँ इसे प्रिंट करती हैं जैसे amd64, sparcv9 or ev6.

-प्रिंट-मल्टीआर्क
कुछ के सापेक्ष, चयनित मल्टीआर्क के लिए ओएस पुस्तकालयों के लिए पथ प्रिंट करें lib
उपनिर्देशिका।

-प्रिंट-प्रोग-नाम=कार्यक्रम
पसंद प्रिंट-फ़ाइल-नाम, लेकिन एक प्रोग्राम की खोज करता है जैसे सीपीपी.

-प्रिंट-libgcc-फ़ाइल-नाम
के समान -प्रिंट-फाइल-नाम=libgcc.a.

जब आप उपयोग करते हैं तो यह उपयोगी होता है -नोस्टडलिब or -नोडिफॉल्टलिब्स लेकिन आप के साथ लिंक करना चाहते हैं
libgcc.a. तुम कर सकते हो

जीसीसी -नोस्टडलिब ... `gcc -print-libgcc-file-name`

-प्रिंट-खोज-डीआईआर
कॉन्फ़िगर की गई स्थापना निर्देशिका का नाम और प्रोग्राम की सूची प्रिंट करें और
पुस्तकालय निर्देशिका जीसीसी खोजेंगे --- और कुछ और न करें।

यह तब उपयोगी होता है जब जीसीसी त्रुटि संदेश प्रिंट करता है स्थापना समस्या नही सकता कार्यकारी
सीपीपी0: नहीं ऐसा पट्टिका or डायरेक्टरी. इसे हल करने के लिए आपको या तो डालना होगा सीपीपी0 और
अन्य संकलक घटक जहां जीसीसी उन्हें खोजने की उम्मीद है, या आप सेट कर सकते हैं
वातावरण विविधता जीसीसी_EXEC_PREFIX उस निर्देशिका में जहाँ आपने उन्हें स्थापित किया था। नहीं
अनुगामी भूल जाओ /.

-प्रिंट-सिसरूट
लक्ष्य sysroot निर्देशिका को प्रिंट करें जिसका उपयोग संकलन के दौरान किया जाएगा। यह है
लक्ष्य sysroot या तो कॉन्फ़िगर समय पर निर्दिष्ट किया गया है या का उपयोग कर रहा है --सिसरूट विकल्प,
संभवतः एक अतिरिक्त प्रत्यय के साथ जो संकलन विकल्पों पर निर्भर करता है। यदि कोई लक्ष्य नहीं
sysroot निर्दिष्ट है, विकल्प कुछ भी प्रिंट नहीं करता है।

-प्रिंट-सिसरूट-हेडर-प्रत्यय
हेडर की खोज करते समय लक्ष्य sysroot में जोड़े गए प्रत्यय को प्रिंट करें, या एक दें
त्रुटि अगर संकलक ऐसे प्रत्यय के साथ कॉन्फ़िगर नहीं किया गया है --- और कुछ भी न करें
अन्य।

-डंपमशीन
संकलक की लक्ष्य मशीन को प्रिंट करें (उदाहरण के लिए, i686-पीसी-लिनक्स-ग्नू)---और मत करो
और कुछ।

-डंपवर्सन
कंपाइलर संस्करण प्रिंट करें (उदाहरण के लिए, 3.0)---और कुछ न करें।

-डंपस्पेक्स
कंपाइलर के बिल्ट-इन स्पेक्स को प्रिंट करें --- और कुछ और न करें। (इसका प्रयोग तब किया जाता है जब
जीसीसी खुद बनाया जा रहा है।)

-फेलिमिनेट-अप्रयुक्त-डीबग-प्रकार
आम तौर पर, DWARF2 आउटपुट का उत्पादन करते समय, GCC सभी के लिए डिबगिंग जानकारी का उत्सर्जन करेगा
एक संकलन इकाई में घोषित प्रकार, चाहे वे वास्तव में हों या नहीं
उस संकलन इकाई में उपयोग किया जाता है। कभी-कभी यह उपयोगी होता है, जैसे कि डिबगर में,
आप उस प्रकार के लिए मान डालना चाहते हैं जो वास्तव में आपके प्रोग्राम में उपयोग नहीं किया जाता है (लेकिन is
घोषित)। अधिक बार, हालांकि, यह एक महत्वपूर्ण मात्रा में व्यर्थ स्थान का परिणाम देता है।
इस विकल्प के साथ, GCC उन प्रकारों के लिए डिबग प्रतीक आउटपुट उत्पन्न करने से बच जाएगा जो हैं
स्रोत फ़ाइल में कहीं भी संकलित नहीं किया जा रहा है।

ऑप्शंस कि नियंत्रण इष्टतमीकरण
ये विकल्प विभिन्न प्रकार के अनुकूलन को नियंत्रित करते हैं।

बिना किसी अनुकूलन विकल्प के, कंपाइलर का लक्ष्य संकलन की लागत को कम करना है
और डिबगिंग को अपेक्षित परिणाम देने के लिए। कथन स्वतंत्र हैं: यदि आप
बयानों के बीच ब्रेकपॉइंट के साथ प्रोग्राम को रोकें, फिर आप को एक नया मान असाइन कर सकते हैं
किसी भी वेरिएबल या प्रोग्राम काउंटर को फंक्शन में किसी अन्य स्टेटमेंट में बदलें और प्राप्त करें
ठीक वैसे ही परिणाम जिनकी आप स्रोत कोड से अपेक्षा करेंगे।

ऑप्टिमाइज़ेशन फ़्लैग चालू करने से कंपाइलर प्रदर्शन को बेहतर बनाने का प्रयास करता है और/या
संकलन समय और संभवतः डिबग करने की क्षमता की कीमत पर कोड का आकार
कार्यक्रम.

संकलक कार्यक्रम के ज्ञान के आधार पर अनुकूलन करता है।
एकल आउटपुट फ़ाइल मोड में एक साथ कई फ़ाइलों को संकलित करने से कंपाइलर उपयोग कर सकता है
उनमें से प्रत्येक को संकलित करते समय सभी फाइलों से प्राप्त जानकारी।

सभी अनुकूलन सीधे ध्वज द्वारा नियंत्रित नहीं होते हैं। केवल ऑप्टिमाइज़ेशन जिनमें a . है
ध्वज इस खंड में सूचीबद्ध हैं।

अधिकांश अनुकूलन केवल तभी सक्षम होते हैं जब a -O स्तर कमांड लाइन पर सेट है। अन्यथा
वे अक्षम हैं, भले ही व्यक्तिगत अनुकूलन फ़्लैग निर्दिष्ट किए गए हों।

लक्ष्य के आधार पर और जीसीसी को कैसे कॉन्फ़िगर किया गया था, इसका थोड़ा अलग सेट
अनुकूलन प्रत्येक पर सक्षम किया जा सकता है -O यहां सूचीबद्ध लोगों की तुलना में स्तर। आप जीसीसी का आह्वान कर सकते हैं
साथ में -Q --सहायता = अनुकूलक अनुकूलन के सटीक सेट का पता लगाने के लिए जो यहां सक्षम हैं
प्रत्येक स्तर।

-O
-ओ३ अनुकूलित करें। संकलन के अनुकूलन में कुछ अधिक समय लगता है, और इसके लिए बहुत अधिक मेमोरी
एक बड़ा समारोह।

- -O, संकलक बिना प्रदर्शन किए कोड आकार और निष्पादन समय को कम करने का प्रयास करता है
कोई भी अनुकूलन जो संकलन समय का एक बड़ा सौदा लेता है।

-O निम्नलिखित अनुकूलन झंडे चालू करता है:

-फॉटो-इंक-दिसंबर -फतुलना-एलीम -एफसीप्रॉप-रजिस्टर -एफडीसी -फडेफर-पॉप -fdelayed-शाखा
-एफडीएसई -fअनुमान-शाखा-प्रायिकता -फिफ-रूपांतरण2 -फिफ-रूपांतरण -फिपा-शुद्ध-कॉन्स्ट
-फिपा-प्रोफाइल -फिपा-संदर्भ -फमर्ज-स्थिरांक -fsplit-चौड़ा-प्रकार -फट्री-बिट-सीसीपी
-फट्री-बिल्टिन-कॉल-डीसीई -फट्री-सीसीपी -फ्ट्री-चो -फट्री-कॉपीरेनेम -ftree-dce
-फट्री-डोमिनेटर-ऑप्ट्स -फट्री-डीएसई -ftree-forwprop -फ़्री-फ़्री -फट्री-फिप्रोप -फट्री-सर
-फट्री-पीटीए -फट्री-टेर -फनिट-एट-ए-टाइम

-O भी चालू हो जाता है -फोमिट-फ्रेम-पॉइंटर मशीनों पर जहां ऐसा करने से हस्तक्षेप नहीं होता
डिबगिंग के साथ।

-ओ३ और भी अधिक अनुकूलित करें। जीसीसी लगभग सभी समर्थित अनुकूलन करता है जो नहीं करते हैं
स्पेस-स्पीड ट्रेडऑफ़ शामिल करें। इसकी तुलना में -O, यह विकल्प दोनों को बढ़ाता है
संकलन समय और उत्पन्न कोड का प्रदर्शन।

-ओ३ द्वारा निर्दिष्ट सभी अनुकूलन झंडे को चालू करता है -O. यह निम्नलिखित को भी चालू करता है
अनुकूलन झंडे: -फथ्रेड-कूद -फालिग्न-फ़ंक्शंस -फालिग्न-कूद -फालिग्न-लूप्स
-फालिग्न-लेबल -fcaller-बचाता है -क्रॉस जंपिंग -fcse-अनुसरण-कूदता है -एफसीई-स्किप-ब्लॉक
-fdelete-null-pointer-checks -fdevirualize -महंगे-अनुकूलन -एफजीसीएसई
-एफजीसीएसई-एलएम -फिनलाइन-छोटे-फ़ंक्शंस -findirect-इनलाइनिंग -फिपा-सर
-foptimize-भाई-बहन-कॉल -fआंशिक-इनलाइनिंग -fpeehole2 -फ्रेगमोव -फ्रीऑर्डर-ब्लॉक
-फ्रीऑर्डर-फ़ंक्शंस -फ्रेरुन-सीएसई-आफ्टर-लूप -fsched-इंटरब्लॉक -फस्ड-स्पेक
-fschedule-insns -fschedule-insns2 -फस्ट्रिक्ट-अलियासिंग -फस्ट्रिक्ट-ओवरफ्लो
-फट्री-स्विच-रूपांतरण -फट्री-टेल-मर्ज -फट्री-प्री -फट्री-वीआरपी

कृपया नीचे दी गई चेतावनी पर ध्यान दें -एफजीसीएसई आह्वान के बारे में -ओ३ गणना का उपयोग करने वाले कार्यक्रमों पर
गोटोस

नोट: उबंटू 8.10 और बाद के संस्करणों में, -D_FORTIFY_SOURCE=2 डिफ़ॉल्ट रूप से सेट है, और है
सक्रिय जब -O 2 या उच्चतर पर सेट है। यह अतिरिक्त संकलन-समय सक्षम करता है और
कई libc कार्यों के लिए रन-टाइम जाँच। अक्षम करने के लिए, या तो निर्दिष्ट करें
-U_FORTIFY_SOURCE or -D_FORTIFY_SOURCE=0.

-ओ३ अभी और भी ऑप्टिमाइज़ करें। -ओ३ द्वारा निर्दिष्ट सभी अनुकूलन को चालू करता है -ओ३ और चालू भी करता है
la -फिनलाइन-फ़ंक्शंस, -फनस्विच-लूप, -फप्रेडिक्टिव-कॉमनिंग, -fgcse-आफ्टर-रीलोड,
-फ़्री-वेक्टराइज़, -फट्री-आंशिक-पूर्व और -फिपा-सीपी-क्लोन विकल्प.

-ओ३ संकलन समय कम करें और डिबगिंग को अपेक्षित परिणाम दें। यह है
चूक।

-ओस आकार के लिए अनुकूलित करें। -ओस सभी को सक्षम बनाता है -ओ३ अनुकूलन जो आमतौर पर नहीं बढ़ते
कोड आकार। यह कोड आकार को कम करने के लिए डिज़ाइन किए गए और अनुकूलन भी करता है।

-ओस निम्नलिखित ऑप्टिमाइज़ेशन फ़्लैग को अक्षम करता है: -फालिग्न-फ़ंक्शंस -फालिग्न-कूद
-फालिग्न-लूप्स -फालिग्न-लेबल -फ्रीऑर्डर-ब्लॉक -फ्रीऑर्डर-ब्लॉक-और-विभाजन
-fprefetch-लूप-सरणी -फट्री-वेक्ट-लूप-संस्करण

-ओफ़ास्ट
सख्त मानकों के अनुपालन की अवहेलना करें। -ओफ़ास्ट सभी को सक्षम बनाता है -ओ३ अनुकूलन। यह भी
उन अनुकूलन को सक्षम करता है जो सभी मानक अनुपालन कार्यक्रमों के लिए मान्य नहीं हैं। यह
चालू करें -फफास्ट-गणित और फोरट्रान-विशिष्ट -फनो-प्रोटेक्ट-पेरेंस और -फस्टैक-सरणी.

यदि आप एकाधिक का उपयोग करते हैं -O विकल्प, स्तर संख्याओं के साथ या बिना, अंतिम ऐसा विकल्प है
जो प्रभावी है।

फॉर्म के विकल्प -fझंडा मशीन-स्वतंत्र झंडे निर्दिष्ट करें। अधिकांश झंडों में दोनों होते हैं
सकारात्मक और नकारात्मक रूप; का नकारात्मक रूप -फ्फू होगा -फनो-फू. मेज पर
नीचे, केवल एक प्रपत्र सूचीबद्ध है --- जिसे आप आमतौर पर उपयोग करेंगे। आप समझ सकते हैं
या तो हटाकर दूसरे फॉर्म को बाहर करें नहीं- या इसे जोड़ रहे हैं।

निम्नलिखित विकल्प विशिष्ट अनुकूलन को नियंत्रित करते हैं। वे या तो द्वारा सक्रिय होते हैं -O
विकल्प या उन से संबंधित हैं जो हैं। दुर्लभ में आप निम्न झंडे का उपयोग कर सकते हैं
ऐसे मामले जब प्रदर्शन किए जाने वाले अनुकूलन की "फाइन-ट्यूनिंग" वांछित है।

-फनो-डिफॉल्ट-इनलाइन
सदस्य कार्यों को डिफ़ॉल्ट रूप से केवल इसलिए इनलाइन न करें क्योंकि उन्हें अंदर परिभाषित किया गया है
कक्षा का दायरा (केवल सी ++)। अन्यथा, जब आप निर्दिष्ट करें -O, सदस्य कार्य परिभाषित
इनसाइड क्लास स्कोप डिफ़ॉल्ट रूप से इनलाइन संकलित होते हैं; यानी, आपको जोड़ने की जरूरत नहीं है इनलाइन
सदस्य फ़ंक्शन नाम के सामने।

-फनो-डेफर-पॉप
जैसे ही वह फ़ंक्शन वापस आता है, हमेशा प्रत्येक फ़ंक्शन कॉल के लिए तर्कों को पॉप करें। के लिये
मशीन जो फ़ंक्शन कॉल के बाद तर्कों को पॉप करना चाहिए, संकलक सामान्य रूप से देता है
तर्क कई फ़ंक्शन कॉल के लिए स्टैक पर जमा होते हैं और उन सभी को पॉप करते हैं
एक बार।

स्तरों पर अक्षम -O, -ओ३, -ओ३, -ओस.

आगे-प्रचार करना
आरटीएल पर एक फॉरवर्ड प्रोपेगेशन पास करें। पास दो निर्देशों को संयोजित करने का प्रयास करता है
और जांचता है कि क्या परिणाम को सरल बनाया जा सकता है। यदि लूप अनोलिंग सक्रिय है, तो दो पास
प्रदर्शन किया जाता है और दूसरा लूप अनोलिंग के बाद निर्धारित किया जाता है।

यह विकल्प ऑप्टिमाइज़ेशन स्तरों पर डिफ़ॉल्ट रूप से सक्षम होता है -O, -ओ३, -ओ३, -ओस.

-ffp-अनुबंध =अंदाज
-ffp-अनुबंध = बंद फ्लोटिंग-पॉइंट एक्सप्रेशन संकुचन को अक्षम करता है। -ffp-अनुबंध = तेज
फ़्लोटिंग-पॉइंट एक्सप्रेशन संकुचन को सक्षम करता है जैसे फ़्यूज्ड मल्टीप्ली-ऐड का निर्माण
संचालन यदि लक्ष्य के पास उनके लिए मूल समर्थन है। -ffp-अनुबंध = पर सक्षम बनाता है
फ्लोटिंग-पॉइंट एक्सप्रेशन संकुचन यदि भाषा मानक द्वारा अनुमत है। यह है
वर्तमान में लागू नहीं किया गया है और इसके बराबर व्यवहार किया जाता है -ffp-अनुबंध = बंद.

डिफ़ॉल्ट है -ffp-अनुबंध = तेज.

-फोमिट-फ्रेम-पॉइंटर
उन कार्यों के लिए फ्रेम पॉइंटर को रजिस्टर में न रखें जिन्हें एक की आवश्यकता नहीं है। इस
फ़्रेम पॉइंटर्स को सहेजने, सेट करने और पुनर्स्थापित करने के निर्देशों से बचा जाता है; यह एक भी बनाता है
कई कार्यों में उपलब्ध अतिरिक्त रजिस्टर। It भी बनाता है debugging असंभव on
कुछ मशीनों।

कुछ मशीनों पर, जैसे VAX, इस ध्वज का कोई प्रभाव नहीं पड़ता है, क्योंकि मानक
कॉलिंग अनुक्रम स्वचालित रूप से फ्रेम पॉइंटर को संभालता है और कुछ भी सहेजा नहीं जाता है
दिखावा यह अस्तित्व में नहीं है। मशीन-विवरण मैक्रो "FRAME_POINTER_REQUIRED"
नियंत्रित करता है कि लक्ष्य मशीन इस ध्वज का समर्थन करती है या नहीं।

जीसीसी संस्करण 4.6 के साथ शुरू, डिफ़ॉल्ट सेटिंग (जब आकार के लिए अनुकूलित नहीं किया जा रहा है)
32-बिट लिनक्स x86 और 32-बिट डार्विन x86 लक्ष्य को बदल दिया गया है
-फोमिट-फ्रेम-पॉइंटर. डिफ़ॉल्ट को वापस किया जा सकता है -फनो-ओमिट-फ्रेम-पॉइंटर by
के साथ जीसीसी को विन्यस्त करना --सक्षम-फ्रेम-सूचक कॉन्फ़िगर विकल्प।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-foptimize-भाई-बहन-कॉल
सिबलिंग और टेल रिकर्सिव कॉल्स को ऑप्टिमाइज़ करें।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फनो-इनलाइन
"always_inline" से चिह्नित कार्यों के अलावा इनलाइन किसी भी फ़ंक्शन का विस्तार न करें
गुण। अनुकूलन नहीं होने पर यह डिफ़ॉल्ट है।

एकल कार्यों को "नोइनलाइन" के साथ चिह्नित करके इनलाइनिंग से छूट दी जा सकती है
विशेषता।

-फिनलाइन-छोटे-फ़ंक्शंस
जब उनका शरीर अपेक्षा से छोटा हो, तो उनके कॉल करने वालों में कार्यों को एकीकृत करें
फ़ंक्शन कॉल कोड (इसलिए प्रोग्राम का समग्र आकार छोटा हो जाता है)। संकलक
ह्युरिस्टिक रूप से तय करता है कि कौन से कार्य काफी सरल हैं जो कि एकीकृत करने योग्य हैं
इस तरह। यह इनलाइनिंग सभी कार्यों पर लागू होती है, यहां तक ​​कि उन पर भी जो इनलाइन घोषित नहीं किए गए हैं।

स्तर पर सक्षम -ओ३.

-findirect-इनलाइनिंग
इनलाइन भी अप्रत्यक्ष कॉल जिन्हें संकलन समय पर ज्ञात होने के लिए धन्यवाद दिया जाता है
पिछले इनलाइनिंग। इस विकल्प का कोई प्रभाव तभी पड़ता है जब इनलाइनिंग स्वयं चालू हो
द्वारा -फिनलाइन-फ़ंक्शंस or -फिनलाइन-छोटे-फ़ंक्शंस विकल्प.

स्तर पर सक्षम -ओ३.

-फिनलाइन-फ़ंक्शंस
इनलाइनिंग के लिए सभी कार्यों पर विचार करें, भले ही उन्हें इनलाइन घोषित न किया गया हो। NS
कंपाइलर ह्युरिस्टिक रूप से तय करता है कि कौन से फ़ंक्शन इस तरह से एकीकृत करने लायक हैं।

यदि किसी दिए गए फ़ंक्शन के लिए सभी कॉल एकीकृत हैं, और फ़ंक्शन घोषित किया गया है
"स्थैतिक", तो फ़ंक्शन सामान्य रूप से असेंबलर कोड के रूप में आउटपुट नहीं होता है।

स्तर पर सक्षम -ओ३.

-फिनलाइन-फ़ंक्शंस-कॉल-वन्स
सभी "स्थिर" कार्यों पर विचार करें जिन्हें एक बार उनके कॉलर में इनलाइन करने के लिए बुलाया जाता है, भले ही
वे "इनलाइन" चिह्नित नहीं हैं। यदि किसी दिए गए फ़ंक्शन के लिए कॉल एकीकृत है, तो
फ़ंक्शन अपने आप में कोडांतरक कोड के रूप में आउटपुट नहीं है।

स्तरों पर सक्षम -ओ३, -ओ३, -ओ३ और -ओस.

-भयभीत इनलाइनिंग
"always_inline" द्वारा चिह्नित इनलाइन फ़ंक्शन और ऐसे फ़ंक्शन जिनका शरीर . से छोटा लगता है
फंक्शन कॉल करने से पहले ओवरहेड कॉल करें -फ्रोफाइल-उत्पन्न उपकरण और
वास्तविक इनलाइनिंग पास। ऐसा करने से प्रोफाइलिंग काफी सस्ती हो जाती है और आमतौर पर
नेस्टेड रैपर फ़ंक्शंस की बड़ी श्रृंखला वाले कार्यक्रमों पर तेज़ी से इनलाइन करना।

डिफ़ॉल्ट रूप से सक्षम।

-फिपा-सर
समुच्चय का अंतरप्रक्रियात्मक अदिश प्रतिस्थापन करना, अप्रयुक्त मापदंडों को हटाना
और मान द्वारा पारित मापदंडों द्वारा संदर्भ द्वारा पारित मापदंडों का प्रतिस्थापन।

स्तरों पर सक्षम -ओ३, -ओ३ और -ओस.

-फिनलाइन-सीमा =n
डिफ़ॉल्ट रूप से, GCC इनलाइन किए जा सकने वाले फ़ंक्शन के आकार को सीमित करता है। यह ध्वज अनुमति देता है
इस सीमा पर सख्त नियंत्रण। n फ़ंक्शन का आकार है जिसे इनलाइन किया जा सकता है
छद्म निर्देशों की संख्या।

इनलाइनिंग वास्तव में कई मापदंडों द्वारा नियंत्रित होती है, जिन्हें निर्दिष्ट किया जा सकता है
व्यक्तिगत रूप से उपयोग करके --परम नाम=मूल्य-फिनलाइन-सीमा =n विकल्प कुछ सेट करता है
ये पैरामीटर निम्नानुसार हैं:

मैक्स-इनलाइन-इन्स-सिंगल
इसके लिए सेट है n/ 2.

मैक्स-इनलाइन-इन्स-ऑटो
इसके लिए सेट है n/ 2.

इनलाइनिंग को नियंत्रित करने वाले अलग-अलग पैरामीटर के दस्तावेज़ीकरण के लिए नीचे देखें और
इन मापदंडों की चूक के लिए।

नोट: का कोई मूल्य नहीं हो सकता है -फिनलाइन-सीमा जिसके परिणामस्वरूप डिफ़ॉल्ट व्यवहार होता है।

नोट: छद्म निर्देश इस विशेष संदर्भ में एक सार का प्रतिनिधित्व करता है
फ़ंक्शन के आकार का मापन। यह किसी भी तरह से विधानसभा की गिनती का प्रतिनिधित्व नहीं करता है
निर्देश और इस तरह इसका सटीक अर्थ एक रिलीज से दूसरे में बदल सकता है
एक और।

-फनो-कीप-इनलाइन-dllexport
यह का अधिक सुक्ष्म संस्करण है -फ़कीप-इनलाइन-फ़ंक्शंस, जो केवल पर लागू होता है
फ़ंक्शन जो "dllexport" विशेषता या declspec का उपयोग करके घोषित किए गए हैं

-फ़कीप-इनलाइन-फ़ंक्शंस
सी में, "स्थिर" फ़ंक्शन उत्सर्जित करें जिन्हें ऑब्जेक्ट फ़ाइल में "इनलाइन" घोषित किया गया है, भले ही
फ़ंक्शन को इसके सभी कॉलर्स में इनलाइन किया गया है। यह स्विच प्रभावित नहीं करता
GNU C90 में "बाहरी इनलाइन" एक्सटेंशन का उपयोग करके कार्य करता है। सी ++ में, किसी भी और सभी को उत्सर्जित करें
ऑब्जेक्ट फ़ाइल में इनलाइन फ़ंक्शन।

-फकीप-स्थिर-स्थिरांक
ऑप्टिमाइज़ेशन चालू न होने पर भी एमिट वेरिएबल्स को "स्थिर स्थिरांक" घोषित किया जाता है, भले ही
चर संदर्भित नहीं हैं।

GCC डिफ़ॉल्ट रूप से इस विकल्प को सक्षम करता है। यदि आप संकलक को यह जाँचने के लिए बाध्य करना चाहते हैं कि क्या
चर को संदर्भित किया गया था, भले ही अनुकूलन चालू हो या नहीं, उपयोग करें
la -फनो-रख-स्थिर-स्थिरांक विकल्प.

-फमर्ज-स्थिरांक
समान स्थिरांक (स्ट्रिंग स्थिरांक और फ़्लोटिंग-पॉइंट स्थिरांक) को मर्ज करने का प्रयास
संकलन इकाइयों में।

यह विकल्प अनुकूलित संकलन के लिए डिफ़ॉल्ट है यदि असेंबलर और लिंकर
इसका समर्थन करें। उपयोग -फनो-मर्ज-स्थिरांक इस व्यवहार को रोकने के लिए।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फमर्ज-ऑल-स्थिरांक
समान स्थिरांक और समान चरों को मिलाने का प्रयास।

इस विकल्प का तात्पर्य है -फमर्ज-स्थिरांक। के अतिरिक्त -फमर्ज-स्थिरांक इसका
उदाहरण के लिए निरंतर प्रारंभिक सरणी या प्रारंभिक निरंतर चर के साथ विचार करता है
अभिन्न या फ़्लोटिंग-पॉइंट प्रकार। C या C++ जैसी भाषाओं में प्रत्येक चर की आवश्यकता होती है,
पुनरावर्ती कॉल में एक ही चर के कई उदाहरणों सहित, विशिष्ट होने के लिए
स्थान, इसलिए इस विकल्प का उपयोग करने से गैर-अनुरूप व्यवहार होगा।

-फमोडुलो-अनुसूची
पहले शेड्यूलिंग पास से ठीक पहले स्विंग मोडुलो शेड्यूलिंग करें। इस
पास अंतरतम छोरों को देखता है और अलग-अलग ओवरलैप करके उनके निर्देशों को पुन: व्यवस्थित करता है
पुनरावृत्तियों

-फमोडुलो-शेड्यूल-अनुमति-regmoves
रजिस्टर चालों के साथ अधिक आक्रामक एसएमएस आधारित मोडुलो शेड्यूलिंग करें। द्वारा
इस ध्वज को सेट करने से कुछ निर्भरता-विरोधी किनारों को हटा दिया जाएगा जो ट्रिगर हो जाएगा
जीवन-सीमा विश्लेषण के आधार पर रेग-चाल की पीढ़ी। यह विकल्प है
केवल के साथ प्रभावी -फमोडुलो-अनुसूची सक्षम होना चाहिए।

-फनो-शाखा-गिनती-रेग
गिनती रजिस्टर पर "कमी और शाखा" निर्देशों का प्रयोग न करें, बल्कि इसके बजाय
निर्देशों का एक क्रम उत्पन्न करें जो एक रजिस्टर को घटाता है, इसकी तुलना करें
शून्य, फिर परिणाम के आधार पर शाखा। यह विकल्प केवल पर सार्थक है
आर्किटेक्चर जो ऐसे निर्देशों का समर्थन करते हैं, जिनमें x86, PowerPC, IA-64 और . शामिल हैं
एस/390.

डिफ़ॉल्ट है -fbranch-गिनती-reg.

-फनो-फ़ंक्शन-सीएसई
रजिस्टरों में फ़ंक्शन पते न डालें; प्रत्येक निर्देश बनाएं जो कॉल करता है a
निरंतर फ़ंक्शन में फ़ंक्शन का पता स्पष्ट रूप से होता है।

इस विकल्प का परिणाम कम कुशल कोड में होता है, लेकिन कुछ अजीब हैक जो इसे बदल देते हैं
इस विकल्प के होने पर किए गए अनुकूलन द्वारा असेंबलर आउटपुट भ्रमित हो सकता है
उपयोग नहीं किया।

डिफ़ॉल्ट है -फ़फंक्शन-सीएसई

-फनो-जीरो-इनिशियलाइज्ड-इन-बीएसएस
यदि लक्ष्य बीएसएस अनुभाग का समर्थन करता है, तो जीसीसी डिफ़ॉल्ट रूप से वेरिएबल डालता है जो हैं
बीएसएस में शून्य से आरंभ किया गया। यह परिणामी कोड में स्थान बचा सकता है।

यह विकल्प इस व्यवहार को बंद कर देता है क्योंकि कुछ प्रोग्राम स्पष्ट रूप से चर पर निर्भर करते हैं
डेटा सेक्शन में जा रहे हैं। उदाहरण के लिए, ताकि परिणामी निष्पादन योग्य मिल सके
उस खंड की शुरुआत और/या उसके आधार पर अनुमान लगाना।

डिफ़ॉल्ट है -fzero-इनिशियलाइज़्ड-इन-बीएसएस.

-फमडफ्लैप -फमडफ्लैप्थ -फमुडफ्लैपिर
फ्रंट-सिरों के लिए जो इसका समर्थन करते हैं (सी और सी ++), सभी जोखिम भरा सूचक/सरणी यंत्र
dereferencing संचालन, कुछ मानक पुस्तकालय स्ट्रिंग/ढेर कार्य, और कुछ अन्य
रेंज/वैधता परीक्षण के साथ संबद्ध निर्माण। इस प्रकार यंत्रीकृत मॉड्यूल होने चाहिए
बफर ओवरफ्लो, अमान्य हीप उपयोग, और C/C++ के कुछ अन्य वर्गों के प्रति प्रतिरक्षित
प्रोग्रामिंग त्रुटियां। इंस्ट्रूमेंटेशन एक अलग रनटाइम लाइब्रेरी पर निर्भर करता है
(लिबमुडफ्लैप), जिसे एक प्रोग्राम में जोड़ा जाएगा यदि -फमडफ्लैप लिंक समय पर दिया जाता है।
इंस्ट्रुमेंटेड प्रोग्राम का रन-टाइम व्यवहार किसके द्वारा नियंत्रित किया जाता है? MUDFLAP_OPTIONS
वातावरण विविधता। इसके विकल्पों के लिए "env MUDFLAP_OPTIONS=-help a.out" देखें।

उपयोग -फमडफ्लैप्थ के बजाय -फमडफ्लैप संकलित करने के लिए और लिंक करने के लिए यदि आपका प्रोग्राम बहु है-
पिरोया हुआ। उपयोग -फमुडफ्लैपिरके अलावा -फमडफ्लैप or -फमडफ्लैप्थ, अगर
इंस्ट्रूमेंटेशन को पॉइंटर रीड्स को नजरअंदाज करना चाहिए। यह कम इंस्ट्रूमेंटेशन पैदा करता है (और
इसलिए तेजी से निष्पादन) और फिर भी एकमुश्त स्मृति के खिलाफ कुछ सुरक्षा प्रदान करता है
भ्रष्टाचार लिखता है, लेकिन प्रोग्राम के भीतर गलत तरीके से पढ़ने वाले डेटा को प्रचारित करने की अनुमति देता है।

-फथ्रेड-कूद
ऑप्टिमाइज़ेशन निष्पादित करें जहां हम यह देखने के लिए जांचते हैं कि क्या किसी स्थान पर कूद शाखाएं हैं
पहले द्वारा सम्मिलित एक और तुलना पाई जाती है। यदि हां, तो पहली शाखा है
दूसरी शाखा के गंतव्य या तुरंत एक बिंदु पर पुनर्निर्देशित किया गया
इसके बाद, यह इस बात पर निर्भर करता है कि स्थिति सही है या गलत।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fsplit-चौड़ा-प्रकार
32-बिट . पर "लॉन्ग लॉन्ग" जैसे कई रजिस्टरों पर कब्जा करने वाले प्रकार का उपयोग करते समय
प्रणाली, रजिस्टरों को अलग-अलग विभाजित करें और उन्हें स्वतंत्र रूप से आवंटित करें। यह सामान्य रूप से
उन प्रकारों के लिए बेहतर कोड उत्पन्न करता है, लेकिन डिबगिंग को और अधिक कठिन बना सकता है।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fcse-अनुसरण-कूदता है
कॉमन सबएक्सप्रेशन एलिमिनेशन (CSE) में, जंप निर्देशों के माध्यम से स्कैन करें जब
छलांग का लक्ष्य किसी अन्य मार्ग से नहीं पहुंचता है। उदाहरण के लिए, जब CSE का सामना होता है
"अन्य" खंड के साथ एक "अगर" कथन, स्थिति होने पर सीएसई कूद का पालन करेगा
परीक्षण झूठा है।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-एफसीई-स्किप-ब्लॉक
यह समान है -fcse-अनुसरण-कूदता है, लेकिन सीएसई को उस छलांग का अनुसरण करने का कारण बनता है
सशर्त रूप से ब्लॉक पर छोड़ें। जब CSE को no . के साथ एक साधारण "if" कथन का सामना करना पड़ता है
अन्य खंड, -एफसीई-स्किप-ब्लॉक सीएसई को शरीर के चारों ओर कूदने का कारण बनता है
"अगर"।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फ्रेरुन-सीएसई-आफ्टर-लूप
लूप ऑप्टिमाइजेशन के बाद कॉमन सबएक्सप्रेशन एलिमिनेशन को फिर से चलाएँ।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-एफजीसीएसई
एक वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन पास करें। यह पास भी करता है
वैश्विक स्थिरांक और प्रतिलिपि प्रसार।

नोट: गणना किए गए गोटो, एक जीसीसी एक्सटेंशन का उपयोग करके एक प्रोग्राम संकलित करते समय, आपको मिल सकता है
यदि आप वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन को अक्षम करते हैं तो बेहतर रन-टाइम प्रदर्शन
जोड़कर पास करें -फनो-जीसीएसई कमांड लाइन के लिए।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-एफजीसीएसई-एलएम
. -एफजीसीएसई-एलएम सक्षम है, वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन का प्रयास करेगा
उन भारों को स्थानांतरित करें जो केवल दुकानों द्वारा अपने आप में मारे जाते हैं। यह एक लूप की अनुमति देता है
लोड/स्टोर अनुक्रम को लूप के बाहर लोड में बदला जाना है, और a
लूप के भीतर कॉपी/स्टोर करें।

जीसीएसई सक्षम होने पर डिफ़ॉल्ट रूप से सक्षम।

-fgcse-एसएम
. -fgcse-एसएम सक्षम है, वैश्विक सामान्य के बाद एक स्टोर गति पास चलाया जाता है
उप-अभिव्यक्ति उन्मूलन। यह पास स्टोर को लूप से बाहर निकालने का प्रयास करेगा। कब
के साथ संयोजन के रूप में प्रयोग किया जाता है -एफजीसीएसई-एलएम, लोड/स्टोर अनुक्रम वाले लूप हो सकते हैं
लूप से पहले लोड और लूप के बाद स्टोर में बदल गया।

किसी भी अनुकूलन स्तर पर सक्षम नहीं है।

-fgcse-लास
. -fgcse-लास सक्षम है, वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन पास
एक ही मेमोरी लोकेशन (दोनों) में स्टोर के बाद आने वाले अनावश्यक भार को समाप्त करता है
आंशिक और पूर्ण अतिरेक)।

किसी भी अनुकूलन स्तर पर सक्षम नहीं है।

-fgcse-आफ्टर-रीलोड
. -fgcse-आफ्टर-रीलोड सक्षम है, एक अनावश्यक भार उन्मूलन पास किया जाता है
पुनः लोड करने के बाद। इस पास का उद्देश्य अनावश्यक स्पिलिंग को साफ करना है।

-फनसेफ-लूप-ऑप्टिमाइज़ेशन
यदि दिया जाता है, तो लूप ऑप्टिमाइज़र यह मान लेगा कि लूप इंडेक्स ओवरफ़्लो नहीं करते हैं, और वह
गैर-तुच्छ निकास स्थिति वाले लूप अनंत नहीं हैं। यह एक व्यापक रेंज को सक्षम बनाता है
लूप ऑप्टिमाइज़ेशन का, भले ही लूप ऑप्टिमाइज़र स्वयं यह साबित न कर सके कि ये
धारणाएं मान्य हैं। का उपयोग करते हुए -वुनसेफ-लूप-ऑप्टिमाइज़ेशन, संकलक आपको चेतावनी देगा
अगर उसे इस तरह का लूप मिलता है।

-क्रॉस जंपिंग
क्रॉस-जंपिंग ट्रांसफॉर्मेशन करें। यह परिवर्तन समतुल्य कोड को एकीकृत करता है और
कोड आकार सहेजें। परिणामी कोड बिना क्रॉस के बेहतर प्रदर्शन कर सकता है या नहीं भी कर सकता है-
कूदना

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फॉटो-इंक-दिसंबर
मेमोरी एक्सेस के साथ पतों की वृद्धि या कमी को मिलाएं। यह पास है
हमेशा आर्किटेक्चर पर छोड़ दिया जाता है जिसमें इसका समर्थन करने के निर्देश नहीं होते हैं।
पर डिफ़ॉल्ट रूप से सक्षम -O और इसका समर्थन करने वाले आर्किटेक्चर पर उच्चतर।

-एफडीसी
RTL पर डेड कोड एलिमिनेशन (DCE) करें। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-एफडीएसई
RTL पर डेड स्टोर एलिमिनेशन (DSE) करें। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-फिफ-रूपांतरण
सशर्त छलांग को शाखा-रहित समकक्षों में बदलने का प्रयास। इसमें उपयोग शामिल है
सशर्त चालें, न्यूनतम, अधिकतम, सेट फ़्लैग और एब्स निर्देश, और कुछ तरकीबें करने योग्य
मानक अंकगणित द्वारा। चिप्स पर सशर्त निष्पादन का उपयोग जहां यह है
उपलब्ध "if-रूपांतरण2" द्वारा नियंत्रित किया जाता है।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फिफ-रूपांतरण2
सशर्त कूद को बदलने के लिए सशर्त निष्पादन (जहां उपलब्ध हो) का उपयोग करें
शाखा रहित समकक्ष।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fdelete-null-pointer-checks
मान लें कि प्रोग्राम सुरक्षित रूप से अशक्त बिंदुओं को नहीं हटा सकते हैं, और यह कि कोई कोड या डेटा नहीं है
तत्व वहीं रहता है। यह सरल निरंतर फोल्डिंग अनुकूलन को बिल्कुल भी सक्षम बनाता है
अनुकूलन स्तर। इसके अतिरिक्त, जीसीसी में अन्य अनुकूलन पास इस ध्वज का उपयोग करने के लिए करते हैं
वैश्विक डेटा प्रवाह विश्लेषण को नियंत्रित करें जो नल पॉइंटर्स के लिए बेकार जांच को खत्म करता है;
ये मानते हैं कि यदि किसी सूचक को पहले से ही संदर्भित किए जाने के बाद चेक किया गया है, तो यह
रिक्त नहीं हो सकता।

ध्यान दें कि कुछ परिवेशों में यह धारणा सत्य नहीं है। उपयोग
-फनो-डिलीट-नल-पॉइंटर-चेक निर्भर कार्यक्रमों के लिए इस अनुकूलन को अक्षम करने के लिए
उस व्यवहार पर।

कुछ लक्ष्य, विशेष रूप से एम्बेडेड वाले, इस विकल्प को सभी स्तरों पर अक्षम कर देते हैं। अन्यथा
यह सभी स्तरों पर सक्षम है: -ओ३, -ओ३, -ओ३, -ओ३, -ओस. पास जो जानकारी का उपयोग करते हैं
विभिन्न अनुकूलन स्तरों पर स्वतंत्र रूप से सक्षम हैं।

-fdevirualize
कॉल को वर्चुअल फ़ंक्शंस में डायरेक्ट कॉल में बदलने का प्रयास करें। यह दोनों किया जाता है
एक प्रक्रिया के भीतर और अप्रत्यक्ष रूप से अप्रत्यक्ष इनलाइनिंग के हिस्से के रूप में
("-findirect-inlining") और अंतःक्रियात्मक निरंतर प्रसार (-फिपा-सीपी) सक्रिय
स्तरों पर -ओ३, -ओ३, -ओस.

-महंगे-अनुकूलन
कई छोटे अनुकूलन करें जो अपेक्षाकृत महंगे हैं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-मुक्त
अनावश्यक विस्तार निर्देशों को हटाने का प्रयास करें। यह के लिए विशेष रूप से सहायक है
x86-64 आर्किटेक्चर जो बाद में 64-बिट रजिस्टरों में शून्य-विस्तारित होता है
उनके निचले 32-बिट आधे को लिखना।

स्तरों पर x86 के लिए सक्षम -ओ३, -ओ३.

-फॉप्टिमाइज-रजिस्टर-मूव
-फ्रेगमोव
चाल निर्देशों में और अन्य के संचालन के रूप में रजिस्टर संख्या को पुन: असाइन करने का प्रयास
रजिस्टर बांधने की मात्रा को अधिकतम करने के लिए सरल निर्देश। यह है
दो-संचालन निर्देशों वाली मशीनों पर विशेष रूप से सहायक।

नोट -फ्रेगमोव और -फॉप्टिमाइज-रजिस्टर-मूव एक ही अनुकूलन हैं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फिरा-एल्गोरिदम=कलन विधि
एकीकृत रजिस्टर आवंटक के लिए निर्दिष्ट रंग एल्गोरिथ्म का प्रयोग करें। NS
कलन विधि तर्क हो सकता है प्राथमिकता, जो चाउ के प्राथमिकता वाले रंग को निर्दिष्ट करता है, या CB,
जो चैटिन-ब्रिग्स रंग को निर्दिष्ट करता है। चैटिन-ब्रिग्स रंग लागू नहीं किया गया है
सभी आर्किटेक्चर के लिए, लेकिन उन लक्ष्यों के लिए जो इसका समर्थन करते हैं, यह डिफ़ॉल्ट है
क्योंकि यह बेहतर कोड उत्पन्न करता है।

-फिरा-क्षेत्र=क्षेत्र
एकीकृत रजिस्टर आवंटक के लिए निर्दिष्ट क्षेत्रों का प्रयोग करें। NS क्षेत्र तर्क
निम्नलिखित में से एक होना चाहिए:

सब रजिस्टर आवंटन क्षेत्रों के रूप में सभी लूप का प्रयोग करें। यह के लिए सर्वोत्तम परिणाम दे सकता है
छोटे और/या अनियमित रजिस्टर सेट वाली मशीनें।

मिश्रित
क्षेत्रों के रूप में छोटे रजिस्टर दबाव वाले छोरों को छोड़कर सभी छोरों का उपयोग करें। इस
value आमतौर पर अधिकांश मामलों में और अधिकांश आर्किटेक्चर के लिए सर्वोत्तम परिणाम देता है, और
गति के लिए अनुकूलन के साथ संकलन करते समय डिफ़ॉल्ट रूप से सक्षम होता है (-O, -ओ३, ...).

एक एक ही क्षेत्र के रूप में सभी कार्यों का प्रयोग करें। यह आमतौर पर सबसे छोटे कोड में परिणत होता है
आकार, और के लिए डिफ़ॉल्ट रूप से सक्षम है -ओस or -ओ३.

-फिरा-लूप-दबाव
लूप इनवेरिएंट को स्थानांतरित करने के निर्णयों के लिए लूप में रजिस्टर दबाव का मूल्यांकन करने के लिए IRA का उपयोग करें।
इस विकल्प के परिणामस्वरूप आमतौर पर मशीनों पर तेज़ और छोटे कोड उत्पन्न होते हैं
बड़ी रजिस्टर फाइलें (>= 32 रजिस्टर), लेकिन यह कंपाइलर को धीमा कर सकती है।

यह विकल्प स्तर पर सक्षम है -ओ३ कुछ लक्ष्यों के लिए।

-फनो-इरा-शेयर-सेव-स्लॉट
कॉल-प्रयुक्त हार्ड रजिस्टरों को सहेजने के लिए उपयोग किए जाने वाले स्टैक स्लॉट के साझाकरण को अक्षम करें
एक कॉल। प्रत्येक हार्ड रजिस्टर को एक अलग स्टैक स्लॉट मिलता है, और परिणामस्वरूप फ़ंक्शन स्टैक
फ्रेम बड़े हैं।

-फनो-इरा-शेयर-स्पिल-स्लॉट
छद्म-रजिस्टरों के लिए आवंटित स्टैक स्लॉट का साझाकरण अक्षम करें। प्रत्येक छद्म रजिस्टर
जिसे हार्ड रजिस्टर नहीं मिलता है उसे एक अलग स्टैक स्लॉट मिलता है, और परिणामस्वरूप कार्य करता है
स्टैक फ्रेम बड़े होते हैं।

-फिरा-क्रिया=n
एकीकृत रजिस्टर आवंटक के लिए डंप फ़ाइल की वाचालता को नियंत्रित करें। NS
डिफ़ॉल्ट मान 5 है। यदि मान n 10 से अधिक या बराबर है, डंप आउटपुट भेजा जाता है
के रूप में एक ही प्रारूप का उपयोग कर stderr करने के लिए n घटा 10.

-fdelayed-शाखा
यदि लक्ष्य मशीन के लिए समर्थित है, तो शोषण के निर्देशों को पुन: व्यवस्थित करने का प्रयास करें
विलंबित शाखा निर्देशों के बाद उपलब्ध अनुदेश स्लॉट।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-fschedule-insns
यदि लक्ष्य मशीन के लिए समर्थित है, तो समाप्त करने के लिए निर्देशों को पुन: व्यवस्थित करने का प्रयास करें
आवश्यक डेटा अनुपलब्ध होने के कारण निष्पादन स्टॉल। यह मशीनों की मदद करता है कि
अन्य निर्देशों को अनुमति देकर धीमा फ्लोटिंग पॉइंट या मेमोरी लोड निर्देश प्राप्त करें
लोड या फ़्लोटिंग-पॉइंट निर्देश के परिणाम की आवश्यकता होने तक जारी किया जाना चाहिए।

स्तरों पर सक्षम -ओ३, -ओ३.

-fschedule-insns2
के समान -fschedule-insns, लेकिन निर्देश शेड्यूलिंग के अतिरिक्त पास का अनुरोध करता है
रजिस्टर आवंटन के बाद किया गया है। यह मशीनों पर विशेष रूप से उपयोगी है a
अपेक्षाकृत कम संख्या में रजिस्टर और जहां मेमोरी लोड निर्देश से अधिक लेते हैं
एक चक्र।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फनो-शेड-इंटरब्लॉक
बुनियादी ब्लॉकों में निर्देश शेड्यूल न करें। यह सामान्य रूप से डिफ़ॉल्ट रूप से सक्षम होता है
पंजीकरण आवंटन से पहले शेड्यूलिंग करते समय, यानी के साथ -fschedule-insns पर या -ओ३ or
अधिक है।

-फनो-अनुसूचित-कल्पना
गैर-लोड निर्देशों की सट्टा गति की अनुमति न दें। यह सामान्य रूप से सक्षम है
रजिस्टर आवंटन से पहले शेड्यूलिंग करते समय डिफ़ॉल्ट, यानी के साथ -fschedule-insns पर या
-ओ३ या उच्चतर.

-fsched-दबाव
रजिस्टर आबंटन से पहले रजिस्टर प्रेशर सेंसिटिव इंस शेड्यूलिंग सक्षम करें।
यह केवल तभी समझ में आता है जब पंजीकरण आवंटन सक्षम होने से पहले शेड्यूल करना, यानी के साथ
-fschedule-insns पर या -ओ३ या ऊँचा। इस विकल्प के उपयोग से उत्पन्न में सुधार हो सकता है
संख्या के ऊपर रजिस्टर दबाव वृद्धि को रोककर कोड और इसके आकार को कम करें
उपलब्ध हार्ड रजिस्टरों की और परिणामस्वरूप रजिस्टर रजिस्टर में फैल जाता है
आवंटन।

-fsched-कल्पना-लोड
कुछ लोड निर्देशों की सट्टा गति की अनुमति दें। यह तभी समझ में आता है जब
पंजीकरण आवंटन से पहले शेड्यूलिंग, यानी के साथ -fschedule-insns पर या -ओ३ या उच्चतर.

-फस्ड-स्पेक-लोड-खतरनाक
अधिक लोड निर्देशों की सट्टा गति की अनुमति दें। यह तभी समझ में आता है जब
पंजीकरण आवंटन से पहले शेड्यूलिंग, यानी के साथ -fschedule-insns पर या -ओ३ या उच्चतर.

-fsched-रुका हुआ-insns
-fsched-stalled-insns=n
निर्धारित करें कि कितने इन्स (यदि कोई हैं) को समय से पहले रुकी हुई कतार से स्थानांतरित किया जा सकता है
दूसरे शेड्यूलिंग पास के दौरान तैयार सूची में इन्सन्स।
-फनो-अनुसूचित-स्थगित-इंन्स इसका मतलब है कि कोई भी इंस समय से पहले स्थानांतरित नहीं किया जाएगा,
-fsched-stalled-insns=0 इसका मतलब है कि कितने कतारबद्ध इंस को स्थानांतरित किया जा सकता है, इसकी कोई सीमा नहीं है
समय से पहले ही। -fsched-रुका हुआ-insns बिना मूल्य के बराबर है
-fsched-stalled-insns=1.

-fsched-रुका हुआ-insns-dep
-fsched-stalled-insns-dep=n
एक रुके हुए पर निर्भरता के लिए कितने इन्स समूहों (चक्रों) की जांच की जाएगी परिभाषित करें
इन्सएन जो रुके हुए इंसन्स की कतार से समय से पहले हटाने का उम्मीदवार है। इस
केवल दूसरे शेड्यूलिंग पास के दौरान प्रभाव पड़ता है, और केवल यदि
-fsched-रुका हुआ-insns प्रयोग किया जाता है। -फनो-शेड्यूल-स्टेल्ड-इन्स-डिप के बराबर है
-fsched-stalled-insns-dep=0. -fsched-रुका हुआ-insns-dep बिना मूल्य के बराबर है
सेवा मेरे -fsched-stalled-insns-dep=1.

-fsched2-उपयोग-सुपरब्लॉक
पंजीकरण आवंटन के बाद शेड्यूलिंग करते समय, सुपरब्लॉक शेड्यूलिंग एल्गोरिथम का उपयोग करें।
सुपरब्लॉक शेड्यूलिंग बुनियादी ब्लॉक सीमाओं में गति की अनुमति देता है जिसके परिणामस्वरूप तेजी से होता है
अनुसूचियां। यह विकल्प प्रयोगात्मक है, क्योंकि GCC द्वारा उपयोग किए जाने वाले सभी मशीन विवरण नहीं हैं
एल्गोरिथ्म से अविश्वसनीय परिणामों से बचने के लिए सीपीयू को बारीकी से मॉडल करें।

यह केवल तभी समझ में आता है जब पंजीकरण आवंटन के बाद शेड्यूल किया जाता है, अर्थात के साथ
-fschedule-insns2 पर या -ओ३ या उच्चतर.

-फस्ड-ग्रुप-हेयुरिस्टिक
अनुसूचक में समूह अनुमानी सक्षम करें। यह अनुमानी निर्देश का समर्थन करता है
जो एक शेड्यूल ग्रुप के अंतर्गत आता है। शेड्यूलिंग होने पर यह डिफ़ॉल्ट रूप से सक्षम होता है
सक्षम, यानी के साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३ या उच्चतर.

-fsched-महत्वपूर्ण-पथ-अनुमानी
अनुसूचक में महत्वपूर्ण-पथ अनुमानी सक्षम करें। यह अनुमानी एहसान
महत्वपूर्ण पथ पर निर्देश। शेड्यूलिंग होने पर यह डिफ़ॉल्ट रूप से सक्षम होता है
सक्षम, यानी के साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३ या उच्चतर.

-फस्ड-स्पेक-इन्स-हेयुरिस्टिक
अनुसूचक में सट्टा निर्देश अनुमानी सक्षम करें। यह अनुमानी एहसान
अधिक निर्भरता कमजोरी के साथ सट्टा निर्देश। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-फस्ड-रैंक-हेयुरिस्टिक
शेड्यूलर में रैंक अनुमानी सक्षम करें। यह अनुमानी निर्देश का समर्थन करता है
बड़े आकार या आवृत्ति वाले मूल ब्लॉक से संबंधित। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-fsched-अंतिम-इंस-हेयुरिस्टिक
अनुसूचक में अंतिम-निर्देश अनुमानी सक्षम करें। यह अनुमानी पक्ष
निर्देश जो निर्धारित अंतिम निर्देश पर कम निर्भर है। यह सक्षम है
शेड्यूलिंग सक्षम होने पर डिफ़ॉल्ट रूप से, अर्थात के साथ -fschedule-insns or -fschedule-insns2
पर या -ओ३ या उच्चतर.

-फस्ड-डिप-काउंट-हेयुरिस्टिक
अनुसूचक में आश्रित-गणना अनुमानी सक्षम करें। यह अनुमानी पक्ष
निर्देश जिसके आधार पर अधिक निर्देश हैं। यह डिफ़ॉल्ट रूप से सक्षम है
शेड्यूलिंग सक्षम होने पर, अर्थात साथ -fschedule-insns or -fschedule-insns2 पर या -ओ३
या उच्चतर.

-फ़्रेशेड्यूल-मॉड्यूलो-शेड्यूल-लूप
मोडुलो शेड्यूलिंग पारंपरिक शेड्यूलिंग से पहले आती है, अगर एक लूप मॉड्यूलो था
अनुसूचित हम बाद के शेड्यूलिंग पास को बदलने से रोकना चाह सकते हैं
अनुसूची, हम इसे नियंत्रित करने के लिए इस विकल्प का उपयोग करते हैं।

-चयनात्मक-निर्धारण
चयनात्मक शेड्यूलिंग एल्गोरिथम का उपयोग करके शेड्यूल निर्देश। चुनिंदा शेड्यूलिंग रन
पहले अनुसूचक पास के बजाय।

-fचयनात्मक-निर्धारण2
चयनात्मक शेड्यूलिंग एल्गोरिथम का उपयोग करके शेड्यूल निर्देश। चुनिंदा शेड्यूलिंग रन
दूसरे शेड्यूलर पास के बजाय।

-fsel-अनुसूचित-पाइपलाइनिंग
चुनिंदा शेड्यूलिंग के दौरान अंतरतम लूप की सॉफ़्टवेयर पाइपलाइनिंग सक्षम करें। इस
विकल्प का तब तक कोई प्रभाव नहीं पड़ता जब तक कि इनमें से कोई एक -चयनात्मक-निर्धारण or -fचयनात्मक-निर्धारण2 is
कामोत्तेजित।

-fsel-अनुसूचित-पाइपलाइनिंग-बाहरी-लूप
जब चयनात्मक शेड्यूलिंग के दौरान पाइपलाइनिंग लूप, बाहरी लूप भी पाइपलाइन करते हैं। इस
विकल्प का तब तक कोई प्रभाव नहीं पड़ता -fsel-अनुसूचित-पाइपलाइनिंग चालू है।

-फश्रिंक-रैप
एमिट फंक्शन केवल फंक्शन के उन हिस्सों से पहले प्रोलॉग करता है जिन्हें इसकी आवश्यकता होती है, न कि at
समारोह के शीर्ष। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-fcaller-बचाता है
रजिस्टरों में आवंटित किए जाने वाले मान सक्षम करें जिन्हें फ़ंक्शन कॉल द्वारा बंद कर दिया जाएगा,
ऐसी कॉलों के आसपास रजिस्टरों को सहेजने और पुनर्स्थापित करने के लिए अतिरिक्त निर्देश देकर।
ऐसा आवंटन केवल तभी किया जाता है जब ऐसा लगता है कि इससे बेहतर कोड होगा
अन्यथा उत्पादित किया जाए।

यह विकल्प हमेशा कुछ मशीनों पर डिफ़ॉल्ट रूप से सक्षम होता है, आमतौर पर जिनके पास है
इसके बजाय उपयोग करने के लिए कोई कॉल-संरक्षित रजिस्टर नहीं।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-fcombine-ढेर-समायोजन
स्टैक समायोजन (पुश और पॉप) को ट्रैक करता है और मेमोरी संदर्भों को स्टैक करता है और फिर कोशिश करता है
उन्हें संयोजित करने के तरीके खोजने के लिए।

पर डिफ़ॉल्ट रूप से सक्षम -ओ३ और उच्चा।

-fconserve-ढेर
स्टैक के उपयोग को कम करने का प्रयास करें। संकलक कम स्टैक स्थान का उपयोग करने का प्रयास करेगा,
भले ही वह प्रोग्राम को धीमा कर दे। इस विकल्प का अर्थ है सेटिंग करना बड़ा ढेर-
ढांचा 100 के लिए पैरामीटर और बड़े ढेर-फ्रेम-विकास 400 के लिए पैरामीटर।

-ftree-reassoc
पेड़ों पर पुनर्संयोजन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फट्री-प्री
पेड़ों पर आंशिक अतिरेक उन्मूलन (PRE) करें। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३ और -ओ३.

-फट्री-आंशिक-पूर्व
आंशिक अतिरेक उन्मूलन (PRE) को और अधिक आक्रामक बनाएं। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३.

-ftree-forwprop
पेड़ों पर आगे प्रचार करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फ़्री-फ़्री
पेड़ों पर पूर्ण अतिरेक उन्मूलन (एफआरई) करें। एफआरई और के बीच का अंतर
PRE यह है कि FRE केवल उन भावों पर विचार करता है जिनकी गणना सभी पथों पर की जाती है
अनावश्यक गणना। यह विश्लेषण PRE की तुलना में तेज़ है, हालाँकि यह कम उजागर करता है
अतिरेक। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फट्री-फिप्रोप
पेड़ों पर सशर्त पॉइंटर्स से भार उठाना। यह पास द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -O और उच्चा।

-फट्री-कॉपी-प्रोप
पेड़ों पर प्रतिलिपि प्रचार करें। यह पास अनावश्यक प्रतिलिपि संचालन को समाप्त करता है।
यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फिपा-शुद्ध-कॉन्स्ट
डिस्कवर करें कि कौन से कार्य शुद्ध या स्थिर हैं। पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-फिपा-संदर्भ
पता लगाएं कि कौन से स्थिर चर बच नहीं सकते हैं, संकलन इकाई से बच नहीं सकते हैं।
पर डिफ़ॉल्ट रूप से सक्षम -O और उच्चा।

-फिपा-पीटीए
इंटरप्रोसेडुरल पॉइंटर विश्लेषण और इंटरप्रोसेडुरल संशोधन करें और
संदर्भ विश्लेषण। यह विकल्प अत्यधिक मेमोरी और संकलन-समय के उपयोग का कारण बन सकता है
बड़ी संकलन इकाइयाँ। यह किसी भी अनुकूलन स्तर पर डिफ़ॉल्ट रूप से सक्षम नहीं है।

-फिपा-प्रोफाइल
इंटरप्रोसेडुरल प्रोफाइल प्रचार करें। केवल ठंड से बुलाए गए कार्य
कार्यों को ठंड के रूप में चिह्नित किया गया है। एक बार निष्पादित कार्य भी (जैसे "ठंडा",
"नोरटर्न", स्टैटिक कंस्ट्रक्टर या डिस्ट्रक्टर्स) की पहचान की जाती है। शीत कार्य और
एक बार निष्पादित कार्यों के लूप कम भागों को आकार के लिए अनुकूलित किया जाता है। द्वारा सक्षम
डिफ़ॉल्ट पर -O और उच्चा।

-फिपा-सीपी
अंतःक्रियात्मक निरंतर प्रसार करें। यह अनुकूलन कार्यक्रम का विश्लेषण करता है
यह निर्धारित करने के लिए कि फ़ंक्शन को दिए गए मान स्थिरांक हैं और फिर अनुकूलित करते हैं
इसलिए। यह अनुकूलन प्रदर्शन को काफी हद तक बढ़ा सकता है यदि
आवेदन स्थिरांक कार्यों के लिए पारित किया है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
-ओ३, -ओस और -ओ३.

-फिपा-सीपी-क्लोन
इंटरप्रोसेडुरल निरंतर प्रसार को मजबूत बनाने के लिए फंक्शन क्लोनिंग करें। कब
सक्षम, अंतःप्रक्रियात्मक निरंतर प्रसार कार्य क्लोनिंग करेगा जब
बाहरी रूप से दिखाई देने वाले फ़ंक्शन को निरंतर तर्कों के साथ बुलाया जा सकता है। क्योंकि यह
अनुकूलन कार्यों की कई प्रतियां बना सकता है, यह काफी बढ़ सकता है
कोड आकार (देखें --परम आईपीसीपी-इकाई-विकास =मूल्य) यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
-ओ३.

-फिपा-मैट्रिक्स-पुनर्गठन
मैट्रिक्स फ़्लैटनिंग और ट्रांसपोज़िंग करें। मैट्रिक्स फ़्लैटनिंग एक को बदलने की कोशिश करता है
इसके समकक्ष एन-आयामी मैट्रिक्स के साथ एम-आयामी मैट्रिक्स, जहां एन <एम। इस
मैट्रिक्स के तत्वों तक पहुँचने के लिए आवश्यक अप्रत्यक्ष स्तर को कम करता है। NS
दूसरा अनुकूलन मैट्रिक्स ट्रांसपोज़िंग है, जो के क्रम को बदलने का प्रयास करता है
कैश इलाके में सुधार करने के लिए मैट्रिक्स के आयाम। दोनों अनुकूलन की आवश्यकता है
पूरे कार्यक्रम झंडा। ट्रांसपोज़िंग केवल तभी सक्षम होती है जब प्रोफाइलिंग जानकारी होती है
उपलब्ध है.

-फट्री-सिंक
पेड़ों पर फॉरवर्ड स्टोर मोशन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फट्री-बिट-सीसीपी
पेड़ों पर विरल सशर्त बिट निरंतर प्रचार करें और सूचक का प्रचार करें
संरेखण जानकारी। यह पास केवल स्थानीय अदिश चर पर संचालित होता है और है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा। इसकी आवश्यकता है कि -फट्री-सीसीपी सक्षम किया गया है।

-फट्री-सीसीपी
पेड़ों पर विरल सशर्त निरंतर प्रसार (CCP) करें। केवल यह पास
स्थानीय अदिश चर पर कार्य करता है और डिफ़ॉल्ट रूप से सक्षम होता है -O और उच्चा।

-फट्री-स्विच-रूपांतरण
एक से आरंभीकरण के लिए स्विच में सरल इनिशियलाइज़ेशन का रूपांतरण करें
अदिश सरणी। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और उच्चा।

-फट्री-टेल-मर्ज
समान कोड अनुक्रमों की तलाश करें। जब मिल जाए, तो एक को दूसरी छलांग से बदलें।
इस अनुकूलन को टेल मर्जिंग या क्रॉस जंपिंग के रूप में जाना जाता है। यह ध्वज द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -ओ३ और उच्चा। इस पास में संकलन समय का उपयोग करके सीमित किया जा सकता है
मैक्स-टेल-मर्ज-तुलना पैरामीटर और अधिकतम-पूंछ-मर्ज-पुनरावृत्तियों पैरामीटर।

-ftree-dce
पेड़ों पर डेड कोड एलिमिनेशन (DCE) करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O
और उच्चा।

-फट्री-बिल्टिन-कॉल-डीसीई
कंडीशनल डेड कोड एलिमिनेशन (DCE) को बिल्टिन फंक्शन में कॉल करने के लिए निष्पादित करें
"errno" सेट कर सकते हैं लेकिन अन्यथा दुष्प्रभाव मुक्त हैं। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
at -ओ३ और उच्चतर यदि -ओस भी निर्दिष्ट नहीं है।

-फट्री-डोमिनेटर-ऑप्ट्स
विभिन्न प्रकार के सरल स्केलर क्लीनअप करें (निरंतर/प्रतिलिपि प्रचार, अतिरेक
उन्मूलन, सीमा प्रसार और अभिव्यक्ति सरलीकरण) एक प्रभुत्व के आधार पर
पेड़ ट्रैवर्सल। यह जंप थ्रेडिंग भी करता है (कूदने के लिए कूद को कम करने के लिए)। इस
ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और उच्चा।

-फट्री-डीएसई
पेड़ों पर डेड स्टोर एलिमिनेशन (डीएसई) करें। एक डेड स्टोर एक मेमोरी में एक स्टोर है
स्थान जिसे बाद में बिना किसी हस्तक्षेप के किसी अन्य स्टोर द्वारा अधिलेखित कर दिया जाता है। में
इस मामले में पहले के स्टोर को हटाया जा सकता है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फ्ट्री-चो
पेड़ों पर लूप हेडर कॉपी करना। यह फायदेमंद है क्योंकि यह बढ़ता है
कोड गति अनुकूलन की प्रभावशीलता। यह एक छलांग भी बचाता है। यह झंडा है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा। इसके लिए सक्षम नहीं है -ओस, क्योंकि यह आमतौर पर
कोड आकार बढ़ाता है।

-फट्री-लूप-ऑप्टिमाइज़
पेड़ों पर लूप ऑप्टिमाइज़ेशन करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फट्री-लूप-रैखिक
पेड़ पर लूप इंटरचेंज ट्रांसफॉर्मेशन करें। के समान -फ्लॉप-इंटरचेंज। काम में लाना
यह कोड परिवर्तन, जीसीसी के साथ कॉन्फ़िगर किया जाना है --साथ-पीपीएल और --साथ-क्लोग सेवा मेरे
ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर को सक्षम करें।

-फ्लॉप-इंटरचेंज
लूप पर लूप इंटरचेंज ट्रांसफॉर्मेशन करें। दो नेस्टेड लूपों को आपस में बदलना
आंतरिक और बाहरी छोरों को स्विच करता है। उदाहरण के लिए, एक लूप दिया गया है जैसे:

डीओ जे = 1, एम
क्या मैं = 1, एन
ए (जे, आई) = ए (जे, आई) * सी
ENDDO
ENDDO

लूप इंटरचेंज लूप को बदल देगा जैसे कि उपयोगकर्ता ने लिखा था:

क्या मैं = 1, एन
डीओ जे = 1, एम
ए (जे, आई) = ए (जे, आई) * सी
ENDDO
ENDDO

जो फायदेमंद हो सकता है जब "एन" कैश से बड़ा होता है, क्योंकि फोरट्रान में,
एक सरणी के तत्वों को स्मृति में स्तंभ द्वारा संग्रहीत किया जाता है, और मूल
लूप पंक्तियों पर पुनरावृति करता है, संभावित रूप से प्रत्येक एक्सेस पर कैश मिस बनाता है। इस
अनुकूलन जीसीसी द्वारा समर्थित सभी भाषाओं पर लागू होता है और यह यहीं तक सीमित नहीं है
फोरट्रान। इस कोड परिवर्तन का उपयोग करने के लिए, GCC को कॉन्फ़िगर करना होगा --साथ-पीपीएल
और --साथ-क्लोग ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर को सक्षम करने के लिए।

-फ्लूप-स्ट्रिप-माइन
लूप्स पर लूप स्ट्रिप माइनिंग ट्रांसफॉर्मेशन करें। स्ट्रिप माइनिंग लूप को विभाजित करता है
दो नेस्टेड लूप। बाहरी लूप में स्ट्रिप साइज और इनर . के बराबर स्ट्राइड होते हैं
लूप में एक स्ट्रिप के भीतर मूल लूप के स्ट्राइड होते हैं। पट्टी की लंबाई बदली जा सकती है
का उपयोग लूप-ब्लॉक-टाइल-आकार पैरामीटर। उदाहरण के लिए, एक लूप दिया गया है जैसे:

क्या मैं = 1, एन
ए (आई) = ए (आई) + सी
ENDDO

लूप स्ट्रिप माइनिंग लूप को बदल देगा जैसे कि उपयोगकर्ता ने लिखा हो:

डीओ II = 1, एन, 51
डीओ मैं = द्वितीय, मिनट (द्वितीय + 50, एन)
ए (आई) = ए (आई) + सी
ENDDO
ENDDO

यह अनुकूलन जीसीसी द्वारा समर्थित सभी भाषाओं पर लागू होता है और यहीं तक सीमित नहीं है
फोरट्रान। इस कोड परिवर्तन का उपयोग करने के लिए, GCC को कॉन्फ़िगर करना होगा --साथ-पीपीएल
और --साथ-क्लोग ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर को सक्षम करने के लिए।

-फ्लॉप-ब्लॉक
लूप पर लूप ब्लॉकिंग ट्रांसफॉर्मेशन करें। ब्लॉकिंग स्ट्रिप माइन्स प्रत्येक लूप में
लूप नेस्ट जैसे कि तत्व लूप की मेमोरी एक्सेस कैश के अंदर फिट हो जाती है। NS
पट्टी की लंबाई को का उपयोग करके बदला जा सकता है लूप-ब्लॉक-टाइल-आकार पैरामीटर। उदाहरण के लिए,
एक लूप दिया जैसे:

क्या मैं = 1, एन
डीओ जे = 1, एम
ए (जे, आई) = बी (आई) + सी (जे)
ENDDO
ENDDO

लूप ब्लॉकिंग लूप को बदल देगा जैसे कि उपयोगकर्ता ने लिखा था:

डीओ II = 1, एन, 51
डीओ जेजे = 1, एम, 51
डीओ मैं = द्वितीय, मिनट (द्वितीय + 50, एन)
डीओ जे = जेजे, मिनट (जेजे + 50, एम)
ए (जे, आई) = बी (आई) + सी (जे)
ENDDO
ENDDO
ENDDO
ENDDO

जो फायदेमंद हो सकता है जब "एम" कैश से बड़ा होता है, क्योंकि अंतरतम लूप
कैश में रखे जा सकने वाले डेटा की एक छोटी मात्रा पर पुनरावृति करेगा। इस
अनुकूलन जीसीसी द्वारा समर्थित सभी भाषाओं पर लागू होता है और यह यहीं तक सीमित नहीं है
फोरट्रान। इस कोड परिवर्तन का उपयोग करने के लिए, GCC को कॉन्फ़िगर करना होगा --साथ-पीपीएल
और --साथ-क्लोग ग्रेफाइट लूप ट्रांसफॉर्मेशन इंफ्रास्ट्रक्चर को सक्षम करने के लिए।

-फग्रेफाइट-पहचान
ग्रेफाइट के लिए पहचान परिवर्तन सक्षम करें। प्रत्येक एससीओपी के लिए हम उत्पन्न करते हैं
पॉलीहेड्रल प्रतिनिधित्व और इसे वापस गिंपल में बदल दें। का उपयोग करते हुए -फग्रेफाइट-पहचान
हम GIMPLE -> GRAPHITE -> GIMPLE परिवर्तन की लागत या लाभों की जांच कर सकते हैं।
कुछ न्यूनतम अनुकूलन भी कोड जनरेटर CLooG द्वारा किए जाते हैं, जैसे index
लूप में विभाजन और मृत कोड उन्मूलन।

फ़्लॉप-फ़्लैटन
लूप नेस्टिंग स्ट्रक्चर को हटाता है: लूप नेस्ट को सिंगल लूप में बदल देता है। इस
परिवर्तन वैश्वीकरण के लिए एक सक्षम परिवर्तन के रूप में उपयोगी हो सकता है और
समानांतरकरण। यह सुविधा प्रायोगिक है। इस कोड परिवर्तन का उपयोग करने के लिए, GCC
के साथ विन्यस्त किया जाना है --साथ-पीपीएल और --साथ-क्लोग ग्रेफाइट लूप को सक्षम करने के लिए
परिवर्तन बुनियादी ढांचे।

-फ्लॉप-समानांतर-सभी
समानांतर किए जा सकने वाले छोरों की पहचान करने के लिए ग्रेफाइट डेटा निर्भरता विश्लेषण का उपयोग करें।
उन सभी लूपों को समानांतर करें जिनका विश्लेषण किया जा सकता है, जिसमें लूप की निर्भरताएं शामिल नहीं हैं
यह जाँचे बिना कि लूपों को समानांतर करना लाभदायक है।

-फचेक-डेटा-डिप्स
कई डेटा निर्भरता विश्लेषक के परिणामों की तुलना करें। इस विकल्प का उपयोग के लिए किया जाता है
डेटा निर्भरता विश्लेषक डिबगिंग।

-फट्री-लूप-अगर-कन्वर्ट
अंतरतम छोरों में सशर्त छलांग को शाखा-रहित में बदलने का प्रयास करें
समकक्ष। इरादा क्रम में अंतरतम छोरों से नियंत्रण-प्रवाह को हटाना है
इन छोरों को संभालने के लिए वैश्वीकरण पास की क्षमता में सुधार करने के लिए। यह है
सदिशीकरण सक्षम होने पर डिफ़ॉल्ट रूप से सक्षम किया जाता है।

-फट्री-लूप-अगर-कन्वर्ट-स्टोर्स
स्मृति लिखने वाले सशर्त कूदों को परिवर्तित करने का भी प्रयास करें। इस
बहु-थ्रेडेड कार्यक्रमों के लिए परिवर्तन असुरक्षित हो सकता है क्योंकि यह सशर्त रूपांतरित करता है
स्मृति बिना शर्त स्मृति में लिखती है। उदाहरण के लिए,

के लिए (i = 0; मैं <एन; i++)
अगर (शर्त)
ए [i] = एक्सपीआर;

में बदल दिया जाएगा

के लिए (i = 0; मैं <एन; i++)
ए [i] = cond? एक्सपीआर: ए [i];

संभावित रूप से डेटा दौड़ का उत्पादन।

-फट्री-लूप-वितरण
लूप वितरण करें। यह ध्वज बड़े लूप निकायों पर कैश प्रदर्शन में सुधार कर सकता है
और आगे लूप ऑप्टिमाइज़ेशन की अनुमति दें, जैसे समानांतरीकरण या वैश्वीकरण, लेने के लिए
जगह। उदाहरण के लिए, लूप

क्या मैं = 1, एन
ए (आई) = बी (आई) + सी
डी (आई) = ई (आई) * एफ
ENDDO

में बदल जाता है

क्या मैं = 1, एन
ए (आई) = बी (आई) + सी
ENDDO
क्या मैं = 1, एन
डी (आई) = ई (आई) * एफ
ENDDO

-फट्री-लूप-वितरण-पैटर्न
पैटर्न का लूप वितरण निष्पादित करें जिसे कॉल के साथ कोड उत्पन्न किया जा सकता है a
पुस्तकालय। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३.

यह पास प्रारंभिक लूप वितरित करता है और शून्य को याद करने के लिए कॉल उत्पन्न करता है।
उदाहरण के लिए, लूप

क्या मैं = 1, एन
ए (आई) = 0
बी (आई) = ए (आई) + आई
ENDDO

में बदल जाता है

क्या मैं = 1, एन
ए (आई) = 0
ENDDO
क्या मैं = 1, एन
बी (आई) = ए (आई) + आई
ENDDO

और इनिशियलाइज़ेशन लूप को मेमसेट जीरो पर कॉल में बदल दिया जाता है।

-फट्री-लूप-इम
पेड़ों पर लूप अपरिवर्तनीय गति करें। यह दर्रा केवल उन अपरिवर्तकों को स्थानांतरित करता है जो
आरटीएल स्तर पर संभालना मुश्किल है (फ़ंक्शन कॉल, ऑपरेशन जो नॉनट्रिविअल तक विस्तारित होते हैं
इन्सन्स का क्रम)। साथ में -फनस्विच-लूप यह शर्तों के संचालन को भी स्थानांतरित करता है कि
लूप से अपरिवर्तनीय हैं, ताकि हम केवल तुच्छ अपरिवर्तनीयता विश्लेषण का उपयोग कर सकें
लूप अनस्विचिंग में। पास में स्टोर मोशन भी शामिल है।

-फट्री-लूप-इवकैनन
लूप में पुनरावृत्तियों की संख्या के लिए एक विहित काउंटर बनाएं जिसके लिए निर्धारण
पुनरावृत्तियों की संख्या के लिए जटिल विश्लेषण की आवश्यकता होती है। बाद में अनुकूलन तो हो सकता है
आसानी से संख्या निर्धारित करें। अनरोलिंग के संबंध में विशेष रूप से उपयोगी।

-फिवोप्ट्स
इंडक्शन वैरिएबल ऑप्टिमाइज़ेशन (ताकत में कमी, इंडक्शन वैरिएबल) करें
विलय और प्रेरण चर उन्मूलन) पेड़ों पर।

-फट्री-समानांतर-लूप = n
समानांतर लूप, यानी, एन थ्रेड में चलाने के लिए अपने पुनरावृत्ति स्थान को विभाजित करें। यह है
केवल उन लूपों के लिए संभव है जिनकी पुनरावृत्तियां स्वतंत्र हैं और मनमाने ढंग से हो सकती हैं
पुन: व्यवस्थित। ऑप्टिमाइज़ेशन केवल मल्टीप्रोसेसर मशीनों पर लूप के लिए लाभदायक है
जो कि सीपीयू-इंटेंसिव हैं, न कि विवश होने के कारण जैसे मेमोरी बैंडविड्थ द्वारा। इस विकल्प
का तात्पर्य -पथ्रेड, और इस प्रकार केवल उन लक्ष्यों पर समर्थित है जिनके पास समर्थन है
-पथ्रेड.

-फट्री-पीटीए
पेड़ों पर कार्य-स्थानीय बिंदुओं का विश्लेषण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है
at -O और उच्चा।

-फट्री-सर
समुच्चय का अदिश प्रतिस्थापन करें। यह पास संरचना संदर्भों को प्रतिस्थापित करता है
स्मृति के लिए बहुत जल्दी संरचनाओं को कमिट करने से रोकने के लिए स्केलर के साथ। यह झंडा है
डिफ़ॉल्ट रूप से सक्षम किया गया -O और उच्चा।

-फट्री-कॉपीरेनेम
पेड़ों पर नाम बदलने की प्रतिलिपि बनाएँ। यह पास कंपाइलर अस्थायी का नाम बदलने का प्रयास करता है
प्रतिलिपि स्थानों पर अन्य चर, आमतौर पर चर नामों के परिणामस्वरूप जो अधिक
मूल चर के समान है। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -O और
अधिक है।

-फट्री-कोलेस-इनलाइन-वर्स
copyrename पास बताओ (देखें -फट्री-कॉपीरेनेम) छोटे उपयोगकर्ता को जोड़ने का प्रयास करने के लिए-
परिभाषित चर भी, लेकिन केवल अगर वे अन्य कार्यों से रेखांकित थे। यह है एक
का अधिक सीमित रूप -फट्री-कोलेस-वर्स. यह इस तरह की डिबग जानकारी को नुकसान पहुंचा सकता है
इनलाइन वेरिएबल्स, लेकिन यह इनलाइन-इन फंक्शन के वेरिएबल्स को अलग रखेंगे
एक दूसरे, जैसे कि उनमें अपेक्षित मूल्यों को शामिल करने की अधिक संभावना है a
डिबगिंग सत्र। यह 4.7 से पुराने GCC संस्करणों में डिफ़ॉल्ट था।

-फट्री-कोलेस-वर्स
copyrename पास बताओ (देखें -फट्री-कॉपीरेनेम) छोटे उपयोगकर्ता को जोड़ने का प्रयास करने के लिए-
परिभाषित चर भी, केवल संकलक अस्थायी के बजाय। यह गंभीर रूप से सीमित हो सकता है
के साथ संकलित एक अनुकूलित प्रोग्राम को डीबग करने की क्षमता -फनो-वर-ट्रैकिंग-असाइनमेंट.
अस्वीकृत रूप में, यह ध्वज SSA को उपयोगकर्ता चरों के संयोजन को रोकता है, जिसमें शामिल हैं
इनलाइन वाले। यह विकल्प डिफॉल्ट द्वारा सक्षम हो जाता है।

-फट्री-टेर
एसएसए-> सामान्य चरण के दौरान अस्थायी अभिव्यक्ति प्रतिस्थापन करें। एकल
उपयोग/एकल डीईएफ़ अस्थायी को उनके उपयोग स्थान पर उनके परिभाषित करने के साथ बदल दिया जाता है
अभिव्यक्ति। यह गैर-GIMPLE कोड में परिणत होता है, लेकिन विस्तारकों को बहुत अधिक देता है
बेहतर आरटीएल पीढ़ी के परिणामस्वरूप काम करने के लिए जटिल पेड़। यह द्वारा सक्षम किया गया है
डिफ़ॉल्ट पर -O और उच्चा।

-फ़्री-वेक्टराइज़
पेड़ों पर लूप वैश्वीकरण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३.

-ftree-slp-वेक्टराइज़
पेड़ों पर बुनियादी ब्लॉक वैश्वीकरण करें। यह ध्वज डिफ़ॉल्ट रूप से सक्षम है -ओ३ और
कब -फ़्री-वेक्टराइज़ सक्षम किया गया है।

-फट्री-वेक्ट-लूप-संस्करण
पेड़ों पर लूप वैश्वीकरण करते समय लूप वर्जनिंग करें। जब एक लूप दिखाई देता है
वेक्टर करने योग्य होने के अलावा डेटा संरेखण या डेटा निर्भरता निर्धारित नहीं की जा सकती है
संकलन समय पर, लूप के वेक्टरकृत और गैर-वेक्टरकृत संस्करण उत्पन्न होते हैं
कौन सा संस्करण है, इसे नियंत्रित करने के लिए संरेखण या निर्भरता के लिए रन-टाइम जांच के साथ-साथ
निष्पादित। यह विकल्प स्तर को छोड़कर डिफ़ॉल्ट रूप से सक्षम है -ओस जहां यह अक्षम है।

-फवेक्ट-लागत-मॉडल
वैश्वीकरण के लिए लागत मॉडल सक्षम करें।

-फट्री-वीआरपी
पेड़ों पर वैल्यू रेंज का प्रचार-प्रसार करें। यह निरंतर प्रसार के समान है
पास, लेकिन मूल्यों के बजाय, मूल्यों की श्रेणियों का प्रचार किया जाता है। यह अनुमति देता है
ऐरे बाउंड चेक और नल पॉइंटर जैसे अनावश्यक रेंज चेक को हटाने के लिए अनुकूलक
जाँच करता है। यह डिफ़ॉल्ट रूप से सक्षम है -ओ३ और उच्चा। नल पॉइंटर चेक एलिमिनेशन
केवल तभी किया जाता है जब -fdelete-null-pointer-checks सक्षम किया गया है।

-फ्ट्रेसर
सुपरब्लॉक आकार को बड़ा करने के लिए पूंछ दोहराव करें। यह परिवर्तन सरल करता है
फ़ंक्शन का नियंत्रण प्रवाह अन्य अनुकूलन को बेहतर कार्य करने की अनुमति देता है।

-फ़नरोल-लूप्स
उन लूपों को अनियंत्रित करें जिनकी पुनरावृत्तियों की संख्या संकलन समय पर या बाद में निर्धारित की जा सकती है
लूप में प्रवेश। -फ़नरोल-लूप्स का तात्पर्य -फ्रेरुन-सीएसई-आफ्टर-लूप. यह विकल्प बनाता है
कोड बड़ा है, और इसे तेजी से चला भी सकता है और नहीं भी।

-फ़नरोल-ऑल-लूप्स
सभी लूपों को अनियंत्रित करें, भले ही लूप के होने पर उनकी पुनरावृत्तियों की संख्या अनिश्चित हो
घुसा। यह आमतौर पर कार्यक्रमों को अधिक धीरे-धीरे चलाता है। -फ़नरोल-ऑल-लूप्स का तात्पर्य है
के समान विकल्प -फ़नरोल-लूप्स,

-fsplit-ivs-इन-अनरोलर
के बाद के पुनरावृत्तियों में प्रेरण चर के मूल्यों को व्यक्त करने में सक्षम बनाता है
पहले पुनरावृत्ति में मान का उपयोग करके अनियंत्रित लूप। यह लंबी निर्भरता को तोड़ता है
चेन, इस प्रकार शेड्यूलिंग पास की दक्षता में सुधार।

का संयोजन -फवेब और CSE अक्सर समान प्रभाव प्राप्त करने के लिए पर्याप्त होता है। तथापि
मामलों में लूप बॉडी एकल मूल ब्लॉक की तुलना में अधिक जटिल है, यह नहीं है
विश्वसनीय। यह कुछ आर्किटेक्चर पर बिल्कुल भी काम नहीं करता है क्योंकि
सीएसई पास में प्रतिबंध।

यह अनुकूलन डिफ़ॉल्ट रूप से सक्षम है।

-परिवर्तनीय-विस्तार-इन-अनरोलर
इस विकल्प के साथ, कंपाइलर कुछ स्थानीय चरों की कई प्रतियां तैयार करेगा
एक लूप को अनियंत्रित करते समय जिसके परिणामस्वरूप बेहतर कोड हो सकता है।

-fआंशिक-इनलाइनिंग
कार्यों के इनलाइन भागों। इस विकल्प का कोई असर तभी होता है जब खुद को इनलाइन करना होता है
द्वारा चालू किया गया -फिनलाइन-फ़ंक्शंस or -फिनलाइन-छोटे-फ़ंक्शंस विकल्प.

स्तर पर सक्षम -ओ३.

-फप्रेडिक्टिव-कॉमनिंग
प्रेडिक्टिव कॉमनिंग ऑप्टिमाइज़ेशन करें, यानी, कंप्यूटेशंस का पुन: उपयोग करना (विशेषकर
मेमोरी लोड और स्टोर) लूप के पिछले पुनरावृत्तियों में प्रदर्शन किया।

यह विकल्प स्तर पर सक्षम है -ओ३.

-fprefetch-लूप-सरणी
यदि लक्ष्य मशीन द्वारा समर्थित है, तो मेमोरी को प्रीफ़ेच करने के लिए निर्देश उत्पन्न करें
बड़े सरणियों तक पहुँचने वाले छोरों के प्रदर्शन में सुधार करें।

यह विकल्प बेहतर या खराब कोड उत्पन्न कर सकता है; परिणाम अत्यधिक निर्भर हैं
स्रोत कोड के भीतर छोरों की संरचना।

स्तर पर अक्षम -ओस.

-फनो-पीपहोल
-फनो-पीपहोल2
किसी भी मशीन-विशिष्ट पीपहोल अनुकूलन को अक्षम करें। बीच में अंतर
-फनो-पीपहोल और -फनो-पीपहोल2 यह है कि उन्हें कंपाइलर में कैसे लागू किया जाता है; कुछ
लक्ष्य एक का उपयोग करते हैं, कुछ दूसरे का उपयोग करते हैं, कुछ दोनों का उपयोग करते हैं।

-फपीफोल डिफ़ॉल्ट रूप से सक्षम है। -fpeehole2 स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फनो-अनुमान-शाखा-प्रायिकता
ह्युरिस्टिक्स का उपयोग करके शाखा की संभावनाओं का अनुमान न लगाएं।

GCC शाखा की संभावनाओं का अनुमान लगाने के लिए अनुमान का उपयोग करेगा यदि वे द्वारा प्रदान नहीं किए गए हैं
प्रोफाइलिंग फीडबैक (-फ्रोफाइल-आर्क्स) ये अनुमान नियंत्रण प्रवाह पर आधारित हैं
ग्राफ। यदि कुछ शाखा संभावनाओं को निर्दिष्ट किया जाता है __बिल्टिन_अपेक्षित, फिर
शेष नियंत्रण प्रवाह के लिए शाखा संभावनाओं का अनुमान लगाने के लिए ह्युरिस्टिक्स का उपयोग किया जाएगा
ग्राफ, ले रहा है __बिल्टिन_अपेक्षित खाते में जानकारी। के बीच बातचीत
अनुमान और __बिल्टिन_अपेक्षित जटिल हो सकता है, और कुछ मामलों में, यह उपयोगी हो सकता है
अनुमानों को अक्षम करें ताकि के प्रभाव __बिल्टिन_अपेक्षित के लिए आसान कर रहे हैं
समझना।

डिफ़ॉल्ट है -fअनुमान-शाखा-प्रायिकता स्तरों पर -O, -ओ३, -ओ३, -ओस.

-फ्रीऑर्डर-ब्लॉक
लिए गए कार्यों की संख्या को कम करने के लिए संकलित फ़ंक्शन में मूल ब्लॉकों को पुन: व्यवस्थित करें
शाखाओं और कोड इलाके में सुधार।

स्तरों पर सक्षम -ओ३, -ओ३.

-फ्रीऑर्डर-ब्लॉक-और-विभाजन
कम करने के लिए, संकलित फ़ंक्शन में मूल ब्लॉकों को पुन: व्यवस्थित करने के अलावा
ली गई शाखाओं की संख्या, विभाजन गर्म और ठंडे बुनियादी ब्लॉक अलग-अलग वर्गों में
पेजिंग और कैशे इलाके के प्रदर्शन को बेहतर बनाने के लिए असेंबली और .o फाइलों की।

अपवाद हैंडलिंग की उपस्थिति में यह अनुकूलन स्वचालित रूप से बंद हो जाता है,
लिंकऑन अनुभागों के लिए, उपयोगकर्ता द्वारा परिभाषित अनुभाग विशेषता वाले कार्यों के लिए और किसी पर भी
आर्किटेक्चर जो नामित वर्गों का समर्थन नहीं करता है।

-फ्रीऑर्डर-फ़ंक्शंस
कोड इलाके में सुधार के लिए ऑब्जेक्ट फ़ाइल में कार्यों को पुन: व्यवस्थित करें। यह है
सबसे अधिक बार निष्पादित के लिए विशेष उपखंड ".text.hot" का उपयोग करके कार्यान्वित किया गया
फ़ंक्शन और ".text.unlikely" असंभावित निष्पादित कार्यों के लिए। पुन: क्रमित किया जाता है
लिंकर इसलिए ऑब्जेक्ट फ़ाइल स्वरूप को नामित अनुभागों का समर्थन करना चाहिए और लिंकर को अवश्य रखना चाहिए
उन्हें उचित तरीके से।

साथ ही इस विकल्प को प्रभावी बनाने के लिए प्रोफाइल फीडबैक भी उपलब्ध होना चाहिए। देखो
-फ्रोफाइल-आर्क्स ब्योरा हेतु।

स्तरों पर सक्षम -ओ३, -ओ३, -ओस.

-फस्ट्रिक्ट-अलियासिंग
संकलक को भाषा पर लागू होने वाले सख्त एलियासिंग नियमों को मानने की अनुमति दें
संकलित किया जा रहा है। सी (और सी ++) के लिए, यह प्रकार के आधार पर अनुकूलन को सक्रिय करता है
भाव। विशेष रूप से, एक प्रकार की वस्तु को कभी नहीं रहने के लिए माना जाता है
एक अलग प्रकार की वस्तु के रूप में एक ही पता, जब तक कि प्रकार लगभग समान न हों।
उदाहरण के लिए, एक "अहस्ताक्षरित इंट" एक "इंट" उपनाम कर सकता है, लेकिन "शून्य *" या "डबल" नहीं। ए
चरित्र प्रकार किसी अन्य प्रकार का उपनाम हो सकता है।

इस तरह के कोड पर विशेष ध्यान दें:

संघ a_union {
int i;
डबल डी;
};

इंट एफ () {
संघ a_union टी;
टीडी = 3.0;
वापसी ती;
}

सबसे हाल ही में संघ के किसी अन्य सदस्य से पढ़ने का अभ्यास
को लिखा जाता है (जिसे "टाइप-पनिंग" कहा जाता है) आम है। भी साथ -फस्ट्रिक्ट-अलियासिंग, प्रकार-
पनिंग की अनुमति है, बशर्ते कि मेमोरी को यूनियन प्रकार के माध्यम से एक्सेस किया जाए। ऐसा
उपरोक्त कोड अपेक्षा के अनुरूप काम करेगा। हालांकि, यह कोड नहीं हो सकता है:

इंट एफ () {
संघ a_union टी;
इंट * आईपी;
टीडी = 3.0;
आईपी ​​= &t.i;
वापसी * ​​आईपी;
}

इसी तरह, पता लेकर पहुंच, परिणामी सूचक कास्टिंग और
परिणाम को संदर्भित करने से अपरिभाषित व्यवहार होता है, भले ही कलाकार संघ प्रकार का उपयोग करता हो,
उदाहरण के लिए:

इंट एफ () {
डबल डी = 3.0;
वापसी ((संघ a_union *) और डी) -> मैं;
}

RSI -फस्ट्रिक्ट-अलियासिंग विकल्प स्तरों पर सक्षम है -ओ३, -ओ३, -ओस.

-फस्ट्रिक्ट-ओवरफ्लो
भाषा के आधार पर संकलक को सख्त हस्ताक्षरित अतिप्रवाह नियमों को मानने की अनुमति दें
संकलित किया जा रहा है। सी (और सी ++) के लिए इसका मतलब है कि अंकगणित करते समय अतिप्रवाह
हस्ताक्षरित संख्या अपरिभाषित है, जिसका अर्थ है कि संकलक यह मान सकता है कि यह नहीं होगा
होना। यह विभिन्न अनुकूलन की अनुमति देता है। उदाहरण के लिए, संकलक मान लेगा
कि "i + 10 > i" जैसा व्यंजक हस्ताक्षरित "i" के लिए हमेशा सत्य होगा। इस
धारणा केवल तभी मान्य है जब हस्ताक्षरित अतिप्रवाह अपरिभाषित है, क्योंकि अभिव्यक्ति गलत है
यदि "i + 10" अंकगणित के दो पूरक का उपयोग करते समय अतिप्रवाह होता है। जब यह विकल्प में हो
यह निर्धारित करने के किसी भी प्रयास को प्रभावित करें कि क्या हस्ताक्षरित संख्याओं पर कोई कार्रवाई अतिप्रवाह होगी
वास्तव में अतिप्रवाह को शामिल न करने के लिए सावधानी से लिखा जाना चाहिए।

यह विकल्प संकलक को सख्त सूचक शब्दार्थ ग्रहण करने की भी अनुमति देता है: दिए गए a
किसी ऑब्जेक्ट को पॉइंटर, यदि उस पॉइंटर में ऑफ़सेट जोड़ने से पॉइंटर उत्पन्न नहीं होता है
एक ही वस्तु के लिए, जोड़ अपरिभाषित है। यह संकलक को निष्कर्ष निकालने की अनुमति देता है
कि "p + u> p" एक सूचक "p" और अहस्ताक्षरित पूर्णांक "u" के लिए हमेशा सत्य होता है। इस
धारणा केवल मान्य है क्योंकि सूचक रैपराउंड अपरिभाषित है, क्योंकि अभिव्यक्ति है
झूठा अगर "पी + यू" दो पूरक अंकगणित का उपयोग करके अतिप्रवाह करता है।

यह भी देखें -fwrapv विकल्प। का उपयोग करते हुए -fwrapv इसका मतलब है कि पूर्णांक हस्ताक्षरित अतिप्रवाह है
पूरी तरह से परिभाषित: यह लपेटता है। कब -fwrapv उपयोग किया जाता है, इसमें कोई अंतर नहीं है
-फस्ट्रिक्ट-ओवरफ्लो और -फनो-सख्त-अतिप्रवाह पूर्णांकों के लिए। साथ में -fwrapv विशेष प्रकार
अतिप्रवाह की अनुमति है। उदाहरण के लिए, यदि कंपाइलर करते समय ओवरफ्लो हो जाता है
स्थिरांक पर अंकगणित, अतिप्रवाहित मान का उपयोग अभी भी किया जा सकता है -fwrapv, लेकिन नहीं
अन्यथा।

RSI -फस्ट्रिक्ट-ओवरफ्लो विकल्प स्तरों पर सक्षम है -ओ३, -ओ३, -ओस.

-फालिग्न-फ़ंक्शंस
-फलाइन-फ़ंक्शंस =n
फ़ंक्शंस की शुरुआत को अगले पावर-ऑफ-टू से अधिक के लिए संरेखित करें n, तक लंघन n
बाइट्स। उदाहरण के लिए, -फलाइन-फ़ंक्शंस = 32 कार्यों को अगले 32-बाइट में संरेखित करता है
सीमा, लेकिन -फलाइन-फ़ंक्शंस = 24 अगली 32-बाइट सीमा पर तभी संरेखित होगा जब
यह 23 बाइट्स या उससे कम को छोड़ कर किया जा सकता है।

-फनो-एलाइन-फ़ंक्शंस और -फलाइन-फ़ंक्शंस = 1 समतुल्य हैं और इसका मतलब है कि कार्य
गठबंधन नहीं किया जाएगा।

कुछ असेंबलर केवल इस ध्वज का समर्थन करते हैं जब n दो की शक्ति है; उस मामले में, यह है
लिपटा हुआ।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-लेबल
-फलाइन-लेबल =n
सभी शाखा लक्ष्यों को तक स्किप करते हुए पावर-ऑफ़-टू सीमा पर संरेखित करें n बाइट लाइक
-फालिग्न-फ़ंक्शंस. यह विकल्प आसानी से कोड को धीमा कर सकता है, क्योंकि इसे सम्मिलित करना होगा
कोड के सामान्य प्रवाह में शाखा लक्ष्य तक पहुँचने पर डमी संचालन।

-फनो-एलाइन-लेबल और -फलाइन-लेबल = 1 समतुल्य हैं और इसका मतलब है कि लेबल नहीं होंगे
संरेखित।

If -फालिग्न-लूप्स or -फालिग्न-कूद लागू होते हैं और इस मान से अधिक होते हैं, तो
इसके बजाय उनके मूल्यों का उपयोग किया जाता है।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें जिसकी बहुत संभावना है
करने के लिए हो सकता है 1, जिसका अर्थ है कोई संरेखण नहीं।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-लूप्स
-फलाइन-लूप =n
लूप्स को पावर-ऑफ-टू बाउंड्री पर संरेखित करें, ऊपर तक छोड़ते हुए n बाइट लाइक -फालिग्न-फ़ंक्शंस.
आशा है कि लूप को कई बार निष्पादित किया जाएगा, जो किसी के लिए भी बना देगा
डमी संचालन का निष्पादन।

-फनो-एलाइन-लूप और -फलाइन-लूप = 1 समतुल्य हैं और इसका मतलब है कि लूप नहीं होंगे
संरेखित।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फालिग्न-कूद
-फलाइन-कूद =n
शाखा लक्ष्य को एक शक्ति-दो-सीमा के लिए संरेखित करें, शाखा लक्ष्य के लिए जहां लक्ष्य
केवल ऊपर कूद कर पहुँचा जा सकता है n बाइट लाइक -फालिग्न-फ़ंक्शंस. में
इस मामले में, कोई डमी संचालन निष्पादित करने की आवश्यकता नहीं है।

-फनो-संरेखण-कूदता है और -फलाइन-कूद = 1 समतुल्य हैं और इसका मतलब है कि लूप नहीं होंगे
संरेखित।

If n निर्दिष्ट नहीं है या शून्य है, मशीन-निर्भर डिफ़ॉल्ट का उपयोग करें।

स्तरों पर सक्षम -ओ३, -ओ३.

-फनिट-एट-ए-टाइम
संगतता कारणों से यह विकल्प छोड़ दिया गया है। -फनिट-एट-ए-टाइम कोई प्रभाव नहीं है, जबकि
-फनो-यूनिट-एट-ए-टाइम का तात्पर्य -फनो-टॉपलेवल-रीऑर्डर और -फनो-सेक्शन-एंकर.

डिफ़ॉल्ट रूप से सक्षम।

-फनो-टॉपलेवल-रीऑर्डर
शीर्ष-स्तरीय फ़ंक्शंस, चर, और "asm" कथनों को पुन: क्रमित न करें। उन्हें आउटपुट करें
वही क्रम जो वे इनपुट फ़ाइल में दिखाई देते हैं। जब इस विकल्प का उपयोग किया जाता है,
गैर-संदर्भित स्थिर चर को हटाया नहीं जाएगा। इस विकल्प का समर्थन करने का इरादा है
मौजूदा कोड जो किसी विशेष ऑर्डरिंग पर निर्भर करता है। नए कोड के लिए, इसका उपयोग करना बेहतर है
गुण.

स्तर पर सक्षम -ओ३. जब स्पष्ट रूप से अक्षम किया जाता है, तो इसका अर्थ यह भी होता है -फनो-सेक्शन-एंकर,
जो अन्यथा सक्षम है -ओ३ कुछ लक्ष्यों पर।

-फवेब
आमतौर पर रजिस्टर आवंटन उद्देश्यों के लिए उपयोग किए जाने वाले जाले का निर्माण करता है और प्रत्येक वेब को असाइन करता है
व्यक्तिगत छद्म रजिस्टर। यह रजिस्टर आवंटन पास को संचालित करने की अनुमति देता है
छद्म सीधे, लेकिन कई अन्य अनुकूलन पासों को भी मजबूत करता है, जैसे सीएसई,
लूप अनुकूलक और तुच्छ मृत कोड हटानेवाला। हालाँकि, यह डिबगिंग कर सकता है
असंभव है, क्योंकि चर अब "होम रजिस्टर" में नहीं रहेंगे।

के साथ डिफ़ॉल्ट रूप से सक्षम -फ़नरोल-लूप्स.

पूरे कार्यक्रम
मान लें कि वर्तमान संकलन इकाई संकलित किए जा रहे पूरे कार्यक्रम का प्रतिनिधित्व करती है।
"मुख्य" के अपवाद के साथ सभी सार्वजनिक कार्य और चर और जिन्हें विलय किया गया है
विशेषता "externally_visible" स्थिर कार्य बन जाते हैं और प्रभाव में अनुकूलित होते हैं
इंटरप्रोसेडुरल ऑप्टिमाइज़र द्वारा अधिक आक्रामक रूप से। अगर सोना लिंकर प्लगइन के रूप में प्रयोग किया जाता है,
"externally_visible" विशेषताएँ स्वचालित रूप से फ़ंक्शंस में जुड़ जाती हैं (अभी तक परिवर्तनशील नहीं हैं
करंट के कारण सोना मुद्दा) जिन्हें एलटीओ ऑब्जेक्ट्स के बाहर एक्सेस किया जाता है
द्वारा निर्मित संकल्प फ़ाइल सोना. अन्य लिंकर्स के लिए जो संकल्प उत्पन्न नहीं कर सकते हैं
फ़ाइल, स्पष्ट "externally_visible" विशेषताएँ अभी भी आवश्यक हैं। जबकि यह विकल्प
a . से युक्त कार्यक्रमों के लिए "स्थिर" कीवर्ड के उचित उपयोग के बराबर है
एकल फ़ाइल, विकल्प के साथ संयोजन में -फ्लोटो इस ध्वज का उपयोग अनेकों को संकलित करने के लिए किया जा सकता है
छोटे पैमाने के कार्यक्रम क्योंकि कार्य और चर पूरे के लिए स्थानीय हो जाते हैं
संयुक्त संकलन इकाई, एकल स्रोत फ़ाइल के लिए ही नहीं।

इस विकल्प का तात्पर्य है -फहोल-फाइल फोरट्रान कार्यक्रमों के लिए।

-फ्लोटो[=n]
यह विकल्प मानक लिंक-टाइम अनुकूलक चलाता है। जब स्रोत कोड के साथ लागू किया जाता है, तो यह
GIMPLE (GCC के आंतरिक अभ्यावेदन में से एक) उत्पन्न करता है और इसे विशेष ELF को लिखता है
ऑब्जेक्ट फ़ाइल में अनुभाग। जब ऑब्जेक्ट फ़ाइलें एक साथ जुड़ी होती हैं, तो सभी
इन ईएलएफ अनुभागों से कार्य निकायों को पढ़ा जाता है और तत्काल किया जाता है जैसे कि वे थे
एक ही अनुवाद इकाई का हिस्सा।

लिंक-टाइम अनुकूलक का उपयोग करने के लिए, -फ्लोटो संकलन समय और दौरान निर्दिष्ट करने की आवश्यकता है
अंतिम कड़ी। उदाहरण के लिए:

जीसीसी -c -O2 -flto foo.c
जीसीसी -c -O2 -flto bar.c
जीसीसी -o myprog -flto -O2 foo.o bar.o

GCC के पहले दो आह्वान GIMPLE के बाइटकोड प्रतिनिधित्व को विशेष में सहेजते हैं
ईएलएफ अनुभाग अंदर फू.ओ और बार.ओ. अंतिम आह्वान GIMPLE बाइटकोड पढ़ता है
से फू.ओ और बार.ओ, दो फाइलों को एक आंतरिक छवि में मर्ज करता है, और संकलित करता है
हमेशा की तरह परिणाम। चूंकि दोनों फू.ओ और बार.ओ एक छवि में विलय कर रहे हैं, यह
जीसीसी में सभी अंतर-प्रक्रियात्मक विश्लेषण और अनुकूलन का कारण बनता है
दो फाइलें मानो वे एक ही हों। इसका मतलब है, उदाहरण के लिए, कि इनलाइनर है
में कार्यों को इनलाइन करने में सक्षम बार.ओ कार्यों में फू.ओ और इसके विपरीत।

लिंक-टाइम ऑप्टिमाइज़ेशन को सक्षम करने का एक और (सरल) तरीका है:

जीसीसी -o myprog -flto -O2 foo.c bar.c

उपरोक्त के लिए बाइटकोड उत्पन्न करता है फू.सी और बार.सी, उन्हें एक साथ एक में मिला देता है
GIMPLE प्रतिनिधित्व करता है और उन्हें हमेशा की तरह उत्पादन करने के लिए अनुकूलित करता है myprog.

ध्यान रखने वाली एकमात्र महत्वपूर्ण बात यह है कि लिंक-टाइम अनुकूलन को सक्षम करने के लिए
-फ्लोटो ध्वज को संकलन और लिंक कमांड दोनों को पारित करने की आवश्यकता है।

संपूर्ण कार्यक्रम अनुकूलन को प्रभावी बनाने के लिए, कुछ निश्चित करना आवश्यक है
कार्यक्रम की धारणाएं। संकलक को यह जानने की जरूरत है कि कौन से कार्य और चर हो सकते हैं
लिंक-टाइम अनुकूलित इकाई के बाहर पुस्तकालयों और रनटाइम द्वारा पहुँचा जा सकता है। कब
लिंकर द्वारा समर्थित, लिंकर प्लगइन (देखें -फ्यूज-लिंकर-प्लगइन) गुजरता
उपयोग किए गए और बाहरी रूप से दिखाई देने वाले प्रतीकों के बारे में संकलक को जानकारी। जब
लिंकर प्लगइन उपलब्ध नहीं है, पूरे कार्यक्रम कंपाइलर को अनुमति देने के लिए इस्तेमाल किया जाना चाहिए
इन धारणाओं को बनाने के लिए, जो अधिक आक्रामक अनुकूलन निर्णयों की ओर ले जाता है।

ध्यान दें कि जब कोई फ़ाइल संकलित की जाती है -फ्लोटो, जेनरेट की गई ऑब्जेक्ट फ़ाइल . से बड़ी है
एक नियमित ऑब्जेक्ट फ़ाइल क्योंकि इसमें GIMPLE बाइटकोड और सामान्य अंतिम कोड होता है।
इसका मतलब है कि एलटीओ जानकारी वाली ऑब्जेक्ट फाइलों को सामान्य ऑब्जेक्ट के रूप में जोड़ा जा सकता है
फ़ाइलें; अगर -फ्लोटो लिंकर को पास नहीं किया गया है, कोई अंतरप्रक्रियात्मक अनुकूलन नहीं है
लागू।

इसके अतिरिक्त, व्यक्तिगत फ़ाइलों को संकलित करने के लिए उपयोग किए जाने वाले अनुकूलन झंडे नहीं हैं
अनिवार्य रूप से लिंक समय पर उपयोग किए जाने वाले लोगों से संबंधित है। उदाहरण के लिए,

जीसीसी -c -O0 -flto foo.c
जीसीसी -c -O0 -flto bar.c
जीसीसी -o myprog -flto -O3 foo.o bar.o

यह अडॉप्टिमाइज्ड असेंबलर कोड के साथ अलग-अलग ऑब्जेक्ट फाइल तैयार करता है, लेकिन
परिणामी बाइनरी myprog पर अनुकूलित है -ओ३. यदि, इसके बजाय, अंतिम बाइनरी है
बिना उत्पन्न -फ्लोटो, तो myprog अनुकूलित नहीं है।

के साथ अंतिम बाइनरी का उत्पादन करते समय -फ्लोटो, GCC केवल लिंक-टाइम ऑप्टिमाइज़ेशन लागू करता है
उन फ़ाइलों के लिए जिनमें बाइटकोड होता है। इसलिए, आप ऑब्जेक्ट फाइलों को मिक्स एंड मैच कर सकते हैं
और GIMPLE बाइटकोड और अंतिम ऑब्जेक्ट कोड वाले पुस्तकालय। जीसीसी स्वचालित रूप से चयन करता है
एलटीओ मोड में किन फाइलों को ऑप्टिमाइज़ करना है और किन फाइलों को बिना आगे लिंक करना है
प्रसंस्करण।

बाइटकोड उत्पन्न करते समय जीसीसी द्वारा संरक्षित कुछ कोड जनरेशन झंडे हैं, जैसे
उन्हें अंतिम लिंक चरण के दौरान उपयोग करने की आवश्यकता है। वर्तमान में, निम्नलिखित विकल्प
GIMPLE बाइटकोड फ़ाइलों में सहेजे जाते हैं: -एफपीआईसी, आम और सभी -m लक्ष्य झंडे।

लिंक समय पर, इन विकल्पों को पढ़ा जाता है और फिर से लागू किया जाता है। ध्यान दें कि वर्तमान
कार्यान्वयन इन विकल्पों के लिए परस्पर विरोधी मूल्यों को पहचानने का कोई प्रयास नहीं करता है। अगर
विभिन्न फ़ाइलों में परस्पर विरोधी विकल्प मान होते हैं (उदाहरण के लिए, एक फ़ाइल के साथ संकलित किया गया है -एफपीआईसी
और दूसरा नहीं है), संकलक बस बाइटकोड से पढ़े गए अंतिम मान का उपयोग करता है
फ़ाइलें। फिर, यह अनुशंसा की जाती है कि आप इसमें भाग लेने वाली सभी फाइलों को संकलित करें
एक ही विकल्प के साथ एक ही लिंक।

यदि एलटीओ सी लिंकेज के साथ वस्तुओं का सामना करता है, तो अलग-अलग असंगत प्रकारों के साथ घोषित किया जाता है
अनुवाद इकाइयों को एक साथ जोड़ा जाना (आईएसओ सी 99 के अनुसार अपरिभाषित व्यवहार)
6.2.7), एक गैर-घातक निदान जारी किया जा सकता है। रन पर व्यवहार अभी भी अपरिभाषित है
समय है.

एलटीओ की एक और विशेषता यह है कि इंटरप्रोसेडुरल ऑप्टिमाइज़ेशन लागू करना संभव है
विभिन्न भाषाओं में लिखी गई फाइलों पर। इसके लिए भाषा के मोर्चे पर समर्थन की आवश्यकता है
समाप्त। वर्तमान में, C, C++ और फोरट्रान फ्रंट एंड GIMPLE उत्सर्जित करने में सक्षम हैं
बाइटकोड, तो ऐसा कुछ काम करना चाहिए:

जीसीसी -c -flto foo.c
जी ++ -सी -flto bar.cc
ग्फोरट्रान -c -flto baz.f90
g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortrans

ध्यान दें कि अंतिम लिंक के साथ किया जाता है जी ++ सी ++ रनटाइम पुस्तकालय प्राप्त करने के लिए और
-एलजीफोरट्रान फोरट्रान रनटाइम पुस्तकालय प्राप्त करने के लिए जोड़ा गया है। सामान्य तौर पर, मिश्रण करते समय
एलटीओ मोड में भाषाएं, आपको उसी लिंक कमांड विकल्पों का उपयोग करना चाहिए जैसे मिश्रण करते समय
नियमित (गैर-एलटीओ) संकलन में भाषाएं; आप सभी को जोड़ने की जरूरत है -फ्लोटो सभी को
कमांड को संकलित और लिंक करें।

यदि GIMPLE बाइटकोड वाली ऑब्जेक्ट फ़ाइलें लाइब्रेरी संग्रह में संग्रहीत हैं, तो कहें
libfoo.a, यदि आप a . का उपयोग कर रहे हैं तो एलटीओ लिंक में उन्हें निकालना और उनका उपयोग करना संभव है
प्लगइन समर्थन के साथ लिंकर। इस सुविधा को सक्षम करने के लिए, ध्वज का उपयोग करें -फ्यूज-लिंकर-प्लगइन
लिंक समय पर:

gcc -o myprog -O2 -flto -fuse-linker-plugin ao bo -lfoo

लिंकर प्लगइन सक्षम होने के साथ, लिंकर से आवश्यक GIMPLE फाइलें निकालता है
libfoo.a और उन्हें समुच्चय का हिस्सा बनाने के लिए चल रहे जीसीसी को भेजता है
GIMPLE छवि को अनुकूलित किया जाना है।

यदि आप प्लगइन समर्थन वाले लिंकर का उपयोग नहीं कर रहे हैं और/या लिंकर को सक्षम नहीं करते हैं
प्लगइन, फिर अंदर की वस्तुएं libfoo.a हमेशा की तरह निकाले और जुड़े हुए हैं, लेकिन वे
एलटीओ अनुकूलन प्रक्रिया में भाग न लें।

लिंक-टाइम ऑप्टिमाइज़ेशन को संचालित करने के लिए पूरे कार्यक्रम की उपस्थिति की आवश्यकता नहीं होती है।
यदि प्रोग्राम को निर्यात करने के लिए किसी प्रतीक की आवश्यकता नहीं है, तो गठबंधन करना संभव है
-फ्लोटो और पूरे कार्यक्रम इंटरप्रोसेडुरल ऑप्टिमाइज़र को अधिक उपयोग करने की अनुमति देने के लिए
आक्रामक धारणाएं जो बेहतर अनुकूलन अवसरों को जन्म दे सकती हैं। का उपयोग
पूरे कार्यक्रम लिंकर प्लगइन सक्रिय होने पर इसकी आवश्यकता नहीं है (देखें -फ्यूज-लिंकर-प्लगइन).

एलटीओ का वर्तमान कार्यान्वयन बायटेकोड उत्पन्न करने का कोई प्रयास नहीं करता है जो है
विभिन्न प्रकार के मेजबानों के बीच पोर्टेबल। बाइटकोड फ़ाइलें संस्करणित हैं और वहाँ
एक सख्त संस्करण जांच है, इसलिए जीसीसी के एक संस्करण में उत्पन्न बाइटकोड फाइलें नहीं होंगी
जीसीसी के पुराने/नए संस्करण के साथ काम करें।

लिंक-टाइम ऑप्टिमाइज़ेशन डीबगिंग जानकारी के निर्माण के साथ अच्छी तरह से काम नहीं करता है।
का मेल -फ्लोटो साथ में -g वर्तमान में प्रयोगात्मक है और गलत उत्पादन करने की उम्मीद है
परिणाम है.

यदि आप वैकल्पिक निर्दिष्ट करते हैं n, लिंक समय पर किया गया अनुकूलन और कोड जनरेशन
समानांतर में निष्पादित किया जाता है n एक स्थापित . का उपयोग करके समानांतर नौकरियां बनाना कार्यक्रम.
पर्यावरण चर MAKE इस्तेमाल किए गए प्रोग्राम को ओवरराइड करने के लिए इस्तेमाल किया जा सकता है। डिफ़ॉल्ट
के लिए मूल्य n एक्सएनएनएक्स है।

आप भी निर्दिष्ट कर सकते हैं -flto=जॉबसर्वर निर्धारित करने के लिए जीएनयू मेक के जॉब सर्वर मोड का उपयोग करने के लिए
समानांतर नौकरियों की संख्या। यह तब उपयोगी होता है जब मेकफ़ाइल कॉलिंग जीसीसी पहले से ही हो
समानांतर में निष्पादित। आपको एक प्रीपेड करना होगा + माता-पिता में आदेश नुस्खा के लिए
इसके लिए मेकफ़ाइल काम करने के लिए। यह विकल्प केवल तभी काम करता है जब MAKE जीएनयू बना है।

डिफाल्ट रूप में यह विकल्प निष्क्रिय है

-flto-विभाजन=ALG
लिंक-टाइम ऑप्टिमाइज़र द्वारा उपयोग किए जाने वाले विभाजन एल्गोरिथम को निर्दिष्ट करें। मान है
या तो "1to1" एक विभाजन को निर्दिष्ट करने के लिए जो मूल स्रोत फाइलों को प्रतिबिम्बित करता है या
समान आकार के विखंडू (जब भी संभव हो) में विभाजन को निर्दिष्ट करने के लिए "संतुलित"।
एल्गोरिथ्म के रूप में "कोई नहीं" निर्दिष्ट करना विभाजन और स्ट्रीमिंग को पूरी तरह से अक्षम कर देता है। NS
डिफ़ॉल्ट मान "संतुलित" है।

-flto-संपीड़न-स्तर=n
यह विकल्प लिखित में मध्यवर्ती भाषा के लिए प्रयुक्त संपीड़न के स्तर को निर्दिष्ट करता है
एलटीओ ऑब्जेक्ट फाइलों के लिए, और एलटीओ मोड के संयोजन के साथ ही सार्थक है (-फ्लोटो).
मान्य मान 0 (कोई संपीड़न नहीं) से 9 (अधिकतम संपीड़न) हैं। इसके बाहर के मूल्य
रेंज को 0 या 9 पर क्लैंप किया जाता है। यदि विकल्प नहीं दिया गया है, तो एक डिफ़ॉल्ट संतुलित
संपीड़न सेटिंग का उपयोग किया जाता है।

-फ्लो-रिपोर्ट
लिंक-टाइम ऑप्टिमाइज़र के कामकाज पर आंतरिक विवरण के साथ एक रिपोर्ट प्रिंट करता है। NS
इस रिपोर्ट की सामग्री संस्करण से संस्करण में भिन्न होती है। यह जीसीसी के लिए उपयोगी होने के लिए है
एलटीओ मोड में ऑब्जेक्ट फ़ाइलों को संसाधित करते समय डेवलपर्स (के माध्यम से -फ्लोटो).

डिफ़ॉल्ट रूप से अक्षम

-फ्यूज-लिंकर-प्लगइन
लिंक-टाइम ऑप्टिमाइजेशन के दौरान लिंकर प्लगइन के उपयोग को सक्षम करता है। यह विकल्प निर्भर करता है
लिंकर में प्लगइन समर्थन पर, जो सोने में या जीएनयू एलडी 2.21 या . में उपलब्ध है
नया।

यह विकल्प लाइब्रेरी से बाहर GIMPLE बाइटकोड के साथ ऑब्जेक्ट फ़ाइलों को निकालने में सक्षम बनाता है
अभिलेखागार। यह लिंक पर अधिक कोड को उजागर करके अनुकूलन की गुणवत्ता में सुधार करता है-
समय अनुकूलक। यह जानकारी निर्दिष्ट करती है कि कौन से प्रतीकों को बाहरी रूप से एक्सेस किया जा सकता है
(गैर-एलटीओ ऑब्जेक्ट द्वारा या डायनेमिक लिंकिंग के दौरान)। परिणामी कोड गुणवत्ता में सुधार
बायनेरिज़ (और साझा पुस्तकालय जो छिपी दृश्यता का उपयोग करते हैं) समान हैं
"-फहोल-प्रोग्राम"। देखो -फ्लोटो इस ध्वज के प्रभाव के विवरण के लिए और कैसे करें
इसका इस्तेमाल करें।

यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है जब जीसीसी में एलटीओ समर्थन सक्षम होता है और जीसीसी था
एक लिंकर सहायक प्लगइन्स (जीएनयू एलडी 2.21 या नया या सोना) के साथ उपयोग के लिए कॉन्फ़िगर किया गया।

-ffat-lto-वस्तुओं
फैट एलटीओ ऑब्जेक्ट ऑब्जेक्ट फ़ाइलें होती हैं जिनमें मध्यवर्ती भाषा और दोनों होते हैं
वस्तु कोड। यह उन्हें एलटीओ लिंकिंग और सामान्य लिंकिंग दोनों के लिए प्रयोग करने योग्य बनाता है। इस
विकल्प तभी प्रभावी होता है जब संकलन किया जाता है -फ्लोटो और लिंक समय पर अनदेखा कर दिया जाता है।

-फनो-फैट-एलटीओ-ऑब्जेक्ट्स सादे एलटीओ पर संकलन समय में सुधार करता है, लेकिन इसकी आवश्यकता होती है
एलटीओ से अवगत होने के लिए संपूर्ण टूलचेन। इसके लिए लिंकर प्लगइन समर्थन के साथ एक लिंकर की आवश्यकता होती है
बुनियादी कार्यक्षमता के लिए। इसके अतिरिक्त, nm, ar और ranlib को लिंकर का समर्थन करने की आवश्यकता है
एक पूर्ण विशेषताओं वाले निर्माण वातावरण की अनुमति देने के लिए प्लगइन्स (स्थिर निर्माण में सक्षम)
पुस्तकालय आदि)।

डिफ़ॉल्ट है -ffat-lto-वस्तुओं लेकिन यह डिफ़ॉल्ट भविष्य में बदलने का इरादा है
रिलीज जब लिंकर प्लगइन सक्षम वातावरण अधिक सामान्य हो जाते हैं।

-फतुलना-एलीम
पंजीकरण आवंटन और पंजीकरण के बाद आवंटन निर्देश विभाजन के बाद, पहचानें
अंकगणितीय निर्देश जो एक तुलना ऑपरेशन के समान प्रोसेसर झंडे की गणना करते हैं
उस अंकगणित के आधार पर। यदि संभव हो, तो स्पष्ट तुलना ऑपरेशन को समाप्त करें।

यह पास केवल कुछ ऐसे लक्ष्यों पर लागू होता है जो स्पष्ट रूप से प्रतिनिधित्व नहीं कर सकते हैं
रजिस्टर आवंटन पूरा होने से पहले तुलना ऑपरेशन।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फ्यूज-एलडी = सोना
उपयोग सोना डिफ़ॉल्ट लिंकर के बजाय लिंकर।

-फ्यूज-एलडी = बीएफडी
उपयोग एलडी.बीएफडी डिफ़ॉल्ट लिंकर के बजाय लिंकर।

-एफसीप्रॉप-रजिस्टर
पंजीकरण आवंटन और पंजीकरण के बाद आवंटन निर्देश विभाजन के बाद, हम
शेड्यूलिंग निर्भरता को कम करने का प्रयास करने के लिए प्रतिलिपि-प्रसार पास निष्पादित करें और
कभी-कभी कॉपी हटा दें।

स्तरों पर सक्षम -O, -ओ३, -ओ३, -ओस.

-फ्रोफाइल-सुधार
मल्टी-थ्रेडेड प्रोग्राम के लिए इंस्ट्रूमेंटेड बाइनरी का उपयोग करके एकत्र किए गए प्रोफाइल हो सकते हैं
मिस्ड काउंटर अपडेट के कारण असंगत। जब यह विकल्प निर्दिष्ट किया जाता है, तो जीसीसी करेगा
ऐसी विसंगतियों को ठीक करने या उन्हें सुचारू करने के लिए अनुमान का उपयोग करें। डिफ़ॉल्ट रूप से, जीसीसी होगा
जब एक असंगत प्रोफ़ाइल का पता चलता है तो एक त्रुटि संदेश उत्सर्जित करता है।

-फ्रोफाइल-डीआईआर=पथ
प्रोफ़ाइल डेटा फ़ाइलों को खोजने के लिए निर्देशिका सेट करें पथ. इस विकल्प
द्वारा उत्पन्न केवल प्रोफ़ाइल डेटा को प्रभावित करता है -फ्रोफाइल-उत्पन्न, -फटेस्ट-कवरेज,
-फ्रोफाइल-आर्क्स और द्वारा उपयोग किया जाता है -फ्रोफाइल-उपयोग और -fशाखा-संभावनाएं और इससे संबंधित
विकल्प। निरपेक्ष और सापेक्ष दोनों रास्तों का उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से, GCC इसका उपयोग करेगा
वर्तमान निर्देशिका के रूप में पथ, इस प्रकार प्रोफ़ाइल डेटा फ़ाइल उसी में दिखाई देगी
ऑब्जेक्ट फ़ाइल के रूप में निर्देशिका।

-फ्रोफाइल-उत्पन्न
-फ्रोफाइल-जेनरेट=पथ
प्रोफ़ाइल उपयोगी बनाने के लिए आमतौर पर इंस्ट्रूमेंटिंग एप्लिकेशन के लिए उपयोग किए जाने वाले विकल्पों को सक्षम करें
प्रोफ़ाइल प्रतिक्रिया आधारित अनुकूलन के साथ बाद में पुनर्संकलन के लिए। तुम्हें अवश्य उपयोग करना चाहिए
-फ्रोफाइल-उत्पन्न संकलन करते समय और आपके प्रोग्राम को लिंक करते समय दोनों।

निम्नलिखित विकल्प सक्षम हैं: "-fprofile-arcs", "-fprofile-values", "-fvpt"।

If पथ निर्दिष्ट किया गया है, GCC इसे देखेगा पथ प्रोफ़ाइल फ़ीडबैक डेटा खोजने के लिए
फ़ाइलें। देखो -फ्रोफाइल-डीआईआर.

-फ्रोफाइल-उपयोग
-फ्रोफाइल-उपयोग =पथ
प्रोफ़ाइल फ़ीडबैक निर्देशित ऑप्टिमाइज़ेशन सक्षम करें, और ऑप्टिमाइज़ेशन आमतौर पर लाभदायक होते हैं
केवल प्रोफ़ाइल फ़ीडबैक के साथ उपलब्ध है।

निम्नलिखित विकल्प सक्षम हैं: "-fbranch-probabilities", "-fvpt",
"-फनरोल-लूप्स", "-फपील-लूप्स", "-फ्ट्रेसर"

डिफ़ॉल्ट रूप से, GCC एक त्रुटि संदेश का उत्सर्जन करता है यदि प्रतिक्रिया प्रोफ़ाइल मेल नहीं खाती
सोर्स कोड। इस त्रुटि को उपयोग करके चेतावनी में बदला जा सकता है -कवरेज-बेमेल.
ध्यान दें कि इसके परिणामस्वरूप खराब अनुकूलित कोड हो सकता है।

If पथ निर्दिष्ट किया गया है, GCC इसे देखेगा पथ प्रोफ़ाइल फ़ीडबैक डेटा खोजने के लिए
फ़ाइलें। देखो -फ्रोफाइल-डीआईआर.

निम्नलिखित विकल्प फ़्लोटिंग-पॉइंट अंकगणित के संबंध में कंपाइलर व्यवहार को नियंत्रित करते हैं।
ये विकल्प गति और शुद्धता के बीच व्यापार करते हैं। सभी को विशेष रूप से सक्षम होना चाहिए।

-फ्लोट-स्टोर
रजिस्टरों में फ्लोटिंग-पॉइंट वेरिएबल्स को स्टोर न करें, और अन्य विकल्पों को रोकें जो
यह बदल सकता है कि फ्लोटिंग-पॉइंट मान रजिस्टर या मेमोरी से लिया गया है या नहीं।

यह विकल्प मशीनों पर अवांछित अतिरिक्त सटीकता को रोकता है जैसे कि 68000 जहां
फ्लोटिंग रजिस्टर (68881 में से) एक "डबल" की तुलना में अधिक सटीकता रखते हैं
रखने के लिए। इसी तरह x86 आर्किटेक्चर के लिए। अधिकांश कार्यक्रमों के लिए, अतिरिक्त सटीकता
केवल अच्छा ही करता है, लेकिन कुछ प्रोग्राम आईईईई फ्लोटिंग की सटीक परिभाषा पर भरोसा करते हैं
बिंदु। उपयोग -फ्लोट-स्टोर ऐसे कार्यक्रमों के लिए, सभी को स्टोर करने के लिए संशोधित करने के बाद
चर में प्रासंगिक मध्यवर्ती संगणना।

-फेक्सस-सटीक =अंदाज
यह विकल्प उन मशीनों पर अतिरिक्त सटीकता पर और नियंत्रण की अनुमति देता है जहां फ्लोटिंग-
बिंदु रजिस्टरों में आईईईई "फ्लोट" और "डबल" प्रकारों की तुलना में अधिक सटीकता होती है और
प्रोसेसर उन प्रकार के ऑपरेशन राउंडिंग का समर्थन नहीं करता है। डिफ़ॉल्ट रूप से,
-फेक्सस-सटीक = तेज प्रभाव में है; इसका मतलब है कि संचालन में किया जाता है
रजिस्टरों की शुद्धता और यह कि प्रकारों के लिए गोल करते समय यह अप्रत्याशित है
स्रोत कोड में निर्दिष्ट होता है। सी संकलित करते समय, यदि
-फेक्सस-सटीक = मानक निर्दिष्ट किया गया है तो अतिरिक्त सटीकता नियमों का पालन करेगी
आईएसओ सी 99 में निर्दिष्ट; विशेष रूप से, कास्ट और असाइनमेंट दोनों के कारण मान होते हैं
उनके शब्दार्थ प्रकारों के लिए गोल (जबकि -फ्लोट-स्टोर केवल असाइनमेंट को प्रभावित करता है)।
यह विकल्प डिफ़ॉल्ट रूप से C के लिए सक्षम होता है यदि सख्त अनुरूपता विकल्प जैसे
-एसटीडी = सी 99 प्रयोग किया जाता है।

-फेक्सस-सटीक = मानक सी के अलावा अन्य भाषाओं के लिए लागू नहीं किया गया है, और नहीं
प्रभाव अगर -फनसेफ-गणित-अनुकूलन or -फफास्ट-गणित निर्दिष्ट किया जाता है। X86 पर, यह
भी कोई प्रभाव नहीं पड़ता है अगर -एमएफपीएमथ = एसएसई or -एमएफपीएमथ=एसएसई+387 निर्दिष्ट किया जाता है; पूर्व में
मामले में, IEEE शब्दार्थ बिना अधिक सटीकता के लागू होते हैं, और बाद में, गोलाई है
अप्रत्याशित।

-फफास्ट-गणित
सेट -फनो-गणित-त्रुटि, -फनसेफ-गणित-अनुकूलन, -अनंत-गणित-केवल,
-फनो-राउंडिंग-गणित, -फनो-सिग्नलिंग-नैन्स और -एफसीएक्स-सीमित-रेंज.

यह विकल्प प्रीप्रोसेसर मैक्रो "__FAST_MATH__" को परिभाषित करने का कारण बनता है।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O इसके अलावा विकल्प -ओफ़ास्ट क्योंकि इसका परिणाम हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए गलत आउटपुट
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

-फनो-गणित-त्रुटि
एकल के साथ निष्पादित गणित कार्यों को कॉल करने के बाद ERRNO सेट न करें
निर्देश, जैसे, sqrt। एक प्रोग्राम जो गणित त्रुटि के लिए IEEE अपवादों पर निर्भर करता है
आईईईई अंकगणित को बनाए रखते हुए गति के लिए हैंडलिंग इस ध्वज का उपयोग करना चाह सकता है
संगतता।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

डिफ़ॉल्ट है -fmath-errno.

डार्विन सिस्टम पर, गणित पुस्तकालय कभी भी "इरनो" सेट नहीं करता है। इसलिए कोई कारण नहीं है
संकलक के लिए इस संभावना पर विचार करने के लिए कि यह हो सकता है, और -फनो-गणित-त्रुटि विश्व का सबसे लोकप्रिय एंव
चूक।

-फनसेफ-गणित-अनुकूलन
फ़्लोटिंग-पॉइंट अंकगणित के लिए अनुकूलन की अनुमति दें कि (ए) तर्क मान लें और
परिणाम मान्य हैं और (बी) आईईईई या एएनएसआई मानकों का उल्लंघन कर सकते हैं। जब लिंक-टाइम पर उपयोग किया जाता है,
इसमें पुस्तकालय या स्टार्टअप फ़ाइलें शामिल हो सकती हैं जो डिफ़ॉल्ट FPU नियंत्रण शब्द को बदल देती हैं या
अन्य समान अनुकूलन।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है। सक्षम बनाता है
-फनो-हस्ताक्षरित-शून्य, -फनो-ट्रैपिंग-गणित, -फैसोसिएटिव-गणित और -फ्रेसिप्रोकल-गणित.

डिफ़ॉल्ट है -फनो-असुरक्षित-गणित-अनुकूलन.

-फैसोसिएटिव-गणित
फ्लोटिंग-पॉइंट ऑपरेशंस की श्रृंखला में ऑपरेंड को फिर से जोड़ने की अनुमति दें। इस
संभावित रूप से गणना परिणाम बदलकर आईएसओ सी और सी ++ भाषा मानक का उल्लंघन करता है।
नोट: पुन: आदेश शून्य के संकेत को बदल सकता है और साथ ही NaN को अनदेखा कर सकता है और बाधित कर सकता है या
अंडरफ्लो या ओवरफ्लो बनाएं (और इस प्रकार उस कोड पर उपयोग नहीं किया जा सकता है जो राउंडिंग पर निर्भर करता है
व्यवहार जैसे "(x + 2**52) - 2**52"। फ़्लोटिंग-पॉइंट तुलनाओं को भी पुन: व्यवस्थित कर सकता है और
इस प्रकार उपयोग नहीं किया जा सकता है जब आदेशित तुलना की आवश्यकता होती है। इस विकल्प की आवश्यकता है कि
के छात्रों -फनो-हस्ताक्षरित-शून्य और -फनो-ट्रैपिंग-गणित प्रभाव में हो। इसके अलावा, यह नहीं बनाता है
बहुत समझ के साथ -आधार-गणित. फोरट्रान के लिए विकल्प स्वचालित रूप से सक्षम हो जाता है जब
के छात्रों -फनो-हस्ताक्षरित-शून्य और -फनो-ट्रैपिंग-गणित प्रभाव में हैं।

डिफ़ॉल्ट है -फनो-एसोसिएटिव-गणित.

-फ्रेसिप्रोकल-गणित
किसी मान के व्युत्क्रम को मान से विभाजित करने के बजाय उपयोग करने की अनुमति दें यदि यह
अनुकूलन को सक्षम बनाता है। उदाहरण के लिए "x / y" को "x * (1/y)" से बदला जा सकता है, जो है
उपयोगी अगर "(1/y)" सामान्य उप-अभिव्यक्ति उन्मूलन के अधीन है। ध्यान दें कि यह
सटीकता खो देता है और मूल्य पर चल रहे फ्लॉप की संख्या को बढ़ाता है।

डिफ़ॉल्ट है -फनो-पारस्परिक-गणित.

-अनंत-गणित-केवल
फ़्लोटिंग-पॉइंट अंकगणित के लिए ऑप्टिमाइज़ेशन की अनुमति दें जो मानते हैं कि तर्क और
परिणाम NaN या + -Infs नहीं हैं।

यह विकल्प किसी के द्वारा चालू नहीं किया गया है -O विकल्प क्योंकि इसका परिणाम गलत आउटपुट हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए
गणित कार्यों के लिए नियम/विनिर्देश। हालाँकि, इसके लिए तेज़ कोड प्राप्त हो सकता है
ऐसे प्रोग्राम जिन्हें इन विशिष्टताओं की गारंटी की आवश्यकता नहीं होती है।

डिफ़ॉल्ट है -फनो-परिमित-गणित-केवल.

-फनो-हस्ताक्षरित-शून्य
फ़्लोटिंग-पॉइंट अंकगणित के लिए ऑप्टिमाइज़ेशन की अनुमति दें जो शून्य के हस्ताक्षर को अनदेखा करते हैं।
आईईईई अंकगणित विशिष्ट +0.0 और -0.0 मानों के व्यवहार को निर्दिष्ट करता है, जो तब
x+0.0 या 0.0*x (यहां तक ​​कि के साथ भी) जैसे भावों के सरलीकरण को प्रतिबंधित करता है
-अनंत-गणित-केवल) इस विकल्प का अर्थ है कि शून्य परिणाम का चिह्न नहीं है
महत्वपूर्ण।

डिफ़ॉल्ट है -fsigned-शून्य.

-फनो-ट्रैपिंग-गणित
यह मानते हुए कोड संकलित करें कि फ़्लोटिंग-पॉइंट ऑपरेशंस उपयोगकर्ता-दृश्यमान उत्पन्न नहीं कर सकता है
जाल इन ट्रैप में शून्य से विभाजन, अतिप्रवाह, अंडरफ्लो, सटीक परिणाम और . शामिल हैं
अवैध ऑपरेशन। इस विकल्प की आवश्यकता है कि -फनो-सिग्नलिंग-नैन्स प्रभाव में हो।
यदि कोई "नॉन-स्टॉप" IEEE अंकगणित पर निर्भर करता है, तो इस विकल्प को सेट करने से तेज़ कोड की अनुमति मिल सकती है,
उदाहरण के लिए.

यह विकल्प कभी भी किसी के द्वारा चालू नहीं किया जाना चाहिए -O विकल्प क्योंकि इसका परिणाम हो सकता है
आईईईई या आईएसओ के सटीक कार्यान्वयन पर निर्भर कार्यक्रमों के लिए गलत आउटपुट
गणित कार्यों के लिए नियम/विनिर्देश।

डिफ़ॉल्ट है -फ्रैपिंग-गणित.

-आधार-गणित
डिफ़ॉल्ट फ़्लोटिंग-पॉइंट राउंडिंग मानने वाले परिवर्तनों और अनुकूलन को अक्षम करें
व्यवहार। यह सभी फ़्लोटिंग पॉइंट से पूर्णांक रूपांतरणों के लिए गोल-से-शून्य है, और
अन्य सभी अंकगणितीय काट-छाँट के लिए गोल-से-निकटतम। यह विकल्प होना चाहिए
उन प्रोग्रामों के लिए निर्दिष्ट किया गया है जो एफपी राउंडिंग मोड को गतिशील रूप से बदलते हैं, या जो हो सकता है
एक गैर-डिफ़ॉल्ट राउंडिंग मोड के साथ निष्पादित। यह विकल्प . की निरंतर तह को अक्षम करता है
संकलन समय पर फ़्लोटिंग-पॉइंट एक्सप्रेशन (जो राउंडिंग मोड से प्रभावित हो सकते हैं)
और अंकगणितीय परिवर्तन जो साइन-डिपेंडेंट की उपस्थिति में असुरक्षित हैं
गोलाई मोड।

डिफ़ॉल्ट है -फनो-राउंडिंग-गणित.

यह विकल्प प्रयोगात्मक है और वर्तमान में सभी GCC को अक्षम करने की गारंटी नहीं देता है
ऑप्टिमाइज़ेशन जो राउंडिंग मोड से प्रभावित होते हैं। जीसीसी के भविष्य के संस्करण प्रदान कर सकते हैं
C99 के "FENV_ACCESS" प्रज्ञा का उपयोग करके इस सेटिंग का बेहतर नियंत्रण। यह आदेश-पंक्ति
विकल्प का उपयोग "FENV_ACCESS" के लिए डिफ़ॉल्ट स्थिति निर्दिष्ट करने के लिए किया जाएगा।

-fsignaling-nans
यह मानते हुए कोड संकलित करें कि IEEE सिग्नलिंग NaNs के दौरान उपयोगकर्ता-दृश्यमान ट्रैप उत्पन्न कर सकते हैं
फ्लोटिंग-पॉइंट ऑपरेशन। इस विकल्प को सेट करने से वे अनुकूलन अक्षम हो जाते हैं जो बदल सकते हैं
NaN सिग्नलिंग के साथ दिखाई देने वाले अपवादों की संख्या। इस विकल्प का तात्पर्य है
-फ्रैपिंग-गणित.

यह विकल्प प्रीप्रोसेसर मैक्रो "__SUPPORT_SNAN__" को परिभाषित करने का कारण बनता है।

डिफ़ॉल्ट है -फनो-सिग्नलिंग-नैन्स.

यह विकल्प प्रयोगात्मक है और वर्तमान में सभी GCC को अक्षम करने की गारंटी नहीं देता है
अनुकूलन जो सिग्नलिंग NaN व्यवहार को प्रभावित करते हैं।

-फसिंगल-सटीक-स्थिर
फ़्लोटिंग-पॉइंट स्थिरांक को अंतर्निहित रूप से परिवर्तित करने के बजाय एकल परिशुद्धता के रूप में देखें
उन्हें डबल-सटीक स्थिरांक के लिए।

-एफसीएक्स-सीमित-रेंज
सक्षम होने पर, यह विकल्प बताता है कि एक श्रेणी में कमी चरण की आवश्यकता नहीं है जब
जटिल विभाजन का प्रदर्शन। इसके अलावा, कोई जाँच नहीं है कि क्या a . का परिणाम है
को बचाने के प्रयास के साथ जटिल गुणा या भाग "NaN + I*NaN" है
उस मामले में स्थिति। डिफ़ॉल्ट है -फनो-सीएक्स-सीमित-रेंज, लेकिन द्वारा सक्षम किया गया है
-फफास्ट-गणित.

यह विकल्प ISO C99 "CX_LIMITED_RANGE" प्रगति की डिफ़ॉल्ट सेटिंग को नियंत्रित करता है।
फिर भी, विकल्प सभी भाषाओं पर लागू होता है।

-एफसीएक्स-फोरट्रान-नियम
जटिल गुणा और भाग फोरट्रान नियमों का पालन करते हैं। रेंज में कमी के रूप में किया जाता है
जटिल विभाजन का हिस्सा है, लेकिन कोई जाँच नहीं है कि क्या एक जटिल का परिणाम है
गुणा या भाग "NaN + I*NaN" है, स्थिति को बचाने के प्रयास के साथ
उस स्तिथि में।

डिफ़ॉल्ट है -फनो-सीएक्स-फोरट्रान-नियम.

निम्नलिखित विकल्प उन अनुकूलन को नियंत्रित करते हैं जो प्रदर्शन में सुधार कर सकते हैं, लेकिन नहीं हैं
किसी के द्वारा सक्षम -O विकल्प। इस खंड में प्रयोगात्मक विकल्प शामिल हैं जो उत्पादन कर सकते हैं
टूटा हुआ कोड।

-fशाखा-संभावनाएं
संकलित प्रोग्राम चलाने के बाद -फ्रोफाइल-आर्क्स, आप इसे दूसरी बार संकलित कर सकते हैं
का उपयोग -fशाखा-संभावनाएं, समय की संख्या के आधार पर अनुकूलन में सुधार करने के लिए
प्रत्येक शाखा लिया गया था। जब कार्यक्रम संकलित किया गया -फ्रोफाइल-आर्क्स बाहर निकलता है यह बचाता है
चाप निष्पादन एक फ़ाइल के लिए गिना जाता है जिसे कहा जाता है स्रोतनाम.gcda प्रत्येक स्रोत फ़ाइल के लिए। NS
इस डेटा फ़ाइल में जानकारी उत्पन्न की संरचना पर बहुत निर्भर है
कोड, इसलिए आपको दोनों के लिए समान स्रोत कोड और समान अनुकूलन विकल्पों का उपयोग करना चाहिए
संकलन।

- -fशाखा-संभावनाएं, जीसीसी एक डालता है REG_BR_PROB प्रत्येक पर नोट JUMP_INSN और
CALL_INSN. इनका उपयोग अनुकूलन में सुधार के लिए किया जा सकता है। वर्तमान में, वे केवल उपयोग किए जाते हैं
एक ही स्थान पर: in reorg.c, यह अनुमान लगाने के बजाय कि किसी शाखा के किस पथ पर जाने की सबसे अधिक संभावना है
लो, द REG_BR_PROB मानों का उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन सा पथ अधिक लिया गया है
अक्सर।

-फ्रोफाइल-मान
अगर के साथ संयुक्त -फ्रोफाइल-आर्क्स, यह कोड जोड़ता है ताकि मूल्यों के बारे में कुछ डेटा
कार्यक्रम में भावों को एकत्रित किया जाता है।

- -fशाखा-संभावनाएं, यह प्रोफाइलिंग मानों से एकत्रित डेटा को वापस पढ़ता है
अनुकूलन में उपयोग के लिए अभिव्यक्तियाँ।

के साथ सक्षम -फ्रोफाइल-उत्पन्न और -फ्रोफाइल-उपयोग.

-एफवीपीटी
अगर के साथ संयुक्त -फ्रोफाइल-आर्क्स, यह संकलक को इकट्ठा करने के लिए एक कोड जोड़ने का निर्देश देता है
अभिव्यक्ति के मूल्यों के बारे में जानकारी।

- -fशाखा-संभावनाएं, यह एकत्र किए गए डेटा को वापस पढ़ता है और वास्तव में करता है
उनके आधार पर अनुकूलन। वर्तमान में अनुकूलन में की विशेषज्ञता शामिल है
भाजक के मूल्य के बारे में ज्ञान का उपयोग करते हुए विभाजन संचालन।

-फ्रेनेम-रजिस्टर
बचे हुए रजिस्टरों का उपयोग करके अनुसूचित कोड में झूठी निर्भरता से बचने का प्रयास
रजिस्टर आवंटन के बाद खत्म। इस अनुकूलन से प्रोसेसर को सबसे अधिक लाभ होगा
बहुत सारे रजिस्टर। लक्ष्य द्वारा अपनाए गए डिबग सूचना प्रारूप के आधार पर,
हालांकि, यह डिबगिंग को असंभव बना सकता है, क्योंकि वेरिएबल अब a in में नहीं रहेंगे
"होम रजिस्टर"।

के साथ डिफ़ॉल्ट रूप से सक्षम -फ़नरोल-लूप्स और -फपील-लूप्स.

-फ्ट्रेसर
सुपरब्लॉक आकार को बड़ा करने के लिए पूंछ दोहराव करें। यह परिवर्तन सरल करता है
फ़ंक्शन का नियंत्रण प्रवाह अन्य अनुकूलन को बेहतर कार्य करने की अनुमति देता है।

के साथ सक्षम -फ्रोफाइल-उपयोग.

-फ़नरोल-लूप्स
उन लूपों को अनियंत्रित करें जिनकी पुनरावृत्तियों की संख्या संकलन समय पर या बाद में निर्धारित की जा सकती है
लूप में प्रवेश। -फ़नरोल-लूप्स का तात्पर्य -फ्रेरुन-सीएसई-आफ्टर-लूप, -फवेब और
-फ्रेनेम-रजिस्टर. यह पूरे लूप पीलिंग को भी चालू कर देता है (यानी को पूरी तरह से हटा देना)
छोटे निरंतर पुनरावृत्तियों के साथ लूप)। यह विकल्प कोड को बड़ा बनाता है, और
इसे तेजी से चला सकता है या नहीं।

के साथ सक्षम -फ्रोफाइल-उपयोग.

-फ़नरोल-ऑल-लूप्स
सभी लूपों को अनियंत्रित करें, भले ही लूप के होने पर उनकी पुनरावृत्तियों की संख्या अनिश्चित हो
घुसा। यह आमतौर पर कार्यक्रमों को अधिक धीरे-धीरे चलाता है। -फ़नरोल-ऑल-लूप्स का तात्पर्य है
के समान विकल्प -फ़नरोल-लूप्स.

-फपील-लूप्स
पील लूप जिसके लिए पर्याप्त जानकारी है कि वे ज्यादा रोल नहीं करते हैं (से
प्रोफ़ाइल प्रतिक्रिया)। यह पूरे लूप पीलिंग को भी चालू कर देता है (यानी को पूरी तरह से हटा देना)
छोटे निरंतर पुनरावृत्तियों के साथ लूप)।

के साथ सक्षम -फ्रोफाइल-उपयोग.

-fmove-लूप-इनवेरिएंट
RTL लूप ऑप्टिमाइज़र में लूप इनवेरिएंट मोशन पास को सक्षम करता है। स्तर पर सक्षम
-ओ३

-फनस्विच-लूप
लूप की अपरिवर्तनीय स्थितियों वाली शाखाओं को लूप से बाहर ले जाएं, के डुप्लीकेट के साथ
दोनों शाखाओं पर लूप (हालत के परिणाम के अनुसार संशोधित)।

-फंक्शन-सेक्शन
-fdata-अनुभाग
प्रत्येक फ़ंक्शन या डेटा आइटम को आउटपुट फ़ाइल में अपने स्वयं के अनुभाग में रखें यदि लक्ष्य
मनमाने वर्गों का समर्थन करता है। फ़ंक्शन का नाम या डेटा आइटम का नाम
आउटपुट फ़ाइल में अनुभाग का नाम निर्धारित करता है।

सिस्टम पर इन विकल्पों का उपयोग करें जहां लिंकर सुधार के लिए अनुकूलन कर सकता है
निर्देश स्थान में संदर्भ का स्थान। ELF ऑब्जेक्ट का उपयोग करने वाले अधिकांश सिस्टम
सोलारिस 2 चलाने वाले प्रारूप और SPARC प्रोसेसर में ऐसे अनुकूलन के साथ लिंकर हैं।
भविष्य में AIX में ये अनुकूलन हो सकते हैं।

इन विकल्पों का उपयोग केवल तभी करें जब ऐसा करने से महत्वपूर्ण लाभ हों। जब आप
इन विकल्पों को निर्दिष्ट करें, असेंबलर और लिंकर बड़ी वस्तु बनाएंगे और
निष्पादन योग्य फ़ाइलें और धीमी भी होंगी। आप सभी पर "gprof" का उपयोग नहीं कर पाएंगे
सिस्टम यदि आप इस विकल्प को निर्दिष्ट करते हैं और आपको डिबगिंग में समस्या हो सकती है यदि आप
इस विकल्प और . दोनों को निर्दिष्ट करें -g.

-फ्ब्रांच-लक्ष्य-लोड-अनुकूलन
प्रस्तावना/उपसंहार सूत्रण से पहले शाखा लक्ष्य रजिस्टर लोड अनुकूलन करें।
लक्ष्य रजिस्टरों का उपयोग आम तौर पर केवल पुनः लोड के दौरान ही उजागर किया जा सकता है, इस प्रकार उत्थापन
लूप से बाहर लोड और इंटर-ब्लॉक शेड्यूलिंग करने के लिए एक अलग अनुकूलन की आवश्यकता होती है
उत्तीर्ण करना।

-fbranch-target-load-optimize2
प्रस्तावना/उपसंहार सूत्रण के बाद शाखा लक्ष्य रजिस्टर लोड अनुकूलन निष्पादित करें।

-एफबीटीआर-बीबी-अनन्य
शाखा लक्ष्य रजिस्टर लोड अनुकूलन करते समय, शाखा लक्ष्य का पुन: उपयोग न करें
किसी भी बुनियादी ब्लॉक के भीतर रजिस्टर करता है।

-स्टैक-रक्षक
बफर ओवरफ्लो की जांच के लिए अतिरिक्त कोड उत्सर्जित करें, जैसे स्टैक स्मैशिंग अटैक। इस
कमजोर वस्तुओं के साथ कार्यों के लिए एक गार्ड चर जोड़कर किया जाता है। इस
इसमें ऐसे फ़ंक्शन शामिल हैं जो एलोका कहते हैं, और 8 बाइट्स से बड़े बफ़र्स के साथ कार्य करते हैं।
जब कोई फ़ंक्शन दर्ज किया जाता है तो गार्ड को प्रारंभ किया जाता है और तब चेक किया जाता है जब
समारोह निकलता है। यदि कोई गार्ड जाँच विफल हो जाती है, तो एक त्रुटि संदेश मुद्रित होता है और प्रोग्राम
बाहर निकलता है।

नोट: उबंटू 6.10 और बाद के संस्करणों में यह विकल्प सी, सी ++ के लिए डिफ़ॉल्ट रूप से सक्षम है,
ओबीजेसी, ओबीजेसी++, यदि इनमें से कोई नहीं -फनो-स्टैक-रक्षक, -नोस्टडलिब, और न ही -फ्रीस्टैंडिंग रहे
मिल गया।

-फस्टैक-रक्षक-सभी
पसंद -स्टैक-रक्षक सिवाय इसके कि सभी कार्य सुरक्षित हैं।

-फसेक्शन-एंकर
साझा "एंकर" का उपयोग करके प्रतीकात्मक पते की गणना की संख्या को कम करने का प्रयास करें
आस-पास की वस्तुओं को संबोधित करने के लिए प्रतीक। यह परिवर्तन संख्या को कम करने में मदद कर सकता है
कुछ लक्ष्यों पर GOT प्रविष्टियाँ और GOT पहुँच।

उदाहरण के लिए, निम्नलिखित फ़ंक्शन "foo" का कार्यान्वयन:

स्थिर इंट ए, बी, सी;
इंट फू (शून्य) {रिटर्न ए + बी + सी; }

आमतौर पर तीनों चरों के पतों की गणना करेगा, लेकिन यदि आप इसे संकलित करते हैं
साथ में -फसेक्शन-एंकर, यह एक सामान्य एंकर बिंदु से चर का उपयोग करेगा
बजाय। प्रभाव निम्नलिखित छद्म कोड के समान है (जो मान्य सी नहीं है):

इंट फू (शून्य)
{
रजिस्टर इंट *xr = &x;
वापसी xr[&a - &x] + xr[&b - &x] + xr[&c - &x];
}

सभी लक्ष्य इस विकल्प का समर्थन नहीं करते हैं।

--परम नाम=मूल्य
कुछ स्थानों पर, जीसीसी अनुकूलन की मात्रा को नियंत्रित करने के लिए विभिन्न स्थिरांक का उपयोग करता है जो
पूरा हो गया है। उदाहरण के लिए, जीसीसी उन कार्यों को इनलाइन नहीं करेगा जिनमें एक निश्चित से अधिक शामिल हैं
निर्देशों की संख्या। आप इनमें से कुछ स्थिरांक को कमांड लाइन पर नियंत्रित कर सकते हैं
का उपयोग --परम विकल्प.

विशिष्ट मापदंडों के नाम, और मूल्यों के अर्थ, से जुड़े हुए हैं
कंपाइलर के इंटर्नल, और भविष्य में बिना किसी सूचना के परिवर्तन के अधीन हैं
विज्ञप्ति।

प्रत्येक मामले में, मूल्य एक पूर्णांक है। के लिए स्वीकार्य विकल्प नाम में दिए गए हैं
निम्न तालिका:

पूर्वानुमेय-शाखा-परिणाम
जब शाखा को इस सीमा से कम संभावना के साथ लेने की भविष्यवाणी की जाती है
(प्रतिशत में), तो इसे अच्छी तरह से अनुमानित माना जाता है। डिफ़ॉल्ट 10 है।

मैक्स-क्रॉसजंप-किनारों
क्रॉसजंपिंग के लिए विचार करने के लिए आने वाले किनारों की अधिकतम संख्या। एल्गोरिथम
के द्वारा प्रयोग किया -क्रॉस जंपिंग प्रत्येक ब्लॉक में आने वाले किनारों की संख्या में O(N^2) है।
बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, संकलन समय बनाना
निष्पादन योग्य आकार में शायद छोटे सुधार के साथ वृद्धि।

मिन-क्रॉसजंप-इन्स
निर्देशों की न्यूनतम संख्या जो दो ब्लॉक के अंत में मेल खाना चाहिए
इससे पहले उन पर क्रॉस जंपिंग की जाएगी। मामले में इस मान को नज़रअंदाज़ किया जाता है
जहां से क्रॉस जंप किए जा रहे ब्लॉक के सभी निर्देशों का मिलान किया जाता है। NS
डिफ़ॉल्ट मान 5 है।

मैक्स-ग्रो-कॉपी-बीबी-इंसंस
इसके बजाय मूल ब्लॉक की प्रतिलिपि बनाते समय अधिकतम कोड आकार विस्तार कारक
कूदना विस्तार एक छलांग निर्देश के सापेक्ष है। डिफ़ॉल्ट मान है
8.

मैक्स-गोटो-डुप्लीकेशन-इंसंस
किसी ब्लॉक में डुप्लिकेट करने के लिए निर्देशों की अधिकतम संख्या जो a . पर जाती है
गणना गोटो। कई पासों में O(N^2) व्यवहार से बचने के लिए, GCC कारक
संकलन प्रक्रिया की शुरुआत में गोटो की गणना की जाती है, और उन्हें देर से
मुमकिन। अधिकतम से अधिक नहीं वाले मूल ब्लॉक के अंत में केवल गणना की गई कूद-
गोटो-डुप्लीकेशन-इन्स अप्रभावित हैं। डिफ़ॉल्ट मान 8 है।

अधिकतम-देरी-स्लॉट-इंस-खोज
निर्देश की तलाश करते समय विचार करने के लिए निर्देशों की अधिकतम संख्या
देरी स्लॉट भरें। यदि इससे अधिक मनमाने निर्देशों की संख्या है
खोजा गया, विलंब स्लॉट भरने से समय की बचत कम से कम होगी इसलिए रुकें
खोज कर। बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, बनाना
निष्पादन समय में शायद छोटे सुधार के साथ संकलन समय में वृद्धि।

अधिकतम-देरी-स्लॉट-लाइव-खोज
विलंब स्लॉट भरने का प्रयास करते समय, विचार करने के लिए निर्देशों की अधिकतम संख्या
वैध लाइव रजिस्टर जानकारी वाले ब्लॉक की खोज करते समय। इसे बढ़ाना
मनमाने ढंग से चुने गए मूल्य का अर्थ है अधिक आक्रामक अनुकूलन, बढ़ाना
संकलन समय। विलंब स्लॉट कोड होने पर इस पैरामीटर को हटा दिया जाना चाहिए
नियंत्रण-प्रवाह ग्राफ को बनाए रखने के लिए फिर से लिखा गया।

मैक्स-जीसीएसई-मेमोरी
स्मृति की अनुमानित अधिकतम मात्रा जिसे के क्रम में आवंटित किया जाएगा
वैश्विक सामान्य उप-अभिव्यक्ति उन्मूलन अनुकूलन करें। यदि अधिक स्मृति
निर्दिष्ट से अधिक आवश्यक है, अनुकूलन नहीं किया जाएगा।

अधिकतम-जीसीएसई-सम्मिलन-अनुपात
यदि विलोपन के लिए व्यंजक सम्मिलन का अनुपात इस मान से बड़ा है
कोई व्यंजक, तो RTL PRE व्यंजक को सम्मिलित या हटा देगा और इस प्रकार छोड़ देगा
निर्देश स्ट्रीम में आंशिक रूप से निरर्थक संगणनाएँ। डिफ़ॉल्ट मान है
20.

अधिकतम-लंबित-सूची-लंबाई
फ्लशिंग से पहले लंबित निर्भरता शेड्यूलिंग की अधिकतम संख्या की अनुमति होगी
वर्तमान स्थिति और शुरुआत। कुछ शाखाओं या कॉल के साथ बड़े कार्य
अत्यधिक बड़ी सूचियाँ बना सकते हैं जो अनावश्यक रूप से स्मृति और संसाधनों का उपभोग करती हैं।

मैक्स-मॉड्यूलो-बैकट्रैक-प्रयास
अनुसूचक द्वारा किए जाने वाले बैकट्रैक प्रयासों की अधिकतम संख्या जब modulo
एक लूप शेड्यूल करना। बड़े मान तेजी से संकलन समय बढ़ा सकते हैं।

मैक्स-इनलाइन-इन्स-सिंगल
कई पैरामीटर जीसीसी में प्रयुक्त ट्री इनलाइनर को नियंत्रित करते हैं। यह नंबर सेट करता है
निर्देशों की अधिकतम संख्या (जीसीसी के आंतरिक प्रतिनिधित्व में गिना जाता है) a
सिंगल फंक्शन जिसे ट्री इनलाइनर इनलाइनिंग के लिए विचार करेगा। केवल यही
इनलाइन घोषित कार्यों और कक्षा घोषणा में लागू विधियों को प्रभावित करता है
(सी ++)। डिफ़ॉल्ट मान 400 है।

मैक्स-इनलाइन-इन्स-ऑटो
जब आप उपयोग करते हैं -फिनलाइन-फ़ंक्शंस (में शामिल -ओ३), बहुत सारे कार्य जो करेंगे
अन्यथा संकलक द्वारा इनलाइनिंग के लिए विचार नहीं किया जाएगा, इसकी जांच की जाएगी। प्रति
उन कार्यों, कार्यों की तुलना में एक अलग (अधिक प्रतिबंधात्मक) सीमा
घोषित इनलाइन लागू किया जा सकता है। डिफ़ॉल्ट मान 40 है।

बड़े-फ़ंक्शन-इन्स
वास्तव में बड़े कार्यों को निर्दिष्ट करने वाली सीमा। इस सीमा से बड़े कार्यों के लिए
इनलाइनिंग के बाद, इनलाइनिंग द्वारा विवश है --परम बड़ा-कार्य-विकास। इस
पैरामीटर मुख्य रूप से गैर के कारण अत्यधिक संकलन समय से बचने के लिए उपयोगी है-
बैक एंड द्वारा उपयोग किए जाने वाले रैखिक एल्गोरिदम। डिफ़ॉल्ट मान 2700 है।

बड़ा-कार्य-विकास
प्रतिशत में इनलाइनिंग के कारण बड़े फ़ंक्शन की अधिकतम वृद्धि निर्दिष्ट करता है। NS
डिफ़ॉल्ट मान 100 है जो बड़े फ़ंक्शन वृद्धि को मूल से 2.0 गुना तक सीमित करता है
आकार।

बड़ी-इकाई-इंन्स
बड़ी अनुवाद इकाई को निर्दिष्ट करने वाली सीमा। इकाइयों की इनलाइनिंग के कारण वृद्धि
इस सीमा से बड़ा द्वारा सीमित है --परम इनलाइन-इकाई-विकास. छोटी इकाइयों के लिए
यह बहुत कड़ा हो सकता है (फ़ंक्शन ए से युक्त इकाई पर विचार करें जो इनलाइन है और
बी जो सिर्फ ए को तीन बार कॉल करता है। यदि B, A के सापेक्ष छोटा है, तो इकाई की वृद्धि
300\% है और फिर भी ऐसी इनलाइनिंग बहुत समझदार है। से मिलकर बहुत बड़ी इकाइयों के लिए
छोटे इनलाइन करने योग्य कार्य हालांकि समग्र इकाई विकास सीमा की आवश्यकता है
कोड आकार के घातीय विस्फोट से बचें। इस प्रकार छोटी इकाइयों के लिए, आकार है
के लिए बढ़ा --परम बड़ी-इकाई-इंन्स आवेदन करने से पहले --परम इनलाइन-इकाई-विकास.
डिफ़ॉल्ट 10000 . है

इनलाइन-इकाई-विकास
इनलाइनिंग के कारण संकलन इकाई के अधिकतम समग्र विकास को निर्दिष्ट करता है। NS
डिफ़ॉल्ट मान 30 है जो इकाई वृद्धि को मूल आकार के 1.3 गुना तक सीमित करता है।

आईपीसीपी-इकाई-विकास
इंटरप्रोसेड्यूरल के कारण संकलन इकाई के अधिकतम समग्र विकास को निर्दिष्ट करता है
निरंतर प्रसार। डिफ़ॉल्ट मान 10 है जो इकाई वृद्धि को 1.1 . तक सीमित करता है
मूल आकार का गुना।

बड़ा ढेर फ्रेम
बड़े स्टैक फ़्रेम को निर्दिष्ट करने वाली सीमा। एल्गोरिथ्म इनलाइन करते समय कोशिश कर रहा है
इस सीमा से बहुत अधिक नहीं बढ़ने के लिए। डिफ़ॉल्ट मान 256 बाइट्स है।

बड़े ढेर-फ्रेम-विकास
प्रतिशत में इनलाइनिंग के कारण बड़े स्टैक फ़्रेम की अधिकतम वृद्धि निर्दिष्ट करता है।
डिफ़ॉल्ट मान 1000 है जो बड़े स्टैक फ्रेम विकास को 11 गुना तक सीमित करता है
मूल आकार।

मैक्स-इनलाइन-इन्स-पुनरावर्ती
मैक्स-इनलाइन-इन्स-पुनरावर्ती-ऑटो
स्व-पुनरावर्ती इनलाइन की आउट-ऑफ़-लाइन निर्देशों की अधिकतम संख्या निर्दिष्ट करता है
रिकर्सिव इनलाइनिंग करके फ़ंक्शन बढ़ सकता है।

इनलाइन घोषित कार्यों के लिए --परम मैक्स-इनलाइन-इन्स-पुनरावर्ती में लिया जाता है
लेखा। फ़ंक्शन के लिए इनलाइन घोषित नहीं किया गया है, रिकर्सिव इनलाइनिंग तभी होती है जब
-फिनलाइन-फ़ंक्शंस (में शामिल -ओ३) सक्षम है और --परम मैक्स-इनलाइन-इन्स-
रिकर्सिव-ऑटो प्रयोग किया जाता है। डिफ़ॉल्ट मान 450 है।

अधिकतम-इनलाइन-पुनरावर्ती-गहराई
अधिकतम-इनलाइन-पुनरावर्ती-गहराई-ऑटो
रिकर्सिव इनलाइनिंग द्वारा उपयोग की जाने वाली अधिकतम रिकर्सन गहराई निर्दिष्ट करता है।

इनलाइन घोषित कार्यों के लिए --परम अधिकतम-इनलाइन-पुनरावर्ती-गहराई में लिया जाता है
लेखा। फ़ंक्शन के लिए इनलाइन घोषित नहीं किया गया है, रिकर्सिव इनलाइनिंग तभी होती है जब
-फिनलाइन-फ़ंक्शंस (में शामिल -ओ३) सक्षम है और --परम मैक्स-इनलाइन-पुनरावर्ती-
गहराई-ऑटो प्रयोग किया जाता है। डिफ़ॉल्ट मान 8 है।

न्यूनतम-इनलाइन-पुनरावर्ती-संभाव्यता
रिकर्सिव इनलाइनिंग केवल उस फ़ंक्शन के लिए लाभदायक है जिसमें गहरी रिकर्सन है
औसत और कम रिकर्सन गहराई वाले फ़ंक्शन के लिए चोट पहुंचा सकता है
अन्य अनुकूलकों के लिए प्रस्तावना आकार या फ़ंक्शन बॉडी की जटिलता।

जब प्रोफ़ाइल फ़ीडबैक उपलब्ध हो (देखें -फ्रोफाइल-उत्पन्न) वास्तविक रिकर्सन
गहराई का अनुमान इस संभावना से लगाया जा सकता है कि दिए गए कॉल के माध्यम से फ़ंक्शन की पुनरावृत्ति होगी
अभिव्यक्ति। यह पैरामीटर केवल अभिव्यक्ति को कॉल करने के लिए इनलाइनिंग को सीमित करता है जिसका
संभाव्यता दी गई सीमा से अधिक है (प्रतिशत में)। डिफ़ॉल्ट मान 10 है।

अर्ली-इनलाइनिंग-इंसंस
विकास निर्दिष्ट करें जो प्रारंभिक इनलाइनर कर सकता है। वास्तव में यह की मात्रा को बढ़ाता है
बड़े अमूर्त दंड वाले कोड के लिए इनलाइनिंग। डिफ़ॉल्ट मान 10 है।

मैक्स-अर्ली-इनलाइनर-पुनरावृति
मैक्स-अर्ली-इनलाइनर-पुनरावृति
प्रारंभिक इनलाइनर के पुनरावृत्तियों की सीमा। यह मूल रूप से नेस्टेड की संख्या को सीमित करता है
अप्रत्यक्ष कॉल प्रारंभिक इनलाइनर हल कर सकते हैं। गहरी जंजीरों को अभी भी देर से संभाला जाता है
इनलाइनिंग

कॉमडैट-शेयरिंग-प्रायिकता
कॉमडैट-शेयरिंग-प्रायिकता
प्रायिकता (प्रतिशत में) कि कॉमडैट दृश्यता के साथ C++ इनलाइन फ़ंक्शन होगा
कई संकलन इकाइयों में साझा किया गया। डिफ़ॉल्ट मान 20 है।

मिन-वेक्ट-लूप-बाउंड
पुनरावृत्तियों की न्यूनतम संख्या जिसके तहत एक लूप वेक्टरकृत नहीं होगा जब
-फ़्री-वेक्टराइज़ प्रयोग किया जाता है। वैश्वीकरण के बाद पुनरावृत्तियों की संख्या की आवश्यकता है
वैश्वीकरण की अनुमति देने के लिए इस विकल्प द्वारा निर्दिष्ट मूल्य से अधिक हो। NS
डिफ़ॉल्ट मान 0 है।

gcse-लागत-दूरी-अनुपात
अधिकतम दूरी की गणना में स्केलिंग कारक द्वारा एक अभिव्यक्ति को स्थानांतरित किया जा सकता है
जीसीएसई अनुकूलन। यह वर्तमान में केवल कोड उत्थापन पास में समर्थित है।
अनुपात जितना बड़ा होगा, उतना ही आक्रामक कोड उत्थापन सरल होगा
भाव, यानी, वे भाव जिनकी लागत . से कम है जीसीएसई-अप्रतिबंधित-
लागत. 0 निर्दिष्ट करने से सरल भावों का उत्थापन अक्षम हो जाएगा। डिफ़ॉल्ट
मान 10 है।

gcse-अप्रतिबंधित-लागत
लागत, मोटे तौर पर एक विशिष्ट मशीन निर्देश की लागत के रूप में मापा जाता है, पर
जो GCSE अनुकूलन एक व्यंजक द्वारा तय की जा सकने वाली दूरी को बाधित नहीं करेगा।
यह वर्तमान में केवल कोड उत्थापन पास में समर्थित है। लागत जितनी कम होगी,
अधिक आक्रामक कोड उत्थापन होगा। 0 निर्दिष्ट करना सभी को अनुमति देगा
अप्रतिबंधित दूरी की यात्रा करने के लिए भाव। डिफॉल्ट मान तीन है।

अधिकतम-लहरा-गहराई
भावों को फहराने के लिए डोमिनेटर ट्री में खोज की गहराई। यह प्रयोग किया जाता है
उत्थापन एल्गोरिथ्म में द्विघात व्यवहार से बचने के लिए। 0 का मान बच जाएगा
खोज को सीमित कर सकता है, लेकिन विशाल कार्यों के संकलन को धीमा कर सकता है। डिफ़ॉल्ट
मान 30 है।

मैक्स-टेल-मर्ज-तुलना
किसी bb से तुलना करने के लिए समान bbs की अधिकतम राशि। इसका उपयोग बचने के लिए किया जाता है
ट्री टेल मर्जिंग में द्विघात व्यवहार। डिफ़ॉल्ट मान 10 है।

अधिकतम-पूंछ-मर्ज-पुनरावृत्तियों
फ़ंक्शन पर पास की पुनरावृत्तियों की अधिकतम मात्रा। यह करने के लिए प्रयोग किया जाता है
ट्री टेल मर्जिंग में संकलन समय सीमित करें। डिफ़ॉल्ट मान 2 है।

मैक्स-अनरोल्ड-इंसंस
निर्देशों की अधिकतम संख्या जो एक लूप में होनी चाहिए यदि वह लूप है
अनियंत्रित, और यदि लूप अनियंत्रित है, तो यह निर्धारित करता है कि लूप कोड कितनी बार है
अनियंत्रित है।

अधिकतम-औसत-अनियंत्रित-इन्स
निर्देशों की अधिकतम संख्या उनके निष्पादन की संभावनाओं के पक्षपाती है कि
एक लूप होना चाहिए यदि वह लूप अनियंत्रित है, और यदि लूप अनियंत्रित है, तो यह
यह निर्धारित करता है कि लूप कोड कितनी बार अनियंत्रित हुआ है।

अधिकतम-अनरोल-समय
एकल लूप के अनरोलिंग की अधिकतम संख्या।

मैक्स-छील-इन्स
यदि उस लूप को छील दिया जाता है, तो लूप में जितने निर्देश होने चाहिए, उसकी अधिकतम संख्या,
और यदि लूप को छील दिया जाता है, तो यह निर्धारित करता है कि लूप कोड कितनी बार छीला गया है।

अधिकतम-छील-समय
एक लूप के छिलके की अधिकतम संख्या।

अधिकतम-पूरी तरह से छील-इन्स
पूरी तरह से खुली हुई लूप की अधिकतम संख्या।

अधिकतम-पूरी तरह से छील-बार
एक लूप के पुनरावृत्तियों की अधिकतम संख्या पूर्ण छीलने के लिए उपयुक्त होना चाहिए।

अधिकतम-पूरी तरह से छील-लूप-घोंसला-गहराई
लूप नेस्ट की अधिकतम गहराई पूरी तरह से छीलने के लिए उपयुक्त है।

मैक्स-अनस्विच-इंसंस
स्विच न किए गए लूप की अधिकतम संख्या।

अधिकतम-अनस्विच-स्तर
एक लूप में बंद की गई शाखाओं की अधिकतम संख्या।

सीमित खर्चीला
लूप अपरिवर्तनीय गति में एक महंगी अभिव्यक्ति की न्यूनतम लागत।

iv-विचार-सभी-उम्मीदवार-बाध्य
सभी उम्मीदवारों से नीचे प्रेरण चर के लिए उम्मीदवारों की संख्या पर बाध्य
प्रेरण चर अनुकूलन में प्रत्येक उपयोग के लिए माना जाता है। केवल सबसे
अधिक उम्मीदवार होने पर संबंधित उम्मीदवारों पर विचार किया जाता है, ताकि बचने के लिए
द्विघात समय जटिलता।

iv-अधिकतम-माना-उपयोग
इंडक्शन वैरिएबल ऑप्टिमाइज़ेशन उन लूपों को छोड़ देता है जिनमें अधिक इंडक्शन होता है
परिवर्तनशील उपयोग।

iv-हमेशा-छंटनी-कैंड-सेट-बाउंड
यदि सेट में उम्मीदवारों की संख्या इस मान से कम है, तो हम हमेशा कोशिश करते हैं
जब एक नया iv जोड़ा जाता है तो इसके अनुकूलन के दौरान सेट से अनावश्यक ivs को हटा दें
सेट पर।

scev-अधिकतम-expr-आकार
अदिश विकास विश्लेषक में प्रयुक्त अभिव्यक्तियों के आकार पर बाध्य। बड़ा
अभिव्यक्ति विश्लेषक को धीमा कर देती है।

scev-अधिकतम-expr-जटिलता
अदिश विकास विश्लेषक में भावों की जटिलता पर बंधा हुआ।
जटिल भाव विश्लेषक को धीमा कर देते हैं।

ओमेगा-मैक्स-वार्स
एक ओमेगा बाधा प्रणाली में चर की अधिकतम संख्या। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

ओमेगा-मैक्स-गीक्स
एक ओमेगा बाधा प्रणाली में असमानताओं की अधिकतम संख्या। डिफ़ॉल्ट
मान 256 है।

ओमेगा-मैक्स-ईक्यूएस
एक ओमेगा बाधा प्रणाली में समानता की अधिकतम संख्या। डिफ़ॉल्ट मान
एक्सएनएनएक्स है।

ओमेगा-मैक्स-वाइल्ड-कार्ड
वाइल्डकार्ड वैरिएबल की अधिकतम संख्या जो ओमेगा सॉल्वर करने में सक्षम होगी
डालें। डिफ़ॉल्ट मान 18 है।

ओमेगा-हैश-टेबल-आकार
ओमेगा सॉल्वर में हैश तालिका का आकार। डिफ़ॉल्ट मान 550 है।

ओमेगा-अधिकतम-कुंजी
ओमेगा सॉल्वर द्वारा उपयोग की जाने वाली चाबियों की अधिकतम संख्या। डिफ़ॉल्ट मान 500 है।

ओमेगा-उन्मूलन-अनावश्यक-बाधाएं
जब 1 पर सेट किया जाता है, तो सभी अनावश्यक बाधाओं को समाप्त करने के लिए महंगी विधियों का उपयोग करें। NS
डिफ़ॉल्ट मान 0 है।

वेक्टर-अधिकतम-संस्करण-के लिए-संरेखण-जांच
लूप करते समय किए जा सकने वाले रन-टाइम चेक की अधिकतम संख्या
वेक्टरिज़र में संरेखण के लिए संस्करण। विकल्प देखें ftree-vect-loop-version
देखें।

वेक्टर-अधिकतम-संस्करण-के-उपनाम-जांच
लूप करते समय किए जा सकने वाले रन-टाइम चेक की अधिकतम संख्या
वेक्टरिज़र में उपनाम के लिए संस्करण। विकल्प देखें ftree-vect-loop-version for
अधिक जानकारी।

अधिकतम-पुनरावृत्तियों-से-ट्रैक
पाश के पुनरावृत्तियों की अधिकतम संख्या विश्लेषण के लिए पाशविक बल एल्गोरिथ्म
of # लूप के पुनरावृत्तियों का मूल्यांकन करने का प्रयास करता है।

गरम-बीबी-गिनती-अंश
कार्यक्रम में मूल ब्लॉक की पुनरावृत्तियों की अधिकतम संख्या का अंश चुनें
दिए गए बुनियादी ब्लॉक को गर्म माना जाना चाहिए।

गर्म-बीबी-आवृत्ति-अंश
मूल ब्लॉक के निष्पादन की प्रविष्टि ब्लॉक आवृत्ति के अंश का चयन करें
दिए गए फ़ंक्शन को मूल ब्लॉक को गर्म माना जाना चाहिए।

अधिकतम-अनुमानित-पुनरावृत्तियों
लूप पुनरावृत्तियों की अधिकतम संख्या हम सांख्यिकीय रूप से भविष्यवाणी करते हैं। यह उपयोगी है
ऐसे मामले जहां फ़ंक्शन में ज्ञात बाउंड और अन्य लूप के साथ सिंगल लूप होता है
अनजान। हम पुनरावृत्तियों की ज्ञात संख्या का सही अनुमान लगाते हैं, जबकि अज्ञात
पुनरावृत्तियों की संख्या औसतन लगभग 10. इसका मतलब है कि बिना लूप
सीमा दूसरे के सापेक्ष कृत्रिम रूप से ठंडी दिखाई देगी।

संरेखित-दहलीज
फ़ंक्शन में मूल ब्लॉक के निष्पादन की अधिकतम आवृत्ति का अंश चुनें
दिया गया मूल ब्लॉक संरेखित हो जाएगा।

संरेखित-लूप-पुनरावृत्तियों
एक लूप से पुनरावृति होने की उम्मीद है, ऐसा न हो कि चयनित पुनरावृत्तियों की संख्या मिल जाएगी
संरेखित।

अनुरेखक-गतिशील-कवरेज
अनुरेखक-गतिशील-कवरेज-प्रतिक्रिया
इस मान का उपयोग के दिए गए प्रतिशत के बाद सुपरब्लॉक गठन को सीमित करने के लिए किया जाता है
निष्पादित निर्देश शामिल हैं। यह अनावश्यक कोड आकार विस्तार को सीमित करता है।

RSI अनुरेखक-गतिशील-कवरेज-प्रतिक्रिया केवल तभी उपयोग किया जाता है जब प्रोफ़ाइल फ़ीडबैक होता है
उपलब्ध। वास्तविक प्रोफाइल (सांख्यिकीय रूप से अनुमानित लोगों के विपरीत) बहुत अधिक हैं
थ्रेशोल्ड को बड़ा मान होने की अनुमति देने के लिए कम संतुलित।

अनुरेखक-अधिकतम-कोड-विकास
एक बार कोड वृद्धि दिए गए प्रतिशत तक पहुंचने के बाद पूंछ दोहराव बंद करो। यह है
बल्कि होकी तर्क, क्योंकि अधिकांश डुप्लिकेट बाद में क्रॉस में समाप्त हो जाएंगे
कूदना, इसलिए इसे वांछित कोड वृद्धि की तुलना में बहुत अधिक मूल्यों पर सेट किया जा सकता है।

अनुरेखक-मिनट-शाखा-अनुपात
रिवर्स ग्रोथ को रोकें जब बेस्ट एज की रिवर्स संभावना इससे कम हो
सीमा (प्रतिशत में)।

अनुरेखक-मिनट-शाखा-अनुपात
अनुरेखक-मिनट-शाखा-अनुपात-प्रतिक्रिया
अगर सबसे अच्छे किनारे की संभावना इससे कम है तो आगे की वृद्धि रोकें
सीमा।

की तरह अनुरेखक-गतिशील-कवरेज दो मान मौजूद हैं, एक संकलन के लिए
प्रोफाइल फीडबैक के लिए और बिना संकलन के लिए एक। संकलन के लिए मूल्य
प्रोफ़ाइल प्रतिक्रिया के साथ बनाने के लिए अधिक रूढ़िवादी (उच्च) होने की आवश्यकता है
अनुरेखक प्रभावी।

अधिकतम-सीएसई-पथ-लंबाई
पथ पर बुनियादी ब्लॉकों की अधिकतम संख्या जिसे सीएसई मानता है। डिफ़ॉल्ट 10 है।

मैक्स-सीएसई-इंन्स
फ्लशिंग से पहले अधिकतम निर्देश सीएसई प्रक्रिया। डिफ़ॉल्ट 1000 है।

ggc-मिनट-विस्तार
GCC अपने स्वयं के मेमोरी आवंटन को प्रबंधित करने के लिए एक कचरा संग्रहकर्ता का उपयोग करता है। यह पैरामीटर
न्यूनतम प्रतिशत निर्दिष्ट करता है जिसके द्वारा कचरा संग्रहकर्ता का ढेर होना चाहिए
संग्रह के बीच विस्तार करने की अनुमति है। इसे ट्यून करने से संकलन गति में सुधार हो सकता है;
इसका कोड जनरेशन पर कोई प्रभाव नहीं पड़ता है।

डिफ़ॉल्ट 30% + 70% * (रैम/1 जीबी) 100% की ऊपरी सीमा के साथ है जब रैम> = 1 जीबी।
यदि "getrlimit" उपलब्ध है, तो "RAM" की धारणा वास्तविक RAM में सबसे छोटी है और
"RLIMIT_DATA" या "RLIMIT_AS"। यदि जीसीसी किसी विशेष पर रैम की गणना करने में सक्षम नहीं है
मंच, 30% की निचली सीमा का उपयोग किया जाता है। इस पैरामीटर को सेट करना और जीजीसी-मिनट-
हीप साइज शून्य के कारण हर अवसर पर एक पूर्ण संग्रह होता है। यह है
बेहद धीमा, लेकिन डिबगिंग के लिए उपयोगी हो सकता है।

जीजीसी-मिन-हीपसाइज
कचरा संग्रहकर्ता के ढेर का न्यूनतम आकार इससे पहले कि वह इकट्ठा करने के लिए परेशान होने लगे
कूड़ा। ढेर के विस्तार के बाद पहला संग्रह होता है ggc-मिनट-विस्तार%
परे जीजीसी-मिन-हीपसाइज. फिर से, इसे ट्यून करने से संकलन गति में सुधार हो सकता है, और
कोड जनरेशन पर कोई प्रभाव नहीं पड़ता है।

डिफ़ॉल्ट RAM/8, RLIMIT_RSS, या एक सीमा से छोटा है जो सुनिश्चित करने का प्रयास करता है
कि RLIMIT_DATA या RLIMIT_AS को पार नहीं किया गया है, लेकिन 4096 की निचली सीमा के साथ
(चार मेगाबाइट) और 131072 (128 मेगाबाइट) की ऊपरी सीमा। अगर जीसीसी सक्षम नहीं है
किसी विशेष प्लेटफॉर्म पर रैम की गणना करने के लिए, निचली सीमा का उपयोग किया जाता है। इसे सेट करना
पैरामीटर बहुत बड़ा प्रभावी ढंग से कचरा संग्रहण अक्षम करता है। इसे सेट करना
पैरामीटर और ggc-मिनट-विस्तार शून्य से प्रत्येक पर एक पूर्ण संग्रह होने का कारण बनता है
अवसर।

अधिकतम-पुनः लोड-खोज-इंसंस
निर्देश पुनः लोड की अधिकतम संख्या समकक्ष के लिए पीछे की ओर देखना चाहिए
रजिस्टर करें। बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, बनाना
शायद थोड़ा बेहतर प्रदर्शन के साथ संकलन समय में वृद्धि। डिफ़ॉल्ट
मान 100 है।

मैक्स-सेलिब-मेमोरी-लोकेशन
मेमोरी स्थानों की अधिकतम संख्या cselib को ध्यान में रखना चाहिए।
बढ़ते मूल्यों का अर्थ है अधिक आक्रामक अनुकूलन, संकलन समय बनाना
शायद थोड़ा बेहतर प्रदर्शन के साथ वृद्धि। डिफ़ॉल्ट मान 500 है।

पुन: क्रमित-ब्लॉक-डुप्लिकेट
पुन: क्रमित-ब्लॉक-डुप्लिकेट-प्रतिक्रिया
बिना शर्त शाखा का उपयोग करना है या नहीं यह तय करने के लिए बेसिक ब्लॉक रीऑर्डरिंग पास द्वारा उपयोग किया जाता है
या कोड को उसके गंतव्य पर डुप्लिकेट करें। कोड तब दोहराया जाता है जब उसका अनुमान लगाया जाता है
आकार बिना शर्त के अनुमानित आकार से गुणा किए गए इस मान से छोटा है
कार्यक्रम के हॉट स्पॉट में कूदें।

RSI पुन: क्रमित-ब्लॉक-डुप्लिकेट-प्रतिक्रिया केवल तभी उपयोग किया जाता है जब प्रोफ़ाइल फ़ीडबैक होता है
उपलब्ध है और से अधिक मूल्यों पर सेट किया जा सकता है पुन: क्रमित-ब्लॉक-डुप्लिकेट के बाद से
हॉट स्पॉट की जानकारी अधिक सटीक होती है।

अधिकतम-अनुसूचित-तैयार-insns
अनुसूचक जारी करने के लिए तैयार निर्देशों की अधिकतम संख्या होनी चाहिए
पहले शेड्यूलिंग पास के दौरान किसी भी समय पर विचार करें। बढ़ते मूल्य
मतलब अधिक गहन खोजों, संकलन समय को संभवतः के साथ बढ़ाना
थोड़ा लाभ। डिफ़ॉल्ट मान 100 है।

अधिकतम-अनुसूचित-क्षेत्र-ब्लॉक
किसी क्षेत्र में इंटरब्लॉक के लिए विचार किए जाने वाले ब्लॉकों की अधिकतम संख्या
शेड्यूलिंग। डिफ़ॉल्ट मान 10 है।

अधिकतम-पाइपलाइन-क्षेत्र-ब्लॉक
किसी क्षेत्र में पाइपलाइनिंग के लिए विचार किए जाने वाले ब्लॉकों की अधिकतम संख्या
चयनात्मक अनुसूचक। डिफ़ॉल्ट मान 15 है।

अधिकतम-अनुसूचित-क्षेत्र-इंसंस
किसी क्षेत्र में इंटरब्लॉक के लिए विचार किए जाने वाले इंस की अधिकतम संख्या
शेड्यूलिंग। डिफ़ॉल्ट मान 100 है।

मैक्स-पाइपलाइन-क्षेत्र-इंसंस
किसी क्षेत्र में पाइपलाइनिंग के लिए विचार किए जाने वाले इंस की अधिकतम संख्या
चयनात्मक अनुसूचक। डिफ़ॉल्ट मान 200 है।

मिन-स्पेक-प्रोब
इंटरब्लॉक के लिए स्रोत ब्लॉक तक पहुंचने की न्यूनतम संभावना (प्रतिशत में)
सट्टा शेड्यूलिंग। डिफ़ॉल्ट मान 40 है।

अधिकतम-अनुसूचित-विस्तार-क्षेत्र-पुनरावृत्तियों
क्षेत्रों का विस्तार करने के लिए CFG के माध्यम से पुनरावृत्तियों की अधिकतम संख्या। 0 - अक्षम
क्षेत्र विस्तार, एन - अधिकांश एन पुनरावृत्तियों पर करें। डिफॉल्यू मूल्य शून्य है।

अधिकतम-अनुसूचित-इन-संघर्ष-देरी
सट्टा गति के लिए विचार किए जाने वाले एक इंस के लिए अधिकतम संघर्ष विलंब।
डिफॉल्यू मूल्य शून्य है।

शेड्यूल-स्पेक-प्रोब-कटऑफ़
सट्टा सफलता की न्यूनतम संभावना (प्रतिशत में), ताकि सट्टा
इंस निर्धारित किया जाएगा। डिफ़ॉल्ट मान 40 है।

शेड्यूल-मेम-ट्रू-डिप-लागत
समान मेमोरी को लक्षित करने वाले स्टोर और लोड के बीच न्यूनतम दूरी (सीपीयू चक्रों में)
स्थान। डीफॉल्ट मूल्य 1 है।

सेल्शेड-मैक्स-लुकहेड
चुनिंदा शेड्यूलिंग की लुकहेड विंडो का अधिकतम आकार। यह एक गहराई है
उपलब्ध निर्देशों की खोज के लिए। डिफ़ॉल्ट मान 50 है।

सेल्शेड-अधिकतम-अनुसूचित-समय
चयन के दौरान किसी निर्देश को शेड्यूल करने की अधिकतम संख्या
शेड्यूलिंग। यह उन पुनरावृत्तियों की संख्या की सीमा है जिसके द्वारा
निर्देश पाइपलाइन किया जा सकता है। डिफ़ॉल्ट मान 2 है।

selsched-अधिकतम-इन्स-टू-नाम बदलें
तैयार सूची में सर्वोत्तम निर्देशों की अधिकतम संख्या जिनके लिए विचार किया जाता है
चयनात्मक अनुसूचक में नामकरण। डिफ़ॉल्ट मान 2 है।

एसएमएस-मिनट-एससी
स्टेज काउंट का न्यूनतम मान जो स्विंग मॉड्यूलो शेड्यूलर उत्पन्न करेगा। NS
डिफ़ॉल्ट मान 2 है।

अधिकतम-अंतिम-मूल्य-आरटीएल
किसी व्यंजक में रिकॉर्ड किए जा सकने वाले RTL की संख्या के रूप में मापा गया अधिकतम आकार
उस रजिस्टर के अंतिम ज्ञात मूल्य के रूप में एक छद्म रजिस्टर के लिए कॉम्बिनर में। NS
डिफ़ॉल्ट 10000 है।

पूर्णांक-शेयर-सीमा
छोटे पूर्णांक स्थिरांक एक साझा डेटा संरचना का उपयोग कर सकते हैं, संकलक को कम कर सकते हैं
स्मृति उपयोग और इसकी गति में वृद्धि। यह एक साझा का अधिकतम मूल्य निर्धारित करता है
पूर्णांक स्थिरांक। डिफ़ॉल्ट मान 256 है।

मिन-वर्चुअल-मैपिंग
वृद्धिशील SSA अद्यतनकर्ता में वर्चुअल मैपिंग की न्यूनतम संख्या निर्दिष्ट करता है
जिसे वर्चुअल मैपिंग ह्यूरिस्टिक द्वारा परिभाषित ट्रिगर करने के लिए पंजीकृत किया जाना चाहिए
वर्चुअल-मैपिंग-अनुपात। डिफ़ॉल्ट मान 100 है।

आभासी-मानचित्रण-अनुपात
यदि वर्चुअल मैपिंग की संख्या वर्चुअल-मैपिंग-अनुपात संख्या से बड़ी है
आभासी प्रतीकों का अद्यतन किया जाना है, फिर वृद्धिशील एसएसए अद्यतनकर्ता स्विच करता है a
उन प्रतीकों के लिए पूर्ण अद्यतन। डिफ़ॉल्ट अनुपात 3 है।

एसएसपी-बफर-आकार
बफ़र्स का न्यूनतम आकार (यानी सरणियाँ) जो स्टैक स्मैशिंग प्राप्त करेंगे
सुरक्षा जब -फस्टैक-सुरक्षा प्रयोग किया जाता है।

उबंटू 10.10 से पहले यह डिफ़ॉल्ट "8" था। वर्तमान में यह "4" है, इसे बढ़ाने के लिए
स्टैक रक्षक द्वारा संरक्षित कार्यों की संख्या।

अधिकतम-कूद-धागा-दोहराव-stmts
किसी ब्लॉक में अनुमत कथनों की अधिकतम संख्या जिसे दोहराए जाने की आवश्यकता होती है जब
थ्रेडिंग कूदता है।

अधिकतम-फ़ील्ड-के-फ़ील्ड-संवेदनशील
एक संरचना में फ़ील्ड की अधिकतम संख्या हम एक क्षेत्र संवेदनशील तरीके से व्यवहार करेंगे
सूचक विश्लेषण के दौरान। -O0 के लिए डिफ़ॉल्ट शून्य है, और -O1 के लिए और -Os के लिए 100 है,
-O2, और -O3।

प्रीफ़ेच-विलंबता
प्रीफ़ेच से पहले निष्पादित किए जाने वाले निर्देशों की औसत संख्या का अनुमान लगाएं
खत्म। आगे हम जितनी दूरी प्रीफ़ेच करते हैं वह इस स्थिरांक के समानुपाती होती है।
इस संख्या को बढ़ाने से कम स्ट्रीम प्रीफ़ेच किए जा सकते हैं (देखें
एक साथ-प्रीफेच).

एक साथ-प्रीफेच
एक ही समय में चलने वाले प्रीफ़ेच की अधिकतम संख्या।

l1-कैश-लाइन-आकार
L1 कैश में कैश लाइन का आकार, बाइट्स में।

l1-कैश-आकार
L1 कैश का आकार, किलोबाइट में।

l2-कैश-आकार
L2 कैश का आकार, किलोबाइट में।

न्यूनतम-इन-से-प्रीफेच-अनुपात
निर्देशों की संख्या और प्रीफ़ेच की संख्या के बीच न्यूनतम अनुपात
लूप में प्रीफ़ेचिंग सक्षम करने के लिए।

प्रीफेच-मिनट-इन-टू-मेम-अनुपात
निर्देशों की संख्या और स्मृति की संख्या के बीच न्यूनतम अनुपात
लूप में प्रीफ़ेचिंग सक्षम करने के लिए संदर्भ।

उपयोग-विहित-प्रकार
क्या कंपाइलर को "कैनोनिकल" टाइप सिस्टम का उपयोग करना चाहिए। डिफ़ॉल्ट रूप से, यह
हमेशा 1 होना चाहिए, जो तुलना करने के लिए अधिक कुशल आंतरिक तंत्र का उपयोग करता है
सी ++ और ऑब्जेक्टिव-सी ++ में टाइप करें। हालाँकि, यदि विहित प्रकार प्रणाली में बग हैं
संकलन विफलताओं के कारण, विहित प्रकारों को अक्षम करने के लिए इस मान को 0 पर सेट करें।

स्विच-रूपांतरण-अधिकतम-शाखा-अनुपात
स्विच इनिशियलाइज़ेशन रूपांतरण से बड़े सरणियाँ बनाने से मना कर देगा
स्विच-रूपांतरण-अधिकतम-शाखा-अनुपात स्विच में शाखाओं की संख्या का गुणा।

अधिकतम-आंशिक-विरोधी-लंबाई
आंशिक एंटिक सेट की अधिकतम लंबाई की गणना ट्री आंशिक के दौरान की जाती है
अतिरेक उन्मूलन अनुकूलन (-फट्री-प्री) पर अनुकूलित करते समय -ओ३ और ऊपर।
कुछ प्रकार के स्रोत कोड के लिए एन्हांस्ड आंशिक अतिरेक उन्मूलन
ऑप्टिमाइज़ेशन भाग सकता है, होस्ट पर उपलब्ध सभी मेमोरी का उपभोग करता है
मशीन। यह पैरामीटर गणना किए गए सेट की लंबाई पर एक सीमा निर्धारित करता है,
जो भगोड़े व्यवहार को रोकता है। इस पैरामीटर के लिए 0 का मान सेट करना होगा
असीमित सेट लंबाई की अनुमति दें।

sccvn-अधिकतम-scc-आकार
SCCVN प्रसंस्करण के दौरान दृढ़ता से जुड़े घटक (SCC) का अधिकतम आकार। अगर
यह सीमा समाप्त हो गई है, पूरे समारोह के लिए एससीसीवीएन प्रसंस्करण नहीं किया जाएगा और
इसके आधार पर अनुकूलन अक्षम कर दिए जाएंगे। डिफ़ॉल्ट अधिकतम एससीसी आकार है
10000.

इरा-अधिकतम-लूप-संख्या
IRA डिफ़ॉल्ट रूप से क्षेत्रीय रजिस्टर आवंटन का उपयोग करता है। यदि किसी फ़ंक्शन में अधिक शामिल हैं
इस पैरामीटर द्वारा दी गई संख्या से लूप, केवल दी गई संख्या के अधिकतम पर
क्षेत्रीय रजिस्टर आवंटन के लिए सबसे अधिक बार निष्पादित लूप क्षेत्र बनाते हैं।
पैरामीटर का डिफ़ॉल्ट मान 100 है।

इरा-अधिकतम-संघर्ष-तालिका-आकार
हालांकि IRA संघर्ष तालिका को संपीड़ित करने के लिए एक परिष्कृत एल्गोरिथम का उपयोग करता है,
तालिका को अभी भी विशाल कार्यों के लिए अत्यधिक मात्रा में स्मृति की आवश्यकता हो सकती है। अगर
किसी फ़ंक्शन के लिए विरोध तालिका इसके द्वारा दिए गए MB में आकार से अधिक हो सकती है
पैरामीटर, रजिस्टर आवंटक इसके बजाय एक तेज, सरल और निम्न का उपयोग करता है-
गुणवत्ता एल्गोरिथ्म जिसमें छद्म-पंजीकरण संघर्ष तालिका बनाने की आवश्यकता नहीं होती है।
पैरामीटर का डिफ़ॉल्ट मान 2000 है।

इरा-लूप-आरक्षित-regs
निर्णयों के लिए लूप में अधिक सटीक रजिस्टर दबाव का मूल्यांकन करने के लिए IRA का उपयोग किया जा सकता है
लूप इनवेरिएंट को स्थानांतरित करने के लिए (देखें -ओ३) के लिए आरक्षित उपलब्ध रजिस्टरों की संख्या
कुछ अन्य उद्देश्य इस पैरामीटर द्वारा दिए गए हैं। का डिफ़ॉल्ट मान
पैरामीटर 2 है, जो कि विशिष्ट द्वारा आवश्यक रजिस्टरों की न्यूनतम संख्या है
निर्देश। यह मान कई प्रयोगों से सबसे अच्छा पाया गया है।

लूप-अपरिवर्तनीय-अधिकतम-बीबीएस-इन-लूप
लूप अपरिवर्तनीय गति बहुत महंगी हो सकती है, संकलन समय और समय दोनों में
बहुत बड़े लूप के साथ आवश्यक संकलन-समय मेमोरी की मात्रा। अधिक के साथ लूप्स
इस पैरामीटर की तुलना में मूल ब्लॉक में लूप अपरिवर्तनीय गति अनुकूलन नहीं होगा
उन पर प्रदर्शन किया। -O1000 और 1 . के लिए पैरामीटर का डिफ़ॉल्ट मान 10000 है
-O2 और इसके बाद के संस्करण के लिए।

लूप-मैक्स-डेटारेफ़्स-फॉर-डेटाडेप्स
बहुत बड़े लूप के लिए डेटा डिपेंडेंसी बनाना महंगा है। यह पैरामीटर
डेटा के लिए विचार किए जाने वाले लूप में डेटा संदर्भों की संख्या को सीमित करता है
निर्भरता विश्लेषण। इन बड़े लूपों को तब हैंडल नहीं किया जाएगा
लूप डेटा निर्भरता का उपयोग करके अनुकूलन। डिफ़ॉल्ट मान 1000 है।

अधिकतम-vartrack-आकार
परिवर्तनीय ट्रैकिंग डेटा प्रवाह के दौरान उपयोग करने के लिए हैश तालिका स्लॉट की अधिकतम संख्या सेट करता है
किसी भी कार्य का विश्लेषण। यदि चर ट्रैकिंग के साथ यह सीमा पार हो जाती है
असाइनमेंट सक्षम, उस फ़ंक्शन के लिए विश्लेषण इसके बिना पुनः प्रयास किया जाता है, के बाद
फ़ंक्शन से सभी डीबग इंस को हटा रहा है। यदि सीमा बिना के भी पार हो जाती है
डिबग इन्सन्स, वर ट्रैकिंग विश्लेषण फ़ंक्शन के लिए पूरी तरह से अक्षम है।
पैरामीटर को शून्य पर सेट करना इसे असीमित बनाता है।

अधिकतम-vartrack-expr-गहराई
चर नामों को मैप करने का प्रयास करते समय अधिकतम संख्या में रिकर्सन स्तर सेट करता है या
डिबग अस्थायी भाव भाव के लिए। यह अधिक के लिए संकलन समय का व्यापार करता है
डिबग की पूरी जानकारी। यदि यह बहुत कम सेट किया गया है, तो मान व्यंजक जो हैं
उपलब्ध है और डिबग जानकारी में प्रदर्शित किया जा सकता है अंत में उपयोग नहीं किया जा सकता है;
इसे उच्चतर सेट करने से संकलक अधिक जटिल डिबग खोजने में सक्षम हो सकता है
अभिव्यक्ति, लेकिन संकलन समय और स्मृति उपयोग बढ़ सकता है। डिफ़ॉल्ट 12 है।

मिन-नॉन्डेबग-इन्स-यूआईडी
इस पैरामीटर से शुरू होने वाले यूआईडी का उपयोग नॉनडेबग इंन्स के लिए करें। नीचे की सीमा
पैरामीटर विशेष रूप से द्वारा बनाए गए डिबग इन्स के लिए आरक्षित है
-fvar-ट्रैकिंग-असाइनमेंट, लेकिन डिबग इन्सन्स ऊपर (गैर-अतिव्यापी) यूआईडी प्राप्त कर सकते हैं
यह अगर आरक्षित सीमा समाप्त हो गई है।

आईपीए-एसआरए-पीटीआर-विकास-कारक
IPA-SRA एक पॉइंटर को एक या अधिक नए मापदंडों के साथ एक समग्र में बदल देगा
केवल तभी जब उनका संचयी आकार से कम या बराबर हो आईपीए-एसआरए-पीटीआर-विकास-कारक
मूल सूचक पैरामीटर के आकार का गुणा।

tm-अधिकतम-कुल-आकार
लेन-देन में थ्रेड-स्थानीय चर की प्रतियां बनाते समय, यह पैरामीटर
बाइट्स में आकार निर्दिष्ट करता है जिसके बाद चर लॉगिंग के साथ सहेजे जाएंगे
कोड अनुक्रम जोड़े को सहेजने/पुनर्स्थापित करने के विपरीत कार्य करता है। केवल यह विकल्प
उपयोग करते समय लागू होता है -फग्नू-टीएम.

ग्रेफाइट-अधिकतम-एनबी-स्कोप-पैराम्स
ग्रेफाइट लूप रूपांतरण में घातांकीय प्रभावों से बचने के लिए, की संख्या
स्टेटिक कंट्रोल पार्ट (एससीओपी) में पैरामीटर बाध्य हैं। डिफ़ॉल्ट मान 10 . है
पैरामीटर। एक चर जिसका मूल्य संकलन समय पर अज्ञात है और परिभाषित है
एससीओपी के बाहर एससीओपी का एक पैरामीटर है।

ग्रेफाइट-अधिकतम-बीबीएस-प्रति-फ़ंक्शन
एससीओपी का पता लगाने में घातीय प्रभावों से बचने के लिए, कार्यों का आकार
ग्रेफाइट द्वारा विश्लेषण परिबद्ध है। डिफ़ॉल्ट मान 100 मूल ब्लॉक है।

लूप-ब्लॉक-टाइल-आकार
लूप ब्लॉकिंग या स्ट्रिप माइनिंग ट्रांसफॉर्म, के साथ सक्षम -फ्लॉप-ब्लॉक or
-फ्लूप-स्ट्रिप-माइन, लूप नेस्ट में प्रत्येक लूप को दिए गए नंबर से स्ट्रिप करें
पुनरावृत्तियों पट्टी की लंबाई को का उपयोग करके बदला जा सकता है लूप-ब्लॉक-टाइल-आकार
पैरामीटर। डिफ़ॉल्ट मान 51 पुनरावृत्तियों है।

आईपीए-सीपी-मूल्य-सूची-आकार
IPA-CP किसी फ़ंक्शन को दिए गए सभी संभावित मानों और प्रकारों को ट्रैक करने का प्रयास करता है
उन्हें प्रचारित करने और वर्चुअलाइजेशन करने के लिए पैरामीटर। आईपीए-सीपी-मूल्य-
सूची आकार प्रति औपचारिक रूप से संग्रहीत मूल्यों और प्रकारों की अधिकतम संख्या है
किसी फ़ंक्शन का पैरामीटर।

एलटीओ-विभाजन
WHOPR संकलन के दौरान उत्पादित विभाजनों की वांछित संख्या निर्दिष्ट करें। NS
विभाजनों की संख्या संकलन के लिए प्रयुक्त CPU की संख्या से अधिक होनी चाहिए। NS
डिफ़ॉल्ट मान 32 है।

lto-विभाजन
WHOPR के लिए न्यूनतम विभाजन का आकार (अनुमानित निर्देशों में)। यह रोकता है
बहुत छोटे कार्यक्रमों को बहुत सारे विभाजनों में विभाजित करने का खर्च।

डायग्नोस्टिक-सहायता के लिए cxx-max-namespaces
C++ नाम खोजते समय सुझावों के लिए परामर्श करने के लिए नामस्थानों की अधिकतम संख्या
एक पहचानकर्ता के लिए विफल रहता है। डिफ़ॉल्ट 1000 है।

सिंक-आवृत्ति-दहलीज
लक्ष्य ब्लॉक की अधिकतम सापेक्ष निष्पादन आवृत्ति (प्रतिशत में)
एक बयान के मूल ब्लॉक के सापेक्ष बयान डूबने की अनुमति देने के लिए a
बयान। बड़ी संख्या के परिणामस्वरूप अधिक आक्रामक बयान डूब जाता है। NS
डिफ़ॉल्ट मान 75 है। के साथ बयानों के लिए एक छोटा सकारात्मक समायोजन लागू किया जाता है
मेमोरी ऑपरेंड क्योंकि वे और भी अधिक लाभदायक हैं इसलिए सिंक करें।

मैक्स-स्टोर-टू-सिंक
कंडीशनल स्टोर जोड़े की अधिकतम संख्या जो डूब सकती है। 0 पर सेट करें यदि
या तो वैश्वीकरण (-फ़्री-वेक्टराइज़) या अगर-रूपांतरण (-फट्री-लूप-अगर-कन्वर्ट)
अक्षम है। डिफ़ॉल्ट 2 है।

अनुमति-लोड-डेटा-दौड़
अनुकूलकों को लोड पर नई डेटा दौड़ शुरू करने की अनुमति दें। अनुमति देने के लिए 1 पर सेट करें,
अन्यथा 0 पर। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है जब तक कि स्पष्ट रूप से सेट नहीं किया जाता है
-फमेमोरी-मॉडल = विकल्प.

अनुमति-भंडार-डेटा-दौड़
अनुकूलकों को स्टोर पर नई डेटा दौड़ शुरू करने की अनुमति दें। अनुमति देने के लिए 1 पर सेट करें,
अन्यथा 0 पर। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है जब तक कि स्पष्ट रूप से सेट नहीं किया जाता है
-फमेमोरी-मॉडल = विकल्प.

अनुमति-पैक-लोड-डेटा-दौड़
अनुकूलक को पैक किए गए डेटा लोड पर नई डेटा दौड़ शुरू करने की अनुमति दें। 1 से . पर सेट करें
अनुमति दें, अन्यथा 0 पर। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है जब तक कि निहित रूप से सेट न हो
la -फमेमोरी-मॉडल = विकल्प.

अनुमति-पैक-स्टोर-डेटा-दौड़
अनुकूलक को पैक किए गए डेटा स्टोर पर नई डेटा दौड़ शुरू करने की अनुमति दें। 1 से . पर सेट करें
अनुमति दें, अन्यथा 0 पर। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है जब तक कि निहित रूप से सेट न हो
la -फमेमोरी-मॉडल = विकल्प.

केस-मान-दहलीज
विभिन्न मूल्यों की सबसे छोटी संख्या जिसके लिए जम्प-टेबल का उपयोग करना सबसे अच्छा है
सशर्त शाखाओं के पेड़ के बजाय। यदि मान 0 है, तो के लिए डिफ़ॉल्ट का उपयोग करें
मशीन। डिफ़ॉल्ट 0 है।

वृक्ष-पुनःसोक-चौड़ाई
पुन: संबद्ध पेड़ में समानांतर में निष्पादित निर्देशों की अधिकतम संख्या निर्धारित करें।
यह पैरामीटर डिफ़ॉल्ट रूप से उपयोग किए जाने वाले लक्ष्य निर्भर अनुमानों को ओवरराइड करता है यदि गैर है
शून्य मान।

ऑप्शंस नियंत्रित करना la प्रीप्रोसेसर
ये विकल्प सी प्रीप्रोसेसर को नियंत्रित करते हैं, जो वास्तविक से पहले प्रत्येक सी स्रोत फ़ाइल पर चलाया जाता है
संकलन।

यदि आप उपयोग करते हैं -E विकल्प, प्रीप्रोसेसिंग के अलावा कुछ भी नहीं किया जाता है। इनमें से कुछ विकल्प
केवल एक साथ समझ में -E क्योंकि वे प्रीप्रोसेसर आउटपुट का कारण बनते हैं
वास्तविक संकलन के लिए अनुपयुक्त।

-डब्ल्यूपी,विकल्प
आप का उपयोग कर सकते हैं -डब्ल्यूपी,विकल्प कंपाइलर ड्राइवर को बायपास करने और पास करने के लिए विकल्प के माध्यम से सीधे
प्रीप्रोसेसर को। अगर विकल्प अल्पविराम होता है, इसे कई विकल्पों में विभाजित किया जाता है
अल्पविराम। हालाँकि, कई विकल्प संशोधित, अनुवादित या व्याख्या किए गए हैं
प्रीप्रोसेसर को पास करने से पहले कंपाइलर ड्राइवर, और -डब्ल्यूपी जबरन बाईपास
इस चरण। प्रीप्रोसेसर का सीधा इंटरफ़ेस अनिर्दिष्ट है और इसके अधीन है
बदलें, इसलिए जब भी संभव हो आपको उपयोग करने से बचना चाहिए -डब्ल्यूपी और ड्राइवर को संभालने दें
इसके बजाय विकल्प।

-एक्सप्रीप्रोसेसर विकल्प
पास विकल्प प्रीप्रोसेसर के विकल्प के रूप में। आप इसका उपयोग सिस्टम की आपूर्ति के लिए कर सकते हैं-
विशिष्ट प्रीप्रोसेसर विकल्प जिन्हें जीसीसी नहीं जानता कि कैसे पहचानना है।

यदि आप एक विकल्प पारित करना चाहते हैं जो तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्सप्रीप्रोसेसर
दो बार, एक बार विकल्प के लिए और एक बार तर्क के लिए।

-D नाम
पूर्वपरिभाषित नाम एक मैक्रो के रूप में, परिभाषा के साथ 1.

-D नाम=परिभाषा
की सामग्री परिभाषा टोकनयुक्त और संसाधित किए जाते हैं जैसे कि वे इस दौरान प्रकट हुए हों
अनुवाद चरण तीन a . में #define निर्देश। विशेष रूप से, परिभाषा होगी
एम्बेडेड न्यूलाइन वर्णों द्वारा छोटा कर दिया गया।

यदि आप किसी शेल या शेल जैसे प्रोग्राम से प्रीप्रोसेसर का आह्वान कर रहे हैं जिसकी आपको आवश्यकता हो सकती है
रिक्त स्थान जैसे वर्णों की सुरक्षा के लिए शेल के उद्धरण सिंटैक्स का उपयोग करने के लिए a
शेल सिंटैक्स में अर्थ।

यदि आप कमांड लाइन पर फ़ंक्शन-जैसे मैक्रो को परिभाषित करना चाहते हैं, तो उसका तर्क लिखें
समान चिह्न (यदि कोई हो) से पहले आसपास के कोष्ठकों के साथ सूची बनाएं। कोष्ठक हैं
अधिकांश गोले के लिए सार्थक, इसलिए आपको विकल्प को उद्धृत करने की आवश्यकता होगी। साथ में sh और csh,
-डी'नाम(तर्क...)=परिभाषा' काम करता है।

-D और -U कमांड लाइन पर दिए गए क्रम में विकल्पों को संसाधित किया जाता है। सभी
-इमैक्रोस पट्टिका और -शामिल पट्टिका विकल्प सभी के बाद संसाधित होते हैं -D और -U विकल्प.

-U नाम
की कोई पिछली परिभाषा रद्द करें नाम, या तो निर्मित या प्रदान किया गया a -D विकल्प.

-अनडेफ
किसी सिस्टम-विशिष्ट या GCC-विशिष्ट मैक्रोज़ को पूर्वनिर्धारित न करें। मानक पूर्वनिर्धारित
मैक्रो परिभाषित रहते हैं।

-I दीर
निर्देशिका जोड़ें दीर शीर्षलेख फ़ाइलों के लिए खोजी जाने वाली निर्देशिकाओं की सूची में।
द्वारा नामित निर्देशिकाएँ -I मानक प्रणाली में निर्देशिकाओं को शामिल करने से पहले खोजे जाते हैं।
यदि निर्देशिका दीर एक मानक प्रणाली है जिसमें निर्देशिका शामिल है, विकल्प पर ध्यान नहीं दिया जाता है
सुनिश्चित करें कि सिस्टम निर्देशिकाओं और विशेष उपचार के लिए डिफ़ॉल्ट खोज आदेश
सिस्टम हेडर की हार नहीं होती है। अगर दीर "=" से शुरू होता है, फिर "=" होगा
sysroot उपसर्ग द्वारा प्रतिस्थापित; देख --सिसरूट और -इसिसरूट.

-o पट्टिका
को आउटपुट लिखें पट्टिका. यह निर्दिष्ट करने जैसा ही है पट्टिका दूसरे गैर-विकल्प के रूप में
करने के लिए तर्क सीपीपी. जीसीसी दूसरे गैर-विकल्प तर्क की एक अलग व्याख्या है,
तो आपको उपयोग करना चाहिए -o आउटपुट फ़ाइल निर्दिष्ट करने के लिए।

-दीवार
सभी वैकल्पिक चेतावनियों को चालू करता है जो सामान्य कोड के लिए वांछनीय हैं। वर्तमान में यह
is -कमेन्ट करें, -वट्रिग्राफ, -वमल्टीचार और पूर्णांक प्रचार के बारे में एक चेतावनी जिसके कारण a
"#if" भावों में चिन्ह का परिवर्तन। ध्यान दें कि प्रीप्रोसेसर की कई चेतावनियां
डिफ़ॉल्ट रूप से चालू हैं और उन्हें नियंत्रित करने के लिए उनके पास कोई विकल्प नहीं है।

-कमेन्ट करें
-टिप्पणियां
जब भी कोई टिप्पणी-प्रारंभ अनुक्रम चेतावनी दें /* में प्रकट होता है /* टिप्पणी करें, या जब भी
बैकस्लैश-न्यूलाइन a . में प्रकट होता है // टिप्पणी। (दोनों रूपों का प्रभाव समान है।)

-वट्रिग्राफ
टिप्पणियों में अधिकांश ट्रिग्राफ कार्यक्रम के अर्थ को प्रभावित नहीं कर सकते। हालांकि, एक
ट्रिग्राफ जो एक बची हुई नई लाइन बनाएगा (??/ एक पंक्ति के अंत में) द्वारा . कर सकते हैं
जहां टिप्पणी शुरू होती है या समाप्त होती है उसे बदलना। इसलिए, केवल ट्रिग्राफ जो बनेंगे
बची हुई न्यूलाइन एक टिप्पणी के अंदर चेतावनियाँ उत्पन्न करती हैं।

यह विकल्प द्वारा निहित है -दीवार. अगर -दीवार नहीं दिया गया है, यह विकल्प अभी भी सक्षम है
जब तक कि ट्रिग्राफ सक्षम न हों। चेतावनियों के बिना ट्रिग्राफ रूपांतरण प्राप्त करने के लिए, लेकिन प्राप्त करें
अन्य -दीवार चेतावनियाँ, उपयोग -ट्रिग्राफ -दीवार -नो-ट्रिग्राफ.

-पारंपरिक
पारंपरिक और आईएसओ सी में अलग व्यवहार करने वाले कुछ निर्माणों के बारे में चेतावनी दें। इसके अलावा
आईएसओ सी निर्माणों के बारे में चेतावनी दें जिनमें कोई पारंपरिक सी समकक्ष नहीं है, और समस्याग्रस्त है
निर्माण से बचना चाहिए।

-वुंडेफ
चेतावनी दें कि जब भी कोई पहचानकर्ता जो मैक्रो नहीं है, का सामना किसी में होता है #अगर निर्देश
के बाहर परिभाषित. ऐसे पहचानकर्ताओं को शून्य से बदल दिया जाता है।

-वुनयूज्ड-मैक्रोज़
अप्रयुक्त मुख्य फ़ाइल में परिभाषित मैक्रोज़ के बारे में चेतावनी दें। एक मैक्रो है प्रयुक्त अगर यह होता है
कम से कम एक बार अस्तित्व के लिए विस्तारित या परीक्षण किया गया। प्रीप्रोसेसर भी चेतावनी देगा अगर
मैक्रो का उपयोग उस समय नहीं किया गया है जब इसे फिर से परिभाषित या अपरिभाषित किया गया हो।

अंतर्निहित मैक्रोज़, कमांड लाइन पर परिभाषित मैक्रोज़ और इसमें परिभाषित मैक्रोज़ शामिल हैं
फाइलों के बारे में चेतावनी नहीं दी जाती है।

नोट: यदि मैक्रो वास्तव में उपयोग किया जाता है, लेकिन केवल छोड़े गए सशर्त ब्लॉक में उपयोग किया जाता है, तो
सीपीपी इसे अप्रयुक्त के रूप में रिपोर्ट करेगा। ऐसी स्थिति में चेतावनी से बचने के लिए आप सुधार कर सकते हैं
मैक्रो की परिभाषा का दायरा, उदाहरण के लिए, इसे पहले छोड़े गए में ले जाना
खंड मैथा। वैकल्पिक रूप से, आप कुछ इस तरह से एक डमी उपयोग प्रदान कर सकते हैं:

#अगर परिभाषित किया गया the_macro_causing_the_warning
#endif

-वेंडिफ-लेबल
जब भी चेतावनी दें #else या एक #endif पाठ द्वारा पीछा किया जाता है। यह आमतौर पर में होता है
फॉर्म का कोड

#अगर खाना
...
#और खाना
...
#endif फ़ू

दूसरा और तीसरा "एफओओ" टिप्पणियों में होना चाहिए, लेकिन अक्सर पुराने कार्यक्रमों में नहीं होते हैं।
यह चेतावनी डिफ़ॉल्ट रूप से चालू है।

-आतंक
सभी चेतावनियों को कठिन त्रुटियों में बदलें। चेतावनियों को ट्रिगर करने वाला स्रोत कोड होगा
अस्वीकृत।

-डब्ल्यूसिस्टम-हेडर
सिस्टम हेडर में कोड के लिए चेतावनी जारी करें। ये आमतौर पर खोजने में अनुपयोगी होते हैं
आपके अपने कोड में बग, इसलिए दबा दिया गया। यदि आप सिस्टम के लिए जिम्मेदार हैं
पुस्तकालय, आप उन्हें देखना चाह सकते हैं।

-w GNU CPP द्वारा डिफ़ॉल्ट रूप से जारी की जाने वाली चेतावनियों सहित सभी चेतावनियों को रोकें।

पांडित्य
सी मानक में सूचीबद्ध सभी अनिवार्य निदान जारी करें। उनमें से कुछ बचे हैं
डिफ़ॉल्ट रूप से, क्योंकि वे हानिरहित कोड पर अक्सर ट्रिगर होते हैं।

-पांडित्य-त्रुटियों
सभी अनिवार्य निदान जारी करें, और सभी अनिवार्य निदानों को त्रुटियों में बदलें।
इसमें अनिवार्य निदान शामिल हैं जिन्हें जीसीसी बिना जारी करता है पांडित्य लेकिन व्यवहार करता है
चेतावनियाँ।

-M प्रीप्रोसेसिंग के परिणाम को आउटपुट करने के बजाय, उपयुक्त नियम आउटपुट करें बनाना
मुख्य स्रोत फ़ाइल की निर्भरता का वर्णन करना। प्रीप्रोसेसर एक आउटपुट करता है
बनाना उस स्रोत फ़ाइल, एक कोलन, और नामों के लिए ऑब्जेक्ट फ़ाइल नाम युक्त नियम
सभी शामिल फाइलों में से, जिनमें से आने वाली फाइलें भी शामिल हैं -शामिल or -इमैक्रोस आदेश
लाइन विकल्प।

जब तक स्पष्ट रूप से निर्दिष्ट न हो (साथ -एमटी or -एमक्यू), ऑब्जेक्ट फ़ाइल नाम में शामिल हैं
किसी भी प्रत्यय के साथ स्रोत फ़ाइल का नाम ऑब्जेक्ट फ़ाइल प्रत्यय के साथ और किसी के साथ प्रतिस्थापित किया गया
प्रमुख निर्देशिका भागों को हटा दिया गया। यदि कई शामिल फ़ाइलें हैं तो नियम है
का उपयोग करके कई पंक्तियों में विभाजित करें \-नई पंक्ति। नियम में कोई आदेश नहीं है।

यह विकल्प प्रीप्रोसेसर के डिबग आउटपुट को दबाता नहीं है, जैसे -डीएम। कन्नी काटना
इस तरह के डिबग आउटपुट को निर्भरता नियमों के साथ मिलाकर आपको स्पष्ट रूप से निर्दिष्ट करना चाहिए
निर्भरता आउटपुट फ़ाइल के साथ -एमएफ, या पर्यावरण चर का उपयोग करें जैसे
DEPENDENCIES_OUTPUT. डीबग आउटपुट अभी भी नियमित आउटपुट स्ट्रीम में भेजा जाएगा:
सामान्य.

पासिंग -M चालक का तात्पर्य है -E, और एक निहित के साथ चेतावनियों को दबा देता है -w.

-एमएम पसंद -M लेकिन हेडर फाइलों का उल्लेख न करें जो सिस्टम हेडर निर्देशिकाओं में पाए जाते हैं,
न ही ऐसे हेडर से सीधे या परोक्ष रूप से शामिल हेडर फाइलें।

इसका तात्पर्य यह है कि कोण कोष्ठक या दोहरे उद्धरण चिह्नों की पसंद a # शामिल
निर्देश अपने आप में यह निर्धारित नहीं करता है कि वह शीर्षलेख अंदर दिखाई देगा या नहीं -एमएम
निर्भरता आउटपुट। यह GCC संस्करण 3.0 और से शब्दार्थ में थोड़ा सा परिवर्तन है
इससे पहले।

-एमएफ पट्टिका
जब used के साथ प्रयोग किया जाता है -M or -एमएम, निर्भरताओं को लिखने के लिए एक फ़ाइल निर्दिष्ट करता है। अगर नहीं -एमएफ
स्विच दिया जाता है प्रीप्रोसेसर नियमों को उसी स्थान पर भेजता है जहां उसने भेजा होगा
प्रीप्रोसेस्ड आउटपुट।

जब ड्राइवर विकल्पों के साथ प्रयोग किया जाता है -एमडी or -एमएमडी, -एमएफ डिफ़ॉल्ट निर्भरता को ओवरराइड करता है
निर्गम संचिका।

-एमजी जैसे विकल्प के साथ संयोजन में -M निर्भरता पीढ़ी का अनुरोध, -एमजी मान लिया गया है
लापता हेडर फाइलें जेनरेट की गई फाइलें हैं और उन्हें बिना निर्भरता सूची में जोड़ देती हैं
एक त्रुटि उठा रहा है। निर्भरता फ़ाइल नाम सीधे "# शामिल" से लिया जाता है
कोई रास्ता तैयार किए बिना निर्देश। -एमजी प्रीप्रोसेस्ड आउटपुट को भी दबा देता है, जैसे a
अनुपलब्ध हेडर फ़ाइल इसे बेकार कर देती है।

इस सुविधा का उपयोग मेकफ़ाइल्स के स्वचालित अद्यतन में किया जाता है।

-एमपी यह विकल्प सीपीपी को निर्देश देता है कि के अलावा प्रत्येक निर्भरता के लिए एक नकली लक्ष्य जोड़ें
मुख्य फ़ाइल, जिसके कारण प्रत्येक कुछ भी नहीं पर निर्भर करता है। ये डमी नियम त्रुटियों के आसपास काम करते हैं
बनाना देता है अगर आप बिना अपडेट किए हेडर फाइल हटाते हैं makefile मैच के लिए।

यह विशिष्ट आउटपुट है:

test.o: test.c test.h

टेस्ट.एच:

-एमटी लक्ष्य
निर्भरता पीढ़ी द्वारा उत्सर्जित नियम का लक्ष्य बदलें। डिफ़ॉल्ट रूप से सीपीपी लेता है
मुख्य इनपुट फ़ाइल का नाम, किसी भी निर्देशिका घटक और किसी फ़ाइल प्रत्यय को हटा देता है
जैसे .c, और प्लेटफ़ॉर्म के सामान्य ऑब्जेक्ट प्रत्यय को जोड़ता है। परिणाम लक्ष्य है।

An -एमटी विकल्प लक्ष्य को आपके द्वारा निर्दिष्ट स्ट्रिंग के रूप में सेट करेगा। अगर आप चाहते हैं
एकाधिक लक्ष्य, आप उन्हें एक तर्क के रूप में निर्दिष्ट कर सकते हैं -एमटी, या एकाधिक का उपयोग करें
-एमटी विकल्प.

उदाहरण के लिए, -एमटी '$(objpfx)foo.o' दे सकता है

$(objpfx)foo.o: foo.c

-एमक्यू लक्ष्य
के समान -एमटी, लेकिन यह किसी भी पात्र को उद्धृत करता है जो मेक के लिए विशेष है।
-एमक्यू '$(objpfx)foo.o' देता है

$$(objpfx)foo.o: foo.c

डिफ़ॉल्ट लक्ष्य स्वचालित रूप से उद्धृत किया जाता है, जैसे कि इसके साथ दिया गया हो -एमक्यू.

-एमडी -एमडी के बराबर है -M -एमएफ पट्टिका, सिवाय इसके कि -E निहित नहीं है। चालक
निर्धारित पट्टिका इस पर आधारित है कि क्या कोई -o विकल्प दिया गया है। यदि ऐसा है, तो चालक इसका उपयोग करता है
तर्क लेकिन के प्रत्यय के साथ .d, अन्यथा यह इनपुट फ़ाइल का नाम लेता है,
किसी भी निर्देशिका घटक और प्रत्यय को हटा देता है, और लागू होता है a .d प्रत्यय।

If -एमडी के साथ संयोजन के रूप में उपयोग किया जाता है -E, कोई -o स्विच निर्दिष्ट करने के लिए समझा जाता है
निर्भरता आउटपुट फ़ाइल, लेकिन अगर बिना उपयोग की जाती है -Eप्रत्येक, -o एक निर्दिष्ट करने के लिए समझा जाता है
लक्ष्य वस्तु फ़ाइल।

जबसे -E निहित नहीं है, -एमडी एक निर्भरता आउटपुट फ़ाइल उत्पन्न करने के लिए इस्तेमाल किया जा सकता है a
संकलन प्रक्रिया का दुष्प्रभाव।

-एमएमडी
पसंद -एमडी केवल उपयोगकर्ता शीर्षलेख फ़ाइलों का उल्लेख करने के अलावा, सिस्टम शीर्षलेख फ़ाइलें नहीं।

-एफपीच-डिप्स
प्रीकंपील्ड हेडर का उपयोग करते समय, यह ध्वज निर्भरता-आउटपुट फ़्लैग का कारण बनेगा
प्रीकंपील्ड हेडर की निर्भरताओं से फाइलों को भी सूचीबद्ध करें। यदि केवल निर्दिष्ट नहीं है
प्रीकंपील्ड हेडर सूचीबद्ध किया जाएगा, न कि वे फाइलें जो इसे बनाने के लिए उपयोग की गई थीं
क्योंकि प्रीकंपील्ड हेडर का उपयोग करते समय उन फ़ाइलों से परामर्श नहीं लिया जाता है।

-एफपीच-प्रीप्रोसेस
यह विकल्प एक साथ पूर्व-संकलित शीर्षलेख के उपयोग की अनुमति देता है -E. यह एक विशेष सम्मिलित करता है
"#pragma", "#pragma GCC pch_preprocess "फ़ाइल का नाम"" आउटपुट में जगह को चिह्नित करने के लिए
जहां प्रीकंपील्ड हेडर मिला था, और उसका फ़ाइल का नाम. जब -फप्रीप्रोसेस्ड में है
उपयोग, GCC इस "#pragma" को पहचानता है और PCH को लोड करता है।

यह विकल्प डिफ़ॉल्ट रूप से बंद है, क्योंकि परिणामी प्रीप्रोसेस्ड आउटपुट केवल है
जीसीसी के इनपुट के रूप में वास्तव में उपयुक्त है। इसके द्वारा चालू किया जाता है -बचाओ-अस्थायी.

आपको यह "#pragma" अपने कोड में नहीं लिखना चाहिए, लेकिन इसे संपादित करना सुरक्षित है
फ़ाइल नाम यदि पीसीएच फ़ाइल किसी भिन्न स्थान पर उपलब्ध है। फ़ाइल का नाम हो सकता है
निरपेक्ष या यह जीसीसी की वर्तमान निर्देशिका के सापेक्ष हो सकता है।

-x c
-x सी ++
-x उद्देश्य सी
-x असेंबलर-साथ-सीपीपी
स्रोत भाषा निर्दिष्ट करें: C, C++, Objective-C, या असेंबली। इसका कोई लेना-देना नहीं है
मानकों के अनुरूप या विस्तार के साथ; यह केवल यह चुनता है कि कौन सा आधार वाक्यविन्यास है
अपेक्षा करना। यदि आप इनमें से कोई भी विकल्प नहीं देते हैं, तो cpp भाषा को से घटाएगा
स्रोत फ़ाइल का विस्तार: .c, . सीसी, .mया, .S. के लिए कुछ अन्य सामान्य एक्सटेंशन
सी ++ और असेंबली भी मान्यता प्राप्त हैं। यदि cpp एक्सटेंशन को नहीं पहचानता है, तो यह
फ़ाइल को सी के रूप में मानेंगे; यह सबसे सामान्य विधा है।

नोट: cpp के पिछले संस्करणों को स्वीकार किया गया a -लंग विकल्प जिसने दोनों को चुना
भाषा और मानक अनुरूपता स्तर। यह विकल्प हटा दिया गया है, क्योंकि
यह के साथ संघर्ष करता है -l विकल्प.

-एसटीडी=मानक
-अनसी
उस मानक को निर्दिष्ट करें जिसके अनुरूप कोड होना चाहिए। वर्तमान में CPP C . के बारे में जानता है
और सी++ मानक; दूसरों को भविष्य में जोड़ा जा सकता है।

मानक इनमें से एक हो सकता है:

"सी90"
"सी89"
"आईएसओ9899:1990"
1990 से आईएसओ सी मानक। c90 के इस संस्करण के लिए प्रथागत आशुलिपि है
मानक।

RSI -अनसी विकल्प के बराबर है -एसटीडी = सी 90.

"आईएसओ9899:199409"
1990 सी मानक, 1994 में संशोधित।

"आईएसओ9899:1999"
"सी99"
"आईएसओ9899:199x"
"सी9एक्स"
संशोधित आईएसओ सी मानक, दिसंबर 1999 में प्रकाशित हुआ। प्रकाशन से पहले, यह
C9X के नाम से जाना जाता था।

"आईएसओ9899:2011"
"सी11"
"सी1एक्स"
संशोधित आईएसओ सी मानक, दिसंबर 2011 में प्रकाशित हुआ। प्रकाशन से पहले, यह
C1X के नाम से जाना जाता था।

"gnu90"
"gnu89"
1990 सी मानक प्लस जीएनयू एक्सटेंशन। यह डिफ़ॉल्ट है।

"gnu99"
"gnu9x"
1999 सी मानक प्लस जीएनयू एक्सटेंशन।

"gnu11"
"gnu1x"
2011 सी मानक प्लस जीएनयू एक्सटेंशन।

"सी++98"
1998 ISO C++ मानक प्लस संशोधन।

"ग्नू++98"
बराबर -एसटीडी=सी++98 प्लस जीएनयू एक्सटेंशन। यह C++ कोड के लिए डिफ़ॉल्ट है।

-मैं- शामिल पथ को विभाजित करें। के साथ निर्दिष्ट कोई निर्देशिका -I पहले विकल्प -मैं- रहे
केवल "#include" के साथ अनुरोधित हेडर के लिए खोजा गयाफ़ाइल""; उनकी तलाश नहीं की जाती है
"#शामिलफ़ाइल>". यदि अतिरिक्त निर्देशिकाओं के साथ निर्दिष्ट किया गया है -I के बाद विकल्प
-मैं-, उन निर्देशिकाओं को सभी के लिए खोजा जाता है # शामिल दिशा निर्देशों।

इसके अलावा, -मैं- वर्तमान फ़ाइल निर्देशिका की निर्देशिका के उपयोग को रोकता है:
"#include" के लिए पहली खोज निर्देशिकाफ़ाइल"". यह विकल्प बहिष्कृत कर दिया गया है।

-नोस्टडिंक
हेडर फाइलों के लिए मानक सिस्टम निर्देशिकाओं की खोज न करें। केवल निर्देशिका
आपने के साथ निर्दिष्ट किया है -I विकल्प (और वर्तमान फ़ाइल की निर्देशिका, if
उपयुक्त) खोजे जाते हैं।

-नोस्टडिंक++
C++ - विशिष्ट मानक निर्देशिकाओं में शीर्षलेख फ़ाइलों की खोज न करें, लेकिन फिर भी करें
अन्य मानक निर्देशिका खोजें। (इस विकल्प का उपयोग C++ . का निर्माण करते समय किया जाता है
पुस्तकालय।)

-शामिल पट्टिका
प्रक्रिया पट्टिका जैसे कि "#include "file"" प्राथमिक स्रोत की पहली पंक्ति के रूप में दिखाई दिया
फ़ाइल। हालाँकि, पहली निर्देशिका की खोज की गई पट्टिका प्रीप्रोसेसर काम कर रहा है
डायरेक्टरी बजाय of मुख्य स्रोत फ़ाइल वाली निर्देशिका। नहीं मिला तो
वहां, इसे "#include "..."" खोज श्रृंखला के शेष भाग में खोजा जाता है जैसे
सामान्य.

अगर कई -शामिल विकल्प दिए गए हैं, फाइलों को उनके क्रम में शामिल किया गया है
कमांड लाइन पर दिखाई दें।

-इमैक्रोस पट्टिका
बिल्कुल वैसा ही -शामिल, सिवाय इसके कि स्कैनिंग द्वारा उत्पादित कोई भी आउटपुट पट्टिका फेंक दिया जाता है
दूर। मैक्रोज़ जो इसे परिभाषित करता है वह परिभाषित रहता है। यह आपको सभी मैक्रोज़ प्राप्त करने की अनुमति देता है
हेडर से इसकी घोषणाओं को संसाधित किए बिना।

द्वारा निर्दिष्ट सभी फ़ाइलें -इमैक्रोस द्वारा निर्दिष्ट सभी फाइलों से पहले संसाधित होते हैं -शामिल.

-इदिराफ्टर दीर
Search दीर हेडर फाइलों के लिए, लेकिन इसे करें बाद के साथ निर्दिष्ट सभी निर्देशिकाएं -I और
मानक सिस्टम निर्देशिका समाप्त हो गई हैं। दीर एक प्रणाली के रूप में माना जाता है
निर्देशिका। अगर दीर "=" से शुरू होता है, फिर "=" को sysroot द्वारा बदल दिया जाएगा
उपसर्ग; देख --सिसरूट और -इसिसरूट.

-आईप्रीफिक्स उपसर्ग
निर्दिष्ट करें उपसर्ग बाद के उपसर्ग के रूप में -iwithउपसर्ग विकल्प। यदि उपसर्ग
एक निर्देशिका का प्रतिनिधित्व करता है, आपको अंतिम शामिल करना चाहिए /.

-iwithउपसर्ग दीर
-iसाथउपसर्गपहले दीर
जोड़ना दीर पहले से निर्दिष्ट उपसर्ग के साथ -आईप्रीफिक्स, और परिणामी जोड़ें
खोज पथ शामिल करने के लिए निर्देशिका। -iसाथउपसर्गपहले इसे उसी स्थान पर रखता है -I
चाहेंगे; -iwithउपसर्ग इसे कहाँ रखता है -इदिराफ्टर होगा।

-इसिसरूट दीर
यह विकल्प इस प्रकार है --सिसरूट विकल्प, लेकिन केवल हेडर फाइलों पर लागू होता है (को छोड़कर)
डार्विन लक्ष्य, जहां यह हेडर फाइलों और पुस्तकालयों दोनों पर लागू होता है)। देखें
--सिसरूट अधिक जानकारी के लिए विकल्प।

-इमल्टीलिब दीर
उपयोग दीर लक्ष्य-विशिष्ट C++ शीर्षलेख वाली निर्देशिका की उपनिर्देशिका के रूप में।

-सिस्टम दीर
Search दीर हेडर फाइलों के लिए, द्वारा निर्दिष्ट सभी निर्देशिकाओं के बाद -I लेकिन इससे पहले
मानक प्रणाली निर्देशिका। इसे सिस्टम निर्देशिका के रूप में चिह्नित करें, ताकि यह समान हो जाए
विशेष उपचार जैसा कि मानक सिस्टम निर्देशिकाओं पर लागू होता है। अगर दीर शुरू करना
"=" के साथ, फिर "=" को sysroot उपसर्ग से बदल दिया जाएगा; देख --सिसरूट और
-इसिसरूट.

-मैं उद्धृत करता हूं दीर
Search दीर केवल "#include" के साथ अनुरोधित शीर्षलेख फ़ाइलों के लिएफ़ाइल""; वो नहीं हैं
"#शामिल" के लिए खोजाफ़ाइल>", द्वारा निर्दिष्ट सभी निर्देशिकाओं से पहले -I और पहले
मानक प्रणाली निर्देशिका। अगर दीर "=" से शुरू होता है, फिर "=" को से बदल दिया जाएगा
सिसरूट उपसर्ग; देख --सिसरूट और -इसिसरूट.

-fdirective-only
प्रीप्रोसेसिंग करते समय, निर्देशों को संभालें, लेकिन मैक्रोज़ का विस्तार न करें।

विकल्प का व्यवहार इस पर निर्भर करता है: -E और -फप्रीप्रोसेस्ड विकल्प.

- -E, प्रीप्रोसेसिंग "#define" जैसे निर्देशों को संभालने तक सीमित है,
"#ifdef", और "#error"। अन्य प्रीप्रोसेसर संचालन, जैसे मैक्रो विस्तार और
ट्रिग्राफ रूपांतरण नहीं किया जाता है। इसके साथ में -डीडी विकल्प परोक्ष है
सक्षम होना चाहिए।

- -फप्रीप्रोसेस्ड, कमांड लाइन और अधिकांश बिल्टिन मैक्रोज़ की पूर्व परिभाषा है
अक्षम। मैक्रोज़ जैसे "__LINE__", जो प्रासंगिक रूप से निर्भर हैं, को संभाला जाता है
सामान्य रूप से। यह "-E ." के साथ पूर्व-संसाधित फ़ाइलों के संकलन को सक्षम बनाता है
-निर्देश-केवल"।

दोनोंके साथ -E और -फप्रीप्रोसेस्डके लिए नियम -फप्रीप्रोसेस्ड पूर्वता ले। इस
"-E ." के साथ पूर्व-संसाधित फ़ाइलों के पूर्ण प्रीप्रोसेसिंग को सक्षम करता है
-निर्देश-केवल"।

- डॉलर-में-पहचानकर्ता
स्वीकार करें $ पहचानकर्ताओं में।

-फेक्टेड-पहचानकर्ता
पहचानकर्ताओं में सार्वभौमिक चरित्र नाम स्वीकार करें। यह विकल्प प्रयोगात्मक है; में एक
जीसीसी का भावी संस्करण, यह डिफ़ॉल्ट रूप से C99 और C++ के लिए सक्षम होगा।

-फप्रीप्रोसेस्ड
प्रीप्रोसेसर को इंगित करें कि इनपुट फ़ाइल पहले से ही प्रीप्रोसेस की जा चुकी है। इस
मैक्रो विस्तार, ट्रिग्राफ रूपांतरण जैसी चीजों को दबा देता है, न्यूलाइन स्प्लिसिंग से बच जाता है,
और अधिकांश निर्देशों का प्रसंस्करण। प्रीप्रोसेसर अभी भी पहचानता है और हटाता है
टिप्पणियाँ, ताकि आप पहले से संसाधित फ़ाइल को पास कर सकें -C संकलक के बिना
समस्या। इस मोड में एकीकृत प्रीप्रोसेसर एक टोकननाइज़र से थोड़ा अधिक होता है
सामने के छोर के लिए।

-फप्रीप्रोसेस्ड निहित है यदि इनपुट फ़ाइल में एक्सटेंशन में से एक है .i, ii or .एमआई.
ये वे एक्सटेंशन हैं जिनका उपयोग GCC द्वारा बनाई गई प्रीप्रोसेस्ड फ़ाइलों के लिए करता है -बचाओ-अस्थायी.

-फटबस्टॉप=चौडाई
टैब स्टॉप के बीच की दूरी सेट करें। यह प्रीप्रोसेसर रिपोर्ट को सही कॉलम में मदद करता है
चेतावनियों या त्रुटियों में नंबर, भले ही टैब लाइन पर दिखाई दें। यदि मान कम है
1 से अधिक या 100 से अधिक, विकल्प पर ध्यान नहीं दिया जाता है। डिफ़ॉल्ट 8 है।

-एफडीबग-सीपीपी
यह विकल्प केवल GCC डीबग करने के लिए उपयोगी है। जब के साथ प्रयोग किया जाता है -E, डिबगिंग डंप करता है
स्थान के नक्शे के बारे में जानकारी। आउटपुट में प्रत्येक टोकन के डंप से पहले होता है
वह मानचित्र जिससे उसका स्थान संबंधित है। एक टोकन के स्थान को धारण करने वाले मानचित्र का डंप
होने वाला:

{"पी": एफ ;"एफ":एफ ; "एल": ;"सी": ;"एस": ;"एम": ;"इ": , "लोक": }

बिना उपयोग किए जाने पर -E, इस विकल्प का कोई प्रभाव नहीं है।

-फ्रैक-मैक्रो-विस्तार[=स्तर]
मैक्रो विस्तार में टोकन के स्थानों को ट्रैक करें। यह संकलक को उत्सर्जित करने की अनुमति देता है
वर्तमान मैक्रो विस्तार स्टैक के बारे में निदान जब एक संकलन त्रुटि होती है
एक मैक्रो विस्तार। इस विकल्प का उपयोग करने से प्रीप्रोसेसर और कंपाइलर उपभोग करते हैं
अधिक स्मृति। NS स्तर टोकन की सटीकता के स्तर को चुनने के लिए पैरामीटर का उपयोग किया जा सकता है
स्थान ट्रैकिंग इस प्रकार यदि आवश्यक हो तो स्मृति खपत को कम करती है। मूल्य 0 of
स्तर इस विकल्प को वैसे ही निष्क्रिय कर देता है जैसे कि नहीं -फ्रैक-मैक्रो-विस्तार पर मौजूद था
कमांड लाइन। मूल्य 1 के लिए एक अवक्रमित मोड में टोकन स्थानों को ट्रैक करता है
न्यूनतम मेमोरी ओवरहेड। इस मोड में an . के विस्तार के परिणामस्वरूप सभी टोकन
फ़ंक्शन-जैसे मैक्रो के तर्क का स्थान समान होता है। मूल्य 2 ट्रैक टोकन
स्थान पूरी तरह से। यह मान सबसे अधिक स्मृति भूखा है। जब यह विकल्प दिया जाता है
कोई तर्क नहीं, डिफ़ॉल्ट पैरामीटर मान है 2.

-फेक्सेक-चारसेट =चारसेट
निष्पादन वर्ण सेट सेट करें, स्ट्रिंग और वर्ण स्थिरांक के लिए उपयोग किया जाता है। डिफ़ॉल्ट
यूटीएफ -8 है। चारसेट सिस्टम की "iconv" लाइब्रेरी द्वारा समर्थित कोई भी एन्कोडिंग हो सकता है
दिनचर्या।

-फवाइड-निष्पादन-चारसेट=चारसेट
विस्तृत स्ट्रिंग और वर्ण स्थिरांक के लिए उपयोग किए जाने वाले विस्तृत निष्पादन वर्ण सेट को सेट करें।
डिफ़ॉल्ट UTF-32 या UTF-16 है, जो भी "wchar_t" की चौड़ाई के अनुरूप हो। जैसा
साथ में -फेक्सेक-चारसेट, चारसेट सिस्टम के "iconv" द्वारा समर्थित कोई भी एन्कोडिंग हो सकता है
पुस्तकालय दिनचर्या; हालांकि, आपको उन एन्कोडिंग के साथ समस्या होगी जो फिट नहीं हैं
बिल्कुल "wchar_t" में।

-फिनपुट-चारसेट =चारसेट
इनपुट कैरेक्टर सेट सेट करें, इनपुट के कैरेक्टर सेट से अनुवाद के लिए उपयोग किया जाता है
जीसीसी द्वारा उपयोग किए जाने वाले स्रोत वर्ण सेट में फ़ाइल। यदि स्थान निर्दिष्ट नहीं करता है, या GCC
यह जानकारी लोकेल से नहीं मिल सकती है, डिफ़ॉल्ट यूटीएफ -8 है। यह हो सकता है
लोकेल या इस कमांड लाइन विकल्प द्वारा ओवरराइड किया गया। वर्तमान में कमांड
कोई विरोध होने पर लाइन विकल्प को प्राथमिकता दी जाती है। चारसेट कोई भी एन्कोडिंग हो सकता है
सिस्टम के "iconv" लाइब्रेरी रूटीन द्वारा समर्थित।

-फ़वर्किंग-निर्देशिका
प्रीप्रोसेसर आउटपुट में लाइनमार्कर की पीढ़ी को सक्षम करें जो कंपाइलर को देगा
प्रीप्रोसेसिंग के समय वर्तमान कार्यशील निर्देशिका को जानें। जब यह विकल्प है
सक्षम, प्रीप्रोसेसर प्रारंभिक लाइनमार्कर के बाद, दूसरा लाइनमार्कर उत्सर्जित करेगा
वर्तमान कार्यशील निर्देशिका के साथ दो स्लैश के बाद। जीसीसी इसका उपयोग करेगा
निर्देशिका, जब यह प्रीप्रोसेस्ड इनपुट में मौजूद होती है, तो निर्देशिका के रूप में उत्सर्जित होती है
कुछ डिबगिंग सूचना स्वरूपों में वर्तमान कार्यशील निर्देशिका। यह विकल्प है
डिबगिंग जानकारी सक्षम होने पर निहित रूप से सक्षम है, लेकिन इसे इसके साथ बाधित किया जा सकता है
अस्वीकृत रूप -फनो-वर्किंग-डायरेक्टरी। अगर -P ध्वज कमांड में मौजूद है
लाइन, इस विकल्प का कोई प्रभाव नहीं है, क्योंकि कोई भी "#line" निर्देश उत्सर्जित नहीं होते हैं।

-फनो-शो-कॉलम
डायग्नोस्टिक्स में कॉलम नंबर प्रिंट न करें। यह आवश्यक हो सकता है यदि निदान हैं
एक प्रोग्राम द्वारा स्कैन किया जा रहा है जो कॉलम नंबरों को नहीं समझता है, जैसे कि
देजगनु.

-A विधेय=जवाब
विधेय के साथ एक अभिकथन करें विधेय और उत्तर जवाब. यह फॉर्म है
पुराने रूप को पसंद किया -A विधेय(जवाब), जो अभी भी समर्थित है, क्योंकि यह
शेल विशेष वर्णों का उपयोग नहीं करता है।

-A -विधेय=जवाब
विधेय के साथ एक अभिकथन रद्द करें विधेय और उत्तर जवाब.

-dCHARS
घर का काम निम्नलिखित में से एक या अधिक वर्णों का अनुक्रम है, और नहीं होना चाहिए
एक स्थान से पहले। अन्य वर्णों की व्याख्या कंपाइलर द्वारा उचित रूप से की जाती है, या
जीसीसी के भविष्य के संस्करणों के लिए आरक्षित है, और इसलिए चुपचाप अनदेखा कर दिया जाता है। यदि आप निर्दिष्ट करते हैं
जिन पात्रों का व्यवहार विरोध करता है, परिणाम अपरिभाषित है।

M सामान्य आउटपुट के बजाय, की एक सूची तैयार करें #define सभी के लिए निर्देश
पूर्वनिर्धारित सहित प्रीप्रोसेसर के निष्पादन के दौरान परिभाषित मैक्रोज़
मैक्रोज़ यह आपको यह पता लगाने का एक तरीका देता है कि आपके संस्करण में पूर्वनिर्धारित क्या है
प्रीप्रोसेसर। मान लें कि आपके पास कोई फ़ाइल नहीं है फू.एच, आदेश

स्पर्श फू.एच; सीपीपी -डीएम foo.h

सभी पूर्वनिर्धारित मैक्रोज़ दिखाएगा।

आप उपयोग करते हैं -डीएम के बिना -E विकल्प, -डीएम के समानार्थी के रूप में व्याख्या की जाती है
-फडंप-आरटीएल-मच.

D पसंद M दो मामलों को छोड़कर: यह करता है नहीं पूर्वनिर्धारित मैक्रोज़ शामिल करें, और यह
outputs के के छात्रों la #define निर्देश और प्रीप्रोसेसिंग का परिणाम। दोनों प्रकार
आउटपुट का मानक आउटपुट फ़ाइल पर जाएं।

N पसंद D, लेकिन केवल मैक्रो नामों का उत्सर्जन करते हैं, उनके विस्तार नहीं।

I उत्पादन # शामिल प्रीप्रोसेसिंग के परिणाम के अलावा निर्देश।

U पसंद D सिवाय इसके कि केवल मैक्रोज़ जो विस्तारित हैं, या जिनकी परिभाषा का परीक्षण किया गया है
प्रीप्रोसेसर निर्देशों में, आउटपुट हैं; उपयोग या . तक आउटपुट में देरी हो रही है
मैक्रो का परीक्षण; तथा # कुंड परीक्षण किए गए मैक्रोज़ के लिए निर्देश भी आउटपुट हैं लेकिन
उस समय अपरिभाषित।

-P प्रीप्रोसेसर से आउटपुट में लाइनमार्कर की पीढ़ी को रोकें। यह हो सकता है
प्रीप्रोसेसर को किसी ऐसी चीज़ पर चलाते समय उपयोगी है जो सी कोड नहीं है, और भेजा जाएगा
एक प्रोग्राम के लिए जो लाइनमार्कर द्वारा भ्रमित किया जा सकता है।

-C टिप्पणियों को न छोड़ें। सभी टिप्पणियों को आउटपुट फ़ाइल के माध्यम से पारित किया जाता है, सिवाय
संसाधित निर्देशों में टिप्पणियों के लिए, जिन्हें निर्देश के साथ हटा दिया जाता है।

उपयोग करते समय आपको दुष्प्रभावों के लिए तैयार रहना चाहिए -C; यह प्रीप्रोसेसर का कारण बनता है
टिप्पणियों को अपने आप में टोकन के रूप में मानें। उदाहरण के लिए, पर प्रदर्शित होने वाली टिप्पणियां
एक निर्देश रेखा क्या होगी की शुरुआत उस रेखा को एक में बदलने का असर है
साधारण स्रोत लाइन, चूंकि लाइन पर पहला टोकन अब नहीं है a #.

-सीसी मैक्रो विस्तार के दौरान सहित टिप्पणियों को न छोड़ें। यह इसके जैसा है -C, के सिवाय
मैक्रोज़ के भीतर निहित टिप्पणियों को भी आउटपुट फ़ाइल के माध्यम से पारित किया जाता है जहां
मैक्रो का विस्तार किया गया है।

के दुष्प्रभावों के अलावा -C विकल्प, -सीसी विकल्प सभी सी ++ - शैली का कारण बनता है
मैक्रो के अंदर टिप्पणियों को सी-स्टाइल टिप्पणियों में परिवर्तित किया जाना है। यह बाद में रोकने के लिए है
स्रोत लाइन के शेष भाग पर अनजाने में टिप्पणी करने से उस मैक्रो का उपयोग।

RSI -सीसी विकल्प आमतौर पर लिंट टिप्पणियों का समर्थन करने के लिए उपयोग किया जाता है।

-पारंपरिक-सीपीपी
आईएसओ सी के विपरीत पुराने जमाने के सी प्रीप्रोसेसरों के व्यवहार की नकल करने की कोशिश करें
प्रीप्रोसेसर।

-ट्रिग्राफ
प्रक्रिया ट्रिग्राफ अनुक्रम। ये तीन-वर्ण अनुक्रम हैं, जो सभी से शुरू होते हैं
??, जो एकल वर्णों के लिए ISO C द्वारा परिभाषित हैं। उदाहरण के लिए, ??/ खड़ा
एसटी \, इतना '??/एन' एक नई पंक्ति के लिए एक चरित्र स्थिरांक है। डिफ़ॉल्ट रूप से, GCC अनदेखा करता है
ट्रिग्राफ, लेकिन मानक-अनुरूप मोड में यह उन्हें परिवर्तित करता है। देखें -एसटीडी और -अनसी
विकल्प.

नौ ट्रिग्राफ और उनके प्रतिस्थापन हैं

ट्रिग्राफ: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
प्रतिस्थापन: [ ] { } # \ ^ | ~

-रेमैप
फ़ाइल सिस्टम के आसपास काम करने के लिए विशेष कोड सक्षम करें जो केवल बहुत छोटी फ़ाइल की अनुमति देता है
एमएस-डॉस जैसे नाम।

--मदद
--लक्ष्य-सहायता
किसी भी चीज़ को प्रीप्रोसेस करने के बजाय सभी कमांड लाइन विकल्पों का वर्णन करने वाला टेक्स्ट प्रिंट करें।

-v वाचाल प्रकार। निष्पादन की शुरुआत में जीएनयू सीपीपी के संस्करण संख्या का प्रिंट आउट लें, और
शामिल पथ के अंतिम रूप की रिपोर्ट करें।

-H अन्य सामान्य गतिविधियों के अलावा, उपयोग की जाने वाली प्रत्येक हेडर फ़ाइल का नाम प्रिंट करें। प्रत्येक
नाम को यह दिखाने के लिए इंडेंट किया गया है कि में कितना गहरा है # शामिल ढेर है। प्रीकंपील्ड हेडर
फ़ाइलें भी मुद्रित की जाती हैं, भले ही वे अमान्य पाई जाती हैं; एक अमान्य पूर्वसंकलित
हैडर फ़ाइल के साथ मुद्रित है ...एक्स और एक वैध के साथ ...! .

-संस्करण
--संस्करण
जीएनयू सीपीपी के संस्करण संख्या का प्रिंट आउट लें। एक डैश के साथ, सामान्य रूप से प्रीप्रोसेस करने के लिए आगे बढ़ें।
दो डैश के साथ, तुरंत बाहर निकलें।

पासिंग ऑप्शंस सेवा मेरे la कोडांतरक
आप असेंबलर को विकल्प पास कर सकते हैं।

-वा,विकल्प
पास विकल्प असेंबलर के विकल्प के रूप में। अगर विकल्प अल्पविराम होता है, यह विभाजित होता है
अल्पविराम में कई विकल्पों में।

-एक्ससेम्बलर विकल्प
पास विकल्प असेंबलर के विकल्प के रूप में। आप इसका उपयोग सिस्टम-विशिष्ट आपूर्ति करने के लिए कर सकते हैं
असेंबलर विकल्प जिन्हें जीसीसी नहीं जानता कि कैसे पहचानना है।

यदि आप एक विकल्प पारित करना चाहते हैं जो तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्ससेम्बलर दो बार,
एक बार विकल्प के लिए और एक बार तर्क के लिए।

ऑप्शंस एसटी जोड़ने
ये विकल्प तब चलन में आते हैं जब कंपाइलर ऑब्जेक्ट फ़ाइलों को एक निष्पादन योग्य में जोड़ता है
निर्गम संचिका। वे अर्थहीन हैं यदि संकलक एक लिंक चरण नहीं कर रहा है।

वस्तु-फ़ाइल-नाम
एक फ़ाइल नाम जो एक विशेष मान्यता प्राप्त प्रत्यय में समाप्त नहीं होता है, उसे एक नाम माना जाता है
ऑब्जेक्ट फ़ाइल या लाइब्रेरी। (ऑब्जेक्ट फाइलों को लिंकर द्वारा पुस्तकालयों से अलग किया जाता है
फ़ाइल सामग्री के अनुसार।) यदि लिंकिंग की जाती है, तो इन ऑब्जेक्ट फ़ाइलों का उपयोग इस प्रकार किया जाता है
लिंकर के लिए इनपुट।

-c
-S
-E यदि इनमें से किसी भी विकल्प का उपयोग किया जाता है, तो लिंकर नहीं चलता है, और ऑब्जेक्ट फ़ाइल नाम
तर्क के रूप में इस्तेमाल नहीं किया जाना चाहिए।

-lपुस्तकालय
-l पुस्तकालय
नाम की लाइब्रेरी खोजें पुस्तकालय लिंक करते समय। (दूसरा विकल्प के साथ
एक अलग तर्क के रूप में पुस्तकालय केवल पॉज़िक्स अनुपालन के लिए है और इसकी अनुशंसा नहीं की जाती है।)

इससे फर्क पड़ता है कि आप कमांड में यह विकल्प कहां लिखते हैं; लिंकर खोजता है
और पुस्तकालयों और ऑब्जेक्ट फ़ाइलों को उनके निर्दिष्ट क्रम में संसाधित करता है। इस प्रकार, फू.ओ
-lz बार.ओ खोज पुस्तकालय z फ़ाइल के बाद फू.ओ लेकिन इससे पहले बार.ओ. अगर बार.ओ को संदर्भित करता है
में काम करता है z, उन कार्यों को लोड नहीं किया जा सकता है।

लिंकर पुस्तकालय के लिए निर्देशिकाओं की एक मानक सूची खोजता है, जो वास्तव में है
नाम की एक फाइल पुस्तकालय.ए. लिंकर तब इस फ़ाइल का उपयोग करता है जैसे कि इसे निर्दिष्ट किया गया हो
ठीक नाम से।

खोजी गई निर्देशिकाओं में कई मानक सिस्टम निर्देशिकाएं शामिल हैं, साथ ही कोई भी जो आप
के साथ निर्दिष्ट करें -L.

आम तौर पर इस तरह से पाई जाने वाली फाइलें लाइब्रेरी फाइलें होती हैं --- संग्रह फाइलें जिनके सदस्य हैं
वस्तु फ़ाइलें। लिंकर सदस्यों के लिए इसके माध्यम से स्कैन करके एक संग्रह फ़ाइल को संभालता है
जो उन प्रतीकों को परिभाषित करते हैं जिन्हें अब तक संदर्भित किया गया है लेकिन परिभाषित नहीं किया गया है। लेकिन अगर
जो फाइल मिलती है वह एक साधारण ऑब्जेक्ट फाइल होती है, यह सामान्य तरीके से जुड़ी होती है। NS
an . का उपयोग करने के बीच केवल अंतर -l विकल्प और फ़ाइल नाम निर्दिष्ट करना है कि -l
चारों ओर से घेरे पुस्तकालय साथ में lib और .a और कई निर्देशिका खोजता है।

-लोबजेसी
आपको इस विशेष मामले की आवश्यकता है -l एक उद्देश्य-सी को जोड़ने के लिए विकल्प या
उद्देश्य-सी ++ कार्यक्रम।

-नोस्टार्टफाइल्स
लिंक करते समय मानक सिस्टम स्टार्टअप फ़ाइलों का उपयोग न करें। मानक प्रणाली
पुस्तकालयों का सामान्य रूप से उपयोग किया जाता है, जब तक कि -नोस्टडलिब or -नोडिफॉल्टलिब्स प्रयोग किया जाता है।

-नोडिफॉल्टलिब्स
लिंक करते समय मानक सिस्टम लाइब्रेरी का उपयोग न करें। केवल आपके द्वारा निर्दिष्ट पुस्तकालय
लिंकर को पास किया जाएगा, सिस्टम लाइब्रेरी के लिंकेज को निर्दिष्ट करने वाले विकल्प, जैसे
"-static-libgcc" या "-shared-libgcc" के रूप में, अनदेखा कर दिया जाएगा। मानक स्टार्टअप फ़ाइलें
सामान्य रूप से उपयोग किया जाता है, जब तक कि -नोस्टार्टफाइल्स प्रयोग किया जाता है। कंपाइलर कॉल उत्पन्न कर सकता है
"memcmp", "memset", "memcpy" और "memmove"। इन प्रविष्टियों को आमतौर पर हल किया जाता है
libc में प्रविष्टियाँ। इन प्रवेश बिंदुओं की आपूर्ति किसी अन्य तंत्र के माध्यम से की जानी चाहिए
जब यह विकल्प निर्दिष्ट किया जाता है।

-नोस्टडलिब
लिंक करते समय मानक सिस्टम स्टार्टअप फ़ाइलों या पुस्तकालयों का उपयोग न करें। कोई स्टार्टअप नहीं
फ़ाइलें और केवल आपके द्वारा निर्दिष्ट पुस्तकालय लिंकर को पास किए जाएंगे, विकल्प
सिस्टम लाइब्रेरी के लिंकेज को निर्दिष्ट करना, जैसे "-static-libgcc" or
"-shared-libgcc", पर ध्यान नहीं दिया जाएगा। संकलक "memcmp" को कॉल उत्पन्न कर सकता है,
"मेमसेट", "मेम्कपी" और "मेमोव"। इन प्रविष्टियों को आमतौर पर प्रविष्टियों द्वारा हल किया जाता है
libc इन प्रवेश बिंदुओं को किसी अन्य तंत्र के माध्यम से आपूर्ति की जानी चाहिए जब यह
विकल्प निर्दिष्ट है।

मानक पुस्तकालयों में से एक को बायपास किया गया -नोस्टडलिब और -नोडिफॉल्टलिब्स is libgcc.aतक
आंतरिक सबरूटीन्स का पुस्तकालय जो जीसीसी विशेष की कमियों को दूर करने के लिए उपयोग करता है
मशीनों, या कुछ भाषाओं के लिए विशेष आवश्यकताएँ।

ज्यादातर मामलों में, आपको चाहिए libgcc.a तब भी जब आप अन्य मानक पुस्तकालयों से बचना चाहते हैं।
दूसरे शब्दों में, जब आप निर्दिष्ट करते हैं -नोस्टडलिब or -नोडिफॉल्टलिब्स आपको आमतौर पर
उल्लिखित करना -एलजीसीसी भी। यह सुनिश्चित करता है कि आपके पास कोई अनसुलझे संदर्भ नहीं हैं
आंतरिक जीसीसी पुस्तकालय सबरूटीन। (उदाहरण के लिए, __मुख्य, C++ . सुनिश्चित करने के लिए उपयोग किया जाता है
कंस्ट्रक्टर्स को बुलाया जाएगा।)

-पाई
उन लक्ष्यों पर स्वतंत्र निष्पादन योग्य स्थिति तैयार करें जो इसका समर्थन करते हैं। पूर्वानुमेय के लिए
परिणाम, आपको विकल्पों के उसी सेट को भी निर्दिष्ट करना होगा जो कोड उत्पन्न करने के लिए उपयोग किए गए थे
(-एफपीआई, -एफपीआईई, या मॉडल उपविकल्प) जब आप इस विकल्प को निर्दिष्ट करते हैं।

-गतिशील
झंडा पास करो -निर्यात-गतिशील ईएलएफ लिंकर को, उन लक्ष्यों पर जो इसका समर्थन करते हैं। इस
लिंकर को सभी प्रतीकों को जोड़ने का निर्देश देता है, न कि केवल इस्तेमाल किए गए लोगों को, गतिशील प्रतीक में जोड़ने के लिए
टेबल। "dlopen" के कुछ उपयोगों के लिए या प्राप्त करने की अनुमति देने के लिए इस विकल्प की आवश्यकता है
एक कार्यक्रम के भीतर से पीछे की ओर।

-s निष्पादन योग्य से सभी प्रतीक तालिका और स्थानांतरण जानकारी निकालें।

स्थैतिक
डायनामिक लिंकिंग का समर्थन करने वाले सिस्टम पर, यह शेयर्ड के साथ लिंकिंग को रोकता है
पुस्तकालय। अन्य प्रणालियों पर, इस विकल्प का कोई प्रभाव नहीं पड़ता है।

कमरा साझा
एक साझा वस्तु का निर्माण करें जिसे बाद में अन्य वस्तुओं के साथ जोड़ा जा सकता है
निष्पादन योग्य। सभी सिस्टम इस विकल्प का समर्थन नहीं करते हैं। पूर्वानुमेय परिणामों के लिए, आपको अवश्य करना चाहिए
विकल्पों के समान सेट को भी निर्दिष्ट करें जिनका उपयोग कोड उत्पन्न करने के लिए किया गया था (-एफपीआईसी, -एफपीआईसीया,
मॉडल उपविकल्प) जब आप इस विकल्प को निर्दिष्ट करते हैं। [1]

-साझा-libgcc
-स्थैतिक-libgcc
प्रदान करने वाले सिस्टम पर लिबगसीसी एक साझा पुस्तकालय के रूप में, ये विकल्प के उपयोग को बाध्य करते हैं
या तो साझा या स्थिर संस्करण क्रमशः। यदि . का कोई साझा संस्करण नहीं है लिबगसीसी था
जब कंपाइलर कॉन्फ़िगर किया गया था, तो इन विकल्पों का कोई प्रभाव नहीं पड़ता है।

ऐसी कई स्थितियाँ हैं जिनमें किसी एप्लिकेशन को साझा का उपयोग करना चाहिए लिबगसीसी
स्थिर संस्करण के बजाय। इनमें से सबसे आम है जब application
विभिन्न साझा पुस्तकालयों में अपवादों को फेंकना और पकड़ना चाहता है। उस स्तिथि में,
प्रत्येक पुस्तकालय के साथ-साथ एप्लिकेशन को भी साझा का उपयोग करना चाहिए लिबगसीसी.

इसलिए, G++ और GCJ ड्राइवर स्वचालित रूप से जोड़ते हैं -साझा-libgcc जब भी आप निर्माण करते हैं
एक साझा पुस्तकालय या मुख्य निष्पादन योग्य, क्योंकि सी ++ और जावा प्रोग्राम आमतौर पर उपयोग करते हैं
अपवाद, इसलिए यह करना सही है।

यदि, इसके बजाय, आप साझा लाइब्रेरी बनाने के लिए GCC ड्राइवर का उपयोग करते हैं, तो आप पा सकते हैं कि वे
हमेशा साझा के साथ नहीं जोड़ा जाएगा लिबगसीसी. यदि GCC अपने विन्यास पर पाता है
समय, कि आपके पास एक गैर-जीएनयू लिंकर या एक जीएनयू लिंकर है जो विकल्प का समर्थन नहीं करता है
--एह-फ्रेम-एचडीआर, यह के साझा संस्करण को लिंक करेगा लिबगसीसी द्वारा साझा पुस्तकालयों में
चूक जाना। अन्यथा, यह लिंकर का लाभ उठाएगा और इसे दूर कर देगा
के साझा संस्करण के साथ लिंक करना लिबगसीसी, libgcc के स्थिर संस्करण के साथ लिंक करना
डिफ़ॉल्ट रूप से। यह अपवादों को ऐसे साझा पुस्तकालयों के माध्यम से प्रचारित करने की अनुमति देता है,
पुस्तकालय लोड समय पर स्थानांतरण लागत वहन किए बिना।

हालाँकि, यदि किसी पुस्तकालय या मुख्य निष्पादन योग्य को अपवादों को फेंकना या पकड़ना है, तो आप
इसे G++ या GCJ ड्राइवर का उपयोग करके लिंक करना होगा, जैसा कि इसमें प्रयुक्त भाषाओं के लिए उपयुक्त है
कार्यक्रम, या विकल्प का उपयोग कर -साझा-libgcc, जैसे कि यह साझा . के साथ जुड़ा हुआ है
लिबगसीसी.

-स्थैतिक-libstdc++
जब जी ++ प्रोग्राम का उपयोग C++ प्रोग्राम को लिंक करने के लिए किया जाता है, यह सामान्य रूप से स्वचालित रूप से होगा
के खिलाफ लिंक libstdc++. अगर libstdc++ एक साझा पुस्तकालय के रूप में उपलब्ध है, और
स्थैतिक विकल्प का उपयोग नहीं किया जाता है, तो यह के साझा संस्करण के विरुद्ध लिंक होगा
libstdc++. यह सामान्य रूप से ठीक है। हालांकि, कभी-कभी इसे फ्रीज करना उपयोगी होता है
के संस्करण libstdc++ पूरी तरह से स्थिर होने के बिना कार्यक्रम द्वारा उपयोग किया जाता है
संपर्क। NS -स्थैतिक-libstdc++ विकल्प निर्देशित करता है जी ++ लिंक करने के लिए ड्राइवर libstdc++
स्थिर रूप से, अन्य पुस्तकालयों को स्थिर रूप से जोड़ने के बिना।

-प्रतीकात्मक
एक साझा वस्तु का निर्माण करते समय वैश्विक प्रतीकों के संदर्भों को बांधें। किसी के बारे में चेतावनी दें
अनसुलझे संदर्भ (जब तक कि लिंक संपादक विकल्प द्वारा ओवरराइड नहीं किया जाता है -एक्सलिंकर -z
-एक्सलिंकर डीएफएस) केवल कुछ सिस्टम ही इस विकल्प का समर्थन करते हैं।

-T लिपि
उपयोग लिपि लिंकर स्क्रिप्ट के रूप में। यह विकल्प का उपयोग करने वाले अधिकांश सिस्टम द्वारा समर्थित है
जीएनयू लिंकर। कुछ लक्ष्यों पर, जैसे बिना ऑपरेटिंग सिस्टम के बेयर-बोर्ड लक्ष्य,
la -T अपरिभाषित प्रतीकों के संदर्भ से बचने के लिए लिंक करते समय विकल्प की आवश्यकता हो सकती है।

-एक्सलिंकर विकल्प
पास विकल्प लिंकर के विकल्प के रूप में। आप इसका उपयोग सिस्टम-विशिष्ट आपूर्ति करने के लिए कर सकते हैं
लिंकर विकल्प जिन्हें जीसीसी नहीं पहचानता है।

यदि आप एक विकल्प पारित करना चाहते हैं जो एक अलग तर्क लेता है, तो आपको इसका उपयोग करना चाहिए -एक्सलिंकर
दो बार, एक बार विकल्प के लिए और एक बार तर्क के लिए। उदाहरण के लिए, पास करने के लिए -जोर
परिभाषाएँ, आपको लिखना चाहिए -एक्सलिंकर -जोर -एक्सलिंकर परिभाषाएँ. यह काम नहीं करता
लिखने के लिए -एक्सलिंकर "-जोर" परिभाषाएं", क्योंकि यह पूरे स्ट्रिंग को a . के रूप में पास करता है
एकल तर्क, जो कि लिंकर की अपेक्षा नहीं है।

GNU लिंकर का उपयोग करते समय, आमतौर पर लिंकर को तर्क देना अधिक सुविधाजनक होता है
विकल्प का उपयोग कर विकल्प=मूल्य अलग तर्क के रूप में वाक्यविन्यास। उदाहरण के लिए, आप
निर्दिष्ट कर सकते हैं -एक्सलिंकर -मैप=आउटपुट.मैप बजाय -एक्सलिंकर -नक्शा -एक्सलिंकर आउटपुट.मैप.
अन्य लिंकर कमांड-लाइन विकल्पों के लिए इस सिंटैक्स का समर्थन नहीं कर सकते हैं।

-डब्ल्यूएल,विकल्प
पास विकल्प लिंकर के विकल्प के रूप में। अगर विकल्प अल्पविराम होता है, इसे विभाजित किया जाता है
अल्पविराम पर कई विकल्प। आप इस सिंटैक्स का उपयोग तर्क को पारित करने के लिए कर सकते हैं
विकल्प। उदाहरण के लिए, -डब्ल्यूएल, -मैप, आउटपुट.मैप गुजरता -नक्शा आउटपुट.मैप लिंकर को। कब
जीएनयू लिंकर का उपयोग करके, आप भी वही प्रभाव प्राप्त कर सकते हैं -Wl,-मानचित्र = output.map.

नोट: उबंटू 8.10 और बाद के संस्करणों में, एलडीएफएलजीएस के लिए, विकल्प -डब्ल्यूएल, -जेड, रिलेरो प्रयोग किया जाता है।
अक्षम करने के लिए, उपयोग करें -डब्ल्यूएल,-जेड,नोरेलो.

-u प्रतीक
प्रतीक दिखाओ प्रतीक परिभाषित करने के लिए पुस्तकालय मॉड्यूल को जोड़ने के लिए बाध्य करने के लिए अपरिभाषित है
यह। आप उपयोग कर सकते हैं -u लोड करने के लिए मजबूर करने के लिए विभिन्न प्रतीकों के साथ कई बार
अतिरिक्त पुस्तकालय मॉड्यूल।

ऑप्शंस एसटी निर्देशिका Search
ये विकल्प निर्देशिकाओं को हेडर फ़ाइलों की खोज के लिए, पुस्तकालयों के लिए और भागों के लिए निर्दिष्ट करते हैं
संकलक का:

-Iदीर
निर्देशिका जोड़ें दीर शीर्षलेख के लिए खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
फ़ाइलें। इसका उपयोग सिस्टम हेडर फ़ाइल को ओवरराइड करने के लिए किया जा सकता है, जो आपकी खुद की जगह लेता है
संस्करण, चूंकि इन निर्देशिकाओं को सिस्टम हेडर फ़ाइल से पहले खोजा जाता है
निर्देशिका। हालाँकि, आपको इस विकल्प का उपयोग उन निर्देशिकाओं को जोड़ने के लिए नहीं करना चाहिए जिनमें शामिल हैं
विक्रेता द्वारा आपूर्ति की गई सिस्टम हेडर फाइलें (उपयोग करें -सिस्टम उसके लिए)। यदि आप एक से अधिक का उपयोग करते हैं
-I विकल्प, निर्देशिकाओं को बाएं से दाएं क्रम में स्कैन किया जाता है; मानक प्रणाली
निर्देशिका के बाद आते हैं।

यदि एक मानक प्रणाली में निर्देशिका, या के साथ निर्दिष्ट निर्देशिका शामिल है -सिस्टमहै,
के साथ भी निर्दिष्ट -I, -I विकल्प को नजरअंदाज कर दिया जाएगा। निर्देशिका अभी भी होगी
खोजा गया लेकिन सिस्टम निर्देशिका के रूप में सिस्टम में इसकी सामान्य स्थिति में chain.
यह सुनिश्चित करने के लिए है कि बग्गी सिस्टम हेडर और ऑर्डरिंग को ठीक करने के लिए जीसीसी की प्रक्रिया
शामिल_नेक्स्ट निर्देश के लिए अनजाने में नहीं बदला गया है। यदि आपको वास्तव में की आवश्यकता है
सिस्टम निर्देशिकाओं के लिए खोज क्रम बदलें, उपयोग करें -नोस्टडिंक और / या -सिस्टम
विकल्प.

-आईप्लगइंडिर=दीर
द्वारा पारित प्लगइन्स की खोज के लिए निर्देशिका सेट करें -फ़्प्लगिन =नाम के बजाय
-फ़्प्लगिन =पथ/नाम.so. यह विकल्प उपयोगकर्ता द्वारा उपयोग करने के लिए नहीं है, बल्कि केवल
चालक द्वारा पारित किया गया।

-मैं उद्धृत करता हूंदीर
निर्देशिका जोड़ें दीर शीर्षलेख के लिए खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
केवल के मामले के लिए फ़ाइलें # शामिल "पट्टिका"; उनकी तलाश नहीं की जाती है # शामिल <पट्टिका>,
अन्यथा बस की तरह -I.

-Lदीर
निर्देशिका जोड़ें दीर खोजी जाने वाली निर्देशिकाओं की सूची में -l.

-Bउपसर्ग
यह विकल्प निर्दिष्ट करता है कि निष्पादन योग्य, पुस्तकालयों को कहां खोजना है, फाइलों को शामिल करना है, और
कंपाइलर की डेटा फाइलें ही।

कंपाइलर ड्राइवर प्रोग्राम एक या अधिक सबप्रोग्राम चलाता है सीपीपी, cc1, as और ld.
यह कोशिश करता है उपसर्ग प्रत्येक प्रोग्राम के लिए एक उपसर्ग के रूप में यह चलाने की कोशिश करता है, दोनों के साथ और बिना
मशीन/संस्करण/.

प्रत्येक उपप्रोग्राम को चलाने के लिए, कंपाइलर ड्राइवर पहले कोशिश करता है -B उपसर्ग, यदि कोई हो।
यदि वह नाम नहीं मिला है, या यदि -B निर्दिष्ट नहीं किया गया था, ड्राइवर दो मानक की कोशिश करता है
उपसर्ग, /usr/lib/जीसीसी/ और /usr/स्थानीय/lib/gcc/. यदि इनमें से कोई भी परिणाम a . में नहीं होता है
फ़ाइल नाम जो पाया जाता है, का उपयोग करने के लिए असंशोधित प्रोग्राम नाम खोजा जाता है
आपके . में निर्दिष्ट निर्देशिकाएं पथ वातावरण विविधता।

कंपाइलर यह देखने के लिए जाँच करेगा कि क्या द्वारा प्रदान किया गया पथ -B एक निर्देशिका को संदर्भित करता है,
और यदि आवश्यक हो तो यह पथ के अंत में एक निर्देशिका विभाजक वर्ण जोड़ देगा।

-B उपसर्ग जो प्रभावी रूप से निर्देशिका नाम निर्दिष्ट करते हैं, वे पुस्तकालयों पर भी लागू होते हैं
लिंकर, क्योंकि संकलक इन विकल्पों का अनुवाद करता है -L लिंकर के लिए विकल्प।
वे प्रीप्रोसेसर में फ़ाइलों को शामिल करने के लिए भी लागू होते हैं, क्योंकि संकलक अनुवाद करता है
इन विकल्पों में -सिस्टम प्रीप्रोसेसर के लिए विकल्प। इस मामले में, संकलक
संलग्न कर देता है शामिल उपसर्ग को।

रनटाइम समर्थन फ़ाइल libgcc.a का उपयोग करने के लिए भी खोजा जा सकता है -B उपसर्ग, अगर
आवश्यकता है। यदि यह वहां नहीं मिलता है, तो ऊपर दिए गए दो मानक उपसर्गों की कोशिश की जाती है, और वह
सब है। फ़ाइल लिंक से बाहर रह जाती है यदि यह उन तरीकों से नहीं मिलती है।

उपसर्ग की तरह निर्दिष्ट करने का दूसरा तरीका -B उपसर्ग पर्यावरण का उपयोग करना है
परिवर्तनशील जीसीसी_EXEC_PREFIX.

एक विशेष कीचड़ के रूप में, यदि पथ द्वारा प्रदान किया गया -B is [डीआईआर/]स्टेजएन/, जहां N एक संख्या है
0 से 9 की सीमा में, फिर इसे बदल दिया जाएगा [डीआईआर/]शामिल करें. यह मदद करने के लिए है
कंपाइलर को बूट-स्ट्रैपिंग।

- चश्मा =पट्टिका
प्रक्रिया पट्टिका संकलक मानक में पढ़ने के बाद ऐनक फ़ाइल, ओवरराइड करने के लिए
चूक जो जीसीसी ड्राइवर प्रोग्राम का उपयोग यह निर्धारित करते समय करता है कि कौन सा स्विच पास करना है
सेवा मेरे cc1, सीसी1प्लस, as, ld, आदि। एक से अधिक - चश्मा =पट्टिका पर निर्दिष्ट किया जा सकता है
कमांड लाइन, और उन्हें बाएं से दाएं क्रम में संसाधित किया जाता है।

--सिसरूट=दीर
उपयोग दीर हेडर और लाइब्रेरी के लिए लॉजिकल रूट डायरेक्टरी के रूप में। उदाहरण के लिए, यदि
कंपाइलर आमतौर पर हेडर की खोज करेगा / usr / शामिल हैं और पुस्तकालयों में / Usr / lib,
इसके बजाय यह खोज करेगा डीआईआर/यूएसआर/शामिल और डीआईआर/यूएसआर/lib.

यदि आप इस विकल्प और दोनों का उपयोग करते हैं -इसिसरूट विकल्प, फिर --सिसरूट विकल्प होगा
पुस्तकालयों पर लागू होता है, लेकिन -इसिसरूट विकल्प हेडर फाइलों पर लागू होगा।

GNU लिंकर (संस्करण 2.16 से आरंभ) के पास इसके लिए आवश्यक समर्थन है
विकल्प। यदि आपका लिंकर इस विकल्प का समर्थन नहीं करता है, तो हेडर फ़ाइल पहलू
--सिसरूट अभी भी काम करेगा, लेकिन पुस्तकालय पहलू नहीं होगा।

-मैं- यह विकल्प बहिष्कृत कर दिया गया है। इस्तेमाल करें -मैं उद्धृत करता हूं इसके स्थान पर -I निर्देशिका पहले
la -मैं- और हटा दें -मैं-. आपके द्वारा निर्दिष्ट कोई भी निर्देशिका -I से पहले विकल्प
-मैं- विकल्प केवल के मामले के लिए खोजा जाता है # शामिल "पट्टिका"; उनकी तलाशी नहीं ली जाती
एसटी # शामिल <पट्टिका>.

यदि अतिरिक्त निर्देशिकाओं के साथ निर्दिष्ट किया गया है -I के बाद विकल्प -मैं-, इन
निर्देशिका सभी के लिए खोजी जाती हैं # शामिल निर्देश। (आमतौर पर सब -I निर्देशिकाओं
इस तरह उपयोग किया जाता है।)

इसके अलावा, -मैं- विकल्प वर्तमान निर्देशिका के उपयोग को रोकता है (जहां
वर्तमान इनपुट फ़ाइल से आई) के लिए पहली खोज निर्देशिका के रूप में # शामिल "पट्टिका".
के इस प्रभाव को ओवरराइड करने का कोई तरीका नहीं है -मैं-. साथ -मैं। आप खोज निर्दिष्ट कर सकते हैं
वह निर्देशिका जो संकलक के लागू होने पर चालू थी। यह बिल्कुल नहीं है
जैसा कि प्रीप्रोसेसर डिफ़ॉल्ट रूप से करता है, लेकिन यह अक्सर संतोषजनक होता है।

-मैं- हेडर फ़ाइलों के लिए मानक सिस्टम निर्देशिकाओं के उपयोग को रोकता नहीं है।
इस प्रकार, -मैं- और -नोस्टडिंक स्वतंत्र हैं।

निर्दिष्ट करना लक्ष्य मशीन और संकलक संस्करण
जीसीसी चलाने का सामान्य तरीका निष्पादन योग्य को चलाना है जिसे कहा जाता है जीसीसीया, मशीन-जीसीसी जब क्रॉस-
संकलन, या मशीन-जीसीसी-संस्करण स्थापित किए गए संस्करण के अलावा किसी अन्य संस्करण को चलाने के लिए
पिछले।

हार्डवेयर मॉडल और विन्यास
प्रत्येक लक्ष्य मशीन प्रकार के अपने विशेष विकल्प हो सकते हैं, जिसकी शुरुआत -m, चुनने के लिए
विभिन्न हार्डवेयर मॉडल या कॉन्फ़िगरेशन के बीच --- उदाहरण के लिए, 68010 बनाम 68020, फ्लोटिंग
सहसंसाधक या कोई नहीं। कंपाइलर का एक एकल स्थापित संस्करण किसी भी मॉडल के लिए संकलित कर सकता है
या विन्यास, निर्दिष्ट विकल्पों के अनुसार।

कंपाइलर के कुछ कॉन्फ़िगरेशन अतिरिक्त विशेष विकल्पों का भी समर्थन करते हैं, आमतौर पर
एक ही मंच पर अन्य संकलक के साथ संगतता।

अदपतेवा घोषणा ऑप्शंस

इन -m एडेप्टेवा एपिफेनी के लिए विकल्पों को परिभाषित किया गया है:

-एमहाफ-रेग-फाइल
"r32"..."r63" श्रेणी में कोई भी रजिस्टर आवंटित न करें। यह कोड को चालू रखने की अनुमति देता है
हार्डवेयर वेरिएंट जिनमें इन रजिस्टरों की कमी है।

-मपसंद-लघु-इन्स-regs
अधिमानतः रजिस्टरों को आवंटित करें जो लघु निर्देश पीढ़ी की अनुमति देते हैं। यह हो सकता है
बढ़ी हुई निर्देश संख्या में परिणाम, इसलिए यदि यह कोड आकार को कम या बढ़ाता है
मामला दर मामला भिन्न हो सकता है।

- शाखा-लागत =संख्या
शाखाओं की लागत मोटे तौर पर सेट करें संख्या "सरल" निर्देश। यह लागत केवल एक है
अनुमानी और सभी रिलीज में लगातार परिणाम देने की गारंटी नहीं है।

-एमसीमूव
सशर्त चालों की पीढ़ी को सक्षम करें।

-मनोप्स=संख्या
फेंकना संख्या हर दूसरे उत्पन्न निर्देश से पहले nops।

-मनो-सॉफ्ट-सीएमपीएसएफ
एकल-सटीक फ़्लोटिंग-पॉइंट तुलना के लिए, एक fsub निर्देश उत्सर्जित करें और परीक्षण करें
झंडे यह एक सॉफ़्टवेयर तुलना से तेज़ है, लेकिन इसमें गलत परिणाम मिल सकते हैं
NaN की उपस्थिति, या जब दो अलग-अलग छोटी संख्याओं की तुलना इस प्रकार की जाती है कि उनका
अंतर की गणना शून्य के रूप में की जाती है। डिफ़ॉल्ट है -एमसॉफ्ट-सीएमपीएसएफ, जो धीमे का उपयोग करता है, लेकिन
आईईईई-अनुपालन, सॉफ्टवेयर तुलना।

-मस्टैक-ऑफ़सेट=संख्या
स्टैक के शीर्ष और स्टैक पॉइंटर के बीच ऑफ़सेट सेट करें। जैसे, 8 . का मान
इसका मतलब है कि सीमा में आठ बाइट्स sp+0...sp+7 लीफ फ़ंक्शंस द्वारा उपयोग किया जा सकता है
ढेर आवंटन के बिना। के अलावा अन्य मान 8 or 16 परीक्षण नहीं किए गए हैं और संभावना नहीं है
काम। यह भी ध्यान दें कि यह विकल्प एबीआई को बदलता है, एक प्रोग्राम को संकलित करता है a
पुस्तकालयों की तुलना में अलग-अलग स्टैक ऑफ़सेट को संकलित किया गया है, आमतौर पर नहीं होगा
काम। यह विकल्प उपयोगी हो सकता है यदि आप मूल्यांकन करना चाहते हैं कि क्या कोई अलग स्टैक ऑफ़सेट है
आपको बेहतर कोड देगा, लेकिन वास्तव में निर्माण के लिए एक अलग स्टैक ऑफ़सेट का उपयोग करने के लिए
काम कर रहे कार्यक्रम, टूलचैन को उपयुक्त के साथ कॉन्फ़िगर करने की अनुशंसा की जाती है
--साथ-स्टैक-ऑफ़सेट=संख्या विकल्प.

-मनो-राउंड-निकटतम
शेड्यूलर को यह मान लें कि राउंडिंग मोड को छोटा करने के लिए सेट किया गया है। NS
डिफ़ॉल्ट है -माउंड-निकटतम.

-मलॉन्ग-कॉल
यदि किसी विशेषता द्वारा अन्यथा निर्दिष्ट नहीं किया गया है, तो मान लें कि सभी कॉल्स से परे हो सकते हैं
बी / बीएल निर्देशों की ऑफसेट रेंज, और इसलिए फ़ंक्शन पते को लोड करें
(अन्यथा प्रत्यक्ष) कॉल करने से पहले एक रजिस्टर। यह डिफ़ॉल्ट है।

-एमशॉर्ट-कॉल
यदि किसी विशेषता द्वारा अन्यथा निर्दिष्ट नहीं किया गया है, तो मान लें कि सभी प्रत्यक्ष कॉल सीमा में हैं
b / bl निर्देशों का, इसलिए सीधे कॉल के लिए इन निर्देशों का उपयोग करें। डिफ़ॉल्ट
is -मलॉन्ग-कॉल.

-एमएसस्मॉल16
मान लें कि पते को 16-बिट अहस्ताक्षरित मानों के रूप में लोड किया जा सकता है। यह पर लागू नहीं होता है
समारोह के पते जिसके लिए -मलॉन्ग-कॉल शब्दार्थ प्रभाव में हैं।

-एमएफपी-मोड =मोड
फ्लोटिंग-पॉइंट यूनिट के प्रचलित मोड को सेट करें। यह तैरता निर्धारित करता है-
बिंदु मोड जो प्रदान किया जाता है और फ़ंक्शन कॉल और वापसी समय पर अपेक्षित होता है। निर्माण
यह मोड उस मोड से मेल खाता है जिसकी आपको मुख्य रूप से फंक्शन स्टार्ट पर जरूरत होती है, जिससे आप अपना
अनावश्यक मोड स्विच से बचकर छोटे और तेज़ प्रोग्राम।

मोड निम्नलिखित मानों में से एक पर सेट किया जा सकता है:

फोन करने वाले
फ़ंक्शन प्रविष्टि पर कोई भी मोड मान्य है, और फ़ंक्शन के दौरान बनाए रखा या पुनर्स्थापित किया जाता है
रिटर्न, और जब यह अन्य कार्यों को कॉल करता है। यह विधा संकलन के लिए उपयोगी है
पुस्तकालय या अन्य संकलन इकाइयाँ जिन्हें आप अलग-अलग में शामिल करना चाहते हैं
विभिन्न प्रचलित एफपीयू मोड वाले कार्यक्रम, और सक्षम होने की सुविधा
किसी एक ऑब्जेक्ट फ़ाइल का उपयोग किसी भी अतिरिक्त मोड के लिए आकार और गति ओवरहेड से अधिक है
स्विचिंग की आवश्यकता हो सकती है, जिसकी तुलना में अधिक की आवश्यकता होगी
प्रचलित एफपीयू मोड की विशिष्ट पसंद।

काट-छांट
यह फ़्लोटिंग-पॉइंट गणनाओं के लिए ट्रंकिंग (यानी राउंड .) के साथ उपयोग की जाने वाली विधा है
शून्य की ओर) गोलाई मोड। इसमें फ़्लोटिंग पॉइंट से रूपांतरण शामिल है
पूर्णांक।

गोल-निकटतम
यह फ्लोटिंग-पॉइंट गणनाओं के लिए राउंड-टू-निकटतम-या- के साथ उपयोग की जाने वाली विधा है
यहां तक ​​कि गोलाई मोड।

int यह एफपीयू में पूर्णांक गणना करने के लिए उपयोग की जाने वाली विधा है, उदाहरण के लिए पूर्णांक
गुणा करें, या पूर्णांक गुणा करें और जमा करें।

डिफ़ॉल्ट है -एमएफपी-मोड = कॉलर

-मनोस्प्लिट-लोही
-मनो-पोस्टिनसी
-एमनो-पोस्टमोडिफाई
कोड जनरेशन ट्वीक करता है जो क्रमशः 32-बिट लोड के विभाजन को अक्षम करता है,
पोस्ट-इंक्रीमेंट पतों की पीढ़ी, और पोस्ट-संशोधित पतों की पीढ़ी। NS
चूक हैं मस्प्लिट-लोही, -एमपोस्ट-इंक, तथा -mpost-संशोधित.

-मनोवेक्ट-डबल
पसंदीदा सिम मोड को सिमोड में बदलें। डिफ़ॉल्ट है -mvect-डबल, जो उपयोग करता है
DImode पसंदीदा SIMD मोड के रूप में।

-मैक्स-वेक्ट-संरेखण =संख्या
SIMD वेक्टर मोड प्रकारों के लिए अधिकतम संरेखण। संख्या 4 या 8 हो सकता है। डिफ़ॉल्ट है
8. ध्यान दें कि यह एक एबीआई परिवर्तन है, भले ही कई पुस्तकालय फ़ंक्शन इंटरफेस करेंगे
अप्रभावित रहें, यदि वे उन जगहों पर SIMD वेक्टर मोड का उपयोग नहीं करते हैं जहां वे आकार को प्रभावित करते हैं
और/या प्रासंगिक प्रकारों का संरेखण।

-msplit-vecmove-जल्दी
स्प्लिट वेक्टर पुनः लोड करने से पहले सिंगल वर्ड मूव्स में चला जाता है। सिद्धांत रूप में यह दे सकता है
बेहतर रजिस्टर आवंटन, लेकिन अभी तक आम तौर पर उल्टा ही लगता है।

-एम1रेग-REG
स्थिर -1 रखने के लिए एक रजिस्टर निर्दिष्ट करें, जो लोडिंग को छोटा नकारात्मक बनाता है
स्थिरांक और कुछ बिटमास्क तेजी से। reg के लिए स्वीकार्य मान r43 और r63 हैं,
जो उस रजिस्टर को एक निश्चित रजिस्टर के रूप में उपयोग करने के लिए निर्दिष्ट करता है, और कोई नहीं, जिसका अर्थ है कि नहीं
इस उद्देश्य के लिए रजिस्टर का उपयोग किया जाता है। डिफ़ॉल्ट है -m1reg-कोई नहीं.

AAArch64 ऑप्शंस

इन विकल्पों को AArch64 कार्यान्वयन के लिए परिभाषित किया गया है:

-मबिग-एंडियन
बिग-एंडियन कोड जेनरेट करें। यह डिफ़ॉल्ट है जब जीसीसी को किसी के लिए कॉन्फ़िगर किया गया है
aarch64_be-*-* लक्ष्य।

-जनरल-regs-only
कोड उत्पन्न करें जो केवल सामान्य रजिस्टरों का उपयोग करता है।

-थोड़ा-एंडियन
लिटिल-एंडियन कोड जेनरेट करें। यह डिफ़ॉल्ट है जब जीसीसी को किसी के लिए कॉन्फ़िगर किया गया है
अर्च64-*-* लेकिन नहीं aarch64_be-*-* लक्ष्य।

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जेनरेट करें। कार्यक्रम और इसके सांख्यिकीय रूप से परिभाषित प्रतीक
एक दूसरे के 1GB के भीतर होना चाहिए। पॉइंटर्स 64 बिट हैं। कार्यक्रम स्थिर हो सकते हैं
या गतिशील रूप से जुड़ा हुआ है। यह मॉडल पूरी तरह से लागू नहीं किया गया है और इसे ज्यादातर के रूप में माना जाता है
"छोटा"।

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जनरेट करें। कार्यक्रम और इसकी सांख्यिकीय रूप से परिभाषित
प्रतीक एक दूसरे के 4GB के भीतर होने चाहिए। पॉइंटर्स 64 बिट हैं। कार्यक्रम हो सकते हैं
स्थिर या गतिशील रूप से जुड़ा हुआ। यह डिफ़ॉल्ट कोड मॉडल है।

-एमसीमॉडल = बड़ा
बड़े कोड मॉडल के लिए कोड जनरेट करें। यह पते के बारे में कोई धारणा नहीं बनाता है और
वर्गों के आकार। पॉइंटर्स 64 बिट हैं। प्रोग्राम को केवल स्टैटिकली लिंक किया जा सकता है।

-मस्ट्रिक्ट-संरेखण
यह न मानें कि असंरेखित स्मृति संदर्भों को सिस्टम द्वारा नियंत्रित किया जाएगा।

-मोमित-पत्ती-फ्रेम-सूचक
-मनो-ओमिट-लीफ-फ्रेम-पॉइंटर
फ़्रेम पॉइंटर को लीफ फ़ंक्शंस में छोड़ दें या रखें। पूर्व व्यवहार है
चूक।

-mtls-बोली=desc
टीएलएस की गतिशील पहुंच के लिए थ्रेड-लोकल स्टोरेज मैकेनिज्म के रूप में टीएलएस डिस्क्रिप्टर का उपयोग करें
चर। यह डिफ़ॉल्ट है।

-एमटीएलएस-बोली=पारंपरिक
टीएलएस की गतिशील पहुंच के लिए पारंपरिक टीएलएस का उपयोग थ्रेड-लोकल स्टोरेज मैकेनिज्म के रूप में करें
चर।

-मार्च=नाम
लक्ष्य आर्किटेक्चर का नाम निर्दिष्ट करें, वैकल्पिक रूप से एक या अधिक द्वारा प्रत्ययित
सुविधा संशोधक। इस विकल्प का रूप है -मार्च=मेहराब{+[नहीं]सुविधा}*, जहां
के लिए केवल मूल्य मेहराब is ARMv8-ए. के लिए संभावित मान सुविधा में प्रलेखित हैं
नीचे उपखंड।

जहां परस्पर विरोधी फीचर संशोधक निर्दिष्ट किए जाते हैं, वहां सबसे सही फीचर का उपयोग किया जाता है।

GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है कि जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है
विधानसभा कोड। इस विकल्प का उपयोग के साथ या इसके बजाय संयोजन के रूप में किया जा सकता है -एमसीपीयू =
विकल्प.

-एमसीपीयू =नाम
लक्ष्य प्रोसेसर का नाम निर्दिष्ट करें, वैकल्पिक रूप से एक या अधिक सुविधाओं द्वारा प्रत्ययित
संशोधक इस विकल्प का रूप है -एमसीपीयू =सीपीयू{+[नहीं]सुविधा}*, जहां संभव हो
के लिए मूल्य सीपीयू रहे सामान्य, बड़ा. के लिए संभावित मान सुविधा में प्रलेखित हैं
नीचे उपखंड।

जहां परस्पर विरोधी फीचर संशोधक निर्दिष्ट किए जाते हैं, वहां सबसे सही फीचर का उपयोग किया जाता है।

GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है कि जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है
विधानसभा कोड।

-मट्यून =नाम
प्रदर्शन को ट्यून करने के लिए प्रोसेसर का नाम निर्दिष्ट करें। कोड ट्यून किया जाएगा
जैसे कि लक्ष्य प्रोसेसर इस विकल्प में निर्दिष्ट प्रकार के थे, लेकिन फिर भी उपयोग कर रहे थे
a . द्वारा निर्दिष्ट लक्ष्य प्रोसेसर के साथ संगत निर्देश -एमसीपीयू = विकल्प। यह
सुविधा संशोधक द्वारा विकल्प को प्रत्यय नहीं किया जा सकता है।

मार्च और -एमसीपीयू सुविधा संशोधक

फ़ीचर संशोधक के साथ प्रयोग किया जाता है मार्च और -एमसीपीयू निम्नलिखित में से एक हो सकता है:

क्रिप्टो
क्रिप्टो एक्सटेंशन सक्षम करें। इसका मतलब है कि उन्नत सिम सक्षम है।

fp फ़्लोटिंग-पॉइंट निर्देश सक्षम करें।

सिमडो
उन्नत SIMD निर्देश सक्षम करें। इसका तात्पर्य फ़्लोटिंग-पॉइंट निर्देश हैं
सक्षम। विकल्पों के लिए सभी मौजूदा संभावित मानों के लिए यह डिफ़ॉल्ट है मार्च और
-एमसीपीयू =.

एआरएम ऑप्शंस

इन -m उन्नत आरआईएससी मशीन (एआरएम) आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-माबी=नाम
निर्दिष्ट ABI के लिए कोड जनरेट करें। अनुमेय मान हैं: एपीसीएस-ग्नू, एटीपीसी, एएपीसी,
एएपीसी-लिनक्स और आईडब्ल्यूएमएमएक्सटी.

-मैप्स-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो सभी के लिए एआरएम प्रक्रिया कॉल मानक के अनुरूप हो
कार्य, भले ही यह कोड के सही निष्पादन के लिए कड़ाई से आवश्यक न हो।
निर्दिष्ट करना -फोमिट-फ्रेम-पॉइंटर इस विकल्प के कारण स्टैक फ़्रेम नहीं होंगे
पत्ती कार्यों के लिए उत्पन्न। डिफ़ॉल्ट है -एमनो-एपीसीएस-फ्रेम.

-मैप्स
यह का समानार्थी है -मैप्स-फ्रेम.

-मथंब-इंटरवर्क
एआरएम और थंब निर्देश सेट के बीच कॉलिंग का समर्थन करने वाला कोड जेनरेट करें।
इस विकल्प के बिना, पूर्व-v5 आर्किटेक्चर पर, दो निर्देश सेट नहीं हो सकते हैं
विश्वसनीय रूप से एक कार्यक्रम के अंदर उपयोग किया जाता है। डिफ़ॉल्ट है -मनो-अंगूठे-इंटरवर्क, के बाद से थोड़ा
बड़ा कोड तब उत्पन्न होता है जब -मथंब-इंटरवर्क निर्दिष्ट किया जाता है। एएपीसीएस विन्यास में
यह विकल्प अर्थहीन है।

-मनो-अनुसूचित-प्रस्तावना
फ़ंक्शन प्रस्तावना में निर्देशों के पुनर्क्रमण को रोकें, या के विलय को रोकें
फ़ंक्शन के शरीर में निर्देशों के साथ वे निर्देश। इसका मतलब है कि सभी
कार्य निर्देशों के एक पहचानने योग्य सेट के साथ शुरू होंगे (या वास्तव में a . में से एक)
विभिन्न फ़ंक्शन प्रस्तावनाओं के एक छोटे से सेट से चुनाव), और यह जानकारी हो सकती है
कोड के निष्पादन योग्य टुकड़े के अंदर कार्य करता है तो प्रारंभ का पता लगाने के लिए उपयोग किया जाता है। डिफ़ॉल्ट
is -मशेड-प्रोलॉग.

-मफ्लोट-अबी =नाम
निर्दिष्ट करता है कि किस फ़्लोटिंग-पॉइंट ABI का उपयोग करना है। अनुमेय मान हैं: नरम, सॉफ्टएफपी और
कठिन.

निर्दिष्ट करना नरम जीसीसी को फ्लोटिंग के लिए लाइब्रेरी कॉल युक्त आउटपुट उत्पन्न करने का कारण बनता है-
बिंदु संचालन। सॉफ्टएफपी हार्डवेयर फ़्लोटिंग-पॉइंट का उपयोग करके कोड उत्पन्न करने की अनुमति देता है
निर्देश, लेकिन फिर भी सॉफ्ट-फ्लोट कॉलिंग सम्मेलनों का उपयोग करता है। कठिन की अनुमति देता है
फ़्लोटिंग-पॉइंट निर्देशों की पीढ़ी और एफपीयू-विशिष्ट कॉलिंग सम्मेलनों का उपयोग करता है।

डिफ़ॉल्ट विशिष्ट लक्ष्य कॉन्फ़िगरेशन पर निर्भर करता है। ध्यान दें कि हार्ड-फ्लोट
और सॉफ्ट-फ्लोट एबीआई लिंक-संगत नहीं हैं; आपको अपने पूरे कार्यक्रम को संकलित करना होगा
एक ही एबीआई, और पुस्तकालयों के एक संगत सेट के साथ लिंक।

-थोड़ा-एंडियन
लिटिल-एंडियन मोड में चल रहे प्रोसेसर के लिए कोड जेनरेट करें। यह इसके लिए डिफ़ॉल्ट है
सभी मानक विन्यास।

-मबिग-एंडियन
बिग-एंडियन मोड में चल रहे प्रोसेसर के लिए कोड जेनरेट करें; डिफ़ॉल्ट संकलित करना है
थोड़ा-एंडियन प्रोसेसर के लिए कोड।

-मॉर्ड्स-लिटिल-एंडियन
यह विकल्प केवल बड़े-एंडियन प्रोसेसर के लिए कोड जनरेट करते समय लागू होता है। उत्पन्न
एक छोटे-एंडियन शब्द क्रम के लिए कोड लेकिन एक बड़ा-एंडियन बाइट ऑर्डर। यानी एक बाइट
फॉर्म का क्रम 32107654. नोट: इस विकल्प का उपयोग केवल तभी किया जाना चाहिए जब आपको आवश्यकता हो
के संस्करणों द्वारा उत्पन्न बड़े-एंडियन एआरएम प्रोसेसर के लिए कोड के साथ संगतता
2.8 से पहले कंपाइलर। यह विकल्प अब बहिष्कृत कर दिया गया है।

-मार्च=नाम
यह लक्ष्य एआरएम आर्किटेक्चर का नाम निर्दिष्ट करता है। जीसीसी इस नाम का उपयोग करता है
यह निर्धारित करें कि असेंबली कोड जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है। इस
विकल्प के साथ या के बजाय संयोजन के रूप में इस्तेमाल किया जा सकता है -एमसीपीयू = विकल्प। जायज़
नाम है: आर्मव2, arv2a, आर्मव3, एआरएमवी3एम, आर्मव4, Armv4t, आर्मव5, Armv5t, एआरएमवी5ई,
Armv5te, आर्मव6, एआरएमवी6जे, एआरएमवी6टी2, arv6z, Armv6zk, armv6-एम, आर्मव7, ARMv7-ए, ARMv7-आर,
armv7-एम, armv7e-एम, आईडब्ल्यूएमएमएक्सटी, iwmmxt2, ep9312.

-मार्च = देशी कंपाइलर को बिल्ड की वास्तुकला का स्वतः पता लगाने का कारण बनता है
संगणक। वर्तमान में, यह सुविधा केवल Linux पर समर्थित है, और सभी पर नहीं
स्थापत्य की मान्यता है। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प में नहीं है
प्रभाव।

-मट्यून =नाम
यह विकल्प लक्ष्य एआरएम प्रोसेसर का नाम निर्दिष्ट करता है जिसके लिए जीसीसी को ट्यून करना चाहिए
कोड का प्रदर्शन। कुछ एआरएम कार्यान्वयन के लिए बेहतर प्रदर्शन हो सकता है
इस विकल्प का उपयोग करके प्राप्त किया। अनुमत नाम हैं: arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, हाथ7m, आर्म7डी, आर्म7डीएम, आर्म7डी, आर्म7डीएमआई, arm70,
arm700, आर्म700i, arm710, आर्म710सी, arm7100, arm720, arm7500, आर्म7500fe, एआरएम7टीडीएमआई,
ARM7TDMI-एस, आर्म710टी, आर्म720टी, आर्म740टी, मजबूत बांह, स्ट्रांगआर्म110, स्ट्रांगआर्म1100,
स्ट्रांगआर्म1110, arm8, arm810, arm9, आर्म9ई, arm920, आर्म920टी, आर्म922टी, ARM946E-एस,
ARM966E-एस, ARM968E-एस, arm926ej-एस, आर्म940टी, एआरएम9टीडीएमआई, एआरएम10टीडीएमआई, आर्म1020टी, arm1026ej-एस,
आर्म10ई, आर्म1020ई, आर्म1022ई, ARM1136J-एस, arm1136jf-एस, एमपीकोर, mpcorenovfp, arm1156t2-एस,
arm1156t2f-एस, arm1176jz-एस, ARM1176JZF-एस, कॉर्टेक्स- A5, कॉर्टेक्स- A7, कॉर्टेक्स- A8, कॉर्टेक्स- A9,
कॉर्टेक्स- A15, कॉर्टेक्स- R4, कोर्टेक्स-r4f, कॉर्टेक्स- R5, कॉर्टेक्स- एम 4, कॉर्टेक्स- एम 3, कॉर्टेक्स- एम 1,
कॉर्टेक्स- एम 0, X स्केल, आईडब्ल्यूएमएमएक्सटी, iwmmxt2, ep9312, fa526, fa626, fa606te, fa626te, एफएमपी626,
fa726te.

-मट्यून = सामान्य-मेहराब निर्दिष्ट करता है कि GCC को के मिश्रण के लिए प्रदर्शन को ट्यून करना चाहिए
आर्किटेक्चर के भीतर प्रोसेसर मेहराब. उद्देश्य कोड उत्पन्न करना है जो अच्छी तरह से चलता है
वर्तमान सबसे लोकप्रिय प्रोसेसर, कुछ को लाभ पहुंचाने वाले अनुकूलन के बीच संतुलन
सीपीयू सीमा में हैं, और अन्य सीपीयू के प्रदर्शन के नुकसान से बचते हैं। इसके प्रभाव
यह विकल्प भविष्य के जीसीसी संस्करणों में बदल सकता है क्योंकि सीपीयू मॉडल आते हैं और जाते हैं।

-मट्यून = देशी कंपाइलर को बिल्ड कंप्यूटर के सीपीयू को ऑटो-डिटेक्ट करने का कारण बनता है। पर
वर्तमान में, यह सुविधा केवल Linux पर समर्थित है, और सभी आर्किटेक्चर नहीं हैं
मान्यता प्राप्त। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प का कोई प्रभाव नहीं पड़ता है।

-एमसीपीयू =नाम
यह लक्ष्य एआरएम प्रोसेसर का नाम निर्दिष्ट करता है। GCC इस नाम का उपयोग को प्राप्त करने के लिए करता है
लक्ष्य एआरएम आर्किटेक्चर का नाम (जैसे कि द्वारा निर्दिष्ट किया गया है मार्च) और एआरएम प्रोसेसर
प्रकार जिसके लिए प्रदर्शन के लिए ट्यून करना है (जैसे कि द्वारा निर्दिष्ट किया गया है -मट्यून) जहां यह विकल्प
के साथ संयोजन के रूप में उपयोग किया जाता है मार्च or -मट्यून, उन विकल्पों को वरीयता दी जाती है
इस विकल्प का उपयुक्त भाग।

इस विकल्प के लिए अनुमत नाम वही हैं जो इसके लिए हैं -मट्यून.

-एमसीपीयू = सामान्य-मेहराब अनुमेय भी है, और के बराबर है -मार्च=मेहराब
-मट्यून = सामान्य-मेहराब. देखना -मट्यून देखें।

-एमसीपीयू = देशी कंपाइलर को बिल्ड कंप्यूटर के सीपीयू को ऑटो-डिटेक्ट करने का कारण बनता है। पर
वर्तमान में, यह सुविधा केवल Linux पर समर्थित है, और सभी आर्किटेक्चर नहीं हैं
मान्यता प्राप्त। यदि ऑटो-डिटेक्ट असफल होता है तो विकल्प का कोई प्रभाव नहीं पड़ता है।

-एमएफपीयू=नाम
-एमएफपीई=संख्या
-एमएफपी =संख्या
यह निर्दिष्ट करता है कि कौन सा फ़्लोटिंग-पॉइंट हार्डवेयर (या हार्डवेयर इम्यूलेशन) उपलब्ध है
लक्ष्य। अनुमत नाम हैं: एफपीए, fpe2, fpe3, आवारा, वीएफपी, वीएफपीवी3, vfpv3-fp16,
वीएफपीवी3-डी16, vfpv3-d16-fp16, vfpv3xd, vfpv3xd-fp16, नीयन, नियॉन-एफपी16, वीएफपीवी4, वीएफपीवी4-डी16,
एफपीवी4-एसपी-डी16 और नियॉन-वीएफपीवी4. -एमएफपी और -एमएफपीई के पर्यायवाची हैं -एमएफपीयू=एफपीईसंख्याके लिए,
जीसीसी के पुराने संस्करणों के साथ संगतता।

If -एमसॉफ्ट-फ्लोट निर्दिष्ट है यह फ़्लोटिंग-पॉइंट मानों के प्रारूप को निर्दिष्ट करता है।

यदि चयनित फ़्लोटिंग-पॉइंट हार्डवेयर में नीयन एक्सटेंशन शामिल है (उदा -एमएफपीयू=नीयन),
ध्यान दें कि जीसीसी के ऑटो-वेक्टराइजेशन पास द्वारा फ्लोटिंग-पॉइंट ऑपरेशंस का उपयोग नहीं किया जाएगा
जब तक -फनसेफ-गणित-अनुकूलन भी निर्दिष्ट है। ऐसा इसलिए है क्योंकि नीयन हार्डवेयर
फ्लोटिंग-पॉइंट अंकगणित के लिए IEEE 754 मानक को पूरी तरह से लागू नहीं करता है (in .)
विशेष असामान्य मूल्यों को शून्य माना जाता है), इसलिए नीयन निर्देशों का उपयोग हो सकता है
सटीकता के नुकसान का कारण बनता है।

-एमएफपी16-प्रारूप =नाम
"__fp16" अर्ध-सटीक फ़्लोटिंग-पॉइंट प्रकार का प्रारूप निर्दिष्ट करें। जायज़
नाम है कोई नहीं, आईईईई, तथा वैकल्पिक; डिफ़ॉल्ट है कोई नहीं, जिस स्थिति में "__fp16"
प्रकार परिभाषित नहीं है।

-एमस्ट्रक्चर-आकार-सीमा =n
सभी संरचनाओं और यूनियनों का आकार संख्या के गुणज तक पूर्णांकित किया जाएगा
इस विकल्प द्वारा निर्धारित बिट्स की। अनुमेय मान 8, 32 और 64 हैं। डिफ़ॉल्ट मान
विभिन्न टूलचेन के लिए भिन्न होता है। सीओएफएफ लक्षित टूलचेन के लिए डिफ़ॉल्ट मान है
8. 64 के मान की अनुमति केवल तभी दी जाती है जब अंतर्निहित एबीआई इसका समर्थन करता है।

बड़ी संख्या निर्दिष्ट करना तेज़, अधिक कुशल कोड उत्पन्न कर सकता है, लेकिन यह भी कर सकता है
कार्यक्रम का आकार बढ़ाएं। विभिन्न मान संभावित रूप से असंगत हैं।
एक मान के साथ संकलित कोड आवश्यक रूप से कोड या पुस्तकालयों के साथ काम करने की अपेक्षा नहीं कर सकता
दूसरे मूल्य के साथ संकलित, यदि वे संरचनाओं या यूनियनों का उपयोग करके सूचनाओं का आदान-प्रदान करते हैं।

-मबॉर्ट-ऑन-नोरटर्न
"नोरटर्न" फ़ंक्शन के अंत में "निरस्त" फ़ंक्शन के लिए एक कॉल उत्पन्न करें। यह
यदि फ़ंक्शन वापस लौटने का प्रयास करता है तो निष्पादित किया जाना चाहिए।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
कंपाइलर को पहले का पता लोड करके फंक्शन कॉल करने के लिए कहता है
एक रजिस्टर में कार्य करना और फिर इस रजिस्टर पर एक सबरूटीन कॉल करना। इस
यदि लक्ष्य फ़ंक्शन 64 मेगाबाइट एड्रेसिंग के बाहर होगा तो स्विच की आवश्यकता होगी
सबरूटीन कॉल निर्देश के ऑफ़सेट आधारित संस्करण की श्रेणी।

भले ही यह स्विच सक्षम हो, सभी फ़ंक्शन कॉल लंबी कॉल में नहीं बदली जाएंगी।
अनुमानी यह है कि स्थिर कार्य, ऐसे कार्य जिनमें शॉर्ट-कॉल विशेषता,
कार्य जो a . के दायरे में हैं #प्रैग्मा कोई लंबी कॉल नहीं निर्देश और कार्य
जिनकी परिभाषाएँ वर्तमान संकलन इकाई में पहले ही संकलित की जा चुकी हैं,
लंबी कॉलों में न बदलें। इस नियम का अपवाद यह है कि कमजोर कार्य
परिभाषाएँ, कार्यों के साथ लंबी कॉल विशेषता या अनुभाग विशेषता, और
कार्य जो a . के दायरे में हैं #प्रैग्मा लांग_कॉल निर्देश, हमेशा रहेगा
लंबी कॉलों में बदल गया।

यह सुविधा डिफ़ॉल्ट रूप से सक्षम नहीं है। निर्दिष्ट करना -मनो-लॉन्ग-कॉल पुनर्स्थापित करेगा
डिफ़ॉल्ट व्यवहार, जैसा कि फ़ंक्शन कॉल को a . के दायरे में रखेगा #प्रैग्मा
लंबी_कॉल_बंद निर्देश। ध्यान दें कि इन स्विचों का संकलक पर कोई प्रभाव नहीं पड़ता है
फ़ंक्शन पॉइंटर्स के माध्यम से फ़ंक्शन कॉल को संभालने के लिए कोड उत्पन्न करता है।

-एकल-तस्वीर-आधार
पीआईसी एड्रेसिंग के लिए उपयोग किए गए रजिस्टर को केवल पढ़ने के लिए समझें, बजाय इसे लोड करने के
प्रत्येक समारोह के लिए प्रस्तावना। इसे प्रारंभ करने के लिए रनटाइम सिस्टम जिम्मेदार है
निष्पादन शुरू होने से पहले उचित मूल्य के साथ पंजीकरण करें।

-एमपीआईसी-रजिस्टर=REG
PIC एड्रेसिंग के लिए उपयोग किए जाने वाले रजिस्टर को निर्दिष्ट करें। डिफ़ॉल्ट R10 है जब तक कि स्टैक-
जाँच सक्षम है, जब R9 का उपयोग किया जाता है।

-मसीरस-फिक्स-अमान्य-इंसंस
समस्याओं के समाधान के लिए निर्देश स्ट्रीम में एनओपी डालें
अमान्य आवारा निर्देश संयोजन। यह विकल्प तभी मान्य है जब
-एमसीपीयू = ईपी9312 विकल्प का उपयोग सिरस के लिए निर्देशों के निर्माण को सक्षम करने के लिए किया गया है
मावेरिक फ्लोटिंग-पॉइंट को-प्रोसेसर। यह विकल्प डिफ़ॉल्ट रूप से सक्षम नहीं है, क्योंकि
समस्या केवल पुराने मावेरिक कार्यान्वयन में मौजूद है। डिफ़ॉल्ट फिर से हो सकता है-
के उपयोग से सक्षम -मनो-सिरस-फिक्स-अमान्य-इंसंस स्विच.

-मपोक-फ़ंक्शन-नाम
टेक्स्ट सेक्शन में प्रत्येक फंक्शन का नाम सीधे फंक्शन से पहले लिखें
प्रस्ताव। उत्पन्न कोड इस के समान है:

t0
.ascii "arm_poke_function_name", 0
संरेखित करें
t1
.वर्ड 0xff000000 + (t1 - t0)
आर्म_पोक_फ़ंक्शन_नाम
मूव आईपी, स्पा
stmfd एसपी!, {एफपी, आईपी, एलआर, पीसी}
उप एफपी, आईपी, #4

स्टैक बैकट्रेस करते समय, कोड "fp + ." पर संग्रहीत "पीसी" के मान का निरीक्षण कर सकता है
0"। यदि ट्रेस फ़ंक्शन "पीसी - 12" स्थान को देखता है और शीर्ष 8 बिट्स हैं
सेट करें, तो हम जानते हैं कि इसके ठीक पहले एक फ़ंक्शन नाम एम्बेड किया गया है
स्थान और लंबाई है "((पीसी [-3]) और 0xff000000)"।

-मथंब
-मर्म
एआरएम और थंब राज्यों में निष्पादित कोड उत्पन्न करने के बीच चयन करें। के लिए डिफ़ॉल्ट
अधिकांश कॉन्फ़िगरेशन कोड उत्पन्न करने के लिए है जो एआरएम स्थिति में निष्पादित होता है, लेकिन डिफ़ॉल्ट
के साथ जीसीसी को कॉन्फ़िगर करके बदला जा सकता है --साथ-मोड=राज्य कॉन्फ़िगर विकल्प।

-एमटीपीसी-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो थंब प्रक्रिया कॉल मानक के अनुरूप है
सभी गैर-पत्ती कार्य। (एक लीफ फंक्शन वह है जो किसी अन्य को कॉल नहीं करता है
फ़ंक्शन।) डिफ़ॉल्ट है -एमनो-टीपीसीएस-फ्रेम.

-एमटीपीसी-पत्ती-फ्रेम
एक स्टैक फ्रेम उत्पन्न करें जो थंब प्रक्रिया कॉल मानक के अनुरूप है
सभी पत्ती कार्य। (एक लीफ फंक्शन वह है जो किसी अन्य फंक्शन को कॉल नहीं करता है।)
डिफ़ॉल्ट है -एमनो-एपीसीएस-लीफ-फ्रेम.

-मैकली-सुपर-इंटरवर्किंग
एआरएम निर्देश संकलित की जा रही फ़ाइल में सभी बाहरी रूप से दिखाई देने वाले कार्यों को देता है
हेडर सेट करें जो बाकी फ़ंक्शन को निष्पादित करने से पहले थंब मोड पर स्विच करता है।
यह इन कार्यों को गैर-इंटरवर्किंग कोड से कॉल करने की अनुमति देता है। यह विकल्प है
एएपीसीएस कॉन्फ़िगरेशन में मान्य नहीं है क्योंकि डिफ़ॉल्ट रूप से इंटरवर्किंग सक्षम है।

-मैकलर-सुपर-इंटरवर्किंग
फ़ंक्शन पॉइंटर्स (वर्चुअल फ़ंक्शंस सहित) के माध्यम से कॉल को सही ढंग से निष्पादित करने की अनुमति देता है
इस बात की परवाह किए बिना कि लक्ष्य कोड इंटरवर्किंग के लिए संकलित किया गया है या नहीं।
फ़ंक्शन पॉइंटर को निष्पादित करने की लागत में एक छोटा ओवरहेड होता है यदि यह विकल्प
सक्षम किया गया है। यह विकल्प एएपीसीएस कॉन्फ़िगरेशन में मान्य नहीं है क्योंकि इंटरवर्किंग है
डिफ़ॉल्ट रूप से सक्षम।

-एमटीपी=नाम
थ्रेड लोकल स्टोरेज पॉइंटर के लिए एक्सेस मॉडल निर्दिष्ट करें। मान्य मॉडल हैं
नरम, जो "__aeabi_read_tp" पर कॉल उत्पन्न करता है, cp15, जो धागा लाता है
सीधे "cp15" से पॉइंटर (arm6k आर्किटेक्चर में समर्थित), और स्वत:, जो
चयनित प्रोसेसर के लिए सर्वोत्तम उपलब्ध विधि का उपयोग करता है। डिफ़ॉल्ट सेटिंग है
स्वत:.

-mtls-बोली=बोली
थ्रेड स्थानीय संग्रहण तक पहुँचने के लिए उपयोग की जाने वाली बोली निर्दिष्ट करें। दो बोलियाँ हैं
का समर्थन किया --- बैल की आकृति का बारहसिद्धान्त और जीएनयू२३४बैल की आकृति का बारहसिद्धान्त बोली के लिए मूल जीएनयू योजना का चयन करता है
स्थानीय और वैश्विक गतिशील टीएलएस मॉडल का समर्थन करना। NS जीएनयू२३४ बोली जीएनयू का चयन करती है
डिस्क्रिप्टर स्कीम, जो साझा पुस्तकालयों के लिए बेहतर प्रदर्शन प्रदान करती है। जीएनयू
डिस्क्रिप्टर योजना मूल योजना के अनुकूल है, लेकिन इसके लिए नए की आवश्यकता है
कोडांतरक, लिंकर और पुस्तकालय समर्थन। प्रारंभिक और स्थानीय निष्पादन टीएलएस मॉडल हैं
इस विकल्प से अप्रभावित और हमेशा मूल योजना का उपयोग करें।

-mword-स्थानांतरण
केवल शब्द-आकार के मानों (यानी R_ARM_ABS32) पर पूर्ण स्थानांतरण उत्पन्न करें। यह है
लक्ष्य पर डिफ़ॉल्ट रूप से सक्षम (uClinux, SymbianOS) जहां रनटाइम लोडर लगाता है
यह प्रतिबंध, और कब -एफपीआईसी or -एफपीआईसी अधिकृत है।

-एमफिक्स-कॉर्टेक्स-एम3-एलडीआरडी
कुछ Cortex-M3 कोर डेटा भ्रष्टाचार का कारण बन सकते हैं जब "ldrd" निर्देश के साथ
अतिव्यापी गंतव्य और आधार रजिस्टरों का उपयोग किया जाता है। यह विकल्प जनरेट करने से बचता है
ये निर्देश। यह विकल्प डिफ़ॉल्ट रूप से तब सक्षम होता है जब -एमसीपीयू = कोर्टेक्स-एम3 is
निर्दिष्ट।

-मुना-संरेखित-पहुंच
-मनो-असंरेखित-पहुंच
पतों से 16- और 32-बिट मानों को पढ़ने और लिखने को सक्षम (या अक्षम) करता है
जो 16- या 32-बिट संरेखित नहीं हैं। डिफ़ॉल्ट रूप से असंरेखित पहुंच सभी के लिए अक्षम है
पूर्व ARMv6 और सभी ARMv6-M आर्किटेक्चर, और अन्य सभी आर्किटेक्चर के लिए सक्षम। अगर
असंरेखित पहुँच सक्षम नहीं है तो पैक किए गए डेटा संरचनाओं में शब्दों तक पहुँचा जा सकता है
एक बार में एक बाइट।

ARM विशेषता "Tag_CPU_unaligned_access" को जेनरेट की गई ऑब्जेक्ट फ़ाइल में सेट किया जाएगा
या तो सही या गलत, इस विकल्प की सेटिंग पर निर्भर करता है। अगर असंरेखित
एक्सेस सक्षम है तो प्रीप्रोसेसर प्रतीक "__ARM_FEATURE_UNALIGNED" भी होगा
परिभाषित।

-नियॉन-फॉर-64बिट्स
स्केलर 64-बिट संचालन को संभालने के लिए नियॉन का उपयोग करने में सक्षम बनाता है। यह डिफ़ॉल्ट रूप से अक्षम है
चूंकि कोर रजिस्टरों से नियॉन में डेटा ले जाने की लागत अधिक है।

AVR ऑप्शंस

-एमएमसीयू =एमसीयू
Atmel AVR निर्देश सेट आर्किटेक्चर (ISA) या MCU प्रकार निर्दिष्ट करें।

इस विकल्प के लिए डिफ़ॉल्ट है@टाई{}"avr2"।

GCC निम्नलिखित AVR उपकरणों और ISAs का समर्थन करता है:

"एवीआर2"
8@टाई{}किब तक प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस। एमसीयू@टाई{}= "अट्टी 22",
"attiny26", "at90c8534", "at90s2313", "at90s2323", "at90s2333", "at90s2343",
"at90s4414", "at90s4433", "at90s4434", "at90s8515", "at90s8535".

"एवीआर25"
8@टाई{}किब तक प्रोग्राम मेमोरी और "एमओवीडब्ल्यू" के साथ "क्लासिक" डिवाइस
अनुदेश। एमसीयू@tie{}= "ata6289", "attiny13", "attiny13a", "attiny2313",
"attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261", "attiny261a",
"attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny45", "attiny461",
"attiny461a", "attiny48", "attiny84", "attiny84a", "attiny85", "attiny861",
"attiny861a", "attiny87", "attiny88", "at86rf401"।

"एवीआर3"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस।
एमसीयू@tie{}= "at43usb355", "at76c711"।

"एवीआर31"
128@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस। एमसीयू@टाई{}= "एटमेगा103",
"at43usb320"।

"एवीआर35"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "क्लासिक" डिवाइस
"MOVW" निर्देश। एमसीयू@tie{}= "atmega16u2", "atmega32u2", "atmega8u2",
"attiny167", "at90usb162", "at90usb82".

"एवीआर4"
8@टाई{}किब तक प्रोग्राम मेमोरी वाले "उन्नत" डिवाइस। एमसीयू@टाई{}=
"atmega48", "atmega48a", "atmega48p", "atmega8", "atmega8hva", "atmega8515",
"atmega8535", "atmega88", "atmega88a", "atmega88p", "atmega88pa", "at90pwm1",
"at90pwm2", "at90pwm2b", "at90pwm3", "at90pwm3b", "at90pwm81".

"एवीआर5"
16@टाई{}किब तक 64@टाई{}किब प्रोग्राम मेमोरी वाले "उन्नत" डिवाइस।
एमसीयू@tie{}= "atmega16", "atmega16a", "atmega16hva", "atmega16hva2", "atmega16hvb",
"atmega16m1", "atmega16u4", "atmega161", "atmega162", "atmega163", "atmega164a",
"atmega164p", "atmega165", "atmega165a", "atmega165p", "atmega168", "atmega168a",
"atmega168p", "atmega169", "atmega169a", "atmega169p", "atmega169pa", "atmega32",
"atmega32c1", "atmega32hvb", "atmega32m1", "atmega32u4", "atmega32u6",
"atmega323", "atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega3250", "atmega3250a", "atmega3250p", "atmega328",
"atmega328p", "atmega329", "atmega329a", "atmega329p", "atmega329pa",
"atmega3290", "atmega3290a", "atmega3290p", "atmega406", "atmega64", "atmega64c1",
"atmega64hve", "atmega64m1", "atmega640", "atmega644", "atmega644a", "atmega644p",
"atmega644pa", "atmega645", "atmega645a", "atmega645p", "atmega6450",
"atmega6450a", "atmega6450p", "atmega649", "atmega649a", "atmega649p",
"atmega6490", "at90can32", "at90can64", "at90pwm216", "at90pwm316", "at90scr100",
"at90usb646", "at90usb647", "at94k", "m3000"।

"एवीआर51"
128@टाई{}किब प्रोग्राम मेमोरी के साथ "उन्नत" डिवाइस। एमसीयू@टाई{}= "एटमेगा128",
"atmega128rfa1", "atmega1280", "atmega1281", "atmega1284p", "at90can128",
"at90usb1286", "at90usb1287"।

"एवीआर6"
3-बाइट पीसी वाले "उन्नत" डिवाइस, यानी 128@टाई से अधिक{}किब प्रोग्राम के साथ
याद। एमसीयू@tie{}= "atmega2560", "atmega2561"।

"avrxmega2"
8@tie{}KiB से अधिक और 64@tie{}KiB प्रोग्राम मेमोरी वाले "XMEGA" डिवाइस।
एमसीयू@tie{}= "atxmega16a4", "atxmega16d4", "atxmega16x1", "atxmega32a4",
"atxmega32d4", "atxmega32x1"।

"avrxmega4"
64@टाई{}किब और 128@टाई{}किब प्रोग्राम वाले "एक्सएमईजीए" डिवाइस
याद। एमसीयू@tie{}= "atxmega64a3", "atxmega64d3"।

"avrxmega5"
64@टाई{}किब और 128@टाई{}किब प्रोग्राम वाले "एक्सएमईजीए" डिवाइस
मेमोरी और 64@टाई{}किब रैम से अधिक। एमसीयू@tie{}= "atxmega64a1",
"atxmega64a1u"।

"avrxmega6"
128@टाई{}KiB प्रोग्राम मेमोरी से अधिक वाले "XMEGA" डिवाइस। एमसीयू@टाई{}=
"atxmega128a3", "atxmega128d3", "atxmega192a3", "atxmega192d3", "atxmega256a3",
"atxmega256a3b", "atxmega256a3bu", "atxmega256d3".

"avrxmega7"
128@टाई{}KiB प्रोग्राम मेमोरी और इससे अधिक के साथ "XMEGA" डिवाइस
64@टाई{}किब रैम। एमसीयू@tie{}= "atxmega128a1", "atxmega128a1u"।

"एवीआर1"
यह आईएसए न्यूनतम एवीआर कोर द्वारा कार्यान्वित किया गया है और केवल असेंबलर के लिए समर्थित है।
एमसीयू@tie{}= "attiny11", "attiny12", "attiny15", "attiny28", "at90s1200"।

-संकुचित-आर्ग्स
आउटगोइंग फ़ंक्शन तर्कों को संचित करें और के लिए आवश्यक स्टैक स्थान प्राप्त करें/रिलीज़ करें
फ़ंक्शन प्रस्तावना/उपसंहार में एक बार आउटगोइंग फ़ंक्शन तर्क। इस विकल्प के बिना,
किसी फ़ंक्शन को कॉल करने से पहले आउटगोइंग तर्कों को धक्का दिया जाता है और बाद में पॉप किया जाता है।

फ़ंक्शन कॉल के बाद तर्कों को रोकना AVR पर महंगा हो सकता है ताकि
स्टैक स्पेस को जमा करने से छोटे निष्पादन योग्य हो सकते हैं क्योंकि तर्कों की आवश्यकता होती है
ऐसे फ़ंक्शन कॉल के बाद स्टैक से हटाया नहीं जाना चाहिए।

यह विकल्प कई कॉल करने वाले कार्यों के लिए कोड आकार को कम कर सकता है
फ़ंक्शंस जो स्टैक पर उनके तर्क प्राप्त करते हैं जैसे प्रिंटफ-जैसे फ़ंक्शंस को कॉल करते हैं।

- शाखा-लागत =लागत
सशर्त शाखा निर्देशों के लिए शाखा लागत को इस पर सेट करें लागत. उचित मूल्य
एसटी लागत छोटे, गैर-ऋणात्मक पूर्णांक हैं। डिफ़ॉल्ट शाखा लागत 0 है।

-mcall-प्रस्तावना
कार्य प्रस्तावनाओं/उपसंहारों का विस्तार उपयुक्त सबरूटीन्स के लिए कॉल के रूप में किया जाता है। कोड
आकार छोटा है।

-मिंट8
"int" को 8-बिट पूर्णांक मान लें। यह सभी प्रकार के आकारों को प्रभावित करता है: एक "चार" 1 है
बाइट, एक "इंट" 1 बाइट है, एक "लॉन्ग" 2 बाइट्स है, और "लॉन्ग लॉन्ग" 4 बाइट्स है। कृपया
ध्यान दें कि यह विकल्प C मानकों के अनुरूप नहीं है, लेकिन इसका परिणाम छोटा होता है
कोड आकार।

-मनो-बाधित
जेनरेट कोड हार्डवेयर इंटरप्ट के साथ संगत नहीं है। कोड आकार छोटा है।

-मेरेलैक्स
"कॉल" सम्मान को बदलने का प्रयास करें। छोटे "RCALL" सम्मान द्वारा "JMP" निर्देश। "आरजेएमपी"
निर्देश यदि लागू हो। "-mrelax" सेट करने से बस "--relax" विकल्प जुड़ जाता है
लिंकर कमांड लाइन जब लिंकर को कॉल किया जाता है।

जंप आराम लिंकर द्वारा किया जाता है क्योंकि जंप ऑफ़सेट पहले ज्ञात नहीं होते हैं
कोड स्थित है। इसलिए, कंपाइलर द्वारा उत्पन्न असेंबलर कोड समान है,
लेकिन निष्पादन योग्य में निर्देश असेंबलर के निर्देशों से भिन्न हो सकते हैं
कोड।

यदि लिंकर स्टब्स की आवश्यकता है तो आराम चालू होना चाहिए, "ईआईएनडी" पर अनुभाग देखें और
नीचे लिंकर स्टब्स।

-एमशॉर्ट-कॉल
यह विकल्प बहिष्कृत कर दिया गया है और जीसीसी 4.8 में हटा दिया जाएगा। a . के लिए "-mrelax" देखें
प्रतिस्थापन।

16@tie{}KiB या अधिक प्रोग्राम वाले डिवाइस पर भी "RCALL"/"RJMP" निर्देशों का उपयोग करें
मेमोरी, यानी उन उपकरणों पर जिनमें "कॉल" और "जेएमपी" निर्देश हैं।

-एमएसपी8
स्टैक पॉइंटर रजिस्टर को 8-बिट रजिस्टर के रूप में मानें, यानी उच्च बाइट मान लें
स्टैक पॉइंटर शून्य है। सामान्य तौर पर, आपको इस विकल्प को हाथ से सेट करने की आवश्यकता नहीं है।

इस विकल्प का उपयोग कंपाइलर द्वारा आंतरिक रूप से मल्टीलिब्स को चुनने और बनाने के लिए किया जाता है
आर्किटेक्चर "avr2" और "avr25"। ये आर्किटेक्चर उपकरणों को साथ और बिना मिलाते हैं
"एसपीएच"। "-mmcu=avr2" या "-mmcu=avr25" के अलावा किसी भी सेटिंग के लिए कंपाइलर ड्राइवर
इस विकल्प को कंपाइलर की कमांड लाइन से जोड़ या हटा देगा, क्योंकि
कंपाइलर तब जानता है कि क्या डिवाइस या आर्किटेक्चर में 8-बिट स्टैक पॉइंटर है और इस प्रकार
कोई "एसपीएच" रजिस्टर नहीं है या नहीं।

-मस्ट्रिक्ट-X
हार्डवेयर द्वारा प्रस्तावित तरीके से एड्रेस रजिस्टर "X" का उपयोग करें। इसका मतलब है कि "X" is
केवल अप्रत्यक्ष, पोस्ट-इन्क्रीमेंट या प्री-डिक्रीमेंट एड्रेसिंग में उपयोग किया जाता है।

इस विकल्प के बिना, "X" रजिस्टर का उपयोग उसी तरह किया जा सकता है जैसे "Y" या "Z" जो
फिर अतिरिक्त निर्देशों द्वारा अनुकरण किया जाता है। उदाहरण के लिए, के साथ एक मान लोड करना
एक रजिस्टर में एक छोटे से गैर-नकारात्मक "कॉन्स्ट <64" के साथ "एक्स + कॉन्स" को संबोधित करना Rn is
के रूप में प्रदर्शन किया

आदि r26, कास्ट ; एक्स + = कॉन्स्ट
एलडी , एक्स ; = *X
एसबीआई आर26, कॉन्स्ट; एक्स - = कॉन्स्ट

-मटिनी-स्टैक
स्टैक पॉइंटर के केवल निचले 8@टाई{}बिट्स बदलें।

"EIND" और फ्लैश के 128 Ki बाइट्स से अधिक वाले उपकरण

कार्यान्वयन में पॉइंटर्स 16@टाई{}बिट चौड़े हैं। किसी फ़ंक्शन या लेबल का पता
शब्द पते के रूप में दर्शाया गया है ताकि अप्रत्यक्ष कूद और कॉल किसी भी कोड को लक्षित कर सकें
64@टाई{}की वर्ड्स की रेंज में एड्रेस।

128@tie{}Kibytes of . से अधिक वाले उपकरणों पर अप्रत्यक्ष रूप से कूदने की सुविधा के लिए
प्रोग्राम मेमोरी स्पेस, "ईआईएनडी" नामक एक विशेष फ़ंक्शन रजिस्टर है जो इस प्रकार कार्य करता है
लक्ष्य पते का सबसे महत्वपूर्ण हिस्सा जब "EICALL" या "EIJMP" निर्देश हैं
उपयोग किया गया।

इन उपकरणों पर अप्रत्यक्ष कूद और कॉल को कंपाइलर द्वारा निम्नानुसार नियंत्रित किया जाता है और हैं
कुछ सीमाओं के अधीन:

· कंपाइलर कभी भी "EIND" सेट नहीं करता है।

संकलक "ईआईसीएल"/"ईआईजेएमपी" निर्देशों में "ईआईएनएनडी" का प्रयोग करता है या पढ़ सकता है
एक "RET" के माध्यम से एक अप्रत्यक्ष कॉल/कूद का अनुकरण करने के लिए सीधे "EIND"
अनुदेश।

· संकलक मानता है कि "EIND" स्टार्टअप कोड के दौरान या उसके दौरान कभी नहीं बदलता है
आवेदन। विशेष रूप से, "EIND" फ़ंक्शन या इंटरप्ट में सहेजा/बहाल नहीं किया जाता है
सेवा नियमित प्रस्तावना / उपसंहार।

कार्यों के लिए अप्रत्यक्ष कॉल और गणना किए गए गोटो के लिए, लिंकर उत्पन्न करता है स्टब्स. स्टब्स
जंप पैड हैं जिन्हें कभी-कभी भी कहा जाता है ट्रैम्पोलाइंस. इस प्रकार, अप्रत्यक्ष कॉल/कूद कूदता है
ऐसा ठूंठ। स्टब में वांछित पते पर सीधी छलांग होती है।

· लिंकर छूट को चालू किया जाना चाहिए ताकि लिंकर स्टब्स उत्पन्न करेगा
सही ढंग से एक सभी स्थिति। कंपाइलर विकल्प "-mrelax" और लाइनर विकल्प देखें
"--आराम करना"। ऐसे कोने के मामले हैं जहां लिंकर को स्टब्स उत्पन्न करना है लेकिन
छूट के बिना और एक उपयोगी त्रुटि संदेश के बिना निरस्त हो जाता है।

· डिफ़ॉल्ट लिंकर स्क्रिप्ट को "EIND = 0" कोड के लिए व्यवस्थित किया गया है। यदि कोड माना जाता है
"EIND != 0" के साथ एक सेटअप के लिए काम करने के लिए, एक कस्टम लिंकर स्क्रिप्ट का उपयोग क्रम में किया जाना है
उन खंडों को रखने के लिए जिनका नाम ".trampolines" से शुरू होता है, उस खंड में जहां
"ईएनडी" इंगित करता है।

· libgcc का स्टार्टअप कोड कभी भी "EIND" सेट नहीं करता है। ध्यान दें कि स्टार्टअप कोड एक मिश्रण है
libgcc और AVR-LibC से कोड का। "EIND" पर AVR-LibC के प्रभाव के लिए, AVR देखें-
LibC उपयोगकर्ता पुस्तिका ("http://nongnu.org/avr-libc/user-manual/").

· उपयोगकर्ता-विशिष्ट स्टार्टअप कोड के लिए "EIND" को जल्दी सेट करना वैध है, उदाहरण के लिए
".init3" खंड में स्थित आरंभीकरण कोड का साधन। ऐसा कोड . से पहले चलता है
सामान्य स्टार्टअप कोड जो रैम को इनिशियलाइज़ करता है और कंस्ट्रक्टर्स को कॉल करता है, लेकिन बिट के बाद
AVR-LibC से स्टार्टअप कोड जो "EIND" को उस सेगमेंट में सेट करता है जहां वेक्टर टेबल है
स्थित है.

#शामिल

स्थिर शून्य
__attribute__((अनुभाग (".init3"), नग्न, प्रयुक्त, no_instrument_function))
init3_set_eind (शून्य)
{
__asm ​​वोलेटाइल ("ldi r24,pm_hh8(__trampolines_start)\n\t"
"आउट %i0,r24" :: "n" (&EIND): "r24", "मेमोरी");
}

लिंकर स्क्रिप्ट में "__trampolines_start" प्रतीक परिभाषित किया गया है।

स्टब्स स्वचालित रूप से लिंकर द्वारा उत्पन्न होते हैं यदि निम्नलिखित दो स्थितियां हैं:
मिला:

-
(के लिए कम उत्पन्न स्टब्स) इस तरह:

एलडीआई r24, lo8 (जीएस ( ))
एलडीआई r25, hi8(gs( ))

-
बाहर वह खंड जहां स्टब्स स्थित हैं।

संकलक निम्नलिखित स्थितियों में कोड लेबल के लिए ऐसे "जीएस" संशोधक उत्सर्जित करता है:

-
-
- -mcall-प्रस्तावना>
कमांड लाइन विकल्प।

-
टेबल आप निर्दिष्ट कर सकते हैं -फनो-जंप-टेबल कमांड लाइन विकल्प।

-
-
· गैर-प्रतीकात्मक पतों पर कूदना जैसे है नहीं समर्थित:

मुख्य अंतर (शून्य)
{
/* वर्ड एड्रेस 0x2 पर कॉल फंक्शन */
वापसी ((इंट (*) (शून्य)) 0x2) ();
}

इसके बजाय, एक स्टब सेट करना होगा, यानी फ़ंक्शन को एक प्रतीक के माध्यम से कॉल करना होगा
("func_4" उदाहरण में):

मुख्य अंतर (शून्य)
{
बाहरी इंट func_4 (शून्य);

/* बाइट एड्रेस 0x4 पर कॉल फंक्शन */
वापसी func_4 ();
}

और एप्लिकेशन को "-Wl,--defsym,func_4=0x4" से जोड़ा जाए। वैकल्पिक रूप से, "func_4"
लिंकर स्क्रिप्ट में परिभाषित किया जा सकता है।

"RAMPD", "RAMPX", "RAMPY" और "RAMPZ" विशेष कार्य रजिस्टरों का संचालन

कुछ AVR डिवाइस 64@टाई{}किब रेंज से बड़ी मेमोरी को सपोर्ट करते हैं, जिसे एक्सेस किया जा सकता है
16-बिट पॉइंटर्स के साथ। इस 64@टाई{}किब रेंज के बाहर स्मृति स्थानों तक पहुंचने के लिए,
"RAMP" रजिस्टर की सामग्री का उपयोग पते के उच्च भाग के रूप में किया जाता है: "X", "Y", "Z"
पता रजिस्टर "RAMPX", "RAMPY", "RAMPZ" विशेष फ़ंक्शन के साथ जुड़ा हुआ है
एक विस्तृत पता प्राप्त करने के लिए क्रमशः रजिस्टर करें। इसी तरह, "RAMPD" का प्रयोग किसके साथ किया जाता है
सीधा संबोधन।

· स्टार्टअप कोड "RAMP" स्पेशल फंक्शन रजिस्टर को शून्य के साथ इनिशियलाइज़ करता है।

· यदि एक AVR नामांकित पता रिक्त स्थान, नामित पता अंतरिक्ष जेनेरिक के अलावा या "__flash" is
उपयोग किया जाता है, फिर "RAMPZ" को ऑपरेशन से पहले आवश्यकतानुसार सेट किया जाता है।

· यदि डिवाइस 64@tie{KiB} से बड़े RAM का समर्थन करता है और कंपाइलर को बदलने की आवश्यकता है
एक ऑपरेशन को पूरा करने के लिए "RAMPZ", ऑपरेशन के बाद "RAMPZ" को शून्य पर रीसेट कर दिया जाता है।

· यदि डिवाइस एक विशिष्ट "रैंप" रजिस्टर के साथ आता है, तो आईएसआर प्रस्तावना/उपसंहार
उस एसएफआर को सहेजता/पुनर्स्थापित करता है और आईएसआर कोड के मामले में इसे शून्य से प्रारंभ करता है
(निहित) इसका उपयोग करें।

· 64@tie{KiB} से बड़ी RAM AVR लक्ष्यों के लिए GCC द्वारा समर्थित नहीं है। यदि तुम प्रयोग करते हो
इनलाइन असेंबलर 16-बिट एड्रेस रेंज के बाहर के स्थानों से पढ़ने और बदलने के लिए
"RAMP" रजिस्टरों में से एक, आपको एक्सेस के बाद इसे शून्य पर रीसेट करना होगा।

AVR बिल्ट-इन मैक्रोज़

जीसीसी कई अंतर्निहित मैक्रो को परिभाषित करता है ताकि उपयोगकर्ता कोड उपस्थिति के लिए परीक्षण कर सके या
सुविधाओं का अभाव। निम्नलिखित में से लगभग कोई भी अंतर्निहित मैक्रो डिवाइस से काटा जाता है
क्षमताओं और इस प्रकार "-mmcu=" कमांड-लाइन विकल्प द्वारा ट्रिगर किया गया।

और भी अधिक AVR-विशिष्ट अंतर्निर्मित मैक्रोज़ के लिए देखें AVR नामांकित पता Spaces और AVR अन्तर्निर्मित में
कार्य.

"__AVR_ARCH__"
बिल्ड-इन मैक्रो जो एक दशमलव संख्या को हल करता है जो आर्किटेक्चर की पहचान करता है और
पर निर्भर करता है "-mmcu=एमसीयू" विकल्प। संभावित मान हैं:

2, 25, 3, 31, 35, 4, 5, 51, 6, 102, 104, 105, 106, 107

एसटी एमसीयू="avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",
"avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7", क्रमशः। अगर एमसीयू
डिवाइस निर्दिष्ट करता है, यह अंतर्निहित मैक्रो तदनुसार सेट किया गया है। उदाहरण के लिए, के साथ
"-mmcu=atmega8" मैक्रो को 4 में परिभाषित किया जाएगा।

"__AVR_युक्ति__"
सेटिंग "-mmcu=युक्ति" इस बिल्ट-इन मैक्रो को परिभाषित करता है जो डिवाइस के नाम को दर्शाता है।
उदाहरण के लिए, "-mmcu=atmega8" बिल्ट-इन मैक्रो "__AVR_ATmega8__" को परिभाषित करता है,
"-mmcu=attiny261a" परिभाषित करता है "__AVR_ATtiny261A__", आदि।

अंतर्निहित मैक्रोज़ के नाम "__AVR_" योजना का अनुसरण करते हैंयुक्ति__" जहां युक्ति विश्व का सबसे लोकप्रिय एंव
डिवाइस का नाम AVR उपयोगकर्ता पुस्तिका से लिया गया है। बीच में अंतर युक्ति बिल्ट-इन में
मैक्रो और युक्ति में "-mmcu=युक्ति" यह है कि उत्तरार्द्ध हमेशा लोअरकेस होता है।

If युक्ति एक उपकरण नहीं है, बल्कि "avr51" जैसा केवल एक मुख्य आर्किटेक्चर है, यह मैक्रो होगा
परिभाषित नहीं किया जा सकता।

"__AVR_XMEGA__"
डिवाइस/आर्किटेक्चर उपकरणों के XMEGA परिवार से संबंधित है।

"__AVR_HAVE_ELPM__"
डिवाइस में "ELPM" निर्देश है।

"__AVR_HAVE_ELPMX__"
डिवाइस में "ELPM R ." हैएन, जेड" और "ईएलपीएम आरएन, जेड+" निर्देश.

"__AVR_HAVE_MOVW__"
डिवाइस में 16-बिट रजिस्टर-रजिस्टर चालें करने के लिए "MOVW" निर्देश है।

"__AVR_HAVE_LPMX__"
डिवाइस में "LPM R ." हैएन, जेड" और "एलपीएम आरएन, जेड+" निर्देश.

"__AVR_HAVE_MUL__"
डिवाइस में एक हार्डवेयर गुणक है।

"__AVR_HAVE_JMP_CALL__"
डिवाइस में "JMP" और "CALL" निर्देश हैं। यह उन उपकरणों के मामले में है
कम से कम 16@tie{}KiB प्रोग्राम मेमोरी और अगर "-mshort-calls" सेट नहीं है।

"__AVR_HAVE_EIJMP_EICALL__"
"__AVR_3_BYTE_PC__"
डिवाइस में "EIJMP" और "EICALL" निर्देश हैं। उपकरणों के लिए यह मामला है
128@टाई{}KiB से अधिक प्रोग्राम मेमोरी के साथ। इसका मतलब यह भी है कि कार्यक्रम
काउंटर (पीसी) 3@टाई{}बाइट चौड़ा है।

"__AVR_2_BYTE_PC__"
प्रोग्राम काउंटर (पीसी) 2@टाई{}बाइट चौड़ा है। तक के उपकरणों के लिए यह मामला है
128@टाई{}किब ऑफ प्रोग्राम मेमोरी।

"__AVR_HAVE_8BIT_SP__"
"__AVR_HAVE_16BIT_SP__"
स्टैक पॉइंटर (एसपी) रजिस्टर को क्रमशः 8-बिट के रूप में माना जाता है 16-बिट रजिस्टर द्वारा
संकलक। इन मैक्रोज़ की परिभाषा "-मिनी-स्टैक" से प्रभावित होती है।

"__AVR_HAVE_SPH__"
"__AVR_SP8__"
डिवाइस में एसपीएच (स्टैक पॉइंटर का उच्च भाग) विशेष फ़ंक्शन रजिस्टर है या है
क्रमशः 8-बिट स्टैक पॉइंटर। इन मैक्रोज़ की परिभाषा इससे प्रभावित होती है
"-mmcu=" और "-mmcu=avr2" और "-mmcu=avr25" के मामलों में भी "-msp8" द्वारा।

"__AVR_HAVE_RAMPD__"
"__AVR_HAVE_RAMPX__"
"__AVR_HAVE_RAMPY__"
"__AVR_HAVE_RAMPZ__"
डिवाइस में "RAMPD", "RAMPX", "RAMPY", "RAMPZ" विशेष फ़ंक्शन रजिस्टर है,
क्रमशः.

"__NO_INTERRUPTS__"
यह मैक्रो "-mno-interrupts" कमांड लाइन विकल्प को दर्शाता है।

"__AVR_ERRATA_SKIP__"
"__AVR_ERRATA_SKIP_JMP_CALL__"
कुछ AVR डिवाइस (AT90S8515, ATmega103) को 32-बिट निर्देशों को नहीं छोड़ना चाहिए क्योंकि a
हार्डवेयर त्रुटि। छोड़ें निर्देश "SBRS", "SBRC", "SBIS", "SBIC" और "CPSE" हैं।
दूसरा मैक्रो केवल तभी परिभाषित किया जाता है जब "__AVR_HAVE_JMP_CALL__" भी सेट हो।

"__AVR_SFR_OFFSET__=ऑफसेट"
निर्देश जो I/O विशेष कार्य रजिस्टरों को सीधे "IN" की तरह संबोधित कर सकते हैं,
"आउट", "एसबीआई", आदि एक अलग पते का उपयोग कर सकते हैं जैसे कि एक निर्देश द्वारा संबोधित किया गया हो
"एलडी" या "एसटीएस" जैसे रैम तक पहुंचें। यह ऑफसेट डिवाइस आर्किटेक्चर पर निर्भर करता है और है
संबंधित I/O@tie{}पता प्राप्त करने के लिए RAM पते से घटाया जाना है।

"__with_AVRLIBC__"
कंपाइलर को AVR-Libc के साथ उपयोग करने के लिए कॉन्फ़िगर किया गया है। देखें
"--with-avrlibc" कॉन्फ़िगर विकल्प।

ब्लैकफिन ऑप्शंस

-एमसीपीयू =सीपीयू[-सिरविज़न]
लक्ष्य ब्लैकफिन प्रोसेसर का नाम निर्दिष्ट करता है। वर्तमान में, सीपीयू में से एक हो सकता है
bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532,
bf533, bf534, bf536, bf537, bf538, bf539, bf542, bf544, bf547, bf548, bf549, बीएफ542एम,
बीएफ544एम, बीएफ547एम, बीएफ548एम, बीएफ549एम, bf561, bf592. वैकल्पिक सिरविज़न निर्दिष्ट करता है
लक्ष्य ब्लैकफिन प्रोसेसर का सिलिकॉन संशोधन। के लिए उपलब्ध कोई भी समाधान
लक्षित सिलिकॉन संशोधन सक्षम किया जाएगा। अगर सिरविज़न is कोई नहीं, कोई उपाय नहीं हैं
सक्षम। अगर सिरविज़न is कोई, लक्षित प्रोसेसर के लिए सभी समाधान होंगे
सक्षम। "__SILICON_REVISION__" मैक्रो को दो हेक्साडेसिमल अंकों में परिभाषित किया गया है
सिलिकॉन संशोधन में प्रमुख और छोटी संख्याओं का प्रतिनिधित्व करना। अगर सिरविज़न is
कोई नहीं, "__SILICON_REVISION__" परिभाषित नहीं है। अगर सिरविज़न is कोई,
"__SILICON_REVISION__" को 0xffff के रूप में परिभाषित किया गया है। यदि यह वैकल्पिक सिरविज़न नहीं है
प्रयुक्त, GCC लक्षित ब्लैकफिन के नवीनतम ज्ञात सिलिकॉन संशोधन को मानता है
प्रोसेसर।

के लिए सहायता bf561 अधूरा है। के लिये bf561, केवल प्रोसेसर मैक्रो परिभाषित किया गया है।
इस विकल्प के बिना, bf532 डिफ़ॉल्ट रूप से प्रोसेसर के रूप में उपयोग किया जाता है। इसी
के लिए पूर्वनिर्धारित प्रोसेसर मैक्रोज़ सीपीयू परिभाषित किया जाना है। और के लिए बीफिन-एल्फ उपकरण श्रृंखला,
यह libgloss द्वारा प्रदान किए गए हार्डवेयर BSP को if . में लिंक करने का कारण बनता है -मसिम नहीं है
दिया हुआ।

-मसिम
निर्दिष्ट करता है कि प्रोग्राम सिम्युलेटर पर चलाया जाएगा। यह सिम्युलेटर का कारण बनता है
लिबग्लॉस द्वारा प्रदान की गई बीएसपी में लिंक किया जाना है। यह विकल्प केवल के लिए प्रभावी है बीफिन-एल्फ
उपकरण श्रृंखला कुछ अन्य विकल्प, जैसे -मिड-शेयर्ड-लाइब्रेरी और -एमएफडीपीआईसी, मतलब
-मसिम.

-मोमित-पत्ती-फ्रेम-सूचक
लीफ फंक्शन के लिए फ्रेम पॉइंटर को रजिस्टर में न रखें। इससे बचा जाता है
फ़्रेम पॉइंटर्स को सहेजने, सेट करने और पुनर्स्थापित करने के निर्देश और एक अतिरिक्त रजिस्टर बनाते हैं
पत्ती कार्यों में उपलब्ध है। विकल्प -फोमिट-फ्रेम-पॉइंटर फ्रेम हटाता है
सभी कार्यों के लिए सूचक, जो डिबगिंग को कठिन बना सकता है।

-mspecld-विसंगति
सक्षम होने पर, संकलक यह सुनिश्चित करेगा कि उत्पन्न कोड में शामिल नहीं है
कूद निर्देश के बाद सट्टा भार। यदि इस विकल्प का उपयोग किया जाता है,
"__WORKAROUND_SPECULATIVE_LOADS" परिभाषित किया गया है।

-मनो-स्पेकल्ड-विसंगति
सट्टा लोड होने से रोकने के लिए अतिरिक्त कोड उत्पन्न न करें।

-एमसीसिंक-विसंगति
सक्षम होने पर, कंपाइलर यह सुनिश्चित करेगा कि जनरेट किए गए कोड में CSYNC शामिल नहीं है
या SSYNC निर्देश बहुत जल्द सशर्त शाखाओं के बाद। यदि इस विकल्प का उपयोग किया जाता है,
"__WORKAROUND_SPECULATIVE_SYNCS" परिभाषित किया गया है।

-मनो-सीसिंक-विसंगति
CSYNC या SSYNC निर्देशों को भी होने से रोकने के लिए अतिरिक्त कोड उत्पन्न न करें
एक सशर्त शाखा के तुरंत बाद।

-एमएलओ-64k
सक्षम होने पर, संकलक इस ज्ञान का लाभ उठाने के लिए स्वतंत्र है कि संपूर्ण
प्रोग्राम कम 64k मेमोरी में फिट बैठता है।

-मनो-लो-64k
मान लें कि प्रोग्राम मनमाने ढंग से बड़ा है। यह डिफ़ॉल्ट है।

-मस्टैक-चेक-l1
uClinux द्वारा L1 स्क्रैचपैड मेमोरी में रखी गई जानकारी का उपयोग करके स्टैक चेकिंग करें
गिरी।

-मिड-शेयर्ड-लाइब्रेरी
लाइब्रेरी आईडी विधि के माध्यम से साझा पुस्तकालयों का समर्थन करने वाला कोड उत्पन्न करें। यह अनुमति देता है
वर्चुअल मेमोरी के बिना वातावरण में जगह और साझा पुस्तकालयों को निष्पादित करने के लिए
प्रबंध। इस विकल्प का तात्पर्य है -एफपीआईसी। के साथ बीफिन-एल्फ लक्ष्य, इस विकल्प का तात्पर्य है
-मसिम.

-मनो-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो यह नहीं मानता कि आईडी आधारित साझा पुस्तकालयों का उपयोग किया जा रहा है। यह है
डिफ़ॉल्ट।

-mleaf-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो लाइब्रेरी आईडी विधि के माध्यम से साझा पुस्तकालयों का समर्थन करता है, लेकिन मानता है
कि यह पुस्तकालय या निष्पादन योग्य किसी अन्य आईडी साझा पुस्तकालयों के खिलाफ लिंक नहीं होगा।
यह संकलक को छलांग और कॉल के लिए तेज कोड का उपयोग करने की अनुमति देता है।

-मनो-लीफ-आईडी-साझा-लाइब्रेरी
यह न मानें कि संकलित किया जा रहा कोड किसी भी आईडी साझा लाइब्रेरी से लिंक नहीं होगा।
कूदने और कॉल करने के लिए धीमा कोड उत्पन्न होगा।

-mshared-लाइब्रेरी-आईडी = n
संकलित किए जा रहे आईडी आधारित साझा पुस्तकालय की पहचान संख्या निर्दिष्ट करें।
0 का मान निर्दिष्ट करने से अधिक कॉम्पैक्ट कोड उत्पन्न होगा, अन्य मान निर्दिष्ट करने से
उस संख्या के आवंटन को वर्तमान पुस्तकालय के लिए बाध्य करें लेकिन कोई और स्थान नहीं है या
इस विकल्प को छोड़ने की तुलना में समय कुशल।

-एमएसईपी-डेटा
कोड उत्पन्न करें जो डेटा खंड को स्मृति के एक अलग क्षेत्र में स्थित होने की अनुमति देता है
पाठ खंड से। यह बिना किसी वातावरण में निष्पादित करने की अनुमति देता है
पाठ अनुभाग के विरुद्ध स्थानान्तरण को समाप्त करके आभासी स्मृति प्रबंधन।

-मनो-सितंबर-डेटा
कोड जेनरेट करें जो मानता है कि डेटा सेगमेंट टेक्स्ट सेगमेंट का अनुसरण करता है। यह है
डिफ़ॉल्ट।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
कंपाइलर को पहले का पता लोड करके फंक्शन कॉल करने के लिए कहता है
एक रजिस्टर में कार्य करना और फिर इस रजिस्टर पर एक सबरूटीन कॉल करना। इस
यदि लक्ष्य फ़ंक्शन 24-बिट एड्रेसिंग रेंज के बाहर स्थित है, तो स्विच की आवश्यकता होती है
सबरूटीन कॉल निर्देश का ऑफ़सेट-आधारित संस्करण।

यह सुविधा डिफ़ॉल्ट रूप से सक्षम नहीं है। निर्दिष्ट करना -मनो-लॉन्ग-कॉल पुनर्स्थापित करेगा
डिफ़ॉल्ट व्यवहार। ध्यान दें कि कंपाइलर कैसे उत्पन्न करता है इस पर इन स्विच का कोई प्रभाव नहीं पड़ता है
फ़ंक्शन पॉइंटर्स के माध्यम से फ़ंक्शन कॉल को संभालने के लिए कोड।

-एमफास्ट-एफपी
फास्ट फ्लोटिंग-पॉइंट लाइब्रेरी से लिंक करें। यह पुस्तकालय आईईईई में से कुछ को आराम देता है
नॉट-ए-नंबर (एनएएन) के खिलाफ इनपुट की जांच के लिए फ्लोटिंग-पॉइंट मानक के नियम
प्रदर्शन की रुचि।

-मिनलाइन-पीएलटी
फ़ंक्शन कॉल में पीएलटी प्रविष्टियों की इनलाइनिंग सक्षम करें जो फ़ंक्शन के लिए ज्ञात नहीं हैं
स्थानीय रूप से बांधें। इसके बिना कोई प्रभाव नहीं है -एमएफडीपीआईसी.

-मल्टीकोर
मल्टीकोर ब्लैकफिन प्रोसेसर के लिए स्टैंडअलोन एप्लिकेशन बनाएं। उचित प्रारंभ फ़ाइलें और
लिंक स्क्रिप्ट का उपयोग मल्टीकोर को सपोर्ट करने के लिए किया जाएगा। यह विकल्प परिभाषित करता है
"__BFIN_MULTICORE"। इसका उपयोग केवल के साथ किया जा सकता है -एमसीपीयू = बीएफ561[-सिरविज़न]. इसे इस्तेमाल किया जा सकता है
साथ में -मकोरिया or -मकोरबे. यदि इसका उपयोग बिना किया जाता है -मकोरिया or -मकोरबेएकल
एप्लिकेशन/डुअल कोर प्रोग्रामिंग मॉडल का उपयोग किया जाता है। इस मॉडल में, का मुख्य कार्य
कोर बी को coreb_main के रूप में नामित किया जाना चाहिए। यदि इसका उपयोग के साथ किया जाता है -मकोरिया or -मकोरबे, एक
एप्लिकेशन प्रति कोर प्रोग्रामिंग मॉडल का उपयोग किया जाता है। यदि इस विकल्प का उपयोग नहीं किया जाता है, तो सिंगल
कोर एप्लिकेशन प्रोग्रामिंग मॉडल का उपयोग किया जाता है।

-मकोरिया
प्रति कोर एक एप्लिकेशन का उपयोग करते समय BF561 के कोर ए के लिए स्टैंडअलोन एप्लिकेशन बनाएं
प्रोग्रामिंग मॉडल। कोर ए का समर्थन करने के लिए उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट का उपयोग किया जाएगा।
यह विकल्प "__BFIN_COREA" को परिभाषित करता है। इसके साथ प्रयोग किया जाना चाहिए -मल्टीकोर.

-मकोरबे
प्रति कोर एक एप्लिकेशन का उपयोग करते समय BF561 के कोर B के लिए स्टैंडअलोन एप्लिकेशन बनाएं
प्रोग्रामिंग मॉडल। कोर बी का समर्थन करने के लिए उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट का उपयोग किया जाएगा।
यह विकल्प "__BFIN_COREB" को परिभाषित करता है। जब इस विकल्प का उपयोग किया जाता है, coreb_main होना चाहिए
मुख्य के बजाय प्रयोग किया जाता है। इसके साथ प्रयोग किया जाना चाहिए -मल्टीकोर.

-एमएसड्राम
एसडीआरएएम के लिए स्टैंडअलोन एप्लिकेशन बनाएं। उचित प्रारंभ फ़ाइलें और लिंक स्क्रिप्ट होंगी
एप्लिकेशन को SDRAM में डालने के लिए उपयोग किया जाता है। लोडर को लोड करने से पहले SDRAM को इनिशियलाइज़ करना चाहिए
एसडीआरएएम में आवेदन। यह विकल्प "__BFIN_SDRAM" को परिभाषित करता है।

-मिकप्लब
मान लें कि ICPLBs रन टाइम पर सक्षम हैं। यह कुछ विसंगतियों पर प्रभाव डालता है
उपाय। Linux लक्ष्यों के लिए, डिफ़ॉल्ट यह मान लेना है कि ICPLBs सक्षम हैं; के लिये
स्टैंडअलोन एप्लिकेशन डिफ़ॉल्ट बंद है।

सी6एक्स ऑप्शंस

-मार्च=नाम
यह लक्ष्य वास्तुकला का नाम निर्दिष्ट करता है। GCC इस नाम का उपयोग यह निर्धारित करने के लिए करता है
असेंबली कोड जनरेट करते समय यह किस प्रकार के निर्देश उत्सर्जित कर सकता है। जायज़
नाम है: C62X, C64X, सी64एक्स+, C67X, सी67एक्स+, C674X.

-मबिग-एंडियन
बड़े-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-थोड़ा-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-मसिम
सिम्युलेटर के लिए उपयुक्त स्टार्टअप फ़ाइलें और लिंकर स्क्रिप्ट चुनें।

-एमएसडेटा = डिफ़ॉल्ट
में छोटा वैश्विक और स्थिर डेटा डालें .नियरडेटा खंड, जो द्वारा इंगित किया गया है
रजिस्टर "बी 14"। में छोटे अप्रारंभीकृत वैश्विक और स्थिर डेटा डालें बीएसएस अनुभाग,
जो के निकट है .नियरडेटा अनुभाग। में केवल पढ़ने के लिए छोटा डेटा डालें .रोडाटा
अनुभाग। डेटा के बड़े टुकड़ों के लिए उपयोग किए जाने वाले संबंधित खंड हैं .fardata, ।दूर
और स्थिरांक.

-एमएसडेटा = सभी
छोटे डेटा के लिए आरक्षित अनुभागों में, केवल छोटे ऑब्जेक्ट ही नहीं, सभी डेटा डालें, और
उन तक पहुँचने के लिए "B14" रजिस्टर के सापेक्ष एड्रेसिंग का उपयोग करें।

-msdata=कोई नहीं
छोटे डेटा के लिए आरक्षित अनुभागों का उपयोग न करें, और निरपेक्ष पतों का उपयोग करें
सभी डेटा तक पहुंचें। सभी आरंभिक वैश्विक और स्थिर डेटा को इसमें रखें .fardata अनुभाग,
और सभी अप्रारंभीकृत डेटा ।दूर अनुभाग। सभी स्थिर डेटा को में डालें स्थिरांक
अनुभाग।

क्रिस ऑप्शंस

इन विकल्पों को विशेष रूप से CRIS पोर्ट के लिए परिभाषित किया गया है।

-मार्च=वास्तुकला-प्रकार
-एमसीपीयू =वास्तुकला-प्रकार
निर्दिष्ट आर्किटेक्चर के लिए कोड जेनरेट करें। के लिए विकल्प वास्तुकला-प्रकार रहे
v3, v8 और v10 क्रमशः ETRAX 4, ETRAX 100 और ETRAX 100 LX के लिए। डिफ़ॉल्ट है v0
क्रिस-अक्ष-लिनक्स-ग्नू को छोड़कर, जहां डिफ़ॉल्ट है v10.

-मट्यून =वास्तुकला-प्रकार
ट्यून टू वास्तुकला-प्रकार जनरेट किए गए कोड के बारे में सब कुछ लागू है, सिवाय इसके कि
एबीआई और उपलब्ध निर्देशों का सेट। के लिए विकल्प वास्तुकला-प्रकार रहे
के लिए के समान -मार्च=वास्तुकला-प्रकार.

-एमएमएक्स-स्टैक-फ्रेम =n
किसी फ़ंक्शन के स्टैक फ्रेम से अधिक होने पर चेतावनी दें n बाइट्स।

-मेट्रैक्स4
-मेट्रैक्स100
विकल्प -मेट्रैक्स4 और -मेट्रैक्स100 के पर्यायवाची हैं -मार्च=v3 और -मार्च=v8
क्रमशः.

-mmul-बग-समाधान
-मनो-मुल-बग-वर्कअराउंड
सीपीयू मॉडल के लिए "मल्स" और "मुलु" निर्देशों में एक बग के आसपास काम करें जहां यह
लागू होता है। यह विकल्प डिफ़ॉल्ट रूप से सक्रिय है।

-एमपीडीबग
असेंबली कोड में CRIS-विशिष्ट वर्बोज़ डीबग-संबंधित जानकारी सक्षम करें। इस
विकल्प को बंद करने का भी प्रभाव पड़ता है #NO_APP को स्वरूपित-कोड संकेतक
असेंबली फ़ाइल की शुरुआत में असेंबलर।

-एमसीसी-इनिट
पिछले निर्देश के कंडीशन-कोड परिणामों का उपयोग न करें; हमेशा तुलना करें और
कंडीशन कोड के उपयोग से पहले परीक्षण निर्देश।

-मनो-दुष्प्रभाव
पोस्ट-इफेक्ट्स के अलावा अन्य तरीकों से साइड-इफेक्ट्स वाले निर्देशों का उत्सर्जन न करें
वेतन वृद्धि।

-मस्टैक-संरेखण
-मनो-स्टैक-संरेखण
-mdata-संरेखण
-मनो-डेटा-संरेखण
-mconst-संरेखण
-मनो-कॉन्स्ट-संरेखण
ये विकल्प (कोई विकल्प नहीं) स्टैक-फ्रेम के लिए व्यवस्था (व्यवस्था समाप्त) करते हैं,
व्यक्तिगत डेटा और स्थिरांक को अधिकतम एकल डेटा एक्सेस आकार के लिए संरेखित किया जाना है
चुने हुए CPU मॉडल के लिए। डिफ़ॉल्ट 32-बिट संरेखण की व्यवस्था करना है। अबी
संरचना लेआउट जैसे विवरण इन विकल्पों से प्रभावित नहीं होते हैं।

-एम 32-बिट
-एम 16-बिट
-एम 8-बिट
उपरोक्त स्टैक-डेटा- और कॉन्स्ट-एलाइन विकल्पों के समान, ये विकल्प व्यवस्था करते हैं
स्टैक-फ्रेम, लिखने योग्य डेटा और सभी के लिए स्थिरांक 32-बिट, 16-बिट या 8-बिट संरेखित हों।
डिफ़ॉल्ट 32-बिट संरेखण है।

-मनो-प्रस्तावना-उपसंहार
-प्रस्तावना-उपसंहार
- -मनो-प्रस्तावना-उपसंहार, सामान्य कार्य प्रस्तावना और उपसंहार जो स्थापित करते हैं
स्टैक फ्रेम छोड़े गए हैं और कोई वापसी निर्देश या वापसी अनुक्रम नहीं हैं
कोड में उत्पन्न। इस विकल्प का उपयोग केवल दृश्य निरीक्षण के साथ ही करें
संकलित कोड: कॉल-सेव्ड रजिस्टर होने पर कोई चेतावनी या त्रुटि उत्पन्न नहीं होती है
सहेजा गया है, या स्थानीय चर के लिए भंडारण आवंटित करने की आवश्यकता है।

-मनो-गॉटप्लाट
-एमजीओटीपीएलटी
- -एफपीआईसी और -एफपीआईसी, लोड करने वाले निर्देश अनुक्रम उत्पन्न (उत्पन्न करें) न करें
जीओटी के पीएलटी भाग से कार्यों के लिए पते के बजाय (अन्य पर पारंपरिक
आर्किटेक्चर) पीएलटी को कॉल करता है। डिफ़ॉल्ट है -एमजीओटीपीएलटी.

-मेल्फ़
लीगेसी नो-ऑप विकल्प केवल क्रिस-अक्ष-एल्फ और क्रिस-अक्ष-लिनक्स-ग्नू के साथ मान्यता प्राप्त है
लक्ष्य।

-मिलिनक्स
लीगेसी नो-ऑप विकल्प केवल क्रिस-अक्ष-लिनक्स-ग्नू लक्ष्य के साथ पहचाना जाता है।

-सिम
क्रिस-अक्ष-योगिनी के लिए मान्यता प्राप्त यह विकल्प इनपुट-आउटपुट के साथ लिंक करने की व्यवस्था करता है
एक सिम्युलेटर पुस्तकालय से कार्य करता है। कोड, आरंभिक डेटा और शून्य-आरंभिक डेटा
क्रमानुसार आवंटित किये जाते हैं।

-सिम2
पसंद -सिम, लेकिन 0x40000000 और शून्य पर आरंभिक डेटा का पता लगाने के लिए लिंकर विकल्प पास करें-
0x80000000 पर आरंभिक डेटा।

CR16 ऑप्शंस

इन विकल्पों को विशेष रूप से CR16 पोर्ट के लिए परिभाषित किया गया है।

-एमएमएसी
गुणन-संचय निर्देशों के उपयोग को सक्षम करें। डिफ़ॉल्ट रूप से अक्षम।

-एमसीआर16सीप्लस
-एमसीआर16सी
CR16C या CR16C+ आर्किटेक्चर के लिए कोड जेनरेट करें। CR16C+ आर्किटेक्चर डिफ़ॉल्ट है।

-मसिम
पुस्तकालय libsim.a को लिंक करता है जो सिम्युलेटर के साथ संगत है। योगिनी के लिए लागू
केवल संकलक।

-मिंट32
पूर्णांक प्रकार को 32-बिट चौड़ा चुनें।

-एमबिट-ऑप्स
बिट जोड़तोड़ के लिए sbit/cbit निर्देश उत्पन्न करता है।

-mdata-मॉडल=आदर्श
एक डेटा मॉडल चुनें। के लिए विकल्प आदर्श रहे पास, दूर or मध्यम. मध्यम डिफ़ॉल्ट है।
हालांकि, दूर मान्य नहीं है जब -mcr16c विकल्प चुना जाता है क्योंकि CR16C आर्किटेक्चर नहीं करता है
दूर डेटा मॉडल का समर्थन करें।

डार्विन ऑप्शंस

ये विकल्प डार्विन ऑपरेटिंग सिस्टम को चलाने वाले सभी आर्किटेक्चर के लिए परिभाषित हैं।

डार्विन पर FSF GCC "वसा" ऑब्जेक्ट फ़ाइलें नहीं बनाता है; यह के लिए एक वस्तु फ़ाइल बनाएगा
एकल वास्तुकला जिसे इसे लक्षित करने के लिए बनाया गया था। डार्विन पर Apple का GCC बनाता है
"वसा" फ़ाइलें यदि एकाधिक —करना विकल्पों का उपयोग किया जाता है; यह संकलक चलाकर ऐसा करता है या
लिंकर कई बार और परिणामों को एक साथ जोड़ना लाइपो.

बनाई गई फ़ाइल का उपप्रकार (जैसे पीपीसी7400 or पीपीसी970 or i686) द्वारा निर्धारित किया जाता है
झंडे जो ISA को निर्दिष्ट करते हैं जिसे GCC लक्षित कर रहा है, जैसे -एमसीपीयू or मार्च
-force_cpusubtype_ALL इसे ओवरराइड करने के लिए विकल्प का उपयोग किया जा सकता है।

आईएसए बेमेल के साथ प्रस्तुत किए जाने पर डार्विन उपकरण उनके व्यवहार में भिन्न होते हैं। NS
असेंबलर, as, केवल उन निर्देशों का उपयोग करने की अनुमति देगा जो उपप्रकार के लिए मान्य हैं
यह फ़ाइल उत्पन्न कर रहा है, इसलिए आप 64-बिट निर्देशों को एक में नहीं डाल सकते हैं पीपीसी750 ऑब्जेक्ट फ़ाइल।
साझा पुस्तकालयों के लिए लिंकर, /usr/bin/libtool, विफल हो जाएगा और पूछे जाने पर एक त्रुटि प्रिंट करेगा
अपनी इनपुट फ़ाइलों की तुलना में कम प्रतिबंधात्मक उपप्रकार के साथ एक साझा पुस्तकालय बनाने के लिए (के लिए
उदाहरण के लिए, एक डालने की कोशिश कर रहा है पीपीसी970 ऑब्जेक्ट फ़ाइल a पीपीसी7400 पुस्तकालय)। के लिए लिंकर
निष्पादन योग्य, ld, चुपचाप निष्पादन योग्य को इनमें से किसी का सबसे प्रतिबंधात्मक उपप्रकार देगा
इसकी इनपुट फ़ाइलें।

-Fदीर
ढांचा निर्देशिका जोड़ें दीर खोजी जाने वाली निर्देशिकाओं की सूची के शीर्ष पर
हेडर फाइलों के लिए। इन निर्देशिकाओं को उनके द्वारा निर्दिष्ट के साथ अंतःस्थापित किया गया है -I
विकल्प और बाएं से दाएं क्रम में स्कैन किए जाते हैं।

एक फ्रेमवर्क डायरेक्टरी एक डायरेक्टरी है जिसमें फ्रेमवर्क होता है। एक ढांचा है a
a . के साथ निर्देशिका "शीर्षक" और / या "निजी शीर्षलेख" इसमें सीधे निहित निर्देशिका
जो समाप्त होता है ".ढांचा". एक ढांचे का नाम इस निर्देशिका का नाम है
को छोड़कर ".ढांचा". ढांचे से जुड़े शीर्षलेख इनमें से एक में पाए जाते हैं
उन दो निर्देशिकाओं के साथ "शीर्षक" पहले खोजा जा रहा है। एक सबफ्रेमवर्क है a
फ्रेमवर्क निर्देशिका जो एक ढांचे में है "ढांचे" निर्देशिका। के शामिल हैं
सबफ्रेमवर्क हेडर केवल एक फ्रेमवर्क के हेडर में दिखाई दे सकते हैं जिसमें शामिल हैं
सबफ्रेमवर्क, या सिबलिंग सबफ्रेमवर्क हेडर में। दो सबफ्रेमवर्क भाई-बहन हैं यदि
वे एक ही ढांचे में होते हैं। एक सबफ्रेमवर्क का नाम a . के समान नहीं होना चाहिए
ढांचे का उल्लंघन करने पर चेतावनी जारी की जाएगी। वर्तमान में एक सबफ्रेमवर्क
सबफ्रेमवर्क नहीं हो सकते हैं, भविष्य में, तंत्र को समर्थन के लिए बढ़ाया जा सकता है
यह। मानक ढांचे में पाया जा सकता है "/ सिस्टम/लाइब्रेरी/फ्रेमवर्क" और
"/ पुस्तकालय/ढांचे". एक उदाहरण में शामिल है "#शामिल करें . जैसा दिखता है ",
जहां ढांचा ढांचे के नाम को दर्शाता है और शीर्षलेख एच में पाया जाता है
"निजी शीर्षलेख" or "शीर्षक" निर्देशिका.

-आईफ्रेमवर्कदीर
पसंद -F निर्देशिका को छोड़कर एक सिस्टम निर्देशिका के रूप में माना जाता है। मुख्य अंतर
इस बीच -आईफ्रेमवर्क और -F वह है -आईफ्रेमवर्क संकलक चेतावनी नहीं देता
के माध्यम से मिली हेडर फाइलों के भीतर निहित निर्माणों के बारे में दीर. यह विकल्प मान्य है
केवल भाषाओं के C परिवार के लिए।

-गुस्ड
उपयोग किए जाने वाले प्रतीकों के लिए डिबगिंग जानकारी उत्सर्जित करें। STABS डिबगिंग प्रारूप के लिए,
यह सक्षम करता है -फेलिमिनेट-अप्रयुक्त-डीबग-प्रतीक. यह डिफ़ॉल्ट रूप से चालू है।

-गफुल
सभी प्रतीकों और प्रकारों के लिए डिबगिंग जानकारी उत्सर्जित करें।

-mmacosx-संस्करण-मिनट=संस्करण
MacOS X का सबसे पुराना संस्करण जिस पर यह निष्पादन योग्य चलेगा, वह है संस्करण। ठेठ
के मान संस्करण 10.1, 10.2 और 10.3.9 शामिल हैं।

यदि कंपाइलर को डिफ़ॉल्ट रूप से सिस्टम के हेडर का उपयोग करने के लिए बनाया गया था, तो डिफ़ॉल्ट के लिए
यह विकल्प सिस्टम संस्करण है जिस पर संकलक चल रहा है, अन्यथा
डिफ़ॉल्ट रूप से ऐसे विकल्प चुनना है जो जितने सिस्टम और कोड बेस के साथ संगत हों
संभव.

-मकर्नेल
कर्नेल विकास मोड सक्षम करें। NS -मकर्नेल विकल्प सेट स्थैतिक, -फनो-कॉमन,
-फनो-सीएक्सए-एटेक्सिट, -फनो-अपवाद, -फनो-नॉन-कॉल-अपवाद, -फ़प्पल-केक्स्ट, -फनो-कमजोर
और -फनो-आरटीटीआई जहां लागू। यह मोड भी सेट करता है -मनो-altivec, -एमसॉफ्ट-फ्लोट,
-फनो-बिल्टिन और -मलॉन्ग-शाखा पावरपीसी लक्ष्यों के लिए।

-मोन-बाइट-बूल
के लिए डिफ़ॉल्ट ओवरराइड करें bool ताकि आकार (बूल) == 1. डिफ़ॉल्ट रूप से आकार (बूल) is 4
डार्विन/पावरपीसी के लिए संकलन करते समय और 1 डार्विन/x86 के लिए संकलन करते समय, तो यह विकल्प
x86 पर कोई प्रभाव नहीं पड़ता है।

चेतावनी: RSI -मोन-बाइट-बूल स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। इस स्विच का उपयोग करने की आवश्यकता हो सकती है
सिस्टम लाइब्रेरी सहित किसी प्रोग्राम में अन्य सभी मॉड्यूल्स को फिर से कंपाइल करना। इस का उपयोग करें
एक गैर-डिफ़ॉल्ट डेटा मॉडल के अनुरूप स्विच करें।

-एमफिक्स-और-जारी रखें
-फिक्स-और-जारी रखें
-findirect-डेटा
तेजी से विकास के लिए उपयुक्त कोड उत्पन्न करें। gdb को सक्षम करने की आवश्यकता है
पहले से चल रहे प्रोग्रामों में ".o" फ़ाइलों को गतिशील रूप से लोड करें। -findirect-डेटा और
-फिक्स-और-जारी रखें पश्च संगतता के लिए प्रदान की जाती हैं।

-सभी_लोड
स्थिर संग्रह पुस्तकालयों के सभी सदस्यों को लोड करता है। आदमी देखें ld(1) अधिक जानकारी के लिए।

-आर्च_एरर्स_फेटल
घातक होने के लिए गलत आर्किटेक्चर वाली फ़ाइलों के साथ होने वाली त्रुटियों का कारण।

-बाइंड_एट_लोड
आउटपुट फ़ाइल को इस तरह चिह्नित करने का कारण बनता है कि डायनेमिक लिंकर सभी को बाइंड कर देगा
फ़ाइल लोड या लॉन्च होने पर अपरिभाषित संदर्भ।

-बंडला
Mach-o बंडल प्रारूप फ़ाइल बनाएँ। आदमी देखें ld(1) अधिक जानकारी के लिए।

-बंडल_लोडर निष्पादन
यह विकल्प निर्दिष्ट करता है निष्पादन जो कि बिल्ड आउटपुट फाइल को लोड कर रहा होगा
जुड़े हुए। आदमी देखें ld(1) अधिक जानकारी के लिए।

-गतिशीललिब
इस विकल्प को पारित करने पर, जीसीसी एक निष्पादन योग्य के बजाय एक गतिशील पुस्तकालय का उत्पादन करेगा
डार्विन का उपयोग करते हुए लिंक करते समय libtool आदेश।

-force_cpusubtype_ALL
इसके कारण GCC की आउटपुट फ़ाइल में होती है सब उपप्रकार, द्वारा नियंत्रित एक के बजाय
la -एमसीपीयू or मार्च विकल्प.

-स्वीकार्य_क्लाइंट ग्राहक का नाम
-ग्राहक का नाम
-संगतता_संस्करण
-वर्तमान संस्करण
-डेड_स्ट्रिप
-निर्भरता-फ़ाइल
-dylib_file
-डिलिंकर_इंस्टॉल_नाम
-स्वाभाविक
-निर्यात_प्रतीक_सूची
-फ़ाइलसूची
-फ्लैट_नामस्थान
-force_flat_namespace
-हेडरपैड_मैक्स_इंस्टॉल_नाम
-इमेज_बेस
-इस में
-इंस्टॉल_नाम
-निजी_बाहरी रखें
-मल्टी_मॉड्यूल
-गुणा_परिभाषित
-गुणा_परिभाषित_अप्रयुक्त
-नोऑल_लोड
-नो_डेड_स्ट्रिप_इनिट्स_एंड_टर्म्स
-नोफिक्स प्रीबाइंडिंग
-नोमल्टीडेफ्स
-नोप्रेबाइंड
-नोसेग्लिंकसंपादित करें
-पेजेरो_साइज
-प्रीबाइंड
-prebind_all_twolevel_modules
-निजी_बंडल
-read_only_relocs
-सेक्टलाइन
-सेक्टोबजेक्टप्रतीक
-व्हायलोड
-seg1addr
-संप्रदाय बनाना
-सेक्टोबजेक्टप्रतीक
-सेक्टर
-सेगद्रो
-segs_read_only_addr
-segs_read_write_addr
-seg_addr_table
-seg_addr_table_filename
-सेग्लिंकसंपादित करें
-सेगप्रोट
-segs_read_only_addr
-segs_read_write_addr
-एकल_मॉड्यूल
स्थैतिक
-उप_लाइब्रेरी
-उप_छाता
-दोस्तर_नाम स्थान
-छतरी
-अपरिभाषित
-unexported_symbols_list
-कमजोर_संदर्भ_बेमेल
-व्हाट्सलोडेड
ये विकल्प डार्विन लिंकर को पास कर दिए जाते हैं। डार्विन लिंकर मैन पेज वर्णन करता है
उन्हें विस्तार से।

दिसम्बर अल्फा ऑप्शंस

इन -m डीईसी अल्फा कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-मनो-सॉफ्ट-फ्लोट
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट के लिए हार्डवेयर फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें (उपयोग न करें)
संचालन। कब -एमसॉफ्ट-फ्लोट निर्दिष्ट है, में कार्य करता है libgcc.a के लिए इस्तेमाल किया जाएगा
फ्लोटिंग-पॉइंट ऑपरेशन करें। जब तक उन्हें अनुकरण करने वाली दिनचर्या द्वारा प्रतिस्थापित नहीं किया जाता है
फ़्लोटिंग-पॉइंट ऑपरेशंस, या इस तरह से संकलित इस तरह के अनुकरण को कॉल करने के लिए
रूटीन, ये रूटीन फ़्लोटिंग-पॉइंट ऑपरेशंस जारी करेंगे। यदि आप संकलन कर रहे हैं
फ़्लोटिंग-पॉइंट ऑपरेशंस के बिना अल्फा के लिए, आपको यह सुनिश्चित करना होगा कि पुस्तकालय है
इसलिए बनाया गया है कि उन्हें कॉल न करें।

ध्यान दें कि फ़्लोटिंग-पॉइंट ऑपरेशंस के बिना अल्फा कार्यान्वयन की आवश्यकता होती है
फ्लोटिंग-पॉइंट रजिस्टर।

-एमएफपी-रेग
-मनो-एफपी-रेग्स
फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग करने वाला (उपयोग नहीं करता) कोड उत्पन्न करें। -मनो-एफपी-रेग्स
का तात्पर्य -एमसॉफ्ट-फ्लोट. यदि फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग नहीं किया जाता है, तो फ़्लोटिंग-पॉइंट
ऑपरेंड को पूर्णांक रजिस्टरों में पारित किया जाता है जैसे कि वे पूर्णांक और फ़्लोटिंग-पॉइंट थे
परिणाम $f0 के बजाय $0 में पास किए जाते हैं। यह एक गैर-मानक कॉलिंग अनुक्रम है, इसलिए
फ़्लोटिंग-पॉइंट तर्क या कोड संकलित द्वारा बुलाए गए रिटर्न वैल्यू वाला कोई भी फ़ंक्शन
साथ में -मनो-एफपी-रेग्स उस विकल्प के साथ भी संकलित किया जाना चाहिए।

इस विकल्प का एक विशिष्ट उपयोग एक कर्नेल का निर्माण कर रहा है जो उपयोग नहीं करता है, और इसलिए इसकी आवश्यकता है
किसी भी फ्लोटिंग-पॉइंट रजिस्टर को सेव और रिस्टोर न करें।

-मीई
अल्फा आर्किटेक्चर अधिकतम के लिए अनुकूलित फ्लोटिंग-पॉइंट हार्डवेयर को लागू करता है
प्रदर्शन। यह ज्यादातर आईईईई फ्लोटिंग-पॉइंट मानक के अनुरूप है। तथापि,
पूर्ण अनुपालन के लिए, सॉफ़्टवेयर सहायता की आवश्यकता है। यह विकल्प कोड उत्पन्न करता है
पूरी तरह से आईईईई-अनुपालन कोड सिवाय कि अचूक झंडा बनाए नहीं रखा गया है (नीचे देखें)।
यदि यह विकल्प चालू है, तो प्रीप्रोसेसर मैक्रो "_IEEE_FP" के दौरान परिभाषित किया गया है
संकलन परिणामी कोड कम कुशल है लेकिन सही ढंग से समर्थन करने में सक्षम है
असामान्य संख्याएं और असाधारण आईईईई मान जैसे नॉट-ए-नंबर और प्लस/माइनस
अनंतता। अन्य अल्फा कम्पाइलर इस विकल्प को कहते हैं -ieee_with_no_inexact.

-मिई-साथ-अचूक
यह इसके जैसा है -मीई जेनरेट कोड को छोड़कर आईईईई भी बनाए रखता है अचूक झंडा.
इस विकल्प को चालू करने से जनरेट किया गया कोड पूरी तरह से अनुपालन आईईईई को लागू करता है
गणित। "_IEEE_FP" के अलावा, "_IEEE_FP_EXACT" को प्रीप्रोसेसर मैक्रो के रूप में परिभाषित किया गया है।
कुछ अल्फा कार्यान्वयन पर परिणामी कोड काफी धीमी गति से निष्पादित हो सकता है
डिफ़ॉल्ट रूप से उत्पन्न कोड। चूंकि बहुत कम कोड है जो इस पर निर्भर करता है
अचूक झंडा, आपको सामान्य रूप से इस विकल्प को निर्दिष्ट नहीं करना चाहिए। अन्य अल्फा कंपाइलर कॉल
इस विकल्प -ieee_with_inexact.

-एमएफपी-ट्रैप-मोड =जाल मोड
यह विकल्प नियंत्रित करता है कि कौन से फ़्लोटिंग-पॉइंट संबंधित ट्रैप सक्षम हैं। अन्य अल्फा
संकलक इस विकल्प को कहते हैं -एफपीटीएम जाल मोड. ट्रैप मोड को चार में से एक पर सेट किया जा सकता है
मान:

n यह डिफ़ॉल्ट (सामान्य) सेटिंग है। सक्षम किए गए एकमात्र जाल हैं
जिन्हें सॉफ्टवेयर में निष्क्रिय नहीं किया जा सकता है (उदाहरण के लिए, जीरो ट्रैप द्वारा विभाजन)।

u द्वारा सक्षम जाल के अलावा n, अंडरफ्लो ट्रैप भी सक्षम हैं।

su पसंद u, लेकिन निर्देशों को सॉफ़्टवेयर पूर्णता के लिए सुरक्षित होने के लिए चिह्नित किया गया है (देखें
विवरण के लिए अल्फा आर्किटेक्चर मैनुअल)।

सुई पसंद su, लेकिन अचूक जाल भी सक्षम हैं।

-एमएफपी-राउंडिंग-मोड =गोलाई-मोड
आईईईई राउंडिंग मोड का चयन करता है। अन्य अल्फा कम्पाइलर इस विकल्प को कहते हैं -एफपीआरएम
गोलाई-मोडगोलाई-मोड इनमें से एक हो सकता है:

n सामान्य आईईईई राउंडिंग मोड। फ़्लोटिंग-पॉइंट नंबर निकटतम की ओर गोल होते हैं
टाई होने की स्थिति में मशीन नंबर या सम मशीन नंबर की ओर।

m शून्य से अनंत की ओर गोल।

c कटा हुआ गोलाई मोड। फ़्लोटिंग-पॉइंट नंबर शून्य की ओर गोल होते हैं।

d डायनेमिक राउंडिंग मोड। फ़्लोटिंग-पॉइंट नियंत्रण रजिस्टर में एक फ़ील्ड (एफपीसीआरदेखते हैं,
अल्फा आर्किटेक्चर रेफरेंस मैनुअल) राउंडिंग मोड को प्रभावी रूप से नियंत्रित करता है। सी
पुस्तकालय इस रजिस्टर को प्लस इन्फिनिटी की ओर गोल करने के लिए आरंभ करता है। इस प्रकार,
जब तक आपका प्रोग्राम संशोधित नहीं करता एफपीसीआर, d प्लस की ओर गोल से मेल खाती है
अनंत

-mtrap-सटीक =जाल-सटीक
अल्फा आर्किटेक्चर में, फ्लोटिंग-पॉइंट ट्रैप सटीक नहीं होते हैं। इसका मतलब है बिना
सॉफ्टवेयर सहायता फ्लोटिंग ट्रैप और प्रोग्राम से पुनर्प्राप्त करना असंभव है
निष्पादन को सामान्य रूप से समाप्त करने की आवश्यकता है। जीसीसी कोड उत्पन्न कर सकता है जो सहायता कर सकता है
ऑपरेटिंग सिस्टम ट्रैप हैंडलर सटीक स्थान निर्धारित करने में जिसके कारण a
फ्लोटिंग-पॉइंट ट्रैप। एक आवेदन की आवश्यकताओं के आधार पर, अलग
परिशुद्धता के स्तर का चयन किया जा सकता है:

p कार्यक्रम की शुद्धता। यह विकल्प डिफ़ॉल्ट है और इसका मतलब है कि केवल एक ट्रैप हैंडलर ही कर सकता है
पहचानें कि कौन सा प्रोग्राम फ़्लोटिंग-पॉइंट अपवाद का कारण बनता है।

f समारोह परिशुद्धता। ट्रैप हैंडलर उस फ़ंक्शन को निर्धारित कर सकता है जिसके कारण a
फ़्लोटिंग-पॉइंट अपवाद।

i निर्देश सटीकता। ट्रैप हैंडलर सटीक निर्देश निर्धारित कर सकता है कि
एक फ़्लोटिंग-पॉइंट अपवाद का कारण बना।

अन्य अल्फा कंपाइलर समकक्ष विकल्प प्रदान करते हैं जिन्हें कहा जाता है -स्कोप_सुरक्षित और
-फिर से शुरू_सुरक्षित.

-मी-अनुरूपक
यह विकल्प उत्पन्न कोड को IEEE अनुरूप के रूप में चिह्नित करता है। आपको इस विकल्प का उपयोग नहीं करना चाहिए
जब तक कि आप भी निर्दिष्ट न करें -mtrap-सटीक = i और या तो -एमएफपी-ट्रैप-मोड = सु or
-एमएफपी-ट्रैप-मोड = सुई. इसका एकमात्र प्रभाव रेखा का उत्सर्जन करना है झंडा 48 समारोह में
जेनरेट की गई असेंबली फ़ाइल का प्रस्तावना। DEC Unix के अंतर्गत, इसका प्रभाव यह है कि
IEEE- अनुरूप गणित पुस्तकालय दिनचर्या में जोड़ा जाएगा।

-एमबिल्ड-स्थिरांक
आम तौर पर जीसीसी यह देखने के लिए 32- या 64-बिट पूर्णांक स्थिरांक की जांच करता है कि क्या यह इसका निर्माण कर सकता है
दो या तीन निर्देशों में छोटे स्थिरांक से। यदि यह नहीं कर सकता है, तो यह आउटपुट करेगा
एक शाब्दिक के रूप में स्थिर और रन टाइम पर डेटा सेगमेंट से इसे लोड करने के लिए कोड उत्पन्न करें।

GCC के निर्माण की आवश्यकता के लिए इस विकल्प का उपयोग करें सब कोड का उपयोग कर पूर्णांक स्थिरांक, भले ही
यह अधिक निर्देश लेता है (अधिकतम छह है)।

साझा लाइब्रेरी डायनेमिक लोडर बनाने के लिए आप आमतौर पर इस विकल्प का उपयोग करेंगे। अपने आप
एक साझा पुस्तकालय, इसे चर खोजने से पहले स्मृति में खुद को स्थानांतरित करना होगा
और अपने स्वयं के डेटा खंड में स्थिरांक।

-माल्फा-अस
-मगास
चुनें कि क्या विक्रेता द्वारा आपूर्ति किए गए कोडांतरक द्वारा कोड तैयार करना है
(-माल्फा-अस) या जीएनयू असेंबलर द्वारा -मगास.

-एमबीडब्ल्यूएक्स
-मनो-बीडब्ल्यूएक्स
-एमसीएक्स
-मनो-सिक्स
-एमफिक्स
-मनो-फिक्स
-एममैक्स
-मनो-मैक्स
इंगित करें कि क्या GCC को वैकल्पिक BWX, CIX, FIX और MAX का उपयोग करने के लिए कोड जनरेट करना चाहिए
निर्देश सेट। डिफ़ॉल्ट सीपीयू द्वारा समर्थित निर्देश सेट का उपयोग करना है
के माध्यम से निर्दिष्ट प्रकार -एमसीपीयू = विकल्प या वह सीपीयू जिस पर जीसीसी बनाया गया था यदि कोई नहीं था
निर्दिष्ट।

-मफ्लोट-वैक्स
-मफ्लोट-आईईईई
कोड उत्पन्न करें जो इसके बजाय VAX F और G फ्लोटिंग-पॉइंट अंकगणित का उपयोग करता है (उपयोग नहीं करता)
IEEE सिंगल और डबल प्रिसिजन।

-मेक्सप्लिसिट-रिलोक्स
-मनो-स्पष्ट-रिलोक्स
पुराने अल्फा असेंबलरों ने इसके अलावा प्रतीक स्थानांतरण उत्पन्न करने का कोई तरीका नहीं दिया
असेंबलर मैक्रोज़। इन मैक्रो का उपयोग इष्टतम निर्देश शेड्यूलिंग की अनुमति नहीं देता है।
2.12 संस्करण के रूप में जीएनयू बिनुटिल्स एक नए सिंटैक्स का समर्थन करता है जो संकलक को करने की अनुमति देता है
स्पष्ट रूप से चिह्नित करें कि कौन से स्थानांतरण किस निर्देश पर लागू होने चाहिए। यह विकल्प है
डिबगिंग के लिए अधिकतर उपयोगी, क्योंकि जीसीसी असेंबलर की क्षमताओं का पता लगाता है जब यह
बनाया गया है और उसके अनुसार डिफ़ॉल्ट सेट करता है।

-एमएसस्मॉल-डेटा
-मिलर्ज-डेटा
. -मेक्सप्लिसिट-रिलोक्स प्रभाव में है, स्थैतिक डेटा के माध्यम से पहुँचा जाता है जीपी-रिश्तेदार
स्थान परिवर्तन। कब -एमएसस्मॉल-डेटा प्रयोग किया जाता है, 8 बाइट लंबी या छोटी वस्तुओं को अंदर रखा जाता है
a छोटा तिथि क्षेत्र (".sdata" और ".sbss" अनुभाग) और 16-बिट . के माध्यम से पहुँचा जा सकता है
$gp रजिस्टर से स्थानांतरण। यह छोटे डेटा क्षेत्र के आकार को सीमित करता है
64KB, लेकिन एक ही निर्देश के माध्यम से वेरिएबल को सीधे एक्सेस करने की अनुमति देता है।

डिफ़ॉल्ट है -मिलर्ज-डेटा. इस विकल्प के साथ डेटा क्षेत्र ठीक नीचे तक सीमित है
2जीबी. जिन प्रोग्रामों को 2GB से अधिक डेटा की आवश्यकता होती है, उन्हें "मॉलोक" या "एमएमएपी" का उपयोग करना चाहिए
कार्यक्रम के डेटा खंड के बजाय ढेर में डेटा आवंटित करें।

साझा पुस्तकालयों के लिए कोड जनरेट करते समय, -एफपीआईसी का तात्पर्य -एमएसस्मॉल-डेटा और -एफपीआईसी
का तात्पर्य -मिलर्ज-डेटा.

-एमएसस्मॉल-पाठ
-मलर्ज-पाठ
. -एमएसस्मॉल-पाठ प्रयोग किया जाता है, संकलक मानता है कि पूरे कार्यक्रम का कोड
(या साझा पुस्तकालय) 4 एमबी में फिट बैठता है, और इस प्रकार एक शाखा निर्देश के साथ उपलब्ध है।
. -एमएसस्मॉल-डेटा उपयोग किया जाता है, तो संकलक यह मान सकता है कि सभी स्थानीय प्रतीक साझा करते हैं
समान $gp मान, और इस प्रकार किसी फ़ंक्शन के लिए आवश्यक निर्देशों की संख्या को कम करता है
4 से 1 तक कॉल करें।

डिफ़ॉल्ट है -मलर्ज-पाठ.

-एमसीपीयू =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
सीपीयू_प्रकार. आप या तो निर्दिष्ट कर सकते हैं EV शैली का नाम या संबंधित चिप संख्या।
GCC प्रोसेसर के EV4, EV5 और EV6 परिवार के लिए शेड्यूलिंग पैरामीटर का समर्थन करता है और
आपके द्वारा निर्दिष्ट प्रोसेसर से निर्देश सेट के लिए डिफ़ॉल्ट मान चुनेंगे।
यदि आप एक प्रोसेसर प्रकार निर्दिष्ट नहीं करते हैं, तो जीसीसी उस प्रोसेसर के लिए डिफ़ॉल्ट होगा जिस पर
कंपाइलर बनाया गया था।

के लिए समर्थित मान सीपीयू_प्रकार रहे

ev4
ev45
21064
EV4 के रूप में अनुसूचियां और कोई निर्देश सेट एक्सटेंशन नहीं है।

ev5
21164
EV5 के रूप में अनुसूचियां और कोई निर्देश सेट एक्सटेंशन नहीं है।

ev56
21164a
EV5 के रूप में अनुसूचियां और BWX एक्सटेंशन का समर्थन करता है।

पीसीए56
21164pc
21164PC
EV5 के रूप में अनुसूचियां और BWX और MAX एक्सटेंशन का समर्थन करता है।

ev6
21264
EV6 के रूप में अनुसूचियां और BWX, FIX और MAX एक्सटेंशन का समर्थन करता है।

ev67
21264a
EV6 के रूप में अनुसूचियां और BWX, CIX, FIX और MAX एक्सटेंशन का समर्थन करता है।

देशी टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो सर्वोत्तम वास्तुकला का चयन करता है
होस्ट प्रोसेसर के लिए विकल्प। -एमसीपीयू = देशी GCC को मान्यता नहीं देने पर कोई प्रभाव नहीं पड़ता
प्रोसेसर।

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए केवल निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार
निर्देश सेट नहीं बदला है।

देशी टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो सर्वोत्तम वास्तुकला का चयन करता है
होस्ट प्रोसेसर के लिए विकल्प। -मट्यून = देशी GCC को मान्यता नहीं देने पर कोई प्रभाव नहीं पड़ता
प्रोसेसर।

-मेमरी-विलंबता =पहर
लेटेंसी सेट करता है जिसे शेड्यूलर को विशिष्ट मेमोरी संदर्भों के लिए मान लेना चाहिए जैसा कि देखा गया है
आवेदन पत्र। यह संख्या उपयोग किए गए मेमोरी एक्सेस पैटर्न पर अत्यधिक निर्भर है
एप्लिकेशन और मशीन पर बाहरी कैश के आकार के अनुसार।

के लिए मान्य विकल्प पहर रहे

संख्या
घड़ी चक्रों का प्रतिनिधित्व करने वाली एक दशमलव संख्या।

L1
L2
L3
मुख्य
कंपाइलर में "विशिष्ट" EV4 और के लिए घड़ी चक्रों की संख्या का अनुमान होता है
लेवल 5, 1 और 2 कैश के लिए EV3 हार्डवेयर (जिसे Dcache, स्कैच और . भी कहा जाता है)
Bcache), साथ ही साथ मुख्य मेमोरी के लिए। ध्यान दें कि L3 केवल EV5 के लिए मान्य है।

दिसम्बर अल्फा/वीएमएस ऑप्शंस

इन -m डीईसी अल्फा/वीएमएस कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-एमवीएमएस-रिटर्न-कोड्स
मुख्य से वीएमएस कंडीशन कोड लौटाएं। डिफ़ॉल्ट रूप से POSIX शैली की स्थिति लौटाना है
(जैसे त्रुटि) कोड।

-एमडीबग-मुख्य =उपसर्ग
पहले रूटीन को फ्लैग करें जिसका नाम से शुरू होता है उपसर्ग के लिए मुख्य दिनचर्या के रूप में
डिबगर।

-mmalloc64
64-बिट मेमोरी आवंटन रूटीन के लिए डिफ़ॉल्ट।

FR30 ऑप्शंस

इन विकल्पों को विशेष रूप से FR30 पोर्ट के लिए परिभाषित किया गया है।

-एमएसस्मॉल-मॉडल
छोटे पता स्थान मॉडल का प्रयोग करें। यह छोटे कोड का उत्पादन कर सकता है, लेकिन यह मानता है
कि सभी प्रतीकात्मक मूल्य और पते 20-बिट श्रेणी में फिट होंगे।

-मनो-लसिम
मान लें कि रनटाइम समर्थन प्रदान किया गया है और इसलिए इसमें शामिल करने की कोई आवश्यकता नहीं है
सिम्युलेटर पुस्तकालय (libsim.a) लिंकर कमांड लाइन पर।

FRV ऑप्शंस

-एमजीपीआर-32
केवल पहले 32 सामान्य प्रयोजन रजिस्टरों का उपयोग करें।

-एमजीपीआर-64
सभी 64 सामान्य प्रयोजन रजिस्टरों का प्रयोग करें।

-एमएफपीआर-32
केवल पहले 32 फ़्लोटिंग-पॉइंट रजिस्टरों का उपयोग करें।

-एमएफपीआर-64
सभी 64 फ्लोटिंग-पॉइंट रजिस्टरों का उपयोग करें।

-महार्ड-फ्लोट
फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए हार्डवेयर निर्देशों का प्रयोग करें।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए लाइब्रेरी रूटीन का प्रयोग करें।

-मॉलोक-सीसी
स्थिति कोड रजिस्टरों को गतिशील रूप से आवंटित करें।

-एमफिक्स्ड-सीसी
कंडीशन कोड रजिस्टरों को गतिशील रूप से आवंटित करने का प्रयास न करें, केवल "icc0" और . का उपयोग करें
"एफसीसी0"।

-एमडीवर्ड
डबल वर्ड इन्सन्स का उपयोग करने के लिए एबीआई बदलें।

-मनो-डवर्ड
दोहरे शब्द निर्देशों का प्रयोग न करें।

-मडबल
फ़्लोटिंग-पॉइंट डबल निर्देशों का प्रयोग करें।

-मनो-डबल
फ़्लोटिंग-पॉइंट डबल निर्देशों का प्रयोग न करें।

-मिमीडिया
मीडिया निर्देशों का प्रयोग करें।

-मनो-मीडिया
मीडिया निर्देशों का प्रयोग न करें।

-ममुलद्द
गुणा का प्रयोग करें और निर्देशों को जोड़ें/घटाएं।

-मनो-मुलद्द
गुणा और निर्देशों को जोड़ने/घटाने का प्रयोग न करें।

-एमएफडीपीआईसी
FDPIC ABI का चयन करें, जो पॉइंटर्स को दर्शाने के लिए फ़ंक्शन डिस्क्रिप्टर का उपयोग करता है
कार्य। बिना किसी PIC/PIE-संबंधित विकल्पों के, इसका तात्पर्य है -एफपीआईई. साथ -एफपीआईसी or
-एफपीआई, यह मानता है कि GOT प्रविष्टियाँ और छोटा डेटा GOT . से 12-बिट की सीमा के भीतर है
आधार पता; साथ -एफपीआईसी or -एफपीआईई, GOT ऑफ़सेट की गणना 32 बिट्स के साथ की जाती है। के साथ
बीफिन-एल्फ लक्ष्य, इस विकल्प का तात्पर्य है -मसिम.

-मिनलाइन-पीएलटी
फ़ंक्शन कॉल में पीएलटी प्रविष्टियों की इनलाइनिंग सक्षम करें जो फ़ंक्शन के लिए ज्ञात नहीं हैं
स्थानीय रूप से बांधें। इसके बिना कोई प्रभाव नहीं है -एमएफडीपीआईसी. यह डिफ़ॉल्ट रूप से सक्षम है अगर
साझा पुस्तकालयों के लिए गति और संकलन के लिए अनुकूलन (यानी, -एफपीआईसी or -एफपीआईसी), या
जब एक अनुकूलन विकल्प जैसे -ओ३ या ऊपर कमांड लाइन में मौजूद है।

-एमटीएलएस
थ्रेड-लोकल कोड जनरेट करते समय एक बड़ा TLS सेगमेंट मान लें।

-एमटीएलएसओ
थ्रेड-लोकल कोड जनरेट करते समय एक बड़े TLS सेगमेंट की कल्पना न करें।

-एमजीप्रेल-आरओई
डेटा के लिए FDPIC ABI में "GPREL" स्थानांतरणों के उपयोग को सक्षम करें जिसे . में जाना जाता है
केवल-पढ़ने के लिए अनुभाग। यह को छोड़कर, डिफ़ॉल्ट रूप से सक्षम है -एफपीआईसी or -एफपीआई: भले ही
यह वैश्विक ऑफ़सेट तालिका को छोटा बनाने में मदद कर सकता है, यह 1 के लिए 4 निर्देश का व्यापार करता है
-एफपीआईसी or -एफपीआईई, यह 3 के लिए 4 निर्देशों का व्यापार करता है, जिनमें से एक को एकाधिक द्वारा साझा किया जा सकता है
प्रतीकों, और यह संदर्भित प्रतीक के लिए एक GOT प्रविष्टि की आवश्यकता से बचा जाता है, इसलिए यह है
जीत की संभावना अधिक है। अगर यह नही तो, -मनो-गप्रेल-आरओ इसे निष्क्रिय करने के लिए इस्तेमाल किया जा सकता है।

-मल्टीलिब-लाइब्रेरी-तस्वीर
(लाइब्रेरी, एफडी नहीं) पिक लाइब्रेरी से लिंक करें। इसका तात्पर्य है -पुस्तकालय-तस्वीर, भी
के रूप में -एफपीआईसी और -एफपीआईसी बिना -एमएफडीपीआईसी. आपको इसे कभी भी स्पष्ट रूप से उपयोग नहीं करना चाहिए।

-mlinked-एफपी
जब भी कोई स्टैक फ़्रेम हो तो हमेशा फ़्रेम पॉइंटर बनाने की EABI आवश्यकता का पालन करें
आवंटित किया जाता है। यह विकल्प डिफ़ॉल्ट रूप से सक्षम है और इसे अक्षम किया जा सकता है
-मनो-लिंक्ड-एफपी.

-मलॉन्ग-कॉल
वर्तमान संकलन इकाई के बाहर कार्यों को कॉल करने के लिए अप्रत्यक्ष पते का उपयोग करें। इस
कार्यों को 32-बिट पता स्थान के भीतर कहीं भी रखने की अनुमति देता है।

-दुर्भावनापूर्ण-लेबल
पिछले पैकेट में nops डालकर लेबल को 8-बाइट की सीमा में संरेखित करने का प्रयास करें।
यह विकल्प केवल तभी प्रभावी होता है जब VLIW पैकिंग सक्षम हो। यह नया नहीं बनाता है
पैकेट; यह केवल मौजूदा लोगों के लिए nops जोड़ता है।

-पुस्तकालय-तस्वीर
स्थिति-स्वतंत्र ईएबीआई कोड उत्पन्न करें।

-मैक-4
केवल पहले चार मीडिया संचायक रजिस्टरों का प्रयोग करें।

-मैक-8
सभी आठ मीडिया संचायक रजिस्टरों का प्रयोग करें।

-एमपीक
VLIW निर्देश पैक करें।

-मनो-पैक
वीएलआईडब्ल्यू निर्देशों को पैक न करें।

-मनो-फ्लैग्स
E_flags में ABI स्विच को चिह्नित न करें।

-mcond-चाल
सशर्त-चाल निर्देशों का उपयोग सक्षम करें (डिफ़ॉल्ट)।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-कंड-मूव
सशर्त-चाल निर्देशों के उपयोग को अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-एमएससीसी
सशर्त सेट निर्देशों (डिफ़ॉल्ट) के उपयोग को सक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-एससीसी
सशर्त सेट निर्देशों का उपयोग अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-mcond-कार्यकारी
सशर्त निष्पादन (डिफ़ॉल्ट) के उपयोग को सक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-कंड-निष्पादन
सशर्त निष्पादन के उपयोग को अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मवलीव-शाखा
VLIW निर्देशों (डिफ़ॉल्ट) में शाखाओं को पैक करने के लिए पास चलाएँ।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-वलीव-शाखा
वीएलआईडब्ल्यू निर्देशों में शाखाओं को पैक करने के लिए पास न चलाएं।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-एममल्टी-कंड-निष्पादन
"&&" और "||" का अनुकूलन सक्षम करें सशर्त निष्पादन (डिफ़ॉल्ट) में।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-मल्टी-कंड-निष्पादन
"&&" और "||" का अनुकूलन अक्षम करें सशर्त निष्पादन में।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनेस्टेड-कंड-निष्पादन
नेस्टेड सशर्त निष्पादन अनुकूलन सक्षम करें (डिफ़ॉल्ट)।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मनो-नेस्टेड-कंड-निष्पादन
नेस्टेड सशर्त निष्पादन अनुकूलन अक्षम करें।

यह स्विच मुख्य रूप से कंपाइलर को डिबग करने के लिए है और संभवत: a . में हटा दिया जाएगा
भविष्य का संस्करण।

-मोप्टिमाइज-सदस्य
यह स्विच संकलक उत्पन्न कोड से अनावश्यक "सदस्य" निर्देशों को हटा देता है।
इसे बाई दिफ़ौल्ट मर्थकृत किया गया है।

-mno-अनुकूलन-सदस्य
यह स्विच से अनावश्यक "सदस्य" निर्देशों को स्वचालित रूप से हटाने को अक्षम करता है
उत्पन्न कोड।

-mtomcat-आँकड़े
टॉमकैट आँकड़ों को प्रिंट करने के लिए गैस का कारण।

-एमसीपीयू =सीपीयू
उस प्रोसेसर प्रकार का चयन करें जिसके लिए कोड जनरेट करना है। संभावित मान हैं एफआरवीई, fr550,
बिल्ला, fr500, fr450, fr405, fr400, fr300 और सरल.

ग्नू / लिनक्स ऑप्शंस

इन -m GNU/Linux लक्ष्यों के लिए विकल्पों को परिभाषित किया गया है:

-एमजीलिबसी
जीएनयू सी पुस्तकालय का प्रयोग करें। यह चालू को छोड़कर डिफ़ॉल्ट है *-*-लिनक्स-*यूक्लिबक* और
*-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

-म्यूक्लिबक
यूक्लिब सी लाइब्रेरी का प्रयोग करें। यह डिफ़ॉल्ट चालू है *-*-लिनक्स-*यूक्लिबक* लक्ष्य।

-मबायोनिक
बायोनिक सी लाइब्रेरी का प्रयोग करें। यह डिफ़ॉल्ट चालू है *-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

-मैंड्रॉइड
एंड्रॉइड प्लेटफॉर्म के साथ संगत कोड संकलित करें। यह डिफ़ॉल्ट चालू है
*-*-लिनक्स-*एंड्रॉइड* लक्ष्य।

संकलन करते समय, यह विकल्प सक्षम करता है -मबायोनिक, -एफपीआईसी, -फनो-अपवाद और -फनो-आरटीटीआई by
चूक जाना। लिंक करते समय, यह विकल्प GCC ड्राइवर को Android-विशिष्ट विकल्प पास करने देता है
लिंकर को। अंत में, इस विकल्प के कारण प्रीप्रोसेसर मैक्रो "__ANDROID__" हो जाता है
परिभाषित।

-tno-एंड्रॉइड-सीसी
के संकलन प्रभाव अक्षम करें -मैंड्रॉइड, यानी, सक्षम न करें -मबायोनिक, -एफपीआईसी,
-फनो-अपवाद और -फनो-आरटीटीआई डिफ़ॉल्ट रूप से

-tno-एंड्रॉइड-एलडी
के लिंकिंग प्रभावों को अक्षम करें -मैंड्रॉइड, अर्थात, मानक Linux लिंकिंग विकल्पों को पास करें
जोड़नेवाला।

H8 / 300 ऑप्शंस

इन -m H8/300 कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-मेरेलैक्स
जब संभव हो, लिंक समय पर कुछ पता संदर्भों को छोटा करें; लिंकर विकल्प का उपयोग करता है
-आराम करें.

-मह H8/300H के लिए कोड जनरेट करें।

-एमएस H8S के लिए कोड जनरेट करें।

-एमएन सामान्य मोड में H8S और H8/300H के लिए कोड जनरेट करें। इस स्विच का उपयोग किया जाना चाहिए
या इसके साथ -मह or -एमएस.

-एमएस2600
H8S/2600 के लिए कोड जनरेट करें। इस स्विच के साथ प्रयोग किया जाना चाहिए -एमएस.

-मिंट32
डिफ़ॉल्ट रूप से "int" डेटा 32 बिट बनाएं।

-मैलिग्न-300
H8/300H और H8S पर, H8/300 के समान संरेखण नियमों का उपयोग करें। डिफ़ॉल्ट
H8/300H और H8S के लिए 4-बाइट सीमाओं पर लॉन्ग और फ्लोट्स को संरेखित करना है।
-मैलिग्न-300 उन्हें 2-बाइट सीमाओं पर गठबंधन करने का कारण बनता है। इस विकल्प का कोई प्रभाव नहीं है
H8/300 पर।

एचपीपीए ऑप्शंस

इन -m कंप्यूटर के एचपीपीए परिवार के लिए विकल्पों को परिभाषित किया गया है:

-मार्च=वास्तुकला-प्रकार
निर्दिष्ट आर्किटेक्चर के लिए कोड जेनरेट करें। के लिए विकल्प वास्तुकला-प्रकार रहे
1.0 पीए 1.0 के लिए, 1.1 पीए 1.1 के लिए, और 2.0 पीए 2.0 प्रोसेसर के लिए। को देखें
/usr/lib/sched.models एचपी-यूएक्स सिस्टम पर उचित आर्किटेक्चर विकल्प निर्धारित करने के लिए
आपकी मशीन के लिए। कम संख्या वाले आर्किटेक्चर के लिए संकलित कोड उच्चतर पर चलेगा
क्रमांकित आर्किटेक्चर, लेकिन दूसरी तरफ नहीं।

-एमपीए-रिस्क-1-0
-एमपीए-रिस्क-1-1
-एमपीए-रिस्क-2-0
के लिए पर्यायवाची -मार्च = 1.0, -मार्च = 1.1, तथा -मार्च = 2.0 क्रमशः.

-एमबिग-स्विच
बड़े स्विच टेबल के लिए उपयुक्त कोड जेनरेट करें। इस विकल्प का प्रयोग तभी करें जब
असेंबलर/लिंकर स्विच टेबल के भीतर सीमा से बाहर शाखाओं के बारे में शिकायत करते हैं।

-एमजंप-इन-देरी
फ़ंक्शन कॉल के विलंब स्लॉट को बिना शर्त जंप निर्देशों के साथ संशोधित करके भरें
फ़ंक्शन कॉल के लिए रिटर्न पॉइंटर सशर्त कूद का लक्ष्य होना चाहिए।

-mdisable-fpregs
फ्लोटिंग-पॉइंट रजिस्टरों को किसी भी तरह से इस्तेमाल होने से रोकें। इसके लिए यह आवश्यक है
फ़्लोटिंग-पॉइंट रजिस्टरों के आलसी संदर्भ स्विचिंग करने वाले कर्नेल को संकलित करना। अगर
आप इस विकल्प का उपयोग करते हैं और फ़्लोटिंग-पॉइंट ऑपरेशंस करने का प्रयास करते हैं, कंपाइलर
गर्भपात।

-mdisable-अनुक्रमण
कंपाइलर को इंडेक्सिंग एड्रेस मोड का उपयोग करने से रोकें। यह कुछ बल्कि टालता है
मैक के तहत एमआईजी जेनरेट कोड संकलित करते समय अस्पष्ट समस्याएं।

-एमनो-स्पेस-रेज
कोड उत्पन्न करें जो मानता है कि लक्ष्य में कोई स्थान रजिस्टर नहीं है। यह जीसीसी को अनुमति देता है
तेजी से अप्रत्यक्ष कॉल उत्पन्न करें और अनस्केल्ड इंडेक्स एड्रेस मोड का उपयोग करें।

ऐसा कोड लेवल 0 PA सिस्टम और कर्नेल के लिए उपयुक्त है।

-mfast-अप्रत्यक्ष-कॉल
कोड उत्पन्न करें जो मानता है कि कॉल कभी भी अंतरिक्ष सीमाओं को पार नहीं करते हैं। यह जीसीसी को अनुमति देता है
उत्सर्जन कोड जो तेजी से अप्रत्यक्ष कॉल करता है।

यह विकल्प साझा पुस्तकालयों या नेस्टेड कार्यों की उपस्थिति में काम नहीं करेगा।

-मफिक्स्ड-रेंज =रजिस्टर-रेंज
दिए गए रजिस्टर रेंज को फिक्स्ड रजिस्टर मानकर कोड जेनरेट करें। एक निश्चित रजिस्टर
वह है जिसे रजिस्टर आवंटक उपयोग नहीं कर सकता है। कर्नेल को संकलित करते समय यह उपयोगी है
कोड। एक रजिस्टर श्रेणी को डैश द्वारा अलग किए गए दो रजिस्टरों के रूप में निर्दिष्ट किया जाता है। विभिन्न
रजिस्टर श्रेणियों को अल्पविराम से अलग करके निर्दिष्ट किया जा सकता है।

-मलॉन्ग-लोड-स्टोर
एचपी-यूएक्स 3 . द्वारा कभी-कभी आवश्यक होने पर 10-निर्देश लोड और स्टोर अनुक्रम उत्पन्न करें
लिंकर। यह के बराबर है +k एचपी कंपाइलर्स के लिए विकल्प।

-पोर्टेबल-रनटाइम
ईएलएफ सिस्टम के लिए एचपी द्वारा प्रस्तावित पोर्टेबल कॉलिंग सम्मेलनों का प्रयोग करें।

-मगास
केवल GAS ही असेंबलर निर्देशों के उपयोग को सक्षम करता है।

-एमएसशेड्यूल=सीपीयू प्रकार
मशीन प्रकार के लिए बाधाओं के अनुसार शेड्यूल कोड सीपीयू प्रकार. विकल्प
एसटी सीपीयू प्रकार रहे 700 7100, 7100LC, 7200, 7300 और 8000। को देखें
/usr/lib/sched.models एचपी-यूएक्स सिस्टम पर उचित शेड्यूलिंग विकल्प निर्धारित करने के लिए
आपकी मशीन। डिफ़ॉल्ट शेड्यूलिंग है 8000.

-मलिंकर-ऑप्ट
HP-UX लिंकर में ऑप्टिमाइज़ेशन पास सक्षम करें। ध्यान दें कि यह प्रतीकात्मक डिबगिंग बनाता है
असंभव। यह एचपी-यूएक्स 8 और एचपी-यूएक्स 9 लिंकर्स में एक बग भी ट्रिगर करता है जिसमें वे
कुछ प्रोग्राम को लिंक करते समय फर्जी त्रुटि संदेश दें।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें। चेतावनी: अपेक्षित
सभी एचपीपीए लक्ष्यों के लिए पुस्तकालय उपलब्ध नहीं हैं। आम तौर पर की सुविधाएं
मशीन के सामान्य सी कंपाइलर का उपयोग किया जाता है, लेकिन यह सीधे क्रॉस में नहीं किया जा सकता है-
संकलन उपयुक्त पुस्तकालय उपलब्ध कराने के लिए आपको अपनी व्यवस्था स्वयं करनी होगी
क्रॉस-संकलन के लिए कार्य।

-एमसॉफ्ट-फ्लोट आउटपुट फ़ाइल में कॉलिंग कन्वेंशन को बदलता है; इसलिए, यह केवल . है
उपयोगी अगर आप संकलित करते हैं सब इस विकल्प के साथ एक कार्यक्रम का। विशेष रूप से, आपको चाहिए
संकलन libgcc.a, पुस्तकालय जो जीसीसी के साथ आता है -एमसॉफ्ट-फ्लोट इसके लिए
काम करने के लिए.

-एमएसआईओ
सर्वर IO के लिए पूर्वनिर्धारित, "_SIO" उत्पन्न करें। डिफ़ॉल्ट है -म्व्सियो. यह उत्पन्न करता है
वर्कस्टेशन IO के लिए पूर्वनिर्धारित, "__hp9000s700", "__hp9000s700__" और "_WSIO"।
ये विकल्प HP-UX और HI-UX के अंतर्गत उपलब्ध हैं।

-एमजीएनयू-एलडी
जीएनयू एलडी विशिष्ट विकल्पों का प्रयोग करें। यह गुजरता है कमरा साझा साझा करने के लिए एक साझा . का निर्माण करते समय
पुस्तकालय। यह डिफ़ॉल्ट है जब जीसीसी को स्पष्ट रूप से या परोक्ष रूप से कॉन्फ़िगर किया गया है
जीएनयू लिंकर। इस विकल्प का कोई प्रभाव नहीं पड़ता जिस पर ld कहा जाता है, यह केवल
उस एलडी को कौन से पैरामीटर पास किए जाते हैं, बदलता है। जिसे एलडी कहा जाता है वह द्वारा निर्धारित किया जाता है
la --साथ-एलडी कॉन्फ़िगर विकल्प, GCC का प्रोग्राम खोज पथ, और अंत में उपयोगकर्ता द्वारा
पथ. जीसीसी द्वारा उपयोग किए जाने वाले लिंकर का उपयोग करके मुद्रित किया जा सकता है कौन कौन से `जीसीसी -प्रिंट-प्रोग-नाम = ld`.
यह विकल्प केवल 64-बिट HP-UX GCC पर उपलब्ध है, अर्थात इसके साथ कॉन्फ़िगर किया गया है
एचपीपीए*64*-*-एचपीयूक्स*.

-एमएचपी-एलडी
एचपी एलडी विशिष्ट विकल्पों का प्रयोग करें। यह गुजरता है -b साझा पुस्तकालय का निर्माण करते समय और
गुजरता +स्वीकार करें बेमेल टाइप सभी लिंक पर एलडी करने के लिए। जब GCC होता है तो यह डिफ़ॉल्ट होता है
एचपी लिंकर के साथ, स्पष्ट रूप से या परोक्ष रूप से कॉन्फ़िगर किया गया। यह विकल्प नहीं है
कोई भी प्रभाव जिस पर एलडी कहा जाता है, यह केवल उस पैरामीटर को बदलता है जो उस पर पारित किया जाता है
एल.डी. जिसे एलडी कहा जाता है वह द्वारा निर्धारित किया जाता है --साथ-एलडी कॉन्फ़िगर विकल्प, GCC's
प्रोग्राम खोज पथ, और अंत में उपयोगकर्ता द्वारा पथ. जीसीसी द्वारा उपयोग किया जाने वाला लिंकर हो सकता है
मुद्रित का उपयोग कर कौन कौन से `जीसीसी -प्रिंट-प्रोग-नाम = ld`. यह विकल्प केवल पर उपलब्ध है
64-बिट एचपी-यूएक्स जीसीसी, यानी कॉन्फ़िगर किया गया एचपीपीए*64*-*-एचपीयूक्स*.

-मलॉन्ग-कॉल
लंबे कॉल अनुक्रमों का उपयोग करने वाला कोड उत्पन्न करें। यह सुनिश्चित करता है कि कॉल हमेशा सक्षम है
लिंकर जनित स्टब्स तक पहुँचने के लिए। डिफ़ॉल्ट केवल लंबी कॉल उत्पन्न करने के लिए है जब
कॉल साइट से फ़ंक्शन या अनुवाद इकाई की शुरुआत तक की दूरी, जैसे
मामला हो सकता है, उपयोग की जा रही शाखा प्रकार द्वारा निर्धारित पूर्वनिर्धारित सीमा से अधिक हो। NS
पीए 7,600,000 . के लिए सामान्य कॉल की सीमा क्रमशः 240,000 और 2.0 बाइट्स है
और पीए 1.X आर्किटेक्चर। सिबकॉल हमेशा 240,000 बाइट्स पर सीमित होते हैं।

दूरियों का उपयोग करते समय कार्यों की शुरुआत से मापा जाता है
-फंक्शन-सेक्शन विकल्प, या का उपयोग करते समय -मगास और -मनो-पोर्टेबल-रनटाइम विकल्पों
एसओएम लिंकर के साथ एचपी-यूएक्स के तहत।

आमतौर पर इस विकल्प का उपयोग करना वांछनीय नहीं है क्योंकि यह प्रदर्शन को कम कर देगा।
हालांकि, यह बड़े अनुप्रयोगों में उपयोगी हो सकता है, खासकर जब आंशिक लिंकिंग है
एप्लिकेशन बनाने के लिए उपयोग किया जाता है।

उपयोग की जाने वाली लंबी कॉलों के प्रकार असेंबलर और लिंकर की क्षमताओं पर निर्भर करते हैं,
और कोड का प्रकार उत्पन्न किया जा रहा है। लंबे समय तक समर्थन करने वाली प्रणालियों पर प्रभाव
पूर्ण कॉल, और लंबी तस्वीर प्रतीक-अंतर या पीसी-सापेक्ष कॉल होना चाहिए
अपेक्षाकृत छोटा। हालांकि, पिक कोड में 32-बिट ईएलएफ सिस्टम पर एक अप्रत्यक्ष कॉल का उपयोग किया जाता है
और यह काफी लंबा है।

-मुनिक्स =यूनिक्स-एसटीडी
संकलक पूर्वनिर्धारित उत्पन्न करें और निर्दिष्ट UNIX मानक के लिए एक स्टार्टफाइल का चयन करें।
के लिए विकल्प यूनिक्स-एसटीडी रहे 93, 95 और 98. 93 सभी एचपी-यूएक्स संस्करणों पर समर्थित है।
95 HP-UX 10.10 और बाद के संस्करण पर उपलब्ध है। 98 HP-UX 11.11 और बाद के संस्करण पर उपलब्ध है।
डिफ़ॉल्ट मान हैं 93 एचपी-यूएक्स 10.00 के लिए, 95 एचपी-यूएक्स 10.10 के लिए हालांकि 11.00, और 98
एचपी-यूएक्स 11.11 और बाद के संस्करण के लिए।

-मुनिक्स=93 जीसीसी 3.3 और 3.4 के समान पूर्वनिर्धारितता प्रदान करता है। -मुनिक्स=95 प्रदान करता है
"XOPEN_UNIX" और "_XOPEN_SOURCE_EXTENDED" और स्टार्टफाइल के लिए अतिरिक्त पूर्वनिर्धारित
unix95.o. -मुनिक्स=98 "_XOPEN_UNIX" के लिए अतिरिक्त पूर्वनिर्धारितता प्रदान करता है,
"_XOPEN_SOURCE_EXTENDED", "_INCLUDE__STDC_A1_SOURCE" और "_INCLUDE_XOPEN_SOURCE_500",
और स्टार्टफाइल unix98.o.

यह महत्वपूर्ण ध्यान दें कि यह विकल्प विभिन्न पुस्तकालय के इंटरफेस को बदलता है
दिनचर्या यह सी पुस्तकालय के परिचालन व्यवहार को भी प्रभावित करता है। इस प्रकार, चरम
इस विकल्प का उपयोग करने में सावधानी की आवश्यकता है।

एक से अधिक यूनिक्स मानकों के साथ काम करने के उद्देश्य से पुस्तकालय कोड का परीक्षण करना चाहिए,
चर सेट करें और पुनर्स्थापित करें __xpg4_विस्तारित_मास्क के रूप में उपयुक्त। अधिकांश जीएनयू सॉफ्टवेयर
यह क्षमता प्रदान नहीं करता है।

-नोलिब्डल्ड
जब libdld.sl खोजने के लिए लिंक विकल्पों की पीढ़ी को दबाएं स्थैतिक विकल्प है
एचपी-यूएक्स 10 और बाद में निर्दिष्ट।

स्थैतिक
libc में setlocale के HP-UX कार्यान्वयन की libdld.sl पर निर्भरता है। वहां
libdld.sl का संग्रह संस्करण नहीं है। इस प्रकार, जब स्थैतिक विकल्प निर्दिष्ट है,
इस निर्भरता को हल करने के लिए विशेष लिंक विकल्पों की आवश्यकता है।

HP-UX 10 और बाद के संस्करण पर, GCC ड्राइवर लिंक करने के लिए आवश्यक विकल्प जोड़ता है
libdld.sl जब स्थैतिक विकल्प निर्दिष्ट है। यह परिणामी बाइनरी का कारण बनता है
गतिशील हो। 64-बिट पोर्ट पर, लिंकर डिफ़ॉल्ट रूप से डायनेमिक बायनेरिज़ उत्पन्न करते हैं
किसी भी मामले। NS -नोलिब्डल्ड विकल्प का उपयोग GCC ड्राइवर को जोड़ने से रोकने के लिए किया जा सकता है
ये लिंक विकल्प।

-धागे
के साथ मल्टीथ्रेडिंग के लिए समर्थन जोड़ें DCE धागा एचपी-यूएक्स के तहत पुस्तकालय। इस विकल्प
प्रीप्रोसेसर और लिंकर दोनों के लिए झंडे सेट करता है।

इंटेल 386 और एएमडी x86-64 ऑप्शंस

इन -m कंप्यूटर के i386 और x86-64 परिवार के लिए विकल्पों को परिभाषित किया गया है:

-मट्यून =सीपीयू प्रकार
ट्यून टू सीपीयू प्रकार उत्पन्न कोड के बारे में लागू सब कुछ, ABI को छोड़कर
और उपलब्ध निर्देशों का सेट। के लिए विकल्प सीपीयू प्रकार यह है:

सामान्य
सबसे सामान्य IA32/AMD64/EM64T प्रोसेसर के लिए अनुकूलित कोड तैयार करें। अगर तुम
उस सीपीयू को जानें जिस पर आपका कोड चलेगा, तो आपको संबंधित का उपयोग करना चाहिए
-मट्यून के बजाय विकल्प -मट्यून = सामान्य. लेकिन, अगर आप नहीं जानते कि वास्तव में CPU क्या है
आपके आवेदन के उपयोगकर्ताओं के पास होगा, तो आपको इस विकल्प का उपयोग करना चाहिए।

जैसे ही बाजार में नए प्रोसेसर तैनात किए जाते हैं, इस विकल्प का व्यवहार
बदल जाएगा। इसलिए, यदि आप GCC के नए संस्करण में अपग्रेड करते हैं, तो कोड
जनरेट किया गया विकल्प उन प्रोसेसर को प्रतिबिंबित करने के लिए बदल जाएगा जो सबसे आम थे जब
जीसीसी का वह संस्करण जारी किया गया था।

कोई नहीं है -मार्च = सामान्य विकल्प क्योंकि मार्च निर्देश सेट को इंगित करता है
कंपाइलर उपयोग कर सकता है, और सभी पर लागू होने वाला कोई सामान्य निर्देश सेट नहीं है
संसाधक इसके विपरीत, -मट्यून प्रोसेसर को इंगित करता है (या, इस मामले में,
प्रोसेसर का संग्रह) जिसके लिए कोड अनुकूलित किया गया है।

देशी
यह प्रोसेसर को निर्धारित करके संकलन समय पर ट्यून करने के लिए सीपीयू का चयन करता है
संकलन मशीन का प्रकार। का उपयोग करते हुए -मट्यून = देशी अनुकूलित कोड का उत्पादन करेगा
स्थानीय मशीन के लिए चयनित निर्देश सेट की बाधाओं के तहत।
का प्रयोग -मार्च = देशी स्थानीय द्वारा समर्थित सभी निर्देश सबसेट को सक्षम करेगा
मशीन (इसलिए परिणाम विभिन्न मशीनों पर नहीं चल सकता है)।

i386
मूल इंटेल का i386 CPU।

i486
इंटेल का i486 सीपीयू। (इस चिप के लिए कोई शेड्यूलिंग लागू नहीं की गई है।)

आई३८६, पेंटियम
बिना एमएमएक्स सपोर्ट वाला इंटेल पेंटियम सीपीयू।

पेंटियम-एमएमएक्स
एमएमएक्स निर्देश सेट समर्थन के साथ पेंटियम कोर पर आधारित इंटेल पेंटियम एमएमएक्स सीपीयू।

पेंटियमप्रो
इंटेल पेंटियमप्रो सीपीयू।

i686
"जेनेरिक" के समान, लेकिन जब "मार्च" विकल्प के रूप में उपयोग किया जाता है, तो पेंटियमप्रो निर्देश सेट
उपयोग किया जाएगा, इसलिए कोड सभी i686 परिवार चिप्स पर चलेगा।

पेंटियम2
एमएमएक्स निर्देश सेट समर्थन के साथ पेंटियमप्रो कोर पर आधारित इंटेल पेंटियम2 सीपीयू।

पेंटियम 3, पेंटियम3m
एमएमएक्स और एसएसई निर्देश सेट के साथ पेंटियमप्रो कोर पर आधारित इंटेल पेंटियम3 सीपीयू
समर्थन करें.

पेंटियम एम
MMX, SSE और SSE3 निर्देश सेट के साथ Intel Pentium2 CPU का कम पावर संस्करण
सहयोग। Centrino नोटबुक द्वारा उपयोग किया जाता है।

पेंटियम 4, पेंटियम4m
MMX, SSE और SSE4 निर्देश सेट समर्थन के साथ Intel Pentium2 CPU।

प्रेस्कॉट
MMX, SSE, SSE4 और SSE2 निर्देश के साथ Intel Pentium3 CPU का उन्नत संस्करण
समर्थन सेट करें।

नोकोना
4-बिट एक्सटेंशन, MMX, SSE, SSE64 और . के साथ Intel Pentium2 CPU का उन्नत संस्करण
SSE3 निर्देश सेट समर्थन।

core2
2-बिट एक्सटेंशन के साथ Intel Core64 CPU, MMX, SSE, SSE2, SSE3 और SSSE3 निर्देश
समर्थन सेट करें।

कोरी८९९
7-बिट एक्सटेंशन के साथ Intel Core i64 CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 और
SSE4.2 निर्देश सेट समर्थन।

कोरी7-एवीएक्स
7-बिट एक्सटेंशन के साथ Intel Core i64 CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES और PCLMUL निर्देश सेट समर्थन।

कोर-एवीएक्स-आई
64-बिट एक्सटेंशन के साथ इंटेल कोर सीपीयू, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND और F16C निर्देश सेट समर्थन।

परमाणु
इंटेल एटम सीपीयू 64-बिट एक्सटेंशन, एमएमएक्स, एसएसई, एसएसई 2, एसएसई 3 और एसएसएसई 3 निर्देश के साथ
समर्थन सेट करें।

k6 एमएमएक्स निर्देश सेट समर्थन के साथ एएमडी के6 सीपीयू।

के6-2, k6-3
MMX और 6DNow के साथ AMD K3 CPU के बेहतर संस्करण! निर्देश सेट समर्थन।

एथलॉन, एथलॉन-टबर्ड
एमएमएक्स के साथ एएमडी एथलॉन सीपीयू, 3dNOW!, 3DNow बढ़ाया! और SSE प्रीफ़ेच निर्देश
समर्थन करें.

एथलॉन-4, एथलॉन-एक्सपी, एथलॉन-एमपी
MMX, 3DNow! के साथ बेहतर AMD Athlon CPU, 3DNow! और पूर्ण एसएसई निर्देश
समर्थन सेट करें।

के 8, आप्टेरॉन, एथलॉन 64, एथलॉन-एफएक्स
AMD K8 कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (यह एमएमएक्स को सुपरसेट करता है,
SSE, SSE2, 3DNow!, 3DNow बढ़ाया! और 64-बिट निर्देश सेट एक्सटेंशन।)

के8-एसएसई3, आप्टेरॉन-एसएसई3 एथलॉन64-एसएसई3
SSE8 निर्देश सेट समर्थन के साथ k64, opteron और athlon3 के बेहतर संस्करण।

एएमडीएफएएम10, बार्सिलोना
AMD परिवार 10h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट्स MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, एन्हांस्ड 3DNow!, ABM और 64-बिट
निर्देश सेट एक्सटेंशन।)

बीडीवर1
AMD परिवार 15h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM और 64-बिट निर्देश सेट एक्सटेंशन।)

बीडीवर2
AMD परिवार 15h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट BMI, TBM, F16C, FMA, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM और 64-बिट निर्देश सेट एक्सटेंशन।)

btver1
AMD परिवार 14h कोर आधारित CPU x86-64 निर्देश सेट समर्थन के साथ। (इस
सुपरसेट MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM और 64-बिट निर्देश सेट
एक्सटेंशन।)

चरखी-c6
IDT Winchip C6 CPU, अतिरिक्त MMX निर्देश सेट के साथ i486 के समान व्यवहार करता है
समर्थन करें.

विंचिप2
IDT Winchip2 CPU, अतिरिक्त MMX और 486DNow के साथ i3 की तरह ही व्यवहार करता है!
निर्देश सेट समर्थन।

c3 MMX और 3DNow के साथ C3 CPU के माध्यम से! निर्देश सेट समर्थन। (कोई शेड्यूलिंग नहीं है
इस चिप के लिए लागू किया गया।)

c3-2
MMX और SSE निर्देश सेट समर्थन के साथ C3-2 CPU के माध्यम से। (कोई शेड्यूलिंग नहीं है
इस चिप के लिए लागू किया गया।)

जीओड
MMX और 3DNow के साथ एंबेडेड AMD CPU! निर्देश सेट समर्थन।

एक विशिष्ट चुनते समय सीपीयू प्रकार उसके लिए चीजों को उचित रूप से निर्धारित करेगा
विशेष चिप, संकलक कोई भी कोड उत्पन्न नहीं करेगा जो पर नहीं चलता है
बिना डिफ़ॉल्ट मशीन प्रकार -मार्च=सीपीयू प्रकार विकल्प का उपयोग किया जा रहा है। उदाहरण के लिए, यदि
जीसीसी को i686-पीसी-लिनक्स-ग्नू के लिए कॉन्फ़िगर किया गया है -मट्यून=पेंटियम4 कोड उत्पन्न करेगा कि
पेंटियम4 के लिए ट्यून किया गया है लेकिन यह अभी भी i686 मशीनों पर चलेगा।

-मार्च=सीपीयू प्रकार
मशीन के प्रकार के लिए निर्देश उत्पन्न करें सीपीयू प्रकार. के लिए विकल्प सीपीयू प्रकार हैं
के लिए के समान -मट्यून. इसके अलावा, निर्दिष्ट करना -मार्च=सीपीयू प्रकार का तात्पर्य -मट्यून =सीपीयू प्रकार.

-एमसीपीयू =सीपीयू प्रकार
के लिए पदावनत पर्यायवाची -मट्यून.

-एमएफपीमठ=इकाई
चयनित इकाई के लिए फ्लोटिंग-पॉइंट अंकगणित उत्पन्न करें इकाई. के लिए विकल्प इकाई यह है:

387 अधिकांश चिप्स पर मौजूद मानक 387 फ्लोटिंग-पॉइंट कोप्रोसेसर का उपयोग करें
और अन्यथा अनुकरण किया। इस विकल्प के साथ संकलित कोड लगभग हर जगह चलता है।
अस्थायी परिणामों की गणना सटीकता के बजाय 80-बिट परिशुद्धता में की जाती है
प्रकार द्वारा निर्दिष्ट किया गया है, जिसके परिणामस्वरूप अधिकांश . की तुलना में थोड़ा भिन्न परिणाम प्राप्त हुए हैं
अन्य चिप्स। देखो -फ्लोट-स्टोर अधिक विस्तृत विवरण के लिए।

यह i386 कंपाइलर के लिए डिफ़ॉल्ट विकल्प है।

ईएसएस SSE निर्देश सेट में मौजूद अदिश फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें। इस
निर्देश सेट पेंटियम3 और नए चिप्स द्वारा समर्थित है, एएमडी लाइन में
एथलॉन -4, एथलॉन-एक्सपी और एथलॉन-एमपी चिप्स। SSE निर्देश का पुराना संस्करण
सेट केवल एकल-सटीक अंकगणित का समर्थन करता है, इस प्रकार डबल और विस्तारित-
सटीक अंकगणित अभी भी 387 का उपयोग करके किया जाता है। एक बाद का संस्करण, केवल में मौजूद है
पेंटियम4 और भविष्य के एएमडी x86-64 चिप्स, डबल-सटीक अंकगणित का समर्थन करते हैं
भी है.

i386 कंपाइलर के लिए, आपको उपयोग करने की आवश्यकता है -मार्च=सीपीयू प्रकार, -एमएसएसई or -एमएसएसई2 स्विच
एसएसई एक्सटेंशन को सक्षम करने और इस विकल्प को प्रभावी बनाने के लिए। x86-64 कंपाइलर के लिए,
ये एक्सटेंशन डिफ़ॉल्ट रूप से सक्षम हैं।

परिणामी कोड अधिकांश मामलों में काफी तेज होना चाहिए और
387 कोड की संख्यात्मक अस्थिरता की समस्याओं से बचें, लेकिन कुछ मौजूदा तोड़ सकते हैं
कोड जो अस्थायी रूप से 80 बिट होने की अपेक्षा करता है।

यह x86-64 कंपाइलर के लिए डिफ़ॉल्ट विकल्प है।

एसएसई,387
एसएसई+387
के छात्रों
दोनों निर्देश सेटों का एक साथ उपयोग करने का प्रयास करें। यह प्रभावी रूप से दोगुना
उपलब्ध रजिस्टरों की मात्रा और चिप्स पर अलग निष्पादन इकाइयों के साथ 387
और एसएसई निष्पादन संसाधन भी। इस विकल्प का सावधानी से उपयोग करें, क्योंकि यह अभी भी है
प्रयोगात्मक, क्योंकि जीसीसी रजिस्टर आवंटनकर्ता अलग मॉडल नहीं बनाता है
कार्यात्मक इकाइयाँ अच्छी तरह से अस्थिर प्रदर्शन के परिणामस्वरूप।

-मासम =बोली
चयनित का उपयोग करके आउटपुट एएसएम निर्देश बोली. समर्थित विकल्प हैं इंटेल or तक
(डिफ़ॉल्ट एक)। डार्विन समर्थन नहीं करता इंटेल.

-मिई-एफपी
-मनो-आईईईई-एफपी
नियंत्रित करें कि कंपाइलर IEEE फ़्लोटिंग-पॉइंट तुलनाओं का उपयोग करता है या नहीं। इन
उस मामले को सही ढंग से संभालें जहां तुलना का परिणाम अनियंत्रित है।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें। चेतावनी: अपेक्षित
पुस्तकालय जीसीसी का हिस्सा नहीं हैं। आम तौर पर मशीन की सामान्य सी की सुविधाएं
कंपाइलर का उपयोग किया जाता है, लेकिन यह सीधे क्रॉस-संकलन में नहीं किया जा सकता है। आपको चाहिए
क्रॉस- के लिए उपयुक्त पुस्तकालय कार्यों को प्रदान करने के लिए अपनी व्यवस्था करें
संकलन।

उन मशीनों पर जहां कोई फ़ंक्शन 80387 रजिस्टर में फ़्लोटिंग-पॉइंट परिणाम देता है
स्टैक, कुछ फ़्लोटिंग-पॉइंट ऑपकोड उत्सर्जित हो सकते हैं, भले ही -एमसॉफ्ट-फ्लोट प्रयोग किया जाता है।

-मनो-एफपी-रिट-इन-387
कार्यों के वापसी मूल्यों के लिए एफपीयू रजिस्टरों का उपयोग न करें।

सामान्य कॉलिंग सम्मेलन में "फ्लोट" और "डबल" प्रकार के फ़ंक्शन रिटर्न मान होते हैं
एफपीयू रजिस्टर में, भले ही एफपीयू न हो। विचार यह है कि ऑपरेटिंग सिस्टम
एक एफपीयू का अनुकरण करना चाहिए।

विकल्प -मनो-एफपी-रिट-इन-387 सामान्य सीपीयू में ऐसे मूल्यों को वापस करने का कारण बनता है
इसके बजाय रजिस्टर।

-मनो-फैंसी-गणित-387
कुछ 387 एमुलेटर "sin", "cos" और "sqrt" निर्देशों का समर्थन नहीं करते हैं
387. उन निर्देशों को उत्पन्न करने से बचने के लिए इस विकल्प को निर्दिष्ट करें। यह विकल्प है
फ्रीबीएसडी, ओपनबीएसडी और नेटबीएसडी पर डिफ़ॉल्ट। यह विकल्प तब ओवरराइड होता है जब मार्च
इंगित करता है कि लक्ष्य सीपीयू में हमेशा एक एफपीयू होगा और इसलिए निर्देश नहीं होगा
अनुकरण की जरूरत है। संशोधन 2.6.1 के अनुसार, ये निर्देश तब तक उत्पन्न नहीं होते जब तक आप
भी उपयोग करें -फनसेफ-गणित-अनुकूलन स्विच.

-मैलिग्न-डबल
-मनो-संरेखण-डबल
नियंत्रित करें कि क्या GCC a . पर "डबल", "लॉन्ग डबल", और "लॉन्ग लॉन्ग" वेरिएबल को अलाइन करता है
दो-शब्द की सीमा या एक-शब्द की सीमा। दो-शब्दों पर "डबल" चर संरेखित करना
सीमा कोड उत्पन्न करती है जो कुछ हद तक तेज चलती है a पेंटियम अधिक की कीमत पर
याद।

x86-64 पर, -मैलिग्न-डबल डिफ़ॉल्ट रूप से सक्षम है।

चेतावनी: यदि आप उपयोग करते हैं -मैलिग्न-डबल स्विच, उपरोक्त प्रकार वाली संरचनाएं
प्रकाशित एप्लिकेशन बाइनरी इंटरफ़ेस की तुलना में अलग तरीके से संरेखित किया जाएगा
386 के लिए विनिर्देश और कोड में संरचनाओं के साथ बाइनरी संगत नहीं होंगे
उस स्विच के बिना संकलित।

-एम 96 बिट-लॉन्ग-डबल
-एम 128 बिट-लॉन्ग-डबल
ये स्विच "लॉन्ग डबल" प्रकार के आकार को नियंत्रित करते हैं। i386 एप्लिकेशन बाइनरी
इंटरफ़ेस आकार को 96 बिट्स निर्दिष्ट करता है, इसलिए -एम 96 बिट-लॉन्ग-डबल में डिफ़ॉल्ट है
32-बिट मोड।

आधुनिक आर्किटेक्चर (पेंटियम और नए) 8- के साथ संरेखित होने के लिए "लॉन्ग डबल" पसंद करते हैं
या 16-बाइट सीमा। एबीआई के अनुरूप सरणियों या संरचनाओं में, यह नहीं है
मुमकिन। तो निर्दिष्ट करना -एम 128 बिट-लॉन्ग-डबल "लॉन्ग डबल" को 16-बाइट में संरेखित करता है
अतिरिक्त 32-बिट शून्य के साथ "लॉन्ग डबल" को पैडिंग करके सीमा।

X86-64 कंपाइलर में, -एम 128 बिट-लॉन्ग-डबल इसकी ABI के रूप में डिफ़ॉल्ट पसंद है
निर्दिष्ट करता है कि "लॉन्ग डबल" को 16-बाइट सीमा पर संरेखित किया जाना है।

ध्यान दें कि इनमें से कोई भी विकल्प x87 मानक पर कोई अतिरिक्त सटीकता सक्षम नहीं करता है
"लॉन्ग डबल" के लिए 80 बिट्स का।

चेतावनी: यदि आप अपने लक्ष्य ABI, संरचनाओं और के लिए डिफ़ॉल्ट मान को ओवरराइड करते हैं
"लॉन्ग डबल" वेरिएबल वाले सरणियाँ अपने आकार के साथ-साथ फ़ंक्शन को भी बदल देंगी
"लॉन्ग डबल" लेने वाले फंक्शन के लिए कॉलिंग कन्वेंशन को संशोधित किया जाएगा। इसलिए वे
इसके बिना संकलित कोड में सरणियों या संरचनाओं के साथ बाइनरी संगत नहीं होगा
स्विच.

-मिलर्ज-डेटा-दहलीज =संख्या
. -एमसीमॉडल = मध्यम निर्दिष्ट है, डेटा . से अधिक है द्वार बड़े पैमाने पर रखा गया है
डेटा अनुभाग। यह मान बाइनरी से जुड़े सभी ऑब्जेक्ट में समान होना चाहिए
और 65535 पर डिफॉल्ट करता है।

-एमआरटीडी
एक अलग फ़ंक्शन-कॉलिंग कन्वेंशन का उपयोग करें, जिसमें फ़ंक्शन जो एक निश्चित लेते हैं
तर्कों की संख्या "रिट" के साथ वापस आती है संख्या निर्देश, जो उनके तर्कों को पॉप करता है
लौटते समय। यह कॉलर में एक निर्देश बचाता है क्योंकि इसकी कोई आवश्यकता नहीं है
वहां तर्क पॉप करें।

आप निर्दिष्ट कर सकते हैं कि इस कॉलिंग अनुक्रम के साथ एक व्यक्तिगत फ़ंक्शन को कॉल किया जाता है
फ़ंक्शन विशेषता stdcall. आप इसे ओवरराइड भी कर सकते हैं -एमआरटीडी का उपयोग करके विकल्प
समारोह विशेषता cdecl.

चेतावनी: यह कॉलिंग कन्वेंशन सामान्य रूप से यूनिक्स पर उपयोग किए जाने वाले के साथ असंगत है,
इसलिए यदि आपको यूनिक्स कंपाइलर के साथ संकलित पुस्तकालयों को कॉल करने की आवश्यकता है तो आप इसका उपयोग नहीं कर सकते हैं।

साथ ही, आपको उन सभी कार्यों के लिए फ़ंक्शन प्रोटोटाइप प्रदान करना होगा जो चर लेते हैं
तर्कों की संख्या ("प्रिंटफ" सहित); अन्यथा गलत कोड जनरेट हो जाएगा
उन कार्यों के लिए कॉल के लिए।

इसके अलावा, यदि आप किसी फ़ंक्शन को बहुत अधिक कॉल करते हैं, तो गंभीर रूप से गलत कोड का परिणाम होगा
तर्क। (आम तौर पर, अतिरिक्त तर्कों को हानिरहित रूप से अनदेखा किया जाता है।)

-मृगपर्म =संख्या
नियंत्रित करें कि पूर्णांक तर्कों को पारित करने के लिए कितने रजिस्टरों का उपयोग किया जाता है। डिफ़ॉल्ट रूप से, नहीं
तर्कों को पारित करने के लिए रजिस्टरों का उपयोग किया जाता है, और अधिकतम 3 रजिस्टरों का उपयोग किया जा सकता है। आप ऐसा कर सकते हैं
फ़ंक्शन विशेषता का उपयोग करके किसी विशिष्ट फ़ंक्शन के लिए इस व्यवहार को नियंत्रित करें regparm.

चेतावनी: यदि आप इस स्विच का उपयोग करते हैं, और संख्या शून्य नहीं है, तो आपको सभी मॉड्यूल बनाने होंगे
किसी भी पुस्तकालय सहित, समान मूल्य के साथ। इसमें सिस्टम लाइब्रेरी शामिल हैं और
स्टार्टअप मॉड्यूल।

-मसेरेगपार्म
फ्लोट और दोहरे तर्कों और वापसी मूल्यों के लिए एसएसई रजिस्टर पासिंग कन्वेंशन का उपयोग करें।
फ़ंक्शन विशेषता का उपयोग करके आप किसी विशिष्ट फ़ंक्शन के लिए इस व्यवहार को नियंत्रित कर सकते हैं
सेरेगपर्म.

चेतावनी: यदि आप इस स्विच का उपयोग करते हैं तो आपको समान मान वाले सभी मॉड्यूल बनाने होंगे,
किसी भी पुस्तकालय सहित। इसमें सिस्टम लाइब्रेरी और स्टार्टअप मॉड्यूल शामिल हैं।

-mvect8-रिट-इन-मेम
एमएमएक्स रजिस्टरों के बजाय स्मृति में 8-बाइट वैक्टर लौटाएं। यह डिफ़ॉल्ट चालू है
Solaris@tie{}8 और 9 और VxWorks सन स्टूडियो कम्पाइलर के ABI से तब तक मेल खाएंगे जब तक
संस्करण 12. बाद के संकलक संस्करण (स्टूडियो 12 अपडेट@टाई{}1 से शुरू) का अनुसरण करें
अन्य x86 लक्ष्यों द्वारा उपयोग किया जाने वाला ABI, जो Solaris@tie{}10 ​​और बाद के संस्करणों पर डिफ़ॉल्ट है।
केवल यदि आपको मौजूदा कोड के साथ संगत रहने की आवश्यकता है तो इस विकल्प का उपयोग करें
वे पिछले संकलक संस्करण या जीसीसी के पुराने संस्करण।

-एमपीसी32
-एमपीसी64
-एमपीसी80
80387 फ्लोटिंग-पॉइंट परिशुद्धता को 32, 64 या 80 बिट्स पर सेट करें। कब -एमपीसी32 अधिकृत है,
फ़्लोटिंग-पॉइंट ऑपरेशंस के परिणामों के महत्व को 24 बिट्स तक गोल किया जाता है
(एकल परिशुद्धता); -एमपीसी64 फ़्लोटिंग-पॉइंट के परिणामों के महत्व को गोल करता है
53 बिट्स (डबल प्रिसिजन) और . के लिए ऑपरेशन -एमपीसी80 परिणामों के महत्व को पूरा करता है
फ़्लोटिंग-पॉइंट ऑपरेशंस को 64 बिट्स (विस्तारित डबल परिशुद्धता) तक, जो है
चूक जाना। जब इस विकल्प का उपयोग किया जाता है, तो उच्च परिशुद्धता में फ़्लोटिंग-पॉइंट ऑपरेशंस होते हैं
स्पष्ट रूप से FPU नियंत्रण शब्द सेट किए बिना प्रोग्रामर के लिए उपलब्ध नहीं है।

फ्लोटिंग-पॉइंट ऑपरेशंस के राउंडिंग को डिफ़ॉल्ट 80 बिट से कम पर सेट कर सकते हैं
कुछ कार्यक्रमों को 2% या अधिक गति दें। ध्यान दें कि कुछ गणितीय पुस्तकालय यह मानते हैं कि
विस्तारित-सटीक (80-बिट) फ़्लोटिंग-पॉइंट संचालन डिफ़ॉल्ट रूप से सक्षम होते हैं; दिनचर्या
ऐसे पुस्तकालयों में सटीकता का महत्वपूर्ण नुकसान हो सकता है, आमतौर पर ऐसा-
"विनाशकारी रद्दीकरण" कहा जाता है, जब इस विकल्प का उपयोग सटीकता को सेट करने के लिए किया जाता है
विस्तारित परिशुद्धता से कम।

-mstackrealign
प्रवेश पर स्टैक को पुन: संरेखित करें। इंटेल x86 पर, -mstackrealign विकल्प उत्पन्न होगा
एक वैकल्पिक प्रस्तावना और उपसंहार जो यदि आवश्यक हो तो रन-टाइम स्टैक को पुन: संरेखित करता है।
यह पुराने कोड को मिलाने का समर्थन करता है जो आधुनिक कोड के साथ 4-बाइट संरेखित स्टैक रखता है
जो एसएसई संगतता के लिए 16-बाइट स्टैक रखता है। विशेषता भी देखें
"force_align_arg_pointer", व्यक्तिगत कार्यों पर लागू होता है।

-mpreferred-ढेर-सीमा =संख्या
स्टैक की सीमा को 2 से ऊपर उठाकर रखने का प्रयास करें संख्या बाइट सीमा। अगर
-mpreferred-ढेर-सीमा निर्दिष्ट नहीं है, डिफ़ॉल्ट 4 (16 बाइट्स या 128 बिट) है।

चेतावनी: SSE एक्सटेंशन के साथ x86-64 आर्किटेक्चर के लिए कोड जनरेट करते समय
विकलांग, -मप्रीफर्ड-स्टैक-बाउंड्री=3 स्टैक सीमा को संरेखित रखने के लिए इस्तेमाल किया जा सकता है
8 बाइट सीमा तक। आपको सभी मॉड्यूल बनाने होंगे -मप्रीफर्ड-स्टैक-बाउंड्री=3,
किसी भी पुस्तकालय सहित। इसमें सिस्टम लाइब्रेरी और स्टार्टअप मॉड्यूल शामिल हैं।

-मिनकमिंग-स्टैक-सीमा =संख्या
मान लें कि आने वाले स्टैक को 2 से ऊपर उठाकर संरेखित किया गया है संख्या बाइट सीमा। अगर
-मिनकमिंग-स्टैक-सीमा निर्दिष्ट नहीं है, द्वारा निर्दिष्ट किया गया है
-mpreferred-ढेर-सीमा इस्तेमाल किया जाएगा।

Pentium और PentiumPro पर, "डबल" और "लॉन्ग डबल" मानों को a . के साथ संरेखित किया जाना चाहिए
8-बाइट सीमा (देखें -मैलिग्न-डबल) या महत्वपूर्ण रन टाइम प्रदर्शन भुगतना
दंड। पेंटियम III पर, स्ट्रीमिंग SIMD एक्सटेंशन (SSE) डेटा प्रकार "__m128" मई
अगर यह 16-बाइट गठबंधन नहीं है तो ठीक से काम नहीं करता है।

स्टैक पर इस मान का उचित संरेखण सुनिश्चित करने के लिए, स्टैक की सीमा इस प्रकार होनी चाहिए
स्टैक पर संग्रहीत किसी भी मूल्य द्वारा आवश्यक के रूप में संरेखित। इसके अलावा, हर समारोह
इस तरह उत्पन्न किया जाना चाहिए कि यह ढेर को गठबंधन रखता है। इस प्रकार एक समारोह बुला रहा है
निचले स्तर के साथ संकलित फ़ंक्शन से उच्च पसंदीदा स्टैक सीमा के साथ संकलित
पसंदीदा स्टैक सीमा सबसे अधिक संभावना स्टैक को गलत तरीके से संरेखित करेगी। ये सिफ़ारिश की जाती है कि
कॉलबैक का उपयोग करने वाले पुस्तकालय हमेशा डिफ़ॉल्ट सेटिंग का उपयोग करते हैं।

यह अतिरिक्त संरेखण अतिरिक्त स्टैक स्थान का उपभोग करता है, और आम तौर पर कोड बढ़ाता है
आकार। कोड जो स्टैक स्पेस उपयोग के प्रति संवेदनशील है, जैसे एम्बेडेड सिस्टम और
ऑपरेटिंग सिस्टम कर्नेल, पसंदीदा संरेखण को कम करना चाह सकते हैं
-मप्रीफर्ड-स्टैक-बाउंड्री=2.

-एमएमएमएक्स
-मनो-एमएमएक्स
-एमएसएसई
-मनो-एसएसई
-एमएसएसई2
-मनो-एसएसई2
-एमएसएसई3
-मनो-एसएसई3
-एमएसएसएसई3
-मनो-एसएसएसई3
-एमएसएसई4.1
-मनो-एसएसई4.1
-एमएसएसई4.2
-मनो-एसएसई4.2
-एमएसएसई4
-मनो-एसएसई4
-मावक्स
-मनो-एवीएक्स
-मावएक्स2
-मनो-एवीएक्स2
-मासे
-मनो-एईएस
-एमपीसीएलमुल
-मनो-पीसीएलमुल
-एमएफएसजीएसबेस
-मनो-एफएसजीएसबेस
-एमआरडीआरएनडी
-मनो-रंड
-एमएफ16सी
-मनो-f16c
-एमएफएमए
-मनो-एफएमए
-एमएसएसई4ए
-मनो-एसएसई4ए
-एमएफएमए4
-मनो-fma4
-मक्सोप
-मनो-एक्सओपी
-एमएलडब्ल्यूपी
-मनो-एलडब्ल्यूपी
-m3dnow
-मनो-3dnow
-एमपीओपीसीएनटी
-मनो-पॉपसीएनटी
-मबम
-मनो-एबीएम
-एमबीएमआई
-एमबीएमआई2
-मनो-बीएमआई
-एमनो-बीएमआई2
-एमएलजेडसीएनटी
-मनो-lzcnt
-एमटीबीएम
-एमनो-टीबीएम
ये स्विच MMX, SSE, SSE2, SSE3 में निर्देशों के उपयोग को सक्षम या अक्षम करते हैं।
SSSE3, SSE4.1, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, SSE4A, FMA4, XOP,
LWP, ABM, BMI, BMI2, LZCNT या 3DNow!
विस्तारित निर्देश सेट। ये एक्सटेंशन बिल्ट-इन के रूप में भी उपलब्ध हैं
कार्य: देखें X86 अन्तर्निर्मित में कार्य, सक्षम कार्यों के विवरण के लिए और
इन स्विच द्वारा अक्षम।

SSE/SSE2 निर्देशों को फ्लोटिंग-पॉइंट कोड से स्वचालित रूप से उत्पन्न करने के लिए (as .)
387 निर्देशों के विपरीत), देखें -एमएफपीएमथ = एसएसई.

GCC SSEx निर्देशों को तब दबाता है जब -मावक्स प्रयोग किया जाता है। इसके बजाय, यह नया AVX उत्पन्न करता है
जरूरत पड़ने पर सभी SSEx निर्देशों के लिए निर्देश या AVX तुल्यता।

ये विकल्प जीसीसी को जेनरेट कोड में इन विस्तारित निर्देशों का उपयोग करने में सक्षम करेंगे,
इसके बिना ईवेंट -एमएफपीएमथ = एसएसई. रन-टाइम CPU डिटेक्शन निष्पादित करने वाले एप्लिकेशन को अवश्य होना चाहिए
उपयुक्त फ़्लैग का उपयोग करके, प्रत्येक समर्थित आर्किटेक्चर के लिए अलग-अलग फ़ाइलें संकलित करें।
विशेष रूप से, सीपीयू डिटेक्शन कोड वाली फाइल को बिना संकलित किया जाना चाहिए
ये विकल्प।

-एमसीएलडी
यह विकल्प GCC को फ़ंक्शन के प्रस्तावना में "cld" निर्देश जारी करने का निर्देश देता है
जो स्ट्रिंग निर्देशों का उपयोग करते हैं। स्ट्रिंग निर्देश चुनने के लिए DF ध्वज पर निर्भर करते हैं
ऑटोइनक्रिकमेंट या ऑटोडेक्रिमेंट मोड के बीच। जबकि ABI DF ध्वज को निर्दिष्ट करता है
फ़ंक्शन प्रविष्टि पर साफ़ किया जा सकता है, कुछ ऑपरेटिंग सिस्टम इस विनिर्देश का उल्लंघन नहीं करते हैं
उनके अपवाद प्रेषकों में DF ध्वज को साफ़ करना। अपवाद हैंडलर हो सकता है
DF ध्वज सेट के साथ लागू किया जाता है, जो स्ट्रिंग के दौरान गलत दिशा मोड की ओर जाता है
निर्देशों का प्रयोग किया जाता है। इस विकल्प को डिफ़ॉल्ट रूप से 32-बिट x86 लक्ष्यों पर सक्षम किया जा सकता है
के साथ जीसीसी को विन्यस्त करना --सक्षम-सीएलडी कॉन्फ़िगर विकल्प। "सीएलडी" की पीढ़ी
निर्देशों को के साथ दबाया जा सकता है -मनो-सीएलडी इस मामले में संकलक विकल्प।

-मवज़ेरुपर
यह विकल्प GCC को के स्थानांतरण से पहले एक "vzeroupper" निर्देश जारी करने का निर्देश देता है
AVX को SSE ट्रांज़िशन पेनल्टी के साथ-साथ कम से कम करने के लिए फ़ंक्शन से प्रवाह को नियंत्रित करें
अनावश्यक ज़ीरोपर इंट्रिनिक्स को हटा दें।

-mprefer-avx128
यह विकल्प GCC को 128-बिट AVX के बजाय 256-बिट AVX निर्देशों का उपयोग करने का निर्देश देता है
ऑटो-वेक्टराइज़र में निर्देश।

-एमसीएक्स16
यह विकल्प जीसीसी को उत्पन्न कोड में CMPXCHG16B निर्देश का उपयोग करने में सक्षम करेगा।
CMPXCHG16B 128-बिट डबल क्वाडवर्ड (या ओवर्ड) डेटा पर परमाणु संचालन की अनुमति देता है
प्रकार। यह उच्च रिज़ॉल्यूशन काउंटरों के लिए उपयोगी है जिन्हें एकाधिक द्वारा अद्यतन किया जा सकता है
प्रोसेसर (या कोर)। यह निर्देश परमाणु बिल्ट-इन के भाग के रूप में उत्पन्न होता है
कार्य: देखें __साथ - साथ करना बिलिन्स or __परमाणु बिलिन्स ब्योरा हेतु।

-मसाहफी
यह विकल्प जीसीसी को उत्पन्न 64-बिट कोड में SAHF निर्देश का उपयोग करने में सक्षम करेगा। शीघ्र
Intel 64 के साथ Intel CPU में LAHF और SAHF निर्देशों का अभाव था जो AMD64 द्वारा समर्थित थे
दिसंबर 4 में पेंटियम 1 जी2005 चरण की शुरूआत। एलएएचएफ और एसएएचएफ लोड और स्टोर हैं
निर्देश, क्रमशः, निश्चित स्थिति के झंडे के लिए। 64-बिट मोड में, SAHF
निर्देश का उपयोग "fmod", "drem" या "शेष" अंतर्निहित कार्यों को अनुकूलित करने के लिए किया जाता है: देखें
अन्य बिलिन्स ब्योरा हेतु।

-ममोवबे
यह विकल्प GCC को "__builtin_bswap32" को लागू करने के लिए movbe निर्देश का उपयोग करने में सक्षम करेगा
और "__builtin_bswap64"।

-एमसीआरसी32
यह विकल्प अंतर्निर्मित कार्यों को सक्षम करेगा, "__builtin_ia32_crc32qi",
"__बिल्डिन_ia32_crc32hi"। "__builtin_ia32_crc32si" और "__builtin_ia32_crc32di" को
crc32 मशीन निर्देश उत्पन्न करें।

-मरेसिप
यह विकल्प जीसीसी को आरसीपीएसएस और आरएसक्यूआरटीएसएस निर्देशों (और उनके .) का उपयोग करने में सक्षम करेगा
वेक्टरकृत वेरिएंट RCPPS और RSQRTPS) एक अतिरिक्त न्यूटन-रैफसन चरण के साथ
के लिए DIVSS और SQRTSS (और उनके सदिश रूपांतर) के बजाय परिशुद्धता बढ़ाएँ
एकल-सटीक फ़्लोटिंग-पॉइंट तर्क। ये निर्देश तभी उत्पन्न होते हैं जब
-फनसेफ-गणित-अनुकूलन के साथ सक्षम है -परिमित-गणित-केवल और
-फनो-ट्रैपिंग-गणित. ध्यान दें कि जबकि अनुक्रम का थ्रूपुट से अधिक है
गैर-पारस्परिक निर्देश के थ्रूपुट, अनुक्रम की शुद्धता हो सकती है
2 ulp तक कम हो गया (अर्थात 1.0 का व्युत्क्रम 0.99999994 के बराबर है)।

ध्यान दें कि जीसीसी लागू करता है "1.0f/sqrtf(एक्स)" RSQRTSS (या RSQRTPS) के संदर्भ में पहले से ही
-फफास्ट-गणित (या उपरोक्त विकल्प संयोजन), और इसकी आवश्यकता नहीं है -मरेसिप.

यह भी ध्यान दें कि जीसीसी उपरोक्त अनुक्रम को अतिरिक्त न्यूटन-रैफसन चरण के साथ उत्सर्जित करता है
वेक्टरकृत सिंगल-फ्लोट डिवीजन और वेक्टराइज्ड "sqrtf(एक्स)" पहले से ही -फफास्ट-गणित
(या उपरोक्त विकल्प संयोजन), और इसकी आवश्यकता नहीं है -मरेसिप.

-मरेसिप =चुनना
यह विकल्प नियंत्रित करने की अनुमति देता है कि कौन से पारस्परिक अनुमान निर्देशों का उपयोग किया जा सकता है। चुनना
विकल्पों की अल्पविराम से अलग की गई सूची है, जिसके पहले "!" उल्टा करने के लिए
विकल्प: "सभी": सभी अनुमान निर्देश सक्षम करें, "डिफ़ॉल्ट": डिफ़ॉल्ट सक्षम करें
निर्देश, समकक्ष -मरेसिप, "कोई नहीं": सभी अनुमान निर्देश अक्षम करें,
के बराबर -मनो-रेसिपी, "div": अदिश विभाजन के लिए सन्निकटन सक्षम करें,
"vec-div": सदिश विभाजन के लिए सन्निकटन को सक्षम करें, "sqrt": सक्षम करें
अदिश वर्गमूल के लिए सन्निकटन, "vec-sqrt": के लिए सन्निकटन को सक्षम करें
वेक्टरकृत वर्गमूल।

तो उदाहरण के लिए, -mrecip=सभी,!वर्ग सभी पारस्परिक अनुमानों को सक्षम करेगा,
वर्गमूल को छोड़कर।

-मवेक्लिबाबी=टाइप
बाहरी लाइब्रेरी का उपयोग करके इंट्रिनिक्स को वेक्टर करने के लिए उपयोग करने के लिए एबीआई प्रकार निर्दिष्ट करता है।
समर्थित प्रकार इंटेल शॉर्ट वेक्टर गणित पुस्तकालय के लिए "svml" और के लिए "acml" हैं
इंटरफेसिंग की एएमडी गणित कोर पुस्तकालय शैली। जीसीसी वर्तमान में कॉल करेगा
"vmldExp2", "vmldLn2", "vmldLog102", "vmldLog102", "vmldPow2", "vmldTanh2",
"vmldTan2", "vmldAtan2", "vmldAtanh2", "vmldCbrt2", "vmldSinh2", "vmldSin2",
"vmldAsinh2", "vmldAsin2", "vmldCosh2", "vmldCos2", "vmldAcosh2", "vmldAcos2",
"vmlsExp4", "vmlsLn4", "vmlsLog104", "vmlsLog104", "vmlsPow4", "vmlsTanh4",
"vmlsTan4", "vmlsAtan4", "vmlsAtanh4", "vmlsCbrt4", "vmlsSinh4", "vmlsSin4",
"vmlsAsinh4", "vmlsAsin4", "vmlsCosh4", "vmlsCos4", "vmlsAcosh4" और "vmlsAcos4" के लिए
संबंधित फ़ंक्शन प्रकार जब -मवेक्लिबाबी = svml प्रयोग किया जाता है और "__vrd2_sin",
"__vrd2_cos", "__vrd2_exp", "__vrd2_log", "__vrd2_log2", "__vrd2_log10",
"__vrs4_sinf", "__vrs4_cosf", "__vrs4_expf", "__vrs4_logf", "__vrs4_log2f",
संबंधित फ़ंक्शन प्रकार के लिए "__vrs4_log10f" और "__vrs4_powf" जब
-मवेक्लिबाबी = एसीएमएल प्रयोग किया जाता है। दोनों -फ़्री-वेक्टराइज़ और -फनसेफ-गणित-अनुकूलन है
सक्षम किया जाना है। एक एसवीएमएल या एसीएमएल एबीआई संगत पुस्तकालय को लिंक . पर निर्दिष्ट करना होगा
समय है.

-माबी=नाम
निर्दिष्ट कॉलिंग कन्वेंशन के लिए कोड जनरेट करें। अनुमेय मान हैं: sysv एसटी
एबीआई जीएनयू/लिनक्स और अन्य प्रणालियों पर प्रयोग किया जाता है और ms माइक्रोसॉफ्ट एबीआई के लिए। डिफ़ॉल्ट
विंडोज़ को लक्षित करते समय माइक्रोसॉफ्ट एबीआई का उपयोग करना है। अन्य सभी प्रणालियों पर, डिफ़ॉल्ट
एसवाईएसवी एबीआई है। आप किसी विशिष्ट फ़ंक्शन के लिए इस व्यवहार को नियंत्रित कर सकते हैं
समारोह विशेषता ms_abi/sysv_abi.

-mtls-बोली=टाइप
थ्रेड-लोकल स्टोरेज का उपयोग करने के लिए कोड जेनरेट करें बैल की आकृति का बारहसिद्धान्त or जीएनयू२३४ सम्मेलनों। बैल की आकृति का बारहसिद्धान्त
रूढ़िवादी डिफ़ॉल्ट है; जीएनयू२३४ अधिक कुशल है, लेकिन यह संकलन जोड़ सकता है- और चला सकता है-
समय की आवश्यकताएं जो सभी प्रणालियों पर संतुष्ट नहीं हो सकतीं।

-मपुश-आर्ग्स
-मनो-पुश-आर्ग्स
आउटगोइंग पैरामीटर्स को स्टोर करने के लिए PUSH ऑपरेशंस का उपयोग करें। यह विधि छोटी है और आमतौर पर
उप/एमओवी संचालन का उपयोग करने वाली विधि के समान ही तेज़ और डिफ़ॉल्ट रूप से सक्षम है। कुछ में
इसे अक्षम करने वाले मामले बेहतर शेड्यूलिंग और कम होने के कारण प्रदर्शन में सुधार कर सकते हैं
निर्भरता।

-संकुचित-आउटगोइंग-आर्ग्स
यदि सक्षम किया गया है, तो आउटगोइंग तर्कों के लिए आवश्यक अधिकतम स्थान होगा
फ़ंक्शन प्रस्तावना में गणना की गई। अधिकांश आधुनिक CPU पर यह तेज़ है क्योंकि
कम निर्भरता, बेहतर शेड्यूलिंग और पसंदीदा स्टैक होने पर स्टैक का उपयोग कम करना
सीमा 2 के बराबर नहीं है। दोष कोड आकार में उल्लेखनीय वृद्धि है। इस
स्विच का तात्पर्य है -मनो-पुश-आर्ग्स.

-मथ्रेड्स
थ्रेड-सुरक्षित अपवाद हैंडलिंग का समर्थन करें मिंगव32. कोड जो थ्रेड-सुरक्षित पर निर्भर करता है
अपवाद हैंडलिंग को सभी कोड को संकलित और लिंक करना चाहिए -मथ्रेड्स विकल्प। कब
संकलन, -मथ्रेड्स परिभाषित करता है -डी_एमटी; लिंक करते समय, यह एक विशेष थ्रेड हेल्पर में लिंक करता है
पुस्तकालय -लमिंगवथर्ड जो प्रति थ्रेड अपवाद हैंडलिंग डेटा को साफ़ करता है।

-मनो-संरेखण-स्ट्रिंगोप्स
इनलाइन स्ट्रिंग ऑपरेशंस के गंतव्य को संरेखित न करें। यह स्विच कोड आकार को कम करता है
और यदि गंतव्य पहले से ही संरेखित है, तो प्रदर्शन में सुधार करता है, लेकिन GCC ऐसा नहीं करता है
इसके बारे में जानते हैं।

-मिनलाइन-ऑल-स्ट्रिंगॉप्स
डिफ़ॉल्ट रूप से जीसीसी इनलाइन स्ट्रिंग ऑपरेशंस केवल तभी होता है जब गंतव्य को जाना जाता है
कम से कम 4-बाइट सीमा के साथ संरेखित। यह अधिक इनलाइनिंग सक्षम करता है, कोड आकार बढ़ाता है,
लेकिन कोड के प्रदर्शन में सुधार कर सकता है जो कि तेज़ memcpy, strlen और memset पर निर्भर करता है
छोटी लंबाई।

-मिनलाइन-स्ट्रिंगोप्स-गतिशील रूप से
अज्ञात आकार के स्ट्रिंग संचालन के लिए, छोटे के लिए इनलाइन कोड के साथ रन-टाइम चेक का उपयोग करें
बड़े ब्लॉक के लिए ब्लॉक और लाइब्रेरी कॉल।

-मस्ट्रिंगॉप-रणनीति =ALG
इनलाइन स्ट्रिंग के लिए विशेष एल्गोरिदम के बारे में आंतरिक निर्णय अनुमानी को अधिलेखित करें
के साथ संचालन। अनुमत मान "rep_byte", "rep_4byte", "rep_8byte" for . हैं
निर्दिष्ट आकार के i386 "प्रतिनिधि" उपसर्ग का उपयोग करके विस्तार करना, "बाइट_लूप", "लूप",
इनलाइन लूप के विस्तार के लिए "unrolled_loop", लाइब्रेरी का हमेशा विस्तार करने के लिए "libcall"
पु का र ना।

-मोमित-पत्ती-फ्रेम-सूचक
लीफ फंक्शन के लिए फ्रेम पॉइंटर को रजिस्टर में न रखें। इससे बचा जाता है
फ़्रेम पॉइंटर्स को सहेजने, सेट करने और पुनर्स्थापित करने के निर्देश और एक अतिरिक्त रजिस्टर बनाते हैं
पत्ती कार्यों में उपलब्ध है। विकल्प -फोमिट-फ्रेम-पॉइंटर फ्रेम हटाता है
सभी कार्यों के लिए सूचक, जो डिबगिंग को कठिन बना सकता है।

-एमटीएलएस-डायरेक्ट-सेग-रेफ्स
-मनो-टीएलएस-डायरेक्ट-सेग-रेफ्स
नियंत्रित करता है कि क्या टीएलएस वेरिएबल को टीएलएस सेगमेंट से ऑफसेट के साथ एक्सेस किया जा सकता है
रजिस्टर (32-बिट के लिए% gs, 64-बिट के लिए% fs), या क्या थ्रेड बेस पॉइंटर होना चाहिए
जोड़ा गया। यह कानूनी है या नहीं यह ऑपरेटिंग सिस्टम पर निर्भर करता है, और क्या यह
पूरे टीएलएस क्षेत्र को कवर करने के लिए सेगमेंट को मैप करता है।

GNU libc का उपयोग करने वाले सिस्टम के लिए, डिफ़ॉल्ट चालू है।

-एमएसई2एवीएक्स
-mno-sse2avx
निर्दिष्ट करें कि कोडांतरक को SSE निर्देशों को VEX उपसर्ग के साथ एन्कोड करना चाहिए। विकल्प
-मावक्स इसे डिफ़ॉल्ट रूप से चालू करता है।

-मफेंट्री
-मनो-फेंट्री
यदि प्रोफाइलिंग सक्रिय है -पीजी प्रोफाइलिंग काउंटर कॉल को प्रस्तावना से पहले रखें। नोट: पर
x86 आर्किटेक्चर विशेषता "ms_hook_prologue" इस समय संभव नहीं है
-मफेंट्री और -पीजी.

-m8bit-idiv
-mno-8bit-idiv
कुछ प्रोसेसर पर, जैसे इंटेल एटम, 8-बिट अहस्ताक्षरित पूर्णांक डिवाइड की तुलना में बहुत तेज है
32-बिट/64-बिट पूर्णांक विभाजित। यह विकल्प रन-टाइम चेक जनरेट करता है। अगर दोनों
लाभांश और भाजक 0 से 255 की सीमा के भीतर हैं, 8-बिट अहस्ताक्षरित पूर्णांक विभाजन है
32-बिट/64-बिट पूर्णांक विभाजन के बजाय उपयोग किया जाता है।

-mavx256-विभाजन-असंरेखित-लोड
-mavx256-विभाजन-असंरेखित-स्टोर
32-बाइट AVX असंरेखित लोड और स्टोर को विभाजित करें।

इन -m एएमडी x86-64 प्रोसेसर पर उपरोक्त के अतिरिक्त स्विच समर्थित हैं
64-बिट वातावरण।

-एम 32
-एम 64
-एमएक्स32
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। NS -एम 32 विकल्प int, long और . सेट करता है
32 बिट के लिए सूचक और कोड उत्पन्न करता है जो किसी भी i386 सिस्टम पर चलता है। NS -एम 64 विकल्प
इंट को 32 बिट्स और लॉन्ग और पॉइंटर को 64 बिट्स पर सेट करता है और एएमडी के लिए कोड जेनरेट करता है
x86-64 आर्किटेक्चर। NS -एमएक्स32 विकल्प इंट, लॉन्ग और पॉइंटर को 32 बिट्स पर सेट करता है और
AMD के x86-64 आर्किटेक्चर के लिए कोड जेनरेट करता है। केवल डार्विन के लिए -एम 64 विकल्प बदल जाता है
बंद -फनो-पिक और -mगतिशील-नहीं-तस्वीर विकल्प.

-मनो-रेड-ज़ोन
x86-64 कोड के लिए तथाकथित रेड ज़ोन का उपयोग न करें। रेड जोन किसके द्वारा अनिवार्य है
x86-64 ABI, यह स्टैक पॉइंटर के स्थान से परे एक 128-बाइट क्षेत्र है जो होगा
सिग्नल या इंटरप्ट हैंडलर द्वारा संशोधित नहीं किया जा सकता है और इसलिए इसका उपयोग किया जा सकता है
स्टैक पॉइंटर को समायोजित किए बिना अस्थायी डेटा। झंडा -मनो-रेड-ज़ोन अक्षम
ये रेड जोन

-एमसीमॉडल = छोटा
छोटे कोड मॉडल के लिए कोड जनरेट करें: प्रोग्राम और उसके प्रतीकों को इसमें जोड़ा जाना चाहिए
पता स्थान का निचला 2 जीबी। पॉइंटर्स 64 बिट हैं। कार्यक्रम हो सकते हैं
स्थिर या गतिशील रूप से जुड़ा हुआ। यह डिफ़ॉल्ट कोड मॉडल है।

-एमसीमॉडल=कर्नेल
कर्नेल कोड मॉडल के लिए कोड जनरेट करें। कर्नेल नकारात्मक 2 GB में चलता है
पता स्थान। इस मॉडल का उपयोग लिनक्स कर्नेल कोड के लिए किया जाना है।

-एमसीमॉडल = मध्यम
मध्यम मॉडल के लिए कोड जनरेट करें: कार्यक्रम के निचले 2 जीबी में जुड़ा हुआ है
पता स्थान। वहां छोटे-छोटे चिन्ह भी रखे गए हैं। से बड़े आकार वाले प्रतीक
-मिलर्ज-डेटा-दहलीज बड़े डेटा या bss अनुभागों में डाला जाता है और स्थित किया जा सकता है
2GB से ऊपर। कार्यक्रमों को स्थिर या गतिशील रूप से जोड़ा जा सकता है।

-एमसीमॉडल = बड़ा
बड़े मॉडल के लिए कोड जनरेट करें: यह मॉडल पतों के बारे में कोई धारणा नहीं बनाता है और
वर्गों के आकार।

-मैड्रेस-मोड = लंबा
लॉन्ग एड्रेस मोड के लिए कोड जनरेट करें। यह केवल 64-बिट और x32 . के लिए समर्थित है
वातावरण। यह 64-बिट वातावरण के लिए डिफ़ॉल्ट पता मोड है।

-मैड्रेस-मोड = लघु
संक्षिप्त पता मोड के लिए कोड जनरेट करें। यह केवल 32-बिट और x32 . के लिए समर्थित है
वातावरण। यह 32-बिट और x32 परिवेशों के लिए डिफ़ॉल्ट पता मोड है।

i386 और x86-64 Windows ऑप्शंस

ये अतिरिक्त विकल्प Windows लक्ष्य के लिए उपलब्ध हैं:

-एमकंसोल
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि एक कंसोल
लिंकर को पीई हेडर सेट करने का निर्देश देकर एप्लिकेशन जेनरेट किया जाना है
कंसोल अनुप्रयोगों के लिए आवश्यक सबसिस्टम प्रकार। यह के लिए डिफ़ॉल्ट व्यवहार है
सिगविन और मिनजीडब्ल्यू लक्ष्य।

-एमडीएल
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि एक डीएलएल - ए
डायनेमिक लिंक लाइब्रेरी - आवश्यक के चयन को सक्षम करते हुए, उत्पन्न किया जाना है
रनटाइम स्टार्टअप ऑब्जेक्ट और एंट्री पॉइंट।

-मनोप-मज़ा-dllimport
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि
dllimport विशेषता को अनदेखा किया जाना चाहिए।

-मथ्रेड
यह विकल्प MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि MinGW- विशिष्ट थ्रेड
समर्थन का उपयोग करना है।

-मुनिकोड
यह विकल्प mingw-w64 लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि यूनिकोड मैक्रो
पूर्व-परिभाषित हो रहा है और यूनिकोड सक्षम रनटाइम स्टार्टअप कोड चुना गया है।

-एमविन32
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि विशिष्ट
विंडोज़ प्री-डिफ़ाइंड मैक्रोज़ को प्री-प्रोसेसर में सेट किया जाना है, लेकिन यह प्रभावित नहीं करता है
रनटाइम लाइब्रेरी/स्टार्टअप कोड का चुनाव।

-एमविंडो
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि एक GUI
पीई हेडर सेट करने के लिए लिंकर को निर्देश देकर आवेदन तैयार किया जाना है
सबसिस्टम उचित प्रकार।

-फनो-सेट-स्टैक-निष्पादन योग्य
यह विकल्प MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि निष्पादन योग्य ध्वज के लिए
नेस्टेड फ़ंक्शंस द्वारा उपयोग किया जाने वाला स्टैक सेट नहीं है। में चलने वाले बायनेरिज़ के लिए यह आवश्यक है
विंडोज़ का कर्नेल मोड, जैसा कि उपयोगकर्ता 32 एपीआई है, जिसका उपयोग निष्पादन योग्य सेट करने के लिए किया जाता है
विशेषाधिकार, उपलब्ध नहीं है।

-एमपीई-संरेखित-कॉमन्स
यह विकल्प Cygwin और MinGW लक्ष्यों के लिए उपलब्ध है। यह निर्दिष्ट करता है कि जीएनयू
PE फ़ाइल स्वरूप का विस्तार जो COMMON चर के सही संरेखण की अनुमति देता है
कोड जनरेट करते समय उपयोग किया जाना चाहिए। यदि GCC को पता चलता है तो यह डिफ़ॉल्ट रूप से सक्षम हो जाएगा
कि कॉन्फ़िगरेशन के दौरान पाया गया लक्ष्य कोडांतरक सुविधा का समर्थन करता है।

के तहत भी देखें i386 और x86-64 ऑप्शंस मानक विकल्पों के लिए।

IA-64 ऑप्शंस

ये हैं -m Intel IA-64 आर्किटेक्चर के लिए परिभाषित विकल्प।

-मबिग-एंडियन
बड़े-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह एचपी-यूएक्स के लिए डिफ़ॉल्ट है।

-थोड़ा-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें। यह AIX5 और GNU/Linux के लिए डिफ़ॉल्ट है।

-मग्नू-के रूप में
-मनो-ग्नू-अस
जीएनयू असेंबलर के लिए कोड जेनरेट (या नहीं) करें। यह डिफ़ॉल्ट है।

-एमजीएनयू-एलडी
-मनो-ग्नू-एलडी
जीएनयू लिंकर के लिए कोड जेनरेट करें (या न करें)। यह डिफ़ॉल्ट है।

-मनो-पिक
कोड उत्पन्न करें जो वैश्विक सूचक रजिस्टर का उपयोग नहीं करता है। परिणाम स्थिति नहीं है
स्वतंत्र कोड, और IA-64 ABI का उल्लंघन करता है।

-अस्थिर-एएसएम-रोक
-मनो-वाष्पशील-एएसएम-स्टॉप
अस्थिर एएसएम स्टेटमेंट के तुरंत पहले और बाद में स्टॉप बिट जेनरेट करें (या न करें)।

-मजिस्टर-नाम
-मनो-रजिस्टर-नाम
उत्पन्न करें (या नहीं) in, loc, तथा आउट स्टैक्ड रजिस्टरों के लिए नाम पंजीकृत करें। इस
असेंबलर आउटपुट को और अधिक पठनीय बना सकता है।

-मनो-एसडीटा
-एमएसडेटा
छोटे डेटा अनुभाग का उपयोग करने वाले अनुकूलन को अक्षम (या सक्षम) करें। यह उपयोगी हो सकता है
अनुकूलक बग के आसपास काम करने के लिए।

-मकॉन्स्टेंट-जीपी
एकल स्थिर वैश्विक सूचक मान का उपयोग करने वाला कोड जनरेट करें। यह तब उपयोगी होता है जब
कर्नेल कोड संकलित करना।

-मोटो-तस्वीर
कोड उत्पन्न करें जो स्व-स्थानांतरित हो। यह संकेत करता है -मकॉन्स्टेंट-जीपी. यह उपयोगी है
फर्मवेयर कोड संकलित करते समय।

-मिनलाइन-फ्लोट-डिवाइड-मिन-लेटेंसी
न्यूनतम विलंबता का उपयोग करके फ़्लोटिंग-पॉइंट मानों के इनलाइन डिवाइड के लिए कोड जनरेट करें
कलन विधि।

-मिनलाइन-फ्लोट-डिवाइड-मैक्स-थ्रूपुट
अधिकतम थ्रूपुट का उपयोग करके फ़्लोटिंग-पॉइंट मानों के इनलाइन डिवाइड के लिए कोड जेनरेट करें
कलन विधि।

-मनो-इनलाइन-फ्लोट-डिवाइड
फ़्लोटिंग-पॉइंट मानों के विभाजन के लिए इनलाइन कोड उत्पन्न न करें।

-मिनलाइन-इंट-डिवाइड-मिन-लेटेंसी
न्यूनतम विलंबता का उपयोग करके पूर्णांक मानों के इनलाइन विभाजन के लिए कोड जेनरेट करें
कलन विधि।

-मिनलाइन-इंट-डिवाइड-मैक्स-थ्रूपुट
अधिकतम थ्रूपुट का उपयोग करके पूर्णांक मानों के इनलाइन डिवाइड के लिए कोड जेनरेट करें
कलन विधि।

-मनो-इनलाइन-इंट-डिवाइड
पूर्णांक मानों के विभाजन के लिए इनलाइन कोड उत्पन्न न करें।

-मिनलाइन-वर्ग-मिनट-विलंबता
न्यूनतम विलंबता एल्गोरिथम का उपयोग करके इनलाइन वर्गमूलों के लिए कोड जनरेट करें।

-मिनलाइन-वर्ग-अधिकतम-थ्रूपुट
अधिकतम थ्रूपुट एल्गोरिथम का उपयोग करके इनलाइन वर्गमूलों के लिए कोड जनरेट करें।

-मनो-इनलाइन-वर्ग
sqrt के लिए इनलाइन कोड जनरेट न करें।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
कोड जनरेट करें (न करें) जो फ़्यूज्ड गुणा/जोड़ या गुणा/घटाव का उपयोग करता है
निर्देश। डिफ़ॉल्ट इन निर्देशों का उपयोग करना है।

-मनो-बौना2-एएसएम
-mdwarf2-asm
DWARF2 लाइन नंबर डिबगिंग जानकारी के लिए कोडांतरक कोड उत्पन्न न करें (या करें)। इस
जीएनयू असेंबलर का उपयोग नहीं करते समय उपयोगी हो सकता है।

-मायरली-स्टॉप-बिट्स
-मनो-अर्ली-स्टॉप-बिट्स
स्टॉप बिट्स को निर्देश से ठीक पहले रखने की अनुमति दें कि
स्टॉप बिट को ट्रिगर किया। यह निर्देश शेड्यूलिंग में सुधार कर सकता है, लेकिन हमेशा नहीं
ऐसा करो।

-मफिक्स्ड-रेंज =रजिस्टर-रेंज
दिए गए रजिस्टर रेंज को फिक्स्ड रजिस्टर मानकर कोड जेनरेट करें। एक निश्चित रजिस्टर
वह है जिसे रजिस्टर आवंटक उपयोग नहीं कर सकता है। कर्नेल को संकलित करते समय यह उपयोगी है
कोड। एक रजिस्टर श्रेणी को डैश द्वारा अलग किए गए दो रजिस्टरों के रूप में निर्दिष्ट किया जाता है। विभिन्न
रजिस्टर श्रेणियों को अल्पविराम से अलग करके निर्दिष्ट किया जा सकता है।

-एमटीएलएस-आकार =टीएलएस-आकार
तत्काल TLS ऑफ़सेट का बिट आकार निर्दिष्ट करें। मान्य मान 14, 22 और 64 हैं।

-मट्यून =सीपीयू प्रकार
किसी विशेष CPU के लिए निर्देश शेड्यूलिंग को ट्यून करें, मान्य मान इटेनियम हैं,
itanium1, merced, itanium2, और mckinley।

-मिलप32
-एमएलपी64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
32 बिट्स के लिए लंबा और सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक। ये एचपी-यूएक्स विशिष्ट झंडे हैं।

-मनो-अनुसूचित-बीआर-डेटा-कल्पना
-msched-br-डेटा-कल्पना
(डिस/एन) पुनः लोड करने से पहले डेटा सट्टा शेड्यूलिंग सक्षम करें। इसका परिणाम होगा
ld.a निर्देशों का निर्माण और संबंधित जाँच निर्देश (ld.c /
chk.a)। डिफ़ॉल्ट 'अक्षम' है।

-msched-ar-डेटा-कल्पना
-मनो-अनुसूचित-एआर-डेटा-कल्पना
(एन/डिस) पुनः लोड करने के बाद डेटा सट्टा शेड्यूलिंग सक्षम करें। यह पीढ़ी में परिणाम देगा
ld.a निर्देशों और संबंधित जाँच निर्देशों (ld.c / chk.a) की। NS
डिफ़ॉल्ट 'सक्षम' है।

-मनो-अनुसूचित-नियंत्रण-कल्पना
-msched-नियंत्रण-कल्पना
(डिस/एन) सट्टा शेड्यूलिंग को नियंत्रित करने में सक्षम। यह सुविधा केवल के दौरान उपलब्ध है
क्षेत्र शेड्यूलिंग (यानी पुनः लोड करने से पहले)। इसके परिणामस्वरूप ld.s का निर्माण होगा
निर्देश और संबंधित जाँच निर्देश chk.s। डिफ़ॉल्ट है
'अक्षम करना'।

-मशेड-बीआर-इन-डेटा-कल्पना
-मनो-अनुसूचित-बीआर-में-डेटा-कल्पना
(En/Dis) डेटा पर निर्भर निर्देशों का सट्टा शेड्यूलिंग सक्षम करें
पुनः लोड करने से पहले सट्टा भार। यह केवल के साथ प्रभावी है -msched-br-डेटा-कल्पना
सक्षम। डिफ़ॉल्ट 'सक्षम' है।

-मशेड-एआर-इन-डेटा-कल्पना
-मनो-अनुसूचित-एआर-इन-डेटा-कल्पना
(En/Dis) डेटा पर निर्भर निर्देशों का सट्टा शेड्यूलिंग सक्षम करें
पुनः लोड के बाद सट्टा भार। यह केवल के साथ प्रभावी है -msched-ar-डेटा-कल्पना
सक्षम। डिफ़ॉल्ट 'सक्षम' है।

-मशेड-इन-कंट्रोल-स्पेक
-मनो-शेड्यूल-इन-कंट्रोल-स्पेक
(एन/डिस) निर्देशों का सट्टा शेड्यूलिंग सक्षम है जो पर निर्भर हैं
सट्टा भार को नियंत्रित करें। यह केवल के साथ प्रभावी है -msched-नियंत्रण-कल्पना सक्षम होना चाहिए।
डिफ़ॉल्ट 'सक्षम' है।

-मोनो-शेड्यूल-प्रीफरेंस-नॉन-डेटा-स्पेक-इन्स
-msched-वरीयता-गैर-डेटा-कल्पना-insns
सक्षम होने पर, डेटा सट्टा निर्देश केवल तभी शेड्यूल के लिए चुने जाएंगे जब
फिलहाल कोई अन्य विकल्प नहीं हैं। यह डेटा अटकलों का उपयोग करेगा
बहुत अधिक रूढ़िवादी। डिफ़ॉल्ट 'अक्षम' है।

-मनो-अनुसूचित-पसंद-गैर-नियंत्रण-कल्पना-इंसंस
-msched-पसंद-गैर-नियंत्रण-कल्पना-insns
सक्षम होने पर, नियंत्रण सट्टा निर्देश केवल तभी शेड्यूल के लिए चुने जाएंगे जब
फिलहाल कोई अन्य विकल्प नहीं हैं। यह नियंत्रण अटकलों का उपयोग करेगा
बहुत अधिक रूढ़िवादी। डिफ़ॉल्ट 'अक्षम' है।

-मनो-अनुसूचित-गिनती-कल्पना-में-महत्वपूर्ण-पथ
-मशेड-गिनती-कल्पना-में-महत्वपूर्ण-पथ
यदि सक्षम किया गया है, तो गणना के दौरान सट्टा निर्भरता पर विचार किया जाएगा
निर्देश प्राथमिकताएं। इससे अटकलों का इस्तेमाल थोड़ा और बढ़ जाएगा
रूढ़िवादी। डिफ़ॉल्ट 'अक्षम' है।

-msched-कल्पना-ldc
एक साधारण डेटा सट्टा जांच का प्रयोग करें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-msched-नियंत्रण-कल्पना-ldc
नियंत्रण अटकलों के लिए एक साधारण जांच का प्रयोग करें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-मैशेड-स्टॉप-बिट्स-आफ्टर-हर-साइकल
शेड्यूलिंग करते समय प्रत्येक चक्र के बाद एक स्टॉप बिट रखें। यह विकल्प डिफ़ॉल्ट रूप से चालू है।

-msched-fp-mem-deps-शून्य-लागत
मान लें कि फ़्लोटिंग-पॉइंट स्टोर और लोड के कारण विरोध होने की संभावना नहीं है
एक ही निर्देश समूह में रखा गया। डिफाल्ट रूप में यह विकल्प निष्क्रिय है।

-एमएसएल-शेड्यूल-न-चेक-कंट्रोल-स्पेक
चुनिंदा शेड्यूलिंग में नियंत्रण अटकलों के लिए चेक जेनरेट करें। यह झंडा है
डिफ़ॉल्ट रूप से अक्षम।

-msched-अधिकतम-मेमोरी-इंसंस=मैक्स-इन्स
प्रति निर्देश समूह मेमोरी इंस की संख्या को सीमित करें, निम्न को प्राथमिकता दें
बाद के मेमोरी इंस उसी निर्देश समूह में शेड्यूल करने का प्रयास कर रहे हैं।
कैश बैंक संघर्षों को रोकने के लिए अक्सर उपयोगी। डीफॉल्ट मूल्य 1 है।

-msched-अधिकतम-मेमोरी-इंस-हार्ड-लिमिट
निर्देश समूह में `msched-max-memory-insns' से अधिक की अनुमति न दें। अन्यथा, सीमा
'सॉफ्ट' है जिसका अर्थ है कि सीमा समाप्त होने पर हम गैर-स्मृति संचालन को प्राथमिकता देंगे लेकिन
अभी भी मेमोरी ऑपरेशंस शेड्यूल कर सकता है।

आईए-64/वीएमएस ऑप्शंस

इन -m IA-64/VMS कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-एमवीएमएस-रिटर्न-कोड्स
मुख्य से वीएमएस कंडीशन कोड लौटाएं। डिफ़ॉल्ट रूप से POSIX शैली की स्थिति लौटाना है
(जैसे त्रुटि) कोड।

-एमडीबग-मुख्य =उपसर्ग
पहले रूटीन को फ्लैग करें जिसका नाम से शुरू होता है उपसर्ग के लिए मुख्य दिनचर्या के रूप में
डिबगर।

-mmalloc64
64-बिट मेमोरी आवंटन रूटीन के लिए डिफ़ॉल्ट।

LM32 ऑप्शंस

इन -m जाली Mico32 आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-एमबैरल-शिफ्ट-सक्षम
बैरल-शिफ्ट निर्देश सक्षम करें।

-mडिवाइड-सक्षम
विभाजित और मापांक निर्देश सक्षम करें।

-mmultiply-सक्षम
गुणा निर्देश सक्षम करें।

-msign-विस्तार-सक्षम
साइन विस्तार निर्देश सक्षम करें।

-म्यूजर-सक्षम
उपयोगकर्ता-परिभाषित निर्देश सक्षम करें।

M32C ऑप्शंस

-एमसीपीयू =नाम
उस CPU का चयन करें जिसके लिए कोड जनरेट किया गया है। नाम में से एक हो सकता है R8C R8C/Tiny . के लिए
श्रृंखला, m16c M16C (/60 तक) श्रृंखला के लिए, एम 32 सेमी M16C/80 श्रृंखला के लिए, या m32c
M32C/80 श्रृंखला के लिए।

-मसिम
निर्दिष्ट करता है कि प्रोग्राम सिम्युलेटर पर चलाया जाएगा। यह एक वैकल्पिक . का कारण बनता है
रनटाइम लाइब्रेरी को लिंक किया जाना है जिसमें समर्थन करता है, उदाहरण के लिए, फ़ाइल I/O। तुम नहीं करना चाहिए
वास्तविक हार्डवेयर पर चलने वाले प्रोग्राम बनाते समय इस विकल्प का उपयोग करें; आपको चाहिए
I/O फ़ंक्शंस की जो भी आवश्यकता हो, उसके लिए अपनी स्वयं की रनटाइम लाइब्रेरी प्रदान करें।

-मेमरेग्स =संख्या
कोड के दौरान जीसीसी द्वारा उपयोग किए जाने वाले मेमोरी-आधारित छद्म-रजिस्टरों की संख्या निर्दिष्ट करता है
पीढ़ी। इन छद्म रजिस्टरों का उपयोग वास्तविक रजिस्टरों की तरह किया जाएगा, इसलिए वहाँ है a
कोड को उपलब्ध रजिस्टरों में फिट करने की जीसीसी की क्षमता के बीच समझौता, और
रजिस्टरों के बजाय स्मृति का उपयोग करने का प्रदर्शन दंड। ध्यान दें कि सभी मॉड्यूल a
प्रोग्राम को इस विकल्प के लिए समान मान के साथ संकलित किया जाना चाहिए। उसके कारण, आप
डिफ़ॉल्ट रनटाइम लाइब्रेरी gcc बिल्ड के साथ इस विकल्प का उपयोग नहीं करना चाहिए।

M32R/डी ऑप्शंस

इन -m रेनेसास M32R/D आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-एम32आर2
M32R/2 के लिए कोड जनरेट करें।

-एम32आरएक्स
M32R/X के लिए कोड जनरेट करें।

-एम32आर
M32R के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-मॉडेल = छोटा
मान लें कि सभी ऑब्जेक्ट कम 16MB मेमोरी में रहते हैं (ताकि उनके पते हो सकें
"ld24" निर्देश के साथ लोड किया गया), और मान लें कि सभी सबरूटीन्स के साथ उपलब्ध हैं
"बीएल" निर्देश। यह डिफ़ॉल्ट है।

किसी विशेष वस्तु की एड्रेसेबिलिटी को "मॉडल" विशेषता के साथ सेट किया जा सकता है।

-मॉडेल = मध्यम
मान लें कि ऑब्जेक्ट 32-बिट एड्रेस स्पेस में कहीं भी हो सकते हैं (कंपाइलर उत्पन्न करेगा
"seth/add3" उनके पते लोड करने के निर्देश), और मान लें कि सभी सबरूटीन्स हैं
"बीएल" निर्देश के साथ पहुंचा जा सकता है।

-मॉडेल = बड़ा
मान लें कि ऑब्जेक्ट 32-बिट एड्रेस स्पेस में कहीं भी हो सकते हैं (कंपाइलर उत्पन्न करेगा
"seth/add3" निर्देश उनके पते लोड करने के लिए), और मान लें कि सबरूटीन्स नहीं हो सकते हैं
"बीएल" निर्देश के साथ पहुंच योग्य (कंपाइलर बहुत धीमी गति उत्पन्न करेगा
"सेठ/ऐड3/जेएल" निर्देश अनुक्रम)।

-msdata=कोई नहीं
छोटे डेटा क्षेत्र का उपयोग अक्षम करें। चरों में से एक में डाल दिया जाएगा .data, बीएसएसया,
.रोडाटा (जब तक कि "सेक्शन" विशेषता निर्दिष्ट नहीं की गई हो)। यह डिफ़ॉल्ट है।

छोटे डेटा क्षेत्र में अनुभाग होते हैं .sdata और एसबीएसएसएस. वस्तुएं स्पष्ट रूप से हो सकती हैं
इन अनुभागों में से किसी एक का उपयोग करके "अनुभाग" विशेषता वाले छोटे डेटा क्षेत्र में डालें।

-एमएसडेटा = एसडीटा
छोटे डेटा क्षेत्र में छोटे वैश्विक और स्थिर डेटा डालें, लेकिन विशेष उत्पन्न न करें
उन्हें संदर्भित करने के लिए कोड।

-एमएसडेटा = उपयोग
छोटे डेटा क्षेत्र में छोटे वैश्विक और स्थिर डेटा डालें, और विशेष उत्पन्न करें
उन्हें रेफर करने के निर्देश

-G संख्या
वैश्विक और स्थिर वस्तुओं को से कम या उसके बराबर रखें संख्या छोटे डेटा में बाइट्स या
सामान्य डेटा या bss अनुभागों के बजाय bss अनुभाग। का डिफ़ॉल्ट मान संख्या is
8. -एमएसडेटा विकल्प को इनमें से किसी एक पर सेट किया जाना चाहिए sdata or उपयोग इस विकल्प के लिए कोई भी
प्रभाव।

सभी मॉड्यूल उसी के साथ संकलित किए जाने चाहिए -G संख्या मूल्य। विभिन्न के साथ संकलन
के मान संख्या काम कर सकता है या नहीं; अगर ऐसा नहीं होता है तो लिंकर एक त्रुटि देगा
संदेश---गलत कोड जनरेट नहीं किया जाएगा।

-एमडीबग
कंपाइलर में M32R विशिष्ट कोड को कुछ आंकड़े प्रदर्शित करता है जो मदद कर सकते हैं
डिबगिंग कार्यक्रमों में।

-मैलिग्न-लूप
सभी लूपों को 32-बाइट सीमा पर संरेखित करें।

-मनो-संरेखण-लूप
लूप के लिए 32-बाइट संरेखण लागू न करें। यह डिफ़ॉल्ट है।

-मुद्दे-दर =संख्या
मुद्दा संख्या प्रति चक्र निर्देश। संख्या केवल 1 या 2 हो सकता है।

- शाखा-लागत =संख्या
संख्या केवल 1 या 2 हो सकता है। यदि यह 1 है तो शाखाओं को प्राथमिकता दी जाएगी
सशर्त कोड, यदि यह 2 है, तो विपरीत लागू होगा।

-mflush-जाल=संख्या
कैश फ्लश करने के लिए उपयोग करने के लिए ट्रैप नंबर निर्दिष्ट करता है। डिफ़ॉल्ट 12 है। मान्य
संख्या 0 और 15 समावेशी के बीच हैं।

-मनो-फ्लश-ट्रैप
निर्दिष्ट करता है कि ट्रैप का उपयोग करके कैश को फ़्लश नहीं किया जा सकता है।

-एमफ्लश-फंक =नाम
कैश फ्लश करने के लिए कॉल करने के लिए ऑपरेटिंग सिस्टम फ़ंक्शन का नाम निर्दिष्ट करता है। NS
डिफ़ॉल्ट है _फ्लश_कैश, लेकिन फ़ंक्शन कॉल का उपयोग केवल तभी किया जाएगा जब कोई ट्रैप न हो
उपलब्ध है.

-मनो-फ्लश-फंक
इंगित करता है कि कैश फ्लश करने के लिए कोई OS फ़ंक्शन नहीं है।

M680x0 ऑप्शंस

ये हैं -m M680x0 और कोल्डफायर प्रोसेसर के लिए परिभाषित विकल्प। डिफ़ॉल्ट सेटिंग्स
निर्भर करता है कि कंपाइलर को कॉन्फ़िगर करते समय किस आर्किटेक्चर का चयन किया गया था; चूक
सबसे आम विकल्पों के लिए नीचे दिए गए हैं।

-मार्च=मेहराब
विशिष्ट M680x0 या ColdFire निर्देश सेट आर्किटेक्चर के लिए कोड जनरेट करें।
के अनुमेय मूल्य मेहराब M680x0 आर्किटेक्चर के लिए हैं: 68000, 68010, 68020, 68030,
68040, 68060 और cpu32. फ्रीस्केल के अनुसार कोल्डफायर आर्किटेक्चर का चयन किया जाता है
आईएसए वर्गीकरण और अनुमेय मूल्य हैं: Isaa, इसाप्लस, isab और Isac.

जीसीसी मैक्रो को परिभाषित करता है __एमसीएफमेहराब__ जब भी यह कोल्डफायर लक्ष्य के लिए कोड उत्पन्न कर रहा हो।
RSI मेहराब इस मैक्रो में से एक है मार्च ऊपर दिए गए तर्क।

जब एक साथ उपयोग किया जाता है, मार्च और -मट्यून कोड का चयन करें जो समान परिवार पर चलता है
प्रोसेसर लेकिन यह एक विशेष माइक्रोआर्किटेक्चर के लिए अनुकूलित है।

-एमसीपीयू =सीपीयू
विशिष्ट M680x0 या ColdFire प्रोसेसर के लिए कोड जनरेट करें। M680x0 सीपीयूये हैं:
68000, 68010, 68020, 68030, 68040, 68060, 68302, 68332 और cpu32. कोल्डफायर सीपीयूs
नीचे दी गई तालिका द्वारा दिया गया है, जो सीपीयू को परिवारों में भी वर्गीकृत करता है:

परिवार : -एमसीपीयू तर्क
51 : 51 51ac 51cn 51em 51qe
5206 : 5202 5204 5206
5206e : 5206e
5208 : 5207 5208
5211a : 5210a 5211a
5213 : 5211 5212 5213
5216 : 5214 5216
52235 : 52230 52231 52232 52233 52234 52235
5225 : 5224 5225
52259 : 52252 52254 52255 52256 52258 52259
5235 : 5232 5233 5234 5235 523x
5249 : 5249
5250 : 5250
5271 : 5270 5271
5272 : 5272
5275 : 5274 5275
5282 : 5280 5281 5282 528x
53017 : 53011 53012 53013 53014 53015 53016 53017
5307 : 5307
5329 : 5327 5328 5329 532x
5373 : 5372 5373 537x
5407 : 5407
5475 : 5470 5471 5472 5473 5474 5475 547x 5480 5481 5482 5483 5484 5485

-एमसीपीयू =सीपीयू ओवरराइड -मार्च=मेहराब if मेहराब के साथ संगत है सीपीयू. के अन्य संयोजन
-एमसीपीयू और मार्च खारिज कर दिया जाता है।

जीसीसी मैक्रो को परिभाषित करता है __एमसीएफ_सीपीयू_सीपीयू जब कोल्डफायर लक्ष्य सीपीयू चूना गया। यह भी
परिभाषित करता है __एमसीएफ_परिवार_परिवार, जहां का मान परिवार उपरोक्त तालिका द्वारा दिया गया है।

-मट्यून =धुन
द्वारा निर्धारित बाधाओं के भीतर, किसी विशेष माइक्रोआर्किटेक्चर के लिए कोड को ट्यून करें मार्च
और -एमसीपीयू. M680x0 माइक्रोआर्किटेक्चर हैं: 68000, 68010, 68020, 68030, 68040,
68060 और cpu32. कोल्डफायर माइक्रोआर्किटेक्चर हैं: सीएफवी1, सीएफवी2, सीएफवी3, सीएफवी4 और
cfv4e.

आप भी उपयोग कर सकते हैं -मट्यून=68020-40 कोड के लिए जिसे 68020 पर अपेक्षाकृत अच्छी तरह से चलाने की आवश्यकता है,
68030 और 68040 लक्ष्य। -मट्यून=68020-60 समान है लेकिन इसमें 68060 लक्ष्य शामिल हैं:
कुंआ। ये दो विकल्प उसी ट्यूनिंग निर्णयों का चयन करते हैं जैसे -एम68020-40 और -एम68020-60
क्रमशः.

जीसीसी मैक्रोज़ को परिभाषित करता है __एमसीमेहराब और __एमसीमेहराब__ 680x0 आर्किटेक्चर के लिए ट्यूनिंग करते समय
मेहराब. यह भी परिभाषित करता है mcमेहराब जब तक या तो -अनसी या एक गैर-जीएनयू -एसटीडी विकल्प का प्रयोग किया जाता है।
यदि जीसीसी कई प्रकार के आर्किटेक्चर के लिए ट्यूनिंग कर रहा है, जैसा कि इसके द्वारा चुना गया है -मट्यून=68020-40 or
-मट्यून=68020-60, यह सीमा में प्रत्येक आर्किटेक्चर के लिए मैक्रोज़ को परिभाषित करता है।

जीसीसी मैक्रो को भी परिभाषित करता है __एमउर्च__ कोल्डफायर माइक्रोआर्किटेक्चर के लिए ट्यूनिंग करते समय
उर्च, जहां उर्च ऊपर दिए गए तर्कों में से एक है।

-एम 68000
-एमसी68000
68000 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68000-आधारित सिस्टम। यह के बराबर है -मार्च = 68000.

68000 सहित 000 या ईसी68008 कोर वाले माइक्रोकंट्रोलर्स के लिए इस विकल्प का उपयोग करें,
68302, 68306, 68307, 68322, 68328 और 68356

-एम 68010
68010 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68010-आधारित सिस्टम। यह के बराबर है -मार्च = 68010.

-एम 68020
-एमसी68020
68020 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68020-आधारित सिस्टम। यह के बराबर है -मार्च = 68020.

-एम 68030
68030 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68030-आधारित सिस्टम। यह के बराबर है -मार्च = 68030.

-एम 68040
68040 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68040-आधारित सिस्टम। यह के बराबर है -मार्च = 68040.

यह विकल्प 68881/68882 निर्देशों के उपयोग को रोकता है जिनका अनुकरण किया जाना है
68040 पर सॉफ्टवेयर। यदि आपके 68040 में अनुकरण करने के लिए कोड नहीं है तो इस विकल्प का उपयोग करें
उन निर्देशों।

-एम 68060
68060 के लिए आउटपुट उत्पन्न करें। यह डिफ़ॉल्ट है जब कंपाइलर को कॉन्फ़िगर किया गया है
68060-आधारित सिस्टम। यह के बराबर है -मार्च = 68060.

यह विकल्प 68020 और 68881/68882 निर्देशों के उपयोग को रोकता है जिन्हें होना चाहिए
68060 पर सॉफ़्टवेयर द्वारा अनुकरण किया गया। यदि आपके 68060 में कोड नहीं है तो इस विकल्प का उपयोग करें
उन निर्देशों का अनुकरण करने के लिए।

-एमसीपीयू32
CPU32 के लिए आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है जब संकलक के लिए कॉन्फ़िगर किया गया है
CPU32-आधारित सिस्टम। यह के बराबर है -मार्च = सीपीयू 32.

CPU32 या CPU32+ कोर वाले माइक्रोकंट्रोलर के लिए इस विकल्प का उपयोग करें, जिसमें 68330,
68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 और 68360।

-एम 5200
520X कोल्डफायर सीपीयू के लिए आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है जब संकलक है
520X-आधारित सिस्टम के लिए कॉन्फ़िगर किया गया। यह के बराबर है -एमसीपीयू=5206, और अब है
उस विकल्प के पक्ष में बहिष्कृत।

5200 कोर वाले माइक्रोकंट्रोलर के लिए इस विकल्प का उपयोग करें, जिसमें MCF5202, MCF5203,
MCF5204 और MCF5206।

-एम5206ई
5206e कोल्डफायर सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5206e.

-m528x
कोल्डफायर 528X परिवार के सदस्य के लिए आउटपुट उत्पन्न करें। विकल्प अब है
समकक्ष के पक्ष में पदावनत -एमसीपीयू=528x.

-एम 5307
कोल्डफायर 5307 सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5307.

-एम 5407
कोल्डफायर 5407 सीपीयू के लिए आउटपुट जेनरेट करें। विकल्प अब के पक्ष में पदावनत कर दिया गया है
बराबर -एमसीपीयू=5407.

-एमसीएफवी4ई
कोल्डफायर वी4ई फैमिली सीपीयू (जैसे 547x/548x) के लिए आउटपुट जेनरेट करें। इसमें का उपयोग शामिल है
हार्डवेयर फ्लोटिंग-पॉइंट निर्देश। विकल्प के बराबर है -एमसीपीयू=547x, और है
अब उस विकल्प के पक्ष में पदावनत कर दिया गया है।

-एम68020-40
किसी भी नए निर्देश का उपयोग किए बिना, 68040 के लिए आउटपुट उत्पन्न करें। इसका परिणाम
कोड में जो 68020/68881 या 68030 या a . पर अपेक्षाकृत कुशलता से चल सकता है
68040. जनरेट किया गया कोड 68881 निर्देशों का उपयोग करता है जिनका अनुकरण किया जाता है
68040.

विकल्प के बराबर है -मार्च = 68020 -मट्यून=68020-40.

-एम68020-60
किसी भी नए निर्देश का उपयोग किए बिना, 68060 के लिए आउटपुट उत्पन्न करें। इसका परिणाम
कोड में जो 68020/68881 या 68030 या a . पर अपेक्षाकृत कुशलता से चल सकता है
68040. जनरेट किया गया कोड 68881 निर्देशों का उपयोग करता है जिनका अनुकरण किया जाता है
68060.

विकल्प के बराबर है -मार्च = 68020 -मट्यून=68020-60.

-महार्ड-फ्लोट
-एम 68881
फ़्लोटिंग-पॉइंट निर्देश उत्पन्न करें। यह 68020 और इसके बाद के संस्करण के लिए डिफ़ॉल्ट है, और
कोल्डफायर उपकरणों के लिए जिनमें एक FPU है। यह मैक्रो को परिभाषित करता है __HAVE_68881__ M680x0 . पर
लक्ष्य और __एमसीएफएफपीयू__ कोल्डफायर लक्ष्यों पर।

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग-पॉइंट निर्देश उत्पन्न न करें; इसके बजाय लाइब्रेरी कॉल का उपयोग करें। यह है
68000, 68010 और 68832 लक्ष्यों के लिए डिफ़ॉल्ट। यह कोल्डफायर के लिए भी डिफ़ॉल्ट है
ऐसे उपकरण जिनमें कोई FPU नहीं है।

-एमडीवी
-मनो-डिव
कोल्डफायर हार्डवेयर डिवाइड और शेष निर्देश उत्पन्न करें (उत्पन्न न करें)। अगर
मार्च बिना उपयोग किया जाता है -एमसीपीयू, कोल्डफायर आर्किटेक्चर के लिए डिफ़ॉल्ट "चालू" है और "बंद" है
M680x0 आर्किटेक्चर के लिए। अन्यथा, डिफ़ॉल्ट लक्ष्य CPU से लिया जाता है (या तो
डिफ़ॉल्ट सीपीयू, या द्वारा निर्दिष्ट एक -एमसीपीयू) उदाहरण के लिए, डिफ़ॉल्ट "बंद" है
एसटी -एमसीपीयू=5206 और "चालू" के लिए -एमसीपीयू=5206e.

जीसीसी मैक्रो को परिभाषित करता है __एमसीएफएचडब्ल्यूडीआईवी__ जब यह विकल्प सक्षम होता है।

-मशॉर्ट
16 बिट चौड़ा होने के लिए "int" टाइप करें, जैसे "शॉर्ट इंट"। इसके अतिरिक्त, पैरामीटर
स्टैक पर पारित लक्ष्य पर भी 16-बिट सीमा के साथ गठबंधन किया जाता है जिसका एपीआई
32-बिट को बढ़ावा देना अनिवार्य है।

-मनो-शॉर्ट
टाइप "int" को 16 बिट चौड़ा न मानें। यह डिफ़ॉल्ट है।

-मनोबिटफील्ड
-मनो-बिटफ़ील्ड
बिट-फ़ील्ड निर्देशों का उपयोग न करें। NS -एम 68000, -एमसीपीयू32 और -एम 5200 विकल्प का अर्थ है
-मनोबिटफील्ड.

-एमबिटफ़ील्ड
बिट-फ़ील्ड निर्देशों का उपयोग करें। NS -एम 68020 विकल्प का तात्पर्य है -एमबिटफ़ील्ड। ये है
डिफ़ॉल्ट यदि आप 68020 के लिए डिज़ाइन किए गए कॉन्फ़िगरेशन का उपयोग करते हैं।

-एमआरटीडी
एक अलग फ़ंक्शन-कॉलिंग कन्वेंशन का उपयोग करें, जिसमें फ़ंक्शन जो एक निश्चित लेते हैं
तर्कों की संख्या "rtd" निर्देश के साथ लौटती है, जो उनके तर्कों को पॉप करता है
लौटते समय। यह कॉलर में एक निर्देश बचाता है क्योंकि इसकी कोई आवश्यकता नहीं है
वहां तर्क पॉप करें।

यह कॉलिंग कन्वेंशन सामान्य रूप से यूनिक्स पर उपयोग किए जाने वाले के साथ असंगत है, इसलिए आप
यदि आपको यूनिक्स कंपाइलर के साथ संकलित पुस्तकालयों को कॉल करने की आवश्यकता है तो इसका उपयोग नहीं कर सकते हैं।

साथ ही, आपको उन सभी कार्यों के लिए फ़ंक्शन प्रोटोटाइप प्रदान करना होगा जो चर लेते हैं
तर्कों की संख्या ("प्रिंटफ" सहित); अन्यथा गलत कोड जनरेट हो जाएगा
उन कार्यों के लिए कॉल के लिए।

इसके अलावा, यदि आप किसी फ़ंक्शन को बहुत अधिक कॉल करते हैं, तो गंभीर रूप से गलत कोड का परिणाम होगा
तर्क। (आम तौर पर, अतिरिक्त तर्कों को हानिरहित रूप से अनदेखा किया जाता है।)

"RTD" निर्देश 68010, 68020, 68030, 68040, 68060 और CPU32 द्वारा समर्थित है
प्रोसेसर, लेकिन 68000 या 5200 तक नहीं।

-मनो-आरटीडी
द्वारा चुने गए कॉलिंग सम्मेलनों का उपयोग न करें -एमआरटीडी. यह डिफ़ॉल्ट है।

-मालिग्न-इंट
-मनो-संरेखित-इंट
नियंत्रित करें कि क्या GCC "int", "long", "long long", "float", "double" और "long . को संरेखित करता है
32-बिट सीमा पर डबल" चर (-मालिग्न-इंट) या 16-बिट सीमा
(-मनो-संरेखित-इंट) 32-बिट सीमाओं पर चर संरेखित करने से कोड उत्पन्न होता है जो चलता है
अधिक मेमोरी की कीमत पर 32-बिट बस वाले प्रोसेसर पर कुछ तेज।

चेतावनी: यदि आप उपयोग करते हैं -मालिग्न-इंट स्विच, जीसीसी युक्त संरचनाओं को संरेखित करेगा
उपरोक्त प्रकार अधिकांश प्रकाशित एप्लिकेशन बाइनरी इंटरफ़ेस से भिन्न हैं
M68k के लिए विनिर्देशों।

-एमपीसीआरएल
ग्लोबल का उपयोग करने के बजाय सीधे 68000 के पीसी-रिश्तेदार एड्रेसिंग मोड का उपयोग करें
ऑफसेट टेबल। वर्तमान में, इस विकल्प का अर्थ है -एफपीआईसी, अधिकतम 16-बिट ऑफ़सेट की अनुमति देता है
पीसी-रिश्तेदार पते के लिए। -एफपीआईसी वर्तमान में के साथ समर्थित नहीं है -एमपीसीआरएल, हालांकि
यह 68020 और उच्चतर प्रोसेसर के लिए समर्थित हो सकता है।

-मनो-सख्त-संरेखण
-मस्ट्रिक्ट-संरेखण
यह मत मानो (करो) कि असंरेखित स्मृति संदर्भों को सिस्टम द्वारा नियंत्रित किया जाएगा।

-एमएसईपी-डेटा
कोड उत्पन्न करें जो डेटा खंड को स्मृति के एक अलग क्षेत्र में स्थित होने की अनुमति देता है
पाठ खंड से। यह बिना किसी वातावरण में निष्पादित करने की अनुमति देता है
आभासी स्मृति प्रबंधन। इस विकल्प का तात्पर्य है -एफपीआईसी.

-मनो-सितंबर-डेटा
कोड जेनरेट करें जो मानता है कि डेटा सेगमेंट टेक्स्ट सेगमेंट का अनुसरण करता है। यह है
डिफ़ॉल्ट।

-मिड-शेयर्ड-लाइब्रेरी
लाइब्रेरी आईडी विधि के माध्यम से साझा पुस्तकालयों का समर्थन करने वाला कोड उत्पन्न करें। यह अनुमति देता है
वर्चुअल मेमोरी के बिना वातावरण में जगह और साझा पुस्तकालयों को निष्पादित करने के लिए
प्रबंध। इस विकल्प का तात्पर्य है -एफपीआईसी.

-मनो-आईडी-साझा-लाइब्रेरी
कोड उत्पन्न करें जो यह नहीं मानता कि आईडी आधारित साझा पुस्तकालयों का उपयोग किया जा रहा है। यह है
डिफ़ॉल्ट।

-mshared-लाइब्रेरी-आईडी = n
संकलित किए जा रहे आईडी आधारित साझा पुस्तकालय की पहचान संख्या निर्दिष्ट करें।
0 का मान निर्दिष्ट करने से अधिक कॉम्पैक्ट कोड उत्पन्न होगा, अन्य मान निर्दिष्ट करने से
उस संख्या के आवंटन को वर्तमान पुस्तकालय के लिए बाध्य करें लेकिन कोई और स्थान नहीं है या
इस विकल्प को छोड़ने की तुलना में समय कुशल।

-मक्सगोट
-मनो-एक्सगोट
कोल्डफायर के लिए स्थिति-स्वतंत्र कोड उत्पन्न करते समय, कोड उत्पन्न करें जो काम करता है if
जीओटी में 8192 से अधिक प्रविष्टियां हैं। यह कोड कोड से बड़ा और धीमा है
इस विकल्प के बिना उत्पन्न। M680x0 प्रोसेसर पर, इस विकल्प की आवश्यकता नहीं है; -एफपीआईसी
पर्याप्त होता।

जीसीसी आम तौर पर जीओटी से मूल्यों को लोड करने के लिए एक ही निर्देश का उपयोग करता है। जबकि यह है
अपेक्षाकृत कुशल, यह केवल तभी काम करता है जब GOT लगभग 64k से छोटा हो। कुछ भी
बड़ा कारण लिंकर को त्रुटि की रिपोर्ट करने का कारण बनता है जैसे:

स्थानांतरण को फिट करने के लिए छोटा किया गया: R_68K_GOT16O foobar

यदि ऐसा होता है, तो आपको अपना कोड फिर से कंपाइल करना चाहिए -मक्सगोट. इसके बाद काम करना चाहिए
बहुत बड़े जीओटी। हालांकि, कोड के साथ उत्पन्न -मक्सगोट कम कुशल है, क्योंकि यह
वैश्विक प्रतीक का मान प्राप्त करने के लिए 4 निर्देश लेता है।

ध्यान दें कि जीएनयू लिंकर के नए संस्करणों सहित कुछ लिंकर बना सकते हैं
एकाधिक जीओटी और सॉर्ट जीओटी प्रविष्टियां। यदि आपके पास ऐसा लिंकर है, तो आपको केवल इसकी आवश्यकता होनी चाहिए
उपयोग करने के लिए -मक्सगोट 8192 से अधिक GOT तक पहुँचने वाली एकल ऑब्जेक्ट फ़ाइल को संकलित करते समय
प्रविष्टियाँ। बहुत कम करते हैं।

इन विकल्पों का कोई प्रभाव नहीं पड़ता है जब तक कि जीसीसी स्थिति-स्वतंत्र कोड उत्पन्न नहीं कर रहा है।

एमकोर ऑप्शंस

ये हैं -m Motorola M*Core प्रोसेसर के लिए परिभाषित विकल्प।

-महार्डलिट
-मनो-हार्डलिट
कोड स्ट्रीम में इनलाइन स्थिरांक यदि यह दो या उससे कम निर्देशों में किया जा सकता है।

-एमडीवी
-मनो-डिव
विभाजित निर्देश का प्रयोग करें। (डिफ़ॉल्ट रूप से सक्षम)।

-मेरेलैक्स-तत्काल
-मनो-आराम-तत्काल
बिट ऑपरेशंस में तुरंत मनमाने आकार की अनुमति दें।

-मवाइड-बिटफ़ील्ड
-मनो-वाइड-बिटफ़ील्ड
हमेशा बिट-फ़ील्ड को इंट-साइज़ के रूप में मानें।

-एम4बाइट-फ़ंक्शंस
-मनो-4बाइट-फ़ंक्शंस
सभी कार्यों को 4-बाइट सीमा से संरेखित करने के लिए बाध्य करें।

-मैकॉलग्राफ-डेटा
-मनो-कॉलग्राफ-डेटा
कॉलग्राफ जानकारी उत्सर्जित करें।

-एमएसलो-बाइट्स
-मनो-धीमी-बाइट्स
बाइट मात्राओं को पढ़ते समय वर्ड एक्सेस को प्राथमिकता दें।

-थोड़ा-एंडियन
-मबिग-एंडियन
छोटे-एंडियन लक्ष्य के लिए कोड जनरेट करें।

-एम 210
-एम 340
210 प्रोसेसर के लिए कोड जेनरेट करें।

-मनो-लसिम
मान लें कि रनटाइम समर्थन प्रदान किया गया है और इसलिए सिम्युलेटर लाइब्रेरी को छोड़ दें
(लिबसिम.ए) लिंकर कमांड लाइन से।

-मस्टैक-इन्क्रीमेंट=आकार
सिंगल स्टैक इंक्रीमेंट ऑपरेशन के लिए अधिकतम राशि निर्धारित करें। बड़े मूल्य कर सकते हैं
उन कार्यक्रमों की गति बढ़ाएं जिनमें ऐसे कार्य होते हैं जिनकी बड़ी मात्रा में आवश्यकता होती है
स्टैक स्पेस, लेकिन यदि स्टैक को बढ़ाया जाता है, तो वे एक सेगमेंटेशन फॉल्ट को भी ट्रिगर कर सकते हैं
बहुत अधिक। डिफ़ॉल्ट मान 0x1000 है।

एमईपी ऑप्शंस

-मैब्सडिफ
"एब्स" निर्देश को सक्षम करता है, जो दो रजिस्टरों के बीच पूर्ण अंतर है।

-मॉल-ऑप्ट्स
सभी वैकल्पिक निर्देशों को सक्षम करता है - औसत, गुणा, भाग, बिट संचालन,
अग्रणी शून्य, पूर्ण अंतर, न्यूनतम/अधिकतम, क्लिप, और संतृप्ति।

-मावरेज
"ave" निर्देश को सक्षम करता है, जो दो रजिस्टरों के औसत की गणना करता है।

-एमबेड =n
आकार के चर n बाइट्स या छोटे को ".आधारित" अनुभाग में रखा जाएगा
चूक जाना। आधारित चर $tp रजिस्टर को आधार रजिस्टर के रूप में उपयोग करते हैं, और एक है
128-बाइट सीमा ".आधारित" खंड तक।

-एमबीटॉप्स
बिट ऑपरेशन निर्देश सक्षम करता है - बिट टेस्ट ("बीटीएसटीएम"), सेट ("बीसेटएम"), स्पष्ट
("bclrm"), इनवर्ट ("bnotm"), और टेस्ट-एंड-सेट ("tas")।

-एमसी =नाम
चुनता है कि किस सेक्शन में निरंतर डेटा रखा जाएगा। नाम "छोटा", "निकट", या . हो सकता है
"दूर"।

-एमसीलिप
"क्लिप" निर्देश को सक्षम करता है। ध्यान दें कि "-mclip" तब तक उपयोगी नहीं है जब तक आप भी
"-mminmax" प्रदान करें।

-एमकॉन्फिग =नाम
बिल्ट-इन कोर कॉन्फ़िगरेशन में से एक का चयन करता है। प्रत्येक एमईपी चिप में एक या अधिक होते हैं
इसमें मॉड्यूल; प्रत्येक मॉड्यूल में एक कोर सीपीयू और विभिन्न प्रकार के सहसंसाधक होते हैं, वैकल्पिक
निर्देश, और परिधीय। "MeP-Integrator" टूल, GCC का भाग नहीं, प्रदान करता है
इस विकल्प के माध्यम से ये विन्यास; इस विकल्प का उपयोग करना सभी का उपयोग करने के समान है
संबंधित कमांड-लाइन विकल्प। डिफ़ॉल्ट कॉन्फ़िगरेशन "डिफ़ॉल्ट" है।

-मकोप
सहसंसाधक निर्देशों को सक्षम करता है। डिफ़ॉल्ट रूप से, यह एक 32-बिट कोप्रोसेसर है। ध्यान दें
कि सहसंसाधक सामान्य रूप से "-mconfig=" विकल्प के माध्यम से सक्षम होता है।

-एमसीओपी32
32-बिट कोप्रोसेसर के निर्देशों को सक्षम करता है।

-एमसीओपी64
64-बिट कोप्रोसेसर के निर्देशों को सक्षम करता है।

-एमआईवीसी2
IVC2 शेड्यूलिंग सक्षम करता है। IVC2 एक 64-बिट VLIW कोप्रोसेसर है।

-एमडीसी
निरंतर चर को ".निकट" खंड में रखने का कारण बनता है।

-एमडीवी
"Div" और "divu" निर्देशों को सक्षम करता है।

-मेब
बिग-एंडियन कोड जेनरेट करें।

-मेले
लिटिल-एंडियन कोड जेनरेट करें।

-मियो-अस्थिर
संकलक को बताता है कि "io" विशेषता के साथ चिह्नित कोई भी चर होना चाहिए
अस्थिर माना जाता है।

-एमएल डिफ़ॉल्ट रूप से ".far" अनुभाग को चर निर्दिष्ट करने का कारण बनता है।

-मलेड्ज़ो
"लीडज़" (अग्रणी शून्य) निर्देश सक्षम करता है।

-म डिफ़ॉल्ट रूप से वेरिएबल को ".निकट" अनुभाग में असाइन करने का कारण बनता है।

-मिमिनमैक्स
"न्यूनतम" और "अधिकतम" निर्देशों को सक्षम करता है।

-मिमल
गुणा और गुणा-संचय निर्देशों को सक्षम करता है।

-मनो-ऑप्स
"-मॉल-ऑप्ट्स" द्वारा सक्षम सभी वैकल्पिक निर्देशों को अक्षम करता है।

-मरेपीट
लो-ओवरहेड लूपिंग के लिए उपयोग किए जाने वाले "रिपीट" और "रेपीट" निर्देशों को सक्षम करता है।

-एमएस सभी वेरिएबल को ".tiny" सेक्शन में डिफॉल्ट कर देता है। ध्यान दें कि एक है
इस खंड के लिए 65536-बाइट सीमा। इन चरों तक पहुँच %gp आधार का उपयोग करती है
रजिस्टर.

-मसतुर
संतृप्ति निर्देशों को सक्षम करता है। ध्यान दें कि कंपाइलर वर्तमान में नहीं है
इन्हें स्वयं उत्पन्न करें, लेकिन यह विकल्प अन्य उपकरणों के साथ संगतता के लिए शामिल है,
जैसे"।

-एमएसड्राम
डिफ़ॉल्ट ROM-आधारित रनटाइम के बजाय SDRAM-आधारित रनटाइम को लिंक करें।

-मसिम
सिम्युलेटर रनटाइम पुस्तकालयों को लिंक करें।

-मसिमनोवेक
रीसेट के लिए अंतर्निहित समर्थन को छोड़कर, सिम्युलेटर रनटाइम लाइब्रेरी को लिंक करें और
अपवाद वैक्टर और टेबल।

-एमटीएफ
सभी कार्यों को ".far" खंड में डिफ़ॉल्ट रूप से उत्पन्न करता है। इस विकल्प के बिना, कार्य
".निकट" अनुभाग के लिए डिफ़ॉल्ट।

-मिनी =n
चर जो हैं n बाइट्स या छोटे को ".tiny" सेक्शन में आवंटित किया जाएगा। इन
चर $gp आधार रजिस्टर का उपयोग करते हैं। इस विकल्प के लिए डिफ़ॉल्ट 4 है, लेकिन ध्यान दें कि
".tiny" खंड में 65536-बाइट की सीमा है।

माइक्रोब्लाज ऑप्शंस

-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट (डिफ़ॉल्ट) के लिए सॉफ़्टवेयर इम्यूलेशन का उपयोग करें।

-महार्ड-फ्लोट
हार्डवेयर फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें।

-mmemcpy
ब्लॉक चालों का अनुकूलन न करें, "memcpy" का उपयोग करें।

-मनो-क्लीयरबस
यह विकल्प बहिष्कृत है। उपयोग -फनो-जीरो-इनिशियलाइज्ड-इन-बीएसएस बजाय.

-एमसीपीयू =सीपीयू प्रकार
दिए गए CPU के लिए सुविधाओं और शेड्यूल कोड का उपयोग करें। समर्थित मान प्रारूप में हैं
vX.YY.Z, जहां X एक प्रमुख संस्करण है, YY लघु संस्करण है, और Z अनुकूलता है
कोड। उदाहरण मान हैं v3.00.ए, v4.00.बी, v5.00.ए, v5.00.बी, v5.00.बी, v6.00.ए.

-एमएक्सएल-सॉफ्ट-मुल
सॉफ़्टवेयर गुणा इम्यूलेशन (डिफ़ॉल्ट) का उपयोग करें।

-एमएक्सएल-सॉफ्ट-डिव
डिवाइड (डिफ़ॉल्ट) के लिए सॉफ़्टवेयर इम्यूलेशन का उपयोग करें।

-एमएक्सएल-बैरल-शिफ्ट
हार्डवेयर बैरल शिफ्टर का उपयोग करें।

-एमएक्सएल-पैटर्न-तुलना
पैटर्न तुलना निर्देशों का प्रयोग करें।

-स्मॉल-डिवाइड
छोटे हस्ताक्षरित पूर्णांक विभाजनों के लिए तालिका लुकअप अनुकूलन का उपयोग करें।

-एमएक्सएल-स्टैक-चेक
यह विकल्प बहिष्कृत है। इसके बजाए -फस्टैक-चेक का प्रयोग करें।

-एमएक्सएल-जीपी-ऑप्ट
GP सापेक्ष sdata/sbss अनुभागों का उपयोग करें।

-एमएक्सएल-गुणा-उच्च
32x32 गुणा के उच्च भाग के लिए उच्च निर्देशों को गुणा करें का उपयोग करें।

-एमएक्सएल-फ्लोट-कन्वर्ट
हार्डवेयर फ़्लोटिंग-पॉइंट रूपांतरण निर्देशों का उपयोग करें।

-एमएक्सएल-फ्लोट-वर्ग
हार्डवेयर फ़्लोटिंग-पॉइंट स्क्वायर रूट निर्देश का प्रयोग करें।

-एमएक्सएल-मोड-ऐप-मॉडल
एप्लिकेशन मॉडल का चयन करें ऐप-मॉडल. मान्य मॉडल हैं

निष्पादन
सामान्य निष्पादन योग्य (डिफ़ॉल्ट), स्टार्टअप कोड का उपयोग करता है crt0.o.

xmdstub
Xilinx माइक्रोप्रोसेसर डीबगर (XMD) आधारित सॉफ़्टवेयर घुसपैठ डीबग के साथ प्रयोग के लिए
xmdstub नामक एजेंट। यह स्टार्टअप फ़ाइल का उपयोग करता है crt1.o और का प्रारंभ पता सेट करता है
कार्यक्रम 0x800 होना चाहिए।

बूटस्ट्रैप
बूटलोडर का उपयोग करके लोड किए गए अनुप्रयोगों के लिए। यह मॉडल स्टार्टअप फ़ाइल का उपयोग करता है
crt2.o जिसमें प्रोसेसर रीसेट वेक्टर हैंडलर नहीं है। यह उपयुक्त है
प्रोसेसर पर नियंत्रण को बूटलोडर पर रीसेट करने के बजाय स्थानांतरित करने के लिए
आवेदन.

नवप्रवर्तक
उन अनुप्रयोगों के लिए जिन्हें किसी भी माइक्रोब्लेज़ वैक्टर की आवश्यकता नहीं होती है। इस विकल्प
मॉनिटरिंग एप्लिकेशन के भीतर चल रहे एप्लिकेशन के लिए उपयोगी हो सकता है। यह मॉडल
का उपयोग करता है crt3.o स्टार्टअप फ़ाइल के रूप में।

विकल्प -एक्सएल-मोड-ऐप-मॉडल के लिए एक पदावनत उपनाम है -एमएक्सएल-मोड-ऐप-मॉडल.

एमआइपी ऑप्शंस

-ईबी बिग-एंडियन कोड जेनरेट करें।

हैं El लिटिल-एंडियन कोड जेनरेट करें। यह इसके लिए डिफ़ॉल्ट है मिप्स*एल-*-* विन्यास।

-मार्च=मेहराब
कोड जनरेट करें जो चालू रहेगा मेहराब, जो एक सामान्य MIPS ISA का नाम हो सकता है, या
एक विशेष प्रोसेसर का नाम। आईएसए नाम हैं: मिप्स1, मिप्स2, मिप्स3, मिप्स4,
मिप्स32, mips32r2, मिप्स64 और mips64r2. प्रोसेसर के नाम हैं: 4kc, 4km, ९३४६७४८९३४kp, 4ksc,
4केईसी, 4केएम, 4केपी, 4केएसडी, 5kc, 5kf, 20kc, 24kc, 24केएफ2_1, 24केएफ1_1, 24केईसी, 24केफ2_1,
24केफ1_1, 34kc, 34केएफ2_1, 34केएफ1_1, 74kc, 74केएफ2_1, 74केएफ1_1, 74केएफ3_2, 1004kc, 1004केएफ2_1,
1004केएफ1_1, लूंगसन2ई, लूंगसन2f, लूंगसन3ए, m4k, अष्टक, अष्टक+, अष्टक 2, ओरियन,
r2000, r3000, r3900, r4000, r4400, r4600, r4650, r6000, r8000, rm7000, rm9000, r10000,
r12000, r14000, r16000, sb1, sr71000, vr4100, vr4111, vr4120, vr4130, vr4300, vr5000,
vr5400, vr5500 और XLR. विशेष मूल्य से-अबी सबसे संगत का चयन करता है
चयनित ABI के लिए आर्किटेक्चर (अर्थात, मिप्स1 32-बिट एबीआई और . के लिए मिप्स3 64-बिट . के लिए
एबीआई)।

नेटिव लिनक्स/जीएनयू और आईआरआईएक्स टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो का चयन करता है
होस्ट प्रोसेसर के लिए सर्वश्रेष्ठ आर्किटेक्चर विकल्प। -मार्च = देशी कोई प्रभाव नहीं पड़ता अगर जीसीसी
प्रोसेसर को नहीं पहचानता है।

प्रोसेसर नामों में, एक अंतिम 000 के रूप में संक्षिप्त किया जा सकता है k (उदाहरण के लिए, -मार्च=r2k).
उपसर्ग वैकल्पिक हैं, और vr लिखा जा सकता है r.

फॉर्म के नाम nf2_1 एफपीयू के साथ प्रोसेसर का संदर्भ लें, जो की आधी दर पर क्लॉक किया गया है
कोर, फॉर्म के नाम nf1_1 समान दर पर क्लॉक किए गए FPU वाले प्रोसेसर का संदर्भ लें
कोर के रूप में, और प्रपत्र के नाम nf3_2 एफपीयू के साथ एक अनुपात में देखे गए प्रोसेसर का संदर्भ लें
कोर के संबंध में 3:2 का। अनुकूलता कारणों से, nf के रूप में स्वीकार किया जाता है
के लिए समानार्थी nf2_1 जब nx और bfx के पर्यायवाची के रूप में स्वीकार किए जाते हैं nf1_1.

GCC इस विकल्प के मूल्य के आधार पर दो मैक्रो को परिभाषित करता है। पहला है _MIPS_ARCH,
जो एक स्ट्रिंग के रूप में लक्ष्य वास्तुकला का नाम देता है। दूसरे का रूप है
_MIPS_ARCH_foo, जहां foo का पूंजीकृत मूल्य है _MIPS_ARCH। उदाहरण के लिए,
-मार्च = r2000 स्थापित करेगा _MIPS_ARCH सेवा मेरे "r2000" और मैक्रो को परिभाषित करें _MIPS_ARCH_R2000.

ध्यान दें कि _MIPS_ARCH मैक्रो ऊपर दिए गए प्रोसेसर नामों का उपयोग करता है। दूसरे शब्दों में,
इसमें पूर्ण उपसर्ग होगा और संक्षिप्त नहीं होगा 000 as k। के मामले में से-
अबी, मैक्रो हल किए गए आर्किटेक्चर का नाम देता है (या तो "मिप्स1" or "मिप्स3") यह नाम
डिफ़ॉल्ट आर्किटेक्चर जब नहीं मार्च विकल्प दिया गया है।

-मट्यून =मेहराब
के लिए ऑप्टिमाइज़ करें मेहराब. अन्य बातों के अलावा, यह विकल्प निर्देशों के तरीके को नियंत्रित करता है
अनुसूचित, और अंकगणितीय परिचालनों की अनुमानित लागत। की सूची मेहराब मानों
के लिए ही है मार्च.

जब इस विकल्प का उपयोग नहीं किया जाता है, तो GCC द्वारा निर्दिष्ट प्रोसेसर के लिए अनुकूलित किया जाएगा मार्च.
का उपयोग करके मार्च और -मट्यून एक साथ, कोड जनरेट करना संभव है जो चालू रहेगा
प्रोसेसर का एक परिवार, लेकिन उस के एक विशेष सदस्य के लिए कोड को अनुकूलित करें
परिवार।

-मट्यून मैक्रोज़ को परिभाषित करता है _MIPS_TUNE और _MIPS_TUNE_foo, जो उसी तरह काम करते हैं जैसे
la मार्च ऊपर वर्णित वाले।

-मिप्स1
के बराबर -मार्च = मिप्स1.

-मिप्स2
के बराबर -मार्च = मिप्स2.

-मिप्स3
के बराबर -मार्च = मिप्स3.

-मिप्स4
के बराबर -मार्च = मिप्स4.

-मिप्स32
के बराबर -मार्च = मिप्स32.

-मिप्स32r2
के बराबर -मार्च = mips32r2.

-मिप्स64
के बराबर -मार्च = मिप्स64.

-मिप्स64r2
के बराबर -मार्च = mips64r2.

-मिप्स16
-मनो-मिप्स16
MIPS16 कोड उत्पन्न करें (उत्पन्न न करें)। यदि GCC MIPS32 या MIPS64 को लक्षित कर रहा है
वास्तुकला, यह MIPS16e ASE का उपयोग करेगा।

MIPS16 कोड जनरेशन को प्रति-फ़ंक्शन के आधार पर भी नियंत्रित किया जा सकता है
"mips16" और "nomips16" विशेषताएँ।

-एमएफलिप-मिप्स16
वैकल्पिक कार्यों पर MIPS16 कोड उत्पन्न करें। यह विकल्प प्रतिगमन के लिए प्रदान किया गया है
मिश्रित MIPS16/गैर-MIPS16 कोड पीढ़ी का परीक्षण, और सामान्य के लिए अभिप्रेत नहीं है
उपयोगकर्ता कोड संकलित करने में उपयोग करें।

-मिन्टरलिंक-मिप्स16
-मनो-इंटरलिंक-मिप्स16
आवश्यकता है (आवश्यक नहीं है) कि गैर-MIPS16 कोड MIPS16 कोड के साथ लिंक-संगत हो।

उदाहरण के लिए, गैर-MIPS16 कोड सीधे MIPS16 कोड पर नहीं जा सकता है; इसे या तो a . का उपयोग करना चाहिए
कॉल या अप्रत्यक्ष छलांग। -मिन्टरलिंक-मिप्स16 इसलिए सीधे कूद को अक्षम करता है जब तक
GCC जानता है कि कूदने का लक्ष्य MIPS16 नहीं है।

-मबी=32
-माबी = ओ 64
-मबी = n32
-मबी=64
-मबी=ईबी
दिए गए ABI के लिए कोड जनरेट करें।

ध्यान दें कि ईएबीआई में 32-बिट और 64-बिट संस्करण हैं। जीसीसी सामान्य रूप से 64-बिट . उत्पन्न करता है
कोड जब आप 64-बिट आर्किटेक्चर का चयन करते हैं, लेकिन आप इसका उपयोग कर सकते हैं -एमजीपी32 32-बिट कोड प्राप्त करने के लिए
बजाय.

O64 ABI के बारे में जानकारी के लिए देखेंhttp://gcc.gnu.org/projects/mipso64-abi.html>.

GCC o32 ABI के एक प्रकार का समर्थन करता है जिसमें फ़्लोटिंग-पॉइंट रजिस्टर 64 बल्कि हैं
32 बिट से अधिक चौड़ा। आप इस संयोजन का चयन कर सकते हैं -मबी=32 -एमएफपी64. यह एबीआई
पर निर्भर करता है एमटीएचसी1 और एमएफएचसी1 निर्देश और इसलिए केवल के लिए समर्थित है
MIPS32R2 प्रोसेसर।

तर्कों और वापसी मूल्यों के लिए रजिस्टर असाइनमेंट समान रहते हैं, लेकिन प्रत्येक
अदिश मान 64-बिट की जोड़ी के बजाय एकल 32-बिट रजिस्टर में पारित किया जाता है
रजिस्टर उदाहरण के लिए, अदिश फ़्लोटिंग-पॉइंट मान लौटाए जाते हैं $f0 केवल, नहीं a
$f0/$f1 जोड़ा। कॉल-सेव्ड रजिस्टरों का सेट भी वही रहता है, लेकिन सभी 64 बिट
सहेजे जाते हैं।

-मैबिकल्स
-मनो-एबिकल्स
कोड उत्पन्न करें (उत्पन्न न करें) जो SVR4-शैली की गतिशील वस्तुओं के लिए उपयुक्त है।
-मैबिकल्स SVR4-आधारित सिस्टम के लिए डिफ़ॉल्ट है।

-mshared
-मनो-साझा
कोड उत्पन्न करें (उत्पन्न न करें) जो पूरी तरह से स्थिति-स्वतंत्र है, और जो कर सकता है
इसलिए साझा पुस्तकालयों में जोड़ा जाना चाहिए। यह विकल्प केवल प्रभावित करता है -मैबिकल्स.

सब -मैबिकल्स विकल्पों की परवाह किए बिना कोड पारंपरिक रूप से स्थिति-स्वतंत्र रहा है
पसंद -एफपीआईसी और -एफपीआईसी. हालांकि, एक विस्तार के रूप में, जीएनयू टूलचेन निष्पादन योग्य की अनुमति देता है
स्थानीय रूप से बाध्यकारी प्रतीकों के लिए पूर्ण पहुंच का उपयोग करने के लिए। यह छोटे GP का भी उपयोग कर सकता है
इनिशियलाइज़ेशन सीक्वेंस और स्थानीय रूप से परिभाषित कार्यों के लिए सीधी कॉल उत्पन्न करते हैं। इस
मोड द्वारा चुना गया है -मनो-साझा.

-मनो-साझा बिनुटिल्स 2.16 या उच्चतर पर निर्भर करता है और ऐसी वस्तुएं उत्पन्न करता है जो केवल हो सकती हैं
जीएनयू लिंकर द्वारा जुड़ा हुआ है। हालांकि, विकल्प फाइनल के एबीआई को प्रभावित नहीं करता है
निष्पादन योग्य; यह केवल स्थानांतरित करने योग्य वस्तुओं के एबीआई को प्रभावित करता है। का उपयोग करते हुए -मनो-साझा मर्जी
आम तौर पर निष्पादन योग्य छोटे और तेज दोनों बनाते हैं।

-mshared डिफ़ॉल्ट है।

-एमपीएलटी
-मनो-पीएलटी
मान लें (मान लें) कि स्थिर और गतिशील लिंकर्स पीएलटी का समर्थन करते हैं और कॉपी करते हैं
स्थान परिवर्तन। यह विकल्प केवल प्रभावित करता है -मनो-साझा -मैबिकल्स. एन 64 एबीआई के लिए, यह
बिना विकल्प का कोई प्रभाव नहीं पड़ता -एमएसआईएम32.

आप कर सकते हैं -एमपीएलटी के साथ जीसीसी को कॉन्फ़िगर करके डिफ़ॉल्ट --साथ-मिप्स-पीएलटी। डिफ़ॉल्ट
is -मनो-पीएलटी अन्यथा।

-मक्सगोट
-मनो-एक्सगोट
वैश्विक ऑफ़सेट तालिका के आकार पर सामान्य प्रतिबंधों को उठाएं (उठाएं नहीं)।

जीसीसी आम तौर पर जीओटी से मूल्यों को लोड करने के लिए एक ही निर्देश का उपयोग करता है। जबकि यह है
अपेक्षाकृत कुशल, यह केवल तभी काम करेगा जब GOT लगभग 64k से छोटा हो।
कुछ भी बड़ा होने पर लिंकर त्रुटि की रिपोर्ट करेगा जैसे:

स्थानांतरण को फिट करने के लिए छोटा किया गया: R_MIPS_GOT16 foobar

यदि ऐसा होता है, तो आपको अपना कोड फिर से कंपाइल करना चाहिए -मक्सगोट. इसके बाद काम करना चाहिए
बहुत बड़े जीओटी, हालांकि यह कम कुशल भी होंगे, क्योंकि इसमें तीन लगेंगे
वैश्विक प्रतीक का मूल्य लाने के निर्देश।

ध्यान दें कि कुछ लिंकर कई जीओटी बना सकते हैं। यदि आपके पास ऐसा लिंकर है, तो आप
केवल उपयोग करने की आवश्यकता होनी चाहिए -मक्सगोट जब एक एकल ऑब्जेक्ट फ़ाइल 64k से अधिक तक पहुँचती है
जीओटी प्रविष्टियों के लायक। बहुत कम करते हैं।

इन विकल्पों का कोई प्रभाव नहीं पड़ता है जब तक कि जीसीसी स्थिति स्वतंत्र कोड उत्पन्न नहीं कर रहा है।

-एमजीपी32
मान लें कि सामान्य प्रयोजन के रजिस्टर 32 बिट चौड़े हैं।

-एमजीपी64
मान लें कि सामान्य प्रयोजन के रजिस्टर 64 बिट चौड़े हैं।

-एमएफपी32
मान लें कि फ़्लोटिंग-पॉइंट रजिस्टर 32 बिट चौड़े हैं।

-एमएफपी64
मान लें कि फ़्लोटिंग-पॉइंट रजिस्टर 64 बिट चौड़े हैं।

-महार्ड-फ्लोट
फ्लोटिंग-पॉइंट कोप्रोसेसर निर्देशों का उपयोग करें।

-एमसॉफ्ट-फ्लोट
फ्लोटिंग-पॉइंट कोप्रोसेसर निर्देशों का उपयोग न करें। फ़्लोटिंग-पॉइंट लागू करें
इसके बजाय लाइब्रेरी कॉल का उपयोग करके गणना।

-एकल-फ्लोट
मान लें कि फ़्लोटिंग-पॉइंट कोप्रोसेसर केवल एकल-सटीक संचालन का समर्थन करता है।

-मडबल-फ्लोट
मान लें कि फ़्लोटिंग-पॉइंट कोप्रोसेसर डबल-सटीक संचालन का समर्थन करता है। इस
डिफ़ॉल्ट है।

-एमएलएससी
-मनो-एलएलएससी
उपयोग करें (उपयोग न करें) ll, sc, तथा सिंक अंतर्निहित परमाणु स्मृति को लागू करने के निर्देश
कार्य। जब कोई भी विकल्प निर्दिष्ट नहीं किया जाता है, तो GCC निर्देशों का उपयोग करेगा यदि:
लक्ष्य वास्तुकला उनका समर्थन करता है।

-एमएलएससी उपयोगी है यदि रनटाइम वातावरण निर्देशों का अनुकरण कर सकता है और -मनो-एलएलएससी
गैर-मानक ISAs के लिए संकलन करते समय उपयोगी हो सकता है। आप इनमें से कोई भी विकल्प बना सकते हैं
के साथ जीसीसी को कॉन्फ़िगर करके डिफ़ॉल्ट --साथ-llsc और --बिना-llsc क्रमशः.
--साथ-llsc कुछ कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट है; स्थापना दस्तावेज़ देखें
ब्योरा हेतु।

-एमडीएसपी
-मनो-डीएसपी
एमआईपीएस डीएसपी एएसई के संशोधन 1 का प्रयोग करें (उपयोग न करें)।
यह विकल्प प्रीप्रोसेसर मैक्रो को परिभाषित करता है __मिप्स_डीएसपी. यह भी परिभाषित करता है
__mips_dsp_rev 1 लिए.

-एमडीएसपीआर2
-मनो-डीएसपीआर2
एमआईपीएस डीएसपी एएसई के संशोधन 2 का प्रयोग करें (उपयोग न करें)।
यह विकल्प प्रीप्रोसेसर मैक्रोज़ को परिभाषित करता है __मिप्स_डीएसपी और __mips_dspr2। यह aussi
परिभाषित करता है __mips_dsp_rev 2 लिए.

-एमएसमार्टमिप्स
-मनो-स्मार्टमिप्स
एमआईपीएस स्मार्टएमआईपीएस एएसई का प्रयोग करें (उपयोग न करें)।

-युग्मित-एकल
-मनो-पेयर-सिंगल
युग्मित-एकल फ़्लोटिंग-पॉइंट निर्देशों का उपयोग करें (उपयोग न करें)।
इस विकल्प को सक्षम करने के लिए हार्डवेयर फ़्लोटिंग-पॉइंट समर्थन की आवश्यकता है।

-एमडीएमएक्स
-मनो-एमडीएमएक्स
MIPS डिजिटल मीडिया एक्सटेंशन निर्देशों का उपयोग करें (उपयोग न करें)। यह विकल्प केवल हो सकता है
64-बिट कोड जनरेट करते समय उपयोग किया जाता है और इसके लिए हार्डवेयर फ़्लोटिंग-पॉइंट समर्थन की आवश्यकता होती है
सक्षम होना चाहिए।

-मिप्स3डी
-मनो-मिप्स3डी
MIPS-3D ASE का उपयोग करें (उपयोग न करें)। विकल्प -मिप्स3डी का तात्पर्य -युग्मित-एकल.

-एमएमटी
-मनो-एमटी
एमटी मल्टीथ्रेडिंग निर्देशों का उपयोग करें (उपयोग न करें)।

-एमएलॉन्ग64
बल "लंबे" प्रकार 64 बिट चौड़े होने चाहिए। देखो -एमएलॉन्ग32 डिफ़ॉल्ट की व्याख्या के लिए
और जिस तरह से सूचक आकार निर्धारित किया जाता है।

-एमएलॉन्ग32
बल "लॉन्ग", "इंट", और पॉइंटर प्रकार 32 बिट चौड़े होने चाहिए।

"इंट", "लॉन्ग" और पॉइंटर्स का डिफ़ॉल्ट आकार एबीआई पर निर्भर करता है। आल थे
समर्थित ABI 32-बिट "int" का उपयोग करते हैं। n64 ABI 64-बिट "लॉन्ग" का उपयोग करता है, जैसा कि 64-बिट . करता है
ईएबीआई; अन्य 32-बिट "लॉन्ग" का उपयोग करते हैं। पॉइंटर्स "long" s, या the के समान आकार के होते हैं
पूर्णांक रजिस्टरों के समान आकार, जो भी छोटा हो।

-एमएसआईएम32
-मनो-सिम32
मान लें (मान न लें) कि सभी प्रतीकों में 32-बिट मान हैं, चयनित की परवाह किए बिना
एबीआई। यह विकल्प के संयोजन में उपयोगी है -मबी=64 और -मनो-एबिकल्स क्योंकि यह
जीसीसी को सांकेतिक पतों के लिए छोटे और तेज संदर्भ उत्पन्न करने की अनुमति देता है।

-G संख्या
बाहरी रूप से दिखाई देने वाले डेटा की परिभाषाओं को एक छोटे डेटा अनुभाग में रखें यदि वह डेटा नहीं है
से भी बड़ा संख्या बाइट्स। तब GCC डेटा को अधिक कुशलता से एक्सेस कर सकता है; देख -एमजीपॉप्ट एसटी
विवरण।

डिफ़ॉल्ट -G विकल्प विन्यास पर निर्भर करता है।

-मलोकल-एसडीटा
-मनो-लोकल-एसडीटा
बढ़ाएँ (विस्तार न करें) -G स्थानीय डेटा के लिए भी व्यवहार, जैसे कि स्थिर चर
सी। में। -मलोकल-एसडीटा सभी कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट है।

यदि लिंकर शिकायत करता है कि कोई एप्लिकेशन बहुत अधिक छोटे डेटा का उपयोग कर रहा है, तो आप शायद
के साथ कम प्रदर्शन-महत्वपूर्ण भागों के पुनर्निर्माण का प्रयास करना चाहते हैं -मनो-लोकल-एसडीटा. आप
के साथ बड़े पुस्तकालय भी बनाना चाह सकते हैं -मनो-लोकल-एसडीटा, ताकि पुस्तकालयों
मुख्य कार्यक्रम के लिए अधिक जगह छोड़ दें।

-मेक्सटर्न-एसडीटा
-मनो-बाहरी-एसडीटा
मान लें (मान न लें) कि बाहरी रूप से परिभाषित डेटा एक छोटे डेटा अनुभाग में होगा यदि
वह डेटा के भीतर है -G सीमा। -मेक्सटर्न-एसडीटा सभी के लिए डिफ़ॉल्ट है
विन्यास।

यदि आप एक मॉड्यूल संकलित करते हैं रास्ता साथ में -मेक्सटर्न-एसडीटा -G संख्या -एमजीपॉप्ट, तथा रास्ता संदर्भ
परिवर्तनशील प्रत्येक यह से बड़ा नहीं है संख्या बाइट्स, आपको यह सुनिश्चित करना होगा कि प्रत्येक रखा गया है
एक छोटे से डेटा अनुभाग में। अगर प्रत्येक किसी अन्य मॉड्यूल द्वारा परिभाषित किया गया है, आपको या तो संकलित करना होगा
वह मॉड्यूल एक उच्च-पर्याप्त . के साथ -G "सेक्शन" विशेषता को सेट करना या संलग्न करना प्रत्येक's
परिभाषा। अगर प्रत्येक सामान्य है, आपको एप्लिकेशन को उच्च-पर्याप्त के साथ लिंक करना होगा -G
सेटिंग.

इन प्रतिबंधों को संतुष्ट करने का सबसे आसान तरीका प्रत्येक मॉड्यूल को संकलित और लिंक करना है
उसी के साथ -G विकल्प। हालाँकि, आप एक पुस्तकालय का निर्माण करना चाह सकते हैं जो समर्थन करता हो
कई अलग-अलग छोटी डेटा सीमाएं। आप पुस्तकालय को संकलित करके ऐसा कर सकते हैं
उच्चतम समर्थित -G सेटिंग और इसके अतिरिक्त उपयोग करना -मनो-बाहरी-एसडीटा रोकना
पुस्तकालय बाहरी रूप से परिभाषित डेटा के बारे में धारणा बनाने से।

-एमजीपॉप्ट
-मनो-गपोप्ट
छोटे डेटा में ज्ञात प्रतीकों के लिए जीपी-रिश्तेदार पहुंच का उपयोग करें (उपयोग न करें)
अनुभाग; देख -G, -मलोकल-एसडीटा और -मेक्सटर्न-एसडीटा. -एमजीपॉप्ट सभी के लिए डिफ़ॉल्ट है
विन्यास।

-मनो-गपोप्ट उन मामलों के लिए उपयोगी है जहां $gp रजिस्टर का मूल्य नहीं हो सकता है
"_जीपी"। उदाहरण के लिए, यदि कोड एक पुस्तकालय का हिस्सा है जिसका उपयोग बूट में किया जा सकता है
मॉनिटर, प्रोग्राम जो बूट मॉनिटर रूटीन कहते हैं, $gp में एक अज्ञात मान पास करेंगे।
(ऐसी स्थितियों में, बूट मॉनिटर को आमतौर पर इसके साथ संकलित किया जाएगा -G0.)

-मनो-गपोप्ट का तात्पर्य -मनो-लोकल-एसडीटा और -मनो-बाहरी-एसडीटा.

-मेम्बेडेड-डेटा
-एमनो-एम्बेडेड-डेटा
यदि संभव हो तो पहले केवल-पढ़ने के लिए डेटा अनुभाग में चर आवंटित करें, फिर अगले में
यदि संभव हो तो छोटा डेटा अनुभाग, अन्यथा डेटा में। यह थोड़ा धीमा कोड देता है
डिफ़ॉल्ट की तुलना में, लेकिन निष्पादित करते समय आवश्यक RAM की मात्रा को कम करता है, और इस प्रकार हो सकता है
कुछ एम्बेडेड सिस्टम के लिए पसंद किया जा सकता है।

-मुनीनिट-कॉन्स्ट-इन-रोडाटा
-मनो-यूनिट-कॉन्स्ट-इन-रोडाटा
केवल-पढ़ने के लिए डेटा अनुभाग में अप्रारंभीकृत "स्थिरांक" चर डालें। यह विकल्प है
के साथ संयोजन के रूप में ही सार्थक -मेम्बेडेड-डेटा.

-एमकोड-पठनीय =की स्थापना
निर्दिष्ट करें कि क्या जीसीसी कोड उत्पन्न कर सकता है जो निष्पादन योग्य अनुभागों से पढ़ता है। वहां
तीन संभावित सेटिंग्स:

-एमकोड-पठनीय = हाँ
निर्देश निष्पादन योग्य अनुभागों तक स्वतंत्र रूप से पहुंच सकते हैं। यह डिफ़ॉल्ट सेटिंग है।

-mcode-पठनीय = pcrel
MIPS16 पीसी-सापेक्ष लोड निर्देश निष्पादन योग्य अनुभागों तक पहुंच सकते हैं, लेकिन अन्य
निर्देश ऐसा नहीं करना चाहिए। यह विकल्प 4केएससी और 4केएसडी प्रोसेसर पर उपयोगी है
जब कोड टीएलबी में रीड इनहिबिट बिट सेट होता है। यह प्रोसेसर पर भी उपयोगी है
जिसे दोहरे निर्देश/डेटा SRAM इंटरफ़ेस के लिए कॉन्फ़िगर किया जा सकता है और वह,
M4K की तरह, स्वचालित रूप से पीसी-सापेक्ष भार को निर्देश RAM पर पुनर्निर्देशित करता है।

-एमकोड-पठनीय = नहीं
निर्देशों को निष्पादन योग्य अनुभागों तक नहीं पहुंचना चाहिए। यह विकल्प उपयोगी हो सकता है
ऐसे लक्ष्य जिन्हें दोहरे निर्देश/डेटा SRAM इंटरफ़ेस के लिए कॉन्फ़िगर किया गया है लेकिन
कि (M4K के विपरीत) पीसी-सापेक्ष भार को स्वचालित रूप से पुनर्निर्देशित नहीं करता है
निर्देश रैम।

-एमएसप्लिट-पते
-मनो-विभाजन-पते
"% hi ()" और "% lo ()" असेंबलर स्थानांतरण ऑपरेटरों के उपयोग को सक्षम (अक्षम) करें। इस
विकल्प द्वारा प्रतिस्थापित किया गया है -मेक्सप्लिसिट-रिलोक्स लेकिन पीछे की ओर रखा जाता है
संगतता।

-मेक्सप्लिसिट-रिलोक्स
-मनो-स्पष्ट-रिलोक्स
प्रतीकात्मक पते के साथ काम करते समय असेंबलर स्थानांतरण ऑपरेटरों का उपयोग करें (उपयोग न करें)।
विकल्प, द्वारा चुना गया -मनो-स्पष्ट-रिलोक्स, इसके बजाय असेंबलर मैक्रोज़ का उपयोग करना है।

-मेक्सप्लिसिट-रिलोक्स डिफ़ॉल्ट है यदि जीसीसी को एक असेंबलर का उपयोग करने के लिए कॉन्फ़िगर किया गया था कि
स्थानांतरण ऑपरेटरों का समर्थन करता है।

-एमचेक-शून्य-विभाजन
-मनो-चेक-जीरो-डिवीजन
पूर्णांक विभाजन पर शून्य से ट्रैप (ट्रैप न करें)।

डिफ़ॉल्ट है -एमचेक-शून्य-विभाजन.

-विभाजित-जाल
-विभाजित-विराम
MIPS सिस्टम या तो एक सशर्त ट्रैप या a . उत्पन्न करके विभाजन के लिए शून्य से जाँच करता है
निर्देश तोड़ो। ट्रैप का उपयोग करने से छोटे कोड बनते हैं, लेकिन यह केवल MIPS पर समर्थित है
द्वितीय और बाद में। साथ ही, Linux कर्नेल के कुछ संस्करणों में एक बग है जो ट्रैप को रोकता है
उचित संकेत उत्पन्न करने से ("SIGFPE")। उपयोग -विभाजित-जाल सशर्त अनुमति देने के लिए
आर्किटेक्चर पर जाल जो उनका समर्थन करते हैं और -विभाजित-विराम के उपयोग के लिए मजबूर करने के लिए
टूट जाता है।

डिफ़ॉल्ट आमतौर पर है -विभाजित-जाल, लेकिन इसे कॉन्फ़िगर समय पर ओवरराइड किया जा सकता है
का उपयोग --साथ-विभाजन=टूटना. डिवाइड-बाय-जीरो चेक का उपयोग करके पूरी तरह से अक्षम किया जा सकता है
-मनो-चेक-जीरो-डिवीजन.

-mmemcpy
-मनो-मेम्सीपी
गैर-तुच्छ ब्लॉक चालों के लिए "memcpy ()" के उपयोग को बल दें (बल न दें)। डिफ़ॉल्ट
is -मनो-मेम्सीपी, जो GCC को अधिकांश स्थिर आकार की प्रतियों को इनलाइन करने की अनुमति देता है।

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
अक्षम करें (अक्षम न करें) "jal" निर्देश का उपयोग करें। "Jal" का उपयोग करके कॉलिंग फ़ंक्शन
अधिक कुशल है लेकिन कॉल करने वाले और कैली को समान 256 मेगाबाइट में होना आवश्यक है
खंड।

इस विकल्प का abicalls कोड पर कोई प्रभाव नहीं पड़ता है। डिफ़ॉल्ट है -मनो-लॉन्ग-कॉल.

-एमएमएडी
-मनो-मद
"पागल", "मदु" और "मूल" निर्देशों के उपयोग को सक्षम (अक्षम) करें, जैसा कि द्वारा प्रदान किया गया है
R4650 आईएसए।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट गुणा-संचय निर्देशों के उपयोग को सक्षम (अक्षम) करें, जब वे
उपलब्ध हैं। डिफ़ॉल्ट है -मफ्यूज्ड-मैड.

जब गुणा-संचय निर्देशों का उपयोग किया जाता है, तो मध्यवर्ती उत्पाद की गणना की जाती है
अनंत परिशुद्धता के लिए और एफसीएसआर फ्लश से जीरो बिट के अधीन नहीं है। यह हो सकता है
कुछ परिस्थितियों में अवांछनीय।

-एनओसीपीपी
MIPS असेंबलर को अपने प्रीप्रोसेसर को उपयोगकर्ता असेंबलर फ़ाइलों पर नहीं चलाने के लिए कहें (a . के साथ)
.s प्रत्यय) उन्हें इकट्ठा करते समय।

-एमफिक्स-24k
-मनो-फिक्स-24k
इरेटा 24K E48 (रिफिल के दौरान स्टोर पर डेटा खो गया) के आसपास काम करें। उपाय
जीसीसी के बजाय असेंबलर द्वारा कार्यान्वित किया जाता है।

-एमफिक्स-आर4000
-मनो-फिक्स-आर 4000
कुछ R4000 CPU इरेटा के आसपास कार्य करें:

- डबल-वर्ड या वेरिएबल शिफ्ट निष्पादित होने पर गलत परिणाम दे सकता है
एक पूर्णांक विभाजन शुरू करने के तुरंत बाद।

- एक डबल-वर्ड या एक परिवर्तनीय बदलाव गलत परिणाम दे सकता है यदि निष्पादित किया जाता है
एक पूर्णांक गुणन प्रगति पर है।

- एक पूर्णांक विभाजन गलत परिणाम दे सकता है यदि a . के विलंब स्लॉट में प्रारंभ किया गया हो
ली गई शाखा या छलांग।

-एमफिक्स-आर4400
-मनो-फिक्स-आर 4400
कुछ R4400 CPU इरेटा के आसपास कार्य करें:

- डबल-वर्ड या वेरिएबल शिफ्ट निष्पादित होने पर गलत परिणाम दे सकता है
एक पूर्णांक विभाजन शुरू करने के तुरंत बाद।

-एमफिक्स-आर10000
-मनो-फिक्स-आर 10000
कुछ निश्चित R10000 इरेटा के आसपास कार्य करें:

- "ll"/"sc" क्रम 3.0 से पहले के संशोधनों पर परमाणु रूप से व्यवहार नहीं कर सकते हैं। वे कर सकते हैं
2.6 और इससे पहले के संशोधनों पर गतिरोध।

इस विकल्प का उपयोग केवल तभी किया जा सकता है जब लक्ष्य आर्किटेक्चर शाखा-संभावना का समर्थन करता है
निर्देश. -एमफिक्स-आर10000 डिफ़ॉल्ट है जब -मार्च = r10000 प्रयोग किया जाता है; -मनो-फिक्स-आर 10000
अन्यथा डिफ़ॉल्ट है।

-एमफिक्स-वीआर4120
-मनो-फिक्स-vr4120
कुछ निश्चित VR4120 इरेटा के आसपास कार्य करें:

- "dmultu" हमेशा सही परिणाम नहीं देता है।

- "div" और "ddiv" हमेशा सही परिणाम नहीं देते हैं यदि ऑपरेंड में से कोई एक है
नकारात्मक है।

डिवीज़न इरेटा के लिए वर्कअराउंड विशेष फ़ंक्शन पर निर्भर करता है libgcc.a. पर
वर्तमान में, ये फ़ंक्शन केवल "mips64vr*-elf" कॉन्फ़िगरेशन द्वारा प्रदान किए जाते हैं।

अन्य VR4120 इरेटा को कुछ युग्मों के बीच डालने के लिए एक एनओपी की आवश्यकता होती है
निर्देश। इन इरेटा को असेंबलर द्वारा नियंत्रित किया जाता है, स्वयं जीसीसी द्वारा नहीं।

-एमफिक्स-वीआर4130
VR4130 "mflo"/"mfhi" इरेटा के आसपास कार्य करें। वर्कअराउंड द्वारा कार्यान्वित किया जाता है
जीसीसी के बजाय असेंबलर, हालांकि जीसीसी "एमएफएलओ" और "एमएफआई" का उपयोग करने से बच जाएगा यदि
इसके बजाय VR4130 "macc", "macchi", "dmacc" और "dmacchi" निर्देश उपलब्ध हैं।

-एमफिक्स-एसबी1
-मनो-फिक्स-एसबी 1
कुछ SB-1 CPU कोर इरेटा के आसपास कार्य करें। (यह ध्वज वर्तमान में SB-1 . के आसपास काम करता है)
संशोधन 2 "F1" और "F2" फ्लोटिंग-पॉइंट इरेटा।)

-mr10k-कैश-बाधा =की स्थापना
निर्दिष्ट करें कि क्या जीसीसी को के दुष्प्रभावों से बचने के लिए कैश बैरियर सम्मिलित करना चाहिए
R10K प्रोसेसर पर अटकलें।

कई प्रोसेसर के साथ आम तौर पर, R10K एक सशर्त के परिणाम की भविष्यवाणी करने की कोशिश करता है
शाखा और सट्टा "लिया" शाखा से निर्देशों को निष्पादित करता है। यह बाद में
यदि पूर्वानुमानित परिणाम गलत था तो इन निर्देशों को निरस्त कर देता है। हालाँकि, R10K पर,
यहां तक ​​कि निरस्त निर्देशों के भी दुष्प्रभाव हो सकते हैं।

यह समस्या केवल कर्नेल भंडार को प्रभावित करती है और, सिस्टम के आधार पर, कर्नेल लोड करता है।
एक उदाहरण के रूप में, एक सट्टा-निष्पादित स्टोर लक्ष्य मेमोरी को कैश में लोड कर सकता है
और कैशे लाइन को गंदी के रूप में चिह्नित करें, भले ही स्टोर को बाद में निरस्त कर दिया गया हो। यदि एक डीएमए
ऑपरेशन "डर्टी" लाइन को फ्लश करने से पहले मेमोरी के उसी क्षेत्र में लिखता है,
कैश्ड डेटा डीएमए-एड डेटा को अधिलेखित कर देगा। पूर्ण के लिए R10K प्रोसेसर मैनुअल देखें
अन्य संभावित समस्याओं सहित विवरण।

प्रत्येक मेमोरी एक्सेस से पहले कैश बैरियर निर्देश सम्मिलित करना एक समाधान है
सट्टा लगाया जा सकता है और गर्भपात होने पर भी इसके दुष्प्रभाव हो सकते हैं।
-mr10k-कैश-बाधा =की स्थापना इस समाधान के जीसीसी के कार्यान्वयन को नियंत्रित करता है। यह
मानता है कि निम्नलिखित क्षेत्रों में किसी भी बाइट के लिए निरस्त पहुंच का पक्ष नहीं होगा
प्रभाव:

1. वर्तमान फ़ंक्शन के स्टैक फ्रेम द्वारा कब्जा की गई मेमोरी;

2. आने वाली स्टैक तर्क द्वारा कब्जा की गई स्मृति;

3. लिंक-टाइम-स्थिर पते के साथ किसी ऑब्जेक्ट द्वारा कब्जा की गई मेमोरी।

यह सुनिश्चित करने के लिए कर्नेल की जिम्मेदारी है कि इन क्षेत्रों में सट्टा पहुंचें
वास्तव में सुरक्षित हैं।

यदि इनपुट प्रोग्राम में फ़ंक्शन घोषणा शामिल है जैसे कि:

शून्य फू (शून्य);

तो "फू" के कार्यान्वयन को "जे फू" और "जल फू" को निष्पादित करने की अनुमति देनी चाहिए
अनुमान के अनुसार। जीसीसी इस प्रतिबंध का उन कार्यों के लिए सम्मान करता है जो वह स्वयं संकलित करता है। यह
गैर-जीसीसी कार्यों (जैसे हस्तलिखित असेंबली कोड) से ऐसा करने की अपेक्षा करता है।

विकल्प के तीन रूप हैं:

-mr10k-कैश-बैरियर = लोड-स्टोर
एक लोड या स्टोर से पहले कैश बैरियर डालें जिसे सट्टा निष्पादित किया जा सकता है
और गर्भपात होने पर भी इसके दुष्प्रभाव हो सकते हैं।

-mr10k-कैश-बैरियर = स्टोर
एक स्टोर से पहले कैश बैरियर डालें जिसे सट्टा निष्पादित किया जा सकता है और
जिसका गर्भपात होने पर भी दुष्प्रभाव हो सकते हैं।

-mr10k-कैश-बाधा = कोई नहीं
कैश बाधाओं को सम्मिलित करना अक्षम करें। यह डिफ़ॉल्ट सेटिंग है।

-एमफ्लश-फंक =समारोह
-मनो-फ्लश-फंक
I और D कैश को फ्लश करने के लिए कॉल करने के लिए फ़ंक्शन निर्दिष्ट करता है, या ऐसा कोई कॉल नहीं करता है
समारोह। यदि कहा जाता है, तो फ़ंक्शन को समान तर्कों को सामान्य के रूप में लेना चाहिए
"_flush_func ()", यानी मेमोरी रेंज का पता जिसके लिए कैश किया जा रहा है
फ्लश, मेमोरी रेंज का आकार, और संख्या 3 (दोनों कैश को फ्लश करने के लिए)। NS
डिफ़ॉल्ट उस लक्ष्य पर निर्भर करता है जिसके लिए GCC कॉन्फ़िगर किया गया था, लेकिन आमतौर पर या तो है
_फ्लश_फंक or __सीपीयू_फ्लश.

शाखा-लागत =संख्या
शाखाओं की लागत मोटे तौर पर सेट करें संख्या "सरल" निर्देश। यह लागत केवल एक है
अनुमानी और रिलीज में लगातार परिणाम देने की गारंटी नहीं है। एक शून्य
लागत अनावश्यक रूप से डिफ़ॉल्ट का चयन करती है, जो कि पर आधारित है -मट्यून सेटिंग.

शाखा-संभावित
-मनो-शाखा-संभावित
शाखा संभावित निर्देशों के उपयोग को सक्षम या अक्षम करें, इसके लिए डिफ़ॉल्ट पर ध्यान दिए बिना
चयनित वास्तुकला। डिफ़ॉल्ट रूप से, शाखा संभावित निर्देश उत्पन्न हो सकते हैं यदि
वे चयनित वास्तुकला द्वारा समर्थित हैं। एक अपवाद MIPS32 और . के लिए है
MIPS64 आर्किटेक्चर और प्रोसेसर जो उन आर्किटेक्चर को लागू करते हैं; उन लोगों के लिए,
शाखा संभावित निर्देश डिफ़ॉल्ट रूप से उत्पन्न नहीं होंगे क्योंकि MIPS32 और
MIPS64 आर्किटेक्चर विशेष रूप से उनके उपयोग की अवहेलना करते हैं।

-एमएफपी-अपवाद
-मनो-एफपी-अपवाद
निर्दिष्ट करता है कि एफपी अपवाद सक्षम हैं या नहीं। यह प्रभावित करता है कि हम एफपी को कैसे शेड्यूल करते हैं
कुछ प्रोसेसर के लिए निर्देश। डिफ़ॉल्ट यह है कि FP अपवाद सक्षम हैं।

उदाहरण के लिए, SB-1 पर, यदि FP अपवाद अक्षम हैं, और हम 64-बिट उत्सर्जित कर रहे हैं
कोड, तो हम दोनों एफपी पाइप का उपयोग कर सकते हैं। अन्यथा, हम केवल एक FP पाइप का उपयोग कर सकते हैं।

-mvr4130-संरेखण
-mno-vr4130-संरेखण
VR4130 पाइपलाइन दो-तरफा सुपरस्केलर है, लेकिन केवल दो निर्देश जारी कर सकती है
एक साथ अगर पहला 8-बाइट संरेखित है। जब यह विकल्प सक्षम होता है, तो जीसीसी करेगा
निर्देशों के जोड़े को संरेखित करें जो उसे लगता है कि समानांतर में निष्पादित होना चाहिए।

यह विकल्प केवल VR4130 के लिए ऑप्टिमाइज़ करते समय ही प्रभावी होता है। यह सामान्य रूप से कोड बनाता है
तेजी से, लेकिन इसे बड़ा बनाने की कीमत पर। यह डिफ़ॉल्ट रूप से सक्षम है
अनुकूलन स्तर -ओ३.

-मसिंसी
-मनो-सिंसी
इसका समर्थन करने वाले आर्किटेक्चर पर "सिंसी" निर्देशों की पीढ़ी को सक्षम (अक्षम) करें।
"सिंसी" निर्देश (यदि सक्षम हो) तब उत्पन्न होंगे जब
"__builtin___clear_cache ()" संकलित किया गया है।

यह विकल्प "-mno-synci" के लिए डिफ़ॉल्ट है, लेकिन डिफ़ॉल्ट को कॉन्फ़िगर करके ओवरराइड किया जा सकता है
"--with-synci" के साथ।

सिंगल प्रोसेसर सिस्टम के लिए कोड संकलित करते समय, आमतौर पर "सिंसी" का उपयोग करना सुरक्षित होता है।
हालांकि, कई मल्टी-कोर (एसएमपी) सिस्टम पर, यह निर्देश को अमान्य नहीं करेगा
सभी कोर पर कैश और अपरिभाषित व्यवहार हो सकता है।

-मेरेलैक्स-तस्वीर-कॉल
-मनो-आराम-तस्वीर-कॉल
PIC कॉल्स को चालू करने का प्रयास करें जो आम तौर पर रजिस्टर $25 के माध्यम से डायरेक्ट कॉल में भेजी जाती हैं।
यह तभी संभव है जब लिंकर लिंक-टाइम पर गंतव्य का समाधान कर सके और यदि
गंतव्य एक सीधी कॉल के लिए सीमा के भीतर है।

-मेरेलैक्स-तस्वीर-कॉल डिफ़ॉल्ट है यदि GCC को एक असेंबलर का उपयोग करने के लिए कॉन्फ़िगर किया गया था और a
लिंकर जो ".reloc" असेंबली निर्देश का समर्थन करता है और "-mexplicit-relocs" में है
प्रभाव। "-मनो-स्पष्ट-रिलोक्स" के साथ, यह अनुकूलन द्वारा किया जा सकता है
कंपाइलर की मदद के बिना अकेले असेंबलर और लिंकर।

-mmकाउंट-आरए-पता
-मनो-एमकाउंट-आरए-पता
एमिट (उत्सर्जित न करें) कोड जो "_mcount" को कॉलिंग फ़ंक्शन के रिटर्न को संशोधित करने की अनुमति देता है
पता। सक्षम होने पर, यह विकल्प सामान्य "_mcount" इंटरफ़ेस को एक नए . के साथ विस्तारित करता है
रा-पता पैरामीटर, जिसमें "intptr_t *" टाइप है और रजिस्टर $12 में पास किया गया है।
"_mcount" फिर निम्नलिखित में से दोनों को करके वापसी पते को संशोधित कर सकता है:

· $31 रजिस्टर में नया पता लौटाना।

नए पते को "* में संग्रहीत करनारा-पता", अगर रा-पता शून्य है।

डिफ़ॉल्ट है -मनो-एमकाउंट-आरए-पता.

एमएमआईक्स ऑप्शंस

इन विकल्पों को MMIX के लिए परिभाषित किया गया है:

-एमएलबीफनक्स
-mno-libfuncs
निर्दिष्ट करें कि आंतरिक पुस्तकालय कार्यों को संकलित किया जा रहा है, सभी मूल्यों को पारित कर रहा है
रजिस्टर, कोई फर्क नहीं पड़ता आकार।

-मेप्सिलॉन
-मनो-एप्सिलॉन
फ़्लोटिंग-पॉइंट तुलना निर्देश उत्पन्न करें जो "आरई" के संबंध में तुलना करते हैं
एप्सिलॉन रजिस्टर।

-मबी = मिमीिक्सवेयर
-मबी = ग्नू
कोड उत्पन्न करें जो फ़ंक्शन पैरामीटर पास करता है और मान लौटाता है (कॉल किए गए में)
फ़ंक्शन) को जीएनयू एबीआई के विरोध में $0 और ऊपर के रजिस्टर के रूप में देखा जाता है, जो ग्लोबल . का उपयोग करता है
$ 231 और ऊपर पंजीकृत करता है।

-mzero-विस्तार
-मनो-शून्य-विस्तार
64 बिट से छोटे आकार में मेमोरी से डेटा पढ़ते समय, शून्य का उपयोग करें (उपयोग न करें)-
साइन-विस्तार वाले के बजाय डिफ़ॉल्ट रूप से लोड निर्देशों का विस्तार करना।

-मकनुथदिव
-मनो-नुथदिव
एक विभाजन के परिणाम को शेषफल देने के लिए भाजक के समान चिह्न बनाएं।
डिफ़ॉल्ट के साथ, -मनो-नुथदिव, शेष का चिन्ह के चिन्ह का अनुसरण करता है
लाभांश। दोनों विधियां अंकगणितीय रूप से मान्य हैं, बाद वाली लगभग अनन्य रूप से हैं
उपयोग किया गया।

-mtoplevel-प्रतीकों
-मनो-टॉपलेवल-प्रतीक
प्रीपेन्ड (प्रीपेन्ड न करें) a : सभी वैश्विक प्रतीकों के लिए, इसलिए असेंबली कोड का उपयोग किया जा सकता है
"PREFIX" असेंबली निर्देश के साथ।

-मेल्फ़
डिफ़ॉल्ट के बजाय ईएलएफ प्रारूप में एक निष्पादन योग्य बनाएं mmo द्वारा प्रयुक्त प्रारूप
la MMIX सिम्युलेटर।

-शाखा-भविष्यवाणी
-मनो-शाखा-भविष्यवाणी
संभावित-शाखा निर्देशों का उपयोग करें (उपयोग न करें), जब स्थिर शाखा भविष्यवाणी
एक संभावित शाखा को इंगित करता है।

-एमबेस-पते
-मनो-आधार-पते
कोड उत्पन्न करें (उत्पन्न न करें) जो उपयोग करता है आधार पतों. आधार पते का उपयोग करना
a . के लिए स्वचालित रूप से एक अनुरोध (असेंबलर और लिंकर द्वारा नियंत्रित) उत्पन्न करता है
एक वैश्विक रजिस्टर में स्थापित करने के लिए स्थिर। रजिस्टर का उपयोग एक या अधिक आधार के लिए किया जाता है
रजिस्टर में रखे गए मान से 0 से 255 की सीमा के भीतर पता अनुरोध। NS
आम तौर पर छोटे और तेज़ कोड की ओर जाता है, लेकिन विभिन्न डेटा आइटम की संख्या जो
सीमित किया जा सकता है। इसका मतलब है कि एक प्रोग्राम जो बहुत सारे स्थिर डेटा का उपयोग करता है
आवश्यकता हो सकती है -मनो-आधार-पते.

-एकल-निकास
-मनो-एकल-निकास
प्रत्येक फ़ंक्शन में एक एकल निकास बिंदु रखने के लिए उत्पन्न कोड को बल दें (बल न दें)।

MN10300 ऑप्शंस

इन -m Matsushita MN10300 आर्किटेक्चर के लिए विकल्पों को परिभाषित किया गया है:

-मिमल-बग
MN10300 प्रोसेसर के लिए गुणा निर्देशों में बग से बचने के लिए कोड जनरेट करें।
यह डिफ़ॉल्ट है।

-मनो-मल्टी-बग
MN10300 . के गुणा निर्देशों में बग से बचने के लिए कोड जनरेट न करें
प्रोसेसर।

-Mam33
AM33 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-मनो-एम33
AM33 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड उत्पन्न न करें। यह है
चूक।

-Mam33-2
AM33/2.0 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-Mam34
AM34 प्रोसेसर के लिए विशिष्ट सुविधाओं का उपयोग करके कोड जनरेट करें।

-मट्यून =सीपीयू प्रकार
निर्देशों को शेड्यूल करते समय संकेतित CPU प्रकार की समय विशेषताओं का उपयोग करें।
यह लक्षित प्रोसेसर प्रकार को नहीं बदलता है। CPU प्रकार इनमें से एक होना चाहिए
mn10300, am33, एएम33-2 or am34.

-mreturn-सूचक-पर-d0
पॉइंटर लौटाने वाले फ़ंक्शन को जेनरेट करते समय, पॉइंटर को "a0" और . दोनों में लौटाएं
"डी0"। अन्यथा, सूचक केवल a0 में लौटाया जाता है, और इस तरह कॉल करने का प्रयास करता है
प्रोटोटाइप के बिना कार्यों के परिणामस्वरूप त्रुटियां होंगी। ध्यान दें कि यह विकल्प इसके द्वारा चालू है
चूक जाना; उपयोग -मनो-रिटर्न-पॉइंटर-ऑन-डी0 इसे निष्क्रिय करने के लिए।

-मनो-सीआरटी0
C रन-टाइम इनिशियलाइज़ेशन ऑब्जेक्ट फ़ाइल में लिंक न करें।

-मेरेलैक्स
लिंकर को इंगित करें कि उसे एक छूट अनुकूलन पास करना चाहिए
शाखाओं, कॉलों और पूर्ण स्मृति पते को छोटा करें। इस विकल्प का ही प्रभाव है
जब अंतिम लिंक चरण के लिए कमांड लाइन पर उपयोग किया जाता है।

यह विकल्प प्रतीकात्मक डिबगिंग को असंभव बनाता है।

-मिलीव
संकलक को उत्पन्न करने दें लंबा अनुदेश शब्द निर्देश यदि लक्ष्य है
AM33 या बाद में। यह डिफ़ॉल्ट है। यह विकल्प प्रीप्रोसेसर मैक्रो को परिभाषित करता है
__LIW__.

-मोनोलीव
संकलक को उत्पन्न करने की अनुमति न दें लंबा अनुदेश शब्द निर्देश। इस विकल्प
प्रीप्रोसेसर मैक्रो को परिभाषित करता है __NO_LIW__.

-मसेटएलबी
संकलक को उत्पन्न करने की अनुमति दें सेटलब और एल सी सी निर्देश यदि लक्ष्य है
AM33 या बाद में। यह डिफ़ॉल्ट है। यह विकल्प प्रीप्रोसेसर मैक्रो को परिभाषित करता है
__SETLB__.

-मनोसेटएलबी
संकलक को उत्पन्न करने की अनुमति न दें सेटलब or एल सी सी निर्देश। यह विकल्प परिभाषित करता है
प्रीप्रोसेसर मैक्रो __NO_SETLB__.

पीडीपी -11 ऑप्शंस

ये विकल्प पीडीपी-11 के लिए परिभाषित हैं:

-एमएफपीयू
हार्डवेयर FPP फ्लोटिंग पॉइंट का उपयोग करें। यह डिफ़ॉल्ट है। (एफआईएस फ़्लोटिंग पॉइंट
पीडीपी-11/40 समर्थित नहीं है।)

-एमसॉफ्ट-फ्लोट
हार्डवेयर फ्लोटिंग पॉइंट का उपयोग न करें।

-मैक0
एसी 0 में फ्लोटिंग-पॉइंट परिणाम लौटाएं (यूनिक्स असेंबलर सिंटैक्स में एफआर 0)।

-मनो-एसी0
स्मृति में फ़्लोटिंग-पॉइंट परिणाम लौटाएं। यह डिफ़ॉल्ट है।

-एम 40
पीडीपी-11/40 के लिए कोड जनरेट करें।

-एम 45
पीडीपी-11/45 के लिए कोड जनरेट करें। यह डिफ़ॉल्ट है।

-एम 10
पीडीपी-11/10 के लिए कोड जनरेट करें।

-एमबीकॉपी-बिलिन
मेमोरी को कॉपी करने के लिए इनलाइन "movmemhi" पैटर्न का उपयोग करें। यह डिफ़ॉल्ट है।

-एमबीकॉपी
स्मृति को कॉपी करने के लिए इनलाइन "movmemhi" पैटर्न का उपयोग न करें।

-मिंट16
-मनो-इंट32
16-बिट "int" का प्रयोग करें। यह डिफ़ॉल्ट है।

-मिंट32
-मनो-इंट16
32-बिट "int" का प्रयोग करें।

-एमफ्लोट64
-मनो-फ्लोट32
64-बिट "फ्लोट" का प्रयोग करें। यह डिफ़ॉल्ट है।

-एमफ्लोट32
-मनो-फ्लोट64
32-बिट "फ्लोट" का प्रयोग करें।

-मबशी
"abshi2" पैटर्न का प्रयोग करें। यह डिफ़ॉल्ट है।

-मनो-अब्शी
"abshi2" पैटर्न का प्रयोग न करें।

-मशाखा-महंगा
दिखाओ कि शाखाएं महंगी हैं। यह कोड जनरेशन के साथ प्रयोग करने के लिए है
केवल.

-मब्रांच-सस्ते
यह ढोंग न करें कि शाखाएँ महंगी हैं। यह डिफ़ॉल्ट है।

-मुनिक्स-एएसएम
यूनिक्स असेंबलर सिंटैक्स का प्रयोग करें। के लिए कॉन्फ़िगर किए जाने पर यह डिफ़ॉल्ट है पीडीपी11-*-बीएसडी.

-एमडीईसी-एएसएम
डीईसी असेंबलर सिंटैक्स का प्रयोग करें। किसी भी पीडीपी-11 लक्ष्य के लिए कॉन्फ़िगर किए जाने पर यह डिफ़ॉल्ट होता है
अन्य की तुलना में पीडीपी11-*-बीएसडी.

पिकोचिप ऑप्शंस

इन -m पिकोशिप कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-माई =ae_type
सरणी के लिए निर्देश सेट, रजिस्टर सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
तत्व प्रकार ae_type. के लिए समर्थित मान ae_type रहे किसी, एमयूएल, तथा मैक.

-माई = कोई भी पूरी तरह से सामान्य AE प्रकार का चयन करता है। इस विकल्प के साथ उत्पन्न कोड होगा
अन्य AE प्रकारों में से किसी पर चलाएँ। कोड उतना कुशल नहीं होगा जितना कि होगा if
एक विशिष्ट AE प्रकार के लिए संकलित, और कुछ प्रकार के ऑपरेशन (जैसे, गुणन)
सभी प्रकार के AE पर ठीक से काम नहीं करेगा।

-माई = एमयूएल एक MUL AE प्रकार का चयन करता है। संकलित कोड के लिए यह सबसे उपयोगी AE प्रकार है,
और डिफ़ॉल्ट है।

-माई = मैक एक डीएसपी-शैली मैक एई का चयन करता है। इस विकल्प के साथ संकलित कोड से पीड़ित हो सकता है
बाइट (चार) हेरफेर का खराब प्रदर्शन, क्योंकि डीएसपी एई प्रदान नहीं करता है
बाइट लोड/स्टोर्स के लिए हार्डवेयर समर्थन।

-mप्रतीक-जैसा-पता
लोड/स्टोर में एक पते के रूप में सीधे प्रतीक नाम का उपयोग करने के लिए कंपाइलर को सक्षम करें
निर्देश, पहले इसे एक रजिस्टर में लोड किए बिना। आमतौर पर, इसका उपयोग
विकल्प बड़े प्रोग्राम उत्पन्न करेगा, जो विकल्प के न होने की तुलना में तेज़ी से चलते हैं
उपयोग किया गया। हालाँकि, परिणाम एक कार्यक्रम से दूसरे कार्यक्रम में भिन्न होते हैं, इसलिए इसे एक उपयोगकर्ता के रूप में छोड़ दिया जाता है
विकल्प, स्थायी रूप से सक्षम होने के बजाय।

-मनो-अक्षम-चेतावनी
अक्षम कोड के निर्माण के बारे में चेतावनियां अक्षम करता है। ये चेतावनियां हो सकती हैं
उत्पन्न, उदाहरण के लिए, बाइट-स्तरीय मेमोरी संचालन करने वाले कोड को संकलित करते समय
मैक एई प्रकार पर। MAC AE में बाइट-लेवल मेमोरी के लिए कोई हार्डवेयर सपोर्ट नहीं है
संचालन, इसलिए सभी बाइट लोड/स्टोर को वर्ड लोड/स्टोर से संश्लेषित किया जाना चाहिए
संचालन। यह अक्षम है और एक चेतावनी उत्पन्न की जाएगी जो इंगित करती है
प्रोग्रामर कि उन्हें बाइट ऑपरेशंस से बचने के लिए कोड को फिर से लिखना चाहिए, या किसी को लक्षित करना चाहिए
AE प्रकार जिसमें आवश्यक हार्डवेयर समर्थन है। यह विकल्प चेतावनी को सक्षम बनाता है
बंद किया जाए।

PowerPC ऑप्शंस

ये के तहत सूचीबद्ध हैं

RL78 ऑप्शंस

-मसिम
एक सिम्युलेटर के भीतर संचालन का समर्थन करने के लिए अतिरिक्त लक्ष्य पुस्तकालयों में लिंक।

-mmul=कोई नहीं
-एममूल = जी 13
-एमएमुल=आरएल78
उपयोग किए जाने वाले हार्डवेयर गुणन समर्थन के प्रकार को निर्दिष्ट करता है। डिफ़ॉल्ट है
"कोई नहीं", जो सॉफ्टवेयर गुणन कार्यों का उपयोग करता है। "g13" विकल्प के लिए है
हार्डवेयर केवल RL78/G13 लक्ष्यों पर परिधीय गुणा/विभाजित करता है। "आरएल78" विकल्प
RL78 सॉफ्टवेयर मैनुअल में परिभाषित मानक हार्डवेयर गुणन के लिए है।

आईबीएम रुपये / 6000 और PowerPC ऑप्शंस

इन -m IBM RS/6000 और PowerPC के लिए विकल्पों को परिभाषित किया गया है:

-मपावर
-मनो-पावर
-एमपावर2
-मनो-पावर2
-एमपॉवरपीसी
-एमनो-पावरपीसी
-एमपॉवरपीसी-जीपीओपीटी
-मनो-पावरपीसी-जीपीओपीटी
-एमपॉवरपीसी-जीएफएक्सऑप्ट
-एमनो-पावरपीसी-जीएफएक्सओपीटी
-एमपॉवरपीसी64
-मनो-पावरपीसी64
-एमएमएफसीआरएफ
-मनो-एमएफसीआरएफ
-एमपीओपीसीएनटीबी
-मनो-पॉपसीएनटीबी
-एमपीओपीसीएनटीडी
-मनो-पॉपसीएनटीडी
-एमएफपीआरएनडी
-मनो-एफआरएनडी
-एमसीएमपीबी
-एमनो-सीएमपीबी
-एमएमएफपीजीपीआर
-मनो-एमएफपीजीपीआर
-महार्ड-डीएफपी
-मनो-हार्ड-डीएफपी
GCC RS/6000 और PowerPC के लिए दो संबंधित निर्देश सेट आर्किटेक्चर का समर्थन करता है।
RSI बिजली निर्देश सेट वे निर्देश हैं जो द्वारा समर्थित हैं नदियों चिप सेट का इस्तेमाल किया
मूल RS/6000 सिस्टम में और PowerPC निर्देश सेट की वास्तुकला है
फ्रीस्केल MPC5xx, MPC6xx, MPC8xx माइक्रोप्रोसेसर, और IBM 4xx, 6xx, और
अनुवर्ती माइक्रोप्रोसेसरों।

न तो वास्तुकला दूसरे का सबसेट है। हालाँकि एक बड़ा सामान्य उपसमुच्चय है
दोनों द्वारा समर्थित निर्देशों का। प्रोसेसर में एक MQ रजिस्टर शामिल होता है
पावर आर्किटेक्चर का समर्थन।

आप इन विकल्पों का उपयोग यह निर्दिष्ट करने के लिए करते हैं कि आपके प्रोसेसर पर कौन से निर्देश उपलब्ध हैं
का उपयोग कर रहे हैं। GCC को कॉन्फ़िगर करते समय इन विकल्पों का डिफ़ॉल्ट मान निर्धारित किया जाता है।
निर्दिष्ट करना -एमसीपीयू =सीपीयू_प्रकार इन विकल्पों के विनिर्देश को ओवरराइड करता है। हम
अनुशंसा करते हैं कि आप का उपयोग करें -एमसीपीयू =सीपीयू_प्रकार ऊपर सूचीबद्ध विकल्पों के बजाय विकल्प।

RSI -मपावर विकल्प जीसीसी को निर्देश उत्पन्न करने की अनुमति देता है जो केवल में पाए जाते हैं
पावर आर्किटेक्चर और एमक्यू रजिस्टर का उपयोग करने के लिए। निर्दिष्ट करना -एमपावर2 का तात्पर्य बिजली और
GCC को ऐसे निर्देश उत्पन्न करने की भी अनुमति देता है जो POWER2 आर्किटेक्चर में मौजूद हैं
लेकिन मूल पावर आर्किटेक्चर नहीं।

RSI -एमपॉवरपीसी विकल्प जीसीसी को निर्देश उत्पन्न करने की अनुमति देता है जो केवल में पाए जाते हैं
PowerPC आर्किटेक्चर का 32-बिट सबसेट। निर्दिष्ट करना -एमपॉवरपीसी-जीपीओपीटी का तात्पर्य
-एमपॉवरपीसी और GCC को वैकल्पिक PowerPC आर्किटेक्चर निर्देशों का उपयोग करने की भी अनुमति देता है
सामान्य प्रयोजन समूह, फ़्लोटिंग-पॉइंट वर्गमूल सहित। निर्दिष्ट करना
-एमपॉवरपीसी-जीएफएक्सऑप्ट का तात्पर्य -एमपॉवरपीसी और GCC को वैकल्पिक PowerPC का उपयोग करने की भी अनुमति देता है
ग्राफ़िक्स समूह में आर्किटेक्चर निर्देश, फ़्लोटिंग-पॉइंट चयन सहित।

RSI -एमएमएफसीआरएफ विकल्प जीसीसी को कंडीशन रजिस्टर फील्ड से मूव जेनरेट करने की अनुमति देता है
POWER4 प्रोसेसर और अन्य प्रोसेसर पर लागू किया गया निर्देश जो इसका समर्थन करते हैं
पावरपीसी V2.01 आर्किटेक्चर। NS -एमपीओपीसीएनटीबी विकल्प जीसीसी को पॉपकाउंट उत्पन्न करने की अनुमति देता है
और डबल-सटीक एफपी पारस्परिक अनुमान निर्देश POWER5 . पर लागू किया गया
प्रोसेसर और अन्य प्रोसेसर जो PowerPC V2.02 आर्किटेक्चर का समर्थन करते हैं। NS
-एमपीओपीसीएनटीडी विकल्प जीसीसी को पर लागू पॉपकाउंट निर्देश उत्पन्न करने की अनुमति देता है
POWER7 प्रोसेसर और अन्य प्रोसेसर जो PowerPC V2.06 आर्किटेक्चर का समर्थन करते हैं।
RSI -एमएफपीआरएनडी विकल्प जीसीसी को एफपी राउंड टू इंटीजर निर्देश उत्पन्न करने की अनुमति देता है
POWER5+ प्रोसेसर और PowerPC का समर्थन करने वाले अन्य प्रोसेसर पर लागू किया गया
V2.03 वास्तुकला। NS -एमसीएमपीबी विकल्प जीसीसी को तुलना बाइट्स उत्पन्न करने की अनुमति देता है
POWER6 प्रोसेसर और अन्य प्रोसेसर पर लागू किया गया निर्देश जो इसका समर्थन करते हैं
पावरपीसी V2.05 आर्किटेक्चर। NS -एमएमएफपीजीपीआर विकल्प जीसीसी को एफपी चाल उत्पन्न करने की अनुमति देता है
POWER6X प्रोसेसर पर लागू किए गए सामान्य प्रयोजन के रजिस्टर निर्देशों के लिए / से और
अन्य प्रोसेसर जो विस्तारित PowerPC V2.05 आर्किटेक्चर का समर्थन करते हैं। NS -महार्ड-डीएफपी
विकल्प जीसीसी को लागू दशमलव फ़्लोटिंग-पॉइंट निर्देश उत्पन्न करने की अनुमति देता है
कुछ पावर प्रोसेसर।

RSI -एमपॉवरपीसी64 विकल्प जीसीसी को अतिरिक्त 64-बिट निर्देश उत्पन्न करने की अनुमति देता है कि
पूर्ण PowerPC64 आर्किटेक्चर में पाए जाते हैं और GPR को 64-बिट, डबलवर्ड के रूप में मानते हैं
मात्रा। GCC डिफ़ॉल्ट करने के लिए -मनो-पावरपीसी64.

यदि आप दोनों निर्दिष्ट करते हैं -मनो-पावर और -एमनो-पावरपीसी, GCC में केवल निर्देशों का उपयोग किया जाएगा
दोनों आर्किटेक्चर का सामान्य उपसमुच्चय और कुछ विशेष AIX सामान्य-मोड कॉल, और
एमक्यू रजिस्टर का उपयोग नहीं करेगा। दोनों को निर्दिष्ट करना -मपावर और -एमपॉवरपीसी जीसीसी को अनुमति देता है
आर्किटेक्चर से किसी भी निर्देश का उपयोग करें और एमक्यू रजिस्टर के उपयोग की अनुमति दें;
इसे Motorola MPC601 के लिए निर्दिष्ट करें।

-नव-निमोनिक्स
-मोल्ड-निमोनिक्स
जनरेट किए गए कोडांतरक कोड में उपयोग करने के लिए कौन से निमोनिक्स का चयन करें। साथ में -नव-निमोनिक्स,
GCC PowerPC आर्किटेक्चर के लिए परिभाषित असेंबलर mnemonics का उपयोग करता है। साथ में
-मोल्ड-निमोनिक्स यह पावर आर्किटेक्चर के लिए परिभाषित असेंबलर निमोनिक्स का उपयोग करता है।
केवल एक वास्तुकला में परिभाषित निर्देशों में केवल एक स्मरक है; जीसीसी इसका उपयोग करता है
निमोनिक इनमें से कौन सा विकल्प निर्दिष्ट है, इसके बावजूद।

GCC डिफॉल्ट रूप से उपयोग में आने वाले आर्किटेक्चर के लिए उपयुक्त mnemonics के लिए है। निर्दिष्ट करना
-एमसीपीयू =सीपीयू_प्रकार कभी-कभी इन विकल्पों के मान को ओवरराइड कर देता है। जब तक आप निर्माण नहीं कर रहे हैं
एक क्रॉस-कंपाइलर, आपको सामान्य रूप से या तो निर्दिष्ट नहीं करना चाहिए -नव-निमोनिक्स or
-मोल्ड-निमोनिक्स, लेकिन इसके बजाय डिफ़ॉल्ट को स्वीकार करना चाहिए।

-एमसीपीयू =सीपीयू_प्रकार
आर्किटेक्चर प्रकार सेट करें, उपयोग रजिस्टर करें, निमोनिक्स की पसंद, और निर्देश शेड्यूलिंग
मशीन प्रकार के लिए पैरामीटर सीपीयू_प्रकार. के लिए समर्थित मान सीपीयू_प्रकार रहे 401, 403,
405, 405एफपी, 440, 440एफपी, 464, 464एफपी, 476, 476एफपी, 505, 601, 602, 603, 603e, 604, 604e,
620, 630, 740, 7400, 7450, 750, 801, 821, 823, 860, 970, 8540, a2, e300c2, e300c3,
ई500एमसी, e500mc64, ईसी603ई, G3, G4, G5, टाइटन, बिजली, power2, power3, power4, power5,
पावर5+, power6, पावर6x, power7, सामान्य, PowerPC, पावरपीसी64, नदियों, नदियाँ ४, नदियाँ ४, आरएससी,
और rs64.

-एमसीपीयू = आम पूरी तरह से सामान्य प्रोसेसर का चयन करता है। इस विकल्प के तहत उत्पन्न कोड
किसी भी पावर या पावरपीसी प्रोसेसर पर चलेगा। GCC में केवल निर्देशों का उपयोग किया जाएगा
दोनों आर्किटेक्चर का सामान्य सबसेट, और एमक्यू रजिस्टर का उपयोग नहीं करेगा। जीसीसी मानता है a
शेड्यूलिंग उद्देश्यों के लिए जेनेरिक प्रोसेसर मॉडल।

-एमसीपीयू = पावर, -एमसीपीयू = पावर2, -एमसीपीयू = पावरपीसी, तथा -एमसीपीयू = पावरपीसी 64 सामान्य शक्ति निर्दिष्ट करें,
POWER2, ​​शुद्ध 32-बिट PowerPC (अर्थात, MPC601 नहीं), और 64-बिट PowerPC आर्किटेक्चर
मशीन प्रकार, शेड्यूलिंग के लिए उपयुक्त, सामान्य प्रोसेसर मॉडल के साथ माना जाता है
प्रयोजनों.

अन्य विकल्प एक विशिष्ट प्रोसेसर निर्दिष्ट करते हैं। उन विकल्पों के तहत उत्पन्न कोड
उस प्रोसेसर पर सबसे अच्छा चलेगा, और दूसरों पर बिल्कुल भी नहीं चल सकता है।

RSI -एमसीपीयू विकल्प निम्नलिखित विकल्पों को स्वचालित रूप से सक्षम या अक्षम करते हैं:

-माल्टीवेसी -एमएफपीआरएनडी -महार्ड-फ्लोट -एमएमएफसीआरएफ -मिमल्टीपल -नव-निमोनिक्स -एमपीओपीसीएनटीबी
-एमपीओपीसीएनटीडी -मपावर -एमपावर2 -एमपॉवरपीसी64 -एमपॉवरपीसी-जीपीओपीटी -एमपॉवरपीसी-जीएफएक्सऑप्ट
-एकल-फ्लोट -मडबल-फ्लोट -एमएससरल-एफपीयू -मस्ट्रिंग -ममुल्ह्वा -एमडीएलएमजेबी -एमएमएफपीजीपीआर -एमवीएसएक्स

किसी विशेष सीपीयू के लिए निर्धारित विशेष विकल्प कंपाइलर संस्करणों के बीच अलग-अलग होंगे,
इस पर निर्भर करता है कि कौन सी सेटिंग उस CPU के लिए इष्टतम कोड उत्पन्न करती है; यह नहीं है
आवश्यक रूप से वास्तविक हार्डवेयर की क्षमताओं को प्रतिबिंबित करता है। यदि आप एक सेट करना चाहते हैं
किसी विशेष मूल्य के लिए अलग-अलग विकल्प, आप इसे बाद में निर्दिष्ट कर सकते हैं -एमसीपीयू विकल्प,
पसंद -एमसीपीयू=970 -मनो-altivec.

AIX पर, -माल्टीवेसी और -एमपॉवरपीसी64 विकल्प सक्षम या अक्षम नहीं हैं -एमसीपीयू
विकल्प वर्तमान में क्योंकि AIX के पास इन विकल्पों के लिए पूर्ण समर्थन नहीं है। आप कर सकते हैं
अभी भी उन्हें व्यक्तिगत रूप से सक्षम या अक्षम करें यदि आप सुनिश्चित हैं कि यह आपके में काम करेगा
पर्यावरण.

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार, लेकिन सेट न करें
आर्किटेक्चर प्रकार, रजिस्टर उपयोग, या निमोनिक्स की पसंद, जैसे -एमसीपीयू =सीपीयू_प्रकार
चाहेंगे। के लिए समान मान सीपीयू_प्रकार के लिए उपयोग किया जाता है -मट्यून से संबंधित -एमसीपीयू. अगर दोनों हैं
निर्दिष्ट किया गया है, तो उत्पन्न कोड आर्किटेक्चर, रजिस्टरों और निमोनिक्स सेट का उपयोग करेगा
by -एमसीपीयू, लेकिन शेड्यूलिंग पैरामीटर द्वारा सेट किया गया -मट्यून.

-एमसीमॉडल = छोटा
छोटे मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC 64k तक सीमित है।

-एमसीमॉडल = मध्यम
मध्यम मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC और अन्य स्थिर डेटा ऊपर हो सकते हैं
कुल 4G आकार में।

-एमसीमॉडल = बड़ा
बड़े मॉडल के लिए PowerPC64 कोड जनरेट करें: TOC का आकार 4G तक हो सकता है। अन्य
डेटा और कोड केवल 64-बिट पता स्थान द्वारा सीमित है।

-माल्टीवेसी
-मनो-altivec
कोड जेनरेट करें जो AltiVec निर्देशों का उपयोग करता है (उपयोग नहीं करता है), और उपयोग को सक्षम भी करता है
बिल्ट-इन फ़ंक्शंस जो AltiVec निर्देश सेट तक अधिक सीधी पहुँच की अनुमति देते हैं।
आपको सेट करने की भी आवश्यकता हो सकती है -माबी=altivec AltiVec ABI के साथ वर्तमान ABI को समायोजित करने के लिए
संवर्द्धन।

-मवरसेव
-मनो-वरसेव
AltiVec कोड जनरेट करते समय VRSAVE निर्देश जेनरेट करें।

-मेजेन-सेल-माइक्रोकोड
सेल माइक्रोकोड निर्देश उत्पन्न करें

-मवार्न-सेल-माइक्रोकोड
चेतावनी जब एक सेल माइक्रोकोड निर्देश उत्सर्जित होने वाला है। सेल का एक उदाहरण
माइक्रोकोड निर्देश एक परिवर्तनशील बदलाव है।

-मसिक्योर-पीएलटी
कोड उत्पन्न करें जो ld और ld.so को निष्पादन योग्य और साझा पुस्तकालयों को बनाने की अनुमति देता है
गैर-निष्पादन .plt और .got अनुभाग। यह एक PowerPC 32-बिट SYSV ABI विकल्प है।

-एमबीएस-पीएलटी
कोड उत्पन्न करें जो एक BSS .plt अनुभाग का उपयोग करता है जो ld.so भरता है, और इसके लिए .plt और की आवश्यकता होती है
.got अनुभाग जो लिखने योग्य और निष्पादन योग्य दोनों हैं। यह एक पॉवरपीसी 32-बिट SYSV है
एबीआई विकल्प।

-मिसेल
-मनो-इसेल
यह स्विच ISEL निर्देशों के निर्माण को सक्षम या अक्षम करता है।

-मिसल =हाँ नही
यह स्विच बहिष्कृत कर दिया गया है। उपयोग -मिसेल और -मनो-इसेल बजाय.

-एमएसपीई
-मनो-स्पे
यह स्विच एसपीई सिम निर्देशों के निर्माण को सक्षम या अक्षम करता है।

-युग्मित
-मनो-पेयर
यह स्विच PAIRED सिम निर्देशों की पीढ़ी को सक्षम या अक्षम करता है।

-एमएसपीई =हाँ नही
यह विकल्प बहिष्कृत कर दिया गया है। उपयोग -एमएसपीई और -मनो-स्पे बजाय.

-एमवीएसएक्स
-मनो-वीएसएक्स
वेक्टर/स्केलर (वीएसएक्स) निर्देशों का उपयोग करने वाला (उपयोग नहीं करता) कोड उत्पन्न करें, और भी
अंतर्निहित कार्यों के उपयोग को सक्षम करें जो वीएसएक्स तक अधिक सीधी पहुंच की अनुमति देते हैं
निर्देश समुच्चय।

-एमफ्लोट-जीपीआरएस=हाँ/एकल/डबल/नहीं
-एमफ्लोट-जीपीआरएस
यह स्विच फ़्लोटिंग-पॉइंट ऑपरेशंस की पीढ़ी को सक्षम या अक्षम करता है
इसका समर्थन करने वाले आर्किटेक्चर के लिए सामान्य प्रयोजन के रजिस्टर।

तर्क हाँ or एक एकल-सटीक फ़्लोटिंग-पॉइंट के उपयोग को सक्षम बनाता है
आपरेशनों।

तर्क डबल सिंगल और डबल-सटीक फ़्लोटिंग-पॉइंट के उपयोग को सक्षम बनाता है
आपरेशनों।

तर्क नहीं सामान्य प्रयोजन के रजिस्टरों पर फ्लोटिंग-पॉइंट संचालन को अक्षम करता है।

यह विकल्प वर्तमान में केवल MPC854x पर उपलब्ध है।

-एम 32
-एम 64
डार्विन और SVR32 लक्ष्यों के 64-बिट या 4-बिट परिवेशों के लिए कोड जनरेट करें (सहित
जीएनयू/लिनक्स)। 32-बिट वातावरण int, long और पॉइंटर को 32 बिट्स पर सेट करता है और
कोड उत्पन्न करता है जो किसी भी PowerPC संस्करण पर चलता है। 64-बिट वातावरण int को . पर सेट करता है
32 बिट और लंबा और 64 बिट के लिए सूचक, और PowerPC64 के लिए कोड उत्पन्न करता है, जैसे कि
-एमपॉवरपीसी64.

-एमफुल-टोक
-मनो-एफपी-इन-टोक
-मनो-सम-इन-टोक
-मिमिनिमल-टोक
टीओसी (सामग्री की तालिका) की पीढ़ी को संशोधित करें, जो प्रत्येक के लिए बनाई गई है
निष्पादनीय फाइल। NS -एमफुल-टोक विकल्प डिफ़ॉल्ट रूप से चुना जाता है। उस स्थिति में, जीसीसी
प्रत्येक अद्वितीय गैर-स्वचालित चर संदर्भ के लिए कम से कम एक TOC प्रविष्टि आवंटित करेगा
आपके कार्यक्रम में। जीसीसी टीओसी में फ्लोटिंग-पॉइंट स्थिरांक भी रखेगी। तथापि,
टीओसी में केवल 16,384 प्रविष्टियां उपलब्ध हैं।

यदि आपको एक लिंकर त्रुटि संदेश प्राप्त होता है जो कह रहा है कि आपने उपलब्ध ओवरफ्लो कर दिया है
TOC स्थान, आप उपयोग किए गए TOC स्थान की मात्रा को कम कर सकते हैं -मनो-एफपी-इन-टोक और
-मनो-सम-इन-टोक विकल्प. -मनो-एफपी-इन-टोक जीसीसी को फ़्लोटिंग-पॉइंट डालने से रोकता है
टीओसी में स्थिरांक और -मनो-सम-इन-टोक GCC को गणना करने के लिए कोड जनरेट करने के लिए बाध्य करता है
उस राशि को TOC में डालने के बजाय एक पते का योग और रन टाइम पर एक स्थिरांक।
आप इनमें से एक या दोनों विकल्पों को निर्दिष्ट कर सकते हैं। प्रत्येक जीसीसी का बहुत उत्पादन करने का कारण बनता है
TOC स्थान के संरक्षण की कीमत पर थोड़ा धीमा और बड़ा कोड।

यदि आप इन दोनों विकल्पों को निर्दिष्ट करने के बाद भी टीओसी में जगह से बाहर हो जाते हैं,
उल्लिखित करना -मिमिनिमल-टोक बजाय। यह विकल्प GCC के लिए केवल एक TOC प्रविष्टि करने का कारण बनता है
हर फाइल। जब आप इस विकल्प को निर्दिष्ट करते हैं, तो जीसीसी धीमा कोड उत्पन्न करेगा और
बड़ा लेकिन जो बहुत कम TOC स्थान का उपयोग करता है। आप इस विकल्प का उपयोग करना चाह सकते हैं
केवल उन फ़ाइलों पर जिनमें कम बार निष्पादित कोड होता है।

-मैक्स64
-मैक्स32
64-बिट AIX ABI और कॉलिंग कन्वेंशन सक्षम करें: 64-बिट पॉइंटर्स, 64-बिट "लॉन्ग" टाइप, और
उन्हें समर्थन देने के लिए आवश्यक बुनियादी ढाँचा। निर्दिष्ट करना -मैक्स64 का तात्पर्य -एमपॉवरपीसी64 और
-एमपॉवरपीसी, जबकि -मैक्स32 64-बिट ABI को अक्षम करता है और इसका अर्थ है -मनो-पावरपीसी64. जीसीसी
करने के लिए चूक -मैक्स32.

-mxl-compat
-मनो-एक्सएल-संगत
AIX- का उपयोग करते समय IBM XL कंपाइलर सेमेन्टिक्स के अधिक निकटता के अनुरूप कोड तैयार करें।
संगत एबीआई। से परे प्रोटोटाइप कार्यों के लिए फ़्लोटिंग-पॉइंट तर्क पास करें
तर्क एफपीआर के अलावा स्टैक पर रजिस्टर सेव एरिया (आरएसए) दर्ज करें। नही मानो
128-बिट लंबे डबल मान में सबसे महत्वपूर्ण डबल को ठीक से गोल किया जाता है जब
मूल्यों की तुलना करना और डबल में परिवर्तित करना। लंबे डबल के लिए XL प्रतीक नामों का प्रयोग करें
समर्थन दिनचर्या।

AIX कॉलिंग कन्वेंशन को बढ़ाया गया था लेकिन शुरू में इसे संभालने के लिए प्रलेखित नहीं किया गया था
अस्पष्ट के एंड आर सी एक फ़ंक्शन को कॉल करने का मामला जो इसके तर्कों का पता लेता है
घोषित से कम तर्क। IBM XL कंपाइलर फ़्लोटिंग-पॉइंट तर्कों तक पहुँचते हैं कि
जब बिना सबरूटीन संकलित किया जाता है तो स्टैक से RSA में फ़िट नहीं होता है
अनुकूलन। क्योंकि स्टैक पर हमेशा फ्लोटिंग-पॉइंट तर्क संग्रहीत करना है
अक्षम और शायद ही कभी आवश्यक, यह विकल्प डिफ़ॉल्ट रूप से सक्षम नहीं है और केवल है
ऑप्टिमाइज़ेशन के बिना IBM XL कंपाइलर्स द्वारा संकलित सबरूटीन्स को कॉल करते समय आवश्यक है।

-एमपीई
सहायता आईबीएम रुपये / 6000 SP समानांतर वातावरण (पी.ई)। उपयोग के लिए लिखे गए एप्लिकेशन को लिंक करें
एप्लिकेशन को चलाने के लिए सक्षम करने के लिए विशेष स्टार्टअप कोड के साथ संदेश गुजर रहा है। NS
सिस्टम में मानक स्थान पर पीई स्थापित होना चाहिए (/usr/lpp/ppe.poe/), या
ऐनक फ़ाइल को इसके साथ ओवरराइड किया जाना चाहिए - चश्मा = उपयुक्त निर्दिष्ट करने का विकल्प
निर्देशिका स्थान। समानांतर पर्यावरण थ्रेड्स का समर्थन नहीं करता है, इसलिए -एमपीई
विकल्प और -पथ्रेड विकल्प असंगत हैं।

-घातक-प्राकृतिक
-घातक-शक्ति
AIX, 32-बिट डार्विन और 64-बिट PowerPC GNU/Linux पर, विकल्प -घातक-प्राकृतिक
बड़े प्रकार के एबीआई-परिभाषित संरेखण को ओवरराइड करता है, जैसे फ़्लोटिंग-पॉइंट डबल्स,
उनकी प्राकृतिक आकार-आधारित सीमा पर। विकल्प -घातक-शक्ति जीसीसी को निर्देश देता है
एबीआई-निर्दिष्ट संरेखण नियमों का पालन करें। जीसीसी मानक संरेखण में चूक करता है
एबीआई में परिभाषित

64-बिट डार्विन पर, प्राकृतिक संरेखण डिफ़ॉल्ट है, और -घातक-शक्ति नहीं है
समर्थित।

-एमसॉफ्ट-फ्लोट
-महार्ड-फ्लोट
कोड उत्पन्न करें जो फ़्लोटिंग-पॉइंट रजिस्टर सेट का उपयोग (उपयोग) नहीं करता है। सॉफ्टवेयर
फ़्लोटिंग-पॉइंट इम्यूलेशन प्रदान किया जाता है यदि आप का उपयोग करते हैं -एमसॉफ्ट-फ्लोट विकल्प, और पास करें
लिंक करते समय जीसीसी का विकल्प।

-एकल-फ्लोट
-मडबल-फ्लोट
सिंगल- या डबल-सटीक फ़्लोटिंग-पॉइंट ऑपरेशंस के लिए कोड जेनरेट करें।
-मडबल-फ्लोट का तात्पर्य -एकल-फ्लोट.

-एमएससरल-एफपीयू
हार्डवेयर फ़्लोटिंग-पॉइंट इकाई के लिए sqrt और div निर्देश उत्पन्न न करें।

-एमएफपीयू
फ्लोटिंग-पॉइंट यूनिट का प्रकार निर्दिष्ट करें। मान्य मान हैं sp_lite (के बराबर
-सिंगल-फ्लोट -एमसिंपल-एफपीयू), डीपी_लाइट (बराबर -mdouble-float -msimple-fpu),
sp_full (एकल-फ्लोट के बराबर), और डीपी_पूर्ण (-मैडबल-फ्लोट के बराबर)।

-mxilinx-fpu
Xilinx PPC 405/440 पर फ्लोटिंग-पॉइंट यूनिट के लिए ऑप्टिमाइज़ेशन करें।

-मिमल्टीपल
-मनो-मल्टीपल
कोड उत्पन्न करें जो लोड एकाधिक शब्द निर्देशों का उपयोग करता है (उपयोग नहीं करता है) और
एकाधिक शब्द निर्देश संग्रहीत करें। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं
पावर सिस्टम, और पावरपीसी सिस्टम पर उत्पन्न नहीं। उपयोग नहीं करो -मिमल्टीपल थोड़ा पर-
एंडियन पावरपीसी सिस्टम, चूंकि प्रोसेसर चालू होने पर वे निर्देश काम नहीं करते हैं
लिटिल-एंडियन मोड। पीपीसी740 और पीपीसी750 अपवाद हैं जो इन्हें अनुमति देते हैं
लिटिल-एंडियन मोड में निर्देश।

-मस्ट्रिंग
-मनो-स्ट्रिंग
लोड स्ट्रिंग निर्देशों और स्टोर का उपयोग करने वाला (उपयोग नहीं करता) कोड उत्पन्न करें
एकाधिक रजिस्टरों को सहेजने और छोटे ब्लॉक चालें करने के लिए स्ट्रिंग शब्द निर्देश। इन
निर्देश डिफ़ॉल्ट रूप से POWER सिस्टम पर उत्पन्न होते हैं, और PowerPC पर उत्पन्न नहीं होते हैं
सिस्टम उपयोग नहीं करो -मस्ट्रिंग छोटे-एंडियन पावरपीसी सिस्टम पर, क्योंकि उनसे
जब प्रोसेसर छोटे-एंडियन मोड में होता है तो निर्देश काम नहीं करते हैं। अपवाद
PPC740 और PPC750 हैं जो इन निर्देशों को लिटिल-एंडियन मोड में अनुमति देते हैं।

-मपडेट
-मनो-अपडेट
कोड उत्पन्न करें जो लोड या स्टोर निर्देशों का उपयोग करता है (उपयोग नहीं करता है) जो अद्यतन करते हैं
परिकलित स्मृति स्थान के पते पर आधार रजिस्टर। ये निर्देश
डिफ़ॉल्ट रूप से उत्पन्न होते हैं। यदि तुम प्रयोग करते हो -मनो-अपडेट, के बीच एक छोटी सी खिड़की है
वह समय जब स्टैक पॉइंटर को अपडेट किया जाता है और पिछले फ्रेम का पता होता है
संग्रहीत, जिसका अर्थ है कि कोड जो स्टैक फ्रेम को इंटरप्ट या सिग्नल में चलता है
दूषित डेटा प्राप्त करें।

-मावॉइड-अनुक्रमित-पते
-मनो-बचें-अनुक्रमित-पते
कोड उत्पन्न करें जो अनुक्रमित लोड या स्टोर के उपयोग से बचने (बचाने) की कोशिश करता है
निर्देश। ये निर्देश Power6 प्रोसेसर पर प्रदर्शन जुर्माना लगा सकते हैं
कुछ स्थितियों में, जैसे कि 16M . को पार करने वाले बड़े सरणियों के माध्यम से कदम रखते समय
सीमा। Power6 और अक्षम को लक्षित करते समय यह विकल्प डिफ़ॉल्ट रूप से सक्षम होता है
अन्यथा।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें और जमा करें
निर्देश। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं यदि हार्डवेयर फ़्लोटिंग पॉइंट
प्रयोग किया जाता है। मशीन पर निर्भर -मफ्यूज्ड-मैड विकल्प अब मशीन में मैप किया गया है-
स्वतंत्र -ffp-अनुबंध = तेज विकल्प, और -मनो-फ्यूज्ड-मैड को मैप किया जाता है
-ffp-अनुबंध = बंद.

-ममुल्ह्वा
-मनो-मुल्ह्वा
कोड उत्पन्न करें जो अर्ध-शब्द का उपयोग करता है (उपयोग नहीं करता है) गुणा और गुणा-संचय
आईबीएम 405, 440, 464 और 476 प्रोसेसर पर निर्देश। ये निर्देश हैं
उन प्रोसेसर को लक्षित करते समय डिफ़ॉल्ट रूप से उत्पन्न होता है।

-एमडीएलएमजेबी
-मनो-dlmzb
स्ट्रिंग-खोज का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें dlmzb आईबीएम पर निर्देश
405, 440, 464 और 476 प्रोसेसर। यह निर्देश डिफ़ॉल्ट रूप से तब उत्पन्न होता है जब
उन प्रोसेसर को लक्षित करना।

-मनो-बिट-संरेखण
-एमबिट-संरेखण
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम संरचनाओं और यूनियनों को बाध्य (करते) नहीं करते हैं
जिसमें बिट-फ़ील्ड होते हैं जिन्हें बिट-फ़ील्ड के आधार प्रकार से संरेखित किया जाता है।

उदाहरण के लिए, डिफ़ॉल्ट रूप से एक संरचना जिसमें 8 "अहस्ताक्षरित" बिट-फ़ील्ड के अलावा कुछ नहीं होता है
लंबाई 1 को 4-बाइट सीमा से जोड़ा गया है और इसका आकार 4 बाइट्स है। का उपयोग करके
-मनो-बिट-संरेखण, संरचना 1-बाइट सीमा से संरेखित है और आकार में 1 बाइट है।

-मनो-सख्त-संरेखण
-मस्ट्रिक्ट-संरेखण
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम यह नहीं मानते (करते हैं) कि असंरेखित मेमोरी
संदर्भ प्रणाली द्वारा नियंत्रित किया जाएगा।

-मरिलोकेबल
-मनो-स्थानांतरणीय
कोड उत्पन्न करें जो एक स्थिर निष्पादन योग्य को a . में स्थानांतरित करने की अनुमति देता है (अनुमति नहीं देता है)
रन टाइम पर अलग पता। एक साधारण एम्बेडेड पावरपीसी सिस्टम लोडर चाहिए
".fixup" में सूचीबद्ध ".got2" और 4-बाइट स्थानों की संपूर्ण सामग्री को स्थानांतरित करें
अनुभाग, इस विकल्प द्वारा उत्पन्न 32-बिट पतों की एक तालिका। इसके लिए काम करने के लिए, सभी
एक साथ जुड़ी वस्तुओं को संकलित किया जाना चाहिए -मरिलोकेबल or -mrelocatable-lib.
-मरिलोकेबल कोड स्टैक को 8-बाइट सीमा पर संरेखित करता है।

-mrelocatable-lib
-mno-स्थानांतरित-lib
पसंद -मरिलोकेबल, -mrelocatable-lib स्थैतिक अनुमति देने के लिए ".fixup" अनुभाग उत्पन्न करता है
निष्पादन योग्य को रन टाइम पर स्थानांतरित किया जाना है, लेकिन -mrelocatable-lib का उपयोग नहीं करता है
का छोटा स्टैक संरेखण -मरिलोकेबल. के साथ संकलित वस्तुएं -mrelocatable-lib मई
के किसी भी संयोजन के साथ संकलित वस्तुओं से जुड़ा होना चाहिए -मरिलोकेबल विकल्प.

-मनो-टोकसी
-एमटीओसी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर यह नहीं मानते (करते हैं) कि रजिस्टर 2 में शामिल है
कार्यक्रम में उपयोग किए गए पतों की ओर इशारा करते हुए एक वैश्विक क्षेत्र का सूचक।

-थोड़ा
-थोड़ा-एंडियन
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर प्रोसेसर के लिए कोड को थोड़ा-थोड़ा करके संकलित करें-
एंडियन मोड। NS -थोड़ा-एंडियन विकल्प के समान है -थोड़ा.

-मबिगो
-मबिग-एंडियन
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर प्रोसेसर के लिए बड़े पैमाने पर कोड संकलित करते हैं-
एंडियन मोड। NS -मबिग-एंडियन विकल्प के समान है -मबिगो.

-mगतिशील-नहीं-तस्वीर
डार्विन और मैक ओएस एक्स सिस्टम पर, कोड संकलित करें ताकि इसे स्थानांतरित नहीं किया जा सके, लेकिन वह
इसके बाहरी संदर्भ स्थानांतरित करने योग्य हैं। परिणामी कोड के लिए उपयुक्त है
अनुप्रयोग, लेकिन साझा पुस्तकालय नहीं।

-एकल-तस्वीर-आधार
पीआईसी एड्रेसिंग के लिए उपयोग किए गए रजिस्टर को केवल पढ़ने के लिए समझें, बजाय इसे लोड करने के
प्रत्येक समारोह के लिए प्रस्तावना। इसे प्रारंभ करने के लिए रनटाइम सिस्टम जिम्मेदार है
निष्पादन शुरू होने से पहले उचित मूल्य के साथ पंजीकरण करें।

- प्राथमिकता-प्रतिबंधित-इन्स =प्राथमिकता
यह विकल्प उस प्राथमिकता को नियंत्रित करता है जिसे डिस्पैच-स्लॉट प्रतिबंधित को सौंपा गया है
दूसरे शेड्यूलिंग पास के दौरान निर्देश। तर्क प्राथमिकता मान लेता है
0/1/2 आवंटित करना नहीं/उच्चतम/दूसरा-उच्चतम प्रेषण स्लॉट को प्राथमिकता प्रतिबंधित
निर्देश.

-मस्केड-महंगा-डिप =निर्भरता_प्रकार
यह विकल्प नियंत्रित करता है कि लक्ष्य के दौरान कौन सी निर्भरताएं महंगी मानी जाती हैं
निर्देश समयबद्धन। तर्क निर्भरता_प्रकार निम्नलिखित में से एक लेता है
मान: नहीं: कोई निर्भरता महंगी नहीं है, सब: सभी निर्भरताएं महंगी हैं,
true_store_to_load: स्टोर से लोड पर एक सच्ची निर्भरता महंगा है, स्टोर_टू_लोड: कोई
स्टोर से लोड पर निर्भरता महंगी है, संख्या: कोई भी निर्भरता जिसके लिए विलंबता >=
संख्या महंगा है।

-मिन्सर्ट-शेड-एनओपीएस =योजना
यह विकल्प नियंत्रित करता है कि दूसरे के दौरान कौन सी एनओपी प्रविष्टि योजना का उपयोग किया जाएगा
शेड्यूलिंग पास। तर्क योजना निम्न में से एक मान लेता है: नहीं: नहीं
एनओपी डालें। पैड: किसी भी प्रेषण समूह के साथ पैड जिसमें खाली इश्यू स्लॉट हैं,
अनुसूचक के समूह के अनुसार। पुन: समूह_सटीक: ज़बरदस्ती महंगा करने के लिए नप्स डालें
अलग-अलग समूहों में आश्रित सराय। ज़बरदस्ती करने के लिए जितनी आवश्यक हो उतनी ही नोप्स डालें
अनुमानित प्रोसेसर ग्रुपिंग के अनुसार, एक नए समूह के लिए एक इंस। संख्या: डालें
अलग-अलग समूहों में महंगे आश्रितों को मजबूर करने के लिए एनओपी। डालने संख्या नोप्स टू
एक नए समूह के लिए एक इंस को मजबूर करें।

-एमकॉल-sysv
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर कॉलिंग सम्मेलनों का उपयोग करके कोड संकलित करते हैं जो
सिस्टम वी एप्लीकेशन बाइनरी इंटरफेस, पावरपीसी के मार्च 1995 के मसौदे का पालन करता है
प्रोसेसर पूरक। यह तब तक डिफ़ॉल्ट है जब तक कि आपने GCC का उपयोग करके कॉन्फ़िगर नहीं किया है
पॉवरपीसी-*-ईबियाईक्स.

-mcall-sysv-eabi
-mcall-ईबी
दोनों निर्दिष्ट करें -एमकॉल-sysv और -मेबी विकल्प.

-mcall-sysv-noeabi
दोनों निर्दिष्ट करें -एमकॉल-sysv और -मनो-ईबी विकल्प.

-mcall-aixdesc
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर AIX ऑपरेटिंग सिस्टम के लिए कोड संकलित करें।

-मकॉल-लिनक्स
सिस्टम V.4 और एम्बेडेड PowerPC सिस्टम पर Linux-आधारित GNU के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-फ्रीबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर फ्रीबीएसडी ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-नेटबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर नेटबीएसडी ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-एमकॉल-ओपनबीएसडी
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर OpenBSD ऑपरेटिंग के लिए कोड संकलित करें
प्रणाली।

-मैक्स-स्ट्रक्चर-रिटर्न
स्मृति में सभी संरचनाएँ लौटाएँ (जैसा कि AIX ABI द्वारा निर्दिष्ट किया गया है)।

-msvr4-संरचना-वापसी
रजिस्टरों में 8 बाइट्स से छोटी रिटर्न संरचनाएँ (जैसा कि SVR4 ABI द्वारा निर्दिष्ट किया गया है)।

-माबी=अबी-प्रकार
वर्तमान ABI को किसी विशेष एक्सटेंशन के साथ बढ़ाएँ, या ऐसे एक्सटेंशन को हटा दें। वैध
मान हैं alivec, नो-altivec, spe, नो-स्पी, आईबीएमलॉन्गडबल, यानी लोंगडबल.

-मबी = विशेष
वर्तमान ABI को SPE ABI एक्सटेंशन के साथ बढ़ाएँ। यह डिफ़ॉल्ट एबीआई नहीं बदलता है,
इसके बजाय यह वर्तमान एबीआई में एसपीई एबीआई एक्सटेंशन जोड़ता है।

-मबी = नो-स्पे
वर्तमान ABI के लिए Booke SPE ABI एक्सटेंशन अक्षम करें।

-माबी = आईबीएमलोंगडबल
आईबीएम विस्तारित-सटीक लंबे डबल का उपयोग करने के लिए वर्तमान एबीआई को बदलें। यह एक पावरपीसी है
32-बिट SYSV ABI विकल्प।

-माबी = यानीईलॉन्गडबल
IEEE विस्तारित-सटीक लंबे डबल का उपयोग करने के लिए वर्तमान ABI को बदलें। यह एक पावरपीसी है
32-बिट लिनक्स एबीआई विकल्प।

-प्रोटोटाइप
-मनो-प्रोटोटाइप
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर यह मान लिया जाता है कि सभी कॉल चर तर्क के लिए हैं
कार्यों को ठीक से प्रोटोटाइप किया जाता है। अन्यथा, कंपाइलर को एक निर्देश सम्मिलित करना होगा
कंडीशन कोड रजिस्टर के बिट 6 को सेट या साफ़ करने के लिए प्रत्येक गैर-प्रोटोटाइप कॉल से पहले
(CR) यह इंगित करने के लिए कि क्या फ़्लोटिंग-पॉइंट मान फ़्लोटिंग-पॉइंट में पारित किए गए थे
यदि फ़ंक्शन चर तर्क लेता है तो रजिस्टर करता है। साथ में -प्रोटोटाइप, केवल कॉल
प्रोटोटाइप चर तर्क कार्यों के लिए बिट सेट या साफ़ करेगा।

-मसिम
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है सिम-crt0.o और
कि मानक सी पुस्तकालय हैं libsim.a और libc.a. यह इसके लिए डिफ़ॉल्ट है
पॉवरपीसी-*-ईबीसिम विन्यास।

-एमएमवीएमई
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libmvme.a और libc.a.

-पागल
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libads.a और libc.a.

-मयेलोनाइफ
एम्बेडेड पावरपीसी सिस्टम पर, मान लें कि स्टार्टअप मॉड्यूल कहा जाता है crt0.o और
मानक सी पुस्तकालय हैं libyk.a और libc.a.

-एमवीएक्सवर्क्स
सिस्टम V.4 और एम्बेडेड PowerPC सिस्टम पर, निर्दिष्ट करें कि आप a . के लिए संकलन कर रहे हैं
वीएक्सवर्क्स सिस्टम।

-मेम्ब
एम्बेडेड पावरपीसी सिस्टम पर, सेट करें पीपीसी_ईएमबी इंगित करने के लिए ईएलएफ झंडे शीर्षलेख में बिट
कि ईएबीआई विस्तारित स्थानान्तरण का उपयोग किया जाता है।

-मेबी
-मनो-ईबी
सिस्टम पर V.4 और एम्बेडेड पावरपीसी सिस्टम एंबेडेड का पालन करते हैं (नहीं करते हैं)
एप्लीकेशन बाइनरी इंटरफेस (ईबीआई) जो सिस्टम V.4 . में संशोधनों का एक सेट है
विशेष विवरण। चुनना -मेबी इसका मतलब है कि स्टैक 8-बाइट से जुड़ा हुआ है
सीमा, एक फ़ंक्शन "__eabi" को "मुख्य" से ईएबीआई वातावरण स्थापित करने के लिए कहा जाता है,
और -एमएसडेटा विकल्प दो अलग-अलग छोटे डेटा को इंगित करने के लिए "r2" और "r13" दोनों का उपयोग कर सकता है
क्षेत्र। चुनना -मनो-ईबी इसका मतलब है कि स्टैक 16-बाइट सीमा से जुड़ा हुआ है, do
"मुख्य" से प्रारंभिक कार्य को कॉल न करें, और -एमएसडेटा विकल्प केवल उपयोग करेगा
"r13" एक छोटे से डेटा क्षेत्र को इंगित करने के लिए। NS -मेबी विकल्प डिफ़ॉल्ट रूप से चालू है यदि आप
इनमें से किसी एक का उपयोग करके जीसीसी को कॉन्फ़िगर किया गया है पावरपीसी*-*-ईएबी* विकल्प.

-एमएसडेटा = ईबीई
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, छोटे इनिशियलाइज़्ड "कॉन्स्ट" ग्लोबल और
में स्थिर डेटा .sdata2 अनुभाग, जिसे रजिस्टर "r2" द्वारा इंगित किया गया है। छोटा रखो
आरंभिक गैर-"स्थिरांक" में वैश्विक और स्थिर डेटा .sdata खंड, जो इंगित किया गया है
रजिस्टर "r13" द्वारा करने के लिए। में छोटे अप्रारंभीकृत वैश्विक और स्थिर डेटा डालें एसबीएसएसएस
खंड, जो के निकट है .sdata अनुभाग। NS -एमएसडेटा = ईबीई विकल्प है
के साथ असंगत -मरिलोकेबल विकल्प। -एमएसडेटा = ईबीई विकल्प भी सेट करता है
-मेम्ब विकल्प.

-एमएसडेटा = sysv
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, छोटे वैश्विक और स्थिर डेटा को इसमें रखें
.sdata अनुभाग, जिसे रजिस्टर "r13" द्वारा इंगित किया गया है। छोटे अप्रारंभीकृत वैश्विक रखो
और स्थिर डेटा एसबीएसएसएस खंड, जो के निकट है .sdata अनुभाग। NS
-एमएसडेटा = sysv विकल्प के साथ असंगत है -मरिलोकेबल विकल्प.

-एमएसडेटा = डिफ़ॉल्ट
-एमएसडेटा
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, यदि -मेबी उपयोग किया जाता है, उसी कोड को संकलित करें
as -एमएसडेटा = ईबीई, अन्यथा कोड को उसी के समान संकलित करें -एमएसडेटा = sysv.

-एमएसडेटा = डेटा
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर, छोटा वैश्विक डेटा डालें .sdata
अनुभाग। छोटे अप्रारंभीकृत वैश्विक डेटा को इसमें रखें एसबीएसएसएस अनुभाग। उपयोग नहीं करो
हालांकि छोटे डेटा को संबोधित करने के लिए "r13" पंजीकृत करें। यह डिफ़ॉल्ट व्यवहार है जब तक
अन्य -एमएसडेटा विकल्पों का प्रयोग किया जाता है।

-msdata=कोई नहीं
-मनो-एसडीटा
एम्बेडेड पावरपीसी सिस्टम पर, सभी आरंभिक वैश्विक और स्थिर डेटा को इसमें रखें .data
अनुभाग, और सभी अप्रारंभीकृत डेटा बीएसएस अनुभाग।

-मब्लॉक-चाल-इनलाइन-सीमा =संख्या
सभी ब्लॉक चालों को इनलाइन करें (जैसे "memcpy" या संरचना प्रतियों के लिए कॉल) or . से कम
के बराबर संख्या बाइट्स। के लिए न्यूनतम मूल्य संख्या 32-बिट लक्ष्य और 32 . पर 64 बाइट्स है
64-बिट लक्ष्य पर बाइट्स। डिफ़ॉल्ट मान लक्ष्य-विशिष्ट है।

-G संख्या
एम्बेडेड पावरपीसी सिस्टम पर, वैश्विक और स्थिर आइटम को से कम या उसके बराबर रखें संख्या
सामान्य डेटा या bss अनुभाग के बजाय छोटे डेटा या bss अनुभागों में बाइट्स।
डिफ़ॉल्ट रूप से, संख्या है 8. द -G संख्या लिंकर को स्विच भी पास किया जाता है। सभी मॉड्यूल
उसी के साथ संकलित किया जाना चाहिए -G संख्या मूल्य.

-mregnames
-मनो-रेगनेम्स
सिस्टम V.4 और एम्बेडेड पावरपीसी सिस्टम पर रजिस्टर नामों का उत्सर्जन (नहीं) करते हैं
प्रतीकात्मक रूपों का उपयोग करके असेंबली भाषा आउटपुट।

-मलोंगकॉल
-मनो-लॉन्गकॉल
डिफ़ॉल्ट रूप से मान लें कि सभी कॉल बहुत दूर हैं ताकि अधिक महंगी कॉलिंग हो
क्रम की आवश्यकता है। 32 मेगाबाइट से अधिक की कॉल के लिए यह आवश्यक है
(33,554,432 बाइट्स) वर्तमान स्थान से। एक छोटी कॉल उत्पन्न होगी यदि
कंपाइलर जानता है कि कॉल इतनी दूर नहीं हो सकती है। इस सेटिंग को इसके द्वारा ओवरराइड किया जा सकता है
"शॉर्टकॉल" फ़ंक्शन विशेषता, या "#pragma . द्वारा लांगकॉल(0)"।

कुछ लिंकर्स आउट-ऑफ़-रेंज कॉल का पता लगाने और ग्लू कोड जनरेट करने में सक्षम हैं
मक्खी। इन प्रणालियों पर, लंबी कॉल अनावश्यक हैं और धीमी कोड उत्पन्न करती हैं। जैसा
इस लेखन में, AIX लिंकर ऐसा कर सकता है, जैसा कि PowerPC/64 के लिए GNU लिंकर कर सकता है। यह
इस सुविधा को 32-बिट पावरपीसी सिस्टम के लिए जीएनयू लिंकर में भी जोड़ने की योजना है।

डार्विन/पीपीसी सिस्टम पर, "#pragma longcall" "jbsr callee, L42", प्लस a उत्पन्न करेगा
"शाखा द्वीप" (गोंद कोड)। दो लक्ष्य पते कैली का प्रतिनिधित्व करते हैं और
"शाखा द्वीप"। डार्विन/पीपीसी लिंकर पहले पते को प्राथमिकता देगा और एक उत्पन्न करेगा
"ब्ल कैली" अगर पीपीसी "बीएल" निर्देश सीधे कैली तक पहुंच जाएगा; अन्यथा
लिंकर "ब्रांच आइलैंड" को कॉल करने के लिए "bl L42" उत्पन्न करेगा। "शाखा द्वीप" is
कॉलिंग फ़ंक्शन के शरीर में संलग्न; यह के पूर्ण 32-बिट पते की गणना करता है
कैली और उस पर कूदता है।

Mach-O (डार्विन) सिस्टम पर, यह विकल्प कंपाइलर एमिट को ग्लू के लिए निर्देशित करता है
हर सीधी कॉल, और डार्विन लिंकर यह तय करता है कि इसका उपयोग करना है या नहीं।

भविष्य में, हम लिंकर के समय जीसीसी को सभी लॉन्गकॉल विनिर्देशों को अनदेखा कर सकते हैं
गोंद उत्पन्न करने के लिए जाना जाता है।

-एमटीएलएस-मार्कर
-मनो-टीएलएस-मार्कर
फ़ंक्शन को निर्दिष्ट करने वाले स्थानांतरण के साथ "__tls_get_addr" पर कॉल को चिह्नित करें (चिह्नित न करें)
तर्क। स्थानांतरण एलडी को फ़ंक्शन कॉल को तर्क के साथ मज़बूती से संबद्ध करने की अनुमति देता है
टीएलएस अनुकूलन के लिए सेटअप निर्देश, जो बदले में जीसीसी को बेहतर शेड्यूल करने की अनुमति देता है
क्रम।

-पथ्रेड
के साथ मल्टीथ्रेडिंग के लिए समर्थन जोड़ता है pthreads पुस्तकालय। यह विकल्प इसके लिए फ़्लैग सेट करता है
प्रीप्रोसेसर और लिंकर दोनों।

-मरेसिप
-मनो-रेसिपी
यह विकल्प जीसीसी को पारस्परिक अनुमान और पारस्परिक वर्गमूल का उपयोग करने में सक्षम करेगा
सटीकता बढ़ाने के लिए अतिरिक्त न्यूटन-रैफसन चरणों के साथ निर्देशों का अनुमान लगाएं
फ्लोटिंग-पॉइंट तर्कों के लिए डिवाइड या स्क्वायर रूट और डिवाइड करने के बजाय। आप
का उपयोग करना चाहिए -फफास्ट-गणित विकल्प का उपयोग करते समय -मरेसिप (या कम से कम
-फनसेफ-गणित-अनुकूलन, -परिमित-गणित-केवल, -फ्रेसिप्रोकल-गणित और
-फनो-ट्रैपिंग-गणित) ध्यान दें कि अनुक्रम का थ्रूपुट आम तौर पर होता है
गैर-पारस्परिक निर्देश के थ्रूपुट से अधिक, की सटीकता
अनुक्रम को 2 ulp तक घटाया जा सकता है (अर्थात 1.0 का व्युत्क्रम 0.99999994 के बराबर होता है)
पारस्परिक वर्गमूल के लिए।

-मरेसिप =चुनना
यह विकल्प नियंत्रित करने की अनुमति देता है कि कौन से पारस्परिक अनुमान निर्देशों का उपयोग किया जा सकता है। चुनना
विकल्पों की अल्पविराम से अलग की गई सूची है, जिसके पहले "!" उल्टा करने के लिए
विकल्प: "सभी": सभी अनुमान निर्देश सक्षम करें, "डिफ़ॉल्ट": डिफ़ॉल्ट सक्षम करें
निर्देश, समकक्ष -मरेसिप, "कोई नहीं": सभी अनुमान निर्देश अक्षम करें,
के बराबर -मनो-रेसिपी; "div": के लिए पारस्परिक सन्निकटन निर्देश सक्षम करें
दोनों सिंगल और डबल परिशुद्धता; "divf": एकल-सटीक पारस्परिक सक्षम करें
सन्निकटन निर्देश; "divd": डबल-सटीक पारस्परिक सक्षम करें
सन्निकटन निर्देश; "rsqrt": पारस्परिक वर्गमूल सन्निकटन को सक्षम करें
सिंगल और डबल परिशुद्धता दोनों के लिए निर्देश; "rsqrtf": सिंगल को सक्षम करें-
सटीक पारस्परिक वर्गमूल सन्निकटन निर्देश; "rsqrtd": सक्षम करें
डबल-सटीक पारस्परिक वर्गमूल सन्निकटन निर्देश;

तो उदाहरण के लिए, -mrecip=सभी,!rsqrtd सभी पारस्परिक अनुमानों को सक्षम करेगा
निर्देश, "FRSQRTE", "XSRSQRTEDP", और "XVRSQRTEDP" निर्देशों को छोड़कर
जो डबल-सटीक पारस्परिक वर्गमूल गणनाओं को संभालते हैं।

-मरेसिप-सटीक
-मो-नुस्खा-सटीक
मान लें (मान न लें) कि पारस्परिक अनुमान निर्देश उच्चतर प्रदान करते हैं-
PowerPC ABI द्वारा अनिवार्य की तुलना में सटीक अनुमान। चुनना -एमसीपीयू = पावर6 or
-एमसीपीयू = पावर7 स्वचालित रूप से चुनता है -मरेसिप-सटीक. डबल-सटीक वर्ग
कम-सटीक मशीनों पर मूल अनुमान निर्देश डिफ़ॉल्ट रूप से उत्पन्न नहीं होते हैं,
चूंकि वे एक अनुमान प्रदान नहीं करते हैं जो तीन चरणों के बाद अभिसरण करता है।

-मवेक्लिबाबी=टाइप
बाहरी लाइब्रेरी का उपयोग करके इंट्रिनिक्स को वेक्टर करने के लिए उपयोग करने के लिए एबीआई प्रकार निर्दिष्ट करता है।
वर्तमान में समर्थित एकमात्र प्रकार "मास" है, जो आईबीएम के उपयोग के लिए निर्दिष्ट करता है
गणितीय त्वरण सबसिस्टम (एमएएसएस) पुस्तकालयों का उपयोग करके आंतरिक विज्ञान को वेक्टर करना
बाहरी पुस्तकालय। GCC वर्तमान में "acosd2", "acosf4", "acoshd2",
"acoshf4", "asind2", "asinf4", "asinhd2", "asinhf4", "atan2d2", "atan2f4", "atand2",
"atanf4", "atanhd2", "atanhf4", "cbrtd2", "cbrtf4", "cosd2", "cosf4", "coshd2",
"coshf4", "erfcd2", "erfcf4", "erfd2", "erff4", "exp2d2", "exp2f4", "expd2", "expf4",
"expm1d2", "expm1f4", "hypotd2", "hypotf4", "lgammad2", "lgammaf4", "log10d2",
"log10f4", "log1pd2", "log1pf4", "log2d2", "log2f4", "logd2", "logf4", "powd2",
"powf4", "sind2", "sinf4", "sinhd2", "sinhf4", "sqrtd2", "sqrtf4", "tand2", "tanf4",
power2 के लिए कोड जनरेट करते समय "tanhd4", और "tanhf7"। दोनों -फ़्री-वेक्टराइज़ और
-फनसेफ-गणित-अनुकूलन सक्षम करना होगा। MASS पुस्तकालयों को होना होगा
लिंक समय पर निर्दिष्ट।

-मफ़्रिज़
-मनो-फ़्रिज़
"फ़्रिज़" निर्देश उत्पन्न करें (उत्पन्न न करें) जब -फनसेफ-गणित-अनुकूलन
विकल्प का उपयोग फ़्लोटिंग-पॉइंट मानों की गोलाई को 64-बिट पूर्णांक में अनुकूलित करने के लिए किया जाता है और
फ्लोटिंग पॉइंट पर वापस। "फ़्रिज़" निर्देश समान मान वापस नहीं करता है यदि
एक पूर्णांक में फ़िट होने के लिए फ़्लोटिंग-पॉइंट संख्या बहुत बड़ी है।

-एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
-मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस
स्थिर श्रृंखला रजिस्टर को लोड करने के लिए कोड उत्पन्न करें (उत्पन्न न करें) (r11) कब
AIX और 64-बिट Linux सिस्टम पर एक पॉइंटर के माध्यम से कॉल करना जहां एक फ़ंक्शन पॉइंटर
एक 3-शब्द डिस्क्रिप्टर को इंगित करता है जो फ़ंक्शन पता देता है, टीओसी मान को लोड किया जाना है
रजिस्टर r2, और स्थिर श्रृंखला मान रजिस्टर में लोड किया जाना है r11
-एमपॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस डिफ़ॉल्ट रूप से चालू है। आप के माध्यम से कॉल नहीं कर पाएंगे
अन्य भाषाओं में संकलित कार्यों के लिए नेस्टेड फ़ंक्शंस या पॉइंटर्स के पॉइंटर्स
यदि आप उपयोग करते हैं तो स्थिर श्रृंखला का उपयोग करें -मनो-पॉइंटर्स-टू-नेस्टेड-फ़ंक्शंस.

-msave-toc-अप्रत्यक्ष
-मनो-सेव-टॉक-इनडायरेक्ट
आरक्षित स्टैक स्थान में TOC मान को सहेजने के लिए कोड उत्पन्न करें (उत्पन्न न करें)
फ़ंक्शन प्रस्तावना में यदि फ़ंक्शन AIX और 64-बिट पर एक पॉइंटर के माध्यम से कॉल करता है
लिनक्स सिस्टम। यदि प्रस्तावना में TOC मान सहेजा नहीं गया है, तो यह ठीक पहले सहेजा जाता है
सूचक के माध्यम से कॉल। NS -मनो-सेव-टॉक-इनडायरेक्ट विकल्प डिफ़ॉल्ट है।

RX ऑप्शंस

ये कमांड-लाइन विकल्प RX लक्ष्यों के लिए परिभाषित हैं:

-एम64बिट-डबल्स
-एम32बिट-डबल्स
"डबल" डेटा प्रकार को 64 बिट बनाएं (-एम64बिट-डबल्स) या 32 बिट (-एम32बिट-डबल्स)
आकार में। डिफ़ॉल्ट है -एम32बिट-डबल्स. नोट RX फ्लोटिंग-पॉइंट हार्डवेयर केवल काम करता है
32-बिट मानों पर, यही कारण है कि डिफ़ॉल्ट है -एम32बिट-डबल्स.

-एफपीयू
-नोफपु
सक्षम करता है (-एफपीयू) या अक्षम (-नोफपु) RX फ्लोटिंग-पॉइंट हार्डवेयर का उपयोग। NS
के लिए डिफ़ॉल्ट सक्षम है RX600 के लिए श्रृंखला और अक्षम RX200 श्रृंखला.

फ़्लोटिंग-पॉइंट निर्देश केवल 32-बिट फ़्लोटिंग-पॉइंट मानों के लिए उत्पन्न होंगे
हालाँकि, इसलिए यदि -एम64बिट-डबल्स विकल्प प्रयोग में है तो FPU हार्डवेयर नहीं होगा
डबल्स के लिए इस्तेमाल किया।

नोट अगर -एफपीयू विकल्प सक्षम है तो -फनसेफ-गणित-अनुकूलन भी सक्षम है
खुद ब खुद। ऐसा इसलिए है क्योंकि RX FPU निर्देश स्वयं असुरक्षित हैं।

-एमसीपीयू =नाम
लक्षित किए जाने वाले RX CPU के प्रकार का चयन करता है। वर्तमान में तीन प्रकार समर्थित हैं,
सामान्य RX600 और RX200 श्रृंखला हार्डवेयर और विशिष्ट RX610 सी पी यू। डिफ़ॉल्ट है
RX600.

केवल अंतर RX600 और RX610 स्था कुए Le RX610 का समर्थन नहीं करता
"एमवीटीआईपीएल" निर्देश।

RSI RX200 श्रृंखला में हार्डवेयर फ़्लोटिंग-पॉइंट इकाई नहीं है और इसलिए -नोफपु सक्षम किया गया है
डिफ़ॉल्ट रूप से जब इस प्रकार का चयन किया जाता है।

-एमबिग-एंडियन-डेटा
-थोड़ा-एंडियन-डेटा
डेटा स्टोर करें (लेकिन कोड नहीं) बड़े-एंडियन प्रारूप में। डिफ़ॉल्ट है
-थोड़ा-एंडियन-डेटा, यानी डेटा को छोटे-एंडियन प्रारूप में संग्रहीत करने के लिए।

-मस्मॉल-डेटा-सीमा =N
वैश्विक और स्थिर चर के बाइट्स में अधिकतम आकार निर्दिष्ट करता है जिसे रखा जा सकता है
छोटे डेटा क्षेत्र में। छोटे डेटा क्षेत्र का उपयोग करने से छोटे और तेज़ हो सकते हैं
कोड, लेकिन क्षेत्र का आकार सीमित है और यह सुनिश्चित करने के लिए प्रोग्रामर पर निर्भर है
क्षेत्र अतिप्रवाह नहीं करता है। साथ ही जब छोटे डेटा क्षेत्र का उपयोग RX's में से किसी एक के लिए किया जाता है
रजिस्टर (आमतौर पर "r13") इस क्षेत्र की ओर इशारा करते हुए उपयोग के लिए आरक्षित है, इसलिए यह नहीं है
अब संकलक द्वारा उपयोग के लिए उपलब्ध है। इसका परिणाम धीमा और/या बड़ा हो सकता है
कोड अगर वेरिएबल्स जो कभी आरक्षित रजिस्टर में रखे जा सकते थे, अब हैं
ढेर पर धकेल दिया।

नोट, सामान्य चर (वेरिएबल जिन्हें प्रारंभ नहीं किया गया है) और स्थिरांक हैं
छोटे डेटा क्षेत्र में नहीं रखा गया है क्योंकि उन्हें अन्य अनुभागों को सौंपा गया है
आउटपुट निष्पादन योग्य।

डिफ़ॉल्ट मान शून्य है, जो इस सुविधा को अक्षम करता है। ध्यान दें, यह सुविधा नहीं है
उच्च अनुकूलन स्तरों के साथ डिफ़ॉल्ट रूप से सक्षम (-ओ३ आदि) के कारण
एक रजिस्टर को आरक्षित करने के संभावित हानिकारक प्रभाव। यह प्रोग्रामर पर निर्भर है
प्रयोग करने और पता लगाने के लिए कि क्या यह सुविधा उनके कार्यक्रम के लिए लाभकारी है। देखो
का वर्णन -एमपीआईडी वास्तविक रजिस्टर कैसे करें के विवरण के लिए विकल्प
छोटे डेटा क्षेत्र सूचक को चुना जाता है।

-मसिम
-मनो-सिम
सिम्युलेटर रनटाइम का उपयोग करें। डिफ़ॉल्ट रूप से libgloss बोर्ड विशिष्ट रनटाइम का उपयोग करना है।

-mas100-वाक्यविन्यास
-mno-as100-वाक्यविन्यास
असेंबलर आउटपुट उत्पन्न करते समय एक सिंटैक्स का उपयोग करें जो रेनेसास के AS100 . के साथ संगत हो
असेंबलर। इस सिंटैक्स को GAS असेंबलर द्वारा भी नियंत्रित किया जा सकता है लेकिन इसमें कुछ है
प्रतिबंध इसलिए उत्पन्न करना डिफ़ॉल्ट विकल्प नहीं है।

-एमएमएक्स-स्थिर-आकार =N
बाइट्स में अधिकतम आकार निर्दिष्ट करता है, जो एक स्थिरांक के रूप में उपयोग किया जा सकता है
एक आरएक्स निर्देश। हालांकि RX निर्देश सेट 4 . तक के स्थिरांक की अनुमति देता है
निर्देशों में उपयोग की जाने वाली लंबाई में बाइट्स, लंबा मान लंबे समय के बराबर होता है
निर्देश। इस प्रकार कुछ परिस्थितियों में के आकार को सीमित करना फायदेमंद हो सकता है
स्थिरांक जो निर्देशों में उपयोग किए जाते हैं। इसके बजाय जो स्थिरांक बहुत बड़े हैं वे हैं
एक निरंतर पूल में रखा गया है और रजिस्टर अप्रत्यक्ष के माध्यम से संदर्भित किया गया है।

महत्व N 0 और 4 के बीच हो सकता है। 0 (डिफ़ॉल्ट) या 4 के मान का अर्थ है कि
किसी भी आकार के स्थिरांक की अनुमति है।

-मेरेलैक्स
लिंकर छूट सक्षम करें। लिंकर छूट एक ऐसी प्रक्रिया है जिसके द्वारा लिंकर करेगा
विभिन्न के छोटे संस्करण ढूंढकर प्रोग्राम के आकार को कम करने का प्रयास
निर्देश। डिफ़ॉल्ट रूप से अक्षम।

-मिंट-रजिस्टर=N
फास्ट इंटरप्ट हैंडलर फ़ंक्शन के लिए आरक्षित करने के लिए रजिस्टरों की संख्या निर्दिष्ट करें। NS
मूल्य N 0 और 4 के बीच हो सकता है। 1 के मान का मतलब है कि रजिस्टर "r13" होगा
फास्ट इंटरप्ट हैंडलर के अनन्य उपयोग के लिए आरक्षित। 2 रिजर्व का मूल्य
"आर 13" और "आर 12"। 3 भंडार "r13", "r12" और "r11" का मान और 4 . का मान
आरक्षित "r13" के माध्यम से "r10"। 0 का मान, डिफ़ॉल्ट, कोई आरक्षित नहीं करता
रजिस्टरों।

-msave-ac-in-interrupts
निर्दिष्ट करता है कि इंटरप्ट हैंडलर फ़ंक्शंस को संचायक रजिस्टर को संरक्षित करना चाहिए।
यह केवल तभी आवश्यक है जब सामान्य कोड संचायक रजिस्टर का उपयोग कर सकता है, उदाहरण के लिए
क्योंकि यह 64-बिट गुणन करता है। डिफ़ॉल्ट संचायक को अनदेखा करना है
क्योंकि यह इंटरप्ट हैंडलर को तेज बनाता है।

-एमपीआईडी
-मनो-पिडो
स्थिति स्वतंत्र डेटा की पीढ़ी को सक्षम करता है। किसी भी एक्सेस को सक्षम करने पर
निरंतर डेटा एक रजिस्टर में रखे गए आधार पते से ऑफसेट के माध्यम से किया जाएगा। इस
निरंतर डेटा के स्थान को बिना आवश्यकता के रन टाइम पर निर्धारित करने की अनुमति देता है
निष्पादन योग्य को स्थानांतरित किया जाना है, जो कि तंग के साथ एम्बेडेड अनुप्रयोगों के लिए एक लाभ है
स्मृति बाधाएं। संशोधित किया जा सकने वाला डेटा इस विकल्प से प्रभावित नहीं होता है।

ध्यान दें, इस सुविधा का उपयोग करने से एक रजिस्टर सुरक्षित रहता है, आमतौर पर "r13", स्थिर डेटा के लिए
आधार पता। इसका परिणाम धीमा और/या बड़ा कोड हो सकता है, विशेष रूप से जटिल में
कार्य करता है.

स्थिर डेटाबेस पता रखने के लिए चुना गया वास्तविक रजिस्टर इस बात पर निर्भर करता है कि क्या
la -एमस्मॉल-डेटा-लिमिट और / या -मिंट-रजिस्टर कमांड-लाइन विकल्प सक्षम हैं।
रजिस्टर "r13" से शुरू होकर नीचे की ओर बढ़ते हुए, रजिस्टरों को पहले आवंटित किया जाता है
की आवश्यकताओं को पूरा करने के लिए -मिंट-रजिस्टर, तो -एमपीआईडी और अंत में
-एमस्मॉल-डेटा-लिमिट. इस प्रकार छोटे डेटा क्षेत्र रजिस्टर के लिए "r8" होना संभव है
अगर दोनों -मिंट-रजिस्टर=4 और -एमपीआईडी कमांड लाइन पर निर्दिष्ट हैं।

डिफ़ॉल्ट रूप से यह सुविधा सक्षम नहीं है। डिफ़ॉल्ट को के माध्यम से पुनर्स्थापित किया जा सकता है -मनो-पिडो
कमांड लाइन विकल्प।

नोट: सामान्य जीसीसी कमांड लाइन विकल्प -फिक्स्ड-REG RX के लिए विशेष महत्व है
पोर्ट जब "इंटरप्ट" फ़ंक्शन विशेषता के साथ प्रयोग किया जाता है। यह विशेषता इंगित करती है a
फास्ट इंटरप्ट को संसाधित करने के उद्देश्य से फ़ंक्शन। जीसीसी यह सुनिश्चित करेगा कि वह केवल का उपयोग करता है
रजिस्टर "r10", "r11", "r12" और/या "r13" और केवल बशर्ते कि सामान्य उपयोग
संबंधित रजिस्टरों को के माध्यम से प्रतिबंधित कर दिया गया है -फिक्स्ड-REG or -मिंट-रजिस्टर
कमांड लाइन विकल्प।

एस / 390 और जेड सीरीज ऑप्शंस

ये हैं -m S/390 और zSeries आर्किटेक्चर के लिए परिभाषित विकल्प।

-महार्ड-फ्लोट
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग के लिए हार्डवेयर फ़्लोटिंग-पॉइंट निर्देशों और रजिस्टरों का उपयोग करें (उपयोग न करें)-
बिंदु संचालन। कब -एमसॉफ्ट-फ्लोट निर्दिष्ट है, में कार्य करता है libgcc.a इस्तेमाल किया जाएगा
फ्लोटिंग-पॉइंट ऑपरेशन करने के लिए। कब -महार्ड-फ्लोट निर्दिष्ट है, संकलक
आईईईई फ्लोटिंग-पॉइंट निर्देश उत्पन्न करता है। यह डिफ़ॉल्ट है।

-महार्ड-डीएफपी
-मनो-हार्ड-डीएफपी
दशमलव के लिए हार्डवेयर दशमलव-अस्थायी-बिंदु निर्देशों का उपयोग करें (उपयोग न करें)-
फ्लोटिंग-पॉइंट ऑपरेशन। कब -मनो-हार्ड-डीएफपी निर्दिष्ट है, में कार्य करता है libgcc.a
दशमलव-अस्थायी-बिंदु संचालन करने के लिए उपयोग किया जाएगा। कब -महार्ड-डीएफपी is
निर्दिष्ट, संकलक दशमलव-अस्थायी-बिंदु हार्डवेयर निर्देश उत्पन्न करता है। इस
के लिए डिफ़ॉल्ट है -मार्च = z9-ईसी या उच्चतर.

-मलॉन्ग-डबल-64
-मलॉन्ग-डबल-128
ये स्विच "लॉन्ग डबल" प्रकार के आकार को नियंत्रित करते हैं। 64 बिट का आकार बनाता है
"लॉन्ग डबल" टाइप "डबल" टाइप के बराबर है। यह डिफ़ॉल्ट है।

-एमबैकचेन
-मनो-बैकचेन
कॉलर के फ्रेम के पते को बैकचैन पॉइंटर के रूप में स्टोर करें (स्टोर न करें)
कैली का स्टैक फ्रेम। ऐसे टूल का उपयोग करके डिबगिंग की अनुमति देने के लिए बैकचेन की आवश्यकता हो सकती है जो
DWARF-2 कॉल फ्रेम जानकारी को नहीं समझते हैं। कब -मनो-पैक-स्टैक में है
प्रभाव, बैकचैन पॉइंटर को स्टैक फ्रेम के नीचे संग्रहीत किया जाता है; कब
-पैक्ड-स्टैक प्रभाव में है, बैकचेन को के सबसे ऊपरी शब्द में रखा गया है
96/160 बाइट रजिस्टर सेव एरिया।

सामान्य तौर पर, कोड संकलित किया गया -एमबैकचेन के साथ संकलित कोड के साथ कॉल-संगत है
-एमएमओ-बैकचेन; हालाँकि, डिबगिंग उद्देश्यों के लिए बैकचेन के उपयोग के लिए आमतौर पर आवश्यकता होती है
कि संपूर्ण बाइनरी के साथ बनाया गया है -एमबैकचेन. ध्यान दें कि का संयोजन
-एमबैकचेन, -पैक्ड-स्टैक और -महार्ड-फ्लोट समर्थित नहीं है। बनाने के लिए
लिनक्स कर्नेल उपयोग -एमसॉफ्ट-फ्लोट.

डिफ़ॉल्ट बैकचेन को बनाए नहीं रखना है।

-पैक्ड-स्टैक
-मनो-पैक-स्टैक
पैक्ड स्टैक लेआउट का उपयोग करें (उपयोग न करें)। कब -मनो-पैक-स्टैक निर्दिष्ट है,
कंपाइलर 96/160 बाइट रजिस्टर सेव एरिया के सभी क्षेत्रों का उपयोग केवल उनके लिए करता है
डिफ़ॉल्ट उद्देश्य; अप्रयुक्त फ़ील्ड अभी भी स्टैक स्पेस लेते हैं। कब -पैक्ड-स्टैक is
निर्दिष्ट, रजिस्टर सेव स्लॉट रजिस्टर सेव के शीर्ष पर घनी रूप से पैक किए गए हैं
क्षेत्र; अप्रयुक्त स्थान का अन्य उद्देश्यों के लिए पुन: उपयोग किया जाता है, जिससे अधिक कुशल उपयोग की अनुमति मिलती है
उपलब्ध स्टैक स्थान। हालाँकि, जब -एमबैकचेन प्रभाव में भी है, सर्वोच्च
सेव एरिया का शब्द हमेशा बैकचेन और रिटर्न एड्रेस को स्टोर करने के लिए उपयोग किया जाता है
रजिस्टर हमेशा बैकचेन के नीचे दो शब्द सहेजा जाता है।

जब तक स्टैक फ्रेम बैकचेन का उपयोग नहीं किया जाता है, तब तक कोड उत्पन्न होता है -पैक्ड-स्टैक
के साथ उत्पन्न कोड के साथ कॉल-संगत है -मनो-पैक-स्टैक. ध्यान दें कि कुछ गैर-FSF
S/2.95 या zSeries जनरेटेड कोड के लिए GCC 390 का विमोचन जो स्टैक फ्रेम का उपयोग करता है
केवल डिबगिंग उद्देश्यों के लिए नहीं, रन टाइम पर बैकचेन। ऐसा कोड कॉल नहीं है-
के साथ संकलित कोड के साथ संगत -पैक्ड-स्टैक. यह भी ध्यान दें कि का संयोजन
-एमबैकचेन, -पैक्ड-स्टैक और -महार्ड-फ्लोट समर्थित नहीं है। बनाने के लिए
लिनक्स कर्नेल उपयोग -एमसॉफ्ट-फ्लोट.

डिफ़ॉल्ट रूप से पैक्ड स्टैक लेआउट का उपयोग नहीं करना है।

-एमएसस्मॉल-निष्पादन
-मनो-छोटा-निष्पादन
सबरूटीन करने के लिए "ब्रा" निर्देश का उपयोग करके कोड उत्पन्न करें (या उत्पन्न न करें)
कॉल। यह केवल तभी मज़बूती से काम करता है जब कुल निष्पादन योग्य आकार 64k से अधिक न हो।
डिफ़ॉल्ट इसके बजाय "बसर" निर्देश का उपयोग करना है, जिसमें यह नहीं है
सीमा।

-एम 64
-एम 31
. -एम 31 निर्दिष्ट है, S/390 ABI के लिए GNU/Linux के अनुरूप कोड जनरेट करें। कब
-एम 64 निर्दिष्ट है, zSeries ABI के लिए GNU/Linux के अनुरूप कोड जनरेट करें। इस
जीसीसी को विशेष रूप से 64-बिट निर्देश उत्पन्न करने की अनुमति देता है। के लिए s390 लक्ष्य,
डिफ़ॉल्ट है -एम 31, जबकि s390x के लिए डिफ़ॉल्ट लक्ष्य -एम 64.

-मज़ार्च
-मेसा
. -मज़ार्च निर्दिष्ट है, पर उपलब्ध निर्देशों का उपयोग करके कोड जनरेट करें
जेड/आर्किटेक्चर। कब -मेसा निर्दिष्ट है, निर्देशों का उपयोग करके कोड जनरेट करें
ईएसए/390 पर उपलब्ध है। ध्यान दें कि -मेसा के साथ संभव नहीं है -एम 64. उत्पन्न करते समय
एस/390 एबीआई के लिए जीएनयू/लिनक्स के अनुरूप कोड, डिफ़ॉल्ट है -मेसा. उत्पन्न करते समय
zSeries ABI के लिए GNU/Linux के अनुरूप कोड, डिफ़ॉल्ट है -मज़ार्च.

-एमएमवीसीएल
-मनो-एमवीसीएल
ब्लॉक करने के लिए "mvcle" निर्देश का उपयोग करके कोड उत्पन्न करें (या उत्पन्न न करें)
चलता है। कब -मनो-एमवीसीएल निर्दिष्ट है, इसके बजाय "एमवीसी" लूप का उपयोग करें। यह डिफ़ॉल्ट है
जब तक आकार के लिए अनुकूलन नहीं होता।

-एमडीबग
-मनो-डीबग
संकलन करते समय अतिरिक्त डीबग जानकारी प्रिंट करें (या प्रिंट न करें)। डिफ़ॉल्ट है
डीबग जानकारी मुद्रित नहीं करने के लिए।

-मार्च=सीपीयू प्रकार
कोड जनरेट करें जो चालू रहेगा सीपीयू प्रकार, जो एक का प्रतिनिधित्व करने वाली प्रणाली का नाम है a
कुछ प्रोसेसर प्रकार। के लिए संभावित मान सीपीयू प्रकार रहे g5, g6, z900, z990, z9-109,
z9-ईसी और z10. पर उपलब्ध निर्देशों का उपयोग करते हुए कोड जनरेट करते समय
z/आर्किटेक्चर, डिफ़ॉल्ट है -मार्च = z900. अन्यथा, डिफ़ॉल्ट है -मार्च=g5.

-मट्यून =सीपीयू प्रकार
ट्यून टू सीपीयू प्रकार उत्पन्न कोड के बारे में लागू सब कुछ, ABI को छोड़कर
और उपलब्ध निर्देशों का सेट। की सूची सीपीयू प्रकार मान for . के समान है
मार्च. डिफ़ॉल्ट वह मान है जिसका उपयोग किया जाता है मार्च.

-एमटीपीएफ-ट्रेस
-एमनो-टीपीएफ-ट्रेस
रूटीन का पता लगाने के लिए टीपीएफ ओएस विशिष्ट शाखाओं में जोड़ने वाला (जोड़ता नहीं) कोड उत्पन्न करें
ऑपरेटिंग सिस्टम में। यह विकल्प डिफ़ॉल्ट रूप से बंद है, यहां तक ​​कि इसके लिए संकलन करते समय भी
टीपीएफ ओएस।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
फ़्लोटिंग-पॉइंट का उपयोग करने वाला (उपयोग नहीं करने वाला) कोड उत्पन्न करें और जमा करें
निर्देश। ये निर्देश डिफ़ॉल्ट रूप से उत्पन्न होते हैं यदि हार्डवेयर फ़्लोटिंग पॉइंट
प्रयोग किया जाता है।

-मवार्न-फ्रेमसाइज =ढांचे का आकर
यदि वर्तमान फ़ंक्शन दिए गए फ़्रेम आकार से अधिक है, तो चेतावनी दें। क्योंकि यह है
एक संकलन-समय की जाँच करें कि प्रोग्राम के चलने पर इसे वास्तविक समस्या होने की आवश्यकता नहीं है। यह
उन कार्यों की पहचान करने का इरादा है जो संभवतः स्टैक ओवरफ़्लो का कारण बनते हैं। यह है
सीमित स्टैक आकार जैसे लिनक्स कर्नेल वाले वातावरण में उपयोग के लिए उपयोगी।

-मवार्न-डायनामिकस्टैक
यदि फ़ंक्शन एलोका को कॉल करता है या गतिशील रूप से आकार वाले सरणियों का उपयोग करता है, तो चेतावनी दें। यह है
आम तौर पर सीमित स्टैक आकार के साथ एक बुरा विचार।

-मस्टैक-गार्ड =ढेर रक्षक
-मस्टैक-आकार =ढेर-आकार
यदि इन विकल्पों को प्रदान किया जाता है तो s390 बैक एंड अतिरिक्त निर्देशों का उत्सर्जन करता है
फ़ंक्शन प्रस्तावना जो एक जाल को ट्रिगर करती है यदि स्टैक का आकार है ढेर रक्षक ऊपर बाइट्स
la ढेर-आकार (याद रखें कि s390 पर स्टैक नीचे की ओर बढ़ता है)। अगर ढेर रक्षक
विकल्प को संकलित के फ्रेम आकार से 2 की सबसे छोटी शक्ति को छोड़ दिया जाता है
समारोह चुना जाता है। इन विकल्पों का उपयोग डिबगिंग स्टैक में मदद करने के लिए किया जाता है
अतिप्रवाह समस्याएं। अतिरिक्त उत्सर्जित कोड केवल थोड़ा उपरि का कारण बनता है और
इसलिए अधिक प्रदर्शन के बिना सिस्टम जैसे उत्पादन में भी इस्तेमाल किया जा सकता है
निम्नीकरण। दिए गए मान 2 और की सटीक घात होने चाहिए ढेर-आकार होना ही पड़ेगा
से अधिक से अधिक ढेर रक्षक 64k से अधिक के बिना। अतिरिक्त कुशल होने के लिए
कोड यह धारणा बनाता है कि स्टैक मान के साथ संरेखित पते पर शुरू होता है
के द्वारा दिया गया ढेर-आकारढेर रक्षक विकल्प का उपयोग केवल के संयोजन के साथ किया जा सकता है
ढेर-आकार.

स्कोर ऑप्शंस

इन विकल्पों को स्कोर कार्यान्वयन के लिए परिभाषित किया गया है:

-मेब
बिग-एंडियन मोड के लिए कोड संकलित करें। यह डिफ़ॉल्ट है।

-मेले
लिटिल-एंडियन मोड के लिए कोड संकलित करें।

-मन्हव्लूप
bcnz निर्देश जनरेट करना अक्षम करें।

-मुल्स
असंरेखित लोड और स्टोर निर्देश उत्पन्न करने में सक्षम करें।

-एमएमएसी
गुणन-संचय निर्देशों के उपयोग को सक्षम करें। डिफ़ॉल्ट रूप से अक्षम।

-एमएसकोर5
SCORE5 को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें।

-मस्कोर5यू
लक्ष्य आर्किटेक्चर का SCORE5U निर्दिष्ट करें।

-एमएसकोर7
SCORE7 को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें। यह डिफ़ॉल्ट है।

-एमएसकोर7डी
SCORE7D को लक्ष्य आर्किटेक्चर के रूप में निर्दिष्ट करें।

SH ऑप्शंस

इन -m एसएच कार्यान्वयन के लिए विकल्पों को परिभाषित किया गया है:

-एम 1 SH1 के लिए कोड जनरेट करें।

-एम 2 SH2 के लिए कोड जनरेट करें।

-एम2ई
SH2e के लिए कोड जनरेट करें।

-एम2ए-नोफपु
FPU के बिना SH2a के लिए, या SH2a-FPU के लिए इस तरह से कोड जेनरेट करें कि
फ्लोटिंग-पॉइंट यूनिट का उपयोग नहीं किया जाता है।

-m2a-एकल-केवल
SH2a-FPU के लिए कोड जेनरेट करें, ताकि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-m2a-एकल
SH2a-FPU के लिए कोड जेनरेट करें, यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट एकल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम2ए
SH2a-FPU के लिए कोड जेनरेट करें, यह मानते हुए कि फ्लोटिंग-पॉइंट यूनिट डबल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम 3 SH3 के लिए कोड जनरेट करें।

-एम3ई
SH3e के लिए कोड जनरेट करें।

-एम4-नोफपु
फ्लोटिंग-पॉइंट यूनिट के बिना SH4 के लिए कोड जनरेट करें।

-m4-एकल-केवल
SH4 के लिए एक फ्लोटिंग-पॉइंट यूनिट के साथ कोड जेनरेट करें जो केवल सिंगल का समर्थन करता है-
सटीक अंकगणित।

-एम 4-एकल
फ्लोटिंग-पॉइंट यूनिट एकल-सटीक मोड में है, यह मानते हुए SH4 के लिए कोड जेनरेट करें
डिफ़ॉल्ट रूप से

-एम 4 SH4 के लिए कोड जनरेट करें।

-एम4ए-नोफपु
SH4al-dsp के लिए या SH4a के लिए इस तरह से कोड जेनरेट करें कि फ्लोटिंग-पॉइंट
इकाई का उपयोग नहीं किया जाता है।

-m4a-एकल-केवल
SH4a के लिए कोड जेनरेट करें, ताकि कोई डबल-सटीक फ़्लोटिंग-पॉइंट न हो
संचालन का उपयोग किया जाता है।

-m4a-एकल
SH4a के लिए कोड जनरेट करें यह मानते हुए कि फ्लोटिंग-पॉइंट इकाई एकल-सटीक है
डिफ़ॉल्ट रूप से मोड।

-एम4ए
SH4a के लिए कोड जनरेट करें।

-m4al
के समान -एम4ए-नोफपु, सिवाय इसके कि यह परोक्ष रूप से गुजरता है -डीएसपी असेंबलर को। जीसीसी
इस समय कोई डीएसपी निर्देश उत्पन्न नहीं करता है।

-एमबी बड़े-एंडियन मोड में प्रोसेसर के लिए कोड संकलित करें।

-एमएल प्रोसेसर के लिए छोटे-एंडियन मोड में कोड संकलित करें।

-mdalign
64-बिट सीमाओं पर युगल संरेखित करें। ध्यान दें कि यह कॉलिंग सम्मेलनों को बदलता है,
और इस प्रकार मानक सी पुस्तकालय से कुछ कार्य तब तक काम नहीं करेंगे जब तक आप पुन: संकलित नहीं करते
इसके साथ पहले -mdalign.

-मेरेलैक्स
जब संभव हो, लिंक समय पर कुछ पता संदर्भों को छोटा करें; लिंकर विकल्प का उपयोग करता है
-आराम करें.

-मबिगटेबल
"स्विच" तालिकाओं में 32-बिट ऑफ़सेट का उपयोग करें। डिफ़ॉल्ट 16-बिट ऑफ़सेट का उपयोग करना है।

-एमबीटॉप्स
SH2A पर बिट मैनिपुलेशन निर्देशों के उपयोग को सक्षम करें।

-एमएफमोवडी
निर्देश "fmovd" के उपयोग को सक्षम करें। जाँच -mdalign संरेखण बाधाओं के लिए।

-मिताची
रेनेसास द्वारा परिभाषित कॉलिंग सम्मेलनों का अनुपालन करें।

-मेरेनेसा
रेनेसास द्वारा परिभाषित कॉलिंग सम्मेलनों का अनुपालन करें।

-मनो-रेनेसा
रेनेसास सम्मेलनों से पहले जीसीसी के लिए परिभाषित कॉलिंग सम्मेलनों का अनुपालन करें
उपलब्ध थे। यह विकल्प SH टूलचेन के सभी लक्ष्यों के लिए डिफ़ॉल्ट है।

-मनोमैकसेव
"मैक" रजिस्टर को कॉल-क्लोबर्ड के रूप में चिह्नित करें, भले ही -मिताची दिया हुआ है।

-मीई
-मनो-आईईईई
फ़्लोटिंग-पॉइंट तुलनाओं के IEEE अनुपालन को नियंत्रित करें, जो हैंडलिंग को प्रभावित करता है
उन मामलों की जहां तुलना का परिणाम अनियंत्रित है। डिफ़ॉल्ट रूप से -मीई is
निहित रूप से सक्षम। अगर -अनंत-गणित-केवल सक्षम किया गया है -मनो-आईईईई निहित रूप से सेट है,
जिसके परिणामस्वरूप तेजी से फ़्लोटिंग-पॉइंट अधिक-बराबर और कम-बराबर तुलना होती है। NS
निहित सेटिंग्स को या तो निर्दिष्ट करके ओवरराइड किया जा सकता है -मीई or -मनो-आईईईई.

-मिनलाइन-आईसी_अमान्य
नेस्टेड फ़ंक्शन सेट करने के बाद निर्देश कैश प्रविष्टियों को अमान्य करने के लिए इनलाइन कोड
ट्रैम्पोलिन। यदि -मुसरमोड प्रभाव में है और चयनित है तो इस विकल्प का कोई प्रभाव नहीं पड़ता है
कोड जनरेशन विकल्प (जैसे -m4) icbi निर्देश के उपयोग की अनुमति नहीं देता है। अगर
चयनित कोड जनरेशन विकल्प icbi निर्देश के उपयोग की अनुमति नहीं देता है,
और -मुसरमोड प्रभाव में नहीं है, इनलाइन कोड निर्देश में हेरफेर करेगा
कैश एड्रेस ऐरे को सीधे एक साहचर्य लेखन के साथ। इसके लिए न केवल आवश्यकता है
विशेषाधिकार प्राप्त मोड, लेकिन यह भी विफल हो जाएगा यदि कैश लाइन को टीएलबी के माध्यम से मैप किया गया हो
और अप्रकाशित हो गया है।

-मिसाइज़
असेंबली कोड में निर्देश आकार और स्थान डंप करें।

-एमपीडस्ट्रक्ट
यह विकल्प बहिष्कृत है। यह 4 बाइट्स के गुणकों में संरचनाओं को पैड करता है, जो है
एसएच एबीआई के साथ असंगत।

-एमसॉफ्ट-परमाणु
परमाणु अंतर्निहित के लिए GNU/Linux संगत gUSA सॉफ़्टवेयर परमाणु अनुक्रम उत्पन्न करें
कार्य। उत्पन्न परमाणु अनुक्रमों को रुकावट से समर्थन की आवश्यकता होती है /
सिस्टम का अपवाद हैंडलिंग कोड और केवल सिंगल-कोर सिस्टम के लिए उपयुक्त हैं।
वे मल्टी-कोर सिस्टम पर सही ढंग से प्रदर्शन नहीं करेंगे। यह विकल्प द्वारा सक्षम किया गया है
डिफ़ॉल्ट जब लक्ष्य "sh-*-linux*" होता है। परमाणु बिल्ट-इन के विवरण के लिए
कार्य देखें __परमाणु बिलिन्स.

-एमस्पेस
गति के बजाय स्थान के लिए अनुकूलित करें। द्वारा अंतर्निहित -ओस.

-मप्रेफरगोट
स्थिति-स्वतंत्र कोड उत्पन्न करते समय, ग्लोबल ऑफ़सेट का उपयोग करके फ़ंक्शन कॉल उत्सर्जित करें
प्रक्रिया लिंकेज तालिका के बजाय तालिका।

-मुसरमोड
विशेषाधिकार प्राप्त मोड केवल कोड उत्पन्न न करें; तात्पर्य -mno-inline-ic_invalidate अगर the
इनलाइन कोड उपयोगकर्ता मोड में काम नहीं करेगा। यह डिफ़ॉल्ट है जब लक्ष्य है
"श-*-लिनक्स*"।

-मल्टीकॉस्ट =संख्या
एक गुणा इन्स के लिए मान लेने के लिए लागत निर्धारित करें।

-एमडीवी =रणनीति
पूर्णांक विभाजन संचालन के लिए उपयोग की जाने वाली विभाजन रणनीति निर्धारित करें। SHmedia . के लिए
रणनीति इनमें से एक हो सकता है:

fp फ्लोटिंग पॉइंट में ऑपरेशन करता है। इसमें बहुत अधिक विलंबता है, लेकिन इसकी आवश्यकता है
केवल कुछ निर्देश, इसलिए यदि आपके कोड में पर्याप्त है तो यह एक अच्छा विकल्प हो सकता है
संकलक को फ़्लोटिंग-पॉइंट शेड्यूल करने की अनुमति देने के लिए आसानी से शोषक ILP
अन्य निर्देशों के साथ निर्देश। शून्य से विभाजन a . का कारण बनता है
फ़्लोटिंग-पॉइंट अपवाद।

निवेश संबंधी निर्णय भाजक के व्युत्क्रम की गणना करने के लिए पूर्णांक संचालन का उपयोग करता है, और फिर
लाभांश को व्युत्क्रम से गुणा करता है। यह रणनीति सीएसई और उत्थापन की अनुमति देती है
उलटा गणना के। शून्य से विभाजन एक अनिर्दिष्ट परिणाम की गणना करता है,
लेकिन फँसता नहीं।

आमंत्रण: minlat
का एक प्रकार निवेश संबंधी निर्णय जहां, यदि कोई सीएसई या उत्थापन अवसर नहीं मिला है, या यदि
पूरे ऑपरेशन को एक ही स्थान पर फहराया गया है, के अंतिम चरण
उलटा गणना समग्र को कम करने के लिए अंतिम गुणा के साथ जुड़ी हुई है
विलंबता, कुछ और निर्देशों का उपयोग करने की कीमत पर, और इस प्रकार कम पेशकश
अन्य कोड के साथ शेड्यूलिंग अवसर।

कॉल
लाइब्रेरी फ़ंक्शन को कॉल करता है जो आमतौर पर लागू करता है आमंत्रण: minlat रणनीति। इस
"m5-*media-nofpu" संकलन के लिए उच्च कोड घनत्व देता है।

call2
एक ही पुस्तकालय समारोह के एक अलग प्रवेश बिंदु का उपयोग करता है, जहां यह मानता है कि a
लुकअप टेबल के लिए पॉइंटर पहले ही सेट किया जा चुका है, जो पॉइंटर लोड को उजागर करता है
सीएसई और कोड उत्थापन अनुकूलन के लिए।

आमंत्रण: कॉल
आमंत्रण: कॉल2
आमंत्रण: एफपी
उपयोग निवेश संबंधी निर्णय प्रारंभिक कोड पीढ़ी के लिए एल्गोरिथ्म, लेकिन अगर कोड रहता है
अअनुकूलित, पर वापस लौटें कॉल, call2या, fp रणनीतियाँ, क्रमशः। ध्यान दें कि
शून्य से विभाजन का संभावित-फँसाने वाला दुष्प्रभाव एक अलग द्वारा किया जाता है
निर्देश, इसलिए यह संभव है कि सभी पूर्णांक निर्देश बाहर फहराए जाएं,
लेकिन साइड इफेक्ट के लिए मार्कर वहीं रहता है जहां वह है। करने के लिए एक पुनर्संयोजन
उस स्थिति में फ़्लोटिंग-पॉइंट ऑपरेशंस या कॉल संभव नहीं है।

आमंत्रण20यू
Inv20l
के प्रकार आमंत्रण: minlat रणनीति। इस मामले में कि व्युत्क्रम गणना है
गुणा से अलग नहीं, वे विभाजन को गति देते हैं जहां लाभांश फिट बैठता है
20 बिट्स में (प्लस साइन जहां लागू हो) एक संख्या को छोड़ने के लिए एक परीक्षण सम्मिलित करके
इस मामले में संचालन; यह परीक्षण बड़े लाभांश के मामले को धीमा कर देता है।
आमंत्रण20यू ऐसे छोटे लाभांश के मामले को असंभाव्य मानता है, और Inv20l
संभावना मानता है।

SHmedia के अलावा अन्य लक्ष्यों के लिए रणनीति इनमें से एक हो सकता है:

कॉल-div1
लाइब्रेरी फ़ंक्शन को कॉल करता है जो सिंगल-स्टेप डिवीजन निर्देश "div1" का उपयोग करता है
ऑपरेशन करें। शून्य से भाग एक अनिर्दिष्ट परिणाम की गणना करता है और करता है
जाल नहीं। यह SH4, SH2A और SHcompact को छोड़कर डिफ़ॉल्ट है।

कॉल-एफपी
एक पुस्तकालय फ़ंक्शन को कॉल करें जो ऑपरेशन को डबल परिशुद्धता फ़्लोटिंग में करता है
बिंदु। शून्य से विभाजन एक फ़्लोटिंग-पॉइंट अपवाद का कारण बनता है। यह डिफ़ॉल्ट है
FPU के साथ SHcompact के लिए। इसे उन लक्ष्यों के लिए निर्दिष्ट करना जिनके पास डबल नहीं है
सटीक FPU "call-div1" के लिए डिफ़ॉल्ट होगा।

कॉल-टेबल
लाइब्रेरी फ़ंक्शन को कॉल करता है जो छोटे विभाजकों के लिए लुकअप टेबल का उपयोग करता है और
बड़े भाजक के लिए केस भेद के साथ "div1" निर्देश। शून्य से विभाजन
एक अनिर्दिष्ट परिणाम की गणना करता है और फंसता नहीं है। यह SH4 के लिए डिफ़ॉल्ट है।
इसे उन लक्ष्यों के लिए निर्दिष्ट करना जिनके पास गतिशील शिफ्ट निर्देश नहीं हैं
"कॉल-div1" के लिए डिफ़ॉल्ट।

जब एक विभाजन रणनीति निर्दिष्ट नहीं की गई है तो डिफ़ॉल्ट रणनीति का चयन किया जाएगा
वर्तमान लक्ष्य के आधार पर। SH2A के लिए डिफ़ॉल्ट रणनीति "divs" और . का उपयोग करना है
लाइब्रेरी फंक्शन कॉल्स के बजाय "डिवु" निर्देश।

-संकुचित-आउटगोइंग-आर्ग्स
फ़ंक्शन प्रस्तावना में आउटगोइंग तर्कों के लिए एक बार स्थान आरक्षित करें, न कि आस-पास
प्रत्येक कॉल। प्रदर्शन और आकार के लिए आम तौर पर फायदेमंद। खोलने के लिए भी आवश्यक
सशर्त कोड के आसपास स्टैक फ्रेम को बदलने से बचने के लिए।

-mdivsi3_libfunc=नाम
32-बिट हस्ताक्षरित डिवीजन के लिए उपयोग किए जाने वाले लाइब्रेरी फ़ंक्शन का नाम सेट करें नाम। इस
केवल कॉल और आमंत्रण में उपयोग किए गए नाम को प्रभावित करते हैं: कॉल डिवीजन रणनीतियों, और
कंपाइलर अभी भी इनपुट/आउटपुट/क्लोबर्ड रजिस्टरों के समान सेटों की अपेक्षा करेगा जैसे if
यह विकल्प मौजूद नहीं था।

-मफिक्स्ड-रेंज =रजिस्टर-रेंज
दिए गए रजिस्टर रेंज को फिक्स्ड रजिस्टर मानकर कोड जेनरेट करें। एक निश्चित रजिस्टर
वह है जिसे रजिस्टर आवंटक उपयोग नहीं कर सकता है। कर्नेल को संकलित करते समय यह उपयोगी है
कोड। एक रजिस्टर श्रेणी को डैश द्वारा अलग किए गए दो रजिस्टरों के रूप में निर्दिष्ट किया जाता है। विभिन्न
रजिस्टर श्रेणियों को अल्पविराम से अलग करके निर्दिष्ट किया जा सकता है।

-पागल-समायोजित-अनरोल
लक्ष्य रजिस्टरों को चकनाचूर करने से बचने के लिए थ्रॉटल अनरोलिंग। इस विकल्प में केवल एक है
प्रभाव अगर जीसीसी कोड आधार TARGET_ADJUST_UNROLL_MAX लक्ष्य हुक का समर्थन करता है।

-दिमागदार-संबोधन
SHmedia32/SHcompact के लिए अनुक्रमित एड्रेसिंग मोड के उपयोग को सक्षम करें। यह केवल .... ही
सुरक्षित अगर हार्डवेयर और/या ओएस अनुक्रमित के लिए 32-बिट रैप-अराउंड सेमेन्टिक्स लागू करते हैं
एड्रेसिंग मोड। आर्किटेक्चर 64-बिट के साथ प्रोसेसर के कार्यान्वयन की अनुमति देता है
MMU, जिसका उपयोग OS 32-बिट एड्रेसिंग प्राप्त करने के लिए कर सकता है, लेकिन चूंकि कोई मौजूदा हार्डवेयर नहीं है
कार्यान्वयन इस या किसी अन्य तरीके से अनुक्रमित एड्रेसिंग मोड को सुरक्षित बनाने का समर्थन करता है
32-बिट ABI में उपयोग करने के लिए, डिफ़ॉल्ट है -मनो-अनुक्रमित-संबोधन.

-मगेटरकॉस्ट =संख्या
गेट्र निर्देश के लिए अनुमानित लागत को सेट करें संख्या. डिफ़ॉल्ट 2 है अगर
-एमपीटी-फिक्स्ड प्रभाव में है, अन्यथा 100।

-एमपीटी-फिक्स्ड
मान लें कि पीटी * निर्देश नहीं फंसेंगे। यह आम तौर पर बेहतर शेड्यूल उत्पन्न करेगा
कोड, लेकिन वर्तमान हार्डवेयर पर असुरक्षित है। वर्तमान वास्तुकला परिभाषा कहती है
वह ptabs और ptrel ट्रैप जब लक्ष्य और 3 के साथ 3 है। यह है
किसी शाखा के समक्ष ptabs / ptrel शेड्यूल करना असुरक्षित बनाने का अनजाने में प्रभाव, या
इसे एक लूप से बाहर उठाएं। उदाहरण के लिए, __do_global_ctors, libgcc का एक भाग जो चलता है
प्रोग्राम स्टार्टअप पर कंस्ट्रक्टर, एक सूची में फ़ंक्शन को कॉल करता है जिसे -1 द्वारा सीमांकित किया जाता है।
-mpt-fixed विकल्प के साथ, -1 के खिलाफ परीक्षण से पहले ptabs किया जाएगा। उस
इसका मतलब है कि सभी कंस्ट्रक्टर थोड़ा तेज चलेंगे, लेकिन जब लूप आता है
सूची के अंत में, प्रोग्राम क्रैश हो जाता है क्योंकि ptabs -1 को लक्ष्य में लोड करता है
रजिस्टर करें। चूंकि यह विकल्प वर्तमान को लागू करने वाले किसी भी हार्डवेयर के लिए असुरक्षित है
आर्किटेक्चर विनिर्देश, डिफ़ॉल्ट -mno-pt-fixed है। जब तक उपयोगकर्ता निर्दिष्ट नहीं करता है a
के साथ विशिष्ट लागत -मगेटरकोस्ट, -मनो-पीटी-फिक्स्ड का भी अर्थ है -मगेटरकॉस्ट = 100; इस
साधारण पूर्णांकों को संग्रहीत करने के लिए लक्ष्य रजिस्टरों का उपयोग करके आवंटन को पंजीकृत करने से रोकता है।

-मिनवैलिड-प्रतीक
मान लें कि प्रतीक अमान्य हो सकते हैं। संकलक द्वारा उत्पन्न साधारण कार्य प्रतीक
हमेशा Movi/sori/ptabs या movi/sori/ptrel के साथ लोड करने के लिए मान्य होगा, लेकिन साथ में
असेंबलर और/या लिंकर ट्रिक्स से प्रतीकों को उत्पन्न करना संभव है जो कारण होगा
ptabs / ptrel ट्रैप करने के लिए। यह विकल्प तभी सार्थक होता है जब -मनो-पीटी-फिक्स्ड में है
प्रभाव। इसके बाद यह क्रॉस-बेसिक-ब्लॉक सीएसई, उत्थापन और अधिकांश शेड्यूलिंग को रोक देगा
प्रतीक भार। डिफ़ॉल्ट है -मनो-अमान्य-प्रतीक.

- शाखा-लागत =संख्या
मान लीजिये संख्या एक शाखा निर्देश के लिए लागत होने के लिए। अधिक संख्याएं बना देंगी
संकलक यदि संभव हो तो अधिक शाखा-मुक्त कोड उत्पन्न करने का प्रयास करें। यदि निर्दिष्ट नहीं है
मूल्य का चयन उस प्रोसेसर प्रकार के आधार पर किया जाता है जिसके लिए संकलित किया जा रहा है।

-एमसीब्रांचडी
"cbranchdi4" निर्देश पैटर्न को सक्षम करें।

-एमसीएमपीपीडी
"cmpeqdi_t" निर्देश पैटर्न तब भी उत्सर्जित करें जब -एमसीब्रांचडी प्रभाव में है।

-मफ्यूज्ड-मैड
"fmac" निर्देश के उपयोग की अनुमति दें (फ्लोटिंग-पॉइंट गुणा-संचय) यदि
प्रोसेसर प्रकार इसका समर्थन करता है। इस विकल्प को सक्षम करने से कोड उत्पन्न हो सकता है जो उत्पन्न करता है
सख्त IEEE 754 अंकगणित की तुलना में विभिन्न संख्यात्मक फ़्लोटिंग-पॉइंट परिणाम।

-व्याख्या-सीमूव
सशर्त चाल निर्देश के लिए शून्य-विस्थापन सशर्त शाखाओं को प्राथमिकता दें
पैटर्न। इसका परिणाम SH4 प्रोसेसर पर तेज़ कोड हो सकता है।

सोलारिस 2 ऑप्शंस

इन -m सोलारिस 2 पर विकल्प समर्थित हैं:

-मिमप्योर-पाठ
-मिमप्योर-पाठ, के अलावा इस्तेमाल किया कमरा साझा, संकलक को पास न करने के लिए कहता है -z टेक्स्ट सेवा मेरे
किसी साझा वस्तु को लिंक करते समय लिंकर। इस विकल्प का उपयोग करके आप स्थिति को लिंक कर सकते हैं-
एक साझा वस्तु में निर्भर कोड।

-मिमप्योर-पाठ दबाता है "स्थानांतरण आवंटन योग्य लेकिन गैर-लिखने योग्य के खिलाफ रहता है"
अनुभाग" लिंकर त्रुटि संदेश। हालांकि, आवश्यक स्थानांतरण प्रतिलिपि को ट्रिगर करेगा-
ऑन-राइट, और साझा वस्तु वास्तव में प्रक्रियाओं में साझा नहीं की जाती है। के बजाए
का उपयोग -मिमप्योर-पाठ, आपको सभी स्रोत कोड को संकलित करना चाहिए -एफपीआईसी or -एफपीआईसी.

ये स्विच सोलारिस 2 पर उपरोक्त के अतिरिक्त समर्थित हैं:

-पथ्रेड
POSIX थ्रेड्स लाइब्रेरी का उपयोग करके मल्टीथ्रेडिंग के लिए समर्थन जोड़ें। यह विकल्प सेट करता है
प्रीप्रोसेसर और लिंकर दोनों के लिए झंडे। यह विकल्प थ्रेड को प्रभावित नहीं करता
संकलक या इसके साथ आपूर्ति किए गए पुस्तकालयों द्वारा निर्मित ऑब्जेक्ट कोड की सुरक्षा।

-पथ्रेड
यह का समानार्थी है -पथ्रेड.

स्पार्क ऑप्शंस

इन -m विकल्प SPARC पर समर्थित हैं:

-मनो-ऐप-regs
-मैप-regs
निर्दिष्ट करें -मैप-regs वैश्विक रजिस्टर 2 से 4 का उपयोग करके आउटपुट उत्पन्न करने के लिए, जो
SPARC SVR4 ABI अनुप्रयोगों के लिए आरक्षित है। वैश्विक रजिस्टर 1 की तरह, प्रत्येक वैश्विक
रजिस्टर 2 से 4 को तब एक आवंटन योग्य रजिस्टर के रूप में माना जाता है जिसे
फ़ंक्शन कॉल। यह डिफ़ॉल्ट है।

कुछ प्रदर्शन हानि की कीमत पर पूरी तरह से SVR4 ABI के अनुरूप होने के लिए, निर्दिष्ट करें
-मनो-ऐप-regs. आपको इस विकल्प के साथ पुस्तकालयों और सिस्टम सॉफ्टवेयर को संकलित करना चाहिए।

-एमएफएलएटी
-मनो-फ्लैट
- -एमएफएलएटी, कंपाइलर निर्देशों को सहेज/पुनर्स्थापित नहीं करता है और a . का उपयोग करता है
"फ्लैट" या सिंगल रजिस्टर विंडो मॉडल। यह मॉडल नियमित . के साथ संगत है
विंडो मॉडल रजिस्टर करें। स्थानीय रजिस्टर और इनपुट रजिस्टर (0--5) अभी भी हैं
"कॉल-सेव्ड" रजिस्टर के रूप में माना जाता है और आवश्यकतानुसार स्टैक पर सहेजा जाएगा।

- -मनो-फ्लैट (डिफ़ॉल्ट), कंपाइलर सेव / रिस्टोर निर्देश उत्पन्न करता है (सिवाय
पत्ती कार्यों के लिए)। यह सामान्य ऑपरेटिंग मोड है।

-एमएफपीयू
-महार्ड-फ्लोट
फ्लोटिंग-पॉइंट निर्देशों वाला आउटपुट जेनरेट करें। यह डिफ़ॉल्ट है।

-मनो-एफपीयू
-एमसॉफ्ट-फ्लोट
फ़्लोटिंग पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें। चेतावनी: अपेक्षित
सभी SPARC लक्ष्यों के लिए पुस्तकालय उपलब्ध नहीं हैं। आम तौर पर की सुविधाएं
मशीन के सामान्य सी कंपाइलर का उपयोग किया जाता है, लेकिन यह सीधे क्रॉस में नहीं किया जा सकता है-
संकलन उपयुक्त पुस्तकालय उपलब्ध कराने के लिए आपको अपनी व्यवस्था स्वयं करनी होगी
क्रॉस-संकलन के लिए कार्य। एम्बेडेड लक्ष्य स्पार्क-*-ऑउट और स्पार्लाइट-*-*
सॉफ़्टवेयर फ़्लोटिंग-पॉइंट समर्थन प्रदान करें।

-एमसॉफ्ट-फ्लोट आउटपुट फ़ाइल में कॉलिंग कन्वेंशन को बदलता है; इसलिए, यह केवल . है
उपयोगी अगर आप संकलित करते हैं सब इस विकल्प के साथ एक कार्यक्रम का। विशेष रूप से, आपको चाहिए
संकलन libgcc.a, पुस्तकालय जो जीसीसी के साथ आता है -एमसॉफ्ट-फ्लोट इसके लिए
काम करने के लिए.

-महार्ड-क्वाड-फ्लोट
क्वाड-वर्ड (लॉन्ग डबल) फ्लोटिंग-पॉइंट निर्देशों वाला आउटपुट जेनरेट करें।

-एमसॉफ्ट-क्वाड-फ्लोट
क्वाड-वर्ड (लॉन्ग डबल) फ्लोटिंग-पॉइंट के लिए लाइब्रेरी कॉल युक्त आउटपुट जेनरेट करें
निर्देश। जिन कार्यों को कहा जाता है वे स्पार्क एबीआई में निर्दिष्ट हैं। यह है
चूक।

इस लेखन के समय, कोई SPARC कार्यान्वयन नहीं है जिसके पास हार्डवेयर समर्थन है
क्वाड-वर्ड फ्लोटिंग-पॉइंट निर्देश। वे सभी में से एक के लिए एक जाल हैंडलर का आह्वान करते हैं
ये निर्देश, और फिर ट्रैप हैंडलर निर्देश के प्रभाव का अनुकरण करता है।
ट्रैप हैंडलर ओवरहेड के कारण, यह ABI लाइब्रेरी को कॉल करने की तुलना में बहुत धीमा है
दिनचर्या इस प्रकार -एमसॉफ्ट-क्वाड-फ्लोट विकल्प डिफ़ॉल्ट है।

-मनो-असंरेखित-युगल
-मुनसंरेखित-युगल
मान लें कि डबल्स में 8-बाइट संरेखण है। यह डिफ़ॉल्ट है।

- -मुनसंरेखित-युगल, जीसीसी मानता है कि डबल्स में 8-बाइट संरेखण केवल तभी होता है जब वे
किसी अन्य प्रकार में निहित हैं, या यदि उनके पास एक पूर्ण पता है। अन्यथा यह
मानता है कि उनके पास 4-बाइट संरेखण है। इस विकल्प को निर्दिष्ट करने से कुछ दुर्लभ से बचा जाता है
अन्य कंपाइलरों द्वारा उत्पन्न कोड के साथ संगतता समस्याएं। यह डिफ़ॉल्ट नहीं है
क्योंकि इसके परिणामस्वरूप प्रदर्शन हानि होती है, विशेष रूप से फ़्लोटिंग-पॉइंट कोड के लिए।

-मनो-तेज़-संरचनाएं
-mfaster-structs
- -mfaster-structs, संकलक मानता है कि संरचनाओं में 8-बाइट होना चाहिए
संरेखण। यह प्रतियों के लिए "ldd" और "std" निर्देशों के जोड़े के उपयोग को सक्षम बनाता है
संरचना असाइनमेंट में, दोगुने "एलडी" और "सेंट" जोड़े के स्थान पर। हालांकि
इस परिवर्तित संरेखण का उपयोग सीधे SPARC ABI का उल्लंघन करता है। इस प्रकार, यह इरादा है
केवल उन लक्ष्यों पर उपयोग के लिए जहां डेवलपर स्वीकार करता है कि उनका परिणामी कोड
सीधे एबीआई के नियमों के अनुरूप नहीं होगा।

-एमसीपीयू =सीपीयू_प्रकार
के लिए निर्देश सेट, रजिस्टर सेट और निर्देश शेड्यूलिंग पैरामीटर सेट करें
मशीन की तरह सीपीयू_प्रकार. के लिए समर्थित मान सीपीयू_प्रकार रहे v7, सरू, v8, सुपरस्पार्क,
हाइपरस्पार्क, लियोन, स्पार्क्लाइट, f930, f934, स्पार्क्लाइट86x, चिंगारी, टीएससी701, v9,
अल्ट्रास्पार्क, अल्ट्रास्पार्क3, नियगारा, नियाग्रा2, नियाग्रा3, तथा नियाग्रा4.

नेटिव सोलारिस और जीएनयू/लिनक्स टूलचेन भी मूल्य का समर्थन करते हैं देशी, जो चुनता है
होस्ट प्रोसेसर के लिए सर्वश्रेष्ठ आर्किटेक्चर विकल्प। -एमसीपीयू = देशी कोई प्रभाव नहीं पड़ता है अगर
GCC प्रोसेसर को नहीं पहचानता है।

डिफ़ॉल्ट निर्देश शेड्यूलिंग पैरामीटर का उपयोग उन मानों के लिए किया जाता है जो एक . का चयन करते हैं
वास्तुकला और कार्यान्वयन नहीं। य़े हैं v7, v8, स्पार्क्लाइट, चिंगारी, v9.

यहां प्रत्येक समर्थित आर्किटेक्चर और उनके समर्थित कार्यान्वयन की सूची दी गई है।

v7 सरू

v8 सुपरस्पार्क, हाइपरस्पार्क, लियोन

स्पार्क्लाइट
f930, f934, sparclite86x

चिंगारी
टीएससी701

v9 अल्ट्रास्पार्क, अल्ट्रास्पार्क 3, नियाग्रा, नियाग्रा 2, नियाग्रा 3, नियाग्रा 4

डिफ़ॉल्ट रूप से (जब तक कि अन्यथा कॉन्फ़िगर न किया गया हो), GCC के V7 संस्करण के लिए कोड उत्पन्न करता है
स्पार्क वास्तुकला। साथ में -एमसीपीयू = सरू, संकलक अतिरिक्त रूप से इसे अनुकूलित करता है
सरू CY7C602 चिप, जैसा कि SPARCStation/SPARCServer 3xx श्रृंखला में उपयोग किया जाता है। यह है
पुराने SPARCStation 1, 2, IPX आदि के लिए भी उपयुक्त है।

- -एमसीपीयू = वी 8, GCC, SPARC आर्किटेक्चर के V8 संस्करण के लिए कोड जनरेट करता है। NS
V7 कोड से केवल इतना अंतर है कि कंपाइलर पूर्णांक को गुणा करता है और
पूर्णांक विभाजित निर्देश जो SPARC-V8 में मौजूद हैं लेकिन SPARC-V7 में नहीं हैं। साथ में
-एमसीपीयू = सुपरस्पार्क, संकलक अतिरिक्त रूप से इसे सुपरस्पार्क चिप के लिए अनुकूलित करता है, जैसे
SPARCStation 10, 1000 और 2000 श्रृंखला में उपयोग किया जाता है।

- -एमसीपीयू=स्पार्क्लाइट, GCC, SPARC के SPARClite संस्करण के लिए कोड जनरेट करता है
वास्तुकला। यह पूर्णांक गुणा, पूर्णांक विभाजित चरण और स्कैन ("ffs") जोड़ता है
निर्देश जो SPARClite में मौजूद हैं लेकिन SPARC-V7 में नहीं। साथ में -एमसीपीयू = एफ930,
संकलक अतिरिक्त रूप से इसे Fujitsu MB86930 चिप के लिए अनुकूलित करता है, जो कि मूल है
SPARClite, बिना FPU के। साथ में -एमसीपीयू = एफ934, संकलक अतिरिक्त रूप से इसे अनुकूलित करता है
फुजित्सु एमबी86934 चिप, जो एफपीयू के साथ नवीनतम SPARClite है।

- -एमसीपीयू = स्पार्कलेट, जीसीसी स्पार्क के स्पार्कलेट संस्करण के लिए कोड उत्पन्न करता है
वास्तुकला। यह पूर्णांक गुणा, गुणा/संचय, पूर्णांक भाग जोड़ता है
चरण और स्कैन ("ffs") निर्देश जो SPARClet में मौजूद हैं लेकिन SPARC-V7 में नहीं। साथ में
-एमसीपीयू = टीएससी701, संकलक अतिरिक्त रूप से इसे TEMIC SPARClet चिप के लिए अनुकूलित करता है।

- -एमसीपीयू = वी 9, GCC, SPARC आर्किटेक्चर के V9 संस्करण के लिए कोड जेनरेट करता है। इस
64-बिट पूर्णांक और फ़्लोटिंग-पॉइंट मूव निर्देश, 3 अतिरिक्त फ़्लोटिंग-पॉइंट जोड़ता है
कंडीशन कोड रजिस्टर और कंडीशनल मूव निर्देश। साथ में -एमसीपीयू = अल्ट्रास्पार्क,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC I/II/IIIi चिप्स के लिए अनुकूलित करता है। साथ में
-एमसीपीयू = अल्ट्रास्पार्क3, संकलक अतिरिक्त रूप से इसे सन अल्ट्रास्पार्क के लिए अनुकूलित करता है
III/III+/IIIi/IIIi+/IV/IV+ चिप्स। साथ में -एमसीपीयू = नियाग्रा, संकलक अतिरिक्त रूप से
इसे Sun UltraSPARC T1 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा2, संकलक
इसके अतिरिक्त इसे Sun UltraSPARC T2 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा3,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC T3 चिप्स के लिए अनुकूलित करता है। साथ में -एमसीपीयू=नियाग्रा4,
संकलक अतिरिक्त रूप से इसे Sun UltraSPARC T4 चिप्स के लिए अनुकूलित करता है।

-मट्यून =सीपीयू_प्रकार
मशीन प्रकार के लिए निर्देश शेड्यूलिंग पैरामीटर सेट करें सीपीयू_प्रकार, लेकिन सेट न करें
निर्देश सेट या रजिस्टर सेट करें कि विकल्प -एमसीपीयू =सीपीयू_प्रकार होगा।

के लिए समान मान -एमसीपीयू =सीपीयू_प्रकार के लिए इस्तेमाल किया जा सकता है -मट्यून =सीपीयू_प्रकार, लेकिन केवल
उपयोगी मूल्य वे हैं जो एक विशेष सीपीयू कार्यान्वयन का चयन करते हैं। वे हैं
सरू, सुपरस्पार्क, हाइपरस्पार्क, लियोन, f930, f934, स्पार्क्लाइट86x, टीएससी701, अल्ट्रास्पार्क,
अल्ट्रास्पार्क3, नियगारा, नियाग्रा2, नियाग्रा3 और नियाग्रा4. देशी सोलारिस के साथ और
जीएनयू/लिनक्स टूलचेन, देशी भी इस्तेमाल किया जा सकता है.

-एमवी8प्लस
-मनो-वी8प्लस
- -एमवी8प्लस, GCC SPARC-V8+ ABI के लिए कोड जेनरेट करता है। V8 . से अंतर
ABI यह है कि वैश्विक और बाहरी रजिस्टरों को 64 बिट चौड़ा माना जाता है। यह सक्षम है
डिफ़ॉल्ट रूप से सोलारिस पर सभी SPARC-V32 प्रोसेसर के लिए 9-बिट मोड में।

-मविसो
-मनो-विज़
- -मविसो, जीसीसी कोड उत्पन्न करता है जो अल्ट्रास्पार्क विजुअल का लाभ उठाता है
निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -मनो-विज़.

-एमविस2
-मनो-विज़2
- -एमविस2, GCC कोड उत्पन्न करता है जो UltraSPARC के संस्करण 2.0 का लाभ उठाता है
दृश्य निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -एमविस2 एक सीपीयू को लक्षित करते समय कि
ऐसे निर्देशों का समर्थन करता है, जैसे कि UltraSPARC-III और बाद में। स्थापना -एमविस2 भी
सेट -मविसो.

-एमविस3
-मनो-विज़3
- -एमविस3, GCC कोड उत्पन्न करता है जो UltraSPARC के संस्करण 3.0 का लाभ उठाता है
दृश्य निर्देश सेट एक्सटेंशन। डिफ़ॉल्ट है -एमविस3 एक सीपीयू को लक्षित करते समय कि
ऐसे निर्देशों का समर्थन करता है, जैसे कि नियाग्रा-3 और बाद के संस्करण। स्थापना -एमविस3 भी सेट करता है
-एमविस2 और -मविसो.

-एमपीओपीसी
-मनो-पॉपसी
- -एमपीओपीसी, जीसीसी कोड उत्पन्न करता है जो अल्ट्रास्पार्क आबादी का लाभ उठाता है
गिनती निर्देश। डिफ़ॉल्ट है -एमपीओपीसी ऐसे सीपीयू को लक्षित करते समय जो इस तरह का समर्थन करता है
निर्देश, जैसे नियाग्रा -2 और बाद में।

-एमएफएमएएफ
-मनो-एफएमएफ़
- -एमएफएमएएफ, GCC कोड उत्पन्न करता है जो UltraSPARC फ़्यूज्ड मल्टीप्ली का लाभ उठाता है-
फ़्लोटिंग-पॉइंट एक्सटेंशन जोड़ें। डिफ़ॉल्ट है -एमएफएमएएफ एक सीपीयू को लक्षित करते समय कि
इस तरह के निर्देशों का समर्थन करता है, जैसे नियाग्रा -3 और बाद में।

-एमफिक्स-एटी697एफ
Atmel AT697F प्रोसेसर के एकल इरेटा के लिए प्रलेखित वैकल्पिक हल को सक्षम करें
(जो AT13E प्रोसेसर के इरेटा #697 से मेल खाती है)।

इन -m उपरोक्त के अतिरिक्त 9-बिट में SPARC-V64 प्रोसेसर पर विकल्प समर्थित हैं
वातावरण:

-एम 32
-एम 64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
32 बिट्स के लिए लंबा और सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक।

-एमसीमॉडल=कौन कौन से
कोड मॉडल को इनमें से किसी एक पर सेट करें

मेडलो
मध्यम/निम्न कोड मॉडल: 64-बिट पते, प्रोग्राम को निम्न 32 . में लिंक किया जाना चाहिए
स्मृति के टुकड़े। कार्यक्रमों को स्थिर या गतिशील रूप से जोड़ा जा सकता है।

मेडमिडी
मध्यम/मध्य कोड मॉडल: 64-बिट पते, कार्यक्रमों को निम्न में जोड़ा जाना चाहिए
मेमोरी के 44 बिट, टेक्स्ट और डेटा सेगमेंट का आकार 2GB से कम होना चाहिए और
डेटा खंड पाठ खंड के 2GB के भीतर स्थित होना चाहिए।

मेदानी
मध्यम/कहीं भी कोड मॉडल: 64-बिट पते, प्रोग्राम कहीं भी लिंक किए जा सकते हैं
मेमोरी में, टेक्स्ट और डेटा सेगमेंट का आकार और डेटा 2GB से कम होना चाहिए
खंड पाठ खंड के 2GB के भीतर स्थित होना चाहिए।

एंबमेडनी
एम्बेडेड सिस्टम के लिए मध्यम/कहीं भी कोड मॉडल: 64-बिट पते, टेक्स्ट
और डेटा खंड 2GB से कम आकार के होने चाहिए, दोनों मेमोरी में कहीं से भी शुरू होने चाहिए
(लिंक समय पर निर्धारित)। वैश्विक रजिस्टर %g4 डेटा के आधार की ओर इशारा करता है
खंड। कार्यक्रम स्थिर रूप से जुड़े हुए हैं और PIC समर्थित नहीं है।

-मेमरी-मॉडल =मेम-मॉडल
प्रोसेसर पर लागू मेमोरी मॉडल को इनमें से किसी एक पर सेट करें

चूक
प्रोसेसर और ऑपरेटिंग सिस्टम के लिए डिफ़ॉल्ट मेमोरी मॉडल।

आरएमओ आराम से स्मृति आदेश

पीएसओ आंशिक स्टोर आदेश

त्सो कुल स्टोर ऑर्डर

sc अनुक्रमिक संगति

ये मेमोरी मॉडल औपचारिक रूप से स्पार्क V9 आर्किटेक्चर के परिशिष्ट D में परिभाषित किए गए हैं
मैनुअल, जैसा कि प्रोसेसर के "PSTATE.MM" फ़ील्ड में सेट किया गया है।

-मस्टैक-पूर्वाग्रह
-मनो-स्टैक-पूर्वाग्रह
- -मस्टैक-पूर्वाग्रह, GCC मानता है कि स्टैक पॉइंटर, और फ़्रेम पॉइंटर यदि मौजूद है,
-2047 तक ऑफसेट होते हैं जिन्हें स्टैक फ्रेम संदर्भ बनाते समय वापस जोड़ा जाना चाहिए। इस
64-बिट मोड में डिफ़ॉल्ट है। अन्यथा, मान लें कि ऐसी कोई ऑफसेट मौजूद नहीं है।

एस पी यू ऑप्शंस

इन -m विकल्प SPU पर समर्थित हैं:

-मवार्न-रिलोक
-आतंक-स्थानांतरण
एसपीयू के लिए लोडर गतिशील स्थानांतरण को संभाल नहीं पाता है। डिफ़ॉल्ट रूप से, GCC एक देगा
त्रुटि जब यह कोड उत्पन्न करता है जिसके लिए गतिशील स्थानांतरण की आवश्यकता होती है। -मनो-त्रुटि-स्थानांतरण
त्रुटि अक्षम करता है, -मवार्न-रिलोक इसके बजाय एक चेतावनी उत्पन्न करेगा।

-एमसेफ-डीएमए
-मुंसेफ-डीएमए
निर्देश जो डीएमए की शुरुआत या परीक्षण पूरा करने के साथ पुन: क्रमित नहीं किए जाने चाहिए
एक्सेस की जा रही मेमोरी के लोड और स्टोर के संबंध में। उपयोगकर्ता आमतौर पर
अस्थिर कीवर्ड का उपयोग करके इस समस्या का समाधान करें, लेकिन इससे अक्षम कोड हो सकता है
उन जगहों पर जहां स्मृति नहीं बदलने के लिए जानी जाती है। स्मृति को चिह्नित करने के बजाय
अस्थिर हम डीएमए निर्देशों को संभावित रूप से सभी मेमोरी को प्रभावित करने वाले के रूप में मानते हैं। साथ में
-मुंसेफ-डीएमए मेमोरी एक्सेस की सुरक्षा के लिए उपयोगकर्ताओं को अस्थिर कीवर्ड का उपयोग करना चाहिए।

-एमब्रांच-संकेत
डिफ़ॉल्ट रूप से, जीसीसी पाइपलाइन स्टालों से बचने के लिए एक शाखा संकेत निर्देश उत्पन्न करेगा
हमेशा ली गई या शायद शाखाएँ लीं। 8 . के करीब एक संकेत उत्पन्न नहीं किया जाएगा
अपनी शाखा से दूर निर्देश। उन्हें अक्षम करने का कोई कारण नहीं है, सिवाय इसके कि
डिबगिंग उद्देश्यों, या किसी वस्तु को थोड़ा छोटा करने के लिए।

-एमएसस्मॉल-मेम
-मिलर्ज-मेम
डिफ़ॉल्ट रूप से, GCC यह मानकर कोड जनरेट करता है कि पते कभी भी 18 बिट से बड़े नहीं होते हैं।
- -मिलर्ज-मेम कोड उत्पन्न होता है जो एक पूर्ण 32-बिट पता मानता है।

-एमएसटीडीमेन
डिफ़ॉल्ट रूप से, GCC स्टार्टअप कोड के विरुद्ध लिंक करता है जो SPU-शैली के मुख्य कार्य को ग्रहण करता है
इंटरफ़ेस (जिसमें एक अपरंपरागत पैरामीटर सूची है)। साथ में -एमएसटीडीमेन, जीसीसी लिंक करेगा
स्टार्टअप कोड के खिलाफ आपका प्रोग्राम जो C99-शैली इंटरफ़ेस को "मुख्य" मानता है,
"argv" स्ट्रिंग्स की एक स्थानीय प्रति सहित।

-मफिक्स्ड-रेंज =रजिस्टर-रेंज
दिए गए रजिस्टर रेंज को फिक्स्ड रजिस्टर मानकर कोड जेनरेट करें। एक निश्चित रजिस्टर
वह है जिसे रजिस्टर आवंटक उपयोग नहीं कर सकता है। कर्नेल को संकलित करते समय यह उपयोगी है
कोड। एक रजिस्टर श्रेणी को डैश द्वारा अलग किए गए दो रजिस्टरों के रूप में निर्दिष्ट किया जाता है। विभिन्न
रजिस्टर श्रेणियों को अल्पविराम से अलग करके निर्दिष्ट किया जा सकता है।

-mea32
-mea64
यह मानते हुए कोड संकलित करें कि "__ea" के माध्यम से पहुँचा पीपीयू पता स्थान की ओर संकेत करता है
नामित पता स्थान योग्यता या तो 32 या 64 बिट चौड़ा है। डिफ़ॉल्ट 32 बिट है।
चूंकि यह एक एबीआई चेंजिंग विकल्प है, निष्पादन योग्य में सभी ऑब्जेक्ट कोड को संकलित किया जाना चाहिए
एक ही सेटिंग के साथ।

-मैड्रेस-स्पेस-रूपांतरण
-मनो-पता-स्थान-रूपांतरण
"__ea" एड्रेस स्पेस को जेनेरिक एड्रेस के सुपरसेट के रूप में मानने/अस्वीकार करने की अनुमति दें
स्थान। यह "__ea" और सामान्य सूचक के साथ-साथ . के बीच स्पष्ट प्रकार के कास्ट को सक्षम बनाता है
जेनेरिक पॉइंटर्स का "__ea" पॉइंटर्स में निहित रूपांतरण। अनुमति देने के लिए डिफ़ॉल्ट है
पता स्थान सूचक रूपांतरण।

-mcache-आकार =कैचे आकार
यह विकल्प libgcc के उस संस्करण को नियंत्रित करता है जिसे संकलक एक निष्पादन योग्य से लिंक करता है
और "__ea" पते में चरों तक पहुँचने के लिए सॉफ़्टवेयर-प्रबंधित कैश का चयन करता है
एक विशेष कैश आकार के साथ स्थान। के लिए संभावित विकल्प कैचे आकार रहे 8, 16, 32, 64
और 128. डिफ़ॉल्ट कैश आकार 64KB है।

-परमाणु-अद्यतन
-मनो-परमाणु-अद्यतन
यह विकल्प libgcc के उस संस्करण को नियंत्रित करता है जिसे संकलक एक निष्पादन योग्य से लिंक करता है
और चुनता है कि क्या पीपीयू-साइड वेरिएबल्स के सॉफ़्टवेयर-प्रबंधित कैश में परमाणु अद्यतन हैं
उपयोग किया जाता है। यदि आप परमाणु अद्यतन का उपयोग करते हैं, तो एसपीयू कोड से पीपीयू चर में परिवर्तन का उपयोग कर
एड्रेस स्पेस क्वालिफायर नामित "__ea" अन्य पीपीयू में बदलाव में हस्तक्षेप नहीं करेगा
पीपीयू कोड से एक ही कैश लाइन में रहने वाले चर। यदि आप परमाणु का उपयोग नहीं करते हैं
अद्यतन, ऐसा हस्तक्षेप हो सकता है; हालाँकि, कैशे लाइनों को वापस लिखना अधिक होगा
कुशल। डिफ़ॉल्ट व्यवहार परमाणु अद्यतनों का उपयोग करना है।

-mdual-nops
-mdual-nops =n
डिफ़ॉल्ट रूप से, जीसीसी दोहरे मुद्दे को बढ़ाने के लिए एनओपी सम्मिलित करेगा जब वह इसके बढ़ने की अपेक्षा करता है
प्रदर्शन. n 0 से 10 तक का मान हो सकता है। एक छोटा n कम एनओपी डालेगा। 10
डिफ़ॉल्ट है, 0 के समान है -मनो-दोहरी-एनओपीएस. के साथ अक्षम -ओस.

-महिंट-मैक्स-नोप्स=n
शाखा संकेत के लिए सम्मिलित करने के लिए एनओपी की अधिकतम संख्या। एक शाखा संकेत कम से कम 8 . होना चाहिए
उस शाखा से दूर निर्देश जो इसे प्रभावित कर रहा है। जीसीसी तक डालेगा n नोप्स टू
इसे लागू करें, अन्यथा यह शाखा संकेत उत्पन्न नहीं करेगा।

-महिंट-अधिकतम-दूरी=n
शाखा संकेत निर्देश का एन्कोडिंग संकेत को 256 . के भीतर सीमित करता है
उस शाखा के निर्देश जो इसे प्रभावी कर रहा है। डिफ़ॉल्ट रूप से, GCC सुनिश्चित करता है कि यह अंदर है
125.

-एमसेफ-संकेत
एक हार्डवेयर बग के आसपास काम करें जो एसपीयू को अनिश्चित काल के लिए ठप कर देता है। डिफ़ॉल्ट रूप से, जीसीसी
यह सुनिश्चित करने के लिए कि यह स्टाल नहीं होगा, "hbrp" निर्देश सम्मिलित करेगा।

ऑप्शंस एसटी प्रणाली V

ये अतिरिक्त विकल्प सिस्टम V रिलीज़ 4 पर अन्य के साथ संगतता के लिए उपलब्ध हैं
उन प्रणालियों पर संकलक:

-G एक साझा वस्तु बनाएँ। ये सिफ़ारिश की जाती है कि -प्रतीकात्मक or कमरा साझा की जगह इस्तेमाल किया जाए।

-क्यूयू ".ident" असेंबलर में, कंपाइलर द्वारा उपयोग किए जाने वाले प्रत्येक टूल के संस्करणों की पहचान करें
आउटपुट में निर्देश।

-क्यूएन आउटपुट फ़ाइल में ".ident" निर्देश जोड़ने से बचना चाहिए (यह डिफ़ॉल्ट है)।

-वाईपी,dirs
निर्देशिका खोजें dirs, और कोई अन्य नहीं, के साथ निर्दिष्ट पुस्तकालयों के लिए -l.

-यम,दीर
निर्देशिका में देखें दीर M4 प्रीप्रोसेसर खोजने के लिए। असेंबलर इसका उपयोग करता है
विकल्प.

टाइल-जीएक्स ऑप्शंस

इन -m विकल्प TILE-Gx पर समर्थित हैं:

-एमसीपीयू =नाम
लक्षित किए जाने वाले CPU के प्रकार का चयन करता है। वर्तमान में एकमात्र समर्थित प्रकार है टाइलगक्स.

-एम 32
-एम 64
32-बिट या 64-बिट वातावरण के लिए कोड जनरेट करें। 32-बिट वातावरण int सेट करता है,
लंबा, और 32 बिट्स के लिए सूचक। 64-बिट वातावरण int को 32 बिट्स और लंबे समय तक सेट करता है और
64 बिट्स के लिए सूचक।

टाइलप्रो ऑप्शंस

इन -m विकल्प TILEPro पर समर्थित हैं:

-एमसीपीयू =नाम
लक्षित किए जाने वाले CPU के प्रकार का चयन करता है। वर्तमान में एकमात्र समर्थित प्रकार है टाइलप्रो.

-एम 32
32-बिट वातावरण के लिए कोड जेनरेट करें, जो इंट, लॉन्ग और पॉइंटर को 32 बिट्स पर सेट करता है।
यह एकमात्र समर्थित व्यवहार है इसलिए ध्वज को अनिवार्य रूप से अनदेखा किया जाता है।

V850 ऑप्शंस

इन -m विकल्प V850 कार्यान्वयन के लिए परिभाषित किए गए हैं:

-मलॉन्ग-कॉल
-मनो-लॉन्ग-कॉल
सभी कॉलों को दूर (निकट) मानें। यदि कॉलों को दूर माना जाता है, तो
कंपाइलर हमेशा फंक्शन एड्रेस को एक रजिस्टर में लोड करेगा, और कॉल इनडायरेक्ट
सूचक के माध्यम से।

-मनो-एपी
-मेप
समान इंडेक्स पॉइंटर 4 या अधिक का उपयोग करने वाले मूल ब्लॉक को ऑप्टिमाइज़ (ऑप्टिमाइज़ करें) न करें
पॉइंटर को "ईपी" रजिस्टर में कॉपी करने का समय, और छोटे "sld" और "sst" का उपयोग करें
निर्देश। NS -मेप यदि आप ऑप्टिमाइज़ करते हैं तो विकल्प डिफ़ॉल्ट रूप से चालू रहता है।

-मनो-प्रोलॉग-फ़ंक्शन
-मप्रोलॉग-फ़ंक्शन
प्रस्तावना में रजिस्टरों को सहेजने और पुनर्स्थापित करने के लिए बाहरी कार्यों का उपयोग (उपयोग करें) न करें
और एक समारोह का उपसंहार। बाहरी कार्य धीमे हैं, लेकिन कम कोड का उपयोग करें
अंतरिक्ष यदि एक से अधिक फ़ंक्शन समान संख्या में रजिस्टरों को सहेजते हैं। NS
-मप्रोलॉग-फ़ंक्शन यदि आप ऑप्टिमाइज़ करते हैं तो विकल्प डिफ़ॉल्ट रूप से चालू रहता है।

-एमस्पेस
कोड को यथासंभव छोटा बनाने का प्रयास करें। वर्तमान में, यह सिर्फ चालू करता है -मेप
और -मप्रोलॉग-फ़ंक्शन विकल्प.

-एमटीडीए=n
स्थिर या वैश्विक चर रखें जिनका आकार है n छोटे डेटा क्षेत्र में बाइट्स या उससे कम
वह रजिस्टर "ईपी" इंगित करता है। छोटा डेटा क्षेत्र कुल 256 बाइट्स तक पकड़ सकता है
(बाइट संदर्भों के लिए 128 बाइट्स)।

-एमएसडीए=n
स्थिर या वैश्विक चर रखें जिनका आकार है n छोटे डेटा क्षेत्र में बाइट्स या उससे कम
वह रजिस्टर "जीपी" इंगित करता है। छोटा डेटा क्षेत्र 64 किलोबाइट तक पकड़ सकता है।

-मज़्दा =n
स्थिर या वैश्विक चर रखें जिनका आकार है n पहले 32 . में बाइट्स या उससे कम
किलोबाइट मेमोरी।

-एमवी850
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850 है।

-एमबिग-स्विच
बड़े स्विच टेबल के लिए उपयुक्त कोड जेनरेट करें। इस विकल्प का प्रयोग तभी करें जब
असेंबलर/लिंकर स्विच टेबल के भीतर सीमा से बाहर शाखाओं के बारे में शिकायत करते हैं।

-मैप-regs
यह विकल्प संकलक द्वारा उत्पन्न कोड में r2 और r5 का उपयोग करने का कारण बनेगा।
यह सेटिंग डिफ़ॉल्ट है।

-मनो-ऐप-regs
यह विकल्प r2 और r5 को निश्चित रजिस्टरों के रूप में मानने का कारण बनेगा।

-एमवी850ई2वी3
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E2V3 है। प्रीप्रोसेसर स्थिरांक
__v850e2v3__ परिभाषित किया जाएगा यदि इस विकल्प का उपयोग किया जाता है।

-एमवी850ई2
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E2 है। प्रीप्रोसेसर स्थिरांक
__v850e2__ परिभाषित किया जाएगा यदि इस विकल्प का उपयोग किया जाता है।

-एमवी850ई1
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E1 है। प्रीप्रोसेसर स्थिरांक
__v850e1__ और __v850e__ परिभाषित किया जाएगा यदि इस विकल्प का उपयोग किया जाता है।

-mv850es
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850ES है। यह के लिए एक उपनाम है -एमवी850ई1
विकल्प.

-एमवी850ई
निर्दिष्ट करें कि लक्ष्य प्रोसेसर V850E है। प्रीप्रोसेसर स्थिरांक __v850e__
परिभाषित किया जाएगा यदि इस विकल्प का उपयोग किया जाता है।

यदि न तो -एमवी850-एमवी850ई-एमवी850ई1-एमवी850ई2-एमवी850ई2वी3 परिभाषित किया गया हैं
तब एक डिफ़ॉल्ट लक्ष्य प्रोसेसर चुना जाएगा और प्रासंगिक __v850*__ पूर्वप्रक्रमक
स्थिरांक परिभाषित किया जाएगा।

प्रीप्रोसेसर स्थिरांक __v850 और __v851__ हमेशा परिभाषित किया जाता है, चाहे जो भी हो
प्रोसेसर संस्करण लक्ष्य है।

-mअक्षम-कॉलट
यह विकल्प v850e, v850e1 के लिए CALLT निर्देश की पीढ़ी को दबा देगा।
v850e2 और v850e2v3 v850 आर्किटेक्चर के फ्लेवर। डिफ़ॉल्ट है
-मनो-अक्षम-कॉल्ट जो CALLT निर्देश का उपयोग करने की अनुमति देता है।

वैक्स ऑप्शंस

इन -m विकल्पों को VAX के लिए परिभाषित किया गया है:

-मुनिक्स
कुछ कूद निर्देश ("aobleq" और इसी तरह) आउटपुट न करें कि यूनिक्स असेंबलर
क्योंकि वैक्स लंबी रेंज में हैंडल नहीं कर सकता है।

-एमजीएनयू
उन कूद निर्देशों को आउटपुट करें, इस धारणा पर कि आप के साथ इकट्ठा होंगे
जीएनयू असेंबलर।

-एमजी डी-फॉर्मेट के बजाय जी-फॉर्मेट फ्लोटिंग-पॉइंट नंबरों के लिए आउटपुट कोड।

वीएक्सवर्क्स ऑप्शंस

इस खंड के विकल्प सभी VxWorks लक्ष्यों के लिए परिभाषित हैं। के लिए विशिष्ट विकल्प
लक्ष्य हार्डवेयर उस लक्ष्य के लिए अन्य विकल्पों के साथ सूचीबद्ध हैं।

-एमआरटीपी
GCC VxWorks कर्नेल और रीयल टाइम प्रोसेस (RTP) दोनों के लिए कोड जेनरेट कर सकता है। इस
विकल्प पूर्व से बाद में स्विच करता है। यह प्रीप्रोसेसर मैक्रो को भी परिभाषित करता है
"__आरटीपी__"।

-गैर स्थैतिक
स्थिर पुस्तकालयों के बजाय साझा पुस्तकालयों के खिलाफ एक आरटीपी निष्पादन योग्य लिंक करें। NS
विकल्पों स्थैतिक और कमरा साझा आरटीपी के लिए भी इस्तेमाल किया जा सकता है; स्थैतिक डिफ़ॉल्ट है।

-बस्टेटिक
-बडायनामिक
ये विकल्प लिंकर को दिए जाते हैं। उन्हें संगतता के लिए परिभाषित किया गया है
दीब।

-Xbind-आलसी
फ़ंक्शन कॉल की आलसी बाइंडिंग सक्षम करें। यह विकल्प के बराबर है -डब्ल्यूएल, -जेड, अब और यह
Diab के साथ संगतता के लिए परिभाषित।

-Xbind-अब
फ़ंक्शन कॉल की आलसी बाध्यकारी अक्षम करें। यह विकल्प डिफ़ॉल्ट है और इसके लिए परिभाषित किया गया है
डायब के साथ संगतता।

x86-64 ऑप्शंस

ये के तहत सूचीबद्ध हैं

तूफानी16 ऑप्शंस

इन विकल्पों को Xstormy16 के लिए परिभाषित किया गया है:

-मसिम
सिम्युलेटर के लिए उपयुक्त स्टार्टअप फ़ाइलें और लिंकर स्क्रिप्ट चुनें।

Xtensa ऑप्शंस

ये विकल्प Xtensa लक्ष्यों के लिए समर्थित हैं:

-एमकॉन्स्ट16
-मनो-कॉन्स्ट 16
स्थिर मान लोड करने के लिए "CONST16" निर्देशों का उपयोग सक्षम या अक्षम करें। NS
"CONST16" निर्देश वर्तमान में Tensilica से एक मानक विकल्प नहीं है। कब
सक्षम, "CONST16" निर्देश हमेशा मानक "L32R" के स्थान पर उपयोग किए जाते हैं
निर्देश। "CONST16" का उपयोग डिफ़ॉल्ट रूप से तभी सक्षम होता है जब "L32R"
निर्देश उपलब्ध नहीं है।

-मफ्यूज्ड-मैड
-मनो-फ्यूज्ड-मैड
में जुड़े हुए गुणा/जोड़ें और गुणा/घटाव निर्देशों के उपयोग को सक्षम या अक्षम करें
फ्लोटिंग-पॉइंट विकल्प। यदि फ़्लोटिंग-पॉइंट विकल्प भी नहीं है तो इसका कोई प्रभाव नहीं पड़ता है
सक्षम। फ़्यूज्ड गुणा/जोड़ें और गुणा/घटाव निर्देशों को अक्षम करने से
कंपाइलर गुणा करने और जोड़ने/घटाने के संचालन के लिए अलग-अलग निर्देशों का उपयोग करने के लिए।
यह कुछ मामलों में वांछनीय हो सकता है जहां सख्त आईईईई 754-अनुपालन परिणाम हैं
आवश्यक: फ़्यूज्ड गुणा जोड़ने/घटाने के निर्देश मध्यवर्ती को गोल नहीं करते हैं
परिणाम, जिससे परिणाम उत्पन्न होते हैं अधिक द्वारा निर्दिष्ट की तुलना में परिशुद्धता के बिट्स
आईईईई मानक। फ़्यूज़ किए गए गुणा जोड़ें/घटाना निर्देशों को अक्षम करना यह भी सुनिश्चित करता है कि
प्रोग्राम आउटपुट गुणा करने की कंपाइलर की क्षमता के प्रति संवेदनशील नहीं है और
संचालन जोड़ें / घटाएं।

-mserialize-अस्थिर
-मनो-क्रमबद्ध-अस्थिर
जब यह विकल्प सक्षम होता है, तो GCC "अस्थिर" मेमोरी से पहले "MEMW" निर्देश सम्मिलित करता है
अनुक्रमिक स्थिरता की गारंटी के संदर्भ। डिफ़ॉल्ट है -mserialize-अस्थिर.
उपयोग -मनो-क्रमबद्ध-अस्थिर "एमईएमडब्ल्यू" निर्देशों को छोड़ने के लिए।

-मफोर्स-नो-पिक
लक्ष्य के लिए, जैसे GNU/Linux, जहाँ सभी उपयोगकर्ता-मोड Xtensa कोड की स्थिति होनी चाहिए-
स्वतंत्र कोड (PIC), यह विकल्प कर्नेल कोड को संकलित करने के लिए PIC को अक्षम करता है।

-mtext-अनुभाग-शाब्दिक
-मनो-पाठ-अनुभाग-शाब्दिक
शाब्दिक पूल के उपचार को नियंत्रित करें। डिफ़ॉल्ट है -मनो-पाठ-अनुभाग-शाब्दिक,
जो लिटरल को आउटपुट फाइल में एक अलग सेक्शन में रखता है। यह अनुमति देता है
डेटा रैम/रोम में रखा जाने वाला शाब्दिक पूल, और यह लिंकर को गठबंधन करने की भी अनुमति देता है
निरर्थक शाब्दिकों को हटाने और कोड में सुधार करने के लिए अलग-अलग ऑब्जेक्ट फ़ाइलों से शाब्दिक पूल
आकार। साथ में -mtext-अनुभाग-शाब्दिक, शाब्दिक पाठ अनुभाग में परस्पर जुड़े हुए हैं
ताकि उन्हें उनके संदर्भों के यथासंभव निकट रखा जा सके। यह आवश्यक हो सकता है
बड़ी असेंबली फ़ाइलों के लिए।

-mलक्ष्य-संरेखण
-मनो-लक्ष्य-संरेखण
जब यह विकल्प सक्षम होता है, तो जीसीसी असेंबलर को स्वचालित रूप से संरेखित करने का निर्देश देता है
कुछ कोड घनत्व की कीमत पर शाखा दंड को कम करने के निर्देश। NS
असेंबलर शाखा लक्ष्यों को संरेखित करने के लिए घनत्व निर्देशों को चौड़ा करने का प्रयास करता है और
कॉल निर्देशों के बाद निर्देश। यदि पर्याप्त पूर्ववर्ती सुरक्षित नहीं हैं
लक्ष्य को संरेखित करने के लिए घनत्व निर्देश, कोई चौड़ीकरण नहीं किया जाएगा। डिफ़ॉल्ट है
-mलक्ष्य-संरेखण. ये विकल्प स्वत: संरेखित के उपचार को प्रभावित नहीं करते हैं
"लूप" जैसे निर्देश, जो असेंबलर हमेशा संरेखित करेगा, या तो चौड़ा करके
घनत्व निर्देश या नो-ऑप निर्देश सम्मिलित करके।

-मलॉन्गकॉल्स
-मनो-लॉन्गकॉल्स
जब यह विकल्प सक्षम होता है, तो जीसीसी असेंबलर को सीधे कॉल का अनुवाद करने का निर्देश देता है
अप्रत्यक्ष कॉल जब तक यह निर्धारित नहीं कर सकता कि प्रत्यक्ष कॉल का लक्ष्य में है
कॉल निर्देश द्वारा अनुमत सीमा। यह अनुवाद आमतौर पर कॉल करने के लिए होता है
अन्य स्रोत फ़ाइलों में कार्य करता है। विशेष रूप से, असेंबलर प्रत्यक्ष का अनुवाद करता है
"कॉल" निर्देश को "L32R" में और उसके बाद "CALLX" निर्देश में। डिफ़ॉल्ट है
-मनो-लॉन्गकॉल्स. इस विकल्प का उपयोग उन कार्यक्रमों में किया जाना चाहिए जहां कॉल लक्ष्य कर सकते हैं
संभावित रूप से सीमा से बाहर हो। यह विकल्प असेंबलर में लागू किया गया है, न कि
कंपाइलर, इसलिए जीसीसी द्वारा उत्पन्न असेंबली कोड अभी भी प्रत्यक्ष कॉल दिखाएगा
निर्देश --- वास्तविक निर्देश देखने के लिए अलग किए गए ऑब्जेक्ट कोड को देखें।
ध्यान दें कि असेंबलर प्रत्येक क्रॉस-फ़ाइल कॉल के लिए अप्रत्यक्ष कॉल का उपयोग करेगा, न कि केवल
जो वास्तव में सीमा से बाहर होंगे।

जेड सीरीज ऑप्शंस

ये के तहत सूचीबद्ध हैं

ऑप्शंस एसटी कोड पीढ़ी कन्वेंशनों
ये मशीन-स्वतंत्र विकल्प कोड में प्रयुक्त इंटरफ़ेस सम्मेलनों को नियंत्रित करते हैं
पीढ़ी।

उनमें से अधिकांश के सकारात्मक और नकारात्मक दोनों रूप हैं; का नकारात्मक रूप -फ्फू होगा
-फनो-फू. नीचे दी गई तालिका में, केवल एक प्रपत्र सूचीबद्ध है --- वह जो नहीं है
चूक जाना। आप या तो हटाकर दूसरे फॉर्म का पता लगा सकते हैं नहीं- या इसे जोड़ रहे हैं।

-फबाउंड्स-चेक
इसका समर्थन करने वाले सामने के सिरों के लिए, यह जांचने के लिए अतिरिक्त कोड उत्पन्न करें कि क्या सूचकांकों का उपयोग किया जाता है
एक्सेस सरणियाँ घोषित सीमा के भीतर हैं। यह वर्तमान में केवल द्वारा समर्थित है
जावा और फोरट्रान सामने समाप्त होता है, जहां यह विकल्प सही और गलत पर डिफ़ॉल्ट होता है
क्रमशः.

-फ्ट्रैपवी
यह विकल्प जोड़, घटाव पर हस्ताक्षरित अतिप्रवाह के लिए ट्रैप उत्पन्न करता है,
गुणन संचालन।

-fwrapv
यह विकल्प संकलक को यह मानने का निर्देश देता है कि हस्ताक्षरित अंकगणितीय अतिप्रवाह
इसके अलावा, घटाव और गुणा दो-पूरक का उपयोग करके चारों ओर लपेटता है
प्रतिनिधित्व। यह ध्वज कुछ अनुकूलन सक्षम करता है और दूसरों को अक्षम करता है। इस
विकल्प डिफ़ॉल्ट रूप से जावा फ्रंट एंड के लिए सक्षम है, जैसा कि जावा भाषा द्वारा आवश्यक है
विनिर्देश।

अपवाद
अपवाद हैंडलिंग सक्षम करें। अपवादों को प्रचारित करने के लिए आवश्यक अतिरिक्त कोड उत्पन्न करता है। के लिये
कुछ लक्ष्य, इसका मतलब है कि जीसीसी सभी के लिए फ्रेम खोलना जानकारी उत्पन्न करेगा
फ़ंक्शन, जो महत्वपूर्ण डेटा आकार ओवरहेड उत्पन्न कर सकते हैं, हालांकि यह नहीं करता है
निष्पादन को प्रभावित करते हैं। यदि आप इस विकल्प को निर्दिष्ट नहीं करते हैं, तो GCC इसे डिफ़ॉल्ट रूप से सक्षम कर देगा
सी ++ जैसी भाषाओं के लिए जिन्हें आम तौर पर अपवाद प्रबंधन की आवश्यकता होती है, और इसे अक्षम करें
सी जैसी भाषाएं जिन्हें सामान्य रूप से इसकी आवश्यकता नहीं होती है। हालाँकि, आपको सक्षम करने की आवश्यकता हो सकती है
सी कोड संकलित करते समय यह विकल्प जिसे अपवाद के साथ ठीक से इंटरऑपरेट करने की आवश्यकता होती है
सी ++ में लिखे गए हैंडलर। यदि आप हैं तो आप इस विकल्प को अक्षम भी कर सकते हैं
पुराने C++ प्रोग्रामों को संकलित करना जो अपवाद हैंडलिंग का उपयोग नहीं करते हैं।

-फॉन-कॉल-अपवाद
कोड उत्पन्न करें जो ट्रैपिंग निर्देशों को अपवादों को फेंकने की अनुमति देता है। ध्यान दें कि यह
प्लेटफ़ॉर्म-विशिष्ट रनटाइम समर्थन की आवश्यकता होती है जो हर जगह मौजूद नहीं होता है। इसके अलावा,
यह केवल अनुमति देता है पकडना अपवादों को फेंकने के निर्देश, अर्थात् स्मृति संदर्भ या
फ्लोटिंग-पॉइंट निर्देश। यह अपवादों को मनमाने ढंग से फेंकने की अनुमति नहीं देता है
सिग्नल हैंडलर जैसे "SIGALRM"।

-फनविंड-टेबल
के समान अपवाद, सिवाय इसके कि यह किसी भी आवश्यक स्थिर डेटा को उत्पन्न करेगा, लेकिन
किसी अन्य तरीके से जनरेट किए गए कोड को प्रभावित नहीं करेगा। आप सामान्य रूप से सक्षम नहीं होंगे
इस विकल्प; इसके बजाय, एक भाषा संसाधक जिसे इस प्रबंधन की आवश्यकता होती है, वह इसे चालू कर देगा
आपकी ओर से।

-फैसिंक्रोनस-अनविंड-टेबल्स
लक्ष्य मशीन द्वारा समर्थित होने पर, बौना2 प्रारूप में खोलना तालिका उत्पन्न करें। तालिका है
प्रत्येक निर्देश सीमा पर सटीक, इसलिए इसका उपयोग अनइंडिंग स्टैक के लिए किया जा सकता है
अतुल्यकालिक घटनाएँ (जैसे डिबगर या कचरा संग्रहकर्ता)।

-एफपीसीसी-स्ट्रक्चर-रिटर्न
स्मृति में "लघु" "संरचना" और "संघ" मान लौटाएं, जैसे कि लंबे समय तक, बजाय in
रजिस्टर यह सम्मेलन कम कुशल है, लेकिन इसे अनुमति देने का लाभ है
जीसीसी-संकलित फाइलों और अन्य कंपाइलरों के साथ संकलित फाइलों के बीच अंतःक्रियात्मकता,
विशेष रूप से पोर्टेबल सी कंपाइलर (पीसीसी)।

स्मृति में संरचनाओं को वापस करने के लिए सटीक सम्मेलन लक्ष्य पर निर्भर करता है
कॉन्फ़िगरेशन मैक्रोज़।

लघु संरचनाएं और संघ वे हैं जिनका आकार और संरेखण कुछ से मेल खाता है
पूर्णांक प्रकार।

चेतावनी: के साथ संकलित कोड -एफपीसीसी-स्ट्रक्चर-रिटर्न स्विच बाइनरी संगत नहीं है
के साथ संकलित कोड के साथ -फ्रेग-स्ट्रक्चर-रिटर्न स्विच। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फ्रेग-स्ट्रक्चर-रिटर्न
जब संभव हो तो रजिस्टरों में "संरचना" और "संघ" मान लौटाएं। यह अधिक कुशल है
की तुलना में छोटी संरचनाओं के लिए -एफपीसीसी-स्ट्रक्चर-रिटर्न.

यदि आप न तो निर्दिष्ट करते हैं -एफपीसीसी-स्ट्रक्चर-रिटर्न-फ्रेग-स्ट्रक्चर-रिटर्न, जीसीसी डिफॉल्ट करता है
जो भी सम्मेलन लक्ष्य के लिए मानक है। यदि कोई मानक सम्मेलन नहीं है,
GCC डिफ़ॉल्ट करने के लिए -एफपीसीसी-स्ट्रक्चर-रिटर्न, उन लक्ष्यों को छोड़कर जहां जीसीसी प्रमुख है
संकलक। उन मामलों में, हम मानक चुन सकते हैं, और हमने अधिक कुशल चुना
रजिस्टर वापसी विकल्प।

चेतावनी: के साथ संकलित कोड -फ्रेग-स्ट्रक्चर-रिटर्न स्विच बाइनरी संगत नहीं है
के साथ संकलित कोड के साथ -एफपीसीसी-स्ट्रक्चर-रिटर्न स्विच। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-एनम्स
एक "एनम" प्रकार के लिए केवल उतने ही बाइट्स आवंटित करें जितने की घोषित सीमा के लिए आवश्यक है
संभावित मान। विशेष रूप से, "एनम" प्रकार सबसे छोटे के बराबर होगा
पूर्णांक प्रकार जिसमें पर्याप्त जगह हो।

चेतावनी: la -फशॉर्ट-एनम्स स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-डबल
"डबल" के लिए "फ्लोट" के समान आकार का उपयोग करें।

चेतावनी: la -फशॉर्ट-डबल स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फशॉर्ट-वचार
के लिए अंतर्निहित प्रकार को ओवरराइड करें wchar_t करने के लिए हो सकता है कम अहस्ताक्षरित int के स्थान पर
लक्ष्य के लिए डिफ़ॉल्ट। यह विकल्प प्रोग्राम को चलाने के लिए उपयोगी है
वाइन।

चेतावनी: la -फशॉर्ट-वचार स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। एक गैर के अनुरूप करने के लिए इसका इस्तेमाल करें
डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस।

-फनो-कॉमन
सी कोड में, गैर-आरंभिक वैश्विक चर के प्लेसमेंट को नियंत्रित करता है। यूनिक्स सी संकलक
पारंपरिक रूप से इस तरह के चर की कई परिभाषाओं को अलग-अलग में अनुमति दी है
एक सामान्य ब्लॉक में चर रखकर संकलन इकाइयाँ। यह व्यवहार है
इसके द्वारा निर्दिष्ट आम, और अधिकांश लक्ष्यों पर GCC के लिए डिफ़ॉल्ट है। दूसरी ओर,
आईएसओ सी द्वारा इस व्यवहार की आवश्यकता नहीं है, और कुछ लक्ष्यों पर गति या कोड हो सकता है
परिवर्तनीय संदर्भों पर आकार जुर्माना। NS -फनो-कॉमन विकल्प निर्दिष्ट करता है कि
कंपाइलर को ऑब्जेक्ट के डेटा सेक्शन में गैर-आरंभिक वैश्विक चर रखना चाहिए
फ़ाइल, उन्हें सामान्य ब्लॉक के रूप में उत्पन्न करने के बजाय। इसका प्रभाव यह होता है कि यदि
एक ही चर घोषित किया गया है ("बाहरी" के बिना) दो अलग-अलग संकलनों में, आप करेंगे
जब आप उन्हें लिंक करते हैं तो एक बहु-परिभाषा त्रुटि प्राप्त करें। इस मामले में, आपको संकलन करना होगा
साथ में आम बजाय। के साथ संकलन -फनो-कॉमन उन लक्ष्यों पर उपयोगी है जिनके लिए यह
बेहतर प्रदर्शन प्रदान करता है, या यदि आप यह सत्यापित करना चाहते हैं कि कार्यक्रम काम करेगा
अन्य प्रणालियाँ जो हमेशा इस तरह से अप्रारंभीकृत चर घोषणाओं का इलाज करती हैं।

-फनो-पहचान
पर ध्यान न दें #पहचान निर्देश.

-फिनहिबिट-आकार-निर्देश
".size" असेंबलर निर्देश, या कुछ और जो परेशानी का कारण बनता है, आउटपुट न करें
यदि फ़ंक्शन बीच में विभाजित है, और दो हिस्सों को दूर स्थानों पर रखा गया है
स्मृति के अलावा। संकलन करते समय इस विकल्प का उपयोग किया जाता है सीआरटीस्टफ.सी; आपको आवश्यकता नहीं होनी चाहिए
इसे किसी और चीज के लिए इस्तेमाल करने के लिए।

-fverbose-asm
इसे और अधिक बनाने के लिए जनरेटेड असेंबली कोड में अतिरिक्त कमेंट्री जानकारी डालें
पढ़ने योग्य यह विकल्प आम तौर पर केवल उन लोगों के लिए उपयोगी होता है जिन्हें वास्तव में पढ़ने की आवश्यकता होती है
जनरेट किया गया असेंबली कोड (शायद कंपाइलर को डिबग करते समय)।

-fno-verbose-asm, डिफ़ॉल्ट, अतिरिक्त जानकारी को छोड़े जाने का कारण बनता है और है
दो असेंबलर फ़ाइलों की तुलना करते समय उपयोगी।

-फ़्रेकॉर्ड-जीसीसी-स्विच
यह स्विच कमांड लाइन का कारण बनता है जिसका उपयोग कंपाइलर को होने के लिए आमंत्रित करने के लिए किया गया था
बनाई जा रही ऑब्जेक्ट फ़ाइल में रिकॉर्ड किया गया है। यह स्विच केवल लागू किया गया है
कुछ लक्ष्यों पर और रिकॉर्डिंग का सटीक प्रारूप लक्ष्य और बाइनरी फ़ाइल स्वरूप है
निर्भर है, लेकिन यह आमतौर पर ASCII टेक्स्ट वाले सेक्शन का रूप ले लेता है। इस
स्विच किससे संबंधित है? -fverbose-asm स्विच करें, लेकिन वह स्विच केवल रिकॉर्ड करता है
असेंबलर आउटपुट फ़ाइल में टिप्पणियों के रूप में जानकारी, इसलिए यह कभी भी वस्तु तक नहीं पहुंचती है
फ़ाइल। यह सभी देखें -ग्रेकॉर्ड-जीसीसी-स्विच कंपाइलर विकल्पों को संग्रहीत करने के दूसरे तरीके के लिए
वस्तु फ़ाइल।

-एफपीआईसी
साझा पुस्तकालय में उपयोग के लिए उपयुक्त स्थिति-स्वतंत्र कोड (PIC) उत्पन्न करें, यदि
लक्ष्य मशीन के लिए समर्थित। ऐसा कोड a . के माध्यम से सभी स्थिर पतों तक पहुँचता है
ग्लोबल ऑफ़सेट टेबल (जीओटी)। डायनेमिक लोडर GOT प्रविष्टियों को हल करता है जब
कार्यक्रम शुरू होता है (डायनेमिक लोडर जीसीसी का हिस्सा नहीं है; यह ऑपरेटिंग का हिस्सा है
प्रणाली)। यदि लिंक किए गए निष्पादन योग्य के लिए GOT आकार मशीन-विशिष्ट अधिकतम से अधिक है
आकार, आपको लिंकर से एक त्रुटि संदेश मिलता है जो दर्शाता है कि -एफपीआईसी काम नहीं करता; में
वह मामला, के साथ पुन: संकलित करें -एफपीआईसी बजाय। (ये अधिकतम स्पार्क पर 8k और 32k . हैं
m68k और RS/6000 पर। 386 की ऐसी कोई सीमा नहीं है।)

स्थिति-स्वतंत्र कोड को विशेष समर्थन की आवश्यकता होती है, और इसलिए यह केवल पर काम करता है
कुछ मशीनें। 386 के लिए, GCC सिस्टम V के लिए PIC का समर्थन करता है लेकिन सूर्य के लिए नहीं
386i. IBM RS/6000 के लिए उत्पन्न कोड हमेशा स्थिति-स्वतंत्र होता है।

जब यह फ़्लैग सेट किया जाता है, तो मैक्रोज़ "__pic__" और "__PIC__" को 1 से परिभाषित किया जाता है।

-एफपीआईसी
यदि लक्ष्य मशीन के लिए समर्थित है, तो स्थिति-स्वतंत्र कोड उत्सर्जित करें, इसके लिए उपयुक्त
डायनेमिक लिंकिंग और वैश्विक ऑफसेट टेबल के आकार की किसी भी सीमा से बचना। इस
विकल्प m68k, PowerPC और SPARC पर फर्क करता है।

स्थिति-स्वतंत्र कोड को विशेष समर्थन की आवश्यकता होती है, और इसलिए यह केवल पर काम करता है
कुछ मशीनें।

जब यह फ़्लैग सेट किया जाता है, तो मैक्रोज़ "__pic__" और "__PIC__" को 2 से परिभाषित किया जाता है।

-एफपीआई
-एफपीआईई
ये विकल्प के समान हैं -एफपीआईसी और -एफपीआईसी, लेकिन उत्पन्न स्थिति स्वतंत्र कोड
केवल निष्पादन योग्य में जोड़ा जा सकता है। आमतौर पर इन विकल्पों का उपयोग तब किया जाता है जब -पाई जीसीसी
लिंकिंग के दौरान विकल्प का उपयोग किया जाएगा।

-एफपीआई और -एफपीआईई दोनों मैक्रोज़ "__pie__" और "__PIE__" को परिभाषित करते हैं। मैक्रोज़ के पास है
मूल्य 1 के लिए -एफपीआई और 2 के लिए -एफपीआईई.

-फनो-जंप-टेबल
स्विच स्टेटमेंट के लिए जंप टेबल का उपयोग न करें, भले ही यह अधिक कुशल हो
अन्य कोड जनरेशन रणनीतियों की तुलना में। यह विकल्प के संयोजन में उपयोग का है
-एफपीआईसी or -एफपीआईसी कोड बनाने के लिए जो एक गतिशील लिंकर का हिस्सा बनता है और नहीं कर सकता
जंप टेबल के पते का संदर्भ लें। कुछ लक्ष्यों पर, जंप टेबल के लिए a . की आवश्यकता नहीं होती है
GOT और इस विकल्प की आवश्यकता नहीं है।

-फिक्स्ड-REG
नाम के रजिस्टर का इलाज करें REG एक निश्चित रजिस्टर के रूप में; जेनरेट कोड को कभी भी संदर्भित नहीं करना चाहिए
यह (शायद एक स्टैक पॉइंटर, फ्रेम पॉइंटर या किसी अन्य निश्चित भूमिका में छोड़कर)।

REG एक रजिस्टर का नाम होना चाहिए। स्वीकृत रजिस्टर नाम मशीन-विशिष्ट हैं
और मशीन विवरण मैक्रो फ़ाइल में "REGISTER_NAMES" मैक्रो में परिभाषित हैं।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

-fcall-प्रयुक्त-REG
नाम के रजिस्टर का इलाज करें REG एक आबंटन योग्य रजिस्टर के रूप में जिसे फ़ंक्शन द्वारा बंद किया जाता है
कॉल। इसे अस्थायी या चर के लिए आवंटित किया जा सकता है जो एक . के पार नहीं रहते हैं
बुलाना। इस तरह से संकलित कार्य रजिस्टर को सहेजेंगे और पुनर्स्थापित नहीं करेंगे REG.

फ़्रेम पॉइंटर या स्टैक पॉइंटर के साथ इस फ़्लैग का उपयोग करना एक त्रुटि है। इसका उपयोग
अन्य रजिस्टरों के लिए ध्वज जिन्होंने मशीन के निष्पादन में व्यापक भूमिकाएँ निर्धारित की हैं
मॉडल विनाशकारी परिणाम देगा।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

-fcall-सेव्ड-REG
नाम के रजिस्टर का इलाज करें REG कार्यों द्वारा सहेजे गए आवंटन योग्य रजिस्टर के रूप में। हो सकता है
कॉल के दौरान रहने वाले अस्थायी या चर के लिए भी आवंटित। कार्यों
इस तरह से संकलित रजिस्टर को सहेजेगा और पुनर्स्थापित करेगा REG अगर वे इसका इस्तेमाल करते हैं।

फ़्रेम पॉइंटर या स्टैक पॉइंटर के साथ इस फ़्लैग का उपयोग करना एक त्रुटि है। इसका उपयोग
अन्य रजिस्टरों के लिए ध्वज जिन्होंने मशीन के निष्पादन में व्यापक भूमिकाएँ निर्धारित की हैं
मॉडल विनाशकारी परिणाम देगा।

एक रजिस्टर के लिए इस झंडे के इस्तेमाल से एक अलग तरह की आपदा आएगी
कौन से फ़ंक्शन मान वापस किए जा सकते हैं।

इस ध्वज का नकारात्मक रूप नहीं है, क्योंकि यह तीन-तरफ़ा विकल्प निर्दिष्ट करता है।

-फपैक-स्ट्रक्चर[=n]
निर्दिष्ट मान के बिना, सभी संरचना सदस्यों को बिना छेद के एक साथ पैक करें। जब एक
मान निर्दिष्ट है (जो दो की एक छोटी शक्ति होनी चाहिए), पैक संरचना सदस्य
इस मान के अनुसार, अधिकतम संरेखण का प्रतिनिधित्व करता है (अर्थात, वस्तुओं के साथ
इससे बड़ी डिफ़ॉल्ट संरेखण आवश्यकताएं संभावित रूप से असंरेखित आउटपुट होंगी
अगले उपयुक्त स्थान पर।

चेतावनी: la -फपैक-संरचना स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो बाइनरी नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ संगत। इसके अतिरिक्त, यह कोड बनाता है
उप-इष्टतम। गैर-डिफ़ॉल्ट एप्लिकेशन बाइनरी इंटरफ़ेस के अनुरूप इसका उपयोग करें।

-फिंस्ट्रमेंट-फ़ंक्शंस
कार्यों में प्रवेश और निकास के लिए इंस्ट्रूमेंटेशन कॉल उत्पन्न करें। समारोह के ठीक बाद
प्रविष्टि और फ़ंक्शन से बाहर निकलने से ठीक पहले, निम्नलिखित प्रोफाइलिंग फ़ंक्शन को कॉल किया जाएगा
वर्तमान फ़ंक्शन और उसकी कॉल साइट के पते के साथ। (कुछ प्लेटफॉर्म पर,
"__builtin_return_address" वर्तमान फ़ंक्शन से आगे काम नहीं करता है, इसलिए कॉल साइट
जानकारी अन्यथा प्रोफाइलिंग कार्यों के लिए उपलब्ध नहीं हो सकती है।)

शून्य __cyg_profile_func_enter (शून्य *this_fn,
शून्य * कॉल_साइट);
शून्य __cyg_profile_func_exit (शून्य *this_fn,
शून्य * कॉल_साइट);

पहला तर्क वर्तमान फ़ंक्शन की शुरुआत का पता है, जो हो सकता है
प्रतीक तालिका में बिल्कुल ऊपर देखा।

यह उपकरण अन्य कार्यों में इनलाइन विस्तारित कार्यों के लिए भी किया जाता है।
प्रोफाइलिंग कॉल इंगित करेगी कि, अवधारणात्मक रूप से, इनलाइन फ़ंक्शन कहां दर्ज किया गया है
और बाहर निकल गया। इसका मतलब है कि ऐसे कार्यों के पता योग्य संस्करण उपलब्ध होने चाहिए।
यदि किसी फ़ंक्शन के आपके सभी उपयोगों को इनलाइन विस्तारित किया जाता है, तो इसका अर्थ अतिरिक्त हो सकता है
कोड आकार का विस्तार। यदि तुम प्रयोग करते हो बाहरी इनलाइन आपके सी कोड में, एक पता योग्य
ऐसे कार्यों का संस्करण प्रदान किया जाना चाहिए। (यह आम तौर पर वैसे भी होता है, लेकिन
यदि आप भाग्यशाली हैं और अनुकूलक हमेशा इनलाइन कार्यों का विस्तार करता है, तो आपके पास हो सकता है
स्थिर प्रतियां प्रदान किए बिना दूर हो गए।)

एक फ़ंक्शन को "no_instrument_function" विशेषता दी जा सकती है, जिस स्थिति में यह
यंत्रीकरण नहीं किया जाएगा। इसका उपयोग किया जा सकता है, उदाहरण के लिए, प्रोफाइलिंग के लिए
ऊपर सूचीबद्ध कार्य, उच्च-प्राथमिकता वाले व्यवधान दिनचर्या, और कोई भी कार्य जिससे
प्रोफाइलिंग कार्यों को सुरक्षित रूप से नहीं कहा जा सकता है (शायद सिग्नल हैंडलर, यदि
प्रोफाइलिंग रूटीन आउटपुट उत्पन्न करते हैं या मेमोरी आवंटित करते हैं)।

-फिनस्ट्रुमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची =पट्टिका,पट्टिका, ...
उन कार्यों की सूची सेट करें जिन्हें इंस्ट्रूमेंटेशन से बाहर रखा गया है (विवरण देखें .)
"-finstrument-functions") का। यदि फ़ंक्शन परिभाषा वाली फ़ाइल मेल खाती है
में से एक के साथ पट्टिका, तो वह फ़ंक्शन इंस्ट्रुमेंटेड नहीं है। मैच पर किया जाता है
सबस्ट्रिंग्स: यदि पट्टिका पैरामीटर फ़ाइल नाम का एक विकल्प है, इसे माना जाता है
एक मैच हो।

उदाहरण के लिए:

-फिन्सट्रूमेंट-फ़ंक्शंस-बहिष्कृत-फ़ाइल-सूची =/बिट्स/एसटीएल, शामिल/sys

उन फ़ाइलों में परिभाषित किसी भी इनलाइन फ़ंक्शन को बाहर कर देगा जिनके पथनाम में "/bits/stl" है
या "शामिल/sys"।

यदि, किसी कारणवश, आप किसी एक में ',' अक्षर शामिल करना चाहते हैं प्रतीक, लिखो ','। के लिये
उदाहरण, "-finstrument-functions-exclude-file-list=',,tmp'" (एकल उद्धरण नोट करें)
विकल्प के आसपास)।

-फंस्ट्रमेंट-फ़ंक्शंस-बहिष्कृत-फ़ंक्शन-सूची =प्रतीक,प्रतीक, ...
यह "-finstrument-functions-exclude-file-list" के समान है, लेकिन यह विकल्प सेट करता है
इंस्ट्रुमेंटेशन से बाहर किए जाने वाले फ़ंक्शन नामों की सूची। समारोह का नाम to
मिलान किया जाना इसका उपयोगकर्ता-दृश्यमान नाम है, जैसे "वेक्टर ब्लाह (स्थिरांक वेक्टर और)",
आंतरिक उलझा हुआ नाम नहीं (जैसे, "_Z4blahRSt6vectorIiSaIiEE")। मैच हो गया
सबस्ट्रिंग पर: यदि प्रतीक पैरामीटर फ़ंक्शन नाम का एक विकल्प है, यह है
मैच माना जाता है। C99 और C++ विस्तारित पहचानकर्ताओं के लिए, फ़ंक्शन का नाम
यूटीएफ -8 में दिया जाना चाहिए, सार्वभौमिक चरित्र नामों का उपयोग नहीं करना।

-फस्टैक-चेक
यह सत्यापित करने के लिए कोड जनरेट करें कि आप स्टैक की सीमा से आगे नहीं जाते हैं। आप
यदि आप एक से अधिक थ्रेड वाले वातावरण में चल रहे हैं तो इस ध्वज को निर्दिष्ट करना चाहिए,
लेकिन केवल शायद ही कभी इसे एकल-थ्रेडेड वातावरण में निर्दिष्ट करने की आवश्यकता होती है क्योंकि स्टैक
यदि केवल एक स्टैक है, तो लगभग सभी प्रणालियों पर अतिप्रवाह का स्वतः पता चल जाता है।

ध्यान दें कि यह स्विच वास्तव में जाँच करने का कारण नहीं बनता है; संचालन
सिस्टम या भाषा रनटाइम को ऐसा करना चाहिए। स्विच के कारण कोड उत्पन्न होता है
सुनिश्चित करें कि वे स्टैक को विस्तारित होते हुए देखते हैं।

आप अतिरिक्त रूप से एक स्ट्रिंग पैरामीटर निर्दिष्ट कर सकते हैं: "नहीं" का अर्थ है कोई जाँच नहीं, "सामान्य"
का अर्थ है पुरानी शैली की जाँच का उपयोग करना, "विशिष्ट" का अर्थ है सर्वोत्तम जाँच का उपयोग करना
विधि और नंगे के बराबर है -फस्टैक-चेक.

पुरानी शैली की जाँच एक सामान्य तंत्र है जिसमें किसी विशिष्ट लक्ष्य समर्थन की आवश्यकता नहीं होती है
संकलक लेकिन निम्नलिखित कमियों के साथ आता है:

1. बड़ी वस्तुओं के लिए संशोधित आवंटन रणनीति: उन्हें हमेशा आवंटित किया जाएगा
गतिशील रूप से यदि उनका आकार एक निश्चित सीमा से अधिक है।

2. कार्यों के स्थिर फ्रेम के आकार पर निश्चित सीमा: जब यह सबसे ऊपर होता है a
विशेष कार्य, स्टैक जाँच विश्वसनीय नहीं है और एक चेतावनी जारी की जाती है
संकलक।

3. अक्षमता: संशोधित आवंटन रणनीति और सामान्य दोनों के कारण
कार्यान्वयन, कोड के प्रदर्शन में बाधा आती है।

ध्यान दें कि पुरानी शैली की स्टैक जाँच भी "विशिष्ट" के लिए फ़ॉलबैक विधि है यदि नहीं
संकलक में लक्ष्य समर्थन जोड़ा गया है।

-फस्टैक-सीमा-रजिस्टर=REG
-फस्टैक-सीमा-प्रतीक =प्रतीक
-फनो-स्टैक-लिमिट
यह सुनिश्चित करने के लिए कोड जनरेट करें कि स्टैक एक निश्चित मान से आगे न बढ़े, या तो
एक रजिस्टर का मूल्य या एक प्रतीक का पता। अगर ढेर आगे बढ़ जाएगा
मान, एक संकेत उठाया जाता है। अधिकांश लक्ष्यों के लिए, सिग्नल को से पहले उठाया जाता है
स्टैक सीमा से आगे निकल जाता है, इसलिए सिग्नल को बिना लिए पकड़ना संभव है
विशेष सावधानियाँ।

उदाहरण के लिए, यदि स्टैक निरपेक्ष पते पर शुरू होता है 0x80000000 और नीचे की ओर बढ़ता है,
आप झंडे का उपयोग कर सकते हैं -फस्टैक-सीमा-प्रतीक=__स्टैक_लिमिट और
-Wl,--defsym,__stack_limit=0x7ffe0000 128KB की स्टैक सीमा लागू करने के लिए। ध्यान दें कि
यह केवल जीएनयू लिंकर के साथ काम कर सकता है।

-फस्प्लिट-स्टैक
स्टैक को ओवरफ्लो होने से पहले स्वचालित रूप से विभाजित करने के लिए कोड जेनरेट करें। परिणामस्वरूप
प्रोग्राम में एक असतत स्टैक होता है जो केवल तभी ओवरफ्लो हो सकता है जब प्रोग्राम करने में असमर्थ हो
कोई और मेमोरी आवंटित करें। थ्रेडेड प्रोग्राम चलाते समय यह सबसे उपयोगी है, क्योंकि यह
प्रत्येक थ्रेड के लिए उपयोग करने के लिए एक अच्छे स्टैक आकार की गणना करने के लिए अब आवश्यक नहीं है। यह है
वर्तमान में केवल i386 और x86_64 बैक एंड के लिए लागू किया गया है जो GNU/Linux चला रहा है।

जब कोड संकलित किया गया -फस्प्लिट-स्टैक कॉल कोड बिना संकलित किया गया -फस्प्लिट-स्टैक, क्या आप वहां मौजूद हैं
बाद वाले कोड को चलाने के लिए अधिक स्टैक स्थान उपलब्ध नहीं हो सकता है। अगर सभी को संकलित करना
पुस्तकालय कोड सहित कोड, के साथ -फस्प्लिट-स्टैक एक विकल्प नहीं है, तो लिंकर कर सकता है
इन कॉलों को ठीक करें ताकि कोड बिना संकलित किया जा सके -फस्प्लिट-स्टैक हमेशा एक बड़ा
ढेर। इसके लिए समर्थन GNU बिनुटिल्स रिलीज़ में गोल्ड लिंकर में लागू किया गया है
2.21 और बाद में।

-अग्रणी-अंडरस्कोर
यह विकल्प और इसके समकक्ष, -फनो-अग्रणी-अंडरस्कोर, जबरन रास्ता बदलो सी
ऑब्जेक्ट फ़ाइल में प्रतीकों का प्रतिनिधित्व किया जाता है। एक उपयोग विरासत से जुड़ने में मदद करना है
विधानसभा कोड।

चेतावनी: la -अग्रणी-अंडरस्कोर स्विच जीसीसी को कोड उत्पन्न करने का कारण बनता है जो नहीं है
उस स्विच के बिना उत्पन्न कोड के साथ बाइनरी संगत। इसका उपयोग a . के अनुरूप करने के लिए करें
गैर-डिफ़ॉल्ट अनुप्रयोग बाइनरी इंटरफ़ेस। सभी लक्ष्य पूर्ण समर्थन प्रदान नहीं करते हैं
इस स्विच के लिए।

-एफटीएलएस-मॉडल =आदर्श
उपयोग किए जाने वाले थ्रेड-लोकल स्टोरेज मॉडल को बदलें। NS आदर्श तर्क इनमें से एक होना चाहिए
"वैश्विक-गतिशील", "स्थानीय-गतिशील", "प्रारंभिक-निष्पादन" या "स्थानीय-निष्पादन"।

बिना डिफ़ॉल्ट -एफपीआईसी "प्रारंभिक-निष्पादन" है; साथ -एफपीआईसी डिफ़ॉल्ट है
"वैश्विक-गतिशील"।

-दृश्यता =डिफ़ॉल्ट|आंतरिक|छिपा हुआ|संरक्षित
डिफ़ॉल्ट ईएलएफ छवि प्रतीक दृश्यता को निर्दिष्ट विकल्प पर सेट करें --- सभी प्रतीक होंगे
इसके साथ चिह्नित किया जाना चाहिए जब तक कि कोड के भीतर ओवरराइड न किया जाए। इस सुविधा का उपयोग करना बहुत हो सकता है
साझा ऑब्जेक्ट लाइब्रेरी के लिंकिंग और लोड समय में काफी सुधार करें, अधिक उत्पादन करें
अनुकूलित कोड, निकट-पूर्ण एपीआई निर्यात प्रदान करते हैं और प्रतीक संघर्ष को रोकते हैं। यह है
दृढ़ता से अनुशंसा की जाती है कि आप इसे आपके द्वारा वितरित किसी भी साझा ऑब्जेक्ट में उपयोग करें।

नामकरण के बावजूद, "डिफ़ॉल्ट" का अर्थ हमेशा सार्वजनिक होता है; यानी, लिंक होने के लिए उपलब्ध
साझा वस्तु के बाहर से विरुद्ध। "संरक्षित" और "आंतरिक" बहुत बेकार हैं
वास्तविक दुनिया के उपयोग में इसलिए आमतौर पर इस्तेमाल किया जाने वाला एकमात्र अन्य विकल्प "छिपा हुआ" होगा। NS
डिफ़ॉल्ट अगर -दृश्यता निर्दिष्ट नहीं है "डिफ़ॉल्ट" है, अर्थात, प्रत्येक प्रतीक बनाएं
सार्वजनिक --- यह जीसीसी के पिछले संस्करणों के समान व्यवहार का कारण बनता है।

ईएलएफ प्रतीकों का सही होना सुनिश्चित करके दिए जाने वाले लाभों की एक अच्छी व्याख्या
उलरिच ड्रेपर (जो हो सकता है) द्वारा "साझा पुस्तकालयों को कैसे लिखें" द्वारा दृश्यता दी गई है
पर मिलाhttp://people.redhat.com/~drepper/>)---हालाँकि एक बेहतर समाधान बनाया
डिफ़ॉल्ट सार्वजनिक होने पर छिपी चीजों को चिह्नित करने के लिए इस विकल्प द्वारा संभव है
डिफ़ॉल्ट छिपा हुआ है और चीजों को सार्वजनिक रूप से चिह्नित करता है। विंडोज़ पर डीएलएल के साथ यह आदर्श है और
साथ में -दृश्यता = छिपा हुआ और "__attribute__ ((दृश्यता("डिफ़ॉल्ट")))" के बजाय
"__declspec(dllexport)" आपको समान सिंटैक्स के साथ लगभग समान शब्दार्थ मिलते हैं।
क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट्स के साथ काम करने वालों के लिए यह एक बहुत बड़ा वरदान है।

मौजूदा कोड में दृश्यता समर्थन जोड़ने वालों के लिए, आप पा सकते हैं #प्रैग्मा जीसीसी
दृश्यता मतलब की। यह आपके द्वारा उन घोषणाओं को संलग्न करके काम करता है जिन्हें आप सेट करना चाहते हैं
साथ के लिए दृश्यता (उदाहरण के लिए) #प्रैग्मा जीसीसी दृश्यता धक्का (छिपा हुआ) और #प्रैग्मा जीसीसी
दृश्यता पॉप. ध्यान रखें कि प्रतीक दृश्यता देखी जानी चाहिए as भाग of la
API इंटरफेस अनुबंध और इस प्रकार सभी नए कोड को हमेशा दृश्यता निर्दिष्ट करनी चाहिए जब यह
डिफ़ॉल्ट नहीं है; यानी, केवल स्थानीय डीएसओ के भीतर उपयोग के लिए घोषणाएं हमेशा
पीएलटी अप्रत्यक्ष ओवरहेड्स से बचने के लिए स्पष्ट रूप से छिपे हुए के रूप में चिह्नित किया जाए --- इसे बनाना
बहुतायत से स्पष्ट भी कोड की पठनीयता और स्व-दस्तावेजीकरण में सहायता करता है। ध्यान दें कि
आईएसओ सी ++ विनिर्देश आवश्यकताओं के कारण, ऑपरेटर नया और ऑपरेटर हटाना आवश्यक है
हमेशा डिफ़ॉल्ट दृश्यता का हो।

ध्यान रखें कि आपके प्रोजेक्ट के बाहर के हेडर, विशेष रूप से सिस्टम हेडर और
आपके द्वारा उपयोग की जाने वाली किसी भी अन्य पुस्तकालय के शीर्षलेखों के साथ संकलित होने की अपेक्षा नहीं की जा सकती है
डिफ़ॉल्ट के अलावा अन्य दृश्यता। आपको स्पष्ट रूप से कहना पड़ सकता है #प्रैग्मा जीसीसी
दृश्यता पुश (डिफ़ॉल्ट) ऐसे किसी भी शीर्षलेख को शामिल करने से पहले।

बाहरी घोषणाएं प्रभावित नहीं होती हैं -दृश्यता, तो बहुत सारे कोड हो सकते हैं
के साथ पुन: संकलित -दृश्यता = छिपा हुआ बिना किसी संशोधन के। हालांकि, इसका मतलब है कि
को कॉल करता है बाहरी बिना स्पष्ट दृश्यता वाले फ़ंक्शन पीएलटी का उपयोग करेंगे, इसलिए यह अधिक है
उपयोग करने के लिए प्रभावी __गुण ((दृश्यता)) और / या #प्रैग्मा जीसीसी दृश्यता बताने के लिए
संकलक जो बाहरी घोषणाओं को छिपा हुआ माना जाना चाहिए।

ध्यान दें कि -दृश्यता सी ++ अस्पष्ट लिंकेज इकाइयों को प्रभावित करता है। इसका मतलब है कि, के लिए
उदाहरण के लिए, एक अपवाद वर्ग जिसे डीएसओ के बीच फेंका जाएगा स्पष्ट रूप से होना चाहिए
डिफ़ॉल्ट दृश्यता के साथ चिह्नित किया गया ताकि type_info नोड्स के बीच एकीकृत किया जाएगा
डीएसओ।

इन तकनीकों का एक सिंहावलोकन, उनके लाभ और उनका उपयोग कैसे करें, इस पर है
<http://gcc.gnu.org/wiki/Visibility>.

-फस्ट्रिक्ट-अस्थिर-बिटफील्ड्स
इस विकल्प का उपयोग तब किया जाना चाहिए जब अस्थिर बिट-फ़ील्ड (या अन्य संरचना .) तक पहुँच हो
फ़ील्ड, हालांकि संकलक आमतौर पर वैसे भी उन प्रकारों का सम्मान करता है) एक का उपयोग करना चाहिए
क्षेत्र के प्रकार की चौड़ाई तक पहुंच, यदि संभव हो तो प्राकृतिक संरेखण से गठबंधन।
उदाहरण के लिए, मेमोरी-मैप्ड पेरिफेरल रजिस्टर वाले लक्ष्यों को ऐसे सभी की आवश्यकता हो सकती है
16 बिट चौड़ा होने तक पहुंच; इस ध्वज के साथ उपयोगकर्ता सभी परिधीय बिट घोषित कर सकता है-
जीसीसी को बाध्य करने के लिए फ़ील्ड को "अहस्ताक्षरित लघु" (इन लक्ष्यों पर कम 16 बिट मानते हुए) के रूप में फ़ील्ड
शायद, अधिक कुशल 16-बिट एक्सेस के बजाय 32-बिट एक्सेस का उपयोग करने के लिए।

यदि यह विकल्प अक्षम है, तो संकलक सबसे कुशल निर्देश का उपयोग करेगा। में
पिछला उदाहरण, यह 32-बिट लोड निर्देश हो सकता है, भले ही वह होगा
एक्सेस बाइट्स जिसमें बिट-फ़ील्ड, या मेमोरी-मैप्ड का कोई भाग नहीं है
अद्यतन किए जा रहे एक से असंबंधित रजिस्टर।

यदि लक्ष्य को सख्त संरेखण की आवश्यकता है, और फ़ील्ड प्रकार का सम्मान करने की आवश्यकता होगी
इस संरेखण का उल्लंघन करते हुए, एक चेतावनी जारी की जाती है। यदि फ़ील्ड में "पैक" विशेषता है,
एक्सेस फ़ील्ड प्रकार का सम्मान किए बिना किया जाता है। यदि फ़ील्ड में नहीं है
"पैक" विशेषता, फ़ील्ड प्रकार का सम्मान करते हुए एक्सेस किया जाता है। दोनों ही मामलों में, जीसीसी
यह मानता है कि उपयोगकर्ता लक्ष्य हार्डवेयर के बारे में कुछ जानता है जिससे वह अनजान है।

इस विकल्प का डिफ़ॉल्ट मान अनुप्रयोग बाइनरी इंटरफ़ेस द्वारा निर्धारित किया जाता है
लक्ष्य प्रोसेसर।

वातावरण


यह खंड कई पर्यावरण चरों का वर्णन करता है जो जीसीसी के संचालन को प्रभावित करते हैं। कुछ
उनमें से विभिन्न प्रकार की खोज करते समय उपयोग करने के लिए निर्देशिका या उपसर्ग निर्दिष्ट करके काम करते हैं
फाइलों का। कुछ का उपयोग संकलन वातावरण के अन्य पहलुओं को निर्दिष्ट करने के लिए किया जाता है।

ध्यान दें कि आप विकल्पों का उपयोग करके खोजने के लिए स्थान भी निर्दिष्ट कर सकते हैं जैसे -B, -I और -L.
ये पर्यावरण चर का उपयोग करके निर्दिष्ट स्थानों पर पूर्वता लेते हैं, जो बदले में
जीसीसी के विन्यास द्वारा निर्दिष्ट लोगों पर वरीयता लें।

लैंग
एलसी_CTYPE
एलसी_MESSAGES
LC_ALL
ये पर्यावरण चर उस तरीके को नियंत्रित करते हैं जिससे GCC स्थानीयकरण जानकारी का उपयोग करता है
जो जीसीसी को विभिन्न राष्ट्रीय सम्मेलनों के साथ काम करने की अनुमति देता है। जीसीसी ने लोकेल का निरीक्षण किया
श्रेणियाँ एलसी_CTYPE और एलसी_MESSAGES अगर इसे ऐसा करने के लिए कॉन्फ़िगर किया गया है। ये लोकेल
श्रेणियों को आपकी स्थापना द्वारा समर्थित किसी भी मान पर सेट किया जा सकता है। एक विशिष्ट मूल्य है
en_GB.UTF-8 यूनाइटेड किंगडम में अंग्रेजी के लिए UTF-8 में एन्कोड किया गया।

RSI एलसी_CTYPE पर्यावरण चर वर्ण वर्गीकरण को निर्दिष्ट करता है। जीसीसी इसका उपयोग करता है
एक स्ट्रिंग में वर्ण सीमा निर्धारित करें; यह कुछ मल्टीबाइट के लिए आवश्यक है
एन्कोडिंग जिसमें उद्धरण और एस्केप वर्ण होते हैं जिन्हें अन्यथा व्याख्या किया जाएगा
एक स्ट्रिंग अंत या भागने के रूप में।

RSI एलसी_MESSAGES पर्यावरण चर निदान में उपयोग की जाने वाली भाषा को निर्दिष्ट करता है
संदेश.

अगर LC_ALL पर्यावरण चर सेट है, यह के मान को ओवरराइड करता है एलसी_CTYPE और
एलसी_MESSAGES; अन्यथा, एलसी_CTYPE और एलसी_MESSAGES के मान के लिए डिफ़ॉल्ट लैंग
वातावरण विविधता। यदि इनमें से कोई भी चर सेट नहीं है, तो GCC पारंपरिक पर डिफ़ॉल्ट है
सी अंग्रेजी व्यवहार।

टीएमपीडीआईआर
If टीएमपीडीआईआर सेट है, यह अस्थायी फ़ाइलों के लिए उपयोग करने के लिए निर्देशिका निर्दिष्ट करता है। जीसीसी उपयोग करता है
संकलन के एक चरण के आउटपुट को रखने के लिए अस्थायी फ़ाइलें जिसका उपयोग किया जाना है:
अगले चरण में इनपुट: उदाहरण के लिए, प्रीप्रोसेसर का आउटपुट, जो है
कंपाइलर को इनपुट उचित।

GCC_COMPARE_DEBUG
की स्थापना GCC_COMPARE_DEBUG पासिंग के लगभग बराबर है -fतुलना-डीबग को
संकलक चालक। अधिक जानकारी के लिए इस विकल्प का दस्तावेज़ीकरण देखें।

जीसीसी_EXEC_PREFIX
If जीसीसी_EXEC_PREFIX सेट है, यह के नामों में उपयोग करने के लिए एक उपसर्ग निर्दिष्ट करता है
संकलक द्वारा निष्पादित उपप्रोग्राम। जब इस उपसर्ग को जोड़ा जाता है तो कोई स्लैश नहीं जोड़ा जाता है
उपप्रोग्राम के नाम के साथ, लेकिन आप एक उपसर्ग निर्दिष्ट कर सकते हैं जो एक स्लैश के साथ समाप्त होता है if
तुम चाहो।

If जीसीसी_EXEC_PREFIX सेट नहीं है, GCC एक उपयुक्त उपसर्ग का पता लगाने का प्रयास करेगा
उस पथनाम के आधार पर उपयोग करें जिसके साथ इसे बुलाया गया था।

यदि जीसीसी निर्दिष्ट उपसर्ग का उपयोग करके उपप्रोग्राम नहीं ढूंढ पाता है, तो यह देखने की कोशिश करता है
उपप्रोग्राम के लिए सामान्य स्थान।

का डिफ़ॉल्ट मान जीसीसी_EXEC_PREFIX is उपसर्ग/lib/gcc/ जहां उपसर्ग उपसर्ग है
स्थापित कंपाइलर। कई मामलों में उपसर्ग जब आप इसे चलाते हैं तो "उपसर्ग" का मान होता है
कॉन्फ़िगर लिपियों.

के साथ निर्दिष्ट अन्य उपसर्ग -B इस उपसर्ग पर वरीयता लें।

इस उपसर्ग का उपयोग फाइलों को खोजने के लिए भी किया जाता है जैसे कि crt0.o जिनका उपयोग लिंकिंग के लिए किया जाता है।

इसके अलावा, उपसर्ग का उपयोग असामान्य तरीके से खोज करने के लिए निर्देशिकाओं को खोजने में किया जाता है
हेडर फाइलों के लिए। प्रत्येक मानक निर्देशिका के लिए जिसका नाम सामान्य रूप से शुरू होता है
साथ में /usr/स्थानीय/lib/gcc (अधिक सटीक रूप से, के मूल्य के साथ GCC_INCLUDE_DIR), जीसीसी कोशिश करता है
एक वैकल्पिक निर्देशिका बनाने के लिए उस शुरुआत को निर्दिष्ट उपसर्ग के साथ बदलना
नाम। इस प्रकार, साथ -बीफू/, जीसीसी खोजेगा फू/बार जहां यह सामान्य रूप से खोज करेगा
/usr/स्थानीय/lib/bar. इन वैकल्पिक निर्देशिकाओं को पहले खोजा जाता है; मानक
निर्देशिकाएँ आगे आती हैं। यदि एक मानक निर्देशिका कॉन्फ़िगर के साथ शुरू होती है उपसर्ग फिर
के मूल्य उपसर्ग द्वारा प्रतिस्थापित किया जाता है जीसीसी_EXEC_PREFIX हेडर फ़ाइलों की तलाश करते समय।

कंपाइलर_पथ
के मूल्य कंपाइलर_पथ निर्देशिकाओं की एक बृहदान्त्र-पृथक सूची है, बहुत पसंद है पथ.
जीसीसी उपप्रोग्राम की खोज करते समय इस प्रकार निर्दिष्ट निर्देशिकाओं की कोशिश करता है, अगर यह नहीं कर सकता है
उपप्रोग्राम का उपयोग करके खोजें जीसीसी_EXEC_PREFIX.

पुस्तकालय_पथ
के मूल्य पुस्तकालय_पथ निर्देशिकाओं की एक बृहदान्त्र-पृथक सूची है, बहुत पसंद है पथ.
जब एक देशी कंपाइलर के रूप में कॉन्फ़िगर किया जाता है, तो जीसीसी इस प्रकार निर्दिष्ट निर्देशिकाओं की कोशिश करता है जब
विशेष लिंकर फ़ाइलों की खोज करना, यदि यह उनका उपयोग करके नहीं मिल रहा है जीसीसी_EXEC_PREFIX.
सामान्य पुस्तकालयों की खोज करते समय जीसीसी का उपयोग करके लिंक करना भी इन निर्देशिकाओं का उपयोग करता है
के लिए -l विकल्प (लेकिन निर्देशिकाओं के साथ निर्दिष्ट) -L पहले आना)।

लैंग
इस वेरिएबल का उपयोग स्थानीय जानकारी को कंपाइलर को पास करने के लिए किया जाता है। एक तरीका जिससे
इस जानकारी का उपयोग वर्ण सेट करते समय उपयोग किए जाने वाले वर्ण सेट को निर्धारित करने के लिए किया जाता है
अक्षर, स्ट्रिंग अक्षर और टिप्पणियां सी और सी ++ में पार्स की जाती हैं। जब संकलक है
मल्टीबाइट वर्णों को अनुमति देने के लिए कॉन्फ़िगर किया गया है, निम्न मानों के लिए लैंग रहे
मान्यता प्राप्त:

सी-जिस
JIS वर्णों को पहचानें।

सी-एसजेआईएस
SJIS वर्णों को पहचानें।

सी-ईयूसीजेपी
EUCJP वर्णों को पहचानें।

If लैंग परिभाषित नहीं है, या यदि इसका कोई अन्य मूल्य है, तो संकलक उपयोग करेगा
mblen और mbtowc जैसा कि मल्टीबाइट को पहचानने और अनुवाद करने के लिए डिफ़ॉल्ट लोकेल द्वारा परिभाषित किया गया है
अक्षर.

कुछ अतिरिक्त परिवेश चर प्रीप्रोसेसर के व्यवहार को प्रभावित करते हैं।

सीपीएटीएच
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
प्रत्येक चर का मान एक विशेष वर्ण द्वारा अलग की गई निर्देशिकाओं की एक सूची है, बहुत कुछ
पसंद पथ, जिसमें हेडर फाइलों को देखना है। विशेष पात्र,
"PATH_SEPARATOR", लक्ष्य-निर्भर है और GCC निर्माण समय पर निर्धारित होता है। माइक्रोसॉफ्ट के लिए
विंडोज-आधारित लक्ष्य यह एक अर्धविराम है, और लगभग सभी अन्य लक्ष्यों के लिए यह एक है
कोलन।

सीपीएटीएच खोजे जाने वाली निर्देशिकाओं की एक सूची निर्दिष्ट करता है जैसे कि निर्दिष्ट किया गया हो -I, परंतु
के साथ दिए गए किसी भी रास्ते के बाद -I कमांड लाइन पर विकल्प। यह पर्यावरण चर
इस बात पर ध्यान दिए बिना कि किस भाषा को प्रीप्रोसेस किया जा रहा है, का उपयोग किया जाता है।

शेष पर्यावरण चर केवल तभी लागू होते हैं जब विशेष को पूर्व-संसाधित किया जाता है
भाषा का संकेत दिया। प्रत्येक निर्देशिका की एक सूची निर्दिष्ट करता है जिसे खोजा जाना है जैसे कि
के साथ निर्दिष्ट -सिस्टम, लेकिन साथ दिए गए किसी भी रास्ते के बाद -सिस्टम पर विकल्प
कमांड लाइन।

इन सभी वेरिएबल्स में, एक खाली तत्व कंपाइलर को अपने करंट को खोजने का निर्देश देता है
कार्यकारी डाइरेक्टरी। पथ के आरंभ या अंत में खाली तत्व दिखाई दे सकते हैं। के लिये
उदाहरण के लिए, यदि का मान सीपीएटीएच है ":/विशेष/शामिल", जिसका प्रभाव वही है
-मैं। -मैं/विशेष/शामिल.

DEPENDENCIES_OUTPUT
यदि यह चर सेट किया गया है, तो इसका मान निर्दिष्ट करता है कि मेक आधारित के लिए निर्भरता कैसे आउटपुट करें
संकलक द्वारा संसाधित गैर-सिस्टम शीर्षलेख फ़ाइलों पर। सिस्टम हेडर फाइलें हैं
निर्भरता आउटपुट में अनदेखा किया गया।

के मूल्य DEPENDENCIES_OUTPUT केवल एक फ़ाइल नाम हो सकता है, जिस स्थिति में नियम बनाएं
स्रोत फ़ाइल नाम से लक्ष्य नाम का अनुमान लगाते हुए, उस फ़ाइल में लिखा जाता है। या
मान का रूप हो सकता है पट्टिका लक्ष्य, जिस स्थिति में नियम फाइल करने के लिए लिखे जाते हैं पट्टिका
का उपयोग लक्ष्य लक्ष्य नाम के रूप में।

दूसरे शब्दों में, यह पर्यावरण चर विकल्पों के संयोजन के बराबर है -एमएम
और -एमएफ, एक वैकल्पिक . के साथ -एमटी स्विच भी।

SUNPRO_DEPENDENCIES
यह चर समान है DEPENDENCIES_OUTPUT (ऊपर देखें), उस प्रणाली को छोड़कर
हेडर फाइलों को नजरअंदाज नहीं किया जाता है, इसलिए इसका मतलब है -M बजाय -एमएम। हालांकि
मुख्य इनपुट फ़ाइल पर निर्भरता छोड़ी गई है।

onworks.net सेवाओं का उपयोग करके g++-4.7 ऑनलाइन का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

Ad