-pass-exit-codes | Normally the gcc program exits with the code of 1 if any phase of the compiler returns a non-success return code. | help + man |
--help | Print (on the standard output) a description of the command-line options understood by gcc. | help + man |
--target-help | Print (on the standard output) a description of target-specific command-line options for each tool. | help + man |
--version | Display the version number and copyrights of the invoked GCC. | help + man |
-dumpspecs | Display all of the built in spec strings. | help |
-dumpversion | Display the version of the compiler. | help |
-dumpmachine | Display the compiler's target processor. | help |
-foffload targets | Specify offloading targets. | help + man |
-print-search-dirs | Display the directories in the compiler's search path. | help |
-print-libgcc-file-name | Display the name of the compiler's companion library. | help |
-print-file-name lib | Display the full path to library <lib>. | help |
-print-prog-name prog | Display the full path to compiler component <prog>. | help |
-print-multiarch | Display the target's normalized GNU triplet, used as a component in the library path. | help |
-print-multi-directory | Display the root directory for versions of libgcc. | help |
-print-multi-lib | Display the mapping between command line options and multiple library search directories. | help |
-print-sysroot | Display the target libraries directory. | help |
-Wa | Pass comma-separated <options> on to the assembler. | help + man |
-Wp | Pass comma-separated <options> on to the preprocessor. | help |
-Wl | Pass comma-separated <options> on to the linker. | help |
-Xassembler arg | Pass <arg> on to the assembler. | help |
-Xpreprocessor arg | Pass <arg> on to the preprocessor. | help |
-Xlinker arg | Pass <arg> on to the linker. | help |
-save-temps | Do not delete intermediate files. | help |
-no-canonical-prefixes | Do not canonicalize paths when building relative prefixes to other gcc components. | help |
-pipe | Use pipes rather than temporary files for communication between the various stages of compilation. | help + man |
-time | Time the execution of each subprocess. | help |
-specs file | Process file after the compiler reads in the standard specs file, in order to override the defaults which the gcc driver program uses when determining what switches to pass to cc1, cc1plus, as, ld,… | help + man |
-std standard | Assume that the input sources are for <standard>. | help + man |
--sysroot directory | Use <directory> as the root directory for headers and libraries. | help |
-B directory | Add <directory> to the compiler's search paths. | help |
-v | Print (on standard error output) the commands executed to run the stages of compilation. | help + man |
-### | Like -v except the commands are not executed and arguments are quoted unless they contain only alphanumeric characters or "./-_". | help + man |
-E | Stop after the preprocessing stage; | help + man |
-S | Stop after the stage of compilation proper; | help + man |
-c | Compile or assemble the source files, but do not link. | help + man |
-o file | Place the primary output in file file. | help + man |
-pie | Create a dynamically linked position independent executable. | help |
-shared | Create a shared library. | help |
-x language | Specify explicitly the language for the following input files (rather than letting the compiler choose a default based on the file name suffix). | help + man |
-dumpbase dumpbase | This option sets the base name for auxiliary and dump output files. (in the manual page but not in --help) | man |
-dumpbase-ext auxdropsuf | When forming the name of an auxiliary (but not a dump) output file, drop trailing auxdropsuf from dumpbase before appending any suffixes. (in the manual page but not in --help) | man |
-dumpdir dumppfx | When forming the name of an auxiliary or dump output file, use dumppfx as a prefix: (in the manual page but not in --help) | man |
-wrapper | Invoke all subcommands under a wrapper program. (in the manual page but not in --help) | man |
-ffile-prefix-map old=new | When compiling files residing in directory old, record any references to them in the result of the compilation as if the files resided in directory new instead. (in the manual page but not in --help) | man |
-fplugin name.so | Load the plugin code in file name.so, assumed to be a shared object to be dlopen'd by the compiler. (in the manual page but not in --help) | man |
-fplugin-arg-name-key value | Define an argument called key with a value of value for the plugin called name. (in the manual page but not in --help) | man |
-fada-spec-parent unit | In conjunction with -fdump-ada-spec[-slim] above, generate Ada specs as child units of parent unit. (in the manual page but not in --help) | man |
-fdump-go-spec file | For input files in any language, generate corresponding Go declarations in file. (in the manual page but not in --help) | man |
-ansi | In C mode, this is equivalent to -std=c90. (in the manual page but not in --help) | man |
-aux-info filename | Output to the given filename prototyped declarations for all functions declared and/or defined in a translation unit, including those in header files. (in the manual page but not in --help) | man |
-fallow-parameterless-variadic-functions | Accept variadic functions without named parameters. (in the manual page but not in --help) | man |
-fno-asm | Do not recognize "asm", "inline" or "typeof" as a keyword, so that code can use these words as identifiers. (in the manual page but not in --help) | man |
-fno-builtin | (in the manual page but not in --help) | man |
-fno-builtin-function | Don't recognize built-in functions that do not begin with __builtin_ as prefix. (in the manual page but not in --help) | man |
-fcond-mismatch | Allow conditional expressions with mismatched types in the second and third arguments. (in the manual page but not in --help) | man |
-ffreestanding | Assert that compilation targets a freestanding environment. (in the manual page but not in --help) | man |
-fgimple | Enable parsing of function definitions marked with "__GIMPLE". (in the manual page but not in --help) | man |
-fgnu-tm | When the option -fgnu-tm is specified, the compiler generates code for the Linux variant of Intel's current Transactional Memory ABI specification document (Revision 1.1, May 6 2009). (in the manual page but not in --help) | man |
-fgnu89-inline | The option -fgnu89-inline tells GCC to use the traditional GNU semantics for "inline" functions when in C99 mode. (in the manual page but not in --help) | man |
-fhosted | Assert that compilation targets a hosted environment. (in the manual page but not in --help) | man |
-flax-vector-conversions | Allow implicit conversions between vectors with differing numbers of elements and/or incompatible element types. (in the manual page but not in --help) | man |
-fms-extensions | Accept some non-standard constructs used in Microsoft header files. (in the manual page but not in --help) | man |
-foffload-options options | (in the manual page but not in --help) | man |
-fopenacc | Enable handling of OpenACC directives "#pragma acc" in C/C++ and "!$acc" in Fortran. (in the manual page but not in --help) | man |
-fopenacc-dim geom | Specify default compute dimensions for parallel offload regions that do not explicitly specify. (in the manual page but not in --help) | man |
-fopenmp | Enable handling of OpenMP directives "#pragma omp" in C/C++ and "!$omp" in Fortran. (in the manual page but not in --help) | man |
-fopenmp-simd | Enable handling of OpenMP's SIMD directives with "#pragma omp" in C/C++ and "!$omp" in Fortran. (in the manual page but not in --help) | man |
-fpermitted-flt-eval-methods style | ISO/IEC TS 18661-3 defines new permissible values for "FLT_EVAL_METHOD" that indicate that operations and constants with a semantic type that is an interchange or extended format should be evaluated… (in the manual page but not in --help) | man |
-fplan9-extensions | Accept some non-standard constructs used in Plan 9 code. (in the manual page but not in --help) | man |
-fsigned-bitfields | (in the manual page but not in --help) | man |
-funsigned-bitfields | (in the manual page but not in --help) | man |
-fno-signed-bitfields | (in the manual page but not in --help) | man |
-fno-unsigned-bitfields | These options control whether a bit-field is signed or unsigned, when the declaration does not use either "signed" or "unsigned". (in the manual page but not in --help) | man |
-fsigned-char | Let the type "char" be signed, like "signed char". (in the manual page but not in --help) | man |
-funsigned-char | Let the type "char" be unsigned, like "unsigned char". (in the manual page but not in --help) | man |
-fsso-struct endianness | Set the default scalar storage order of structures and unions to the specified endianness. (in the manual page but not in --help) | man |
-fabi-version n | Use version n of the C++ ABI. (in the manual page but not in --help) | man |
-fabi-compat-version n | On targets that support strong aliases, G++ works around mangling changes by creating an alias with the correct mangled name when defining a symbol with an incorrect mangled name. (in the manual page but not in --help) | man |
-fno-access-control | Turn off all access checking. (in the manual page but not in --help) | man |
-faligned-new | Enable support for C++17 "new" of types that require more alignment than "void ::operator new(std::size_t)" provides. (in the manual page but not in --help) | man |
-fchar8_t | (in the manual page but not in --help) | man |
-fno-char8_t | Enable support for "char8_t" as adopted for C++20. (in the manual page but not in --help) | man |
-fcheck-new | Check that the pointer returned by "operator new" is non-null before attempting to modify the storage allocated. (in the manual page but not in --help) | man |
-fconcepts | (in the manual page but not in --help) | man |
-fconcepts-ts | Below -std=c++20, -fconcepts enables support for the C++ Extensions for Concepts Technical Specification, ISO 19217 (2015). (in the manual page but not in --help) | man |
-fconstexpr-depth n | Set the maximum nested evaluation depth for C++11 constexpr functions to n. (in the manual page but not in --help) | man |
-fconstexpr-cache-depth n | Set the maximum level of nested evaluation depth for C++11 constexpr functions that will be cached to n. (in the manual page but not in --help) | man |
-fconstexpr-fp-except | Annex F of the C standard specifies that IEC559 floating point exceptions encountered at compile time should not stop compilation. (in the manual page but not in --help) | man |
-fconstexpr-loop-limit n | Set the maximum number of iterations for a loop in C++14 constexpr functions to n. (in the manual page but not in --help) | man |
-fconstexpr-ops-limit n | Set the maximum number of operations during a single constexpr evaluation. (in the manual page but not in --help) | man |
-fcoroutines | Enable support for the C++ coroutines extension (experimental). (in the manual page but not in --help) | man |
-fno-elide-constructors | The C++ standard allows an implementation to omit creating a temporary that is only used to initialize another object of the same type. (in the manual page but not in --help) | man |
-fno-enforce-eh-specs | Don't generate code to check for violation of exception specifications at run time. (in the manual page but not in --help) | man |
-fextern-tls-init | (in the manual page but not in --help) | man |
-fno-extern-tls-init | The C++11 and OpenMP standards allow "thread_local" and "threadprivate" variables to have dynamic (runtime) initialization. (in the manual page but not in --help) | man |
-ffold-simple-inlines | (in the manual page but not in --help) | man |
-fno-fold-simple-inlines | Permit the C++ frontend to fold calls to "std::move", "std::forward", "std::addressof" and "std::as_const". (in the manual page but not in --help) | man |
-fno-gnu-keywords | Do not recognize "typeof" as a keyword, so that code can use this word as an identifier. (in the manual page but not in --help) | man |
-fimplicit-constexpr | Make inline functions implicitly constexpr, if they satisfy the requirements for a constexpr function. (in the manual page but not in --help) | man |
-fno-implicit-templates | Never emit code for non-inline templates that are instantiated implicitly (i.e. by use); (in the manual page but not in --help) | man |
-fno-implicit-inline-templates | Don't emit code for implicit instantiations of inline templates, either. (in the manual page but not in --help) | man |
-fno-implement-inlines | To save space, do not emit out-of-line copies of inline functions controlled by "#pragma implementation". (in the manual page but not in --help) | man |
-fmodules-ts | (in the manual page but not in --help) | man |
-fno-modules-ts | Enable support for C++20 modules. (in the manual page but not in --help) | man |
-fmodule-header | (in the manual page but not in --help) | man |
-fmodule-implicit-inline | Member functions defined in their class definitions are not implicitly inline for modular code. (in the manual page but not in --help) | man |
-fno-module-lazy | Disable lazy module importing and module mapper creation. (in the manual page but not in --help) | man |
-fmodule-only | Only emit the Compiled Module Interface, inhibiting any object file. (in the manual page but not in --help) | man |
-fnew-inheriting-ctors | Enable the P0136 adjustment to the semantics of C++11 constructor inheritance. (in the manual page but not in --help) | man |
-fnew-ttp-matching | Enable the P0522 resolution to Core issue 150, template template parameters and default arguments: this allows a template with default template arguments as an argument for a template template… (in the manual page but not in --help) | man |
-fno-nonansi-builtins | Disable built-in declarations of functions that are not mandated by ANSI/ISO C. (in the manual page but not in --help) | man |
-fnothrow-opt | Treat a throw() exception specification as if it were a "noexcept" specification to reduce or eliminate the text size overhead relative to a function with no exception specification. (in the manual page but not in --help) | man |
-fno-operator-names | Do not treat the operator name keywords "and", "bitand", "bitor", "compl", "not", "or" and "xor" as synonyms as keywords. (in the manual page but not in --help) | man |
-fno-optional-diags | Disable diagnostics that the standard says a compiler does not need to issue. (in the manual page but not in --help) | man |
-fpermissive | Downgrade some diagnostics about nonconformant code from errors to warnings. (in the manual page but not in --help) | man |
-fno-pretty-templates | When an error message refers to a specialization of a function template, the compiler normally prints the signature of the template followed by the template arguments and any typedefs or typenames in… (in the manual page but not in --help) | man |
-fno-rtti | Disable generation of information about every class with virtual functions for use by the C++ run-time type identification features ("dynamic_cast" and "typeid"). (in the manual page but not in --help) | man |
-fsized-deallocation | Enable the built-in global declarations (in the manual page but not in --help) | man |
-fstrict-enums | Allow the compiler to optimize using the assumption that a value of enumerated type can only be one of the values of the enumeration (as defined in the C++ standard; (in the manual page but not in --help) | man |
-fstrong-eval-order | Evaluate member access, array subscripting, and shift expressions in left-to-right order, and evaluate assignment in right-to-left order, as adopted for C++17. (in the manual page but not in --help) | man |
-ftemplate-backtrace-limit n | Set the maximum number of template instantiation notes for a single warning or error to n. (in the manual page but not in --help) | man |
-ftemplate-depth n | Set the maximum instantiation depth for template classes to n. (in the manual page but not in --help) | man |
-fno-threadsafe-statics | Do not emit the extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics. (in the manual page but not in --help) | man |
-fuse-cxa-atexit | Register destructors for objects with static storage duration with the "__cxa_atexit" function rather than the "atexit" function. (in the manual page but not in --help) | man |
-fno-use-cxa-get-exception-ptr | Don't use the "__cxa_get_exception_ptr" runtime routine. (in the manual page but not in --help) | man |
-fvisibility-inlines-hidden | This switch declares that the user does not attempt to compare pointers to inline functions or methods where the addresses of the two functions are taken in different shared objects. (in the manual page but not in --help) | man |
-fvisibility-ms-compat | This flag attempts to use visibility settings to make GCC's C++ linkage model compatible with that of Microsoft Visual Studio. (in the manual page but not in --help) | man |
-fno-weak | Do not use weak symbol support, even if it is provided by the linker. (in the manual page but not in --help) | man |
-fext-numeric-literals (C++ | Accept imaginary, fixed-point, or machine-defined literal number suffixes as GNU extensions. (in the manual page but not in --help) | man |
-nostdinc++ | Do not search for header files in the standard directories specific to C++, but do still search the other standard directories. (in the manual page but not in --help) | man |
-flang-info-include-translate | (in the manual page but not in --help) | man |
-flang-info-include-translate-not | (in the manual page but not in --help) | man |
-flang-info-module-cmi | (in the manual page but not in --help) | man |
-stdlib libstdc++ | When G++ is configured to support this option, it allows specification of alternate C++ runtime libraries. (in the manual page but not in --help) | man |
-Wabi-tag (C++ | Warn when a type with an ABI tag is used in a context that does not have that ABI tag. (in the manual page but not in --help) | man |
-Wcomma-subscript (C++ | Warn about uses of a comma expression within a subscripting expression. (in the manual page but not in --help) | man |
-Wctad-maybe-unsupported (C++ | Warn when performing class template argument deduction (CTAD) on a type with no explicitly written deduction guides. (in the manual page but not in --help) | man |
-Wctor-dtor-privacy (C++ | Warn when a class seems unusable because all the constructors or destructors in that class are private, and it has neither friends nor public static member functions. (in the manual page but not in --help) | man |
-Wdelete-non-virtual-dtor (C++ | Warn when "delete" is used to destroy an instance of a class that has virtual functions and non-virtual destructor. (in the manual page but not in --help) | man |
-Wdeprecated-copy (C++ | Warn that the implicit declaration of a copy constructor or copy assignment operator is deprecated if the class has a user-provided copy constructor or copy assignment operator, in C++11 and up. (in the manual page but not in --help) | man |
-Wno-deprecated-enum-enum-conversion (C++ | Disable the warning about the case when the usual arithmetic conversions are applied on operands where one is of enumeration type and the other is of a different enumeration type. (in the manual page but not in --help) | man |
-Wdeprecated-enum-enum-conversion is | (in the manual page but not in --help) | man |
-Wno-deprecated-enum-float-conversion (C++ | Disable the warning about the case when the usual arithmetic conversions are applied on operands where one is of enumeration type and the other is of a floating-point type. (in the manual page but not in --help) | man |
-Wdeprecated-enum-float-conversion is | (in the manual page but not in --help) | man |
-Wno-init-list-lifetime (C++ | Do not warn about uses of "std::initializer_list" that are likely to result in dangling pointers. (in the manual page but not in --help) | man |
-Winvalid-imported-macros | Verify all imported macro definitions are valid at the end of compilation. (in the manual page but not in --help) | man |
-Wno-literal-suffix (C++ | Do not warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore. (in the manual page but not in --help) | man |
-Wno-narrowing (C++ | For C++11 and later standards, narrowing conversions are diagnosed by default, as required by the standard. (in the manual page but not in --help) | man |
-Wnoexcept (C++ | Warn when a noexcept-expression evaluates to false because of a call to a function that does not have a non-throwing exception specification (i.e. throw() or "noexcept") but is known by the compiler… (in the manual page but not in --help) | man |
-Wnoexcept-type (C++ | Warn if the C++17 feature making "noexcept" part of a function type changes the mangled name of a symbol relative to C++14. (in the manual page but not in --help) | man |
-Wclass-memaccess (C++ | Warn when the destination of a call to a raw memory function such as "memset" or "memcpy" is an object of class type, and when writing into such an object might bypass the class non-trivial or… (in the manual page but not in --help) | man |
-Wnon-virtual-dtor (C++ | Warn when a class has virtual functions and an accessible non-virtual destructor itself or in an accessible polymorphic base class, in which case it is possible but unsafe to delete an instance of a… (in the manual page but not in --help) | man |
-Wregister (C++ | Warn on uses of the "register" storage class specifier, except when it is part of the GNU Explicit Register Variables extension. (in the manual page but not in --help) | man |
-Wreorder (C++ | Warn when the order of member initializers given in the code does not match the order in which they must be executed. (in the manual page but not in --help) | man |
-Wno-pessimizing-move (C++ | This warning warns when a call to "std::move" prevents copy elision. (in the manual page but not in --help) | man |
-Wno-redundant-move (C++ | This warning warns about redundant calls to "std::move"; (in the manual page but not in --help) | man |
-Wrange-loop-construct (C++ | This warning warns when a C++ range-based for-loop is creating an unnecessary copy. (in the manual page but not in --help) | man |
-Wredundant-tags (C++ | Warn about redundant class-key and enum-key in references to class types and enumerated types in contexts where the key can be eliminated without causing an ambiguity. (in the manual page but not in --help) | man |
-Wno-subobject-linkage (C++ | Do not warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage. (in the manual page but not in --help) | man |
-Weffc++ (C++ | Warn about violations of the following style guidelines from Scott Meyers' Effective C++ series of books: (in the manual page but not in --help) | man |
-Wno-exceptions (C++ | Disable the warning about the case when an exception handler is shadowed by another handler, which can point out a wrong ordering of exception handlers. (in the manual page but not in --help) | man |
-Wstrict-null-sentinel (C++ | Warn about the use of an uncasted "NULL" as sentinel. (in the manual page but not in --help) | man |
-Wno-non-template-friend (C++ | Disable warnings when non-template friend functions are declared within a template. (in the manual page but not in --help) | man |
-Wold-style-cast (C++ | Warn if an old-style (C-style) cast to a non-void type is used within a C++ program. (in the manual page but not in --help) | man |
-Woverloaded-virtual (C++ | Warn when a function declaration hides virtual functions from a base class. (in the manual page but not in --help) | man |
-Wno-pmf-conversions (C++ | Disable the diagnostic for converting a bound pointer to member function to a plain pointer. (in the manual page but not in --help) | man |
-Wsign-promo (C++ | Warn when overload resolution chooses a promotion from unsigned or enumerated type to a signed type, over a conversion to an unsigned type of the same size. (in the manual page but not in --help) | man |
-Wtemplates (C++ | Warn when a primary template declaration is encountered. (in the manual page but not in --help) | man |
-Wmismatched-new-delete (C++ | Warn for mismatches between calls to "operator new" or "operator delete" and the corresponding call to the allocation or deallocation function. (in the manual page but not in --help) | man |
-Wmismatched-tags (C++ | Warn for declarations of structs, classes, and class templates and their specializations with a class-key that does not match either the definition or the first declaration if no definition is… (in the manual page but not in --help) | man |
-Wmultiple-inheritance (C++ | Warn when a class is defined with multiple direct base classes. (in the manual page but not in --help) | man |
-Wvirtual-inheritance | Warn when a class is defined with a virtual direct base class. (in the manual page but not in --help) | man |
-Wno-virtual-move-assign | Suppress warnings about inheriting from a virtual base with a non-trivial C++11 move assignment operator. (in the manual page but not in --help) | man |
-Wnamespaces | Warn when a namespace definition is opened. (in the manual page but not in --help) | man |
-Wno-terminate (C++ | Disable the warning about a throw-expression that will immediately result in a call to "terminate". (in the manual page but not in --help) | man |
-Wno-vexing-parse (C++ | Warn about the most vexing parse syntactic ambiguity. (in the manual page but not in --help) | man |
-Wno-class-conversion (C++ | Do not warn when a conversion function converts an object to the same type, to a base class of that type, or to void; (in the manual page but not in --help) | man |
-Wvolatile (C++ | Warn about deprecated uses of the "volatile" qualifier. (in the manual page but not in --help) | man |
-Wzero-as-null-pointer-constant (C++ | Warn when a literal 0 is used as null pointer constant. (in the manual page but not in --help) | man |
-Waligned-new | Warn about a new-expression of a type that requires greater alignment than the alignof(std::max_align_t) but uses an allocation function without an explicit alignment parameter. (in the manual page but not in --help) | man |
-Wno-placement-new | (in the manual page but not in --help) | man |
-Wplacement-new n | Warn about placement new expressions with undefined behavior, such as constructing an object in a buffer that is smaller than the type of the object. (in the manual page but not in --help) | man |
-Wcatch-value | (in the manual page but not in --help) | man |
-Wconditionally-supported (C++ | Warn for conditionally-supported (C++11 [intro.defs]) constructs. (in the manual page but not in --help) | man |
-Wno-delete-incomplete (C++ | Do not warn when deleting a pointer to incomplete type, which may cause undefined behavior at runtime. (in the manual page but not in --help) | man |
-Wextra-semi (C++ | Warn about redundant semicolons after in-class function definitions. (in the manual page but not in --help) | man |
-Wno-inaccessible-base (C++ | This option controls warnings when a base class is inaccessible in a class derived from it due to ambiguity. (in the manual page but not in --help) | man |
-Wno-inherited-variadic-ctor | Suppress warnings about use of C++11 inheriting constructors when the base class inherited from has a C variadic constructor; (in the manual page but not in --help) | man |
-Wno-invalid-offsetof (C++ | Suppress warnings from applying the "offsetof" macro to a non-POD type. (in the manual page but not in --help) | man |
-Wsized-deallocation (C++ | Warn about a definition of an unsized deallocation function (in the manual page but not in --help) | man |
-Wsuggest-final-types | Warn about types with virtual methods where code quality would be improved if the type were declared with the C++11 "final" specifier, or, if possible, declared in an anonymous namespace. (in the manual page but not in --help) | man |
-Wsuggest-final-methods | Warn about virtual methods where code quality would be improved if the method were declared with the C++11 "final" specifier, or, if possible, its type were declared in an anonymous namespace or with… (in the manual page but not in --help) | man |
-Wsuggest-override | Warn about overriding virtual functions that are not marked with the "override" keyword. (in the manual page but not in --help) | man |
-Wuse-after-free | (in the manual page but not in --help) | man |
-Wuseless-cast (C++ | Warn when an expression is casted to its own type. (in the manual page but not in --help) | man |
-Wno-conversion-null (C++ | Do not warn for conversions between "NULL" and non-pointer types. (in the manual page but not in --help) | man |
-fconstant-string-class class-name | Use class-name as the name of the class to instantiate for each literal string specified with the syntax "@"..."". (in the manual page but not in --help) | man |
-fgnu-runtime | Generate object code compatible with the standard GNU Objective-C runtime. (in the manual page but not in --help) | man |
-fnext-runtime | Generate output compatible with the NeXT runtime. (in the manual page but not in --help) | man |
-fno-nil-receivers | Assume that all Objective-C message dispatches ("[receiver message:arg]") in this translation unit ensure that the receiver is not "nil". (in the manual page but not in --help) | man |
-fobjc-abi-version n | Use version n of the Objective-C ABI for the selected runtime. (in the manual page but not in --help) | man |
-fobjc-call-cxx-cdtors | For each Objective-C class, check if any of its instance variables is a C++ object with a non-trivial default constructor. (in the manual page but not in --help) | man |
-fobjc-direct-dispatch | Allow fast jumps to the message dispatcher. (in the manual page but not in --help) | man |
-fobjc-exceptions | Enable syntactic support for structured exception handling in Objective-C, similar to what is offered by C++. (in the manual page but not in --help) | man |
-fobjc-gc | Enable garbage collection (GC) in Objective-C and Objective-C++ programs. (in the manual page but not in --help) | man |
-fobjc-nilcheck | For the NeXT runtime with version 2 of the ABI, check for a nil receiver in method invocations before doing the actual method call. (in the manual page but not in --help) | man |
-fobjc-std objc1 | Conform to the language syntax of Objective-C 1.0, the language recognized by GCC 4.0. (in the manual page but not in --help) | man |
-freplace-objc-classes | Emit a special marker instructing ld(1) not to statically link in the resulting object file, and allow dyld(1) to load it in at run time instead. (in the manual page but not in --help) | man |
-fzero-link | When compiling for the NeXT runtime, the compiler ordinarily replaces calls to objc_getClass("...") (when the name of the class is known at compile time) with static class references that get… (in the manual page but not in --help) | man |
-fno-local-ivars | By default instance variables in Objective-C can be accessed as if they were local variables from within the methods of the class they're declared in. (in the manual page but not in --help) | man |
-gen-decls | Dump interface declarations for all classes seen in the source file to a file named sourcename.decl. (in the manual page but not in --help) | man |
-Wassign-intercept (Objective-C | Warn whenever an Objective-C assignment is being intercepted by the garbage collector. (in the manual page but not in --help) | man |
-Wno-property-assign-default (Objective-C | Do not warn if a property for an Objective-C object has no assign semantics specified. (in the manual page but not in --help) | man |
-Wno-protocol (Objective-C | If a class is declared to implement a protocol, a warning is issued for every method in the protocol that is not implemented by the class. (in the manual page but not in --help) | man |
-Wobjc-root-class (Objective-C | Warn if a class interface lacks a superclass. (in the manual page but not in --help) | man |
-Wselector (Objective-C | Warn if multiple methods of different types for the same selector are found during compilation. (in the manual page but not in --help) | man |
-Wstrict-selector-match (Objective-C | Warn if multiple methods with differing argument and/or return types are found for a given selector when attempting to send a message using this selector to a receiver of type "id" or "Class". (in the manual page but not in --help) | man |
-Wundeclared-selector (Objective-C | Warn if a @selector(...) expression referring to an undeclared selector is found. (in the manual page but not in --help) | man |
-print-objc-runtime-info | Generate C header describing the largest structure that is passed by value, if any. (in the manual page but not in --help) | man |
-fmessage-length n | Try to format error messages so that they fit on lines of about n characters. (in the manual page but not in --help) | man |
-fdiagnostics-plain-output | This option requests that diagnostic output look as plain as possible, which may be useful when running dejagnu or other utilities that need to parse diagnostics output and prefer that it remain more… (in the manual page but not in --help) | man |
-fdiagnostics-show-location once | Only meaningful in line-wrapping mode. (in the manual page but not in --help) | man |
-fno-diagnostics-color | Use color in diagnostics. (in the manual page but not in --help) | man |
-fno-diagnostics-show-option | By default, each diagnostic emitted includes text indicating the command-line option that directly controls the diagnostic (if such an option is known to the diagnostic machinery). (in the manual page but not in --help) | man |
-fno-diagnostics-show-caret | By default, each diagnostic emitted includes the original source line and a caret ^ indicating the column. (in the manual page but not in --help) | man |
-fno-diagnostics-show-labels | By default, when printing source code (via -fdiagnostics-show-caret), diagnostics can label ranges of source code with pertinent information, such as the types of expressions: (in the manual page but not in --help) | man |
-fno-diagnostics-show-cwe | Diagnostic messages can optionally have an associated @url{https://cwe.mitre.org/index.html, CWE} identifier. (in the manual page but not in --help) | man |
-fno-diagnostics-show-line-numbers | By default, when printing source code (via -fdiagnostics-show-caret), a left margin is printed, showing line numbers. (in the manual page but not in --help) | man |
-fdiagnostics-minimum-margin-width width | This option controls the minimum width of the left margin printed by -fdiagnostics-show-line-numbers. (in the manual page but not in --help) | man |
-fdiagnostics-parseable-fixits | Emit fix-it hints in a machine-parseable format, suitable for consumption by IDEs. (in the manual page but not in --help) | man |
-fdiagnostics-generate-patch | Print fix-it hints to stderr in unified diff format, after any diagnostics are printed. (in the manual page but not in --help) | man |
-fdiagnostics-show-template-tree | In the C++ frontend, when printing diagnostics showing mismatching template types, such as: (in the manual page but not in --help) | man |
-fno-elide-type | By default when the C++ frontend prints diagnostics showing mismatching template types, common parts of the types are printed as "[...]" to simplify the error message. (in the manual page but not in --help) | man |
-fdiagnostics-path-format KIND | Specify how to print paths of control-flow events for diagnostics that have such a path associated with them. (in the manual page but not in --help) | man |
-fdiagnostics-show-path-depths | This option provides additional information when printing control-flow paths associated with a diagnostic. (in the manual page but not in --help) | man |
-fno-show-column | Do not print column numbers in diagnostics. (in the manual page but not in --help) | man |
-fdiagnostics-column-unit UNIT | Select the units for the column number. (in the manual page but not in --help) | man |
-fdiagnostics-column-origin ORIGIN | Select the origin for column numbers, i.e. the column number assigned to the first column. (in the manual page but not in --help) | man |
-fdiagnostics-escape-format FORMAT | When GCC prints pertinent source lines for a diagnostic it normally attempts to print the source bytes directly. (in the manual page but not in --help) | man |
-fdiagnostics-format FORMAT | Select a different format for printing diagnostics. (in the manual page but not in --help) | man |
-fsyntax-only | Check the code for syntax errors, but don't do anything beyond that. (in the manual page but not in --help) | man |
-fmax-errors n | Limits the maximum number of error messages to n, at which point GCC bails out rather than attempting to continue processing the source code. (in the manual page but not in --help) | man |
-w | Inhibit all warning messages. (in the manual page but not in --help) | man |
-Werror | Make all warnings into errors. (in the manual page but not in --help) | man |
-Wfatal-errors | This option causes the compiler to abort compilation on the first error occurred rather than trying to keep going and printing further error messages. (in the manual page but not in --help) | man |
-Wpedantic | (in the manual page but not in --help) | man |
-pedantic | Issue all the warnings demanded by strict ISO C and ISO C++; (in the manual page but not in --help) | man |
-pedantic-errors | Give an error whenever the base standard (see -Wpedantic) requires a diagnostic, in some cases where there is undefined behavior at compile-time and in some other cases that do not prevent… (in the manual page but not in --help) | man |
-Wall | This enables all the warnings about constructions that some users consider questionable, and that are easy to avoid (or modify to prevent the warning), even in conjunction with macros. (in the manual page but not in --help) | man |
-Wextra | This enables some extra warning flags that are not enabled by -Wall. (in the manual page but not in --help) | man |
-Wabi (C | Warn about code affected by ABI changes. (in the manual page but not in --help) | man |
-Wchar-subscripts | Warn if an array subscript has type "char". (in the manual page but not in --help) | man |
-Wno-coverage-mismatch | Warn if feedback profiles do not match when using the -fprofile-use option. (in the manual page but not in --help) | man |
-Wno-coverage-invalid-line-number | Warn in case a function ends earlier than it begins due to an invalid linenum macros. (in the manual page but not in --help) | man |
-Wno-cpp (C | Suppress warning messages emitted by "#warning" directives. (in the manual page but not in --help) | man |
-Wdouble-promotion (C | Give a warning when a value of type "float" is implicitly promoted to "double". (in the manual page but not in --help) | man |
-Wduplicate-decl-specifier (C | Warn if a declaration has duplicate "const", "volatile", "restrict" or "_Atomic" specifier. (in the manual page but not in --help) | man |
-Wformat | (in the manual page but not in --help) | man |
-Wno-format-contains-nul | If -Wformat is specified, do not warn about format strings that contain NUL bytes. (in the manual page but not in --help) | man |
-Wno-format-extra-args | If -Wformat is specified, do not warn about excess arguments to a "printf" or "scanf" format function. (in the manual page but not in --help) | man |
-Wformat-overflow | (in the manual page but not in --help) | man |
-Wno-format-zero-length | If -Wformat is specified, do not warn about zero-length formats. (in the manual page but not in --help) | man |
-Wformat-nonliteral | If -Wformat is specified, also warn if the format string is not a string literal and so cannot be checked, unless the format function takes its format arguments as a "va_list". (in the manual page but not in --help) | man |
-Wformat-security | If -Wformat is specified, also warn about uses of format functions that represent possible security problems. (in the manual page but not in --help) | man |
-Wformat-signedness | If -Wformat is specified, also warn if the format string requires an unsigned argument and the argument is signed and vice versa. (in the manual page but not in --help) | man |
-Wformat-truncation | (in the manual page but not in --help) | man |
-Wformat-y2k | If -Wformat is specified, also warn about "strftime" formats that may yield only a two-digit year. (in the manual page but not in --help) | man |
-Wnonnull | Warn about passing a null pointer for arguments marked as requiring a non-null value by the "nonnull" function attribute. (in the manual page but not in --help) | man |
-Wnonnull-compare | Warn when comparing an argument marked with the "nonnull" function attribute against null inside the function. (in the manual page but not in --help) | man |
-Wnull-dereference | Warn if the compiler detects paths that trigger erroneous or undefined behavior due to dereferencing a null pointer. (in the manual page but not in --help) | man |
-Winfinite-recursion | Warn about infinitely recursive calls. (in the manual page but not in --help) | man |
-Winit-self (C | Warn about uninitialized variables that are initialized with themselves. (in the manual page but not in --help) | man |
-Wno-implicit-int (C | This option controls warnings when a declaration does not specify a type. (in the manual page but not in --help) | man |
-Wno-implicit-function-declaration (C | This option controls warnings when a function is used before being declared. (in the manual page but not in --help) | man |
-Wimplicit (C | Same as -Wimplicit-int and -Wimplicit-function-declaration. (in the manual page but not in --help) | man |
-Wimplicit-fallthrough | (in the manual page but not in --help) | man |
-Wno-if-not-aligned (C | Control if warnings triggered by the "warn_if_not_aligned" attribute should be issued. (in the manual page but not in --help) | man |
-Wignored-qualifiers (C | Warn if the return type of a function has a type qualifier such as "const". (in the manual page but not in --help) | man |
-Wno-ignored-attributes (C | This option controls warnings when an attribute is ignored. (in the manual page but not in --help) | man |
-Wmain | Warn if the type of "main" is suspicious. (in the manual page but not in --help) | man |
-Wmisleading-indentation (C | Warn when the indentation of the code does not reflect the block structure. (in the manual page but not in --help) | man |
-Wmissing-attributes | Warn when a declaration of a function is missing one or more attributes that a related function is declared with and whose absence may adversely affect the correctness or efficiency of generated code. (in the manual page but not in --help) | man |
-Wmissing-braces | Warn if an aggregate or union initializer is not fully bracketed. (in the manual page but not in --help) | man |
-Wmissing-include-dirs (C | Warn if a user-supplied include directory does not exist. (in the manual page but not in --help) | man |
-Wno-missing-profile | This option controls warnings if feedback profiles are missing when using the -fprofile-use option. (in the manual page but not in --help) | man |
-Wmismatched-dealloc | Warn for calls to deallocation functions with pointer arguments returned from from allocations functions for which the former isn't a suitable deallocator. (in the manual page but not in --help) | man |
-Wmultistatement-macros | Warn about unsafe multiple statement macros that appear to be guarded by a clause such as "if", "else", "for", "switch", or "while", in which only the first statement is actually guarded after the… (in the manual page but not in --help) | man |
-Wparentheses | Warn if parentheses are omitted in certain contexts, such as when there is an assignment in a context where a truth value is expected, or when operators are nested whose precedence people often get… (in the manual page but not in --help) | man |
-Wsequence-point | Warn about code that may have undefined semantics because of violations of sequence point rules in the C and C++ standards. (in the manual page but not in --help) | man |
-Wno-return-local-addr | Do not warn about returning a pointer (or in C++, a reference) to a variable that goes out of scope after the function returns. (in the manual page but not in --help) | man |
-Wreturn-type | Warn whenever a function is defined with a return type that defaults to "int". (in the manual page but not in --help) | man |
-Wno-shift-count-negative | Controls warnings if a shift count is negative. (in the manual page but not in --help) | man |
-Wno-shift-count-overflow | Controls warnings if a shift count is greater than or equal to the bit width of the type. (in the manual page but not in --help) | man |
-Wshift-negative-value | Warn if left shifting a negative value. (in the manual page but not in --help) | man |
-Wno-shift-overflow | (in the manual page but not in --help) | man |
-Wshift-overflow n | These options control warnings about left shift overflows. (in the manual page but not in --help) | man |
-Wswitch | Warn whenever a "switch" statement has an index of enumerated type and lacks a "case" for one or more of the named codes of that enumeration. (in the manual page but not in --help) | man |
-Wswitch-default | Warn whenever a "switch" statement does not have a "default" case. (in the manual page but not in --help) | man |
-Wswitch-enum | Warn whenever a "switch" statement has an index of enumerated type and lacks a "case" for one or more of the named codes of that enumeration. (in the manual page but not in --help) | man |
-Wno-switch-bool | Do not warn when a "switch" statement has an index of boolean type and the case values are outside the range of a boolean type. (in the manual page but not in --help) | man |
-Wno-switch-outside-range | This option controls warnings when a "switch" case has a value that is outside of its respective type range. (in the manual page but not in --help) | man |
-Wno-switch-unreachable | Do not warn when a "switch" statement contains statements between the controlling expression and the first case label, which will never be executed. (in the manual page but not in --help) | man |
-Wswitch-unreachable does | (in the manual page but not in --help) | man |
-Wsync-nand (C | Warn when "__sync_fetch_and_nand" and "__sync_nand_and_fetch" built-in functions are used. (in the manual page but not in --help) | man |
-Wtrivial-auto-var-init | Warn when "-ftrivial-auto-var-init" cannot initialize the automatic variable. (in the manual page but not in --help) | man |
-Wunused-but-set-parameter | Warn whenever a function parameter is assigned to, but otherwise unused (aside from its declaration). (in the manual page but not in --help) | man |
-Wunused-but-set-variable | Warn whenever a local variable is assigned to, but otherwise unused (aside from its declaration). (in the manual page but not in --help) | man |
-Wunused-function | Warn whenever a static function is declared but not defined or a non-inline static function is unused. (in the manual page but not in --help) | man |
-Wunused-label | Warn whenever a label is declared but not used. (in the manual page but not in --help) | man |
-Wunused-local-typedefs (C | Warn when a typedef locally defined in a function is not used. (in the manual page but not in --help) | man |
-Wunused-parameter | Warn whenever a function parameter is unused aside from its declaration. (in the manual page but not in --help) | man |
-Wno-unused-result | Do not warn if a caller of a function marked with attribute "warn_unused_result" does not use its return value. (in the manual page but not in --help) | man |
-Wunused-variable | Warn whenever a local or static variable is unused aside from its declaration. (in the manual page but not in --help) | man |
-Wunused-const-variable | (in the manual page but not in --help) | man |
-Wunused-value | Warn whenever a statement computes a result that is explicitly not used. (in the manual page but not in --help) | man |
-Wunused | All the above -Wunused options combined. (in the manual page but not in --help) | man |
-Wuninitialized | Warn if an object with automatic or allocated storage duration is used without having been initialized. (in the manual page but not in --help) | man |
-Wno-invalid-memory-model | This option controls warnings for invocations of __atomic Builtins, __sync Builtins, and the C11 atomic generic functions with a memory consistency argument that is either invalid for the operation… (in the manual page but not in --help) | man |
-Winvalid-memory-model is | (in the manual page but not in --help) | man |
-Wmaybe-uninitialized | For an object with automatic or allocated storage duration, if there exists a path from the function entry to a use of the object that is initialized, but there exist some other paths for which the… (in the manual page but not in --help) | man |
-Wunknown-pragmas | Warn when a "#pragma" directive is encountered that is not understood by GCC. (in the manual page but not in --help) | man |
-Wno-pragmas | Do not warn about misuses of pragmas, such as incorrect parameters, invalid syntax, or conflicts between pragmas. (in the manual page but not in --help) | man |
-Wno-prio-ctor-dtor | Do not warn if a priority from 0 to 100 is used for constructor or destructor. (in the manual page but not in --help) | man |
-Wstrict-aliasing | This option is only active when -fstrict-aliasing is active. (in the manual page but not in --help) | man |
-Wstrict-overflow | (in the manual page but not in --help) | man |
-Wstring-compare | Warn for calls to "strcmp" and "strncmp" whose result is determined to be either zero or non-zero in tests for such equality owing to the length of one argument being greater than the size of the… (in the manual page but not in --help) | man |
-Wno-stringop-overflow | (in the manual page but not in --help) | man |
-Wstringop-overflow | (in the manual page but not in --help) | man |
-Wno-stringop-overread | Warn for calls to string manipulation functions such as "memchr", or "strcpy" that are determined to read past the end of the source sequence. (in the manual page but not in --help) | man |
-Wno-stringop-truncation | Do not warn for calls to bounded string manipulation functions such as "strncat", "strncpy", and "stpncpy" that may either truncate the copied string or leave the destination unchanged. (in the manual page but not in --help) | man |
-Wsuggest-attribute pure | (in the manual page but not in --help) | man |
-Wmissing-noreturn | (in the manual page but not in --help) | man |
-Wmissing-format-attribute | Warn about function pointers that might be candidates for "format" attributes. (in the manual page but not in --help) | man |
-Walloc-zero | Warn about calls to allocation functions decorated with attribute "alloc_size" that specify zero bytes, including those to the built-in forms of the functions "aligned_alloc", "alloca", "calloc",… (in the manual page but not in --help) | man |
-Walloc-size-larger-than byte-size | Warn about calls to functions decorated with attribute "alloc_size" that attempt to allocate objects larger than the specified number of bytes, or where the result of the size computation in an… (in the manual page but not in --help) | man |
-Wno-alloc-size-larger-than | Disable -Walloc-size-larger-than= warnings. (in the manual page but not in --help) | man |
-Walloca | This option warns on all uses of "alloca" in the source. (in the manual page but not in --help) | man |
-Walloca-larger-than byte-size | This option warns on calls to "alloca" with an integer argument whose value is either zero, or that is not bounded by a controlling predicate that limits its value to at most byte-size. (in the manual page but not in --help) | man |
-Wno-alloca-larger-than | Disable -Walloca-larger-than= warnings. (in the manual page but not in --help) | man |
-Warith-conversion | Do warn about implicit conversions from arithmetic operations even when conversion of the operands to the same type cannot change their values. (in the manual page but not in --help) | man |
-Warray-bounds | (in the manual page but not in --help) | man |
-Warray-compare | Warn about equality and relational comparisons between two operands of array type. (in the manual page but not in --help) | man |
-Warray-parameter | (in the manual page but not in --help) | man |
-Wattribute-alias n | (in the manual page but not in --help) | man |
-Wno-attribute-alias | Warn about declarations using the "alias" and similar attributes whose target is incompatible with the type of the alias. (in the manual page but not in --help) | man |
-Wbool-compare | Warn about boolean expression compared with an integer value different from "true"/"false". (in the manual page but not in --help) | man |
-Wbool-operation | Warn about suspicious operations on expressions of a boolean type. (in the manual page but not in --help) | man |
-Wduplicated-branches | Warn when an if-else has identical branches. (in the manual page but not in --help) | man |
-Wduplicated-cond | Warn about duplicated conditions in an if-else-if chain. (in the manual page but not in --help) | man |
-Wframe-address | Warn when the __builtin_frame_address or __builtin_return_address is called with an argument greater than 0. (in the manual page but not in --help) | man |
-Wno-discarded-qualifiers (C | Do not warn if type qualifiers on pointers are being discarded. (in the manual page but not in --help) | man |
-Wno-discarded-array-qualifiers (C | Do not warn if type qualifiers on arrays which are pointer targets are being discarded. (in the manual page but not in --help) | man |
-Wno-incompatible-pointer-types (C | Do not warn when there is a conversion between pointers that have incompatible types. (in the manual page but not in --help) | man |
-Wno-int-conversion (C | Do not warn about incompatible integer to pointer and pointer to integer conversions. (in the manual page but not in --help) | man |
-Wzero-length-bounds | Warn about accesses to elements of zero-length array members that might overlap other members of the same object. (in the manual page but not in --help) | man |
-Wno-div-by-zero | Do not warn about compile-time integer division by zero. (in the manual page but not in --help) | man |
-Wsystem-headers | Print warning messages for constructs found in system header files. (in the manual page but not in --help) | man |
-Wtautological-compare | Warn if a self-comparison always evaluates to true or false. (in the manual page but not in --help) | man |
-Wtrampolines | Warn about trampolines generated for pointers to nested functions. (in the manual page but not in --help) | man |
-Wfloat-equal | Warn if floating-point values are used in equality comparisons. (in the manual page but not in --help) | man |
-Wtraditional (C | Warn about certain constructs that behave differently in traditional and ISO C. (in the manual page but not in --help) | man |
-Wtraditional-conversion (C | Warn if a prototype causes a type conversion that is different from what would happen to the same argument in the absence of a prototype. (in the manual page but not in --help) | man |
-Wdeclaration-after-statement (C | Warn when a declaration is found after a statement in a block. (in the manual page but not in --help) | man |
-Wshadow | Warn whenever a local variable or type declaration shadows another variable, parameter, type, class member (in C++), or instance variable (in Objective-C) or whenever a built-in function is shadowed. (in the manual page but not in --help) | man |
-Wno-shadow-ivar (Objective-C | Do not warn whenever a local variable shadows an instance variable in an Objective-C method. (in the manual page but not in --help) | man |
-Wlarger-than byte-size | Warn whenever an object is defined whose size exceeds byte-size. (in the manual page but not in --help) | man |
-Wno-larger-than | Disable -Wlarger-than= warnings. (in the manual page but not in --help) | man |
-Wframe-larger-than byte-size | Warn if the size of a function frame exceeds byte-size. (in the manual page but not in --help) | man |
-Wno-frame-larger-than | Disable -Wframe-larger-than= warnings. (in the manual page but not in --help) | man |
-Wfree-nonheap-object | Warn when attempting to deallocate an object that was either not allocated on the heap, or by using a pointer that was not returned from a prior call to the corresponding allocation function. (in the manual page but not in --help) | man |
-Wstack-usage byte-size | Warn if the stack usage of a function might exceed byte-size. (in the manual page but not in --help) | man |
-Wno-stack-usage | Disable -Wstack-usage= warnings. (in the manual page but not in --help) | man |
-Wunsafe-loop-optimizations | Warn if the loop cannot be optimized because the compiler cannot assume anything on the bounds of the loop indices. (in the manual page but not in --help) | man |
-Wno-pedantic-ms-format (MinGW | When used in combination with -Wformat and -pedantic without GNU extensions, this option disables the warnings about non-ISO "printf" / "scanf" format width specifiers "I32", "I64", and "I" used on… (in the manual page but not in --help) | man |
-Wpointer-arith | Warn about anything that depends on the "size of" a function type or of "void". (in the manual page but not in --help) | man |
-Wno-pointer-compare | Do not warn if a pointer is compared with a zero character constant. (in the manual page but not in --help) | man |
-Wtsan | Warn about unsupported features in ThreadSanitizer. (in the manual page but not in --help) | man |
-Wtype-limits | Warn if a comparison is always true or always false due to the limited range of the data type, but do not warn for constant expressions. (in the manual page but not in --help) | man |
-Wabsolute-value (C | Warn for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. (in the manual page but not in --help) | man |
-Wcomment | (in the manual page but not in --help) | man |
-Wcomments | Warn whenever a comment-start sequence / appears in a / comment, or whenever a backslash-newline appears in a // comment. (in the manual page but not in --help) | man |
-Wtrigraphs | Warn if any trigraphs are encountered that might change the meaning of the program. (in the manual page but not in --help) | man |
-Wundef | Warn if an undefined identifier is evaluated in an "#if" directive. (in the manual page but not in --help) | man |
-Wexpansion-to-defined | Warn whenever defined is encountered in the expansion of a macro (including the case where the macro is expanded by an #if directive). (in the manual page but not in --help) | man |
-Wunused-macros | Warn about macros defined in the main file that are unused. (in the manual page but not in --help) | man |
-Wno-endif-labels | Do not warn whenever an "#else" or an "#endif" are followed by text. (in the manual page but not in --help) | man |
-Wbad-function-cast (C | Warn when a function call is cast to a non-matching type. (in the manual page but not in --help) | man |
-Wc90-c99-compat (C | Warn about features not present in ISO C90, but present in ISO C99. (in the manual page but not in --help) | man |
-Wc99-c11-compat (C | Warn about features not present in ISO C99, but present in ISO C11. (in the manual page but not in --help) | man |
-Wc11-c2x-compat (C | Warn about features not present in ISO C11, but present in ISO C2X. (in the manual page but not in --help) | man |
-Wc++-compat (C | Warn about ISO C constructs that are outside of the common subset of ISO C and ISO C++, e.g. request for implicit conversion from "void " to a pointer to non-"void" type. (in the manual page but not in --help) | man |
-Wc++11-compat (C++ | Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011, e.g., identifiers in ISO C++ 1998 that are keywords in ISO C++ 2011. (in the manual page but not in --help) | man |
-Wc++14-compat (C++ | Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014. (in the manual page but not in --help) | man |
-Wc++17-compat (C++ | Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017. (in the manual page but not in --help) | man |
-Wc++20-compat (C++ | Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020. (in the manual page but not in --help) | man |
-Wno-c++11-extensions (C++ | Do not warn about C++11 constructs in code being compiled using an older C++ standard. (in the manual page but not in --help) | man |
-Wno-c++14-extensions (C++ | Do not warn about C++14 constructs in code being compiled using an older C++ standard. (in the manual page but not in --help) | man |
-Wno-c++17-extensions (C++ | Do not warn about C++17 constructs in code being compiled using an older C++ standard. (in the manual page but not in --help) | man |
-Wno-c++20-extensions (C++ | Do not warn about C++20 constructs in code being compiled using an older C++ standard. (in the manual page but not in --help) | man |
-Wno-c++23-extensions (C++ | Do not warn about C++23 constructs in code being compiled using an older C++ standard. (in the manual page but not in --help) | man |
-Wcast-qual | Warn whenever a pointer is cast so as to remove a type qualifier from the target type. (in the manual page but not in --help) | man |
-Wcast-align | Warn whenever a pointer is cast such that the required alignment of the target is increased. (in the manual page but not in --help) | man |
-Wcast-function-type | Warn when a function pointer is cast to an incompatible function pointer. (in the manual page but not in --help) | man |
-Wwrite-strings | When compiling C, give string constants the type "const char[length]" so that copying the address of one into a non-"const" "char " pointer produces a warning. (in the manual page but not in --help) | man |
-Wclobbered | Warn for variables that might be changed by "longjmp" or "vfork". (in the manual page but not in --help) | man |
-Wconversion | Warn for implicit conversions that may alter a value. (in the manual page but not in --help) | man |
-Wdangling-else | Warn about constructions where there may be confusion to which "if" statement an "else" branch belongs. (in the manual page but not in --help) | man |
-Wdangling-pointer | (in the manual page but not in --help) | man |
-Wdate-time | Warn when macros "__TIME__", "__DATE__" or "__TIMESTAMP__" are encountered as they might prevent bit-wise-identical reproducible compilations. (in the manual page but not in --help) | man |
-Wempty-body | Warn if an empty body occurs in an "if", "else" or "do while" statement. (in the manual page but not in --help) | man |
-Wenum-compare | Warn about a comparison between values of different enumerated types. (in the manual page but not in --help) | man |
-Wenum-conversion | Warn when a value of enumerated type is implicitly converted to a different enumerated type. (in the manual page but not in --help) | man |
-Wjump-misses-init (C | Warn if a "goto" statement or a "switch" statement jumps forward across the initialization of a variable, or jumps backward to a label after the variable has been initialized. (in the manual page but not in --help) | man |
-Wsign-compare | Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned. (in the manual page but not in --help) | man |
-Wsign-conversion | Warn for implicit conversions that may change the sign of an integer value, like assigning a signed integer expression to an unsigned integer variable. (in the manual page but not in --help) | man |
-Wfloat-conversion | Warn for implicit conversions that reduce the precision of a real value. (in the manual page but not in --help) | man |
-Wno-scalar-storage-order | Do not warn on suspicious constructs involving reverse scalar storage order. (in the manual page but not in --help) | man |
-Wsizeof-array-div | Warn about divisions of two sizeof operators when the first one is applied to an array and the divisor does not equal the size of the array element. (in the manual page but not in --help) | man |
-Wsizeof-pointer-div | Warn for suspicious divisions of two sizeof expressions that divide the pointer size by the element size, which is the usual way to compute the array size but won't work out correctly with pointers. (in the manual page but not in --help) | man |
-Wsizeof-pointer-memaccess | Warn for suspicious length parameters to certain string and memory built-in functions if the argument uses "sizeof". (in the manual page but not in --help) | man |
-Wno-sizeof-array-argument | Do not warn when the "sizeof" operator is applied to a parameter that is declared as an array in a function definition. (in the manual page but not in --help) | man |
-Wmemset-elt-size | Warn for suspicious calls to the "memset" built-in function, if the first argument references an array, and the third argument is a number equal to the number of elements, but not equal to the size… (in the manual page but not in --help) | man |
-Wmemset-transposed-args | Warn for suspicious calls to the "memset" built-in function where the second argument is not zero and the third argument is zero. (in the manual page but not in --help) | man |
-Waddress | Warn about suspicious uses of address expressions. (in the manual page but not in --help) | man |
-Wno-address-of-packed-member | Do not warn when the address of packed member of struct or union is taken, which usually results in an unaligned pointer value. (in the manual page but not in --help) | man |
-Wlogical-op | Warn about suspicious uses of logical operators in expressions. (in the manual page but not in --help) | man |
-Wlogical-not-parentheses | Warn about logical not used on the left hand side operand of a comparison. (in the manual page but not in --help) | man |
-Waggregate-return | Warn if any functions that return structures or unions are defined or called. (in the manual page but not in --help) | man |
-Wno-aggressive-loop-optimizations | Warn if in a loop with constant number of iterations the compiler detects undefined behavior in some statement during one or more of the iterations. (in the manual page but not in --help) | man |
-Wno-attributes | Do not warn if an unexpected "__attribute__" is used, such as unrecognized attributes, function attributes applied to variables, etc. (in the manual page but not in --help) | man |
-Wno-builtin-declaration-mismatch | Warn if a built-in function is declared with an incompatible signature or as a non-function, or when a built-in function declared with a type that does not include a prototype is called with… (in the manual page but not in --help) | man |
-Wno-builtin-macro-redefined | Do not warn if certain built-in macros are redefined. (in the manual page but not in --help) | man |
-Wstrict-prototypes (C | Warn if a function is declared or defined without specifying the argument types. (in the manual page but not in --help) | man |
-Wold-style-declaration (C | Warn for obsolescent usages, according to the C Standard, in a declaration. (in the manual page but not in --help) | man |
-Wold-style-definition (C | Warn if an old-style function definition is used. (in the manual page but not in --help) | man |
-Wmissing-parameter-type (C | A function parameter is declared without a type specifier in K&R-style functions: (in the manual page but not in --help) | man |
-Wmissing-prototypes (C | Warn if a global function is defined without a previous prototype declaration. (in the manual page but not in --help) | man |
-Wmissing-declarations | Warn if a global function is defined without a previous declaration. (in the manual page but not in --help) | man |
-Wmissing-field-initializers | Warn if a structure's initializer has some fields missing. (in the manual page but not in --help) | man |
-Wno-missing-requires | By default, the compiler warns about a concept-id appearing as a C++20 simple-requirement: (in the manual page but not in --help) | man |
-Wno-missing-template-keyword | The member access tokens ., -> and :: must be followed by the "template" keyword if the parent object is dependent and the member being named is a template. (in the manual page but not in --help) | man |
-Wno-multichar | Do not warn if a multicharacter constant ('FOOF') is used. (in the manual page but not in --help) | man |
-Wno-attribute-warning | Do not warn about usage of functions declared with "warning" attribute. (in the manual page but not in --help) | man |
-Wno-deprecated | Do not warn about usage of deprecated features. (in the manual page but not in --help) | man |
-Wno-deprecated-declarations | Do not warn about uses of functions, variables, and types marked as deprecated by using the "deprecated" attribute. (in the manual page but not in --help) | man |
-Wno-overflow | Do not warn about compile-time overflow in constant expressions. (in the manual page but not in --help) | man |
-Wno-odr | Warn about One Definition Rule violations during link-time optimization. (in the manual page but not in --help) | man |
-Wopenacc-parallelism | Warn about potentially suboptimal choices related to OpenACC parallelism. (in the manual page but not in --help) | man |
-Wopenmp-simd | Warn if the vectorizer cost model overrides the OpenMP simd directive set by user. (in the manual page but not in --help) | man |
-Woverride-init (C | Warn if an initialized field without side effects is overridden when using designated initializers. (in the manual page but not in --help) | man |
-Wno-override-init-side-effects (C | Do not warn if an initialized field with side effects is overridden when using designated initializers. (in the manual page but not in --help) | man |
-Wpacked | Warn if a structure is given the packed attribute, but the packed attribute has no effect on the layout or size of the structure. (in the manual page but not in --help) | man |
-Wnopacked-bitfield-compat | The 4.1, 4.2 and 4.3 series of GCC ignore the "packed" attribute on bit-fields of type "char". (in the manual page but not in --help) | man |
-Wpacked-not-aligned (C | Warn if a structure field with explicitly specified alignment in a packed struct or union is misaligned. (in the manual page but not in --help) | man |
-Wpadded | Warn if padding is included in a structure, either to align an element of the structure or to align the whole structure. (in the manual page but not in --help) | man |
-Wredundant-decls | Warn if anything is declared more than once in the same scope, even in cases where multiple declaration is valid and changes nothing. (in the manual page but not in --help) | man |
-Wrestrict | Warn when an object referenced by a "restrict"-qualified parameter (or, in C++, a "__restrict"-qualified parameter) is aliased by another argument, or when copies between such objects overlap. (in the manual page but not in --help) | man |
-Wnested-externs (C | Warn if an "extern" declaration is encountered within a function. (in the manual page but not in --help) | man |
-Winline | Warn if a function that is declared as inline cannot be inlined. (in the manual page but not in --help) | man |
-Winterference-size | Warn about use of C++17 "std::hardware_destructive_interference_size" without specifying its value with --param destructive-interference-size. (in the manual page but not in --help) | man |
-Wint-in-bool-context | Warn for suspicious use of integer values where boolean values are expected, such as conditional expressions (?:) using non-boolean integer constants in boolean context, like "if (a <= b ? 2 : 3)". (in the manual page but not in --help) | man |
-Wno-int-to-pointer-cast | Suppress warnings from casts to pointer type of an integer of a different size. (in the manual page but not in --help) | man |
-Wno-pointer-to-int-cast (C | Suppress warnings from casts from a pointer to an integer type of a different size. (in the manual page but not in --help) | man |
-Winvalid-pch | Warn if a precompiled header is found in the search path but cannot be used. (in the manual page but not in --help) | man |
-Wlong-long | Warn if "long long" type is used. (in the manual page but not in --help) | man |
-Wvariadic-macros | Warn if variadic macros are used in ISO C90 mode, or if the GNU alternate syntax is used in ISO C99 mode. (in the manual page but not in --help) | man |
-Wno-varargs | Do not warn upon questionable usage of the macros used to handle variable arguments like "va_start". (in the manual page but not in --help) | man |
-Wvector-operation-performance | Warn if vector operation is not implemented via SIMD capabilities of the architecture. (in the manual page but not in --help) | man |
-Wvla | Warn if a variable-length array is used in the code. (in the manual page but not in --help) | man |
-Wvla-larger-than byte-size | If this option is used, the compiler warns for declarations of variable-length arrays whose size is either unbounded, or bounded by an argument that allows the array size to exceed byte-size bytes. (in the manual page but not in --help) | man |
-Wno-vla-larger-than | Disable -Wvla-larger-than= warnings. (in the manual page but not in --help) | man |
-Wvla-parameter | Warn about redeclarations of functions involving arguments of Variable Length Array types of inconsistent kinds or forms, and enable the detection of out-of-bounds accesses to such parameters by… (in the manual page but not in --help) | man |
-Wvolatile-register-var | Warn if a register variable is declared volatile. (in the manual page but not in --help) | man |
-Wdisabled-optimization | Warn if a requested optimization pass is disabled. (in the manual page but not in --help) | man |
-Wpointer-sign (C | Warn for pointer argument passing or assignment with different signedness. (in the manual page but not in --help) | man |
-Wstack-protector | This option is only active when -fstack-protector is active. (in the manual page but not in --help) | man |
-Woverlength-strings | Warn about string constants that are longer than the "minimum maximum" length specified in the C standard. (in the manual page but not in --help) | man |
-Wunsuffixed-float-constants (C | Issue a warning for any floating constant that does not have a suffix. (in the manual page but not in --help) | man |
-Wno-lto-type-mismatch | During the link-time optimization, do not warn about type mismatches in global declarations from different compilation units. (in the manual page but not in --help) | man |
-Wno-designated-init (C | Suppress warnings when a positional initializer is used to initialize a structure that has been marked with the "designated_init" attribute. (in the manual page but not in --help) | man |
-fanalyzer | This option enables an static analysis of program flow which looks for "interesting" interprocedural paths through the code, and issues warnings for problems found on them. (in the manual page but not in --help) | man |
-Wanalyzer-too-complex | If -fanalyzer is enabled, the analyzer uses various heuristics to attempt to explore the control flow and data flow in the program, but these can be defeated by sufficiently complicated code. (in the manual page but not in --help) | man |
-Wno-analyzer-double-fclose | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-double-free | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-exposure-through-output-file | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-file-leak | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-free-of-non-heap | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-malloc-leak | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-mismatching-deallocation | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-possible-null-argument | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-possible-null-dereference | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-null-argument | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-null-dereference | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-shift-count-negative | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-shift-count-overflow | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-stale-setjmp-buffer | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-tainted-allocation-size | This warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help) | man |
-Wno-analyzer-tainted-array-index | This warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help) | man |
-Wno-analyzer-tainted-divisor | This warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help) | man |
-Wno-analyzer-tainted-offset | This warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help) | man |
-Wno-analyzer-tainted-size | This warning requires both -fanalyzer and -fanalyzer-checker=taint to enable it; (in the manual page but not in --help) | man |
-Wno-analyzer-unsafe-call-within-signal-handler | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-use-after-free | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-use-of-pointer-in-stale-stack-frame | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-write-to-const | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-write-to-string-literal | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-Wno-analyzer-use-of-uninitialized-value | This warning requires -fanalyzer, which enables it; (in the manual page but not in --help) | man |
-fanalyzer-call-summaries | Simplify interprocedural analysis by computing the effect of certain calls, rather than exploring all paths through the function from callsite to each possible return. (in the manual page but not in --help) | man |
-fanalyzer-checker name | Restrict the analyzer to run just the named checker, and enable it. (in the manual page but not in --help) | man |
-fno-analyzer-feasibility | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fanalyzer-fine-grained | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fanalyzer-show-duplicate-count | This option is intended for analyzer developers: if multiple diagnostics have been detected as being duplicates of each other, it emits a note when reporting the best diagnostic, giving the number of… (in the manual page but not in --help) | man |
-fno-analyzer-state-merge | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fno-analyzer-state-purge | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fanalyzer-transitivity | This option enables transitivity of constraints within the analyzer. (in the manual page but not in --help) | man |
-fanalyzer-verbose-edges | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fanalyzer-verbose-state-changes | This option is intended for analyzer developers. (in the manual page but not in --help) | man |
-fanalyzer-verbosity level | This option controls the complexity of the control flow paths that are emitted for analyzer diagnostics. (in the manual page but not in --help) | man |
-fdump-analyzer | Dump internal details about what the analyzer is doing to file.analyzer.txt. (in the manual page but not in --help) | man |
-fdump-analyzer-stderr | Dump internal details about what the analyzer is doing to stderr. (in the manual page but not in --help) | man |
-fdump-analyzer-callgraph | Dump a representation of the call graph suitable for viewing with GraphViz to file.callgraph.dot. (in the manual page but not in --help) | man |
-fdump-analyzer-exploded-graph | Dump a representation of the "exploded graph" suitable for viewing with GraphViz to file.eg.dot. (in the manual page but not in --help) | man |
-fdump-analyzer-exploded-nodes | Emit diagnostics showing where nodes in the "exploded graph" are in relation to the program source. (in the manual page but not in --help) | man |
-fdump-analyzer-exploded-nodes-2 | Dump a textual representation of the "exploded graph" to file.eg.txt. (in the manual page but not in --help) | man |
-fdump-analyzer-exploded-nodes-3 | Dump a textual representation of the "exploded graph" to one dump file per node, to file.eg-id.txt. (in the manual page but not in --help) | man |
-fdump-analyzer-exploded-paths | Dump a textual representation of the "exploded path" for each diagnostic to file.idx.kind.epath.txt. (in the manual page but not in --help) | man |
-fdump-analyzer-feasibility | Dump internal details about the analyzer's search for feasible paths. (in the manual page but not in --help) | man |
-fdump-analyzer-json | Dump a compressed JSON representation of analyzer internals to file.analyzer.json.gz. (in the manual page but not in --help) | man |
-fdump-analyzer-state-purge | As per -fdump-analyzer-supergraph, dump a representation of the "supergraph" suitable for viewing with GraphViz, but annotate the graph with information on what state will be purged at each node. (in the manual page but not in --help) | man |
-fdump-analyzer-supergraph | Dump representations of the "supergraph" suitable for viewing with GraphViz to file.supergraph.dot and to file.supergraph-eg.dot. (in the manual page but not in --help) | man |
-fdump-analyzer-untracked | Emit custom warnings with internal details intended for analyzer developers. (in the manual page but not in --help) | man |
-g | Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF). (in the manual page but not in --help) | man |
-ggdb | Produce debugging information for use by GDB. (in the manual page but not in --help) | man |
-gdwarf | (in the manual page but not in --help) | man |
-gdwarf-version | Produce debugging information in DWARF format (if that is supported). (in the manual page but not in --help) | man |
-gbtf | Request BTF debug information. (in the manual page but not in --help) | man |
-gctf | (in the manual page but not in --help) | man |
-gctflevel | Request CTF debug information and use level to specify how much CTF debug information should be produced. (in the manual page but not in --help) | man |
-gstabs | Produce debugging information in stabs format (if that is supported), without GDB extensions. (in the manual page but not in --help) | man |
-gstabs+ | Produce debugging information in stabs format (if that is supported), using GNU extensions understood only by the GNU debugger (GDB). (in the manual page but not in --help) | man |
-gxcoff | Produce debugging information in XCOFF format (if that is supported). (in the manual page but not in --help) | man |
-gxcoff+ | Produce debugging information in XCOFF format (if that is supported), using GNU extensions understood only by the GNU debugger (GDB). (in the manual page but not in --help) | man |
-gvms | Produce debugging information in Alpha/VMS debug format (if that is supported). (in the manual page but not in --help) | man |
-glevel | (in the manual page but not in --help) | man |
-ggdblevel | (in the manual page but not in --help) | man |
-gstabslevel | (in the manual page but not in --help) | man |
-gxcofflevel | (in the manual page but not in --help) | man |
-gvmslevel | Request debugging information and also use level to specify how much information. (in the manual page but not in --help) | man |
-fno-eliminate-unused-debug-symbols | By default, no debug information is produced for symbols that are not actually used. (in the manual page but not in --help) | man |
-femit-class-debug-always | Instead of emitting debugging information for a C++ class in only one object file, emit it in all object files using the class. (in the manual page but not in --help) | man |
-fno-merge-debug-strings | Direct the linker to not merge together strings in the debugging information that are identical in different object files. (in the manual page but not in --help) | man |
-fdebug-prefix-map old=new | When compiling files residing in directory old, record debugging information describing them as if the files resided in directory new instead. (in the manual page but not in --help) | man |
-fvar-tracking | Run variable tracking pass. (in the manual page but not in --help) | man |
-fvar-tracking-assignments | Annotate assignments to user variables early in the compilation and attempt to carry the annotations over throughout the compilation all the way to the end, in an attempt to improve debug information… (in the manual page but not in --help) | man |
-gsplit-dwarf | If DWARF debugging information is enabled, separate as much debugging information as possible into a separate output file with the extension .dwo. (in the manual page but not in --help) | man |
-gdwarf32 | (in the manual page but not in --help) | man |
-gdwarf64 | If DWARF debugging information is enabled, the -gdwarf32 selects the 32-bit DWARF format and the -gdwarf64 selects the 64-bit DWARF format. (in the manual page but not in --help) | man |
-gdescribe-dies | Add description attributes to some DWARF DIEs that have no name attribute, such as artificial variables, external references and call site parameter DIEs. (in the manual page but not in --help) | man |
-gpubnames | Generate DWARF ".debug_pubnames" and ".debug_pubtypes" sections. (in the manual page but not in --help) | man |
-ggnu-pubnames | Generate ".debug_pubnames" and ".debug_pubtypes" sections in a format suitable for conversion into a GDB index. (in the manual page but not in --help) | man |
-fdebug-types-section | When using DWARF Version 4 or higher, type DIEs can be put into their own ".debug_types" section instead of making them part of the ".debug_info" section. (in the manual page but not in --help) | man |
-grecord-gcc-switches | (in the manual page but not in --help) | man |
-gno-record-gcc-switches | This switch causes the command-line options used to invoke the compiler that may affect code generation to be appended to the DW_AT_producer attribute in DWARF debugging information. (in the manual page but not in --help) | man |
-gstrict-dwarf | Disallow using extensions of later DWARF standard version than selected with -gdwarf-version. (in the manual page but not in --help) | man |
-gno-strict-dwarf | Allow using extensions of later DWARF standard version than selected with -gdwarf-version. (in the manual page but not in --help) | man |
-gas-loc-support | Inform the compiler that the assembler supports ".loc" directives. (in the manual page but not in --help) | man |
-gno-as-loc-support | Force GCC to generate DWARF2+ line number tables internally, if DWARF2+ line number tables are to be generated. (in the manual page but not in --help) | man |
-gas-locview-support | Inform the compiler that the assembler supports "view" assignment and reset assertion checking in ".loc" directives. (in the manual page but not in --help) | man |
-gno-as-locview-support | Force GCC to assign view numbers internally, if -gvariable-location-views are explicitly requested. (in the manual page but not in --help) | man |
-gcolumn-info | (in the manual page but not in --help) | man |
-gno-column-info | Emit location column information into DWARF debugging information, rather than just file and line. (in the manual page but not in --help) | man |
-gstatement-frontiers | (in the manual page but not in --help) | man |
-gno-statement-frontiers | This option causes GCC to create markers in the internal representation at the beginning of statements, and to keep them roughly in place throughout compilation, using them to guide the output of… (in the manual page but not in --help) | man |
-gvariable-location-views | (in the manual page but not in --help) | man |
-gno-variable-location-views | Augment variable location lists with progressive view numbers implied from the line number table. (in the manual page but not in --help) | man |
-ginternal-reset-location-views | (in the manual page but not in --help) | man |
-gno-internal-reset-location-views | Attempt to determine location views that can be omitted from location view lists. (in the manual page but not in --help) | man |
-ginline-points | (in the manual page but not in --help) | man |
-gno-inline-points | Generate extended debug information for inlined functions. (in the manual page but not in --help) | man |
-femit-struct-debug-baseonly | Emit debug information for struct-like types only when the base name of the compilation source file matches the base name of file in which the struct is defined. (in the manual page but not in --help) | man |
-femit-struct-debug-reduced | Emit debug information for struct-like types only when the base name of the compilation source file matches the base name of file in which the type is defined, unless the struct is a template or… (in the manual page but not in --help) | man |
-fno-dwarf2-cfi-asm | Emit DWARF unwind info as compiler generated ".eh_frame" section instead of using GAS ".cfi_" directives. (in the manual page but not in --help) | man |
-fno-eliminate-unused-debug-types | Normally, when producing DWARF output, GCC avoids producing debug symbol output for types that are nowhere used in the source file being compiled. (in the manual page but not in --help) | man |
-O | (in the manual page but not in --help) | man |
-O1 | Optimize. (in the manual page but not in --help) | man |
-O2 | Optimize even more. (in the manual page but not in --help) | man |
-O3 | Optimize yet more. (in the manual page but not in --help) | man |
-O0 | Reduce compilation time and make debugging produce the expected results. (in the manual page but not in --help) | man |
-Os | Optimize for size. (in the manual page but not in --help) | man |
-falign-functions -falign-jumps | It also enables -finline-functions, causes the compiler to tune for code size rather than execution speed, and performs further optimizations designed to reduce code size. (in the manual page but not in --help) | man |
-Ofast | Disregard strict standards compliance. (in the manual page but not in --help) | man |
-Og | Optimize debugging experience. (in the manual page but not in --help) | man |
-Oz | Optimize aggressively for size rather than speed. (in the manual page but not in --help) | man |
-fno-defer-pop | For machines that must pop arguments after a function call, always pop the arguments as soon as each function returns. (in the manual page but not in --help) | man |
-fforward-propagate | Perform a forward propagation pass on RTL. (in the manual page but not in --help) | man |
-ffp-contract style | (in the manual page but not in --help) | man |
-fomit-frame-pointer | Omit the frame pointer in functions that don't need one. (in the manual page but not in --help) | man |
-foptimize-sibling-calls | Optimize sibling and tail recursive calls. (in the manual page but not in --help) | man |
-foptimize-strlen | Optimize various standard C string functions (e.g. "strlen", "strchr" or "strcpy") and their "_FORTIFY_SOURCE" counterparts into faster alternatives. (in the manual page but not in --help) | man |
-fno-inline | Do not expand any functions inline apart from those marked with the "always_inline" attribute. (in the manual page but not in --help) | man |
-finline-small-functions | Integrate functions into their callers when their body is smaller than expected function call code (so overall size of program gets smaller). (in the manual page but not in --help) | man |
-findirect-inlining | Inline also indirect calls that are discovered to be known at compile time thanks to previous inlining. (in the manual page but not in --help) | man |
-finline-functions | Consider all functions for inlining, even if they are not declared inline. (in the manual page but not in --help) | man |
-finline-functions-called-once | Consider all "static" functions called once for inlining into their caller even if they are not marked "inline". (in the manual page but not in --help) | man |
-fearly-inlining | Inline functions marked by "always_inline" and functions whose body seems smaller than the function call overhead early before doing -fprofile-generate instrumentation and real inlining pass. (in the manual page but not in --help) | man |
-fipa-sra | Perform interprocedural scalar replacement of aggregates, removal of unused parameters and replacement of parameters passed by reference by parameters passed by value. (in the manual page but not in --help) | man |
-finline-limit n | By default, GCC limits the size of functions that can be inlined. (in the manual page but not in --help) | man |
-fno-keep-inline-dllexport | This is a more fine-grained version of -fkeep-inline-functions, which applies only to functions that are declared using the "dllexport" attribute or declspec. (in the manual page but not in --help) | man |
-fkeep-inline-functions | In C, emit "static" functions that are declared "inline" into the object file, even if the function has been inlined into all of its callers. (in the manual page but not in --help) | man |
-fkeep-static-functions | Emit "static" functions into the object file, even if the function is never used. (in the manual page but not in --help) | man |
-fkeep-static-consts | Emit variables declared "static const" when optimization isn't turned on, even if the variables aren't referenced. (in the manual page but not in --help) | man |
-fmerge-constants | Attempt to merge identical constants (string constants and floating-point constants) across compilation units. (in the manual page but not in --help) | man |
-fmerge-all-constants | Attempt to merge identical constants and identical variables. (in the manual page but not in --help) | man |
-fmodulo-sched | Perform swing modulo scheduling immediately before the first scheduling pass. (in the manual page but not in --help) | man |
-fmodulo-sched-allow-regmoves | Perform more aggressive SMS-based modulo scheduling with register moves allowed. (in the manual page but not in --help) | man |
-fno-branch-count-reg | Disable the optimization pass that scans for opportunities to use "decrement and branch" instructions on a count register instead of instruction sequences that decrement a register, compare it… (in the manual page but not in --help) | man |
-fno-function-cse | Do not put function addresses in registers; (in the manual page but not in --help) | man |
-fno-zero-initialized-in-bss | If the target supports a BSS section, GCC by default puts variables that are initialized to zero into BSS. (in the manual page but not in --help) | man |
-fthread-jumps | Perform optimizations that check to see if a jump branches to a location where another comparison subsumed by the first is found. (in the manual page but not in --help) | man |
-fsplit-wide-types | When using a type that occupies multiple registers, such as "long long" on a 32-bit system, split the registers apart and allocate them independently. (in the manual page but not in --help) | man |
-fsplit-wide-types-early | Fully split wide types early, instead of very late. (in the manual page but not in --help) | man |
-fcse-follow-jumps | In common subexpression elimination (CSE), scan through jump instructions when the target of the jump is not reached by any other path. (in the manual page but not in --help) | man |
-fcse-skip-blocks | This is similar to -fcse-follow-jumps, but causes CSE to follow jumps that conditionally skip over blocks. (in the manual page but not in --help) | man |