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 =====================================
16 This page lists the command line arguments currently supported by the
17 GCC-compatible ``clang`` and ``clang++`` drivers.
21 .. option:: -B<dir>, --prefix <arg>, --prefix=<arg>
23 Add <dir> to search path for binaries and object files used implicitly
27 Add directory to framework include search path
31 Treat source input files as Objective-C inputs
37 Treat source input files as Objective-C++ inputs
39 .. option:: -Qn, -fno-ident
41 Do not emit metadata containing compiler name and version
43 .. option:: -Qunused-arguments
45 Don't emit warning for unused driver arguments
47 .. option:: -Qy, -fident
49 Emit metadata containing compiler name and version
51 .. option:: -Wa,<arg>,<arg2>...
53 Pass the comma separated arguments in <arg> to the assembler
55 .. option:: -Wlarge-by-value-copy=<arg>
57 .. option:: -Xarch\_<arg1> <arg2>
59 .. option:: -Xcuda-fatbinary <arg>
61 Pass <arg> to fatbinary invocation
63 .. option:: -Xcuda-ptxas <arg>
65 Pass <arg> to the ptxas assembler
67 .. option:: -Xopenmp-target <arg>
69 Pass <arg> to the target offloading toolchain.
72 .. option:: -Xopenmp-target=<triple> <arg>
75 Pass <arg> to the target offloading toolchain identified by <triple>.
79 .. option:: -a<arg>, --profile-blocks
81 .. option:: -all\_load
83 .. option:: -allowable\_client <arg>
87 Run the static analyzer
89 .. option:: --analyze-auto
91 .. option:: --analyzer-no-default-checks
93 .. option:: --analyzer-output<arg>
95 Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|text).
97 .. option:: -ansi, --ansi
99 .. option:: -arch <arg>
102 .. option:: -arch\_errors\_fatal
106 .. option:: -arch\_only <arg>
109 .. option:: -arcmt-migrate-emit-errors
111 Emit ARC errors even if the migrator can fix them
113 .. option:: -arcmt-migrate-report-output <arg>
115 Output path for the plist report
117 .. option:: --autocomplete=<arg>
119 .. option:: -bind\_at\_load
124 .. option:: -bundle\_loader <arg>
129 Emit tables required for Windows Control Flow Guard.
131 .. option:: -client\_name<arg>
133 .. option:: -compatibility\_version<arg>
135 .. option:: --config <arg>
137 Specifies configuration file
139 .. option:: --constant-cfstrings
141 .. option:: -coverage, --coverage
143 .. option:: --cuda-compile-host-device
145 Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.
147 .. option:: --cuda-device-only
149 Compile CUDA code for device only
151 .. option:: --cuda-gpu-arch=<arg>, --no-cuda-gpu-arch=<arg>
153 CUDA GPU architecture (e.g. sm\_35). May be specified more than once.
155 .. option:: --cuda-host-only
157 Compile CUDA code for host only. Has no effect on non-CUDA compilations.
159 .. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
161 Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
163 .. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug
165 Enable device-side debug info generation. Disables ptxas optimizations.
167 .. option:: -current\_version<arg>
169 .. option:: -dead\_strip
171 .. option:: -dependency-dot <arg>
173 Filename to write DOT-formatted header dependencies to
175 .. option:: -dependency-file <arg>
177 Filename (or -) to write dependency output to
179 .. option:: -dumpmachine
181 .. option:: -dumpversion
183 .. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>
185 .. option:: -dylib\_file <arg>
187 .. option:: -dylinker
190 .. option:: -dylinker\_install\_name<arg>
195 .. option:: -dynamiclib
197 .. option:: -emit-ast
199 Emit Clang AST files for source inputs
201 .. option:: -exported\_symbols\_list <arg>
203 .. option:: -faligned-new=<arg>
205 .. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
207 Use approximate transcendental functions
209 .. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero
211 Flush denormal floating point values to zero in CUDA device mode.
213 .. option:: -fcuda-rdc, -fno-cuda-rdc
215 Generate relocatable device code, also known as separate compilation mode.
217 .. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
219 Use 32-bit pointers for accessing const/local/shared address spaces.
221 .. option:: -ffixed-r19
223 Reserve register r19 (Hexagon only)
225 .. option:: -fheinous-gnu-extensions
227 .. option:: -flat\_namespace
229 .. option:: -fopenmp-targets=<arg1>,<arg2>...
231 Specify comma-separated list of triples OpenMP offloading targets to be supported
233 .. option:: -force\_cpusubtype\_ALL
236 .. option:: -force\_flat\_namespace
240 .. option:: -force\_load <arg>
243 .. option:: -framework <arg>
245 .. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath
247 Add -rpath with architecture-specific resource directory to the linker flags
249 .. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>
251 Use the gcc toolchain at the given directory
253 .. option:: -gcodeview
255 Generate CodeView debug information
257 .. option:: -headerpad\_max\_install\_names<arg>
259 .. option:: -help, --help
261 Display available options
263 .. option:: --help-hidden
265 Display help for hidden options
267 .. option:: --hip-link
269 Link clang-offload-bundler bundles for HIP
271 .. option:: -image\_base <arg>
273 .. option:: -index-header-map
275 Make the next included directory (-I or -F) an indexer header map
277 .. option:: -init <arg>
279 .. option:: -install\_name <arg>
281 .. option:: -keep\_private\_externs
283 .. option:: -lazy\_framework <arg>
286 .. option:: -lazy\_library <arg>
289 .. option:: -mbig-endian, -EB
291 .. option:: --migrate
295 .. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>
297 .. option:: -mlinker-version=<arg>
299 .. option:: -mlittle-endian, -EL
301 .. option:: -mllvm <arg>
303 Additional arguments to forward to LLVM's option processing
305 .. option:: -module-dependency-dir <arg>
307 Directory to dump module dependencies to
309 .. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>
311 .. option:: -multi\_module
313 .. option:: -multiply\_defined <arg>
316 .. option:: -multiply\_defined\_unused <arg>
319 .. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>
321 .. option:: --no-cuda-version-check
323 Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
325 .. option:: -no-integrated-cpp, --no-integrated-cpp
327 .. option:: -no\_dead\_strip\_inits\_and\_terms
329 .. option:: -nobuiltininc
331 Disable builtin #include directories
333 .. option:: -nocudainc
335 .. option:: -nocudalib
337 .. option:: -nodefaultlibs
339 .. option:: -nofixprebinding
343 .. option:: -nomultidefs
345 .. option:: -nopie, -no-pie
347 .. option:: -noprebind
349 .. option:: -noseglinkedit
351 .. option:: -nostartfiles
353 .. option:: -nostdinc, --no-standard-includes
356 .. option:: -nostdinc++
359 Disable standard #include directories for the C++ standard library
361 .. option:: -nostdlib, --no-standard-libraries
364 .. option:: -nostdlib++
367 .. option:: -nostdlibinc
369 .. option:: -o<file>, --output <arg>, --output=<arg>
371 Write output to <file>
373 .. option:: -objcmt-atomic-property
375 Make migration to 'atomic' properties
377 .. option:: -objcmt-migrate-all
379 Enable migration to modern ObjC
381 .. option:: -objcmt-migrate-annotation
383 Enable migration to property and method annotations
385 .. option:: -objcmt-migrate-designated-init
387 Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods
389 .. option:: -objcmt-migrate-instancetype
391 Enable migration to infer instancetype for method result type
393 .. option:: -objcmt-migrate-literals
395 Enable migration to modern ObjC literals
397 .. option:: -objcmt-migrate-ns-macros
399 Enable migration to NS\_ENUM/NS\_OPTIONS macros
401 .. option:: -objcmt-migrate-property
403 Enable migration to modern ObjC property
405 .. option:: -objcmt-migrate-property-dot-syntax
407 Enable migration of setter/getter messages to property-dot syntax
409 .. option:: -objcmt-migrate-protocol-conformance
411 Enable migration to add protocol conformance on classes
413 .. option:: -objcmt-migrate-readonly-property
415 Enable migration to modern ObjC readonly property
417 .. option:: -objcmt-migrate-readwrite-property
419 Enable migration to modern ObjC readwrite property
421 .. option:: -objcmt-migrate-subscripting
423 Enable migration to modern ObjC subscripting
425 .. option:: -objcmt-ns-nonatomic-iosonly
427 Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute
429 .. option:: -objcmt-returns-innerpointer-property
431 Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
433 .. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
435 Only modify files with a filename contained in the provided directory path
439 .. option:: -p, --profile
441 .. option:: -pagezero\_size<arg>
445 Enable mcount instrumentation
449 .. option:: -pipe, --pipe
451 Use pipes between commands, when possible
456 .. option:: -prebind\_all\_twolevel\_modules
461 .. option:: --print-diagnostic-categories
463 .. option:: -print-effective-triple, --print-effective-triple
465 Print the effective target triple
467 .. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>
469 Print the full library path of <file>
471 .. option:: -print-ivar-layout
473 Enable Objective-C Ivar layout bitmap print trace
475 .. option:: -print-libgcc-file-name, --print-libgcc-file-name
477 Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")
479 .. option:: -print-multi-directory, --print-multi-directory
481 .. option:: -print-multi-lib, --print-multi-lib
483 .. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>
485 Print the full program path of <name>
487 .. option:: -print-resource-dir, --print-resource-dir
489 Print the resource directory pathname
491 .. option:: -print-search-dirs, --print-search-dirs
493 Print the paths used for finding libraries and programs
495 .. option:: -print-target-triple, --print-target-triple
497 Print the normalized target triple
499 .. option:: -private\_bundle
501 .. option:: -pthread, -no-pthread
503 Support POSIX threads in generated code
505 .. option:: -pthreads
507 .. option:: -rdynamic
509 .. option:: -read\_only\_relocs <arg>
511 .. option:: -relocatable-pch, --relocatable-pch
513 Whether to build a relocatable precompiled header
517 .. option:: -rewrite-legacy-objc
519 Rewrite Legacy Objective-C source to C++
521 .. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>
523 Compiler runtime library to use
525 .. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)
527 Save llvm statistics.
529 .. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)
531 Save intermediate compilation results.
533 .. option:: -sectalign <arg1> <arg2> <arg3>
535 .. option:: -sectcreate <arg1> <arg2> <arg3>
537 .. option:: -sectobjectsymbols <arg1> <arg2>
539 .. option:: -sectorder <arg1> <arg2> <arg3>
541 .. option:: -seg1addr<arg>
543 .. option:: -seg\_addr\_table <arg>
546 .. option:: -seg\_addr\_table\_filename <arg>
549 .. option:: -segaddr <arg1> <arg2>
551 .. option:: -segcreate <arg1> <arg2> <arg3>
553 .. option:: -seglinkedit
555 .. option:: -segprot <arg1> <arg2> <arg3>
557 .. option:: -segs\_read\_<arg>
560 .. option:: -segs\_read\_only\_addr <arg>
564 .. option:: -segs\_read\_write\_addr <arg>
567 .. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>
569 Serialize compiler diagnostics to a file
571 .. option:: -shared, --shared
573 .. option:: -shared-libgcc
575 .. option:: -shared-libsan, -shared-libasan
577 Dynamically link the sanitizer runtime
579 .. option:: -single\_module
581 .. option:: -specs=<arg>, --specs=<arg>
583 .. option:: -static, --static
585 .. option:: -static-libgcc
587 .. option:: -static-libsan
589 Statically link the sanitizer runtime
591 .. option:: -static-libstdc++
593 .. option:: -std-default=<arg>
595 .. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>
597 C++ standard library to use
599 .. option:: -sub\_library<arg>
602 .. option:: -sub\_umbrella<arg>
605 .. option:: --sysroot=<arg>, --sysroot <arg>
607 .. option:: --target-help
609 .. option:: --target=<arg>, -target <arg>
611 Generate code for the given target
615 Time individual commands
617 .. option:: -traditional, --traditional
619 .. option:: -traditional-cpp, --traditional-cpp
621 Enable some traditional CPP emulation
623 .. option:: -twolevel\_namespace
626 .. option:: -twolevel\_namespace\_hints
629 .. option:: -umbrella <arg>
631 .. option:: -unexported\_symbols\_list <arg>
633 .. option:: -v, --verbose
635 Show commands to run and use verbose output
637 .. option:: --verify-debug-info
639 Verify the binary representation of debug output
641 .. option:: --version
643 Print version information
645 .. option:: -w, --no-warnings
647 Suppress all warnings
649 .. option:: -weak-l<arg>
651 .. option:: -weak\_framework <arg>
654 .. option:: -weak\_library <arg>
658 .. option:: -weak\_reference\_mismatches <arg>
661 .. option:: -whatsloaded
665 .. option:: -working-directory<arg>, -working-directory=<arg>
667 Resolve file paths relative to the specified directory
669 .. option:: -x<language>, --language <arg>, --language=<arg>
671 Treat subsequent input files as having type <language>
677 The action to perform on the input.
679 .. option:: -E, --preprocess
681 Only run the preprocessor
683 .. option:: -S, --assemble
685 Only run preprocess and compilation steps
687 .. option:: -c, --compile
689 Only run preprocess, compile, and assemble steps
691 .. option:: -emit-llvm
693 Use the LLVM representation for assembler and object files
695 .. option:: -fsyntax-only
697 .. option:: -module-file-info
699 Provide information about a particular module file
701 .. option:: --precompile
703 Only precompile the input
705 .. option:: -rewrite-objc
707 Rewrite Objective-C source to C++
709 .. option:: -verify-pch
711 Load and verify that a pre-compiled header file is not stale
716 Flags controlling the behavior of Clang during compilation. These flags have
717 no effect during actions that do not perform compilation.
719 .. option:: -Xassembler <arg>
721 Pass <arg> to the assembler
723 .. option:: -Xclang <arg>
725 Pass <arg> to the clang compiler
727 .. option:: -fclang-abi-compat=<version>
729 Attempt to match the ABI of Clang <version>
731 .. option:: -fcomment-block-commands=<arg>,<arg2>...
733 Treat each comma separated argument in <arg> as a documentation comment block command
735 .. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
737 Require member pointer base types to be complete if they would be significant under the Microsoft ABI
739 .. option:: -fcrash-diagnostics-dir=<arg>
741 .. option:: -fdeclspec, -fno-declspec
743 Allow \_\_declspec as a keyword
745 .. option:: -fdepfile-entry=<arg>
747 .. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info
749 .. option:: -fdiagnostics-format=<arg>
751 .. option:: -fdiagnostics-parseable-fixits
753 Print fix-its in machine parseable form
755 .. option:: -fdiagnostics-print-source-range-info
757 Print source range spans in numeric form
759 .. option:: -fdiagnostics-show-category=<arg>
761 .. option:: -fdiscard-value-names, -fno-discard-value-names
763 Discard value names in LLVM IR
765 .. option:: -fexperimental-isel, -fno-experimental-isel
767 Enables the experimental global instruction selector
769 .. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager
771 Enables an experimental new pass manager in LLVM.
773 .. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
775 Use separate accesses for consecutive bitfield runs with legal widths and alignments.
777 .. option:: -finline-functions, -fno-inline-functions
779 Inline suitable functions
781 .. option:: -finline-hint-functions
783 Inline functions which are (explicitly or implicitly) marked inline
785 .. option:: -fno-crash-diagnostics
787 Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
789 .. option:: -fno-sanitize-blacklist
791 Don't use blacklist file for sanitizers
793 .. option:: -fparse-all-comments
795 .. option:: -frecord-command-line, -frecord-gcc-switches, -fno-record-command-line, -fno-record-gcc-switches
797 Generate a section named ".GCC.command.line" containing the clang driver
798 command-line. After linking, the section may contain multiple command lines,
799 which will be individually terminated by null bytes. Separate arguments within
800 a command line are combined with spaces; spaces and backslashes within an
801 argument are escaped with backslashes. This format differs from the format of
802 the equivalent section produced by GCC with the -frecord-gcc-switches flag.
803 This option is currently only supported on ELF targets.
805 .. option:: -fsanitize-address-field-padding=<arg>
807 Level of field padding for AddressSanitizer
809 .. option:: -fsanitize-address-globals-dead-stripping
811 Enable linker dead stripping of globals in AddressSanitizer
813 .. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
815 Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
817 .. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
819 Enable "poisoning" array cookies when allocating arrays with a custom operator new\[\] in Address Sanitizer, preventing accesses to the cookies from user code. An array cookie is a small implementation-defined header added to certain array allocations to record metadata such as the length of the array. Accesses to array cookies from user code are technically allowed by the standard but are more likely to be the result of an out-of-bounds array access.
821 An operator new\[\] is "custom" if it is not one of the allocation functions provided by the C++ standard library. Array cookies from non-custom allocation functions are always poisoned.
823 .. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
825 Enable use-after-scope detection in AddressSanitizer
827 .. option:: -fsanitize-blacklist=<arg>
829 Path to blacklist file for sanitizers
831 .. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
833 Enable control flow integrity (CFI) checks for cross-DSO calls.
835 .. option:: -fsanitize-cfi-icall-generalize-pointers
837 Generalize pointers in CFI indirect call type signature checks
839 .. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
841 Specify the type of coverage instrumentation for Sanitizers
843 .. option:: -fsanitize-link-c++-runtime
845 .. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
847 Enable origins tracking in MemorySanitizer
850 .. option:: -fsanitize-memory-track-origins=<arg>
853 Enable origins tracking in MemorySanitizer
855 .. option:: -fsanitize-memory-use-after-dtor, -fno-sanitize-memory-use-after-dtor
857 Enable use-after-destroy detection in MemorySanitizer
859 .. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
861 .. option:: -fsanitize-recover, -fno-sanitize-recover
864 .. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>...
867 Enable recovery for specified sanitizers
869 .. option:: -fsanitize-stats, -fno-sanitize-stats
871 Enable sanitizer statistics gathering.
873 .. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics
875 Enable atomic operations instrumentation in ThreadSanitizer (default)
877 .. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit
879 Enable function entry/exit instrumentation in ThreadSanitizer (default)
881 .. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access
883 Enable memory access instrumentation in ThreadSanitizer (default)
885 .. option:: -fsanitize-trap=<arg1>,<arg2>..., -fno-sanitize-trap=<arg1>,<arg2>...
887 Enable trapping for specified sanitizers
889 .. option:: -fsanitize-undefined-strip-path-components=<number>
891 Strip (or keep only, if negative) a given number of path components when emitting check metadata.
893 .. option:: -fsanitize-undefined-trap-on-error, -fno-sanitize-undefined-trap-on-error
895 .. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...
897 Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
899 .. option:: -moutline, -mno-outline
901 Enable function outlining (AArch64 only)
903 .. option:: --param <arg>, --param=<arg>
905 .. option:: -std=<arg>, --std=<arg>, --std <arg>
907 Language standard to compile for
912 Flags controlling the behavior of the Clang preprocessor.
914 .. option:: -C, --comments
916 Include comments in preprocessed output
918 .. option:: -CC, --comments-in-macros
920 Include comments from within macros in preprocessed output
922 .. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg>
924 Define <macro> to <value> (or 1 if <value> omitted)
926 .. option:: -H, --trace-includes
928 Show header includes and nesting depth
930 .. option:: -P, --no-line-commands
932 Disable linemarker output in -E mode
934 .. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>
936 Undefine macro <macro>
938 .. option:: -Wp,<arg>,<arg2>...
940 Pass the comma separated arguments in <arg> to the preprocessor
942 .. option:: -Xpreprocessor <arg>
944 Pass <arg> to the preprocessor
946 Include path management
947 -----------------------
949 Flags controlling how ``#include``\s are resolved to files.
951 .. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg>
953 Add directory to include search path
955 .. option:: -I-, --include-barrier
957 Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
959 .. option:: --cuda-path-ignore-env
961 Ignore environment variables to detect CUDA installation
963 .. option:: --cuda-path=<arg>
965 CUDA installation path
967 .. option:: -cxx-isystem<directory>
969 Add directory to the C++ SYSTEM include search path
971 .. option:: -fbuild-session-file=<file>
973 Use the last modification time of <file> as the build session timestamp
975 .. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
977 Time when the current build session started
979 .. option:: -fmodule-file=\[<name>=\]<file>
981 Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
983 .. option:: -fmodules-cache-path=<directory>
985 Specify the module cache path
987 .. option:: -fmodules-disable-diagnostic-validation
989 Disable validation of the diagnostic options when loading the module
991 .. option:: -fmodules-prune-after=<seconds>
993 Specify the interval (in seconds) after which a module file will be considered unused
995 .. option:: -fmodules-prune-interval=<seconds>
997 Specify the interval (in seconds) between attempts to prune the module cache
999 .. option:: -fmodules-user-build-path <directory>
1001 Specify the module user build path
1003 .. option:: -fmodules-validate-once-per-build-session
1005 Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
1007 .. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
1009 Validate the system headers that a module depends on when loading the module
1011 .. option:: -fprebuilt-module-path=<directory>
1013 Specify the prebuilt module path
1015 .. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
1017 Add directory to AFTER include search path
1019 .. option:: -iframework<arg>
1021 Add directory to SYSTEM framework search path
1023 .. option:: -iframeworkwithsysroot<directory>
1025 Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
1027 .. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
1029 Include macros from file before parsing
1031 .. option:: -include<file>, --include<file>, --include=<arg>
1033 Include file before parsing
1035 .. option:: -include-pch <file>
1037 Include precompiled header file
1039 .. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
1041 Set the -iwithprefix/-iwithprefixbefore prefix
1043 .. option:: -iquote<directory>
1045 Add directory to QUOTE include search path
1047 .. option:: -isysroot<dir>
1049 Set the system root directory (usually /)
1051 .. option:: -isystem<directory>
1053 Add directory to SYSTEM include search path
1055 .. option:: -isystem-after<directory>
1057 Add directory to end of the SYSTEM include search path
1059 .. option:: -ivfsoverlay<arg>
1061 Overlay the virtual filesystem described by file over the real file system
1063 .. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
1065 Set directory to SYSTEM include search path with prefix
1067 .. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
1069 Set directory to include search path with prefix
1071 .. option:: -iwithsysroot<directory>
1073 Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
1075 .. option:: --ptxas-path=<arg>
1077 Path to ptxas (used for compiling CUDA code)
1079 .. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
1081 Treat all #include paths starting with <prefix> as including a system header.
1083 Dependency file generation
1084 --------------------------
1086 Flags controlling generation of a dependency file for ``make``-like build
1089 .. option:: -M, --dependencies
1091 Like -MD, but also implies -E and writes to stdout by default
1093 .. option:: -MD, --write-dependencies
1095 Write a depfile containing user and system headers
1097 .. option:: -MF<file>
1099 Write depfile output from -MMD, -MD, -MM, or -M to <file>
1101 .. option:: -MG, --print-missing-file-dependencies
1103 Add missing headers to depfile
1105 .. option:: -MJ<arg>
1107 Write a compilation database entry per input
1109 .. option:: -MM, --user-dependencies
1111 Like -MMD, but also implies -E and writes to stdout by default
1113 .. option:: -MMD, --write-user-dependencies
1115 Write a depfile containing user headers
1119 Create phony target for each dependency (other than main file)
1121 .. option:: -MQ<arg>
1123 Specify name of main file output to quote in depfile
1125 .. option:: -MT<arg>
1127 Specify name of main file output in depfile
1131 Use NMake/Jom format for the depfile
1133 Dumping preprocessor state
1134 --------------------------
1136 Flags allowing the state of the preprocessor to be dumped in various ways.
1148 Print macro definitions in -E mode in addition to normal output
1152 Print include directives in -E mode in addition to normal output
1156 Print macro definitions in -E mode instead of normal output
1161 Flags controlling which warnings, errors, and remarks Clang will generate.
1162 See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
1164 .. option:: -R<remark>
1166 Enable the specified remark
1168 .. option:: -Rpass-analysis=<arg>
1170 Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
1172 .. option:: -Rpass-missed=<arg>
1174 Report missed transformations by optimization passes whose name matches the given POSIX regular expression
1176 .. option:: -Rpass=<arg>
1178 Report transformations performed by optimization passes whose name matches the given POSIX regular expression
1180 .. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
1182 Enable the specified warning
1184 .. option:: -Wdeprecated, -Wno-deprecated
1186 Enable warnings for deprecated constructs and define \_\_DEPRECATED
1188 .. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
1190 Target-independent compilation options
1191 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1192 .. option:: -Wframe-larger-than=<arg>
1194 .. option:: -fPIC, -fno-PIC
1196 .. option:: -fPIE, -fno-PIE
1198 .. option:: -faccess-control, -fno-access-control
1200 .. option:: -faddrsig, -fno-addrsig
1202 Emit an address-significance table
1204 .. option:: -falign-functions, -fno-align-functions
1207 .. option:: -falign-functions=<arg>
1211 .. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
1214 Enable C++17 aligned allocation functions
1216 .. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
1218 Treat editor placeholders as valid source code
1220 .. option:: -fallow-unsupported
1222 .. option:: -faltivec, -fno-altivec
1224 .. option:: -fansi-escape-codes
1226 Use ANSI escape codes for diagnostics
1228 .. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
1230 Use Apple's kernel extensions ABI
1232 .. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
1234 Enable Apple gcc-compatible #pragma pack handling
1236 .. option:: -fapplication-extension, -fno-application-extension
1238 Restrict code to those available for App Extensions
1240 .. option:: -fasm, -fno-asm
1242 .. option:: -fasm-blocks, -fno-asm-blocks
1244 .. option:: -fassociative-math, -fno-associative-math
1246 .. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
1254 .. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
1256 .. option:: -fautolink, -fno-autolink
1258 .. option:: -fblocks, -fno-blocks
1260 Enable the 'blocks' language feature
1262 .. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
1264 .. option:: -fborland-extensions, -fno-borland-extensions
1266 Accept non-standard constructs supported by the Borland compiler
1268 .. option:: -fbracket-depth=<arg>
1270 .. option:: -fbuiltin, -fno-builtin
1272 .. option:: -fbuiltin-module-map
1274 Load the clang builtins module map file.
1276 .. option:: -fc++-static-destructors, -fno-c++-static-destructors
1278 Enable C++ static destructor registration (the default)
1280 .. option:: -fcaret-diagnostics, -fno-caret-diagnostics
1282 .. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
1284 Instrument control-flow architecture protection. Options: return, branch, full, none.
1286 .. option:: -fchar8\_t, -fno-char8\_t
1288 Enable C++ builtin type char8\_t
1290 .. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
1292 .. option:: -fcolor-diagnostics, -fno-color-diagnostics
1294 Use colors in diagnostics
1296 .. option:: -fcommon, -fno-common
1298 .. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
1300 .. option:: -fconstant-cfstrings, -fno-constant-cfstrings
1302 .. option:: -fconstant-string-class=<arg>
1304 .. option:: -fconstexpr-backtrace-limit=<arg>
1306 .. option:: -fconstexpr-depth=<arg>
1308 .. option:: -fconstexpr-steps=<arg>
1310 .. option:: -fcoroutines-ts, -fno-coroutines-ts
1312 Enable support for the C++ Coroutines TS
1314 .. option:: -fcoverage-mapping, -fno-coverage-mapping
1316 Generate coverage mapping to enable code coverage analysis
1318 .. option:: -fcreate-profile
1320 .. option:: -fcxx-exceptions, -fno-cxx-exceptions
1322 Enable C++ exceptions
1324 .. option:: -fcxx-modules, -fno-cxx-modules
1326 .. option:: -fdata-sections, -fno-data-sections
1328 Place each data in its own section (ELF Only)
1330 .. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
1332 Emit extra debug info to make sample profile more accurate.
1334 .. option:: -fdebug-macro, -fno-debug-macro
1336 Emit macro debug information
1338 .. option:: -fdebug-pass-arguments
1340 .. option:: -fdebug-pass-structure
1342 .. option:: -fdebug-prefix-map=<arg>
1344 remap file source paths in debug info
1346 .. option:: -fdebug-types-section, -fno-debug-types-section
1348 Place debug types in their own section (ELF Only)
1350 .. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
1352 Parse templated function definitions at the end of the translation unit
1354 .. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
1356 Treat usage of null pointers as undefined behavior.
1358 .. option:: -fdenormal-fp-math=<arg>
1360 .. option:: -fdiagnostics-absolute-paths
1362 Print absolute paths in diagnostics
1364 .. option:: -fdiagnostics-color, -fno-diagnostics-color
1367 .. option:: -fdiagnostics-color=<arg>
1370 .. option:: -fdiagnostics-hotness-threshold=<number>
1372 Prevent optimization remarks from being output if they do not have at least this profile count
1374 .. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
1376 Enable profile hotness information in diagnostic line
1378 .. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
1380 Display include stacks for diagnostic notes
1382 .. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
1384 Print option name with mappable diagnostics
1386 .. option:: -fdiagnostics-show-template-tree
1388 Print a template comparison tree for differing templates
1390 .. option:: -fdigraphs, -fno-digraphs
1392 Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
1394 .. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
1396 Allow '$' in identifiers
1398 .. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
1400 Enable '\[\[\]\]' attributes in all C and C++ language modes
1402 .. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
1404 .. option:: -fdwarf-exceptions
1406 Use DWARF style exceptions
1408 .. option:: -felide-constructors, -fno-elide-constructors
1410 .. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
1412 .. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
1414 Embed LLVM bitcode (option: off, all, bitcode, marker)
1416 .. option:: -femit-all-decls
1418 Emit all declarations, even if unused
1420 .. option:: -femulated-tls, -fno-emulated-tls
1422 Use emutls functions to access thread\_local variables
1424 .. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
1426 .. option:: -ferror-limit=<arg>
1428 .. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
1430 .. option:: -fexceptions, -fno-exceptions
1432 Enable support for exception handling
1434 .. option:: -fexec-charset=<arg>
1436 .. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
1438 .. option:: -ffast-math, -fno-fast-math
1440 Allow aggressive, lossy floating-point optimizations
1442 .. option:: -ffinite-math-only, -fno-finite-math-only
1444 .. option:: -ffixed-point, -fno-fixed-point
1446 Enable fixed point types
1448 .. option:: -ffor-scope, -fno-for-scope
1450 .. option:: -fforce-emit-vtables, -fno-force-emit-vtables
1452 Emits more virtual tables to improve devirtualization
1454 .. option:: -fforce-enable-int128, -fno-force-enable-int128
1456 Enable support for int128\_t type
1458 .. option:: -ffp-contract=<arg>
1460 Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma, default) \| off (never fuse)
1462 .. option:: -ffreestanding
1464 Assert that the compilation takes place in a freestanding environment
1466 .. option:: -ffunction-sections, -fno-function-sections
1468 Place each function in its own section (ELF Only)
1470 .. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
1472 .. option:: -fgnu-keywords, -fno-gnu-keywords
1474 Allow GNU-extension keywords regardless of language standard
1476 .. option:: -fgnu-runtime
1478 Generate output compatible with the standard GNU Objective-C runtime
1480 .. option:: -fgnu89-inline, -fno-gnu89-inline
1482 Use the gnu89 inline semantics
1484 .. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1486 .. option:: -fhonor-nans, -fno-honor-nans
1488 .. option:: -fhosted
1490 .. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1492 Implicitly search the file system for module map files.
1494 .. option:: -fimplicit-modules, -fno-implicit-modules
1496 .. option:: -finput-charset=<arg>
1498 .. option:: -finstrument-function-entry-bare
1500 Instrument function entry only, after inlining, without arguments to the instrumentation call
1502 .. option:: -finstrument-functions
1504 Generate calls to instrument function entry and exit
1506 .. option:: -finstrument-functions-after-inlining
1508 Like -finstrument-functions, but insert the calls after inlining
1510 .. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1512 Enable the integrated assembler
1514 .. option:: -fjump-tables, -fno-jump-tables
1516 .. option:: -fkeep-static-consts
1518 Keep static const variables even if unused
1520 .. option:: -flax-vector-conversions, -fno-lax-vector-conversions
1522 .. option:: -flimited-precision=<arg>
1524 .. option:: -flto, -fno-lto
1526 Enable LTO in 'full' mode
1528 .. option:: -flto-jobs=<arg>
1530 Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1533 .. option:: -flto=<arg>
1536 Set LTO mode to either 'full' or 'thin'
1538 .. option:: -fmacro-backtrace-limit=<arg>
1540 .. option:: -fmath-errno, -fno-math-errno
1542 Require math functions to indicate errors by setting errno
1544 .. option:: -fmax-type-align=<arg>
1546 Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1548 .. option:: -fmerge-all-constants, -fno-merge-all-constants
1550 Allow merging of constants
1552 .. option:: -fmessage-length=<arg>
1554 .. option:: -fmodule-file-deps, -fno-module-file-deps
1556 .. option:: -fmodule-map-file=<file>
1558 Load this module map file
1560 .. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
1562 Specify the name of the module to build
1564 .. option:: -fmodules, -fno-modules
1566 Enable the 'modules' language feature
1568 .. option:: -fmodules-decluse, -fno-modules-decluse
1570 Require declaration of modules used within a module
1572 .. option:: -fmodules-ignore-macro=<arg>
1574 Ignore the definition of the given macro when building and loading modules
1576 .. option:: -fmodules-search-all, -fno-modules-search-all
1578 Search even non-imported modules to resolve references
1580 .. option:: -fmodules-strict-decluse
1582 Like -fmodules-decluse but requires all headers to be in modules
1584 .. option:: -fmodules-ts
1586 Enable support for the C++ Modules TS
1588 .. option:: -fms-compatibility, -fno-ms-compatibility
1590 Enable full Microsoft Visual C++ compatibility
1592 .. option:: -fms-compatibility-version=<arg>
1594 Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1596 .. option:: -fms-extensions, -fno-ms-extensions
1598 Accept some non-standard constructs supported by the Microsoft compiler
1600 .. option:: -fms-memptr-rep=<arg>
1602 .. option:: -fms-volatile<arg>
1604 .. option:: -fmsc-version=<arg>
1606 Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1608 .. option:: -fmudflap
1610 .. option:: -fmudflapth
1612 .. option:: -fnested-functions
1614 .. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
1616 Specifies the largest alignment guaranteed by '::operator new(size\_t)'
1618 .. option:: -fnext-runtime
1620 .. option:: -fno-builtin-<arg>
1622 Disable implicit builtin knowledge of a specific function
1624 .. option:: -fno-elide-type
1626 Do not elide types when printing diagnostics
1628 .. option:: -fno-max-type-align
1630 .. option:: -fno-operator-names
1632 Do not treat C++ operator name keywords as synonyms for operators
1634 .. option:: -fno-rtti-data
1636 Control emission of RTTI data
1638 .. option:: -fno-strict-modules-decluse
1640 .. option:: -fno-working-directory
1642 .. option:: -fnoxray-link-deps
1644 .. option:: -fobjc-abi-version=<arg>
1646 .. option:: -fobjc-arc, -fno-objc-arc
1648 Synthesize retain and release calls for Objective-C pointers
1650 .. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
1652 Use EH-safe code when synthesizing retains and releases in -fobjc-arc
1654 .. option:: -fobjc-exceptions, -fno-objc-exceptions
1656 Enable Objective-C exceptions
1658 .. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
1660 .. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
1662 .. option:: -fobjc-link-runtime
1664 .. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
1666 .. option:: -fobjc-nonfragile-abi-version=<arg>
1668 .. option:: -fobjc-runtime=<arg>
1670 Specify the target Objective-C runtime kind and version
1672 .. option:: -fobjc-sender-dependent-dispatch
1674 .. option:: -fobjc-weak, -fno-objc-weak
1676 Enable ARC-style weak references in Objective-C
1678 .. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
1680 .. option:: -fopenmp, -fno-openmp
1682 Parse OpenMP pragmas and generate parallel code.
1684 .. option:: -fopenmp-simd, -fno-openmp-simd
1686 Emit OpenMP code only for SIMD-based constructs.
1688 .. option:: -fopenmp-version=<arg>
1691 .. option:: -fopenmp=<arg>
1694 .. option:: -foperator-arrow-depth=<arg>
1696 .. option:: -foptimization-record-file=<arg>
1698 Specify the file name of any generated YAML optimization record
1700 .. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1702 .. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1704 .. option:: -fpack-struct, -fno-pack-struct
1707 .. option:: -fpack-struct=<arg>
1710 Specify the default maximum struct packing alignment
1712 .. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1714 Recognize and construct Pascal-style string literals
1716 .. option:: -fpcc-struct-return
1718 Override the default ABI to return all structs on the stack
1720 .. option:: -fpch-preprocess
1722 .. option:: -fpic, -fno-pic
1724 .. option:: -fpie, -fno-pie
1726 .. option:: -fplt, -fno-plt
1728 Use the PLT to make function calls
1730 .. option:: -fplugin=<dsopath>
1732 Load the named plugin (dynamic shared object)
1734 .. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1736 .. option:: -fprofile-arcs, -fno-profile-arcs
1738 .. option:: -fprofile-dir=<arg>
1740 .. option:: -fprofile-generate, -fno-profile-generate
1742 Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1745 .. option:: -fprofile-generate=<directory>
1748 Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1750 .. option:: -fprofile-instr-generate, -fno-profile-instr-generate
1752 Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1755 .. option:: -fprofile-instr-generate=<file>
1758 Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
1760 .. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
1763 .. option:: -fprofile-instr-use=<arg>
1766 Use instrumentation data for profile-guided optimization
1768 .. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
1770 Specifies that the sample profile is accurate. If the sample
1771 profile is accurate, callsites without profile samples are marked
1772 as cold. Otherwise, treat callsites without profile samples as if
1775 .. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
1778 .. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
1781 Enable sample-based profile guided optimizations
1784 .. option:: -fprofile-use=<pathname>
1787 Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
1789 .. option:: -freciprocal-math, -fno-reciprocal-math
1791 Allow division operations to be reassociated
1793 .. option:: -freg-struct-return
1795 Override the default ABI to return small structs in registers
1797 .. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
1799 Use atexit or \_\_cxa\_atexit to register global destructors
1801 .. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
1803 Enable C++17 relaxed template template argument matching
1805 .. option:: -freroll-loops, -fno-reroll-loops
1807 Turn on loop reroller
1809 .. option:: -fretain-comments-from-system-headers
1811 .. option:: -frewrite-imports, -fno-rewrite-imports
1813 .. option:: -frewrite-includes, -fno-rewrite-includes
1815 .. option:: -frewrite-map-file <arg>
1818 .. option:: -frewrite-map-file=<arg>
1821 .. option:: -fropi, -fno-ropi
1823 .. option:: -frtti, -fno-rtti
1825 .. option:: -frwpi, -fno-rwpi
1827 .. option:: -fsave-optimization-record, -fno-save-optimization-record
1829 Generate a YAML optimization record file
1831 .. option:: -fseh-exceptions
1833 Use SEH style exceptions
1835 .. option:: -fshort-enums, -fno-short-enums
1837 Allocate to an enum type only as many bytes as it needs for the declared range of possible values
1839 .. option:: -fshort-wchar, -fno-short-wchar
1841 Force wchar\_t to be a short unsigned int
1843 .. option:: -fshow-column, -fno-show-column
1845 .. option:: -fshow-overloads=<arg>
1847 Which overload candidates to show when overload resolution fails: best\|all; defaults to all
1849 .. option:: -fshow-source-location, -fno-show-source-location
1851 .. option:: -fsignaling-math, -fno-signaling-math
1853 .. option:: -fsigned-bitfields
1855 .. option:: -fsigned-char, -fno-signed-char, --signed-char
1857 .. option:: -fsigned-zeros, -fno-signed-zeros
1859 .. option:: -fsized-deallocation, -fno-sized-deallocation
1861 Enable C++14 sized global deallocation functions
1863 .. option:: -fsjlj-exceptions
1865 Use SjLj style exceptions
1867 .. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
1869 Enable the superword-level parallelism vectorization passes
1871 .. option:: -fspell-checking, -fno-spell-checking
1873 .. option:: -fspell-checking-limit=<arg>
1875 .. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
1877 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
1879 .. option:: -fsplit-stack
1881 .. option:: -fstack-protector, -fno-stack-protector
1883 Enable stack protectors for functions potentially vulnerable to stack smashing
1885 .. option:: -fstack-protector-all
1887 Force the usage of stack protectors for all functions
1889 .. option:: -fstack-protector-strong
1891 Use a strong heuristic to apply stack protectors to functions
1893 .. option:: -fstack-size-section, -fno-stack-size-section
1895 Emit section containing metadata on function stack sizes
1897 .. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
1899 Emit full debug info for all types used by the program
1901 .. option:: -fstrict-aliasing, -fno-strict-aliasing
1903 .. option:: -fstrict-enums, -fno-strict-enums
1905 Enable optimizations based on the strict definition of an enum's value range
1907 .. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
1909 Assume that overflowing float-to-int casts are undefined (default)
1911 .. option:: -fstrict-overflow, -fno-strict-overflow
1913 .. option:: -fstrict-return, -fno-strict-return
1915 Always treat control flow paths that fall off the end of a non-void function as unreachable
1917 .. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
1919 Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
1921 .. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
1923 .. option:: -ftabstop=<arg>
1925 .. option:: -ftemplate-backtrace-limit=<arg>
1927 .. option:: -ftemplate-depth-<arg>
1929 .. option:: -ftemplate-depth=<arg>
1931 .. option:: -ftest-coverage
1933 .. option:: -fthinlto-index=<arg>
1935 Perform ThinLTO importing using provided function summary index
1937 .. option:: -fthreadsafe-statics, -fno-threadsafe-statics
1939 .. option:: -ftime-report
1941 .. option:: -ftls-model=<arg>
1943 .. option:: -ftrap-function=<arg>
1945 Issue call to specified function rather than a trap instruction
1947 .. option:: -ftrapping-math, -fno-trapping-math
1951 Trap on integer overflow
1953 .. option:: -ftrapv-handler <arg>
1956 .. option:: -ftrapv-handler=<function name>
1959 Specify the function to be called on overflow
1961 .. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
1963 Process trigraph sequences
1965 .. option:: -funique-section-names, -fno-unique-section-names
1967 Use unique names for text and data sections (ELF Only)
1969 .. option:: -funit-at-a-time, -fno-unit-at-a-time
1971 .. option:: -funroll-loops, -fno-unroll-loops
1973 Turn on loop unroller
1975 .. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
1977 .. option:: -funsigned-bitfields
1979 .. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
1981 .. option:: -funwind-tables, -fno-unwind-tables
1983 .. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
1985 .. option:: -fuse-init-array, -fno-use-init-array
1987 Use .init\_array instead of .ctors
1989 .. option:: -fuse-ld=<arg>
1991 .. option:: -fuse-line-directives, -fno-use-line-directives
1993 .. option:: -fveclib=<arg>
1995 Use the given vector functions library
1997 .. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
1999 Enable the loop vectorization passes
2001 .. option:: -fverbose-asm, -fno-verbose-asm
2003 .. option:: -fvisibility-inlines-hidden
2005 Give inline C++ member functions hidden visibility by default
2007 .. option:: -fvisibility-ms-compat
2009 Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2011 .. option:: -fvisibility=<arg>
2013 Set the default symbol visibility for all global declarations
2015 .. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2017 Enables whole-program vtable optimization. Requires -flto
2019 .. option:: -fwrapv, -fno-wrapv
2021 Treat signed integer overflow as two's complement
2023 .. option:: -fwritable-strings
2025 Store string literals as writable data
2027 .. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2029 Determine whether to always emit \_\_xray\_customevent(...) calls even if the function it appears in is not always instrumented.
2031 .. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2033 Determine whether to always emit \_\_xray\_typedevent(...) calls even if the function it appears in is not always instrumented.
2035 .. option:: -fxray-always-instrument=<arg>
2037 DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2039 .. option:: -fxray-attr-list=<arg>
2041 Filename defining the list of functions/types for imbuing XRay attributes.
2043 .. option:: -fxray-instruction-threshold<arg>
2046 .. option:: -fxray-instruction-threshold=<arg>
2049 Sets the minimum function size to instrument with XRay
2051 .. option:: -fxray-instrument, -fno-xray-instrument
2053 Generate XRay instrumentation sleds on function entry and exit
2055 .. option:: -fxray-instrumentation-bundle=<arg>
2057 Select which XRay instrumentation points to emit. Options: all, none, function, custom. Default is 'all'.
2059 .. option:: -fxray-link-deps
2061 Tells clang to add the link dependencies for XRay.
2063 .. option:: -fxray-modes=<arg>
2065 List of modes to link in by default into XRay instrumented binaries.
2067 .. option:: -fxray-never-instrument=<arg>
2069 DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2071 .. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2073 .. option:: -fzvector, -fno-zvector, -mzvector
2075 Enable System z vector language extension
2077 .. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2079 .. option:: -pedantic-errors, --pedantic-errors
2083 .. option:: -cl-denorms-are-zero
2085 OpenCL only. Allow denormals to be flushed to zero.
2087 .. option:: -cl-fast-relaxed-math
2089 OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2091 .. option:: -cl-finite-math-only
2093 OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2095 .. option:: -cl-fp32-correctly-rounded-divide-sqrt
2097 OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2099 .. option:: -cl-kernel-arg-info
2101 OpenCL only. Generate kernel argument metadata.
2103 .. option:: -cl-mad-enable
2105 OpenCL only. Allow use of less precise MAD computations in the generated binary.
2107 .. option:: -cl-no-signed-zeros
2109 OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2111 .. option:: -cl-opt-disable
2113 OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2115 .. option:: -cl-single-precision-constant
2117 OpenCL only. Treat double precision floating-point constant as single precision constant.
2119 .. option:: -cl-std=<arg>
2121 OpenCL language standard to compile for.
2123 .. option:: -cl-strict-aliasing
2125 OpenCL only. This option is added for compatibility with OpenCL 1.0.
2127 .. option:: -cl-uniform-work-group-size
2129 OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2131 .. option:: -cl-unsafe-math-optimizations
2133 OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
2135 Target-dependent compilation options
2136 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2137 .. option:: -G<size>, -G=<arg>, -msmall-data-threshold=<arg>
2139 Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2147 .. option:: -mabi=<arg>
2149 .. option:: -malign-double
2151 Align doubles to two words in structs (x86 only)
2153 .. option:: -march=<arg>
2155 .. option:: -masm=<arg>
2157 .. option:: -mbackchain, -mno-backchain
2159 Link stack frames through backchain on System Z
2161 .. option:: -mcmodel=<arg>
2163 .. option:: -mconsole<arg>
2165 .. 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)
2167 .. option:: -mcrc, -mno-crc
2169 Allow use of CRC instructions (ARM/Mips only)
2171 .. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2173 .. option:: -mdll<arg>
2175 .. option:: -mdynamic-no-pic<arg>
2177 .. option:: -meabi <arg>
2179 Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2181 .. option:: -mfentry
2183 Insert calls to fentry at function entry (x86 only)
2185 .. option:: -mfloat-abi=<arg>
2187 .. option:: -mfpmath=<arg>
2189 .. option:: -mfpu=<arg>
2191 .. option:: -mglobal-merge, -mno-global-merge
2193 Enable merging of globals
2195 .. option:: -mhard-float
2197 .. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2199 .. option:: -miamcu, -mno-iamcu
2203 .. option:: -mimplicit-float, -mno-implicit-float
2205 .. option:: -mimplicit-it=<arg>
2207 .. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2209 (integrated-as) Emit an object file which can be used with an incremental linker
2211 .. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2213 .. option:: -mkernel
2215 .. option:: -mlong-calls, -mno-long-calls
2217 Generate branches with extended addressability, usually via indirect jumps.
2219 .. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2221 Set Mac OS X deployment target
2223 .. option:: -mmcu=<arg>
2225 .. option:: -mms-bitfields, -mno-ms-bitfields
2227 Set the default structure layout to be compatible with the Microsoft compiler standard
2229 .. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2231 Omit frame pointer setup for leaf functions
2233 .. option:: -moslib=<arg>
2235 .. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2237 Use copy relocations support for PIE builds
2239 .. option:: -mprefer-vector-width=<arg>
2241 Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2243 .. option:: -mqdsp6-compat
2245 Enable hexagon-qdsp6 backward compatibility
2250 .. option:: -mrecip=<arg1>,<arg2>...
2253 .. option:: -mred-zone, -mno-red-zone
2255 .. option:: -mregparm=<arg>
2257 .. option:: -mrelax-all, -mno-relax-all
2259 (integrated-as) Relax all machine instructions
2261 .. option:: -mretpoline, -mno-retpoline
2263 .. option:: -mrtd, -mno-rtd
2265 Make StdCall calling convention the default
2267 .. option:: -msign-return-address=<arg>
2269 Select return address signing scope
2271 .. option:: -msoft-float, -mno-soft-float
2273 Use software floating point
2275 .. option:: -mstack-alignment=<arg>
2277 Set the stack alignment
2279 .. option:: -mstack-arg-probe, -mno-stack-arg-probe
2283 .. option:: -mstack-probe-size=<arg>
2285 Set the stack probe size
2287 .. option:: -mstackrealign, -mno-stackrealign
2289 Force realign the stack at entry to every function
2291 .. option:: -mthread-model <arg>
2293 The thread model to use, e.g. posix, single (posix by default)
2295 .. option:: -mthreads<arg>
2297 .. option:: -mthumb, -mno-thumb
2299 .. option:: -mtune=<arg>
2301 .. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2303 .. option:: -municode<arg>
2305 .. option:: -mvx, -mno-vx
2307 .. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2309 .. option:: -mwatchos-version-min=<arg>
2311 .. option:: -mwindows<arg>
2317 .. option:: -ffixed-x1
2319 Reserve the x1 register (AArch64 only)
2321 .. option:: -ffixed-x2
2323 Reserve the x2 register (AArch64 only)
2325 .. option:: -ffixed-x3
2327 Reserve the x3 register (AArch64 only)
2329 .. option:: -ffixed-x4
2331 Reserve the x4 register (AArch64 only)
2333 .. option:: -ffixed-x5
2335 Reserve the x5 register (AArch64 only)
2337 .. option:: -ffixed-x6
2339 Reserve the x6 register (AArch64 only)
2341 .. option:: -ffixed-x7
2343 Reserve the x7 register (AArch64 only)
2345 .. option:: -ffixed-x18
2347 Reserve the x18 register (AArch64 only)
2349 .. option:: -ffixed-x20
2351 Reserve the x20 register (AArch64 only)
2353 .. option:: -fcall-saved-x8
2355 Make the x8 register call-saved (AArch64 only)
2357 .. option:: -fcall-saved-x9
2359 Make the x9 register call-saved (AArch64 only)
2361 .. option:: -fcall-saved-x10
2363 Make the x10 register call-saved (AArch64 only)
2365 .. option:: -fcall-saved-x11
2367 Make the x11 register call-saved (AArch64 only)
2369 .. option:: -fcall-saved-x12
2371 Make the x12 register call-saved (AArch64 only)
2373 .. option:: -fcall-saved-x13
2375 Make the x13 register call-saved (AArch64 only)
2377 .. option:: -fcall-saved-x14
2379 Make the x14 register call-saved (AArch64 only)
2381 .. option:: -fcall-saved-x15
2383 Make the x15 register call-saved (AArch64 only)
2385 .. option:: -fcall-saved-x18
2387 Make the x18 register call-saved (AArch64 only)
2389 .. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2391 Workaround Cortex-A53 erratum 835769 (AArch64 only)
2393 .. option:: -mgeneral-regs-only
2395 Generate code which only uses the general purpose registers (AArch64 only)
2399 .. option:: -mxnack, -mno-xnack
2401 Enable XNACK (AMDGPU only)
2405 .. option:: -ffixed-r9
2407 Reserve the r9 register (ARM only)
2409 .. option:: -mexecute-only, -mno-execute-only, -mpure-code
2411 Disallow generation of data access to code sections (ARM only)
2413 .. option:: -mno-movt
2415 Disallow use of movt/movw pairs (ARM only)
2417 .. option:: -mno-neg-immediates
2419 Disallow converting instructions with negative immediates to their negation or inversion.
2423 Disallow use of CRC instructions (ARM only)
2425 .. option:: -mrestrict-it, -mno-restrict-it
2427 Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2429 .. option:: -mtp=<arg>
2431 Read thread pointer from coprocessor register (ARM only)
2433 .. option:: -munaligned-access, -mno-unaligned-access
2435 Allow memory accesses to be unaligned (AArch32/AArch64 only)
2439 .. option:: -mieee-rnd-near
2441 .. option:: -mmemops, -mno-memops
2443 Enable generation of memop instructions
2445 .. option:: -mnvj, -mno-nvj
2447 Enable generation of new-value jumps
2449 .. option:: -mnvs, -mno-nvs
2451 Enable generation of new-value stores
2453 .. option:: -mpackets, -mno-packets
2455 Enable generation of instruction packets
2459 .. option:: -mhvx, -mno-hvx
2461 Enable Hexagon Vector eXtensions
2463 .. option:: -mhvx-length=<arg>
2465 Set Hexagon Vector Length
2468 .. option:: -mhvx=<arg>
2471 Enable Hexagon Vector eXtensions
2475 .. option:: -mabicalls, -mno-abicalls
2477 Enable SVR4-style position-independent code (Mips only)
2479 .. option:: -mabs=<arg>
2481 .. option:: -mcheck-zero-division, -mno-check-zero-division
2483 .. option:: -mcompact-branches=<arg>
2485 .. option:: -mdouble-float
2487 .. option:: -mdsp, -mno-dsp
2489 .. option:: -mdspr2, -mno-dspr2
2491 .. option:: -membedded-data, -mno-embedded-data
2493 Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2495 .. option:: -mextern-sdata, -mno-extern-sdata
2497 Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
2501 Use 32-bit floating point registers (MIPS only)
2505 Use 64-bit floating point registers (MIPS only)
2507 .. option:: -mginv, -mno-ginv
2509 .. option:: -mgpopt, -mno-gpopt
2511 Use GP relative accesses for symbols known to be in a small data section (MIPS)
2513 .. option:: -mindirect-jump=<arg>
2515 Change indirect jump instructions to inhibit speculation
2519 .. option:: -mldc1-sdc1, -mno-ldc1-sdc1
2521 .. option:: -mlocal-sdata, -mno-local-sdata
2523 Extend the -G behaviour to object local data (MIPS)
2525 .. option:: -mmadd4, -mno-madd4
2527 Enable the generation of 4-operand madd.s, madd.d and related instructions.
2529 .. option:: -mmicromips, -mno-micromips
2531 .. option:: -mmsa, -mno-msa
2533 Enable MSA ASE (MIPS only)
2535 .. option:: -mmt, -mno-mt
2537 Enable MT ASE (MIPS only)
2539 .. option:: -mnan=<arg>
2541 .. option:: -mno-mips16
2543 .. option:: -msingle-float
2545 .. option:: -mvirt, -mno-virt
2547 .. option:: -mxgot, -mno-xgot
2551 .. option:: -maltivec, -mno-altivec
2553 .. option:: -mcmpb, -mno-cmpb
2555 .. option:: -mcrbits, -mno-crbits
2557 .. option:: -mcrypto, -mno-crypto
2559 .. option:: -mdirect-move, -mno-direct-move
2561 .. option:: -mfloat128, -mno-float128
2563 .. option:: -mfprnd, -mno-fprnd
2565 .. option:: -mhtm, -mno-htm
2567 .. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
2569 .. option:: -misel, -mno-isel
2571 .. option:: -mlongcall, -mno-longcall
2573 .. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
2575 .. option:: -mpopcntd, -mno-popcntd
2577 .. option:: -mpower8-vector, -mno-power8-vector
2579 .. option:: -mpower9-vector, -mno-power9-vector
2581 .. option:: -mqpx, -mno-qpx
2583 .. option:: -msecure-plt
2585 .. option:: -mvsx, -mno-vsx
2589 .. option:: -mexception-handling, -mno-exception-handling
2591 .. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
2593 .. option:: -msign-ext, -mno-sign-ext
2595 .. option:: -msimd128, -mno-simd128
2599 .. option:: -m3dnow, -mno-3dnow
2601 .. option:: -m3dnowa, -mno-3dnowa
2603 .. option:: -madx, -mno-adx
2605 .. option:: -maes, -mno-aes
2607 .. option:: -mavx, -mno-avx
2609 .. option:: -mavx2, -mno-avx2
2611 .. option:: -mavx512bitalg, -mno-avx512bitalg
2613 .. option:: -mavx512bw, -mno-avx512bw
2615 .. option:: -mavx512cd, -mno-avx512cd
2617 .. option:: -mavx512dq, -mno-avx512dq
2619 .. option:: -mavx512er, -mno-avx512er
2621 .. option:: -mavx512f, -mno-avx512f
2623 .. option:: -mavx512ifma, -mno-avx512ifma
2625 .. option:: -mavx512pf, -mno-avx512pf
2627 .. option:: -mavx512vbmi, -mno-avx512vbmi
2629 .. option:: -mavx512vbmi2, -mno-avx512vbmi2
2631 .. option:: -mavx512vl, -mno-avx512vl
2633 .. option:: -mavx512vnni, -mno-avx512vnni
2635 .. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
2637 .. option:: -mbmi, -mno-bmi
2639 .. option:: -mbmi2, -mno-bmi2
2641 .. option:: -mcldemote, -mno-cldemote
2643 .. option:: -mclflushopt, -mno-clflushopt
2645 .. option:: -mclwb, -mno-clwb
2647 .. option:: -mclzero, -mno-clzero
2649 .. option:: -mcx16, -mno-cx16
2651 .. option:: -mf16c, -mno-f16c
2653 .. option:: -mfma, -mno-fma
2655 .. option:: -mfma4, -mno-fma4
2657 .. option:: -mfsgsbase, -mno-fsgsbase
2659 .. option:: -mfxsr, -mno-fxsr
2661 .. option:: -mgfni, -mno-gfni
2663 .. option:: -minvpcid, -mno-invpcid
2665 .. option:: -mlwp, -mno-lwp
2667 .. option:: -mlzcnt, -mno-lzcnt
2669 .. option:: -mmmx, -mno-mmx
2671 .. option:: -mmovbe, -mno-movbe
2673 .. option:: -mmovdir64b, -mno-movdir64b
2675 .. option:: -mmovdiri, -mno-movdiri
2677 .. option:: -mmpx, -mno-mpx
2679 .. option:: -mmwaitx, -mno-mwaitx
2681 .. option:: -mpclmul, -mno-pclmul
2683 .. option:: -mpconfig, -mno-pconfig
2685 .. option:: -mpku, -mno-pku
2687 .. option:: -mpopcnt, -mno-popcnt
2689 .. option:: -mprefetchwt1, -mno-prefetchwt1
2691 .. option:: -mprfchw, -mno-prfchw
2693 .. option:: -mptwrite, -mno-ptwrite
2695 .. option:: -mrdpid, -mno-rdpid
2697 .. option:: -mrdrnd, -mno-rdrnd
2699 .. option:: -mrdseed, -mno-rdseed
2701 .. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
2703 .. option:: -mrtm, -mno-rtm
2705 .. option:: -msahf, -mno-sahf
2707 .. option:: -msgx, -mno-sgx
2709 .. option:: -msha, -mno-sha
2711 .. option:: -mshstk, -mno-shstk
2713 .. option:: -msse, -mno-sse
2715 .. option:: -msse2, -mno-sse2
2717 .. option:: -msse3, -mno-sse3
2719 .. option:: -msse4.1, -mno-sse4.1
2722 .. option:: -msse4.2, -mno-sse4.2, -msse4
2725 .. option:: -msse4a, -mno-sse4a
2727 .. option:: -mssse3, -mno-ssse3
2729 .. option:: -mtbm, -mno-tbm
2731 .. option:: -mvaes, -mno-vaes
2733 .. option:: -mvpclmulqdq, -mno-vpclmulqdq
2735 .. option:: -mwaitpkg, -mno-waitpkg
2737 .. option:: -mwbnoinvd, -mno-wbnoinvd
2739 .. option:: -mx87, -m80387, -mno-x87
2741 .. option:: -mxop, -mno-xop
2743 .. option:: -mxsave, -mno-xsave
2745 .. option:: -mxsavec, -mno-xsavec
2747 .. option:: -mxsaveopt, -mno-xsaveopt
2749 .. option:: -mxsaves, -mno-xsaves
2753 .. option:: -mrelax, -mno-relax
2755 Enable linker relaxation
2760 Flags controlling how much optimization should be performed.
2762 .. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>
2764 .. option:: -Ofast<arg>
2766 Debug information generation
2767 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2769 Flags controlling how much and what kind of debug information should be
2772 Kind and level of debug information
2773 -----------------------------------
2774 .. option:: -g, --debug, --debug=<arg>
2776 Generate source-level debug information
2778 .. option:: -gdwarf-2
2780 Generate source-level debug information with dwarf version 2
2782 .. option:: -gdwarf-3
2784 Generate source-level debug information with dwarf version 3
2786 .. option:: -gdwarf-4, -gdwarf
2788 Generate source-level debug information with dwarf version 4
2790 .. option:: -gdwarf-5
2792 Generate source-level debug information with dwarf version 5
2814 .. option:: -gline-tables-only, -g1, -gmlt
2816 Emit debug line number tables only
2818 .. option:: -gmodules
2820 Generate debug info with external references to clang modules or precompiled headers
2822 Debugger to tune debug information for
2823 ______________________________________
2830 Debug information flags
2831 -----------------------
2832 .. option:: -gcolumn-info, -gno-column-info
2834 .. option:: -gdwarf-aranges
2836 .. option:: -gembed-source, -gno-embed-source
2838 Embed source text in DWARF debug sections
2840 .. option:: -ggnu-pubnames, -gno-gnu-pubnames
2842 .. option:: -gpubnames, -gno-pubnames
2844 .. option:: -grecord-command-line, -grecord-gcc-switches, -gno-record-command-line, -gno-record-gcc-switches
2846 .. option:: -gsplit-dwarf
2848 .. option:: -gstrict-dwarf, -gno-strict-dwarf
2852 DWARF debug sections compression type
2855 .. option:: -gz=<arg>
2858 DWARF debug sections compression type
2860 Static analyzer flags
2861 =====================
2863 Flags controlling the behavior of the Clang Static Analyzer.
2865 .. option:: -Xanalyzer <arg>
2867 Pass <arg> to the static analyzer
2869 Fortran compilation flags
2870 =========================
2872 Flags that will be passed onto the ``gfortran`` compiler when Clang is given
2875 .. option:: -A<arg>, --assert <arg>, --assert=<arg>
2877 .. option:: -A-<arg>
2883 .. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
2885 .. option:: -falign-commons, -fno-align-commons
2887 .. option:: -fall-intrinsics, -fno-all-intrinsics
2889 .. option:: -fautomatic, -fno-automatic
2891 .. option:: -fbackslash, -fno-backslash
2893 .. option:: -fbacktrace, -fno-backtrace
2895 .. option:: -fblas-matmul-limit=<arg>
2897 .. option:: -fbounds-check, -fno-bounds-check
2899 .. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
2901 .. option:: -fcheck=<arg>
2903 .. option:: -fcoarray=<arg>
2905 .. option:: -fconvert=<arg>
2907 .. option:: -fcray-pointer, -fno-cray-pointer
2909 .. option:: -fd-lines-as-code, -fno-d-lines-as-code
2911 .. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
2913 .. option:: -fdefault-double-8, -fno-default-double-8
2915 .. option:: -fdefault-integer-8, -fno-default-integer-8
2917 .. option:: -fdefault-real-8, -fno-default-real-8
2919 .. option:: -fdollar-ok, -fno-dollar-ok
2921 .. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
2923 .. option:: -fdump-fortran-original, -fno-dump-fortran-original
2925 .. option:: -fdump-parse-tree, -fno-dump-parse-tree
2927 .. option:: -fexternal-blas, -fno-external-blas
2929 .. option:: -ff2c, -fno-f2c
2931 .. option:: -ffixed-form, -fno-fixed-form
2933 .. option:: -ffixed-line-length-<arg>
2935 .. option:: -ffpe-trap=<arg>
2937 .. option:: -ffree-form, -fno-free-form
2939 .. option:: -ffree-line-length-<arg>
2941 .. option:: -ffrontend-optimize, -fno-frontend-optimize
2943 .. option:: -fimplicit-none, -fno-implicit-none
2945 .. option:: -finit-character=<arg>
2947 .. option:: -finit-integer=<arg>
2949 .. option:: -finit-local-zero, -fno-init-local-zero
2951 .. option:: -finit-logical=<arg>
2953 .. option:: -finit-real=<arg>
2955 .. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
2957 .. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
2959 .. option:: -fmax-array-constructor=<arg>
2961 .. option:: -fmax-errors=<arg>
2963 .. option:: -fmax-identifier-length, -fno-max-identifier-length
2965 .. option:: -fmax-stack-var-size=<arg>
2967 .. option:: -fmax-subrecord-length=<arg>
2969 .. option:: -fmodule-private, -fno-module-private
2971 .. option:: -fpack-derived, -fno-pack-derived
2973 .. option:: -fprotect-parens, -fno-protect-parens
2975 .. option:: -frange-check, -fno-range-check
2977 .. option:: -freal-4-real-10, -fno-real-4-real-10
2979 .. option:: -freal-4-real-16, -fno-real-4-real-16
2981 .. option:: -freal-4-real-8, -fno-real-4-real-8
2983 .. option:: -freal-8-real-10, -fno-real-8-real-10
2985 .. option:: -freal-8-real-16, -fno-real-8-real-16
2987 .. option:: -freal-8-real-4, -fno-real-8-real-4
2989 .. option:: -frealloc-lhs, -fno-realloc-lhs
2991 .. option:: -frecord-marker=<arg>
2993 .. option:: -frecursive, -fno-recursive
2995 .. option:: -frepack-arrays, -fno-repack-arrays
2997 .. option:: -fsecond-underscore, -fno-second-underscore
2999 .. option:: -fsign-zero, -fno-sign-zero
3001 .. option:: -fstack-arrays, -fno-stack-arrays
3003 .. option:: -funderscoring, -fno-underscoring
3005 .. option:: -fwhole-file, -fno-whole-file
3007 .. option:: -imultilib <arg>
3011 .. option:: -static-libgfortran
3015 Flags that are passed on to the linker
3017 .. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3019 Add directory to library search path
3023 .. option:: -T<script>
3025 Specify <script> as linker script
3027 .. option:: -Tbss<addr>
3029 Set starting address of BSS to <addr>
3031 .. option:: -Tdata<addr>
3033 Set starting address of DATA to <addr>
3035 .. option:: -Ttext<addr>
3037 Set starting address of TEXT to <addr>
3039 .. option:: -Wl,<arg>,<arg2>...
3041 Pass the comma separated arguments in <arg> to the linker
3045 .. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3047 Pass <arg> to the linker
3053 .. option:: -e<arg>, --entry
3055 .. option:: -filelist <arg>
3057 .. option:: --hip-device-lib-path=<arg>
3059 HIP device library path
3061 .. option:: --hip-device-lib=<arg>
3069 .. option:: -rpath <arg>
3075 .. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3079 undef all system defines
3081 .. option:: -undefined<arg>, --no-undefined
3083 .. option:: -z <arg>
3085 Pass -z <arg> to the linker