[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / docs / ClangCommandLineReference.rst
blob7f9ef3783f9da7040ac23e80d85c66265503b793
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<prefix>, --prefix <arg>, --prefix=<arg>
23 Search $prefix$file for executables, libraries, and data files. If $prefix is a directory, search $prefix/$file
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 .. program:: clang1
60 .. option:: -Xarch\_device <arg>
61 .. program:: clang
63 Pass <arg> to the CUDA/HIP device compilation
65 .. program:: clang2
66 .. option:: -Xarch\_host <arg>
67 .. program:: clang
69 Pass <arg> to the CUDA/HIP host compilation
71 .. option:: -Xcuda-fatbinary <arg>
73 Pass <arg> to fatbinary invocation
75 .. option:: -Xcuda-ptxas <arg>
77 Pass <arg> to the ptxas assembler
79 .. option:: -Z<arg>
81 .. option:: -a<arg>, --profile-blocks
83 .. option:: -all\_load
85 .. option:: -allowable\_client <arg>
87 .. option:: --analyze
89 Run the static analyzer
91 .. option:: --analyzer-no-default-checks
93 .. option:: --analyzer-output<arg>
95 Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|sarif\|sarif-html\|text).
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:: -client\_name<arg>
127 .. option:: -compatibility\_version<arg>
129 .. option:: --config <arg>
131 Specifies configuration file
133 .. option:: --constant-cfstrings
135 .. option:: --cuda-feature=<arg>
137 Manually specify the CUDA feature to use
139 .. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
141 Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
143 .. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug
145 Enable device-side debug info generation. Disables ptxas optimizations.
147 .. option:: -cuid=<arg>
149 An ID for compilation unit, which should be the same for the same compilation unit but different for different compilation units. It is used to externalize device-side static variables for single source offloading languages CUDA and HIP so that they can be accessed by the host code of the same compilation unit.
151 .. option:: -current\_version<arg>
153 .. option:: -darwin-target-variant <arg>
155 Generate code for an additional runtime variant of the deployment target
157 .. option:: -darwin-target-variant-triple <arg>
159 Specify the darwin target variant triple
161 .. option:: -dead\_strip
163 .. option:: -dependency-dot <arg>
165 Filename to write DOT-formatted header dependencies to
167 .. option:: -dependency-file <arg>
169 Filename (or -) to write dependency output to
171 .. option:: -dsym-dir<dir>
173 Directory to output dSYM's (if any) to
175 .. option:: -dumpmachine
177 .. option:: -dumpversion
179 .. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>
181 .. option:: -dylib\_file <arg>
183 .. option:: -dylinker
185 .. program:: clang1
186 .. option:: -dylinker\_install\_name<arg>
187 .. program:: clang
189 .. option:: -dynamic
191 .. option:: -dynamiclib
193 .. option:: -emit-ast
195 Emit Clang AST files for source inputs
197 .. option:: --emit-static-lib
199 Enable linker job to emit a static library.
201 .. option:: -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
203 Trivial automatic variable initialization to zero is only here for benchmarks, it'll eventually be removed, and I'm OK with that because I'm only using it to benchmark
205 .. option:: --end-no-unused-arguments
207 Start emitting warnings for unused driver arguments
209 .. option:: -exported\_symbols\_list <arg>
211 .. option:: -faligned-new=<arg>
213 .. option:: -fautomatic
215 .. option:: -ffixed-r19
217 Reserve register r19 (Hexagon only)
219 .. option:: -fgpu-default-stream=<arg>
221 Specify default stream. The default value is 'legacy'. (HIP only). <arg> must be 'legacy' or 'per-thread'.
223 .. option:: -fgpu-flush-denormals-to-zero, -fcuda-flush-denormals-to-zero, -fno-gpu-flush-denormals-to-zero
225 Flush denormal floating point values to zero in CUDA/HIP device mode.
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:: -fplugin-arg-<name>-<arg>
247 Pass <arg> to plugin <name>
249 .. option:: -framework <arg>
251 .. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath
253 Add -rpath with architecture-specific resource directory to the linker flags
255 .. option:: -fsanitize-system-ignorelist=<arg>, -fsanitize-system-blacklist=<arg>
257 Path to system ignorelist file for sanitizers
259 .. option:: -fshow-skipped-includes
261 #include files may be "skipped" due to include guard optimization
262              or #pragma once. This flag makes -H show also such includes.
264 .. option:: -fsystem-module
266 Build this module as a system module. Only used with -emit-module
268 .. option:: -fuse-cuid=<arg>
270 Method to generate ID's for compilation units for single source offloading languages CUDA and HIP: 'hash' (ID's generated by hashing file path and command line options) \| 'random' (ID's generated as random numbers) \| 'none' (disabled). Default is 'hash'. This option will be overridden by option '-cuid=\[ID\]' if it is specified.
272 .. option:: --gcc-toolchain=<arg>
274 Search for GCC installation in the specified directory on targets which commonly use GCC. The directory usually contains 'lib{,32,64}/gcc{,-cross}/$triple' and 'include'. If specified, sysroot is skipped for GCC detection. Note: executables (e.g. ld) used by the compiler are not overridden by the selected GCC installation
276 .. option:: -gcodeview
278 Generate CodeView debug information
280 .. option:: -gcodeview-ghash, -gno-codeview-ghash
282 Emit type record hashes in a .debug$H section
284 .. option:: -gen-reproducer=<arg>, -fno-crash-diagnostics (equivalent to -gen-reproducer=off)
286 Emit reproducer on (option: off, crash (default), error, always)
288 .. option:: --gpu-instrument-lib=<arg>
290 Instrument device library for HIP, which is a LLVM bitcode containing \_\_cyg\_profile\_func\_enter and \_\_cyg\_profile\_func\_exit
292 .. option:: --gpu-max-threads-per-block=<arg>
294 Default max threads per block for kernel launch bounds for HIP
296 .. option:: -headerpad\_max\_install\_names<arg>
298 .. option:: -help, --help, /help<arg>, -help<arg>, --help<arg>
300 Display available options
302 .. option:: --help-hidden
304 Display help for hidden options
306 .. option:: --hip-link
308 Link clang-offload-bundler bundles for HIP
310 .. option:: --hip-version=<arg>
312 HIP version in the format of major.minor.patch
314 .. option:: -ibuiltininc
316 Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
318 .. option:: -image\_base <arg>
320 .. option:: -index-header-map
322 Make the next included directory (-I or -F) an indexer header map
324 .. option:: -init <arg>
326 .. option:: -install\_name <arg>
328 .. option:: -interface-stub-version=<arg>
330 .. option:: -keep\_private\_externs
332 .. option:: -lazy\_framework <arg>
334 .. program:: clang1
335 .. option:: -lazy\_library <arg>
336 .. program:: clang
338 .. option:: -mbig-endian, -EB
340 .. option:: -menable-unsafe-fp-math
342 Allow unsafe floating-point math optimizations which may decrease precision
344 .. option:: -mharden-sls=<arg>
346 Select straight-line speculation hardening scope (ARM/AArch64/X86 only). <arg> must be: all, none, retbr(ARM/AArch64), blr(ARM/AArch64), comdat(ARM/AArch64), nocomdat(ARM/AArch64), return(X86), indirect-jmp(X86)
348 .. option:: --migrate
350 Run the migrator
352 .. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>
354 .. option:: -mlinker-version=<arg>
356 .. option:: -mlittle-endian, -EL
358 .. option:: -mllvm <arg>
360 Additional arguments to forward to LLVM's option processing
362 .. option:: -mmlir <arg>
364 Additional arguments to forward to MLIR's option processing
366 .. option:: -module-dependency-dir <arg>
368 Directory to dump module dependencies to
370 .. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>
372 .. option:: -multi\_module
374 .. option:: -multiply\_defined <arg>
376 .. program:: clang1
377 .. option:: -multiply\_defined\_unused <arg>
378 .. program:: clang
380 .. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>
382 .. option:: --no-cuda-version-check
384 Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
386 .. option:: -no-hip-rt
388 Do not link against HIP runtime libraries
390 .. option:: -no-integrated-cpp, --no-integrated-cpp
392 .. option:: -no\_dead\_strip\_inits\_and\_terms
394 .. option:: -nobuiltininc
396 Disable builtin #include directories
398 .. option:: -nodefaultlibs
400 .. option:: -nodriverkitlib
402 .. option:: -nofixprebinding
404 .. option:: -nogpuinc, -nocudainc
406 Do not add include paths for CUDA/HIP and do not include the default CUDA/HIP wrapper headers
408 .. option:: -nogpulib, -nocudalib
410 Do not link device library for CUDA/HIP device compilation
412 .. option:: -nohipwrapperinc
414 Do not include the default HIP wrapper headers and include paths
416 .. option:: -nolibc
418 .. option:: -nomultidefs
420 .. option:: -nopie, -no-pie
422 .. option:: -noprebind
424 .. option:: -noprofilelib
426 .. option:: -noseglinkedit
428 .. option:: -nostdinc, --no-standard-includes
430 .. program:: clang1
431 .. option:: -nostdinc++
432 .. program:: clang
434 Disable standard #include directories for the C++ standard library
436 .. option:: -nostdlib++
438 .. option:: -nostdlibinc
440 .. program:: clang1
441 .. option:: -o<file>, /Fo<arg>, -Fo<arg>, --output <arg>, --output=<arg>
442 .. program:: clang
444 Write output to <file>
446 .. option:: -objcmt-allowlist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>, -objcmt-whitelist-dir-path=<arg>
448 Only modify files with a filename contained in the provided directory path
450 .. option:: -objcmt-atomic-property
452 Make migration to 'atomic' properties
454 .. option:: -objcmt-migrate-all
456 Enable migration to modern ObjC
458 .. option:: -objcmt-migrate-annotation
460 Enable migration to property and method annotations
462 .. option:: -objcmt-migrate-designated-init
464 Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods
466 .. option:: -objcmt-migrate-instancetype
468 Enable migration to infer instancetype for method result type
470 .. option:: -objcmt-migrate-literals
472 Enable migration to modern ObjC literals
474 .. option:: -objcmt-migrate-ns-macros
476 Enable migration to NS\_ENUM/NS\_OPTIONS macros
478 .. option:: -objcmt-migrate-property
480 Enable migration to modern ObjC property
482 .. option:: -objcmt-migrate-property-dot-syntax
484 Enable migration of setter/getter messages to property-dot syntax
486 .. option:: -objcmt-migrate-protocol-conformance
488 Enable migration to add protocol conformance on classes
490 .. option:: -objcmt-migrate-readonly-property
492 Enable migration to modern ObjC readonly property
494 .. option:: -objcmt-migrate-readwrite-property
496 Enable migration to modern ObjC readwrite property
498 .. option:: -objcmt-migrate-subscripting
500 Enable migration to modern ObjC subscripting
502 .. option:: -objcmt-ns-nonatomic-iosonly
504 Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute
506 .. option:: -objcmt-returns-innerpointer-property
508 Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
510 .. option:: -object
512 .. option:: -object-file-name=<file>, -object-file-name <arg>
514 Set the output <file> for debug infos
516 .. option:: --offload-arch=<arg>, --cuda-gpu-arch=<arg>, --no-offload-arch=<arg>
518 CUDA offloading device architecture (e.g. sm\_35), or HIP offloading target ID in the form of a device architecture followed by target ID features delimited by a colon. Each target ID feature is a pre-defined string followed by a plus or minus sign (e.g. gfx908:xnack+:sramecc-).  May be specified more than once.
520 .. option:: --offload-device-only, --cuda-device-only
522 Only compile for the offloading device.
524 .. option:: --offload-host-device, --cuda-compile-host-device
526 Only compile for the offloading host.
528 .. option:: --offload-host-only, --cuda-host-only
530 Only compile for the offloading host.
532 .. option:: --offload=<arg1>,<arg2>...
534 Specify comma-separated list of offloading target triples (CUDA and HIP only)
536 .. option:: -p, --profile
538 .. option:: -pagezero\_size<arg>
540 .. option:: -pg
542 Enable mcount instrumentation
544 .. option:: -pipe, --pipe
546 Use pipes between commands, when possible
548 .. option:: -prebind
550 .. program:: clang1
551 .. option:: -prebind\_all\_twolevel\_modules
552 .. program:: clang
554 .. option:: -preload
556 .. option:: --print-diagnostic-categories
558 .. option:: -print-diagnostic-options, --print-diagnostic-options
560 Print all of Clang's warning options
562 .. option:: -print-effective-triple, --print-effective-triple
564 Print the effective target triple
566 .. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>
568 Print the full library path of <file>
570 .. option:: -print-ivar-layout
572 Enable Objective-C Ivar layout bitmap print trace
574 .. option:: -print-libgcc-file-name, --print-libgcc-file-name
576 Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")
578 .. option:: -print-multi-directory, --print-multi-directory
580 .. option:: -print-multi-lib, --print-multi-lib
582 .. option:: -print-multiarch, --print-multiarch
584 Print the multiarch target triple
586 .. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>
588 Print the full program path of <name>
590 .. option:: -print-resource-dir, --print-resource-dir
592 Print the resource directory pathname
594 .. option:: -print-rocm-search-dirs, --print-rocm-search-dirs
596 Print the paths used for finding ROCm installation
598 .. option:: -print-runtime-dir, --print-runtime-dir
600 Print the directory pathname containing clangs runtime libraries
602 .. option:: -print-search-dirs, --print-search-dirs
604 Print the paths used for finding libraries and programs
606 .. option:: -print-target-triple, --print-target-triple
608 Print the normalized target triple
610 .. option:: -print-targets, --print-targets
612 Print the registered targets
614 .. option:: -private\_bundle
616 .. option:: --product-name=<arg>
618 .. option:: -pthread, -no-pthread
620 Support POSIX threads in generated code
622 .. option:: -pthreads
624 .. option:: -read\_only\_relocs <arg>
626 .. option:: -relocatable-pch, --relocatable-pch
628 Whether to build a relocatable precompiled header
630 .. option:: -remap
632 .. option:: -rewrite-legacy-objc
634 Rewrite Legacy Objective-C source to C++
636 .. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>
638 Compiler runtime library to use
640 .. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)
642 Save llvm statistics.
644 .. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)
646 Save intermediate compilation results.
648 .. option:: -sectalign <arg1> <arg2> <arg3>
650 .. option:: -sectcreate <arg1> <arg2> <arg3>
652 .. option:: -sectobjectsymbols <arg1> <arg2>
654 .. option:: -sectorder <arg1> <arg2> <arg3>
656 .. option:: -seg1addr<arg>
658 .. option:: -seg\_addr\_table <arg>
660 .. program:: clang1
661 .. option:: -seg\_addr\_table\_filename <arg>
662 .. program:: clang
664 .. option:: -segaddr <arg1> <arg2>
666 .. option:: -segcreate <arg1> <arg2> <arg3>
668 .. option:: -seglinkedit
670 .. option:: -segprot <arg1> <arg2> <arg3>
672 .. option:: -segs\_read\_<arg>
674 .. program:: clang1
675 .. option:: -segs\_read\_only\_addr <arg>
676 .. program:: clang
678 .. program:: clang2
679 .. option:: -segs\_read\_write\_addr <arg>
680 .. program:: clang
682 .. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>
684 Serialize compiler diagnostics to a file
686 .. option:: -shared-libgcc
688 .. option:: -shared-libsan, -shared-libasan
690 Dynamically link the sanitizer runtime
692 .. option:: -single\_module
694 .. option:: --start-no-unused-arguments
696 Don't emit warnings about unused arguments for the following arguments
698 .. option:: -static-libgcc
700 .. option:: -static-libsan
702 Statically link the sanitizer runtime
704 .. option:: -static-libstdc++
706 .. option:: -static-openmp
708 Use the static host OpenMP runtime while linking.
710 .. option:: -std-default=<arg>
712 .. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>
714 C++ standard library to use. <arg> must be 'libc++', 'libstdc++' or 'platform'.
716 .. option:: -sub\_library<arg>
718 .. program:: clang1
719 .. option:: -sub\_umbrella<arg>
720 .. program:: clang
722 .. option:: --sysroot=<arg>, --sysroot <arg>
724 .. option:: --target-help
726 .. option:: --target=<arg>, -target <arg>
728 Generate code for the given target
730 .. option:: -time
732 Time individual commands
734 .. option:: -traditional, --traditional
736 .. option:: -traditional-cpp, --traditional-cpp
738 Enable some traditional CPP emulation
740 .. option:: -twolevel\_namespace
742 .. program:: clang1
743 .. option:: -twolevel\_namespace\_hints
744 .. program:: clang
746 .. option:: -umbrella <arg>
748 .. option:: -unexported\_symbols\_list <arg>
750 .. option:: -unwindlib=<arg>, --unwindlib=<arg>
752 Unwind library to use. <arg> must be 'libgcc', 'unwindlib' or 'platform'.
754 .. option:: -v, --verbose
756 Show commands to run and use verbose output
758 .. option:: --verify-debug-info
760 Verify the binary representation of debug output
762 .. option:: --version
764 Print version information
766 .. option:: -w, --no-warnings
768 Suppress all warnings
770 .. option:: -weak-l<arg>
772 .. option:: -weak\_framework <arg>
774 .. program:: clang1
775 .. option:: -weak\_library <arg>
776 .. program:: clang
778 .. program:: clang2
779 .. option:: -weak\_reference\_mismatches <arg>
780 .. program:: clang
782 .. option:: -whatsloaded
784 .. option:: -why\_load, -whyload
786 .. option:: -working-directory<arg>, -working-directory=<arg>
788 Resolve file paths relative to the specified directory
790 .. option:: -x<language>, --language <arg>, --language=<arg>
792 Treat subsequent input files as having type <language>
794 .. option:: -y<arg>
796 Actions
797 =======
798 The action to perform on the input.
800 .. option:: -E, --preprocess
802 Only run the preprocessor
804 .. option:: -S, --assemble
806 Only run preprocess and compilation steps
808 .. option:: -c, --compile
810 Only run preprocess, compile, and assemble steps
812 .. option:: -emit-interface-stubs
814 Generate Interface Stub Files.
816 .. option:: -emit-llvm
818 Use the LLVM representation for assembler and object files
820 .. option:: -emit-merged-ifs
822 Generate Interface Stub Files, emit merged text not binary.
824 .. option:: -extract-api
826 Extract API information
828 .. option:: -fdriver-only
830 Only run the driver.
832 .. option:: -fsyntax-only
834 Run the preprocessor, parser and semantic analysis stages
836 .. option:: -module-file-info
838 Provide information about a particular module file
840 .. option:: --precompile
842 Only precompile the input
844 .. option:: -rewrite-objc
846 Rewrite Objective-C source to C++
848 .. option:: -verify-pch
850 Load and verify that a pre-compiled header file is not stale
852 Compilation flags
853 =================
855 Flags controlling the behavior of Clang during compilation. These flags have
856 no effect during actions that do not perform compilation.
858 .. option:: -Xassembler <arg>
860 Pass <arg> to the assembler
862 .. option:: -Xclang <arg>
864 Pass <arg> to the clang compiler
866 .. option:: -Xopenmp-target <arg>
868 Pass <arg> to the target offloading toolchain.
870 .. program:: clang1
871 .. option:: -Xopenmp-target=<triple> <arg>
872 .. program:: clang
874 Pass <arg> to the target offloading toolchain identified by <triple>.
876 .. option:: -ansi, --ansi
878 .. option:: -fc++-abi=<arg>
880 C++ ABI to use. This will override the target C++ ABI.
882 .. option:: -fclang-abi-compat=<version>
884 Attempt to match the ABI of Clang <version>. <version> must be '<major>.<minor>' or 'latest'.
886 .. option:: -fcomment-block-commands=<arg>,<arg2>...
888 Treat each comma separated argument in <arg> as a documentation comment block command
890 .. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
892 Require member pointer base types to be complete if they would be significant under the Microsoft ABI
894 .. option:: -fcrash-diagnostics-dir=<dir>
896 Put crash-report files in <dir>
898 .. option:: -fcrash-diagnostics=<arg>, -fcrash-diagnostics (equivalent to -fcrash-diagnostics=compiler)
900 Set level of crash diagnostic reporting, (option: off, compiler, all)
902 .. option:: -fdeclspec, -fno-declspec
904 Allow \_\_declspec as a keyword
906 .. option:: -fdepfile-entry=<arg>
908 .. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info
910 .. option:: -fdiagnostics-format=<arg>
912 .. option:: -fdiagnostics-parseable-fixits
914 Print fix-its in machine parseable form
916 .. option:: -fdiagnostics-print-source-range-info
918 Print source range spans in numeric form
920 .. option:: -fdiagnostics-show-category=<arg>
922 .. option:: -fdiscard-value-names, -fno-discard-value-names
924 Discard value names in LLVM IR
926 .. option:: -fexperimental-relative-c++-abi-vtables, -fno-experimental-relative-c++-abi-vtables
928 Use the experimental C++ class ABI for classes with virtual tables
930 .. option:: -fexperimental-strict-floating-point
932 Enables experimental strict floating point in LLVM.
934 .. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
936 Use separate accesses for consecutive bitfield runs with legal widths and alignments.
938 .. option:: -fglobal-isel, -fexperimental-isel, -fno-global-isel
940 Enables the global instruction selector
942 .. option:: -finline-functions, -fno-inline-functions
944 Inline suitable functions
946 .. option:: -finline-hint-functions
948 Inline functions which are (explicitly or implicitly) marked inline
950 .. option:: -finline-max-stacksize=<arg>
952 Suppress inlining of functions with a stacksize larger than <arg> bytes.
954 .. option:: -fno-legacy-pass-manager, -fexperimental-new-pass-manager
956 .. option:: -fno-sanitize-ignorelist, -fno-sanitize-blacklist
958 Don't use ignorelist file for sanitizers
960 .. option:: -fparse-all-comments
962 .. option:: -frandomize-layout-seed-file=<file>
964 File holding the seed used by the randomize structure layout feature
966 .. option:: -frandomize-layout-seed=<seed>
968 The seed used by the randomize structure layout feature
970 .. option:: -frecord-command-line, -fno-record-command-line, -frecord-gcc-switches
972 .. option:: -fsanitize-address-destructor=<arg>
974 Set destructor type used in ASan instrumentation. <arg> must be 'none' or 'global'.
976 .. option:: -fsanitize-address-field-padding=<arg>
978 Level of field padding for AddressSanitizer
980 .. option:: -fsanitize-address-globals-dead-stripping, -fno-sanitize-address-globals-dead-stripping
982 Enable linker dead stripping of globals in AddressSanitizer
984 .. option:: -fsanitize-address-outline-instrumentation, -fno-sanitize-address-outline-instrumentation
986 Always generate function calls for address sanitizer instrumentation
988 .. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
990 Enable poisoning array cookies when using custom operator new\[\] in AddressSanitizer
992 .. option:: -fsanitize-address-use-after-return=<mode>
994 Select the mode of detecting stack use-after-return in AddressSanitizer. <mode> must be 'never', 'runtime' or 'always'.
996 .. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
998 Enable use-after-scope detection in AddressSanitizer
1000 .. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
1002 Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
1004 .. option:: -fsanitize-cfi-canonical-jump-tables, -fno-sanitize-cfi-canonical-jump-tables
1006 Make the jump table addresses canonical in the symbol table
1008 .. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
1010 Enable control flow integrity (CFI) checks for cross-DSO calls.
1012 .. option:: -fsanitize-cfi-icall-generalize-pointers
1014 Generalize pointers in CFI indirect call type signature checks
1016 .. option:: -fsanitize-coverage-allowlist=<arg>
1018 Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
1020 .. option:: -fsanitize-coverage-ignorelist=<arg>
1022 Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
1024 .. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
1026 Specify the type of coverage instrumentation for Sanitizers
1028 .. option:: -fsanitize-hwaddress-abi=<arg>
1030 Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
1032 .. option:: -fsanitize-hwaddress-experimental-aliasing, -fno-sanitize-hwaddress-experimental-aliasing
1034 Enable aliasing mode in HWAddressSanitizer
1036 .. option:: -fsanitize-ignorelist=<arg>, -fsanitize-blacklist=<arg>
1038 Path to ignorelist file for sanitizers
1040 .. option:: -fsanitize-link-c++-runtime, -fno-sanitize-link-c++-runtime
1042 .. option:: -fsanitize-link-runtime, -fno-sanitize-link-runtime
1044 .. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
1046 Enable origins tracking in MemorySanitizer
1048 .. program:: clang1
1049 .. option:: -fsanitize-memory-track-origins=<arg>
1050 .. program:: clang
1052 Enable origins tracking in MemorySanitizer
1054 .. option:: -fsanitize-memory-use-after-dtor, -fno-sanitize-memory-use-after-dtor
1056 Enable use-after-destroy detection in MemorySanitizer
1058 .. option:: -fsanitize-memtag-mode=<arg>
1060 Set default MTE mode to 'sync' (default) or 'async'
1062 .. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
1064 .. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>..., -fsanitize-recover (equivalent to -fsanitize-recover=all)
1066 Enable recovery for specified sanitizers
1068 .. option:: -fsanitize-stats, -fno-sanitize-stats
1070 Enable sanitizer statistics gathering.
1072 .. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics
1074 Enable atomic operations instrumentation in ThreadSanitizer (default)
1076 .. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit
1078 Enable function entry/exit instrumentation in ThreadSanitizer (default)
1080 .. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access
1082 Enable memory access instrumentation in ThreadSanitizer (default)
1084 .. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>..., -fsanitize-trap (equivalent to -fsanitize-trap=all), -fsanitize-undefined-trap-on-error (equivalent to -fsanitize-trap=undefined)
1086 Enable trapping for specified sanitizers
1088 .. option:: -fsanitize-undefined-strip-path-components=<number>
1090 Strip (or keep only, if negative) a given number of path components when emitting check metadata.
1092 .. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...
1094 Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
1096 .. option:: -moutline, -mno-outline
1098 Enable function outlining (AArch64 only)
1100 .. option:: -moutline-atomics, -mno-outline-atomics
1102 Generate local calls to out-of-line atomic operations
1104 .. option:: --param <arg>, --param=<arg>
1106 .. option:: -print-supported-cpus, --print-supported-cpus, -mcpu=?, -mtune=?
1108 Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
1110 .. option:: -std=<arg>, --std=<arg>, --std <arg>
1112 Language standard to compile for
1114 Preprocessor flags
1115 ~~~~~~~~~~~~~~~~~~
1117 Flags controlling the behavior of the Clang preprocessor.
1119 .. option:: -C, --comments
1121 Include comments in preprocessed output
1123 .. option:: -CC, --comments-in-macros
1125 Include comments from within macros in preprocessed output
1127 .. program:: clang2
1128 .. option:: -D<macro>=<value>, --D<arg>, /D<arg>, -D<arg>, --define-macro <arg>, --define-macro=<arg>
1129 .. program:: clang
1131 Define <macro> to <value> (or 1 if <value> omitted)
1133 .. option:: -H, --trace-includes
1135 Show header includes and nesting depth
1137 .. option:: -P, --no-line-commands
1139 Disable linemarker output in -E mode
1141 .. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>
1143 Undefine macro <macro>
1145 .. option:: -Wp,<arg>,<arg2>...
1147 Pass the comma separated arguments in <arg> to the preprocessor
1149 .. option:: -Xpreprocessor <arg>
1151 Pass <arg> to the preprocessor
1153 Include path management
1154 -----------------------
1156 Flags controlling how ``#include``\s are resolved to files.
1158 .. program:: clang3
1159 .. option:: -I<dir>, /I<dir>, -I<dir>, --include-directory <arg>, --include-directory=<arg>
1160 .. program:: clang
1162 Add directory to include search path. For C++ inputs, if
1163 there are multiple -I options, these directories are searched
1164 in the order they are given before the standard system directories
1165 are searched. If the same directory is in the SYSTEM include search
1166 paths, for example if also specified with -isystem, the -I option
1167 will be ignored
1169 .. option:: -I-, --include-barrier
1171 Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
1173 .. option:: --amdgpu-arch-tool=<arg>
1175 Tool used for detecting AMD GPU arch in the system.
1177 .. option:: --cuda-path-ignore-env
1179 Ignore environment variables to detect CUDA installation
1181 .. option:: --cuda-path=<arg>
1183 CUDA installation path
1185 .. option:: -cxx-isystem<directory>
1187 Add directory to the C++ SYSTEM include search path
1189 .. option:: -fbuild-session-file=<file>
1191 Use the last modification time of <file> as the build session timestamp
1193 .. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
1195 Time when the current build session started
1197 .. option:: -fmodule-file=\[<name>=\]<file>
1199 Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
1201 .. option:: -fmodules-cache-path=<directory>
1203 Specify the module cache path
1205 .. option:: -fmodules-disable-diagnostic-validation
1207 Disable validation of the diagnostic options when loading the module
1209 .. option:: -fmodules-prune-after=<seconds>
1211 Specify the interval (in seconds) after which a module file will be considered unused
1213 .. option:: -fmodules-prune-interval=<seconds>
1215 Specify the interval (in seconds) between attempts to prune the module cache
1217 .. option:: -fmodules-user-build-path <directory>
1219 Specify the module user build path
1221 .. option:: -fmodules-validate-once-per-build-session
1223 Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
1225 .. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
1227 Validate the system headers that a module depends on when loading the module
1229 .. option:: -fprebuilt-module-path=<directory>
1231 Specify the prebuilt module path
1233 .. option:: --hip-path=<arg>
1235 HIP runtime installation path, used for finding HIP version and adding HIP include path.
1237 .. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
1239 Add directory to AFTER include search path
1241 .. option:: -iframework<arg>
1243 Add directory to SYSTEM framework search path
1245 .. option:: -iframeworkwithsysroot<directory>
1247 Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
1249 .. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
1251 Include macros from file before parsing
1253 .. option:: -include<file>, --include<file>, --include=<arg>
1255 Include file before parsing
1257 .. option:: -include-pch <file>
1259 Include precompiled header file
1261 .. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
1263 Set the -iwithprefix/-iwithprefixbefore prefix
1265 .. option:: -iquote<directory>
1267 Add directory to QUOTE include search path
1269 .. option:: -isysroot<dir>
1271 Set the system root directory (usually /)
1273 .. option:: -isystem<directory>
1275 Add directory to SYSTEM include search path
1277 .. option:: -isystem-after<directory>
1279 Add directory to end of the SYSTEM include search path
1281 .. option:: -ivfsoverlay<arg>
1283 Overlay the virtual filesystem described by file over the real file system
1285 .. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
1287 Set directory to SYSTEM include search path with prefix
1289 .. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
1291 Set directory to include search path with prefix
1293 .. option:: -iwithsysroot<directory>
1295 Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
1297 .. option:: --libomptarget-amdgpu-bc-path=<arg>, --libomptarget-amdgcn-bc-path=<arg>
1299 Path to libomptarget-amdgcn bitcode library
1301 .. option:: --libomptarget-nvptx-bc-path=<arg>
1303 Path to libomptarget-nvptx bitcode library
1305 .. option:: --ptxas-path=<arg>
1307 Path to ptxas (used for compiling CUDA code)
1309 .. option:: --rocm-path=<arg>
1311 ROCm installation path, used for finding and automatically linking required bitcode libraries.
1313 .. program:: clang1
1314 .. option:: -stdlib++-isystem<directory>
1315 .. program:: clang
1317 Use directory as the C++ standard library include path
1319 .. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
1321 Treat all #include paths starting with <prefix> as including a system header.
1323 Dependency file generation
1324 --------------------------
1326 Flags controlling generation of a dependency file for ``make``-like build
1327 systems.
1329 .. option:: -M, --dependencies
1331 Like -MD, but also implies -E and writes to stdout by default
1333 .. option:: -MD, --write-dependencies
1335 Write a depfile containing user and system headers
1337 .. option:: -MF<file>
1339 Write depfile output from -MMD, -MD, -MM, or -M to <file>
1341 .. option:: -MG, --print-missing-file-dependencies
1343 Add missing headers to depfile
1345 .. option:: -MJ<arg>
1347 Write a compilation database entry per input
1349 .. option:: -MM, --user-dependencies
1351 Like -MMD, but also implies -E and writes to stdout by default
1353 .. option:: -MMD, --write-user-dependencies
1355 Write a depfile containing user headers
1357 .. option:: -MP
1359 Create phony target for each dependency (other than main file)
1361 .. option:: -MQ<arg>
1363 Specify name of main file output to quote in depfile
1365 .. option:: -MT<arg>
1367 Specify name of main file output in depfile
1369 .. option:: -MV
1371 Use NMake/Jom format for the depfile
1373 Dumping preprocessor state
1374 --------------------------
1376 Flags allowing the state of the preprocessor to be dumped in various ways.
1378 .. option:: -d
1380 .. program:: clang1
1381 .. option:: -d<arg>
1382 .. program:: clang
1384 .. option:: -dD
1386 Print macro definitions in -E mode in addition to normal output
1388 .. option:: -dI
1390 Print include directives in -E mode in addition to normal output
1392 .. option:: -dM
1394 Print macro definitions in -E mode instead of normal output
1396 Diagnostic flags
1397 ~~~~~~~~~~~~~~~~
1399 Flags controlling which warnings, errors, and remarks Clang will generate.
1400 See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
1402 .. option:: -R<remark>
1404 Enable the specified remark
1406 .. option:: -Rpass-analysis=<arg>
1408 Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
1410 .. option:: -Rpass-missed=<arg>
1412 Report missed transformations by optimization passes whose name matches the given POSIX regular expression
1414 .. option:: -Rpass=<arg>
1416 Report transformations performed by optimization passes whose name matches the given POSIX regular expression
1418 .. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
1420 Enable the specified warning
1422 .. option:: -Wdeprecated, -Wno-deprecated
1424 Enable warnings for deprecated constructs and define \_\_DEPRECATED
1426 .. option:: -Wframe-larger-than=<arg>, -Wframe-larger-than
1428 .. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
1430 Target-independent compilation options
1431 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1432 .. option:: -fPIC, -fno-PIC
1434 .. option:: -fPIE, -fno-PIE
1436 .. option:: -faccess-control, -fno-access-control
1438 .. option:: -faddrsig, -fno-addrsig
1440 Emit an address-significance table
1442 .. option:: -falign-functions, -fno-align-functions
1444 .. program:: clang1
1445 .. option:: -falign-functions=<arg>
1446 .. program:: clang
1448 .. option:: -falign-loops=<N>
1450 N must be a power of two. Align loops to the boundary
1452 .. program:: clang1
1453 .. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
1454 .. program:: clang
1456 Enable C++17 aligned allocation functions
1458 .. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
1460 Treat editor placeholders as valid source code
1462 .. option:: -fallow-unsupported
1464 .. option:: -faltivec, -fno-altivec
1466 .. option:: -faltivec-src-compat=<arg>
1468 Source-level compatibility for Altivec vectors (for PowerPC targets). This includes results of vector comparison (scalar for 'xl', vector for 'gcc') as well as behavior when initializing with a scalar (splatting for 'xl', element zero only for 'gcc'). For 'mixed', the compatibility is as 'gcc' for 'vector bool/vector pixel' and as 'xl' for other types. Current default is 'mixed'. <arg> must be 'mixed', 'gcc' or 'xl'.
1470 .. option:: -fansi-escape-codes
1472 Use ANSI escape codes for diagnostics
1474 .. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
1476 Use Apple's kernel extensions ABI
1478 .. option:: -fapple-link-rtlib
1480 Force linking the clang builtins runtime library
1482 .. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
1484 Enable Apple gcc-compatible #pragma pack handling
1486 .. option:: -fapplication-extension, -fno-application-extension
1488 Restrict code to those available for App Extensions
1490 .. option:: -fapprox-func, -fno-approx-func
1492 Allow certain math function calls to be replaced with an approximately equivalent calculation
1494 .. option:: -fasm, -fno-asm
1496 .. option:: -fasm-blocks, -fno-asm-blocks
1498 .. option:: -fassociative-math, -fno-associative-math
1500 .. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
1502 .. option:: -fast
1504 .. option:: -fastcp
1506 .. option:: -fastf
1508 .. option:: -fasync-exceptions, -fno-async-exceptions
1510 Enable EH Asynchronous exceptions
1512 .. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
1514 .. option:: -fautolink, -fno-autolink
1516 .. option:: -fbasic-block-sections=<arg>
1518 Generate labels for each basic block or place each basic block or a subset of basic blocks in its own section. <arg> must be 'all', 'labels', 'none' or 'list='.
1520 .. option:: -fbinutils-version=<major.minor>
1522 Produced object files can use all ELF features supported by this binutils version and newer. If -fno-integrated-as is specified, the generated assembly will consider GNU as support. 'none' means that all ELF features can be used, regardless of binutils support. Defaults to 2.26.
1524 .. option:: -fblocks, -fno-blocks
1526 Enable the 'blocks' language feature
1528 .. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
1530 .. option:: -fborland-extensions, -fno-borland-extensions
1532 Accept non-standard constructs supported by the Borland compiler
1534 .. option:: -fbracket-depth=<arg>
1536 .. option:: -fbuiltin, -fno-builtin
1538 .. option:: -fbuiltin-module-map
1540 Load the clang builtins module map file.
1542 .. program:: clang1
1543 .. option:: -fc++-static-destructors, -fno-c++-static-destructors
1544 .. program:: clang
1546 .. option:: -fcaret-diagnostics, -fno-caret-diagnostics
1548 .. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
1550 Instrument control-flow architecture protection. <arg> must be 'return', 'branch', 'full' or 'none'.
1552 .. option:: -fcf-runtime-abi=<arg>
1554  <arg> must be 'unspecified', 'standalone', 'objc', 'swift', 'swift-5.0', 'swift-4.2' or 'swift-4.1'.
1556 .. option:: -fchar8\_t, -fno-char8\_t
1558 Enable C++ builtin type char8\_t
1560 .. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
1562 .. option:: -fcolor-diagnostics, -fdiagnostics-color, -fno-color-diagnostics
1564 Enable colors in diagnostics
1566 .. option:: -fcommon, -fno-common
1568 Place uninitialized global variables in a common block
1570 .. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
1572 .. option:: -fconstant-cfstrings, -fno-constant-cfstrings
1574 .. option:: -fconstant-string-class=<arg>
1576 .. option:: -fconstexpr-backtrace-limit=<arg>
1578 .. option:: -fconstexpr-depth=<arg>
1580 .. option:: -fconstexpr-steps=<arg>
1582 .. option:: -fconvergent-functions
1584 Assume functions may be convergent
1586 .. option:: -fcoroutines-ts, -fno-coroutines-ts
1588 Enable support for the C++ Coroutines TS
1590 .. option:: -fcoverage-compilation-dir=<arg>
1592 The compilation directory to embed in the coverage mapping.
1594 .. option:: -fcoverage-mapping, -fno-coverage-mapping
1596 Generate coverage mapping to enable code coverage analysis
1598 .. option:: -fcoverage-prefix-map=<arg>
1600 remap file source paths in coverage mapping
1602 .. option:: -fcreate-profile
1604 .. option:: -fcs-profile-generate
1606 Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1608 .. program:: clang1
1609 .. option:: -fcs-profile-generate=<directory>
1610 .. program:: clang
1612 Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1614 .. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
1616 Use approximate transcendental functions
1618 .. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
1620 Use 32-bit pointers for accessing const/local/shared address spaces
1622 .. option:: -fcxx-exceptions, -fno-cxx-exceptions
1624 Enable C++ exceptions
1626 .. option:: -fcxx-modules, -fno-cxx-modules
1628 Enable modules for C++
1630 .. option:: -fdata-sections, -fno-data-sections
1632 Place each data in its own section
1634 .. option:: -fdebug-compilation-dir=<arg>, -fdebug-compilation-dir <arg>
1636 The compilation directory to embed in the debug info
1638 .. option:: -fdebug-default-version=<arg>
1640 Default DWARF version to use, if a -g option caused DWARF debug info to be produced
1642 .. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
1644 Emit extra debug info to make sample profile more accurate
1646 .. option:: -fdebug-macro, -fno-debug-macro
1648 Emit macro debug information
1650 .. option:: -fdebug-pass-arguments
1652 .. option:: -fdebug-pass-structure
1654 .. option:: -fdebug-prefix-map=<arg>
1656 remap file source paths in debug info
1658 .. option:: -fdebug-ranges-base-address, -fno-debug-ranges-base-address
1660 Use DWARF base address selection entries in .debug\_ranges
1662 .. option:: -fdebug-types-section, -fno-debug-types-section
1664 Place debug types in their own section (ELF Only)
1666 .. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
1668 Parse templated function definitions at the end of the translation unit
1670 .. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
1672 Treat usage of null pointers as undefined behavior (default)
1674 .. option:: -fdenormal-fp-math=<arg>
1676 .. option:: -fdiagnostics-absolute-paths
1678 Print absolute paths in diagnostics
1680 .. program:: clang1
1681 .. option:: -fdiagnostics-color=<arg>
1682 .. program:: clang
1684 .. option:: -fdiagnostics-hotness-threshold=<value>
1686 Prevent optimization remarks from being output if they do not have at least this profile count. Use 'auto' to apply the threshold from profile summary
1688 .. option:: -fdiagnostics-misexpect-tolerance=<value>
1690 Prevent misexpect diagnostics from being output if the profile counts are within N% of the expected. 
1692 .. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
1694 Enable profile hotness information in diagnostic line
1696 .. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
1698 Display include stacks for diagnostic notes
1700 .. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
1702 Print option name with mappable diagnostics
1704 .. option:: -fdiagnostics-show-template-tree
1706 Print a template comparison tree for differing templates
1708 .. option:: -fdigraphs, -fno-digraphs
1710 Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
1712 .. option:: -fdirect-access-external-data, -fno-direct-access-external-data
1714 Don't use GOT indirection to reference external data symbols
1716 .. option:: -fdirectives-only, -fno-directives-only
1718 .. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
1720 Allow '$' in identifiers
1722 .. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
1724 Enable '\[\[\]\]' attributes in all C and C++ language modes
1726 .. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
1728 .. option:: -fdwarf-exceptions
1730 Use DWARF style exceptions
1732 .. option:: -felide-constructors, -fno-elide-constructors
1734 .. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
1736 .. option:: -feliminate-unused-debug-types, -fno-eliminate-unused-debug-types
1738 Do not emit  debug info for defined but unused types
1740 .. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
1742 Embed LLVM bitcode. <option> must be 'off', 'all', 'bitcode' or 'marker'.
1744 .. option:: -fembed-offload-object=<arg>
1746 Embed Offloading device-side binary into host object file as a section.
1748 .. option:: -femit-all-decls
1750 Emit all declarations, even if unused
1752 .. option:: -femit-dwarf-unwind=<arg>
1754 When to emit DWARF unwind (EH frame) info. <arg> must be 'always', 'no-compact-unwind' or 'default'.
1756 .. option:: -femulated-tls, -fno-emulated-tls
1758 Use emutls functions to access thread\_local variables
1760 .. option:: -fenable-matrix
1762 Enable matrix data type and related builtin functions
1764 .. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
1766 .. option:: -ferror-limit=<arg>
1768 .. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
1770 .. option:: -fexceptions, -fno-exceptions
1772 Enable support for exception handling
1774 .. option:: -fexec-charset=<arg>
1776 .. option:: -fexperimental-library, -fno-experimental-library
1778 Control whether unstable and experimental library features are enabled. This option enables various library features that are either experimental (also known as TSes), or have been but are not stable yet in the selected Standard Library implementation. It is not recommended to use this option in production code, since neither ABI nor API stability are guaranteed. This is intended to provide a preview of features that will ship in the future for experimentation purposes
1780 .. option:: -fexperimental-new-constant-interpreter
1782 Enable the experimental new constant interpreter
1784 .. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
1786 .. option:: -fextend-arguments=<arg>
1788 Controls how scalar integer arguments are extended in calls to unprototyped and varargs functions. <arg> must be '32' or '64'.
1790 .. option:: -ffast-math, -fno-fast-math
1792 Allow aggressive, lossy floating-point optimizations
1794 .. option:: -ffile-compilation-dir=<arg>
1796 The compilation directory to embed in the debug info and coverage mapping.
1798 .. option:: -ffile-prefix-map=<arg>
1800 remap file source paths in debug info, predefined preprocessor macros and \_\_builtin\_FILE(). Implies -ffile-reproducible.
1802 .. option:: -ffile-reproducible, -fno-file-reproducible
1804 Use the target's platform-specific path separator character when expanding the \_\_FILE\_\_ macro
1806 .. option:: -ffinite-loops, -fno-finite-loops
1808 Assume all loops are finite.
1810 .. option:: -ffinite-math-only, -fno-finite-math-only
1812 .. option:: -ffixed-point, -fno-fixed-point
1814 Enable fixed point types
1816 .. option:: -ffor-scope, -fno-for-scope
1818 .. option:: -fforce-dwarf-frame, -fno-force-dwarf-frame
1820 Always emit a debug frame section
1822 .. option:: -fforce-emit-vtables, -fno-force-emit-vtables
1824 Emits more virtual tables to improve devirtualization
1826 .. option:: -fforce-enable-int128, -fno-force-enable-int128
1828 Enable support for int128\_t type
1830 .. option:: -ffp-contract=<arg>
1832 Form fused FP ops (e.g. FMAs): fast (fuses across statements disregarding pragmas) \| on (only fuses in the same statement unless dictated by pragmas) \| off (never fuses) \| fast-honor-pragmas (fuses across statements unless diectated by pragmas). Default is 'fast' for CUDA, 'fast-honor-pragmas' for HIP, and 'on' otherwise. <arg> must be 'fast', 'on', 'off' or 'fast-honor-pragmas'.
1834 .. option:: -ffp-eval-method=<arg>
1836 Specifies the evaluation method to use for floating-point arithmetic. <arg> must be 'source', 'double' or 'extended'.
1838 .. option:: -ffp-exception-behavior=<arg>
1840 Specifies the exception behavior of floating-point operations. <arg> must be 'ignore', 'maytrap' or 'strict'.
1842 .. option:: -ffp-model=<arg>
1844 Controls the semantics of floating-point calculations.
1846 .. option:: -ffreestanding
1848 Assert that the compilation takes place in a freestanding environment
1850 .. option:: -ffunction-sections, -fno-function-sections
1852 Place each function in its own section
1854 .. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
1856 .. option:: -fgnu-keywords, -fno-gnu-keywords
1858 Allow GNU-extension keywords regardless of language standard
1860 .. option:: -fgnu-runtime
1862 Generate output compatible with the standard GNU Objective-C runtime
1864 .. option:: -fgnu89-inline, -fno-gnu89-inline
1866 Use the gnu89 inline semantics
1868 .. option:: -fgnuc-version=<arg>
1870 Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
1872 .. option:: -fgpu-allow-device-init, -fno-gpu-allow-device-init
1874 Allow device side init function in HIP (experimental)
1876 .. option:: -fgpu-defer-diag, -fno-gpu-defer-diag
1878 Defer host/device related diagnostic messages for CUDA/HIP
1880 .. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
1882 Generate relocatable device code, also known as separate compilation mode
1884 .. option:: -fgpu-sanitize, -fno-gpu-sanitize
1886 Enable sanitizer for AMDGPU target
1888 .. option:: -fhip-fp32-correctly-rounded-divide-sqrt, -fno-hip-fp32-correctly-rounded-divide-sqrt
1890 Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded (HIP device compilation only)
1892 .. option:: -fhip-kernel-arg-name, -fno-hip-kernel-arg-name
1894 Specify that kernel argument names are preserved (HIP only)
1896 .. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
1898 Use new kernel launching API for HIP
1900 .. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1902 .. option:: -fhonor-nans, -fno-honor-nans
1904 .. option:: -fhosted
1906 .. option:: -fignore-exceptions
1908 Enable support for ignoring exception handling constructs
1910 .. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1912 Implicitly search the file system for module map files.
1914 .. option:: -fimplicit-modules, -fno-implicit-modules
1916 .. option:: -finput-charset=<arg>
1918 Specify the default character set for source files
1920 .. option:: -finstrument-function-entry-bare
1922 Instrument function entry only, after inlining, without arguments to the instrumentation call
1924 .. option:: -finstrument-functions
1926 Generate calls to instrument function entry and exit
1928 .. option:: -finstrument-functions-after-inlining
1930 Like -finstrument-functions, but insert the calls after inlining
1932 .. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1934 Enable the integrated assembler
1936 .. option:: -fintegrated-cc1, -fno-integrated-cc1
1938 Run cc1 in-process
1940 .. option:: -fintegrated-objemitter, -fno-integrated-objemitter
1942 Use internal machine object code emitter.
1944 .. option:: -fjmc, -fno-jmc
1946 Enable just-my-code debugging
1948 .. option:: -fjump-tables, -fno-jump-tables
1950 Use jump tables for lowering switches
1952 .. option:: -fkeep-static-consts, -fno-keep-static-consts
1954 Keep static const variables if unused
1956 .. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
1958 Enable implicit vector bit-casts. <arg> must be 'none', 'integer' or 'all'.
1960 .. option:: -flimited-precision=<arg>
1962 .. option:: -flto-jobs=<arg>
1964 Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1966 .. option:: -flto=<arg>, -flto (equivalent to -flto=full), -flto=auto (equivalent to -flto=full), -flto=jobserver (equivalent to -flto=full)
1968 Set LTO mode. <arg> must be 'thin' or 'full'.
1970 .. option:: -fmacro-backtrace-limit=<arg>
1972 .. option:: -fmacro-prefix-map=<arg>
1974 remap file source paths in predefined preprocessor macros and \_\_builtin\_FILE(). Implies -ffile-reproducible.
1976 .. option:: -fmath-errno, -fno-math-errno
1978 Require math functions to indicate errors by setting errno
1980 .. option:: -fmax-tokens=<arg>
1982 Max total number of preprocessed tokens for -Wmax-tokens.
1984 .. option:: -fmax-type-align=<arg>
1986 Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1988 .. option:: -fmemory-profile, -fno-memory-profile
1990 Enable heap memory profiling
1992 .. program:: clang1
1993 .. option:: -fmemory-profile=<directory>
1994 .. program:: clang
1996 Enable heap memory profiling and dump results into <directory>
1998 .. option:: -fmerge-all-constants, -fno-merge-all-constants
2000 Allow merging of constants
2002 .. option:: -fmessage-length=<arg>
2004 Format message diagnostics so that they fit within N columns
2006 .. option:: -fminimize-whitespace, -fno-minimize-whitespace
2008 Minimize whitespace when emitting preprocessor output
2010 .. option:: -fmodule-file-deps, -fno-module-file-deps
2012 .. option:: -fmodule-header
2014 Build a C++20 Header Unit from a header.
2016 .. program:: clang1
2017 .. option:: -fmodule-header=<kind>
2018 .. program:: clang
2020 Build a C++20 Header Unit from a header that should be found in the user (fmodule-header=user) or system (fmodule-header=system) search path.
2022 .. option:: -fmodule-map-file=<file>
2024 Load this module map file
2026 .. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>
2028 Specify the name of the module to build
2030 .. option:: -fmodules, -fno-modules
2032 Enable the 'modules' language feature
2034 .. option:: -fmodules-decluse, -fno-modules-decluse
2036 Require declaration of modules used within a module
2038 .. option:: -fmodules-ignore-macro=<arg>
2040 Ignore the definition of the given macro when building and loading modules
2042 .. option:: -fmodules-search-all, -fno-modules-search-all
2044 Search even non-imported modules to resolve references
2046 .. option:: -fmodules-strict-decluse
2048 Like -fmodules-decluse but requires all headers to be in modules
2050 .. option:: -fmodules-ts
2052 Enable support for the C++ Modules TS
2054 .. option:: -fmodules-validate-input-files-content
2056 Validate PCM input files based on content if mtime differs
2058 .. option:: -fms-compatibility, -fno-ms-compatibility
2060 Enable full Microsoft Visual C++ compatibility
2062 .. option:: -fms-compatibility-version=<arg>
2064 Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
2066 .. option:: -fms-extensions, -fno-ms-extensions
2068 Accept some non-standard constructs supported by the Microsoft compiler
2070 .. option:: -fms-hotpatch
2072 Ensure that all functions can be hotpatched at runtime
2074 .. option:: -fms-memptr-rep=<arg>
2076  <arg> must be 'single', 'multiple' or 'virtual'.
2078 .. option:: -fms-volatile
2080 .. option:: -fmsc-version=<arg>
2082 Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
2084 .. option:: -fmudflap
2086 .. option:: -fmudflapth
2088 .. option:: -fnested-functions
2090 .. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
2092 Specifies the largest alignment guaranteed by '::operator new(size\_t)'
2094 .. option:: -fnew-infallible, -fno-new-infallible
2096 Enable treating throwing global C++ operator new as always returning valid memory (annotates with \_\_attribute\_\_((returns\_nonnull)) and throw()). This is detectable in source.
2098 .. option:: -fnext-runtime
2100 .. option:: -fno-builtin-<arg>
2102 Disable implicit builtin knowledge of a specific function
2104 .. option:: -fno-elide-type
2106 Do not elide types when printing diagnostics
2108 .. option:: -fno-knr-functions
2110 Disable support for K&R C function declarations
2112 .. option:: -fno-max-type-align
2114 .. option:: -fno-strict-modules-decluse
2116 .. option:: -fno-temp-file
2118 Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
2120 .. option:: -fno-working-directory
2122 .. option:: -fno\_modules-validate-input-files-content
2124 .. program:: clang1
2125 .. option:: -fno\_pch-validate-input-files-content
2126 .. program:: clang
2128 .. option:: -fnoxray-link-deps
2130 .. option:: -fobjc-abi-version=<arg>
2132 .. option:: -fobjc-arc, -fno-objc-arc
2134 Synthesize retain and release calls for Objective-C pointers
2136 .. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
2138 Use EH-safe code when synthesizing retains and releases in -fobjc-arc
2140 .. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
2142 .. option:: -fobjc-disable-direct-methods-for-testing
2144 Ignore attribute objc\_direct so that direct methods can be tested
2146 .. option:: -fobjc-encode-cxx-class-template-spec, -fno-objc-encode-cxx-class-template-spec
2148 Fully encode c++ class template specialization
2150 .. option:: -fobjc-exceptions, -fno-objc-exceptions
2152 Enable Objective-C exceptions
2154 .. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
2156 .. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
2158 .. option:: -fobjc-link-runtime
2160 .. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
2162 .. option:: -fobjc-nonfragile-abi-version=<arg>
2164 .. option:: -fobjc-runtime=<arg>
2166 Specify the target Objective-C runtime kind and version
2168 .. option:: -fobjc-sender-dependent-dispatch
2170 .. option:: -fobjc-weak, -fno-objc-weak
2172 Enable ARC-style weak references in Objective-C
2174 .. option:: -foffload-lto=<arg>, -foffload-lto (equivalent to -foffload-lto=full)
2176 Set LTO mode for offload compilation. <arg> must be 'thin' or 'full'.
2178 .. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
2180 .. option:: -fopenmp, -fno-openmp
2182 Parse OpenMP pragmas and generate parallel code.
2184 .. option:: -fopenmp-extensions, -fno-openmp-extensions
2186 Enable all Clang extensions for OpenMP directives and clauses
2188 .. option:: -fopenmp-implicit-rpath, -fno-openmp-implicit-rpath
2190 Set rpath on OpenMP executables
2192 .. option:: -fopenmp-new-driver
2194 Use the new driver for OpenMP offloading.
2196 .. option:: -fopenmp-offload-mandatory
2198 Do not create a host fallback if offloading to the device fails.
2200 .. option:: -fopenmp-simd, -fno-openmp-simd
2202 Emit OpenMP code only for SIMD-based constructs.
2204 .. option:: -fopenmp-target-debug, -fno-openmp-target-debug
2206 Enable debugging in the OpenMP offloading device RTL
2208 .. option:: -fopenmp-version=<arg>
2210 Set OpenMP version (e.g. 45 for OpenMP 4.5, 50 for OpenMP 5.0). Default value is 50.
2212 .. program:: clang1
2213 .. option:: -fopenmp=<arg>
2214 .. program:: clang
2216 .. option:: -foperator-arrow-depth=<arg>
2218 .. option:: -foperator-names, -fno-operator-names
2220 .. option:: -foptimization-record-file=<file>
2222 Specify the output name of the file containing the optimization remarks. Implies -fsave-optimization-record. On Darwin platforms, this cannot be used with multiple -arch <arch> options.
2224 .. option:: -foptimization-record-passes=<regex>
2226 Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
2228 .. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
2230 .. option:: -forder-file-instrumentation
2232 Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
2234 .. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
2236 .. option:: -fpack-struct, -fno-pack-struct
2238 .. program:: clang1
2239 .. option:: -fpack-struct=<arg>
2240 .. program:: clang
2242 Specify the default maximum struct packing alignment
2244 .. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
2246 Recognize and construct Pascal-style string literals
2248 .. option:: -fpass-plugin=<dsopath>
2250 Load pass plugin from a dynamic shared object file (only with new pass manager).
2252 .. option:: -fpatchable-function-entry=<N,M>
2254 Generate M NOPs before function entry and N-M NOPs after function entry
2256 .. option:: -fpcc-struct-return
2258 Override the default ABI to return all structs on the stack
2260 .. option:: -fpch-codegen, -fno-pch-codegen
2262 Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
2264 .. option:: -fpch-debuginfo, -fno-pch-debuginfo
2266 Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
2268 .. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
2270 Instantiate templates already while building a PCH
2272 .. option:: -fpch-preprocess
2274 .. option:: -fpch-validate-input-files-content
2276 Validate PCH input files based on content if mtime differs
2278 .. option:: -fpic, -fno-pic
2280 .. option:: -fpie, -fno-pie
2282 .. option:: -fplt, -fno-plt
2284 .. option:: -fplugin=<dsopath>
2286 Load the named plugin (dynamic shared object)
2288 .. option:: -fprebuilt-implicit-modules, -fno-prebuilt-implicit-modules
2290 Look up implicit modules in the prebuilt module path
2292 .. option:: -fpreserve-as-comments, -fno-preserve-as-comments
2294 .. option:: -fproc-stat-report<arg>
2296 Print subprocess statistics
2298 .. program:: clang1
2299 .. option:: -fproc-stat-report=<arg>
2300 .. program:: clang
2302 Save subprocess statistics to the given file
2304 .. option:: -fprofile-arcs, -fno-profile-arcs
2306 .. option:: -fprofile-dir=<arg>
2308 .. option:: -fprofile-exclude-files=<arg>
2310 Instrument only functions from files where names don't match all the regexes separated by a semi-colon
2312 .. option:: -fprofile-filter-files=<arg>
2314 Instrument only functions from files where names match any regex separated by a semi-colon
2316 .. option:: -fprofile-function-groups=<N>
2318 Partition functions into N groups and select only functions in group i to be instrumented using -fprofile-selected-function-group
2320 .. option:: -fprofile-generate, -fno-profile-generate
2322 Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
2324 .. program:: clang1
2325 .. option:: -fprofile-generate=<directory>
2326 .. program:: clang
2328 Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
2330 .. option:: -fprofile-instr-generate, -fno-profile-instr-generate
2332 Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
2334 .. program:: clang1
2335 .. option:: -fprofile-instr-generate=<file>
2336 .. program:: clang
2338 Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
2340 .. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
2342 .. program:: clang1
2343 .. option:: -fprofile-instr-use=<arg>
2344 .. program:: clang
2346 Use instrumentation data for profile-guided optimization
2348 .. option:: -fprofile-list=<arg>
2350 Filename defining the list of functions/files to instrument
2352 .. option:: -fprofile-remapping-file=<file>
2354 Use the remappings described in <file> to match the profile data against names in the program
2356 .. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
2358 Specifies that the sample profile is accurate. If the sample
2359                profile is accurate, callsites without profile samples are marked
2360                as cold. Otherwise, treat callsites without profile samples as if
2361                we have no profile
2363 .. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
2365 .. program:: clang1
2366 .. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
2367 .. program:: clang
2369 Enable sample-based profile guided optimizations
2371 .. option:: -fprofile-selected-function-group=<i>
2373 Partition functions into N groups using -fprofile-function-groups and select only functions in group i to be instrumented. The valid range is 0 to N-1 inclusive
2375 .. option:: -fprofile-update=<method>
2377 Set update method of profile counters. <method> must be 'atomic', 'prefer-atomic' or 'single'.
2379 .. program:: clang1
2380 .. option:: -fprofile-use=<pathname>
2381 .. program:: clang
2383 Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
2385 .. option:: -fprotect-parens, -fno-protect-parens
2387 Determines whether the optimizer honors parentheses when floating-point expressions are evaluated
2389 .. option:: -fpseudo-probe-for-profiling, -fno-pseudo-probe-for-profiling
2391 Emit pseudo probes for sample profiling
2393 .. option:: -freciprocal-math, -fno-reciprocal-math
2395 Allow division operations to be reassociated
2397 .. option:: -freg-struct-return
2399 Override the default ABI to return small structs in registers
2401 .. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
2403 Use atexit or \_\_cxa\_atexit to register global destructors
2405 .. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
2407 Enable C++17 relaxed template template argument matching
2409 .. option:: -freroll-loops, -fno-reroll-loops
2411 Turn on loop reroller
2413 .. option:: -fretain-comments-from-system-headers
2415 .. option:: -frewrite-imports, -fno-rewrite-imports
2417 .. option:: -frewrite-includes, -fno-rewrite-includes
2419 .. option:: -frewrite-map-file=<arg>
2421 .. option:: -fropi, -fno-ropi
2423 Generate read-only position independent code (ARM only)
2425 .. option:: -frounding-math, -fno-rounding-math
2427 .. option:: -frtti, -fno-rtti
2429 .. option:: -frtti-data, -fno-rtti-data
2431 .. option:: -frwpi, -fno-rwpi
2433 Generate read-write position independent code (ARM only)
2435 .. option:: -fsanitize-memory-param-retval, -fno-sanitize-memory-param-retval
2437 Enable detection of uninitialized parameters and return values
2439 .. option:: -fsave-optimization-record, -fno-save-optimization-record
2441 Generate a YAML optimization record file
2443 .. program:: clang1
2444 .. option:: -fsave-optimization-record=<format>
2445 .. program:: clang
2447 Generate an optimization record file in a specific format
2449 .. option:: -fseh-exceptions
2451 Use SEH style exceptions
2453 .. option:: -fsemantic-interposition, -fno-semantic-interposition
2455 .. option:: -fshort-enums, -fno-short-enums
2457 Allocate to an enum type only as many bytes as it needs for the declared range of possible values
2459 .. option:: -fshort-wchar, -fno-short-wchar
2461 Force wchar\_t to be a short unsigned int
2463 .. option:: -fshow-column, -fno-show-column
2465 .. option:: -fshow-overloads=<arg>
2467 Which overload candidates to show when overload resolution fails. Defaults to 'all'. <arg> must be 'best' or 'all'.
2469 .. option:: -fshow-source-location, -fno-show-source-location
2471 .. option:: -fsignaling-math, -fno-signaling-math
2473 .. option:: -fsigned-bitfields
2475 .. option:: -fsigned-char, -fno-signed-char, --signed-char
2477 char is signed
2479 .. option:: -fsigned-zeros, -fno-signed-zeros
2481 .. option:: -fsized-deallocation, -fno-sized-deallocation
2483 Enable C++14 sized global deallocation functions
2485 .. option:: -fsjlj-exceptions
2487 Use SjLj style exceptions
2489 .. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
2491 Enable the superword-level parallelism vectorization passes
2493 .. option:: -fspell-checking, -fno-spell-checking
2495 .. option:: -fspell-checking-limit=<arg>
2497 .. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
2499 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
2501 .. option:: -fsplit-lto-unit, -fno-split-lto-unit
2503 Enables splitting of the LTO unit
2505 .. option:: -fsplit-machine-functions, -fno-split-machine-functions
2507 Enable late function splitting using profile information (x86 ELF)
2509 .. option:: -fsplit-stack, -fno-split-stack
2511 Use segmented stack
2513 .. option:: -fstack-clash-protection, -fno-stack-clash-protection
2515 Enable stack clash protection
2517 .. option:: -fstack-protector, -fno-stack-protector
2519 Enable stack protectors for some functions vulnerable to stack smashing. This uses a loose heuristic which considers functions vulnerable if they contain a char (or 8bit integer) array or constant sized calls to alloca , which are of greater size than ssp-buffer-size (default: 8 bytes). All variable sized calls to alloca are considered vulnerable. A function with a stack protector has a guard value added to the stack frame that is checked on function exit. The guard value must be positioned in the stack frame such that a buffer overflow from a vulnerable variable will overwrite the guard value before overwriting the function's return address. The reference stack guard value is stored in a global variable.
2521 .. option:: -fstack-protector-all
2523 Enable stack protectors for all functions
2525 .. option:: -fstack-protector-strong
2527 Enable stack protectors for some functions vulnerable to stack smashing. Compared to -fstack-protector, this uses a stronger heuristic that includes functions containing arrays of any size (and any type), as well as any calls to alloca or the taking of an address from a local variable
2529 .. option:: -fstack-size-section, -fno-stack-size-section
2531 Emit section containing metadata on function stack sizes
2533 .. option:: -fstack-usage
2535 Emit .su file containing information on function stack sizes
2537 .. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
2539 Emit full debug info for all types used by the program
2541 .. option:: -fstrict-aliasing, -fno-strict-aliasing
2543 .. option:: -fstrict-enums, -fno-strict-enums
2545 Enable optimizations based on the strict definition of an enum's value range
2547 .. option:: -fstrict-flex-arrays=<n>
2549 Enable optimizations based on the strict definition of flexible arrays. <n> must be '0', '1' or '2'.
2551 .. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
2553 Assume that overflowing float-to-int casts are undefined (default)
2555 .. option:: -fstrict-overflow, -fno-strict-overflow
2557 .. option:: -fstrict-return, -fno-strict-return
2559 .. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
2561 Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
2563 .. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
2565 .. option:: -fswift-async-fp=<option>
2567 Control emission of Swift async extended frame info. <option> must be 'auto', 'always' or 'never'.
2569 .. option:: -fsymbol-partition=<arg>
2571 .. option:: -ftabstop=<arg>
2573 .. option:: -ftemplate-backtrace-limit=<arg>
2575 .. option:: -ftemplate-depth-<arg>
2577 .. option:: -ftemplate-depth=<arg>
2579 .. option:: -ftest-coverage, -fno-test-coverage
2581 .. option:: -fthin-link-bitcode=<arg>
2583 Write minimized bitcode to <file> for the ThinLTO thin link only
2585 .. option:: -fthinlto-index=<arg>
2587 Perform ThinLTO importing using provided function summary index
2589 .. option:: -fthreadsafe-statics, -fno-threadsafe-statics
2591 .. option:: -ftime-report
2593 .. program:: clang1
2594 .. option:: -ftime-report=<arg>
2595 .. program:: clang
2597 (For new pass manager) 'per-pass': one report for each pass; 'per-pass-run': one report for each pass invocation. <arg> must be 'per-pass' or 'per-pass-run'.
2599 .. option:: -ftime-trace
2602 Turn on time profiler. Generates JSON file based on output filename. Results
2603 can be analyzed with chrome://tracing or `Speedscope App
2604 <https://www.speedscope.app>`_ for flamegraph visualization.
2606 .. option:: -ftime-trace-granularity=<arg>
2608 Minimum time granularity (in microseconds) traced by time profiler
2610 .. program:: clang1
2611 .. option:: -ftime-trace=<arg>
2612 .. program:: clang
2614 Similar to -ftime-trace. Specify the JSON file or a directory which will contain the JSON file
2616 .. option:: -ftls-model=<arg>
2618  <arg> must be 'global-dynamic', 'local-dynamic', 'initial-exec' or 'local-exec'.
2620 .. option:: -ftrap-function=<arg>
2622 Issue call to specified function rather than a trap instruction
2624 .. option:: -ftrapping-math, -fno-trapping-math
2626 .. option:: -ftrapv
2628 Trap on integer overflow
2630 .. option:: -ftrapv-handler <arg>
2632 .. program:: clang1
2633 .. option:: -ftrapv-handler=<function name>
2634 .. program:: clang
2636 Specify the function to be called on overflow
2638 .. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
2640 Process trigraph sequences
2642 .. option:: -ftrivial-auto-var-init-stop-after=<arg>
2644 Stop initializing trivial automatic stack variables after the specified number of instances
2646 .. option:: -ftrivial-auto-var-init=<arg>
2648 Initialize trivial automatic stack variables. Defaults to 'uninitialized'. <arg> must be 'uninitialized', 'zero' or 'pattern'.
2650 .. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
2652 Use unique names for basic block sections (ELF Only)
2654 .. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
2656 Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
2658 .. option:: -funique-section-names, -fno-unique-section-names
2660 .. option:: -funroll-loops, -fno-unroll-loops
2662 Turn on loop unroller
2664 .. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2666 .. option:: -funsigned-bitfields
2668 .. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2670 .. option:: -funwind-tables, -fno-unwind-tables
2672 .. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2674 .. option:: -fuse-init-array, -fno-use-init-array
2676 .. option:: -fuse-ld=<arg>
2678 .. option:: -fuse-line-directives, -fno-use-line-directives
2680 Use #line in preprocessed output
2682 .. option:: -fvalidate-ast-input-files-content
2684 Compute and store the hash of input files used to build an AST. Files with mismatching mtime's are considered valid if both contents is identical
2686 .. option:: -fveclib=<arg>
2688 Use the given vector functions library. <arg> must be 'Accelerate', 'libmvec', 'MASSV', 'SVML', 'Darwin_libsystem_m' or 'none'.
2690 .. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2692 Enable the loop vectorization passes
2694 .. option:: -fverbose-asm, -dA, -fno-verbose-asm
2696 Generate verbose assembly output
2698 .. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
2700 Enables dead virtual function elimination optimization. Requires -flto=full
2702 .. option:: -fvisibility-dllexport=<arg>
2704 The visibility for dllexport definitions \[-fvisibility-from-dllstorageclass\]. <arg> must be 'default', 'hidden', 'internal' or 'protected'.
2706 .. option:: -fvisibility-externs-dllimport=<arg>
2708 The visibility for dllimport external declarations \[-fvisibility-from-dllstorageclass\]. <arg> must be 'default', 'hidden', 'internal' or 'protected'.
2710 .. option:: -fvisibility-externs-nodllstorageclass=<arg>
2712 The visibility for external declarations without an explicit DLL dllstorageclass \[-fvisibility-from-dllstorageclass\]. <arg> must be 'default', 'hidden', 'internal' or 'protected'.
2714 .. option:: -fvisibility-from-dllstorageclass, -fno-visibility-from-dllstorageclass
2716 Set the visibility of symbols in the generated code from their DLL storage class
2718 .. option:: -fvisibility-global-new-delete-hidden
2720 Give global C++ operator new and delete declarations hidden visibility
2722 .. option:: -fvisibility-inlines-hidden, -fno-visibility-inlines-hidden
2724 Give inline C++ member functions hidden visibility by default
2726 .. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
2728 When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
2730 .. option:: -fvisibility-ms-compat
2732 Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2734 .. option:: -fvisibility-nodllstorageclass=<arg>
2736 The visibility for definitions without an explicit DLL export class \[-fvisibility-from-dllstorageclass\]. <arg> must be 'default', 'hidden', 'internal' or 'protected'.
2738 .. option:: -fvisibility=<arg>
2740 Set the default symbol visibility for all global declarations. <arg> must be 'hidden' or 'default'.
2742 .. option:: -fwasm-exceptions
2744 Use WebAssembly style exceptions
2746 .. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2748 Enables whole-program vtable optimization. Requires -flto
2750 .. option:: -fwrapv, -fno-wrapv
2752 Treat signed integer overflow as two's complement
2754 .. option:: -fwritable-strings
2756 Store string literals as writable data
2758 .. option:: -fxl-pragma-pack, -fno-xl-pragma-pack
2760 Enable IBM XL #pragma pack handling
2762 .. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2764 Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
2766 .. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2768 Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
2770 .. option:: -fxray-always-instrument=<arg>
2772 DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2774 .. option:: -fxray-attr-list=<arg>
2776 Filename defining the list of functions/types for imbuing XRay attributes.
2778 .. option:: -fxray-function-groups=<arg>
2780 Only instrument 1 of N groups
2782 .. option:: -fxray-function-index, -fno-xray-function-index
2784 .. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
2786 Don't instrument functions with loops unless they also meet the minimum function size
2788 .. option:: -fxray-instruction-threshold<arg>
2790 .. program:: clang1
2791 .. option:: -fxray-instruction-threshold=<arg>
2792 .. program:: clang
2794 Sets the minimum function size to instrument with XRay
2796 .. option:: -fxray-instrument, -fno-xray-instrument
2798 Generate XRay instrumentation sleds on function entry and exit
2800 .. option:: -fxray-instrumentation-bundle=<arg>
2802 Select which XRay instrumentation points to emit. Options: all, none, function-entry, function-exit, function, custom. Default is 'all'.  'function' includes both 'function-entry' and 'function-exit'.
2804 .. option:: -fxray-link-deps
2806 Tells clang to add the link dependencies for XRay.
2808 .. option:: -fxray-modes=<arg>
2810 List of modes to link in by default into XRay instrumented binaries.
2812 .. option:: -fxray-never-instrument=<arg>
2814 DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2816 .. option:: -fxray-selected-function-group=<arg>
2818 When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
2820 .. option:: -fzero-call-used-regs=<arg>
2822 Clear call-used registers upon function return (AArch64/x86 only). <arg> must be 'skip', 'used-gpr-arg', 'used-gpr', 'used-arg', 'used', 'all-gpr-arg', 'all-gpr', 'all-arg' or 'all'.
2824 .. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2826 .. option:: -fzvector, -fno-zvector, -mzvector
2828 Enable System z vector language extension
2830 .. option:: --gpu-bundle-output, --no-gpu-bundle-output
2832 Bundle output files of HIP device compilation
2834 .. option:: --offload-new-driver, --no-offload-new-driver
2836 Use the new driver for offloading compilation.
2838 .. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2840 Warn on language extensions
2842 .. option:: -pedantic-errors, --pedantic-errors
2844 OpenCL flags
2845 ------------
2846 .. option:: -cl-denorms-are-zero
2848 OpenCL only. Allow denormals to be flushed to zero.
2850 .. option:: -cl-ext=<arg1>,<arg2>...
2852 OpenCL only. Enable or disable OpenCL extensions/optional features. The argument is a comma-separated sequence of one or more extension names, each prefixed by '+' or '-'.
2854 .. option:: -cl-fast-relaxed-math
2856 OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2858 .. option:: -cl-finite-math-only
2860 OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2862 .. option:: -cl-fp32-correctly-rounded-divide-sqrt
2864 OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2866 .. option:: -cl-kernel-arg-info
2868 OpenCL only. Generate kernel argument metadata.
2870 .. option:: -cl-mad-enable
2872 OpenCL only. Allow use of less precise MAD computations in the generated binary.
2874 .. option:: -cl-no-signed-zeros
2876 OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2878 .. option:: -cl-no-stdinc
2880 OpenCL only. Disables all standard includes containing non-native compiler types and functions.
2882 .. option:: -cl-opt-disable
2884 OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2886 .. option:: -cl-single-precision-constant
2888 OpenCL only. Treat double precision floating-point constant as single precision constant.
2890 .. option:: -cl-std=<arg>
2892 OpenCL language standard to compile for. <arg> must be 'cl', 'CL', 'cl1.0', 'CL1.0', 'cl1.1', 'CL1.1', 'cl1.2', 'CL1.2', 'cl2.0', 'CL2.0', 'cl3.0', 'CL3.0', 'clc++', 'CLC++', 'clc++1.0', 'CLC++1.0', 'clc++2021' or 'CLC++2021'.
2894 .. option:: -cl-strict-aliasing
2896 OpenCL only. This option is added for compatibility with OpenCL 1.0.
2898 .. option:: -cl-uniform-work-group-size
2900 OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2902 .. option:: -cl-unsafe-math-optimizations
2904 OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2906 SYCL flags
2907 ----------
2908 .. option:: -fsycl, -fno-sycl
2910 Enables SYCL kernels compilation for device
2912 .. option:: -sycl-std=<arg>
2914 SYCL language standard to compile for. <arg> must be '2020', '2017', '121', '1.2.1' or 'sycl-1.2.1'.
2916 Target-dependent compilation options
2917 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2918 .. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
2920 Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2922 .. option:: -ffixed-x1
2924 Reserve the x1 register (AArch64/RISC-V only)
2926 .. option:: -ffixed-x10
2928 Reserve the x10 register (AArch64/RISC-V only)
2930 .. option:: -ffixed-x11
2932 Reserve the x11 register (AArch64/RISC-V only)
2934 .. option:: -ffixed-x12
2936 Reserve the x12 register (AArch64/RISC-V only)
2938 .. option:: -ffixed-x13
2940 Reserve the x13 register (AArch64/RISC-V only)
2942 .. option:: -ffixed-x14
2944 Reserve the x14 register (AArch64/RISC-V only)
2946 .. option:: -ffixed-x15
2948 Reserve the x15 register (AArch64/RISC-V only)
2950 .. option:: -ffixed-x16
2952 Reserve the x16 register (AArch64/RISC-V only)
2954 .. option:: -ffixed-x17
2956 Reserve the x17 register (AArch64/RISC-V only)
2958 .. option:: -ffixed-x18
2960 Reserve the x18 register (AArch64/RISC-V only)
2962 .. option:: -ffixed-x19
2964 Reserve the x19 register (AArch64/RISC-V only)
2966 .. option:: -ffixed-x2
2968 Reserve the x2 register (AArch64/RISC-V only)
2970 .. option:: -ffixed-x20
2972 Reserve the x20 register (AArch64/RISC-V only)
2974 .. option:: -ffixed-x21
2976 Reserve the x21 register (AArch64/RISC-V only)
2978 .. option:: -ffixed-x22
2980 Reserve the x22 register (AArch64/RISC-V only)
2982 .. option:: -ffixed-x23
2984 Reserve the x23 register (AArch64/RISC-V only)
2986 .. option:: -ffixed-x24
2988 Reserve the x24 register (AArch64/RISC-V only)
2990 .. option:: -ffixed-x25
2992 Reserve the x25 register (AArch64/RISC-V only)
2994 .. option:: -ffixed-x26
2996 Reserve the x26 register (AArch64/RISC-V only)
2998 .. option:: -ffixed-x27
3000 Reserve the x27 register (AArch64/RISC-V only)
3002 .. option:: -ffixed-x28
3004 Reserve the x28 register (AArch64/RISC-V only)
3006 .. option:: -ffixed-x29
3008 Reserve the x29 register (AArch64/RISC-V only)
3010 .. option:: -ffixed-x3
3012 Reserve the x3 register (AArch64/RISC-V only)
3014 .. option:: -ffixed-x30
3016 Reserve the x30 register (AArch64/RISC-V only)
3018 .. option:: -ffixed-x31
3020 Reserve the x31 register (AArch64/RISC-V only)
3022 .. option:: -ffixed-x4
3024 Reserve the x4 register (AArch64/RISC-V only)
3026 .. option:: -ffixed-x5
3028 Reserve the x5 register (AArch64/RISC-V only)
3030 .. option:: -ffixed-x6
3032 Reserve the x6 register (AArch64/RISC-V only)
3034 .. option:: -ffixed-x7
3036 Reserve the x7 register (AArch64/RISC-V only)
3038 .. option:: -ffixed-x8
3040 Reserve the x8 register (AArch64/RISC-V only)
3042 .. option:: -ffixed-x9
3044 Reserve the x9 register (AArch64/RISC-V only)
3046 .. option:: -ffuchsia-api-level=<arg>
3048 Set Fuchsia API level
3050 .. option:: -inline-asm=<arg>
3052  <arg> must be 'att' or 'intel'.
3054 .. option:: -m16
3056 .. option:: -m32
3058 .. option:: -m64
3060 .. option:: -mabi=<arg>
3062 .. program:: clang1
3063 .. option:: -mabi=quadword-atomics
3064 .. program:: clang
3066 Enable quadword atomics ABI on AIX (AIX PPC64 only). Uses lqarx/stqcx. instructions.
3068 .. program:: clang2
3069 .. option:: -mabi=vec-default
3070 .. program:: clang
3072 Enable the default Altivec ABI on AIX (AIX only). Uses only volatile vector registers.
3074 .. program:: clang3
3075 .. option:: -mabi=vec-extabi
3076 .. program:: clang
3078 Enable the extended Altivec ABI on AIX (AIX only). Uses volatile and nonvolatile vector registers
3080 .. option:: -maix-struct-return
3082 Return all structs in memory (PPC32 only)
3084 .. option:: -malign-branch-boundary=<arg>
3086 Specify the boundary's size to align branches
3088 .. option:: -malign-branch=<arg1>,<arg2>...
3090 Specify types of branches to align
3092 .. option:: -malign-double
3094 Align doubles to two words in structs (x86 only)
3096 .. option:: -mamdgpu-ieee, -mno-amdgpu-ieee
3098 Sets the IEEE bit in the expected default floating point  mode register. Floating point opcodes that support exception flag gathering quiet and propagate signaling NaN inputs per IEEE 754-2008. This option changes the ABI. (AMDGPU only)
3100 .. option:: -march=<arg>
3102 .. option:: -masm=<arg>
3104 .. option:: -mbackchain, -mno-backchain
3106 Link stack frames through backchain on System Z
3108 .. option:: -mbranch-protection=<arg>
3110 Enforce targets of indirect branches and function returns
3112 .. option:: -mbranches-within-32B-boundaries
3114 Align selected branches (fused, jcc, jmp) within 32-byte boundary
3116 .. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
3118 .. option:: -mcode-object-v3, -mno-code-object-v3
3120 Legacy option to specify code object ABI V3 (AMDGPU only)
3122 .. option:: -mcode-object-version=<arg>
3124 Specify code object ABI version. Defaults to 4. (AMDGPU only). <arg> must be 'none', '2', '3', '4' or '5'.
3126 .. option:: -mconsole<arg>
3128 .. program:: clang1
3129 .. 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), -mv66 (equivalent to -mcpu=hexagonv66), -mv67 (equivalent to -mcpu=hexagonv67), -mv67t (equivalent to -mcpu=hexagonv67t), -mv68 (equivalent to -mcpu=hexagonv68), -mv69 (equivalent to -mcpu=hexagonv69)
3130 .. program:: clang
3132 .. option:: -mcrc, -mno-crc
3134 Allow use of CRC instructions (ARM/Mips only)
3136 .. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
3138 .. option:: -mdefault-visibility-export-mapping=<arg>
3140 Mapping between default visibility and export. <arg> must be 'none', 'explicit' or 'all'.
3142 .. option:: -mdll<arg>
3144 .. option:: -mdouble=<n
3146 Force double to be <n> bits. <n must be '32' or '64'.
3148 .. option:: -mdynamic-no-pic<arg>
3150 .. option:: -meabi <arg>
3152 Set EABI type. Default depends on triple). <arg> must be 'default', '4', '5' or 'gnu'.
3154 .. option:: -menable-experimental-extensions
3156 Enable use of experimental RISC-V extensions.
3158 .. option:: -mfentry
3160 Insert calls to fentry at function entry (x86/SystemZ only)
3162 .. option:: -mfloat-abi=<arg>
3164  <arg> must be 'soft', 'softfp' or 'hard'.
3166 .. option:: -mfpmath=<arg>
3168 .. option:: -mfpu=<arg>
3170 .. option:: -mfunction-return=<arg>
3172 Replace returns with jumps to \`\`\_\_x86\_return\_thunk\`\` (x86 only, error otherwise). <arg> must be 'keep' or 'thunk-extern'.
3174 .. option:: -mgeneral-regs-only
3176 Generate code which only uses the general purpose registers (AArch64/x86 only)
3178 .. option:: -mglobal-merge, -mno-global-merge
3180 Enable merging of globals
3182 .. option:: -mhard-float
3184 .. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
3186 .. option:: -mhwmult=<arg>
3188 .. option:: -miamcu, -mno-iamcu
3190 Use Intel MCU ABI
3192 .. option:: -mibt-seal
3194 Optimize fcf-protection=branch/full (requires LTO).
3196 .. option:: -mignore-xcoff-visibility
3198 Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
3200 .. option:: -mimplicit-float, -mno-implicit-float
3202 .. option:: -mimplicit-it=<arg>
3204 .. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
3206 (integrated-as) Emit an object file which can be used with an incremental linker
3208 .. option:: -mios-version-min=<arg>, -miphoneos-version-min=<arg>
3210 Set iOS deployment target
3212 .. option:: -mkernel
3214 .. option:: -mlong-calls, -mno-long-calls
3216 Generate branches with extended addressability, usually via indirect jumps.
3218 .. option:: -mlvi-cfi, -mno-lvi-cfi
3220 Enable only control-flow mitigations for Load Value Injection (LVI)
3222 .. option:: -mlvi-hardening, -mno-lvi-hardening
3224 Enable all mitigations for Load Value Injection (LVI)
3226 .. option:: -mmacos-version-min=<arg>, -mmacosx-version-min=<arg>
3228 Set macOS deployment target
3230 .. option:: -mmcu=<arg>
3232 .. option:: -mms-bitfields, -mno-ms-bitfields
3234 Set the default structure layout to be compatible with the Microsoft compiler standard
3236 .. option:: -mnop-mcount
3238 Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
3240 .. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
3242 Omit frame pointer setup for leaf functions
3244 .. option:: -moslib=<arg>
3246 .. option:: -mpacked-stack, -mno-packed-stack
3248 Use packed stack layout (SystemZ only).
3250 .. option:: -mpad-max-prefix-size=<arg>
3252 Specify maximum number of prefixes to use for padding
3254 .. option:: -mprefer-vector-width=<arg>
3256 Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
3258 .. option:: -mqdsp6-compat
3260 Enable hexagon-qdsp6 backward compatibility
3262 .. option:: -mrecip
3264 .. program:: clang1
3265 .. option:: -mrecip=<arg1>,<arg2>...
3266 .. program:: clang
3268 .. option:: -mrecord-mcount
3270 Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
3272 .. option:: -mred-zone, -mno-red-zone
3274 .. option:: -mregparm=<arg>
3276 .. option:: -mrelax, -mno-relax
3278 Enable linker relaxation
3280 .. option:: -mrelax-all, -mno-relax-all
3282 (integrated-as) Relax all machine instructions
3284 .. option:: -mretpoline, -mno-retpoline
3286 .. option:: -mrtd, -mno-rtd
3288 Make StdCall calling convention the default
3290 .. option:: -mseses, -mno-seses
3292 Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
3294 .. option:: -msign-return-address=<arg>
3296 Select return address signing scope. <arg> must be 'none', 'all' or 'non-leaf'.
3298 .. option:: -msim
3300 .. option:: -mskip-rax-setup, -mno-skip-rax-setup
3302 Skip setting up RAX register when passing variable arguments (x86 only)
3304 .. option:: -msoft-float, -mno-soft-float
3306 Use software floating point
3308 .. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
3310 .. option:: -mstack-alignment=<arg>
3312 Set the stack alignment
3314 .. option:: -mstack-arg-probe, -mno-stack-arg-probe
3316 Enable stack probes
3318 .. option:: -mstack-probe-size=<arg>
3320 Set the stack probe size
3322 .. option:: -mstack-protector-guard-offset=<arg>
3324 Use the given offset for addressing the stack-protector guard
3326 .. option:: -mstack-protector-guard-reg=<arg>
3328 Use the given reg for addressing the stack-protector guard
3330 .. option:: -mstack-protector-guard-symbol=<arg>
3332 Use the given symbol for addressing the stack-protector guard
3334 .. option:: -mstack-protector-guard=<arg>
3336 Use the given guard (global, tls) for addressing the stack-protector guard
3338 .. option:: -mstackrealign, -mno-stackrealign
3340 Force realign the stack at entry to every function
3342 .. option:: -msvr4-struct-return
3344 Return small structs in registers (PPC32 only)
3346 .. option:: -mtargetos=<arg>
3348 Set the deployment target to be the specified OS and OS version
3350 .. option:: -mthread-model <arg>
3352 The thread model to use. Defaults to 'posix'). <arg> must be 'posix' or 'single'.
3354 .. option:: -mthreads<arg>
3356 .. option:: -mthumb, -mno-thumb
3358 .. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
3360 Enable direct TLS access through segment registers (default)
3362 .. option:: -mtls-size=<arg>
3364 Specify bit size of immediate TLS offsets (AArch64 ELF only): 12 (for 4KB) \| 24 (for 16MB, default) \| 32 (for 4GB) \| 48 (for 256TB, needs -mcmodel=large)
3366 .. program:: clang1
3367 .. option:: -mtune=<arg>
3368 .. program:: clang
3370 Only supported on AArch64, PowerPC, RISC-V, SystemZ, and X86
3372 .. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
3374 .. option:: -municode<arg>
3376 .. option:: -munsafe-fp-atomics, -mno-unsafe-fp-atomics
3378 Enable unsafe floating point atomic instructions (AMDGPU only)
3380 .. option:: -mvx, -mno-vx
3382 .. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
3384 .. option:: -mwatchos-version-min=<arg>
3386 .. option:: -mwavefrontsize64, -mno-wavefrontsize64
3388 Specify wavefront size 64 mode (AMDGPU only)
3390 .. option:: -mwindows<arg>
3392 .. option:: -mx32
3394 AARCH64
3395 -------
3396 .. option:: -fcall-saved-x10
3398 Make the x10 register call-saved (AArch64 only)
3400 .. option:: -fcall-saved-x11
3402 Make the x11 register call-saved (AArch64 only)
3404 .. option:: -fcall-saved-x12
3406 Make the x12 register call-saved (AArch64 only)
3408 .. option:: -fcall-saved-x13
3410 Make the x13 register call-saved (AArch64 only)
3412 .. option:: -fcall-saved-x14
3414 Make the x14 register call-saved (AArch64 only)
3416 .. option:: -fcall-saved-x15
3418 Make the x15 register call-saved (AArch64 only)
3420 .. option:: -fcall-saved-x18
3422 Make the x18 register call-saved (AArch64 only)
3424 .. option:: -fcall-saved-x8
3426 Make the x8 register call-saved (AArch64 only)
3428 .. option:: -fcall-saved-x9
3430 Make the x9 register call-saved (AArch64 only)
3432 .. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
3434 Workaround Cortex-A53 erratum 835769 (AArch64 only)
3436 .. option:: -mmark-bti-property
3438 Add .note.gnu.property with BTI to assembly files (AArch64 only)
3440 .. option:: -msve-vector-bits=<arg>
3442 Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
3444 .. option:: -mvscale-max=<arg>
3446 Specify the vscale maximum. Defaults to the vector length agnostic value of "0". (AArch64 only)
3448 .. option:: -mvscale-min=<arg>
3450 Specify the vscale minimum. Defaults to "1". (AArch64 only)
3452 AMDGPU
3453 ------
3454 .. option:: -mcumode, -mno-cumode
3456 Specify CU wavefront execution mode (AMDGPU only)
3458 .. option:: -mtgsplit, -mno-tgsplit
3460 Enable threadgroup split execution mode (AMDGPU only)
3464 .. option:: -faapcs-bitfield-load
3466 Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
3468 .. option:: -faapcs-bitfield-width, -fno-aapcs-bitfield-width
3470 Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only).
3472 .. option:: -ffixed-r9
3474 Reserve the r9 register (ARM only)
3476 .. option:: -mcmse
3478 Allow use of CMSE (Armv8-M Security Extensions)
3480 .. option:: -mexecute-only, -mno-execute-only, -mpure-code
3482 Disallow generation of data access to code sections (ARM only)
3484 .. option:: -mfix-cmse-cve-2021-35465, -mno-fix-cmse-cve-2021-35465
3486 Work around VLLDM erratum CVE-2021-35465 (ARM only)
3488 .. option:: -mfix-cortex-a57-aes-1742098, -mfix-cortex-a72-aes-1655431, -mno-fix-cortex-a57-aes-1742098
3490 Work around Cortex-A57 Erratum 1742098 (ARM only)
3492 .. option:: -mframe-chain=<arg>
3494 Select the frame chain model used to emit frame records (Arm only). <arg> must be 'none', 'aapcs' or 'aapcs+leaf'.
3496 .. option:: -mno-bti-at-return-twice
3498 Do not add a BTI instruction after a setjmp or other return-twice construct (Arm/AArch64 only)
3500 .. option:: -mno-movt
3502 Disallow use of movt/movw pairs (ARM only)
3504 .. option:: -mno-neg-immediates
3506 Disallow converting instructions with negative immediates to their negation or inversion.
3508 .. option:: -mnocrc
3510 Disallow use of CRC instructions (ARM only)
3512 .. option:: -mrestrict-it, -mno-restrict-it
3514 Disallow generation of complex IT blocks.
3516 .. option:: -mtp=<arg>
3518 Thread pointer access method (AArch32/AArch64 only). <arg> must be 'soft', 'cp15', 'el0', 'el1', 'el2' or 'el3'.
3520 .. option:: -munaligned-access, -mno-unaligned-access
3522 Allow memory accesses to be unaligned (AArch32/AArch64 only)
3524 Hexagon
3525 -------
3526 .. option:: -mhvx-ieee-fp, -mno-hvx-ieee-fp
3528 Enable Hexagon HVX IEEE floating-point
3530 .. option:: -mieee-rnd-near
3532 .. option:: -mmemops, -mno-memops
3534 Enable generation of memop instructions
3536 .. option:: -mnvj, -mno-nvj
3538 Enable generation of new-value jumps
3540 .. option:: -mnvs, -mno-nvs
3542 Enable generation of new-value stores
3544 .. option:: -mpackets, -mno-packets
3546 Enable generation of instruction packets
3548 Hexagon
3549 -------
3550 .. option:: -mhvx, -mno-hvx
3552 Enable Hexagon Vector eXtensions
3554 .. option:: -mhvx-length=<arg>
3556 Set Hexagon Vector Length. <arg> must be '64B' or '128B'.
3558 .. option:: -mhvx-qfloat, -mno-hvx-qfloat
3560 Enable Hexagon HVX QFloat instructions
3562 .. program:: clang1
3563 .. option:: -mhvx=<arg>
3564 .. program:: clang
3566 Enable Hexagon Vector eXtensions
3568 M68k
3569 ----
3570 .. option:: -ffixed-a0
3572 Reserve the a0 register (M68k only)
3574 .. option:: -ffixed-a1
3576 Reserve the a1 register (M68k only)
3578 .. option:: -ffixed-a2
3580 Reserve the a2 register (M68k only)
3582 .. option:: -ffixed-a3
3584 Reserve the a3 register (M68k only)
3586 .. option:: -ffixed-a4
3588 Reserve the a4 register (M68k only)
3590 .. option:: -ffixed-a5
3592 Reserve the a5 register (M68k only)
3594 .. option:: -ffixed-a6
3596 Reserve the a6 register (M68k only)
3598 .. option:: -ffixed-d0
3600 Reserve the d0 register (M68k only)
3602 .. option:: -ffixed-d1
3604 Reserve the d1 register (M68k only)
3606 .. option:: -ffixed-d2
3608 Reserve the d2 register (M68k only)
3610 .. option:: -ffixed-d3
3612 Reserve the d3 register (M68k only)
3614 .. option:: -ffixed-d4
3616 Reserve the d4 register (M68k only)
3618 .. option:: -ffixed-d5
3620 Reserve the d5 register (M68k only)
3622 .. option:: -ffixed-d6
3624 Reserve the d6 register (M68k only)
3626 .. option:: -ffixed-d7
3628 Reserve the d7 register (M68k only)
3630 .. option:: -m68000
3632 .. option:: -m68010
3634 .. option:: -m68020
3636 .. option:: -m68030
3638 .. option:: -m68040
3640 .. option:: -m68060
3642 MIPS
3643 ----
3644 .. option:: -mabicalls, -mno-abicalls
3646 Enable SVR4-style position-independent code (Mips only)
3648 .. option:: -mabs=<arg>
3650 .. option:: -mcheck-zero-division, -mno-check-zero-division
3652 .. option:: -mcompact-branches=<arg>
3654 .. option:: -mdouble-float
3656 .. option:: -mdsp, -mno-dsp
3658 .. option:: -mdspr2, -mno-dspr2
3660 .. option:: -membedded-data, -mno-embedded-data
3662 Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
3664 .. option:: -mextern-sdata, -mno-extern-sdata
3666 Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
3668 .. option:: -mfix4300
3670 .. option:: -mfp32
3672 Use 32-bit floating point registers (MIPS only)
3674 .. option:: -mfp64
3676 Use 64-bit floating point registers (MIPS only)
3678 .. option:: -mginv, -mno-ginv
3680 .. option:: -mgpopt, -mno-gpopt
3682 Use GP relative accesses for symbols known to be in a small data section (MIPS)
3684 .. option:: -mindirect-jump=<arg>
3686 Change indirect jump instructions to inhibit speculation
3688 .. option:: -mips16
3690 .. option:: -mldc1-sdc1, -mno-ldc1-sdc1
3692 .. option:: -mlocal-sdata, -mno-local-sdata
3694 Extend the -G behaviour to object local data (MIPS)
3696 .. option:: -mmadd4, -mno-madd4
3698 Enable the generation of 4-operand madd.s, madd.d and related instructions.
3700 .. option:: -mmicromips, -mno-micromips
3702 .. option:: -mmsa, -mno-msa
3704 Enable MSA ASE (MIPS only)
3706 .. option:: -mmt, -mno-mt
3708 Enable MT ASE (MIPS only)
3710 .. option:: -mnan=<arg>
3712 .. option:: -mno-mips16
3714 .. option:: -msingle-float
3716 .. option:: -mvirt, -mno-virt
3718 .. option:: -mxgot, -mno-xgot
3720 PowerPC
3721 -------
3722 .. option:: -maltivec, -mno-altivec
3724 .. option:: -mcmpb, -mno-cmpb
3726 .. option:: -mcrbits, -mno-crbits
3728 .. option:: -mcrypto, -mno-crypto
3730 .. option:: -mdirect-move, -mno-direct-move
3732 .. option:: -mefpu2
3734 .. option:: -mfloat128, -mno-float128
3736 .. option:: -mfprnd, -mno-fprnd
3738 .. option:: -mhtm, -mno-htm
3740 .. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
3742 .. option:: -misel, -mno-isel
3744 .. option:: -mlongcall, -mno-longcall
3746 .. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
3748 .. option:: -mmma, -mno-mma
3750 .. option:: -mpaired-vector-memops, -mno-paired-vector-memops
3752 .. option:: -mpcrel, -mno-pcrel
3754 .. option:: -mpopcntd, -mno-popcntd
3756 .. option:: -mpower10-vector, -mno-power10-vector
3758 .. option:: -mpower8-vector, -mno-power8-vector
3760 .. option:: -mpower9-vector, -mno-power9-vector
3762 .. option:: -mprefixed, -mno-prefixed
3764 .. option:: -mprivileged
3766 .. option:: -mrop-protect
3768 .. option:: -msecure-plt
3770 .. option:: -mspe, -mno-spe
3772 .. option:: -mvsx, -mno-vsx
3774 WebAssembly
3775 -----------
3776 .. option:: -matomics, -mno-atomics
3778 .. option:: -mbulk-memory, -mno-bulk-memory
3780 .. option:: -mexception-handling, -mno-exception-handling
3782 .. option:: -mextended-const, -mno-extended-const
3784 .. option:: -mmultivalue, -mno-multivalue
3786 .. option:: -mmutable-globals, -mno-mutable-globals
3788 .. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
3790 .. option:: -mreference-types, -mno-reference-types
3792 .. option:: -mrelaxed-simd, -mno-relaxed-simd
3794 .. option:: -msign-ext, -mno-sign-ext
3796 .. option:: -msimd128, -mno-simd128
3798 .. option:: -mtail-call, -mno-tail-call
3800 WebAssembly Driver
3801 ------------------
3802 .. option:: -mexec-model=<arg>
3804 Execution model (WebAssembly only). <arg> must be 'command' or 'reactor'.
3808 .. option:: -m3dnow, -mno-3dnow
3810 .. option:: -m3dnowa, -mno-3dnowa
3812 .. option:: -madx, -mno-adx
3814 .. option:: -maes, -mno-aes
3816 .. option:: -mamx-bf16, -mno-amx-bf16
3818 .. option:: -mamx-int8, -mno-amx-int8
3820 .. option:: -mamx-tile, -mno-amx-tile
3822 .. option:: -mavx, -mno-avx
3824 .. option:: -mavx2, -mno-avx2
3826 .. option:: -mavx512bf16, -mno-avx512bf16
3828 .. option:: -mavx512bitalg, -mno-avx512bitalg
3830 .. option:: -mavx512bw, -mno-avx512bw
3832 .. option:: -mavx512cd, -mno-avx512cd
3834 .. option:: -mavx512dq, -mno-avx512dq
3836 .. option:: -mavx512er, -mno-avx512er
3838 .. option:: -mavx512f, -mno-avx512f
3840 .. option:: -mavx512fp16, -mno-avx512fp16
3842 .. option:: -mavx512ifma, -mno-avx512ifma
3844 .. option:: -mavx512pf, -mno-avx512pf
3846 .. option:: -mavx512vbmi, -mno-avx512vbmi
3848 .. option:: -mavx512vbmi2, -mno-avx512vbmi2
3850 .. option:: -mavx512vl, -mno-avx512vl
3852 .. option:: -mavx512vnni, -mno-avx512vnni
3854 .. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
3856 .. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
3858 .. option:: -mavxvnni, -mno-avxvnni
3860 .. option:: -mbmi, -mno-bmi
3862 .. option:: -mbmi2, -mno-bmi2
3864 .. option:: -mcldemote, -mno-cldemote
3866 .. option:: -mclflushopt, -mno-clflushopt
3868 .. option:: -mclwb, -mno-clwb
3870 .. option:: -mclzero, -mno-clzero
3872 .. option:: -mcrc32, -mno-crc32
3874 .. option:: -mcx16, -mno-cx16
3876 .. option:: -menqcmd, -mno-enqcmd
3878 .. option:: -mf16c, -mno-f16c
3880 .. option:: -mfma, -mno-fma
3882 .. option:: -mfma4, -mno-fma4
3884 .. option:: -mfsgsbase, -mno-fsgsbase
3886 .. option:: -mfxsr, -mno-fxsr
3888 .. option:: -mgfni, -mno-gfni
3890 .. option:: -mhreset, -mno-hreset
3892 .. option:: -minvpcid, -mno-invpcid
3894 .. option:: -mkl, -mno-kl
3896 .. option:: -mlwp, -mno-lwp
3898 .. option:: -mlzcnt, -mno-lzcnt
3900 .. option:: -mmmx, -mno-mmx
3902 .. option:: -mmovbe, -mno-movbe
3904 .. option:: -mmovdir64b, -mno-movdir64b
3906 .. option:: -mmovdiri, -mno-movdiri
3908 .. option:: -mmwaitx, -mno-mwaitx
3910 .. option:: -mpclmul, -mno-pclmul
3912 .. option:: -mpconfig, -mno-pconfig
3914 .. option:: -mpku, -mno-pku
3916 .. option:: -mpopcnt, -mno-popcnt
3918 .. option:: -mprefetchwt1, -mno-prefetchwt1
3920 .. option:: -mprfchw, -mno-prfchw
3922 .. option:: -mptwrite, -mno-ptwrite
3924 .. option:: -mrdpid, -mno-rdpid
3926 .. option:: -mrdpru, -mno-rdpru
3928 .. option:: -mrdrnd, -mno-rdrnd
3930 .. option:: -mrdseed, -mno-rdseed
3932 .. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
3934 .. option:: -mrtm, -mno-rtm
3936 .. option:: -msahf, -mno-sahf
3938 .. option:: -mserialize, -mno-serialize
3940 .. option:: -msgx, -mno-sgx
3942 .. option:: -msha, -mno-sha
3944 .. option:: -mshstk, -mno-shstk
3946 .. option:: -msse, -mno-sse
3948 .. option:: -msse2, -mno-sse2
3950 .. option:: -msse3, -mno-sse3
3952 .. option:: -msse4.1, -mno-sse4.1
3954 .. program:: clang1
3955 .. option:: -msse4.2, -mno-sse4.2, -msse4
3956 .. program:: clang
3958 .. option:: -msse4a, -mno-sse4a
3960 .. option:: -mssse3, -mno-ssse3
3962 .. option:: -mtbm, -mno-tbm
3964 .. option:: -mtsxldtrk, -mno-tsxldtrk
3966 .. option:: -muintr, -mno-uintr
3968 .. option:: -mvaes, -mno-vaes
3970 .. option:: -mvpclmulqdq, -mno-vpclmulqdq
3972 .. option:: -mvzeroupper, -mno-vzeroupper
3974 .. option:: -mwaitpkg, -mno-waitpkg
3976 .. option:: -mwbnoinvd, -mno-wbnoinvd
3978 .. option:: -mwidekl, -mno-widekl
3980 .. option:: -mx87, -m80387, -mno-x87
3982 .. option:: -mxop, -mno-xop
3984 .. option:: -mxsave, -mno-xsave
3986 .. option:: -mxsavec, -mno-xsavec
3988 .. option:: -mxsaveopt, -mno-xsaveopt
3990 .. option:: -mxsaves, -mno-xsaves
3992 RISCV
3993 -----
3994 .. option:: -msave-restore, -mno-save-restore
3996 Enable using library calls for save and restore
3998 Long double flags
3999 -----------------
4000 Selects the long double implementation
4002 .. option:: -mlong-double-128
4004 Force long double to be 128 bits
4006 .. option:: -mlong-double-64
4008 Force long double to be 64 bits
4010 .. option:: -mlong-double-80
4012 Force long double to be 80 bits, padded to 128 bits for storage
4014 Optimization level
4015 ~~~~~~~~~~~~~~~~~~
4017 Flags controlling how much optimization should be performed.
4019 .. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
4021 .. option:: -Ofast<arg>
4023 Debug information generation
4024 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4026 Flags controlling how much and what kind of debug information should be
4027 generated.
4029 Kind and level of debug information
4030 -----------------------------------
4031 .. option:: -g, --debug, --debug=<arg>
4033 Generate source-level debug information
4035 .. option:: -gdwarf
4037 Generate source-level debug information with the default dwarf version
4039 .. option:: -gdwarf-2
4041 Generate source-level debug information with dwarf version 2
4043 .. option:: -gdwarf-3
4045 Generate source-level debug information with dwarf version 3
4047 .. option:: -gdwarf-4
4049 Generate source-level debug information with dwarf version 4
4051 .. option:: -gdwarf-5
4053 Generate source-level debug information with dwarf version 5
4055 .. option:: -gdwarf32
4057 Enables DWARF32 format for ELF binaries, if debug information emission is enabled.
4059 .. option:: -gdwarf64
4061 Enables DWARF64 format for ELF binaries, if debug information emission is enabled.
4063 .. option:: -gfull
4065 .. option:: -ginline-line-tables, -gno-inline-line-tables
4067 .. option:: -gused
4069 Debug level
4070 ___________
4071 .. option:: -g0
4073 .. option:: -g2
4075 .. option:: -g3
4077 .. option:: -ggdb0
4079 .. option:: -ggdb1
4081 .. option:: -ggdb2
4083 .. option:: -ggdb3
4085 .. option:: -gline-directives-only
4087 Emit debug line info directives only
4089 .. option:: -gline-tables-only, -g1, -gmlt
4091 Emit debug line number tables only
4093 .. option:: -gmodules
4095 Generate debug info with external references to clang modules or precompiled headers
4097 Debugger to tune debug information for
4098 ______________________________________
4099 .. option:: -gdbx
4101 .. option:: -ggdb
4103 .. option:: -glldb
4105 .. option:: -gsce
4107 Debug information flags
4108 -----------------------
4109 .. option:: -gcolumn-info, -gno-column-info
4111 .. option:: -gdwarf-aranges
4113 .. option:: -gembed-source, -gno-embed-source
4115 Embed source text in DWARF debug sections
4117 .. option:: -ggnu-pubnames, -gno-gnu-pubnames
4119 .. option:: -gpubnames, -gno-pubnames
4121 .. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
4123 .. option:: -gsimple-template-names, -gno-simple-template-names
4125 .. option:: -gsplit-dwarf, -gno-split-dwarf
4127 .. program:: clang1
4128 .. option:: -gsplit-dwarf=<arg>
4129 .. program:: clang
4131 Set DWARF fission mode. <arg> must be 'split' or 'single'.
4133 .. option:: -gstrict-dwarf, -gno-strict-dwarf
4135 .. option:: -gz=<arg>, -gz (equivalent to -gz=zlib)
4137 DWARF debug sections compression type
4139 Static analyzer flags
4140 =====================
4142 Flags controlling the behavior of the Clang Static Analyzer.
4144 .. option:: -Xanalyzer <arg>
4146 Pass <arg> to the static analyzer
4148 Fortran compilation flags
4149 =========================
4151 Flags that will be passed onto the ``gfortran`` compiler when Clang is given
4152 a Fortran input.
4154 .. option:: -A<arg>, --assert <arg>, --assert=<arg>
4156 .. option:: -A-<arg>
4158 .. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
4160 .. option:: -falign-commons, -fno-align-commons
4162 .. option:: -fall-intrinsics, -fno-all-intrinsics
4164 .. option:: -fbacktrace, -fno-backtrace
4166 .. option:: -fblas-matmul-limit=<arg>
4168 .. option:: -fbounds-check, -fno-bounds-check
4170 .. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
4172 .. option:: -fcheck=<arg>
4174 .. option:: -fcoarray=<arg>
4176 .. option:: -fconvert=<arg>
4178 .. option:: -fcray-pointer, -fno-cray-pointer
4180 .. option:: -fd-lines-as-code, -fno-d-lines-as-code
4182 .. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
4184 .. option:: -fdollar-ok, -fno-dollar-ok
4186 .. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
4188 .. option:: -fdump-fortran-original, -fno-dump-fortran-original
4190 .. option:: -fdump-parse-tree, -fno-dump-parse-tree
4192 .. option:: -fexternal-blas, -fno-external-blas
4194 .. option:: -ff2c, -fno-f2c
4196 .. option:: -ffpe-trap=<arg>
4198 .. option:: -ffree-line-length-<arg>
4200 .. option:: -ffrontend-optimize, -fno-frontend-optimize
4202 .. option:: -finit-character=<arg>
4204 .. option:: -finit-integer=<arg>
4206 .. option:: -finit-local-zero, -fno-init-local-zero
4208 .. option:: -finit-logical=<arg>
4210 .. option:: -finit-real=<arg>
4212 .. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
4214 .. option:: -fmax-array-constructor=<arg>
4216 .. option:: -fmax-errors=<arg>
4218 .. option:: -fmax-identifier-length, -fno-max-identifier-length
4220 .. option:: -fmax-stack-var-size=<arg>
4222 .. option:: -fmax-subrecord-length=<arg>
4224 .. option:: -fmodule-private, -fno-module-private
4226 .. option:: -fpack-derived, -fno-pack-derived
4228 .. option:: -frange-check, -fno-range-check
4230 .. option:: -freal-4-real-10, -fno-real-4-real-10
4232 .. option:: -freal-4-real-16, -fno-real-4-real-16
4234 .. option:: -freal-4-real-8, -fno-real-4-real-8
4236 .. option:: -freal-8-real-10, -fno-real-8-real-10
4238 .. option:: -freal-8-real-16, -fno-real-8-real-16
4240 .. option:: -freal-8-real-4, -fno-real-8-real-4
4242 .. option:: -frealloc-lhs, -fno-realloc-lhs
4244 .. option:: -frecord-marker=<arg>
4246 .. option:: -frecursive, -fno-recursive
4248 .. option:: -frepack-arrays, -fno-repack-arrays
4250 .. option:: -fsecond-underscore, -fno-second-underscore
4252 .. option:: -fsign-zero, -fno-sign-zero
4254 .. option:: -fstack-arrays, -fno-stack-arrays
4256 .. option:: -funderscoring, -fno-underscoring
4258 .. option:: -fwhole-file, -fno-whole-file
4260 .. option:: -imultilib <arg>
4262 .. option:: -static-libgfortran
4264 Linker flags
4265 ============
4266 Flags that are passed on to the linker
4268 .. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
4270 Add directory to library search path
4272 .. option:: -Mach
4274 .. option:: -T<script>
4276 Specify <script> as linker script
4278 .. option:: -Tbss<addr>
4280 Set starting address of BSS to <addr>
4282 .. option:: -Tdata<addr>
4284 Set starting address of DATA to <addr>
4286 .. option:: -Ttext<addr>
4288 Set starting address of TEXT to <addr>
4290 .. option:: -Wl,<arg>,<arg2>...
4292 Pass the comma separated arguments in <arg> to the linker
4294 .. option:: -X
4296 .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
4298 Pass <arg> to the linker
4300 .. option:: -Xoffload-linker<triple> <arg>
4302 Pass <arg> to the offload linkers or the ones idenfied by -<triple>
4304 .. program:: clang1
4305 .. option:: -Z
4306 .. program:: clang
4308 .. option:: -b<arg>
4310 Pass -b <arg> to the linker on AIX (only).
4312 .. option:: -coverage, --coverage
4314 .. option:: -e<arg>, --entry
4316 .. option:: -filelist <arg>
4318 .. option:: --hip-device-lib=<arg>
4320 HIP device library
4322 .. option:: --hipspv-pass-plugin=<dsopath>
4324 path to a pass plugin for HIP to SPIR-V passes.
4326 .. option:: -l<arg>
4328 .. option:: --ld-path=<arg>
4330 .. option:: -nostartfiles
4332 .. program:: clang1
4333 .. option:: -nostdlib, --no-standard-libraries
4334 .. program:: clang
4336 .. option:: --offload-link
4338 Use the new offloading linker to perform the link job.
4340 .. option:: -pie
4342 .. option:: -r
4344 .. option:: -rdynamic
4346 .. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
4348 ROCm device library path. Alternative to rocm-path.
4350 .. option:: -rpath <arg>
4352 .. option:: -s
4354 .. option:: -shared, --shared
4356 .. option:: -specs=<arg>, --specs=<arg>
4358 .. option:: -static, --static
4360 .. option:: -static-pie
4362 .. option:: -t
4364 .. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
4366 .. option:: -undef
4368 undef all system defines
4370 .. option:: -undefined<arg>, --no-undefined
4372 .. option:: -z <arg>
4374 Pass -z <arg> to the linker
4376 <clang-cl options>
4377 ==================
4378 CL.EXE COMPATIBILITY OPTIONS
4380 <clang-cl compile-only options>
4381 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4382 </M group>
4383 ----------
4384 </volatile group>
4385 -----------------
4386 <clang-cl ignored options>
4387 ~~~~~~~~~~~~~~~~~~~~~~~~~~
4388 <clang-dxc options>
4389 ===================
4390 dxc compatibility options
4392 .. program:: clang4
4393 .. option:: /T<profile>, -T<profile>
4394 .. program:: clang
4396 Set target profile. <profile> must be 'ps_6_0', ' ps_6_1', ' ps_6_2', ' ps_6_3', ' ps_6_4', ' ps_6_5', ' ps_6_6', ' ps_6_7', 'vs_6_0', ' vs_6_1', ' vs_6_2', ' vs_6_3', ' vs_6_4', ' vs_6_5', ' vs_6_6', ' vs_6_7', 'gs_6_0', ' gs_6_1', ' gs_6_2', ' gs_6_3', ' gs_6_4', ' gs_6_5', ' gs_6_6', ' gs_6_7', 'hs_6_0', ' hs_6_1', ' hs_6_2', ' hs_6_3', ' hs_6_4', ' hs_6_5', ' hs_6_6', ' hs_6_7', 'ds_6_0', ' ds_6_1', ' ds_6_2', ' ds_6_3', ' ds_6_4', ' ds_6_5', ' ds_6_6', ' ds_6_7', 'cs_6_0', ' cs_6_1', ' cs_6_2', ' cs_6_3', ' cs_6_4', ' cs_6_5', ' cs_6_6', ' cs_6_7', 'lib_6_3', ' lib_6_4', ' lib_6_5', ' lib_6_6', ' lib_6_7', ' lib_6_x', 'ms_6_5', ' ms_6_6', ' ms_6_7', 'as_6_5', ' as_6_6' or ' as_6_7'.
4398 .. program:: clang5
4399 .. option:: /emit-pristine-llvm, -emit-pristine-llvm, /fcgl, -fcgl
4400 .. program:: clang
4402 Emit pristine LLVM IR from the frontend by not running any LLVM passes at all.Same as -S + -emit-llvm + -disable-llvm-passes.
4404 .. program:: clang6
4405 .. option:: /hlsl-no-stdinc, -hlsl-no-stdinc
4406 .. program:: clang
4408 HLSL only. Disables all standard includes containing non-native compiler types and functions.