[PowerPC] Collect some CallLowering arguments into a struct. [NFC]
[llvm-project.git] / clang / docs / ClangCommandLineReference.rst
blob5b8a96b61b3de2086847892c969e534a1ddb6d34
1 ..
2   -------------------------------------------------------------------
3   NOTE: This file is automatically generated by running clang-tblgen
4   -gen-opt-docs. Do not edit this file by hand!!
5   -------------------------------------------------------------------
7 =====================================
8 Clang command line argument reference
9 =====================================
10 .. contents::
11    :local:
13 Introduction
14 ============
16 This page lists the command line arguments currently supported by the
17 GCC-compatible ``clang`` and ``clang++`` drivers.
20 .. program:: clang
21 .. option:: -B<dir>, --prefix <arg>, --prefix=<arg>
23 Add <dir> to search path for binaries and object files used implicitly
25 .. option:: -F<arg>
27 Add directory to framework include search path
29 .. option:: -ObjC
31 Treat source input files as Objective-C inputs
33 .. program:: clang1
34 .. option:: -ObjC++
35 .. program:: clang
37 Treat source input files as Objective-C++ inputs
39 .. option:: -Qn, -fno-ident
41 Do not emit metadata containing compiler name and version
43 .. option:: -Qunused-arguments
45 Don't emit warning for unused driver arguments
47 .. option:: -Qy, -fident
49 Emit metadata containing compiler name and version
51 .. option:: -Wa,<arg>,<arg2>...
53 Pass the comma separated arguments in <arg> to the assembler
55 .. option:: -Wlarge-by-value-copy=<arg>
57 .. option:: -Xarch\_<arg1> <arg2>
59 .. option:: -Xcuda-fatbinary <arg>
61 Pass <arg> to fatbinary invocation
63 .. option:: -Xcuda-ptxas <arg>
65 Pass <arg> to the ptxas assembler
67 .. option:: -Xopenmp-target <arg>
69 Pass <arg> to the target offloading toolchain.
71 .. program:: clang1
72 .. option:: -Xopenmp-target=<triple> <arg>
73 .. program:: clang
75 Pass <arg> to the target offloading toolchain identified by <triple>.
77 .. option:: -Z<arg>
79 .. option:: -a<arg>, --profile-blocks
81 .. option:: -all\_load
83 .. option:: -allowable\_client <arg>
85 .. option:: --analyze
87 Run the static analyzer
89 .. option:: --analyzer-no-default-checks
91 .. option:: --analyzer-output<arg>
93 Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text).
95 .. option:: -ansi, --ansi
97 .. option:: -arch <arg>
99 .. program:: clang1
100 .. option:: -arch\_errors\_fatal
101 .. program:: clang
103 .. program:: clang2
104 .. option:: -arch\_only <arg>
105 .. program:: clang
107 .. option:: -arcmt-migrate-emit-errors
109 Emit ARC errors even if the migrator can fix them
111 .. option:: -arcmt-migrate-report-output <arg>
113 Output path for the plist report
115 .. option:: --autocomplete=<arg>
117 .. option:: -bind\_at\_load
119 .. option:: -bundle
121 .. program:: clang1
122 .. option:: -bundle\_loader <arg>
123 .. program:: clang
125 .. option:: -cfguard
127 Emit tables and checks for Windows Control Flow Guard.
129 .. option:: -cfguard-no-checks
131 Emit tables required for Windows Control Flow Guard without checks.
133 .. option:: -client\_name<arg>
135 .. option:: -compatibility\_version<arg>
137 .. option:: --config <arg>
139 Specifies configuration file
141 .. option:: --constant-cfstrings
143 .. option:: -coverage, --coverage
145 .. option:: --cuda-compile-host-device
147 Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.
149 .. option:: --cuda-device-only
151 Compile CUDA code for device only
153 .. option:: --cuda-gpu-arch=<arg>, --no-cuda-gpu-arch=<arg>
155 CUDA GPU architecture (e.g. sm\_35).  May be specified more than once.
157 .. option:: --cuda-host-only
159 Compile CUDA code for host only.  Has no effect on non-CUDA compilations.
161 .. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
163 Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
165 .. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug
167 Enable device-side debug info generation. Disables ptxas optimizations.
169 .. option:: -current\_version<arg>
171 .. option:: -dead\_strip
173 .. option:: -dependency-dot <arg>
175 Filename to write DOT-formatted header dependencies to
177 .. option:: -dependency-file <arg>
179 Filename (or -) to write dependency output to
181 .. option:: -dumpmachine
183 .. option:: -dumpversion
185 .. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>
187 .. option:: -dylib\_file <arg>
189 .. option:: -dylinker
191 .. program:: clang1
192 .. option:: -dylinker\_install\_name<arg>
193 .. program:: clang
195 .. option:: -dynamic
197 .. option:: -dynamiclib
199 .. option:: -emit-ast
201 Emit Clang AST files for source inputs
203 .. option:: -exported\_symbols\_list <arg>
205 .. option:: -faligned-new=<arg>
207 .. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
209 Use approximate transcendental functions
211 .. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero
213 Flush denormal floating point values to zero in CUDA device mode.
215 .. option:: -fcuda-rdc, -fno-cuda-rdc
217 Generate relocatable device code, also known as separate compilation mode.
219 .. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
221 Use 32-bit pointers for accessing const/local/shared address spaces.
223 .. option:: -ffixed-r19
225 Reserve register r19 (Hexagon only)
227 .. option:: -fheinous-gnu-extensions
229 .. option:: -flat\_namespace
231 .. option:: -fopenmp-targets=<arg1>,<arg2>...
233 Specify comma-separated list of triples OpenMP offloading targets to be supported
235 .. option:: -force\_cpusubtype\_ALL
237 .. program:: clang1
238 .. option:: -force\_flat\_namespace
239 .. program:: clang
241 .. program:: clang2
242 .. option:: -force\_load <arg>
243 .. program:: clang
245 .. option:: -framework <arg>
247 .. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath
249 Add -rpath with architecture-specific resource directory to the linker flags
251 .. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>
253 Use the gcc toolchain at the given directory
255 .. option:: -gcodeview
257 Generate CodeView debug information
259 .. option:: -headerpad\_max\_install\_names<arg>
261 .. option:: -help, --help
263 Display available options
265 .. option:: --help-hidden
267 Display help for hidden options
269 .. option:: --hip-link
271 Link clang-offload-bundler bundles for HIP
273 .. option:: -image\_base <arg>
275 .. option:: -index-header-map
277 Make the next included directory (-I or -F) an indexer header map
279 .. option:: -init <arg>
281 .. option:: -install\_name <arg>
283 .. option:: -keep\_private\_externs
285 .. option:: -lazy\_framework <arg>
287 .. program:: clang1
288 .. option:: -lazy\_library <arg>
289 .. program:: clang
291 .. option:: -mbig-endian, -EB
293 .. option:: --migrate
295 Run the migrator
297 .. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>
299 .. option:: -mlinker-version=<arg>
301 .. option:: -mlittle-endian, -EL
303 .. option:: -mllvm <arg>
305 Additional arguments to forward to LLVM's option processing
307 .. option:: -module-dependency-dir <arg>
309 Directory to dump module dependencies to
311 .. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>
313 .. option:: -multi\_module
315 .. option:: -multiply\_defined <arg>
317 .. program:: clang1
318 .. option:: -multiply\_defined\_unused <arg>
319 .. program:: clang
321 .. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>
323 .. option:: --no-cuda-version-check
325 Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
327 .. option:: -no-integrated-cpp, --no-integrated-cpp
329 .. option:: -no\_dead\_strip\_inits\_and\_terms
331 .. option:: -nobuiltininc
333 Disable builtin #include directories
335 .. option:: -nocudainc
337 .. option:: -nocudalib
339 .. option:: -nodefaultlibs
341 .. option:: -nofixprebinding
343 .. option:: -nolibc
345 .. option:: -nomultidefs
347 .. option:: -nopie, -no-pie
349 .. option:: -noprebind
351 .. option:: -noprofilelib
353 .. option:: -noseglinkedit
355 .. option:: -nostartfiles
357 .. option:: -nostdinc, --no-standard-includes
359 .. program:: clang1
360 .. option:: -nostdinc++
361 .. program:: clang
363 Disable standard #include directories for the C++ standard library
365 .. option:: -nostdlib, --no-standard-libraries
367 .. program:: clang1
368 .. option:: -nostdlib++
369 .. program:: clang
371 .. option:: -nostdlibinc
373 .. option:: -o<file>, --output <arg>, --output=<arg>
375 Write output to <file>
377 .. option:: -objcmt-atomic-property
379 Make migration to 'atomic' properties
381 .. option:: -objcmt-migrate-all
383 Enable migration to modern ObjC
385 .. option:: -objcmt-migrate-annotation
387 Enable migration to property and method annotations
389 .. option:: -objcmt-migrate-designated-init
391 Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods
393 .. option:: -objcmt-migrate-instancetype
395 Enable migration to infer instancetype for method result type
397 .. option:: -objcmt-migrate-literals
399 Enable migration to modern ObjC literals
401 .. option:: -objcmt-migrate-ns-macros
403 Enable migration to NS\_ENUM/NS\_OPTIONS macros
405 .. option:: -objcmt-migrate-property
407 Enable migration to modern ObjC property
409 .. option:: -objcmt-migrate-property-dot-syntax
411 Enable migration of setter/getter messages to property-dot syntax
413 .. option:: -objcmt-migrate-protocol-conformance
415 Enable migration to add protocol conformance on classes
417 .. option:: -objcmt-migrate-readonly-property
419 Enable migration to modern ObjC readonly property
421 .. option:: -objcmt-migrate-readwrite-property
423 Enable migration to modern ObjC readwrite property
425 .. option:: -objcmt-migrate-subscripting
427 Enable migration to modern ObjC subscripting
429 .. option:: -objcmt-ns-nonatomic-iosonly
431 Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute
433 .. option:: -objcmt-returns-innerpointer-property
435 Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
437 .. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
439 Only modify files with a filename contained in the provided directory path
441 .. option:: -object
443 .. option:: -p, --profile
445 .. option:: -pagezero\_size<arg>
447 .. option:: -pg
449 Enable mcount instrumentation
451 .. option:: -pie
453 .. option:: -pipe, --pipe
455 Use pipes between commands, when possible
457 .. option:: -prebind
459 .. program:: clang1
460 .. option:: -prebind\_all\_twolevel\_modules
461 .. program:: clang
463 .. option:: -preload
465 .. option:: --print-diagnostic-categories
467 .. option:: -print-effective-triple, --print-effective-triple
469 Print the effective target triple
471 .. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>
473 Print the full library path of <file>
475 .. option:: -print-ivar-layout
477 Enable Objective-C Ivar layout bitmap print trace
479 .. option:: -print-libgcc-file-name, --print-libgcc-file-name
481 Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")
483 .. option:: -print-multi-directory, --print-multi-directory
485 .. option:: -print-multi-lib, --print-multi-lib
487 .. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>
489 Print the full program path of <name>
491 .. option:: -print-resource-dir, --print-resource-dir
493 Print the resource directory pathname
495 .. option:: -print-search-dirs, --print-search-dirs
497 Print the paths used for finding libraries and programs
499 .. option:: -print-target-triple, --print-target-triple
501 Print the normalized target triple
503 .. option:: -private\_bundle
505 .. option:: -pthread, -no-pthread
507 Support POSIX threads in generated code
509 .. option:: -pthreads
511 .. option:: -rdynamic
513 .. option:: -read\_only\_relocs <arg>
515 .. option:: -relocatable-pch, --relocatable-pch
517 Whether to build a relocatable precompiled header
519 .. option:: -remap
521 .. option:: -rewrite-legacy-objc
523 Rewrite Legacy Objective-C source to C++
525 .. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>
527 Compiler runtime library to use
529 .. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)
531 Save llvm statistics.
533 .. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)
535 Save intermediate compilation results.
537 .. option:: -sectalign <arg1> <arg2> <arg3>
539 .. option:: -sectcreate <arg1> <arg2> <arg3>
541 .. option:: -sectobjectsymbols <arg1> <arg2>
543 .. option:: -sectorder <arg1> <arg2> <arg3>
545 .. option:: -seg1addr<arg>
547 .. option:: -seg\_addr\_table <arg>
549 .. program:: clang1
550 .. option:: -seg\_addr\_table\_filename <arg>
551 .. program:: clang
553 .. option:: -segaddr <arg1> <arg2>
555 .. option:: -segcreate <arg1> <arg2> <arg3>
557 .. option:: -seglinkedit
559 .. option:: -segprot <arg1> <arg2> <arg3>
561 .. option:: -segs\_read\_<arg>
563 .. program:: clang1
564 .. option:: -segs\_read\_only\_addr <arg>
565 .. program:: clang
567 .. program:: clang2
568 .. option:: -segs\_read\_write\_addr <arg>
569 .. program:: clang
571 .. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>
573 Serialize compiler diagnostics to a file
575 .. option:: -shared, --shared
577 .. option:: -shared-libgcc
579 .. option:: -shared-libsan, -shared-libasan
581 Dynamically link the sanitizer runtime
583 .. option:: -single\_module
585 .. option:: -specs=<arg>, --specs=<arg>
587 .. option:: -static, --static
589 .. option:: -static-libgcc
591 .. option:: -static-libsan
593 Statically link the sanitizer runtime
595 .. option:: -static-libstdc++
597 .. option:: -std-default=<arg>
599 .. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>
601 C++ standard library to use
603 .. option:: -sub\_library<arg>
605 .. program:: clang1
606 .. option:: -sub\_umbrella<arg>
607 .. program:: clang
609 .. option:: --sysroot=<arg>, --sysroot <arg>
611 .. option:: --target-help
613 .. option:: --target=<arg>, -target <arg>
615 Generate code for the given target
617 .. option:: --print-supported-cpus
619 Print supported cpu models for the given target
621 .. option:: -time
623 Time individual commands
625 .. option:: -traditional, --traditional
627 .. option:: -traditional-cpp, --traditional-cpp
629 Enable some traditional CPP emulation
631 .. option:: -twolevel\_namespace
633 .. program:: clang1
634 .. option:: -twolevel\_namespace\_hints
635 .. program:: clang
637 .. option:: -umbrella <arg>
639 .. option:: -unexported\_symbols\_list <arg>
641 .. option:: -v, --verbose
643 Show commands to run and use verbose output
645 .. option:: --verify-debug-info
647 Verify the binary representation of debug output
649 .. option:: --version
651 Print version information
653 .. option:: -w, --no-warnings
655 Suppress all warnings
657 .. option:: -weak-l<arg>
659 .. option:: -weak\_framework <arg>
661 .. program:: clang1
662 .. option:: -weak\_library <arg>
663 .. program:: clang
665 .. program:: clang2
666 .. option:: -weak\_reference\_mismatches <arg>
667 .. program:: clang
669 .. option:: -whatsloaded
671 .. option:: -whyload
673 .. option:: -working-directory<arg>, -working-directory=<arg>
675 Resolve file paths relative to the specified directory
677 .. option:: -x<language>, --language <arg>, --language=<arg>
679 Treat subsequent input files as having type <language>
681 .. option:: -y<arg>
683 Actions
684 =======
685 The action to perform on the input.
687 .. option:: -E, --preprocess
689 Only run the preprocessor
691 .. option:: -S, --assemble
693 Only run preprocess and compilation steps
695 .. option:: -c, --compile
697 Only run preprocess, compile, and assemble steps
699 .. option:: -emit-llvm
701 Use the LLVM representation for assembler and object files
703 .. option:: -fsyntax-only
705 .. option:: -module-file-info
707 Provide information about a particular module file
709 .. option:: --precompile
711 Only precompile the input
713 .. option:: -rewrite-objc
715 Rewrite Objective-C source to C++
717 .. option:: -verify-pch
719 Load and verify that a pre-compiled header file is not stale
721 Compilation flags
722 =================
724 Flags controlling the behavior of Clang during compilation. These flags have
725 no effect during actions that do not perform compilation.
727 .. option:: -Xassembler <arg>
729 Pass <arg> to the assembler
731 .. option:: -Xclang <arg>
733 Pass <arg> to the clang compiler
735 .. option:: -fclang-abi-compat=<version>
737 Attempt to match the ABI of Clang <version>
739 .. option:: -fcomment-block-commands=<arg>,<arg2>...
741 Treat each comma separated argument in <arg> as a documentation comment block command
743 .. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
745 Require member pointer base types to be complete if they would be significant under the Microsoft ABI
747 .. option:: -fcrash-diagnostics-dir=<arg>
749 .. option:: -fdeclspec, -fno-declspec
751 Allow \_\_declspec as a keyword
753 .. option:: -fdepfile-entry=<arg>
755 .. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info
757 .. option:: -fdiagnostics-format=<arg>
759 .. option:: -fdiagnostics-parseable-fixits
761 Print fix-its in machine parseable form
763 .. option:: -fdiagnostics-print-source-range-info
765 Print source range spans in numeric form
767 .. option:: -fdiagnostics-show-category=<arg>
769 .. option:: -fdiscard-value-names, -fno-discard-value-names
771 Discard value names in LLVM IR
773 .. option:: -fexperimental-isel, -fno-experimental-isel
775 Enables the experimental global instruction selector
777 .. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager
779 Enables an experimental new pass manager in LLVM.
781 .. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
783 Use separate accesses for consecutive bitfield runs with legal widths and alignments.
785 .. option:: -finline-functions, -fno-inline-functions
787 Inline suitable functions
789 .. option:: -finline-hint-functions
791 Inline functions which are (explicitly or implicitly) marked inline
793 .. option:: -fno-crash-diagnostics
795 Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
797 .. option:: -fno-sanitize-blacklist
799 Don't use blacklist file for sanitizers
801 .. option:: -fparse-all-comments
803 .. option:: -frecord-command-line, -frecord-gcc-switches, -fno-record-command-line, -fno-record-gcc-switches
805 Generate a section named ".GCC.command.line" containing the clang driver
806 command-line. After linking, the section may contain multiple command lines,
807 which will be individually terminated by null bytes. Separate arguments within
808 a command line are combined with spaces; spaces and backslashes within an
809 argument are escaped with backslashes. This format differs from the format of
810 the equivalent section produced by GCC with the -frecord-gcc-switches flag.
811 This option is currently only supported on ELF targets.
813 .. option:: -fsanitize-address-field-padding=<arg>
815 Level of field padding for AddressSanitizer
817 .. option:: -fsanitize-address-globals-dead-stripping
819 Enable linker dead stripping of globals in AddressSanitizer
821 .. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
823 Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
825 .. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
827 Enable "poisoning" array cookies when allocating arrays with a custom operator new\[\] in Address Sanitizer, preventing accesses to the cookies from user code. An array cookie is a small implementation-defined header added to certain array allocations to record metadata such as the length of the array. Accesses to array cookies from user code are technically allowed by the standard but are more likely to be the result of an out-of-bounds array access.
829 An operator new\[\] is "custom" if it is not one of the allocation functions provided by the C++ standard library. Array cookies from non-custom allocation functions are always poisoned.
831 .. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
833 Enable use-after-scope detection in AddressSanitizer
835 .. option:: -fsanitize-blacklist=<arg>
837 Path to blacklist file for sanitizers
839 .. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
841 Enable control flow integrity (CFI) checks for cross-DSO calls.
843 .. option:: -fsanitize-cfi-icall-generalize-pointers
845 Generalize pointers in CFI indirect call type signature checks
847 .. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
849 Specify the type of coverage instrumentation for Sanitizers
851 .. option:: -fsanitize-link-c++-runtime
853 .. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
855 Enable origins tracking in MemorySanitizer
857 .. program:: clang1
858 .. option:: -fsanitize-memory-track-origins=<arg>
859 .. program:: clang
861 Enable origins tracking in MemorySanitizer
863 .. option:: -fsanitize-memory-use-after-dtor, -fno-sanitize-memory-use-after-dtor
865 Enable use-after-destroy detection in MemorySanitizer
867 .. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
869 .. option:: -fsanitize-recover, -fno-sanitize-recover
871 .. program:: clang1
872 .. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>...
873 .. program:: clang
875 Enable recovery for specified sanitizers
877 .. option:: -fsanitize-stats, -fno-sanitize-stats
879 Enable sanitizer statistics gathering.
881 .. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics
883 Enable atomic operations instrumentation in ThreadSanitizer (default)
885 .. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit
887 Enable function entry/exit instrumentation in ThreadSanitizer (default)
889 .. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access
891 Enable memory access instrumentation in ThreadSanitizer (default)
893 .. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>...
895 Enable trapping for specified sanitizers
897 .. option:: -fsanitize-undefined-strip-path-components=<number>
899 Strip (or keep only, if negative) a given number of path components when emitting check metadata.
901 .. option:: -fsanitize-undefined-trap-on-error, -fno-sanitize-undefined-trap-on-error
903 .. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...
905 Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
907 .. option:: -moutline, -mno-outline
909 Enable function outlining (AArch64 only)
911 .. option:: --param <arg>, --param=<arg>
913 .. option:: -std=<arg>, --std=<arg>, --std <arg>
915 Language standard to compile for
917 Preprocessor flags
918 ~~~~~~~~~~~~~~~~~~
920 Flags controlling the behavior of the Clang preprocessor.
922 .. option:: -C, --comments
924 Include comments in preprocessed output
926 .. option:: -CC, --comments-in-macros
928 Include comments from within macros in preprocessed output
930 .. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg>
932 Define <macro> to <value> (or 1 if <value> omitted)
934 .. option:: -H, --trace-includes
936 Show header includes and nesting depth
938 .. option:: -P, --no-line-commands
940 Disable linemarker output in -E mode
942 .. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>
944 Undefine macro <macro>
946 .. option:: -Wp,<arg>,<arg2>...
948 Pass the comma separated arguments in <arg> to the preprocessor
950 .. option:: -Xpreprocessor <arg>
952 Pass <arg> to the preprocessor
954 Include path management
955 -----------------------
957 Flags controlling how ``#include``\s are resolved to files.
959 .. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg>
961 Add directory to include search path
963 .. option:: -I-, --include-barrier
965 Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
967 .. option:: --cuda-path-ignore-env
969 Ignore environment variables to detect CUDA installation
971 .. option:: --cuda-path=<arg>
973 CUDA installation path
975 .. option:: -cxx-isystem<directory>
977 Add directory to the C++ SYSTEM include search path
979 .. option:: -fbuild-session-file=<file>
981 Use the last modification time of <file> as the build session timestamp
983 .. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
985 Time when the current build session started
987 .. option:: -fmodule-file=\[<name>=\]<file>
989 Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
991 .. option:: -fmodules-cache-path=<directory>
993 Specify the module cache path
995 .. option:: -fmodules-disable-diagnostic-validation
997 Disable validation of the diagnostic options when loading the module
999 .. option:: -fmodules-prune-after=<seconds>
1001 Specify the interval (in seconds) after which a module file will be considered unused
1003 .. option:: -fmodules-prune-interval=<seconds>
1005 Specify the interval (in seconds) between attempts to prune the module cache
1007 .. option:: -fmodules-user-build-path <directory>
1009 Specify the module user build path
1011 .. option:: -fmodules-validate-once-per-build-session
1013 Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
1015 .. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
1017 Validate the system headers that a module depends on when loading the module
1019 .. option:: -fprebuilt-module-path=<directory>
1021 Specify the prebuilt module path
1023 .. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
1025 Add directory to AFTER include search path
1027 .. option:: -iframework<arg>
1029 Add directory to SYSTEM framework search path
1031 .. option:: -iframeworkwithsysroot<directory>
1033 Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
1035 .. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
1037 Include macros from file before parsing
1039 .. option:: -include<file>, --include<file>, --include=<arg>
1041 Include file before parsing
1043 .. option:: -include-pch <file>
1045 Include precompiled header file
1047 .. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
1049 Set the -iwithprefix/-iwithprefixbefore prefix
1051 .. option:: -iquote<directory>
1053 Add directory to QUOTE include search path
1055 .. option:: -isysroot<dir>
1057 Set the system root directory (usually /)
1059 .. option:: -isystem<directory>
1061 Add directory to SYSTEM include search path
1063 .. option:: -isystem-after<directory>
1065 Add directory to end of the SYSTEM include search path
1067 .. option:: -ivfsoverlay<arg>
1069 Overlay the virtual filesystem described by file over the real file system
1071 .. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
1073 Set directory to SYSTEM include search path with prefix
1075 .. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
1077 Set directory to include search path with prefix
1079 .. option:: -iwithsysroot<directory>
1081 Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
1083 .. option:: --ptxas-path=<arg>
1085 Path to ptxas (used for compiling CUDA code)
1087 .. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
1089 Treat all #include paths starting with <prefix> as including a system header.
1091 Dependency file generation
1092 --------------------------
1094 Flags controlling generation of a dependency file for ``make``-like build
1095 systems.
1097 .. option:: -M, --dependencies
1099 Like -MD, but also implies -E and writes to stdout by default
1101 .. option:: -MD, --write-dependencies
1103 Write a depfile containing user and system headers
1105 .. option:: -MF<file>
1107 Write depfile output from -MMD, -MD, -MM, or -M to <file>
1109 .. option:: -MG, --print-missing-file-dependencies
1111 Add missing headers to depfile
1113 .. option:: -MJ<arg>
1115 Write a compilation database entry per input
1117 .. option:: -MM, --user-dependencies
1119 Like -MMD, but also implies -E and writes to stdout by default
1121 .. option:: -MMD, --write-user-dependencies
1123 Write a depfile containing user headers
1125 .. option:: -MP
1127 Create phony target for each dependency (other than main file)
1129 .. option:: -MQ<arg>
1131 Specify name of main file output to quote in depfile
1133 .. option:: -MT<arg>
1135 Specify name of main file output in depfile
1137 .. option:: -MV
1139 Use NMake/Jom format for the depfile
1141 Dumping preprocessor state
1142 --------------------------
1144 Flags allowing the state of the preprocessor to be dumped in various ways.
1146 .. option:: -d
1148 .. program:: clang1
1149 .. option:: -d<arg>
1150 .. program:: clang
1152 .. option:: -dD
1154 Print macro definitions in -E mode in addition to normal output
1156 .. option:: -dI
1158 Print include directives in -E mode in addition to normal output
1160 .. option:: -dM
1162 Print macro definitions in -E mode instead of normal output
1164 Diagnostic flags
1165 ~~~~~~~~~~~~~~~~
1167 Flags controlling which warnings, errors, and remarks Clang will generate.
1168 See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
1170 .. option:: -R<remark>
1172 Enable the specified remark
1174 .. option:: -Rpass-analysis=<arg>
1176 Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
1178 .. option:: -Rpass-missed=<arg>
1180 Report missed transformations by optimization passes whose name matches the given POSIX regular expression
1182 .. option:: -Rpass=<arg>
1184 Report transformations performed by optimization passes whose name matches the given POSIX regular expression
1186 .. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
1188 Enable the specified warning
1190 .. option:: -Wdeprecated, -Wno-deprecated
1192 Enable warnings for deprecated constructs and define \_\_DEPRECATED
1194 .. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
1196 Target-independent compilation options
1197 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1198 .. option:: -Wframe-larger-than=<arg>
1200 .. option:: -fPIC, -fno-PIC
1202 .. option:: -fPIE, -fno-PIE
1204 .. option:: -faccess-control, -fno-access-control
1206 .. option:: -faddrsig, -fno-addrsig
1208 Emit an address-significance table
1210 .. option:: -falign-functions, -fno-align-functions
1212 .. program:: clang1
1213 .. option:: -falign-functions=<arg>
1214 .. program:: clang
1216 .. program:: clang1
1217 .. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
1218 .. program:: clang
1220 Enable C++17 aligned allocation functions
1222 .. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
1224 Treat editor placeholders as valid source code
1226 .. option:: -fallow-unsupported
1228 .. option:: -faltivec, -fno-altivec
1230 .. option:: -fansi-escape-codes
1232 Use ANSI escape codes for diagnostics
1234 .. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
1236 Use Apple's kernel extensions ABI
1238 .. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
1240 Enable Apple gcc-compatible #pragma pack handling
1242 .. option:: -fapplication-extension, -fno-application-extension
1244 Restrict code to those available for App Extensions
1246 .. option:: -fasm, -fno-asm
1248 .. option:: -fasm-blocks, -fno-asm-blocks
1250 .. option:: -fassociative-math, -fno-associative-math
1252 .. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
1254 .. option:: -fast
1256 .. option:: -fastcp
1258 .. option:: -fastf
1260 .. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
1262 .. option:: -fautolink, -fno-autolink
1264 .. option:: -fblocks, -fno-blocks
1266 Enable the 'blocks' language feature
1268 .. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
1270 .. option:: -fborland-extensions, -fno-borland-extensions
1272 Accept non-standard constructs supported by the Borland compiler
1274 .. option:: -fbracket-depth=<arg>
1276 .. option:: -fbuiltin, -fno-builtin
1278 .. option:: -fbuiltin-module-map
1280 Load the clang builtins module map file.
1282 .. option:: -fc++-static-destructors, -fno-c++-static-destructors
1284 Enable C++ static destructor registration (the default)
1286 .. option:: -fcaret-diagnostics, -fno-caret-diagnostics
1288 .. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
1290 Instrument control-flow architecture protection. Options: return, branch, full, none.
1292 .. option:: -fchar8\_t, -fno-char8\_t
1294 Enable C++ builtin type char8\_t
1296 .. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
1298 .. option:: -fcolor-diagnostics, -fno-color-diagnostics
1300 Use colors in diagnostics
1302 .. option:: -fcommon, -fno-common
1304 .. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
1306 .. option:: -fconstant-cfstrings, -fno-constant-cfstrings
1308 .. option:: -fconstant-string-class=<arg>
1310 .. option:: -fconstexpr-backtrace-limit=<arg>
1312 .. option:: -fconstexpr-depth=<arg>
1314 .. option:: -fconstexpr-steps=<arg>
1316 .. option:: -fcoroutines-ts, -fno-coroutines-ts
1318 Enable support for the C++ Coroutines TS
1320 .. option:: -fcoverage-mapping, -fno-coverage-mapping
1322 Generate coverage mapping to enable code coverage analysis
1324 .. option:: -fcreate-profile
1326 .. option:: -fcxx-exceptions, -fno-cxx-exceptions
1328 Enable C++ exceptions
1330 .. option:: -fcxx-modules, -fno-cxx-modules
1332 .. option:: -fdata-sections, -fno-data-sections
1334 Place each data in its own section (ELF Only)
1336 .. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
1338 Emit extra debug info to make sample profile more accurate.
1340 .. option:: -fdebug-macro, -fno-debug-macro
1342 Emit macro debug information
1344 .. option:: -fdebug-pass-arguments
1346 .. option:: -fdebug-pass-structure
1348 .. option:: -fdebug-prefix-map=<arg>
1350 remap file source paths in debug info
1352 .. option:: -fdebug-types-section, -fno-debug-types-section
1354 Place debug types in their own section (ELF Only)
1356 .. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
1358 Parse templated function definitions at the end of the translation unit
1360 .. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
1362 Treat usage of null pointers as undefined behavior.
1364 .. option:: -fdenormal-fp-math=<arg>
1366 .. option:: -fdiagnostics-absolute-paths
1368 Print absolute paths in diagnostics
1370 .. option:: -fdiagnostics-color, -fno-diagnostics-color
1372 .. program:: clang1
1373 .. option:: -fdiagnostics-color=<arg>
1374 .. program:: clang
1376 .. option:: -fdiagnostics-hotness-threshold=<number>
1378 Prevent optimization remarks from being output if they do not have at least this profile count
1380 .. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
1382 Enable profile hotness information in diagnostic line
1384 .. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
1386 Display include stacks for diagnostic notes
1388 .. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
1390 Print option name with mappable diagnostics
1392 .. option:: -fdiagnostics-show-template-tree
1394 Print a template comparison tree for differing templates
1396 .. option:: -fdigraphs, -fno-digraphs
1398 Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
1400 .. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
1402 Allow '$' in identifiers
1404 .. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
1406 Enable '\[\[\]\]' attributes in all C and C++ language modes
1408 .. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
1410 .. option:: -fdwarf-exceptions
1412 Use DWARF style exceptions
1414 .. option:: -felide-constructors, -fno-elide-constructors
1416 .. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
1418 .. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
1420 Embed LLVM bitcode (option: off, all, bitcode, marker)
1422 .. option:: -femit-all-decls
1424 Emit all declarations, even if unused
1426 .. option:: -femulated-tls, -fno-emulated-tls
1428 Use emutls functions to access thread\_local variables
1430 .. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
1432 .. option:: -ferror-limit=<arg>
1434 .. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
1436 .. option:: -fexceptions, -fno-exceptions
1438 Enable support for exception handling
1440 .. option:: -fexec-charset=<arg>
1442 .. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
1444 .. option:: -ffast-math, -fno-fast-math
1446 Allow aggressive, lossy floating-point optimizations
1448 .. option:: -ffinite-math-only, -fno-finite-math-only
1450 .. option:: -ffixed-point, -fno-fixed-point
1452 Enable fixed point types
1454 .. option:: -ffor-scope, -fno-for-scope
1456 .. option:: -fforce-emit-vtables, -fno-force-emit-vtables
1458 Emits more virtual tables to improve devirtualization
1460 .. option:: -fforce-enable-int128, -fno-force-enable-int128
1462 Enable support for int128\_t type
1464 .. option:: -ffp-contract=<arg>
1466 Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma, default) \| off (never fuse)
1468 .. option:: -ffreestanding
1470 Assert that the compilation takes place in a freestanding environment
1472 .. option:: -ffunction-sections, -fno-function-sections
1474 Place each function in its own section (ELF Only)
1476 .. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
1478 .. option:: -fgnu-keywords, -fno-gnu-keywords
1480 Allow GNU-extension keywords regardless of language standard
1482 .. option:: -fgnu-runtime
1484 Generate output compatible with the standard GNU Objective-C runtime
1486 .. option:: -fgnu89-inline, -fno-gnu89-inline
1488 Use the gnu89 inline semantics
1490 .. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1492 .. option:: -fhonor-nans, -fno-honor-nans
1494 .. option:: -fhosted
1496 .. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1498 Implicitly search the file system for module map files.
1500 .. option:: -fimplicit-modules, -fno-implicit-modules
1502 .. option:: -finput-charset=<arg>
1504 .. option:: -finstrument-function-entry-bare
1506 Instrument function entry only, after inlining, without arguments to the instrumentation call
1508 .. option:: -finstrument-functions
1510 Generate calls to instrument function entry and exit
1512 .. option:: -finstrument-functions-after-inlining
1514 Like -finstrument-functions, but insert the calls after inlining
1516 .. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1518 Enable the integrated assembler
1520 .. option:: -fjump-tables, -fno-jump-tables
1522 .. option:: -fkeep-static-consts
1524 Keep static const variables even if unused
1526 .. option:: -flax-vector-conversions, -fno-lax-vector-conversions
1528 .. option:: -flimited-precision=<arg>
1530 .. option:: -flto, -fno-lto
1532 Enable LTO in 'full' mode
1534 .. option:: -flto-jobs=<arg>
1536 Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1538 .. program:: clang1
1539 .. option:: -flto=<arg>
1540 .. program:: clang
1542 Set LTO mode to either 'full' or 'thin'
1544 .. option:: -fmacro-backtrace-limit=<arg>
1546 .. option:: -fmath-errno, -fno-math-errno
1548 Require math functions to indicate errors by setting errno
1550 .. option:: -fmax-type-align=<arg>
1552 Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1554 .. option:: -fmerge-all-constants, -fno-merge-all-constants
1556 Allow merging of constants
1558 .. option:: -fmessage-length=<arg>
1560 .. option:: -fmodule-file-deps, -fno-module-file-deps
1562 .. option:: -fmodule-map-file=<file>
1564 Load this module map file
1566 .. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
1568 Specify the name of the module to build
1570 .. option:: -fmodules, -fno-modules
1572 Enable the 'modules' language feature
1574 .. option:: -fmodules-decluse, -fno-modules-decluse
1576 Require declaration of modules used within a module
1578 .. option:: -fmodules-ignore-macro=<arg>
1580 Ignore the definition of the given macro when building and loading modules
1582 .. option:: -fmodules-search-all, -fno-modules-search-all
1584 Search even non-imported modules to resolve references
1586 .. option:: -fmodules-strict-decluse
1588 Like -fmodules-decluse but requires all headers to be in modules
1590 .. option:: -fmodules-ts
1592 Enable support for the C++ Modules TS
1594 .. option:: -fms-compatibility, -fno-ms-compatibility
1596 Enable full Microsoft Visual C++ compatibility
1598 .. option:: -fms-compatibility-version=<arg>
1600 Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1602 .. option:: -fms-extensions, -fno-ms-extensions
1604 Accept some non-standard constructs supported by the Microsoft compiler
1606 .. option:: -fms-memptr-rep=<arg>
1608 .. option:: -fms-volatile<arg>
1610 .. option:: -fmsc-version=<arg>
1612 Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1614 .. option:: -fmudflap
1616 .. option:: -fmudflapth
1618 .. option:: -fnested-functions
1620 .. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
1622 Specifies the largest alignment guaranteed by '::operator new(size\_t)'
1624 .. option:: -fnext-runtime
1626 .. option:: -fno-builtin-<arg>
1628 Disable implicit builtin knowledge of a specific function
1630 .. option:: -fno-elide-type
1632 Do not elide types when printing diagnostics
1634 .. option:: -fno-max-type-align
1636 .. option:: -fno-operator-names
1638 Do not treat C++ operator name keywords as synonyms for operators
1640 .. option:: -fno-rtti-data
1642 Control emission of RTTI data
1644 .. option:: -fno-strict-modules-decluse
1646 .. option:: -fno-working-directory
1648 .. option:: -fnoxray-link-deps
1650 .. option:: -fobjc-abi-version=<arg>
1652 .. option:: -fobjc-arc, -fno-objc-arc
1654 Synthesize retain and release calls for Objective-C pointers
1656 .. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
1658 Use EH-safe code when synthesizing retains and releases in -fobjc-arc
1660 .. option:: -fobjc-exceptions, -fno-objc-exceptions
1662 Enable Objective-C exceptions
1664 .. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
1666 .. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
1668 .. option:: -fobjc-link-runtime
1670 .. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
1672 .. option:: -fobjc-nonfragile-abi-version=<arg>
1674 .. option:: -fobjc-runtime=<arg>
1676 Specify the target Objective-C runtime kind and version
1678 .. option:: -fobjc-sender-dependent-dispatch
1680 .. option:: -fobjc-weak, -fno-objc-weak
1682 Enable ARC-style weak references in Objective-C
1684 .. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
1686 .. option:: -fopenmp, -fno-openmp
1688 Parse OpenMP pragmas and generate parallel code.
1690 .. option:: -fopenmp-simd, -fno-openmp-simd
1692 Emit OpenMP code only for SIMD-based constructs.
1694 .. option:: -fopenmp-version=<arg>
1696 .. program:: clang1
1697 .. option:: -fopenmp=<arg>
1698 .. program:: clang
1700 .. option:: -foperator-arrow-depth=<arg>
1702 .. option:: -foptimization-record-file=<file>
1704 Implies -fsave-optimization-record. On Darwin platforms, this
1705   cannot be used with multiple -arch <arch> options.
1707 .. option:: -foptimization-record-passes=<regex>
1709 Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
1711 .. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1713 .. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1715 .. option:: -fpack-struct, -fno-pack-struct
1717 .. program:: clang1
1718 .. option:: -fpack-struct=<arg>
1719 .. program:: clang
1721 Specify the default maximum struct packing alignment
1723 .. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1725 Recognize and construct Pascal-style string literals
1727 .. option:: -fpcc-struct-return
1729 Override the default ABI to return all structs on the stack
1731 .. option:: -fpch-preprocess
1733 .. option:: -fpic, -fno-pic
1735 .. option:: -fpie, -fno-pie
1737 .. option:: -fplt, -fno-plt
1739 Use the PLT to make function calls
1741 .. option:: -fplugin=<dsopath>
1743 Load the named plugin (dynamic shared object)
1745 .. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1747 .. option:: -fprofile-arcs, -fno-profile-arcs
1749 .. option:: -fprofile-dir=<arg>
1751 .. option:: -fprofile-generate, -fno-profile-generate
1753 Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1755 .. program:: clang1
1756 .. option:: -fprofile-generate=<directory>
1757 .. program:: clang
1759 Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1761 .. option:: -fprofile-instr-generate, -fno-profile-instr-generate
1763 Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1765 .. program:: clang1
1766 .. option:: -fprofile-instr-generate=<file>
1767 .. program:: clang
1769 Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
1771 .. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
1773 .. program:: clang1
1774 .. option:: -fprofile-instr-use=<arg>
1775 .. program:: clang
1777 Use instrumentation data for profile-guided optimization
1779 .. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
1781 Specifies that the sample profile is accurate. If the sample
1782                profile is accurate, callsites without profile samples are marked
1783                as cold. Otherwise, treat callsites without profile samples as if
1784                we have no profile
1786 .. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
1788 .. program:: clang1
1789 .. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
1790 .. program:: clang
1792 Enable sample-based profile guided optimizations
1794 .. program:: clang1
1795 .. option:: -fprofile-use=<pathname>
1796 .. program:: clang
1798 Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
1800 .. option:: -freciprocal-math, -fno-reciprocal-math
1802 Allow division operations to be reassociated
1804 .. option:: -freg-struct-return
1806 Override the default ABI to return small structs in registers
1808 .. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
1810 Use atexit or \_\_cxa\_atexit to register global destructors
1812 .. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
1814 Enable C++17 relaxed template template argument matching
1816 .. option:: -freroll-loops, -fno-reroll-loops
1818 Turn on loop reroller
1820 .. option:: -fretain-comments-from-system-headers
1822 .. option:: -frewrite-imports, -fno-rewrite-imports
1824 .. option:: -frewrite-includes, -fno-rewrite-includes
1826 .. option:: -frewrite-map-file <arg>
1828 .. program:: clang1
1829 .. option:: -frewrite-map-file=<arg>
1830 .. program:: clang
1832 .. option:: -fropi, -fno-ropi
1834 .. option:: -frtti, -fno-rtti
1836 .. option:: -frwpi, -fno-rwpi
1838 .. option:: -fsave-optimization-record, -fno-save-optimization-record
1840 Generate a YAML optimization record file
1842 .. program:: clang1
1843 .. option:: -fsave-optimization-record=<format>
1844 .. program:: clang
1846 Generate an optimization record file in a specific format.
1848 .. option:: -fseh-exceptions
1850 Use SEH style exceptions
1852 .. option:: -fshort-enums, -fno-short-enums
1854 Allocate to an enum type only as many bytes as it needs for the declared range of possible values
1856 .. option:: -fshort-wchar, -fno-short-wchar
1858 Force wchar\_t to be a short unsigned int
1860 .. option:: -fshow-column, -fno-show-column
1862 .. option:: -fshow-overloads=<arg>
1864 Which overload candidates to show when overload resolution fails: best\|all; defaults to all
1866 .. option:: -fshow-source-location, -fno-show-source-location
1868 .. option:: -fsignaling-math, -fno-signaling-math
1870 .. option:: -fsigned-bitfields
1872 .. option:: -fsigned-char, -fno-signed-char, --signed-char
1874 .. option:: -fsigned-zeros, -fno-signed-zeros
1876 .. option:: -fsized-deallocation, -fno-sized-deallocation
1878 Enable C++14 sized global deallocation functions
1880 .. option:: -fsjlj-exceptions
1882 Use SjLj style exceptions
1884 .. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
1886 Enable the superword-level parallelism vectorization passes
1888 .. option:: -fspell-checking, -fno-spell-checking
1890 .. option:: -fspell-checking-limit=<arg>
1892 .. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
1894 Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
1896 .. option:: -fsplit-stack
1898 .. option:: -fstack-protector, -fno-stack-protector
1900 Enable stack protectors for functions potentially vulnerable to stack smashing
1902 .. option:: -fstack-protector-all
1904 Force the usage of stack protectors for all functions
1906 .. option:: -fstack-protector-strong
1908 Use a strong heuristic to apply stack protectors to functions
1910 .. option:: -fstack-size-section, -fno-stack-size-section
1912 Emit section containing metadata on function stack sizes
1914 .. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
1916 Emit full debug info for all types used by the program
1918 .. option:: -fstrict-aliasing, -fno-strict-aliasing
1920 .. option:: -fstrict-enums, -fno-strict-enums
1922 Enable optimizations based on the strict definition of an enum's value range
1924 .. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
1926 Assume that overflowing float-to-int casts are undefined (default)
1928 .. option:: -fstrict-overflow, -fno-strict-overflow
1930 .. option:: -fstrict-return, -fno-strict-return
1932 Always treat control flow paths that fall off the end of a non-void function as unreachable
1934 .. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
1936 Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
1938 .. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
1940 .. option:: -ftabstop=<arg>
1942 .. option:: -ftemplate-backtrace-limit=<arg>
1944 .. option:: -ftemplate-depth-<arg>
1946 .. option:: -ftemplate-depth=<arg>
1948 .. option:: -ftest-coverage
1950 .. option:: -fthinlto-index=<arg>
1952 Perform ThinLTO importing using provided function summary index
1954 .. option:: -fthreadsafe-statics, -fno-threadsafe-statics
1956 .. option:: -ftime-report
1958 .. option:: -ftime-trace
1960 Turn on time profiler. Results can be analyzed with chrome://tracing or
1961 `Speedscope App <https://www.speedscope.app>`_ for flamegraph visualization
1963 .. option:: -ftime-trace-granularity=<arg>
1965 Minimum time granularity (in microseconds) traced by time profiler
1967 .. option:: -ftls-model=<arg>
1969 .. option:: -ftrap-function=<arg>
1971 Issue call to specified function rather than a trap instruction
1973 .. option:: -ftrapping-math, -fno-trapping-math
1975 .. option:: -ftrapv
1977 Trap on integer overflow
1979 .. option:: -ftrapv-handler <arg>
1981 .. program:: clang1
1982 .. option:: -ftrapv-handler=<function name>
1983 .. program:: clang
1985 Specify the function to be called on overflow
1987 .. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
1989 Process trigraph sequences
1991 .. option:: -funique-section-names, -fno-unique-section-names
1993 Use unique names for text and data sections (ELF Only)
1995 .. option:: -funit-at-a-time, -fno-unit-at-a-time
1997 .. option:: -funroll-loops, -fno-unroll-loops
1999 Turn on loop unroller
2001 .. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2003 .. option:: -funsigned-bitfields
2005 .. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2007 .. option:: -funwind-tables, -fno-unwind-tables
2009 .. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2011 .. option:: -fuse-init-array, -fno-use-init-array
2013 Use .init\_array instead of .ctors
2015 .. option:: -fuse-ld=<arg>
2017 .. option:: -fuse-line-directives, -fno-use-line-directives
2019 .. option:: -fveclib=<arg>
2021 Use the given vector functions library
2023 .. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2025 Enable the loop vectorization passes
2027 .. option:: -fverbose-asm, -fno-verbose-asm, -dA
2029 .. option:: -fvisibility-inlines-hidden
2031 Give inline C++ member functions hidden visibility by default
2033 .. option:: -fvisibility-ms-compat
2035 Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2037 .. option:: -fvisibility=<arg>
2039 Set the default symbol visibility for all global declarations
2041 .. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2043 Enables whole-program vtable optimization. Requires -flto
2045 .. option:: -fwrapv, -fno-wrapv
2047 Treat signed integer overflow as two's complement
2049 .. option:: -fwritable-strings
2051 Store string literals as writable data
2053 .. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2055 Determine whether to always emit \_\_xray\_customevent(...) calls even if the function it appears in is not always instrumented.
2057 .. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2059 Determine whether to always emit \_\_xray\_typedevent(...) calls even if the function it appears in is not always instrumented.
2061 .. option:: -fxray-always-instrument=<arg>
2063 DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2065 .. option:: -fxray-attr-list=<arg>
2067 Filename defining the list of functions/types for imbuing XRay attributes.
2069 .. option:: -fxray-instruction-threshold<arg>
2071 .. program:: clang1
2072 .. option:: -fxray-instruction-threshold=<arg>
2073 .. program:: clang
2075 Sets the minimum function size to instrument with XRay
2077 .. option:: -fxray-instrument, -fno-xray-instrument
2079 Generate XRay instrumentation sleds on function entry and exit
2081 .. option:: -fxray-instrumentation-bundle=<arg>
2083 Select which XRay instrumentation points to emit. Options: all, none, function, custom. Default is 'all'.
2085 .. option:: -fxray-link-deps
2087 Tells clang to add the link dependencies for XRay.
2089 .. option:: -fxray-modes=<arg>
2091 List of modes to link in by default into XRay instrumented binaries.
2093 .. option:: -fxray-never-instrument=<arg>
2095 DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2097 .. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2099 .. option:: -fzvector, -fno-zvector, -mzvector
2101 Enable System z vector language extension
2103 .. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2105 .. option:: -pedantic-errors, --pedantic-errors
2107 OpenCL flags
2108 ------------
2109 .. option:: -cl-denorms-are-zero
2111 OpenCL only. Allow denormals to be flushed to zero.
2113 .. option:: -cl-fast-relaxed-math
2115 OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2117 .. option:: -cl-finite-math-only
2119 OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2121 .. option:: -cl-fp32-correctly-rounded-divide-sqrt
2123 OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2125 .. option:: -cl-kernel-arg-info
2127 OpenCL only. Generate kernel argument metadata.
2129 .. option:: -cl-mad-enable
2131 OpenCL only. Allow use of less precise MAD computations in the generated binary.
2133 .. option:: -cl-no-signed-zeros
2135 OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2137 .. option:: -cl-opt-disable
2139 OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2141 .. option:: -cl-single-precision-constant
2143 OpenCL only. Treat double precision floating-point constant as single precision constant.
2145 .. option:: -cl-std=<arg>
2147 OpenCL language standard to compile for.
2149 .. option:: -cl-strict-aliasing
2151 OpenCL only. This option is added for compatibility with OpenCL 1.0.
2153 .. option:: -cl-uniform-work-group-size
2155 OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2157 .. option:: -cl-unsafe-math-optimizations
2159 OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2161 Target-dependent compilation options
2162 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2163 .. option:: -G<size>, -G=<arg>, -msmall-data-threshold=<arg>
2165 Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2167 .. option:: -m16
2169 .. option:: -m32
2171 .. option:: -m64
2173 .. option:: -mabi=<arg>
2175 .. option:: -malign-double
2177 Align doubles to two words in structs (x86 only)
2179 .. option:: -march=<arg>
2181 .. option:: -masm=<arg>
2183 .. option:: -mbackchain, -mno-backchain
2185 Link stack frames through backchain on System Z
2187 .. option:: -mcmodel=<arg>
2189 .. option:: -mconsole<arg>
2191 .. option:: -mcpu=<arg>, -mv5 (equivalent to -mcpu=hexagonv5), -mv55 (equivalent to -mcpu=hexagonv55), -mv60 (equivalent to -mcpu=hexagonv60), -mv62 (equivalent to -mcpu=hexagonv62), -mv65 (equivalent to -mcpu=hexagonv65)
2193 Use -mcpu=? to see a list of supported cpu models.
2195 .. option:: -mcrc, -mno-crc
2197 Allow use of CRC instructions (ARM/Mips only)
2199 .. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2201 .. option:: -mdll<arg>
2203 .. option:: -mdynamic-no-pic<arg>
2205 .. option:: -meabi <arg>
2207 Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2209 .. option:: -mfentry
2211 Insert calls to fentry at function entry (x86/SystemZ only)
2213 .. option:: -mfloat-abi=<arg>
2215 .. option:: -mfpmath=<arg>
2217 .. option:: -mfpu=<arg>
2219 .. option:: -mglobal-merge, -mno-global-merge
2221 Enable merging of globals
2223 .. option:: -mhard-float
2225 .. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2227 .. option:: -miamcu, -mno-iamcu
2229 Use Intel MCU ABI
2231 .. option:: -mimplicit-float, -mno-implicit-float
2233 .. option:: -mimplicit-it=<arg>
2235 .. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2237 (integrated-as) Emit an object file which can be used with an incremental linker
2239 .. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2241 .. option:: -mkernel
2243 .. option:: -mlong-calls, -mno-long-calls
2245 Generate branches with extended addressability, usually via indirect jumps.
2247 .. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2249 Set macOS deployment target
2251 .. option:: -mmcu=<arg>
2253 .. option:: -mms-bitfields, -mno-ms-bitfields
2255 Set the default structure layout to be compatible with the Microsoft compiler standard
2257 .. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2259 Omit frame pointer setup for leaf functions
2261 .. option:: -moslib=<arg>
2263 .. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2265 Use copy relocations support for PIE builds
2267 .. option:: -mprefer-vector-width=<arg>
2269 Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2271 .. option:: -mqdsp6-compat
2273 Enable hexagon-qdsp6 backward compatibility
2275 .. option:: -mrecip
2277 .. program:: clang1
2278 .. option:: -mrecip=<arg1>,<arg2>...
2279 .. program:: clang
2281 .. option:: -mred-zone, -mno-red-zone
2283 .. option:: -mregparm=<arg>
2285 .. option:: -mrelax-all, -mno-relax-all
2287 (integrated-as) Relax all machine instructions
2289 .. option:: -mretpoline, -mno-retpoline
2291 .. option:: -mrtd, -mno-rtd
2293 Make StdCall calling convention the default
2295 .. option:: -msign-return-address=<arg>
2297 Select return address signing scope
2299 .. option:: -msoft-float, -mno-soft-float
2301 Use software floating point
2303 .. option:: -mstack-alignment=<arg>
2305 Set the stack alignment
2307 .. option:: -mstack-arg-probe, -mno-stack-arg-probe
2309 Enable stack probes
2311 .. option:: -mstack-probe-size=<arg>
2313 Set the stack probe size
2315 .. option:: -mstackrealign, -mno-stackrealign
2317 Force realign the stack at entry to every function
2319 .. option:: -mthread-model <arg>
2321 The thread model to use, e.g. posix, single (posix by default)
2323 .. option:: -mthreads<arg>
2325 .. option:: -mthumb, -mno-thumb
2327 .. option:: -mtune=<arg>
2329 Use -mtune=? to see a list of supported cpu models.
2331 .. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2333 .. option:: -municode<arg>
2335 .. option:: -mvx, -mno-vx
2337 .. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2339 .. option:: -mwatchos-version-min=<arg>
2341 .. option:: -mwindows<arg>
2343 .. option:: -mx32
2345 AARCH64
2346 -------
2347 .. option:: -ffixed-x1
2349 Reserve the x1 register (AArch64 only)
2351 .. option:: -ffixed-x2
2353 Reserve the x2 register (AArch64 only)
2355 .. option:: -ffixed-x3
2357 Reserve the x3 register (AArch64 only)
2359 .. option:: -ffixed-x4
2361 Reserve the x4 register (AArch64 only)
2363 .. option:: -ffixed-x5
2365 Reserve the x5 register (AArch64 only)
2367 .. option:: -ffixed-x6
2369 Reserve the x6 register (AArch64 only)
2371 .. option:: -ffixed-x7
2373 Reserve the x7 register (AArch64 only)
2375 .. option:: -ffixed-x18
2377 Reserve the x18 register (AArch64 only)
2379 .. option:: -ffixed-x20
2381 Reserve the x20 register (AArch64 only)
2383 .. option:: -fcall-saved-x8
2385 Make the x8 register call-saved (AArch64 only)
2387 .. option:: -fcall-saved-x9
2389 Make the x9 register call-saved (AArch64 only)
2391 .. option:: -fcall-saved-x10
2393 Make the x10 register call-saved (AArch64 only)
2395 .. option:: -fcall-saved-x11
2397 Make the x11 register call-saved (AArch64 only)
2399 .. option:: -fcall-saved-x12
2401 Make the x12 register call-saved (AArch64 only)
2403 .. option:: -fcall-saved-x13
2405 Make the x13 register call-saved (AArch64 only)
2407 .. option:: -fcall-saved-x14
2409 Make the x14 register call-saved (AArch64 only)
2411 .. option:: -fcall-saved-x15
2413 Make the x15 register call-saved (AArch64 only)
2415 .. option:: -fcall-saved-x18
2417 Make the x18 register call-saved (AArch64 only)
2419 .. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2421 Workaround Cortex-A53 erratum 835769 (AArch64 only)
2423 .. option:: -mgeneral-regs-only
2425 Generate code which only uses the general purpose registers (AArch64 only)
2427 AMDGPU
2428 ------
2429 .. option:: -mcumode, -mno-cumode
2431 CU wavefront execution mode is used if enabled and WGP wavefront execution mode
2432 is used if disabled (AMDGPU only)
2434 .. option:: -mwavefrontsize64, -mno-wavefrontsize64
2436 Wavefront size 64 is used if enabled and wavefront size 32 if disabled (AMDGPU only)
2438 .. option:: -mxnack, -mno-xnack
2440 Enable XNACK (AMDGPU only)
2444 .. option:: -ffixed-r9
2446 Reserve the r9 register (ARM only)
2448 .. option:: -mexecute-only, -mno-execute-only, -mpure-code
2450 Disallow generation of data access to code sections (ARM only)
2452 .. option:: -mno-movt
2454 Disallow use of movt/movw pairs (ARM only)
2456 .. option:: -mno-neg-immediates
2458 Disallow converting instructions with negative immediates to their negation or inversion.
2460 .. option:: -mnocrc
2462 Disallow use of CRC instructions (ARM only)
2464 .. option:: -mrestrict-it, -mno-restrict-it
2466 Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2468 .. option:: -mtp=<arg>
2470 Read thread pointer from coprocessor register (ARM only)
2472 .. option:: -munaligned-access, -mno-unaligned-access
2474 Allow memory accesses to be unaligned (AArch32/AArch64 only)
2476 Hexagon
2477 -------
2478 .. option:: -mieee-rnd-near
2480 .. option:: -mmemops, -mno-memops
2482 Enable generation of memop instructions
2484 .. option:: -mnvj, -mno-nvj
2486 Enable generation of new-value jumps
2488 .. option:: -mnvs, -mno-nvs
2490 Enable generation of new-value stores
2492 .. option:: -mpackets, -mno-packets
2494 Enable generation of instruction packets
2496 Hexagon
2497 -------
2498 .. option:: -mhvx, -mno-hvx
2500 Enable Hexagon Vector eXtensions
2502 .. option:: -mhvx-length=<arg>
2504 Set Hexagon Vector Length
2506 .. program:: clang1
2507 .. option:: -mhvx=<arg>
2508 .. program:: clang
2510 Enable Hexagon Vector eXtensions
2512 MIPS
2513 ----
2514 .. option:: -mabicalls, -mno-abicalls
2516 Enable SVR4-style position-independent code (Mips only)
2518 .. option:: -mabs=<arg>
2520 .. option:: -mcheck-zero-division, -mno-check-zero-division
2522 .. option:: -mcompact-branches=<arg>
2524 .. option:: -mdouble-float
2526 .. option:: -mdsp, -mno-dsp
2528 .. option:: -mdspr2, -mno-dspr2
2530 .. option:: -membedded-data, -mno-embedded-data
2532 Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2534 .. option:: -mextern-sdata, -mno-extern-sdata
2536 Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
2538 .. option:: -mfp32
2540 Use 32-bit floating point registers (MIPS only)
2542 .. option:: -mfp64
2544 Use 64-bit floating point registers (MIPS only)
2546 .. option:: -mginv, -mno-ginv
2548 .. option:: -mgpopt, -mno-gpopt
2550 Use GP relative accesses for symbols known to be in a small data section (MIPS)
2552 .. option:: -mindirect-jump=<arg>
2554 Change indirect jump instructions to inhibit speculation
2556 .. option:: -mips16
2558 .. option:: -mldc1-sdc1, -mno-ldc1-sdc1
2560 .. option:: -mlocal-sdata, -mno-local-sdata
2562 Extend the -G behaviour to object local data (MIPS)
2564 .. option:: -mmadd4, -mno-madd4
2566 Enable the generation of 4-operand madd.s, madd.d and related instructions.
2568 .. option:: -mmicromips, -mno-micromips
2570 .. option:: -mmsa, -mno-msa
2572 Enable MSA ASE (MIPS only)
2574 .. option:: -mmt, -mno-mt
2576 Enable MT ASE (MIPS only)
2578 .. option:: -mnan=<arg>
2580 .. option:: -mno-mips16
2582 .. option:: -msingle-float
2584 .. option:: -mvirt, -mno-virt
2586 .. option:: -mxgot, -mno-xgot
2588 PowerPC
2589 -------
2590 .. option:: -maltivec, -mno-altivec
2592 .. option:: -mcmpb, -mno-cmpb
2594 .. option:: -mcrbits, -mno-crbits
2596 .. option:: -mcrypto, -mno-crypto
2598 .. option:: -mdirect-move, -mno-direct-move
2600 .. option:: -mfloat128, -mno-float128
2602 .. option:: -mfprnd, -mno-fprnd
2604 .. option:: -mhtm, -mno-htm
2606 .. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
2608 .. option:: -misel, -mno-isel
2610 .. option:: -mlongcall, -mno-longcall
2612 .. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
2614 .. option:: -mpopcntd, -mno-popcntd
2616 .. option:: -mpower8-vector, -mno-power8-vector
2618 .. option:: -mpower9-vector, -mno-power9-vector
2620 .. option:: -mqpx, -mno-qpx
2622 .. option:: -msecure-plt
2624 .. option:: -mvsx, -mno-vsx
2626 WebAssembly
2627 -----------
2628 .. option:: -mexception-handling, -mno-exception-handling
2630 .. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
2632 .. option:: -msign-ext, -mno-sign-ext
2634 .. option:: -msimd128, -mno-simd128
2638 .. option:: -m3dnow, -mno-3dnow
2640 .. option:: -m3dnowa, -mno-3dnowa
2642 .. option:: -madx, -mno-adx
2644 .. option:: -maes, -mno-aes
2646 .. option:: -mavx, -mno-avx
2648 .. option:: -mavx2, -mno-avx2
2650 .. option:: -mavx512bitalg, -mno-avx512bitalg
2652 .. option:: -mavx512bf16, -mno-avx512bf16
2654 .. option:: -mavx512bw, -mno-avx512bw
2656 .. option:: -mavx512cd, -mno-avx512cd
2658 .. option:: -mavx512dq, -mno-avx512dq
2660 .. option:: -mavx512er, -mno-avx512er
2662 .. option:: -mavx512f, -mno-avx512f
2664 .. option:: -mavx512ifma, -mno-avx512ifma
2666 .. option:: -mavx512pf, -mno-avx512pf
2668 .. option:: -mavx512vbmi, -mno-avx512vbmi
2670 .. option:: -mavx512vbmi2, -mno-avx512vbmi2
2672 .. option:: -mavx512vl, -mno-avx512vl
2674 .. option:: -mavx512vnni, -mno-avx512vnni
2676 .. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
2678 .. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
2680 .. option:: -mbmi, -mno-bmi
2682 .. option:: -mbmi2, -mno-bmi2
2684 .. option:: -mcldemote, -mno-cldemote
2686 .. option:: -mclflushopt, -mno-clflushopt
2688 .. option:: -mclwb, -mno-clwb
2690 .. option:: -mclzero, -mno-clzero
2692 .. option:: -mcx16, -mno-cx16
2694 .. option:: -menqcmd, -mno-enqcmd
2696 .. option:: -mf16c, -mno-f16c
2698 .. option:: -mfma, -mno-fma
2700 .. option:: -mfma4, -mno-fma4
2702 .. option:: -mfsgsbase, -mno-fsgsbase
2704 .. option:: -mfxsr, -mno-fxsr
2706 .. option:: -mgfni, -mno-gfni
2708 .. option:: -minvpcid, -mno-invpcid
2710 .. option:: -mlwp, -mno-lwp
2712 .. option:: -mlzcnt, -mno-lzcnt
2714 .. option:: -mmmx, -mno-mmx
2716 .. option:: -mmovbe, -mno-movbe
2718 .. option:: -mmovdir64b, -mno-movdir64b
2720 .. option:: -mmovdiri, -mno-movdiri
2722 .. option:: -mmpx, -mno-mpx
2724 .. option:: -mmwaitx, -mno-mwaitx
2726 .. option:: -mpclmul, -mno-pclmul
2728 .. option:: -mpconfig, -mno-pconfig
2730 .. option:: -mpku, -mno-pku
2732 .. option:: -mpopcnt, -mno-popcnt
2734 .. option:: -mprefetchwt1, -mno-prefetchwt1
2736 .. option:: -mprfchw, -mno-prfchw
2738 .. option:: -mptwrite, -mno-ptwrite
2740 .. option:: -mrdpid, -mno-rdpid
2742 .. option:: -mrdrnd, -mno-rdrnd
2744 .. option:: -mrdseed, -mno-rdseed
2746 .. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
2748 .. option:: -mrtm, -mno-rtm
2750 .. option:: -msahf, -mno-sahf
2752 .. option:: -msgx, -mno-sgx
2754 .. option:: -msha, -mno-sha
2756 .. option:: -mshstk, -mno-shstk
2758 .. option:: -msse, -mno-sse
2760 .. option:: -msse2, -mno-sse2
2762 .. option:: -msse3, -mno-sse3
2764 .. option:: -msse4.1, -mno-sse4.1
2766 .. program:: clang1
2767 .. option:: -msse4.2, -mno-sse4.2, -msse4
2768 .. program:: clang
2770 .. option:: -msse4a, -mno-sse4a
2772 .. option:: -mssse3, -mno-ssse3
2774 .. option:: -mtbm, -mno-tbm
2776 .. option:: -mvaes, -mno-vaes
2778 .. option:: -mvpclmulqdq, -mno-vpclmulqdq
2780 .. option:: -mwaitpkg, -mno-waitpkg
2782 .. option:: -mwbnoinvd, -mno-wbnoinvd
2784 .. option:: -mx87, -m80387, -mno-x87
2786 .. option:: -mxop, -mno-xop
2788 .. option:: -mxsave, -mno-xsave
2790 .. option:: -mxsavec, -mno-xsavec
2792 .. option:: -mxsaveopt, -mno-xsaveopt
2794 .. option:: -mxsaves, -mno-xsaves
2796 RISCV
2797 -----
2798 .. option:: -mrelax, -mno-relax
2800 Enable linker relaxation
2802 Optimization level
2803 ~~~~~~~~~~~~~~~~~~
2805 Flags controlling how much optimization should be performed.
2807 .. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>
2809 .. option:: -Ofast<arg>
2811 Debug information generation
2812 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2814 Flags controlling how much and what kind of debug information should be
2815 generated.
2817 Kind and level of debug information
2818 -----------------------------------
2819 .. option:: -g, --debug, --debug=<arg>
2821 Generate source-level debug information
2823 .. option:: -gdwarf-2
2825 Generate source-level debug information with dwarf version 2
2827 .. option:: -gdwarf-3
2829 Generate source-level debug information with dwarf version 3
2831 .. option:: -gdwarf-4, -gdwarf
2833 Generate source-level debug information with dwarf version 4
2835 .. option:: -gdwarf-5
2837 Generate source-level debug information with dwarf version 5
2839 .. option:: -gfull
2841 .. option:: -gused
2843 Debug level
2844 ___________
2845 .. option:: -g0
2847 .. option:: -g2
2849 .. option:: -g3
2851 .. option:: -ggdb0
2853 .. option:: -ggdb1
2855 .. option:: -ggdb2
2857 .. option:: -ggdb3
2859 .. option:: -gline-tables-only, -g1, -gmlt
2861 Emit debug line number tables only
2863 .. option:: -gmodules
2865 Generate debug info with external references to clang modules or precompiled headers
2867 Debugger to tune debug information for
2868 ______________________________________
2869 .. option:: -ggdb
2871 .. option:: -glldb
2873 .. option:: -gsce
2875 Debug information flags
2876 -----------------------
2877 .. option:: -gcolumn-info, -gno-column-info
2879 .. option:: -gdwarf-aranges
2881 .. option:: -gembed-source, -gno-embed-source
2883 Embed source text in DWARF debug sections
2885 .. option:: -ggnu-pubnames, -gno-gnu-pubnames
2887 .. option:: -gpubnames, -gno-pubnames
2889 .. option:: -grecord-command-line, -grecord-gcc-switches, -gno-record-command-line, -gno-record-gcc-switches
2891 .. option:: -gsplit-dwarf
2893 .. option:: -gstrict-dwarf, -gno-strict-dwarf
2895 .. option:: -gz
2897 DWARF debug sections compression type
2899 .. program:: clang1
2900 .. option:: -gz=<arg>
2901 .. program:: clang
2903 DWARF debug sections compression type
2905 Static analyzer flags
2906 =====================
2908 Flags controlling the behavior of the Clang Static Analyzer.
2910 .. option:: -Xanalyzer <arg>
2912 Pass <arg> to the static analyzer
2914 Fortran compilation flags
2915 =========================
2917 Flags that will be passed onto the ``gfortran`` compiler when Clang is given
2918 a Fortran input.
2920 .. option:: -A<arg>, --assert <arg>, --assert=<arg>
2922 .. option:: -A-<arg>
2924 .. option:: -J<arg>
2926 .. option:: -cpp
2928 .. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
2930 .. option:: -falign-commons, -fno-align-commons
2932 .. option:: -fall-intrinsics, -fno-all-intrinsics
2934 .. option:: -fautomatic, -fno-automatic
2936 .. option:: -fbackslash, -fno-backslash
2938 .. option:: -fbacktrace, -fno-backtrace
2940 .. option:: -fblas-matmul-limit=<arg>
2942 .. option:: -fbounds-check, -fno-bounds-check
2944 .. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
2946 .. option:: -fcheck=<arg>
2948 .. option:: -fcoarray=<arg>
2950 .. option:: -fconvert=<arg>
2952 .. option:: -fcray-pointer, -fno-cray-pointer
2954 .. option:: -fd-lines-as-code, -fno-d-lines-as-code
2956 .. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
2958 .. option:: -fdefault-double-8, -fno-default-double-8
2960 .. option:: -fdefault-integer-8, -fno-default-integer-8
2962 .. option:: -fdefault-real-8, -fno-default-real-8
2964 .. option:: -fdollar-ok, -fno-dollar-ok
2966 .. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
2968 .. option:: -fdump-fortran-original, -fno-dump-fortran-original
2970 .. option:: -fdump-parse-tree, -fno-dump-parse-tree
2972 .. option:: -fexternal-blas, -fno-external-blas
2974 .. option:: -ff2c, -fno-f2c
2976 .. option:: -ffixed-form, -fno-fixed-form
2978 .. option:: -ffixed-line-length-<arg>
2980 .. option:: -ffpe-trap=<arg>
2982 .. option:: -ffree-form, -fno-free-form
2984 .. option:: -ffree-line-length-<arg>
2986 .. option:: -ffrontend-optimize, -fno-frontend-optimize
2988 .. option:: -fimplicit-none, -fno-implicit-none
2990 .. option:: -finit-character=<arg>
2992 .. option:: -finit-integer=<arg>
2994 .. option:: -finit-local-zero, -fno-init-local-zero
2996 .. option:: -finit-logical=<arg>
2998 .. option:: -finit-real=<arg>
3000 .. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3002 .. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3004 .. option:: -fmax-array-constructor=<arg>
3006 .. option:: -fmax-errors=<arg>
3008 .. option:: -fmax-identifier-length, -fno-max-identifier-length
3010 .. option:: -fmax-stack-var-size=<arg>
3012 .. option:: -fmax-subrecord-length=<arg>
3014 .. option:: -fmodule-private, -fno-module-private
3016 .. option:: -fpack-derived, -fno-pack-derived
3018 .. option:: -fprotect-parens, -fno-protect-parens
3020 .. option:: -frange-check, -fno-range-check
3022 .. option:: -freal-4-real-10, -fno-real-4-real-10
3024 .. option:: -freal-4-real-16, -fno-real-4-real-16
3026 .. option:: -freal-4-real-8, -fno-real-4-real-8
3028 .. option:: -freal-8-real-10, -fno-real-8-real-10
3030 .. option:: -freal-8-real-16, -fno-real-8-real-16
3032 .. option:: -freal-8-real-4, -fno-real-8-real-4
3034 .. option:: -frealloc-lhs, -fno-realloc-lhs
3036 .. option:: -frecord-marker=<arg>
3038 .. option:: -frecursive, -fno-recursive
3040 .. option:: -frepack-arrays, -fno-repack-arrays
3042 .. option:: -fsecond-underscore, -fno-second-underscore
3044 .. option:: -fsign-zero, -fno-sign-zero
3046 .. option:: -fstack-arrays, -fno-stack-arrays
3048 .. option:: -funderscoring, -fno-underscoring
3050 .. option:: -fwhole-file, -fno-whole-file
3052 .. option:: -imultilib <arg>
3054 .. option:: -nocpp
3056 .. option:: -static-libgfortran
3058 Linker flags
3059 ============
3060 Flags that are passed on to the linker
3062 .. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3064 Add directory to library search path
3066 .. option:: -Mach
3068 .. option:: -T<script>
3070 Specify <script> as linker script
3072 .. option:: -Tbss<addr>
3074 Set starting address of BSS to <addr>
3076 .. option:: -Tdata<addr>
3078 Set starting address of DATA to <addr>
3080 .. option:: -Ttext<addr>
3082 Set starting address of TEXT to <addr>
3084 .. option:: -Wl,<arg>,<arg2>...
3086 Pass the comma separated arguments in <arg> to the linker
3088 .. option:: -X
3090 .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3092 Pass <arg> to the linker
3094 .. program:: clang1
3095 .. option:: -Z
3096 .. program:: clang
3098 .. option:: -e<arg>, --entry
3100 .. option:: -filelist <arg>
3102 .. option:: --hip-device-lib-path=<arg>
3104 HIP device library path
3106 .. option:: --hip-device-lib=<arg>
3108 HIP device library
3110 .. option:: -l<arg>
3112 .. option:: -r
3114 .. option:: -rpath <arg>
3116 .. option:: -s
3118 .. option:: -t
3120 .. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3122 .. option:: -undef
3124 undef all system defines
3126 .. option:: -undefined<arg>, --no-undefined
3128 .. option:: -z <arg>
3130 Pass -z <arg> to the linker