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  -------------------------------------------------------------------
6
7=====================================
8Clang command line argument reference
9=====================================
10.. contents::
11   :local:
12
13Introduction
14============
15
16This page lists the command line arguments currently supported by the
17GCC-compatible ``clang`` and ``clang++`` drivers.
18
19
20.. program:: clang
21.. option:: -B<dir>, --prefix <arg>, --prefix=<arg>
22
23Add <dir> to search path for binaries and object files used implicitly
24
25.. option:: -F<arg>
26
27Add directory to framework include search path
28
29.. option:: -ObjC
30
31Treat source input files as Objective-C inputs
32
33.. program:: clang1
34.. option:: -ObjC++
35.. program:: clang
36
37Treat source input files as Objective-C++ inputs
38
39.. option:: -Qn, -fno-ident
40
41Do not emit metadata containing compiler name and version
42
43.. option:: -Qunused-arguments
44
45Don't emit warning for unused driver arguments
46
47.. option:: -Qy, -fident
48
49Emit metadata containing compiler name and version
50
51.. option:: -Wa,<arg>,<arg2>...
52
53Pass the comma separated arguments in <arg> to the assembler
54
55.. option:: -Wlarge-by-value-copy=<arg>
56
57.. option:: -Xarch\_<arg1> <arg2>
58
59.. program:: clang1
60.. option:: -Xarch\_device <arg>
61.. program:: clang
62
63Pass <arg> to the CUDA/HIP device compilation
64
65.. program:: clang2
66.. option:: -Xarch\_host <arg>
67.. program:: clang
68
69Pass <arg> to the CUDA/HIP host compilation
70
71.. option:: -Xcuda-fatbinary <arg>
72
73Pass <arg> to fatbinary invocation
74
75.. option:: -Xcuda-ptxas <arg>
76
77Pass <arg> to the ptxas assembler
78
79.. option:: -Xopenmp-target <arg>
80
81Pass <arg> to the target offloading toolchain.
82
83.. program:: clang1
84.. option:: -Xopenmp-target=<triple> <arg>
85.. program:: clang
86
87Pass <arg> to the target offloading toolchain identified by <triple>.
88
89.. option:: -Z<arg>
90
91.. option:: -a<arg>, --profile-blocks
92
93.. option:: -all\_load
94
95.. option:: -allowable\_client <arg>
96
97.. option:: --analyze
98
99Run the static analyzer
100
101.. option:: --analyzer-no-default-checks
102
103.. option:: --analyzer-output<arg>
104
105Static analyzer report output format (html\|plist\|plist-multi-file\|plist-html\|sarif\|text).
106
107.. option:: -ansi, --ansi
108
109.. option:: -arch <arg>
110
111.. program:: clang1
112.. option:: -arch\_errors\_fatal
113.. program:: clang
114
115.. program:: clang2
116.. option:: -arch\_only <arg>
117.. program:: clang
118
119.. option:: -arcmt-migrate-emit-errors
120
121Emit ARC errors even if the migrator can fix them
122
123.. option:: -arcmt-migrate-report-output <arg>
124
125Output path for the plist report
126
127.. option:: --autocomplete=<arg>
128
129.. option:: -bind\_at\_load
130
131.. option:: -bundle
132
133.. program:: clang1
134.. option:: -bundle\_loader <arg>
135.. program:: clang
136
137.. option:: -client\_name<arg>
138
139.. option:: -compatibility\_version<arg>
140
141.. option:: --config <arg>
142
143Specifies configuration file
144
145.. option:: --constant-cfstrings
146
147.. option:: --cuda-compile-host-device
148
149Compile CUDA code for both host and device (default).  Has no effect on non-CUDA compilations.
150
151.. option:: --cuda-device-only
152
153Compile CUDA code for device only
154
155.. option:: --cuda-host-only
156
157Compile CUDA code for host only.  Has no effect on non-CUDA compilations.
158
159.. option:: --cuda-include-ptx=<arg>, --no-cuda-include-ptx=<arg>
160
161Include PTX for the following GPU architecture (e.g. sm\_35) or 'all'. May be specified more than once.
162
163.. option:: --cuda-noopt-device-debug, --no-cuda-noopt-device-debug
164
165Enable device-side debug info generation. Disables ptxas optimizations.
166
167.. option:: -current\_version<arg>
168
169.. option:: -dead\_strip
170
171.. option:: -dependency-dot <arg>
172
173Filename to write DOT-formatted header dependencies to
174
175.. option:: -dependency-file <arg>
176
177Filename (or -) to write dependency output to
178
179.. option:: -dsym-dir<dir>
180
181Directory to output dSYM's (if any) to
182
183.. option:: -dumpmachine
184
185.. option:: -dumpversion
186
187.. option:: --dyld-prefix=<arg>, --dyld-prefix <arg>
188
189.. option:: -dylib\_file <arg>
190
191.. option:: -dylinker
192
193.. program:: clang1
194.. option:: -dylinker\_install\_name<arg>
195.. program:: clang
196
197.. option:: -dynamic
198
199.. option:: -dynamiclib
200
201.. option:: -emit-ast
202
203Emit Clang AST files for source inputs
204
205.. option:: --emit-static-lib
206
207Enable linker job to emit a static library.
208
209.. option:: -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
210
211Trivial 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
212
213.. option:: -exported\_symbols\_list <arg>
214
215.. option:: -faligned-new=<arg>
216
217.. option:: -fcuda-flush-denormals-to-zero, -fno-cuda-flush-denormals-to-zero
218
219Flush denormal floating point values to zero in CUDA device mode.
220
221.. option:: -ffixed-r19
222
223Reserve register r19 (Hexagon only)
224
225.. option:: -fheinous-gnu-extensions
226
227.. option:: -flat\_namespace
228
229.. option:: -fopenmp-targets=<arg1>,<arg2>...
230
231Specify comma-separated list of triples OpenMP offloading targets to be supported
232
233.. option:: -force\_cpusubtype\_ALL
234
235.. program:: clang1
236.. option:: -force\_flat\_namespace
237.. program:: clang
238
239.. program:: clang2
240.. option:: -force\_load <arg>
241.. program:: clang
242
243.. option:: -framework <arg>
244
245.. option:: -frtlib-add-rpath, -fno-rtlib-add-rpath
246
247Add -rpath with architecture-specific resource directory to the linker flags
248
249.. option:: -fsanitize-system-blacklist=<arg>
250
251Path to system blacklist file for sanitizers
252
253.. option:: -fsystem-module
254
255Build this module as a system module. Only used with -emit-module
256
257.. option:: --gcc-toolchain=<arg>, -gcc-toolchain <arg>
258
259Use the gcc toolchain at the given directory
260
261.. option:: -gcodeview
262
263Generate CodeView debug information
264
265.. option:: -gcodeview-ghash, -gno-codeview-ghash
266
267Emit type record hashes in a .debug$H section
268
269.. option:: -ginline-line-tables, -gno-inline-line-tables
270
271.. option:: --gpu-instrument-lib=<arg>
272
273Instrument device library for HIP, which is a LLVM bitcode containing \_\_cyg\_profile\_func\_enter and \_\_cyg\_profile\_func\_exit
274
275.. option:: --gpu-max-threads-per-block=<arg>
276
277Default max threads per block for kernel launch bounds for HIP
278
279.. option:: -headerpad\_max\_install\_names<arg>
280
281.. option:: -help, --help
282
283Display available options
284
285.. option:: --help-hidden
286
287Display help for hidden options
288
289.. option:: --hip-link
290
291Link clang-offload-bundler bundles for HIP
292
293.. option:: --hip-version=<arg>
294
295HIP version in the format of major.minor.patch
296
297.. option:: -ibuiltininc
298
299Enable builtin #include directories even when -nostdinc is used before or after -ibuiltininc. Using -nobuiltininc after the option disables it
300
301.. option:: -image\_base <arg>
302
303.. option:: -index-header-map
304
305Make the next included directory (-I or -F) an indexer header map
306
307.. option:: -init <arg>
308
309.. option:: -install\_name <arg>
310
311.. option:: -interface-stub-version=<arg>
312
313.. option:: -keep\_private\_externs
314
315.. option:: -lazy\_framework <arg>
316
317.. program:: clang1
318.. option:: -lazy\_library <arg>
319.. program:: clang
320
321.. option:: -mbig-endian, -EB
322
323.. option:: -mbranch-protection=<arg>
324
325Enforce targets of indirect branches and function returns
326
327.. option:: -mharden-sls=<arg>
328
329Select straight-line speculation hardening scope
330
331.. option:: --migrate
332
333Run the migrator
334
335.. option:: -mios-simulator-version-min=<arg>, -miphonesimulator-version-min=<arg>
336
337.. option:: -mlinker-version=<arg>
338
339.. option:: -mlittle-endian, -EL
340
341.. option:: -mllvm <arg>
342
343Additional arguments to forward to LLVM's option processing
344
345.. option:: -module-dependency-dir <arg>
346
347Directory to dump module dependencies to
348
349.. option:: -mtvos-simulator-version-min=<arg>, -mappletvsimulator-version-min=<arg>
350
351.. option:: -multi\_module
352
353.. option:: -multiply\_defined <arg>
354
355.. program:: clang1
356.. option:: -multiply\_defined\_unused <arg>
357.. program:: clang
358
359.. option:: -mwatchos-simulator-version-min=<arg>, -mwatchsimulator-version-min=<arg>
360
361.. option:: --no-cuda-version-check
362
363Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
364
365.. option:: -no-integrated-cpp, --no-integrated-cpp
366
367.. option:: -no\_dead\_strip\_inits\_and\_terms
368
369.. option:: -nobuiltininc
370
371Disable builtin #include directories
372
373.. option:: -nodefaultlibs
374
375.. option:: -nofixprebinding
376
377.. option:: -nogpuinc, -nocudainc
378
379.. option:: -nogpulib, -nocudalib
380
381Do not link device library for CUDA/HIP device compilation
382
383.. option:: -nolibc
384
385.. option:: -nomultidefs
386
387.. option:: -nopie, -no-pie
388
389.. option:: -noprebind
390
391.. option:: -noprofilelib
392
393.. option:: -noseglinkedit
394
395.. option:: -nostdinc, --no-standard-includes
396
397.. program:: clang1
398.. option:: -nostdinc++
399.. program:: clang
400
401Disable standard #include directories for the C++ standard library
402
403.. option:: -nostdlib++
404
405.. option:: -nostdlibinc
406
407.. option:: -o<file>, --output <arg>, --output=<arg>
408
409Write output to <file>
410
411.. option:: -objcmt-atomic-property
412
413Make migration to 'atomic' properties
414
415.. option:: -objcmt-migrate-all
416
417Enable migration to modern ObjC
418
419.. option:: -objcmt-migrate-annotation
420
421Enable migration to property and method annotations
422
423.. option:: -objcmt-migrate-designated-init
424
425Enable migration to infer NS\_DESIGNATED\_INITIALIZER for initializer methods
426
427.. option:: -objcmt-migrate-instancetype
428
429Enable migration to infer instancetype for method result type
430
431.. option:: -objcmt-migrate-literals
432
433Enable migration to modern ObjC literals
434
435.. option:: -objcmt-migrate-ns-macros
436
437Enable migration to NS\_ENUM/NS\_OPTIONS macros
438
439.. option:: -objcmt-migrate-property
440
441Enable migration to modern ObjC property
442
443.. option:: -objcmt-migrate-property-dot-syntax
444
445Enable migration of setter/getter messages to property-dot syntax
446
447.. option:: -objcmt-migrate-protocol-conformance
448
449Enable migration to add protocol conformance on classes
450
451.. option:: -objcmt-migrate-readonly-property
452
453Enable migration to modern ObjC readonly property
454
455.. option:: -objcmt-migrate-readwrite-property
456
457Enable migration to modern ObjC readwrite property
458
459.. option:: -objcmt-migrate-subscripting
460
461Enable migration to modern ObjC subscripting
462
463.. option:: -objcmt-ns-nonatomic-iosonly
464
465Enable migration to use NS\_NONATOMIC\_IOSONLY macro for setting property's 'atomic' attribute
466
467.. option:: -objcmt-returns-innerpointer-property
468
469Enable migration to annotate property with NS\_RETURNS\_INNER\_POINTER
470
471.. option:: -objcmt-whitelist-dir-path=<arg>, -objcmt-white-list-dir-path=<arg>
472
473Only modify files with a filename contained in the provided directory path
474
475.. option:: -object
476
477.. option:: --offload-arch=<arg>, --cuda-gpu-arch=<arg>, --no-offload-arch=<arg>
478
479CUDA 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+:sram-ecc-).  May be specified more than once.
480
481.. option:: -p, --profile
482
483.. option:: -pagezero\_size<arg>
484
485.. option:: -pg
486
487Enable mcount instrumentation
488
489.. option:: -pipe, --pipe
490
491Use pipes between commands, when possible
492
493.. option:: -prebind
494
495.. program:: clang1
496.. option:: -prebind\_all\_twolevel\_modules
497.. program:: clang
498
499.. option:: -preload
500
501.. option:: --print-diagnostic-categories
502
503.. option:: -print-effective-triple, --print-effective-triple
504
505Print the effective target triple
506
507.. option:: -print-file-name=<file>, --print-file-name=<file>, --print-file-name <arg>
508
509Print the full library path of <file>
510
511.. option:: -print-ivar-layout
512
513Enable Objective-C Ivar layout bitmap print trace
514
515.. option:: -print-libgcc-file-name, --print-libgcc-file-name
516
517Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang\_rt.builtins.\*.a")
518
519.. option:: -print-multi-directory, --print-multi-directory
520
521.. option:: -print-multi-lib, --print-multi-lib
522
523.. option:: -print-prog-name=<name>, --print-prog-name=<name>, --print-prog-name <arg>
524
525Print the full program path of <name>
526
527.. option:: -print-resource-dir, --print-resource-dir
528
529Print the resource directory pathname
530
531.. option:: -print-search-dirs, --print-search-dirs
532
533Print the paths used for finding libraries and programs
534
535.. option:: -print-target-triple, --print-target-triple
536
537Print the normalized target triple
538
539.. option:: -print-targets, --print-targets
540
541Print the registered targets
542
543.. option:: -private\_bundle
544
545.. option:: -pthread, -no-pthread
546
547Support POSIX threads in generated code
548
549.. option:: -pthreads
550
551.. option:: -read\_only\_relocs <arg>
552
553.. option:: -relocatable-pch, --relocatable-pch
554
555Whether to build a relocatable precompiled header
556
557.. option:: -remap
558
559.. option:: -rewrite-legacy-objc
560
561Rewrite Legacy Objective-C source to C++
562
563.. option:: -rtlib=<arg>, --rtlib=<arg>, --rtlib <arg>
564
565Compiler runtime library to use
566
567.. option:: -save-stats=<arg>, --save-stats=<arg>, -save-stats (equivalent to -save-stats=cwd), --save-stats (equivalent to -save-stats=cwd)
568
569Save llvm statistics.
570
571.. option:: -save-temps=<arg>, --save-temps=<arg>, -save-temps (equivalent to -save-temps=cwd), --save-temps (equivalent to -save-temps=cwd)
572
573Save intermediate compilation results.
574
575.. option:: -sectalign <arg1> <arg2> <arg3>
576
577.. option:: -sectcreate <arg1> <arg2> <arg3>
578
579.. option:: -sectobjectsymbols <arg1> <arg2>
580
581.. option:: -sectorder <arg1> <arg2> <arg3>
582
583.. option:: -seg1addr<arg>
584
585.. option:: -seg\_addr\_table <arg>
586
587.. program:: clang1
588.. option:: -seg\_addr\_table\_filename <arg>
589.. program:: clang
590
591.. option:: -segaddr <arg1> <arg2>
592
593.. option:: -segcreate <arg1> <arg2> <arg3>
594
595.. option:: -seglinkedit
596
597.. option:: -segprot <arg1> <arg2> <arg3>
598
599.. option:: -segs\_read\_<arg>
600
601.. program:: clang1
602.. option:: -segs\_read\_only\_addr <arg>
603.. program:: clang
604
605.. program:: clang2
606.. option:: -segs\_read\_write\_addr <arg>
607.. program:: clang
608
609.. option:: -serialize-diagnostics <arg>, --serialize-diagnostics <arg>
610
611Serialize compiler diagnostics to a file
612
613.. option:: -shared-libgcc
614
615.. option:: -shared-libsan, -shared-libasan
616
617Dynamically link the sanitizer runtime
618
619.. option:: -single\_module
620
621.. option:: -static-libgcc
622
623.. option:: -static-libsan
624
625Statically link the sanitizer runtime
626
627.. option:: -static-libstdc++
628
629.. option:: -static-openmp
630
631Use the static host OpenMP runtime while linking.
632
633.. option:: -std-default=<arg>
634
635.. option:: -stdlib=<arg>, --stdlib=<arg>, --stdlib <arg>
636
637C++ standard library to use
638
639.. option:: -sub\_library<arg>
640
641.. program:: clang1
642.. option:: -sub\_umbrella<arg>
643.. program:: clang
644
645.. option:: --sysroot=<arg>, --sysroot <arg>
646
647.. option:: --target-help
648
649.. option:: --target=<arg>, -target <arg>
650
651Generate code for the given target
652
653.. option:: -time
654
655Time individual commands
656
657.. option:: -traditional, --traditional
658
659.. option:: -traditional-cpp, --traditional-cpp
660
661Enable some traditional CPP emulation
662
663.. option:: -twolevel\_namespace
664
665.. program:: clang1
666.. option:: -twolevel\_namespace\_hints
667.. program:: clang
668
669.. option:: -umbrella <arg>
670
671.. option:: -unexported\_symbols\_list <arg>
672
673.. option:: -unwindlib=<arg>, --unwindlib=<arg>
674
675Unwind library to use
676
677.. option:: -v, --verbose
678
679Show commands to run and use verbose output
680
681.. option:: --verify-debug-info
682
683Verify the binary representation of debug output
684
685.. option:: --version
686
687Print version information
688
689.. option:: -w, --no-warnings
690
691Suppress all warnings
692
693.. option:: -weak-l<arg>
694
695.. option:: -weak\_framework <arg>
696
697.. program:: clang1
698.. option:: -weak\_library <arg>
699.. program:: clang
700
701.. program:: clang2
702.. option:: -weak\_reference\_mismatches <arg>
703.. program:: clang
704
705.. option:: -whatsloaded
706
707.. option:: -whyload
708
709.. option:: -working-directory<arg>, -working-directory=<arg>
710
711Resolve file paths relative to the specified directory
712
713.. option:: -x<language>, --language <arg>, --language=<arg>
714
715Treat subsequent input files as having type <language>
716
717.. option:: -y<arg>
718
719Actions
720=======
721The action to perform on the input.
722
723.. option:: -E, --preprocess
724
725Only run the preprocessor
726
727.. option:: -S, --assemble
728
729Only run preprocess and compilation steps
730
731.. option:: -c, --compile
732
733Only run preprocess, compile, and assemble steps
734
735.. option:: -emit-interface-stubs
736
737Generate Interface Stub Files.
738
739.. option:: -emit-llvm
740
741Use the LLVM representation for assembler and object files
742
743.. option:: -emit-merged-ifs
744
745Generate Interface Stub Files, emit merged text not binary.
746
747.. option:: -fsyntax-only
748
749.. option:: -module-file-info
750
751Provide information about a particular module file
752
753.. option:: --precompile
754
755Only precompile the input
756
757.. option:: -rewrite-objc
758
759Rewrite Objective-C source to C++
760
761.. option:: -verify-pch
762
763Load and verify that a pre-compiled header file is not stale
764
765Compilation flags
766=================
767
768Flags controlling the behavior of Clang during compilation. These flags have
769no effect during actions that do not perform compilation.
770
771.. option:: -Xassembler <arg>
772
773Pass <arg> to the assembler
774
775.. option:: -Xclang <arg>
776
777Pass <arg> to the clang compiler
778
779.. option:: -fclang-abi-compat=<version>
780
781Attempt to match the ABI of Clang <version>
782
783.. option:: -fcomment-block-commands=<arg>,<arg2>...
784
785Treat each comma separated argument in <arg> as a documentation comment block command
786
787.. option:: -fcomplete-member-pointers, -fno-complete-member-pointers
788
789Require member pointer base types to be complete if they would be significant under the Microsoft ABI
790
791.. option:: -fcrash-diagnostics-dir=<arg>
792
793.. option:: -fdeclspec, -fno-declspec
794
795Allow \_\_declspec as a keyword
796
797.. option:: -fdepfile-entry=<arg>
798
799.. option:: -fdiagnostics-fixit-info, -fno-diagnostics-fixit-info
800
801.. option:: -fdiagnostics-format=<arg>
802
803.. option:: -fdiagnostics-parseable-fixits
804
805Print fix-its in machine parseable form
806
807.. option:: -fdiagnostics-print-source-range-info
808
809Print source range spans in numeric form
810
811.. option:: -fdiagnostics-show-category=<arg>
812
813.. option:: -fdiscard-value-names, -fno-discard-value-names
814
815Discard value names in LLVM IR
816
817.. option:: -fexperimental-new-pass-manager, -fno-experimental-new-pass-manager
818
819Enables an experimental new pass manager in LLVM.
820
821.. option:: -fexperimental-strict-floating-point
822
823Enables experimental strict floating point in LLVM.
824
825.. option:: -ffine-grained-bitfield-accesses, -fno-fine-grained-bitfield-accesses
826
827Use separate accesses for consecutive bitfield runs with legal widths and alignments.
828
829.. option:: -fglobal-isel, -fexperimental-isel, -fno-global-isel
830
831Enables the global instruction selector
832
833.. option:: -finline-functions, -fno-inline-functions
834
835Inline suitable functions
836
837.. option:: -finline-hint-functions
838
839Inline functions which are (explicitly or implicitly) marked inline
840
841.. option:: -fno-crash-diagnostics
842
843Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
844
845.. option:: -fno-sanitize-blacklist
846
847Don't use blacklist file for sanitizers
848
849.. option:: -fparse-all-comments
850
851.. option:: -frecord-command-line, -fno-record-command-line, -frecord-gcc-switches
852
853.. option:: -fsanitize-address-field-padding=<arg>
854
855Level of field padding for AddressSanitizer
856
857.. option:: -fsanitize-address-globals-dead-stripping
858
859Enable linker dead stripping of globals in AddressSanitizer
860
861.. option:: -fsanitize-address-poison-custom-array-cookie, -fno-sanitize-address-poison-custom-array-cookie
862
863Enable poisoning array cookies when using custom operator new\[\] in AddressSanitizer
864
865.. option:: -fsanitize-address-use-after-scope, -fno-sanitize-address-use-after-scope
866
867Enable use-after-scope detection in AddressSanitizer
868
869.. option:: -fsanitize-address-use-odr-indicator, -fno-sanitize-address-use-odr-indicator
870
871Enable ODR indicator globals to avoid false ODR violation reports in partially sanitized programs at the cost of an increase in binary size
872
873.. option:: -fsanitize-blacklist=<arg>
874
875Path to blacklist file for sanitizers
876
877.. option:: -fsanitize-cfi-canonical-jump-tables, -fno-sanitize-cfi-canonical-jump-tables
878
879Make the jump table addresses canonical in the symbol table
880
881.. option:: -fsanitize-cfi-cross-dso, -fno-sanitize-cfi-cross-dso
882
883Enable control flow integrity (CFI) checks for cross-DSO calls.
884
885.. option:: -fsanitize-cfi-icall-generalize-pointers
886
887Generalize pointers in CFI indirect call type signature checks
888
889.. option:: -fsanitize-coverage-allowlist=<arg>, -fsanitize-coverage-whitelist=<arg>
890
891Restrict sanitizer coverage instrumentation exclusively to modules and functions that match the provided special case list, except the blocked ones
892
893.. option:: -fsanitize-coverage-blocklist=<arg>, -fsanitize-coverage-blacklist=<arg>
894
895Disable sanitizer coverage instrumentation for modules and functions that match the provided special case list, even the allowed ones
896
897.. option:: -fsanitize-coverage=<arg1>,<arg2>..., -fno-sanitize-coverage=<arg1>,<arg2>...
898
899Specify the type of coverage instrumentation for Sanitizers
900
901.. option:: -fsanitize-hwaddress-abi=<arg>
902
903Select the HWAddressSanitizer ABI to target (interceptor or platform, default interceptor). This option is currently unused.
904
905.. option:: -fsanitize-link-c++-runtime, -fno-sanitize-link-c++-runtime
906
907.. option:: -fsanitize-link-runtime, -fno-sanitize-link-runtime
908
909.. option:: -fsanitize-memory-track-origins, -fno-sanitize-memory-track-origins
910
911Enable origins tracking in MemorySanitizer
912
913.. program:: clang1
914.. option:: -fsanitize-memory-track-origins=<arg>
915.. program:: clang
916
917Enable origins tracking in MemorySanitizer
918
919.. option:: -fsanitize-memory-use-after-dtor, -fno-sanitize-memory-use-after-dtor
920
921Enable use-after-destroy detection in MemorySanitizer
922
923.. option:: -fsanitize-minimal-runtime, -fno-sanitize-minimal-runtime
924
925.. option:: -fsanitize-recover=<arg1>,<arg2>..., -fno-sanitize-recover=<arg1>,<arg2>..., -fsanitize-recover (equivalent to -fsanitize-recover=all)
926
927Enable recovery for specified sanitizers
928
929.. option:: -fsanitize-stats, -fno-sanitize-stats
930
931Enable sanitizer statistics gathering.
932
933.. option:: -fsanitize-thread-atomics, -fno-sanitize-thread-atomics
934
935Enable atomic operations instrumentation in ThreadSanitizer (default)
936
937.. option:: -fsanitize-thread-func-entry-exit, -fno-sanitize-thread-func-entry-exit
938
939Enable function entry/exit instrumentation in ThreadSanitizer (default)
940
941.. option:: -fsanitize-thread-memory-access, -fno-sanitize-thread-memory-access
942
943Enable memory access instrumentation in ThreadSanitizer (default)
944
945.. 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)
946
947Enable trapping for specified sanitizers
948
949.. option:: -fsanitize-undefined-strip-path-components=<number>
950
951Strip (or keep only, if negative) a given number of path components when emitting check metadata.
952
953.. option:: -fsanitize=<check>,<arg2>..., -fno-sanitize=<arg1>,<arg2>...
954
955Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
956
957.. option:: -moutline, -mno-outline
958
959Enable function outlining (AArch64 only)
960
961.. option:: --param <arg>, --param=<arg>
962
963.. option:: -print-supported-cpus, --print-supported-cpus, -mcpu=?, -mtune=?
964
965Print supported cpu models for the given target (if target is not specified, it will print the supported cpus for the default target)
966
967.. option:: -std=<arg>, --std=<arg>, --std <arg>
968
969Language standard to compile for
970
971Preprocessor flags
972~~~~~~~~~~~~~~~~~~
973
974Flags controlling the behavior of the Clang preprocessor.
975
976.. option:: -C, --comments
977
978Include comments in preprocessed output
979
980.. option:: -CC, --comments-in-macros
981
982Include comments from within macros in preprocessed output
983
984.. option:: -D<macro>=<value>, --define-macro <arg>, --define-macro=<arg>
985
986Define <macro> to <value> (or 1 if <value> omitted)
987
988.. option:: -H, --trace-includes
989
990Show header includes and nesting depth
991
992.. option:: -P, --no-line-commands
993
994Disable linemarker output in -E mode
995
996.. option:: -U<macro>, --undefine-macro <arg>, --undefine-macro=<arg>
997
998Undefine macro <macro>
999
1000.. option:: -Wp,<arg>,<arg2>...
1001
1002Pass the comma separated arguments in <arg> to the preprocessor
1003
1004.. option:: -Xpreprocessor <arg>
1005
1006Pass <arg> to the preprocessor
1007
1008.. option:: -fmacro-prefix-map=<arg>
1009
1010remap file source paths in predefined preprocessor macros
1011
1012Include path management
1013-----------------------
1014
1015Flags controlling how ``#include``\s are resolved to files.
1016
1017.. option:: -I<dir>, --include-directory <arg>, --include-directory=<arg>
1018
1019Add directory to include search path. If there are multiple -I options, these directories are searched in the order they are given before the standard system directories are searched. If the same directory is in the SYSTEM include search paths, for example if also specified with -isystem, the -I option will be ignored
1020
1021.. option:: -I-, --include-barrier
1022
1023Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
1024
1025.. option:: --cuda-path-ignore-env
1026
1027Ignore environment variables to detect CUDA installation
1028
1029.. option:: --cuda-path=<arg>
1030
1031CUDA installation path
1032
1033.. option:: -cxx-isystem<directory>
1034
1035Add directory to the C++ SYSTEM include search path
1036
1037.. option:: -fbuild-session-file=<file>
1038
1039Use the last modification time of <file> as the build session timestamp
1040
1041.. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
1042
1043Time when the current build session started
1044
1045.. option:: -fmodule-file=\[<name>=\]<file>
1046
1047Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
1048
1049.. option:: -fmodules-cache-path=<directory>
1050
1051Specify the module cache path
1052
1053.. option:: -fmodules-disable-diagnostic-validation
1054
1055Disable validation of the diagnostic options when loading the module
1056
1057.. option:: -fmodules-prune-after=<seconds>
1058
1059Specify the interval (in seconds) after which a module file will be considered unused
1060
1061.. option:: -fmodules-prune-interval=<seconds>
1062
1063Specify the interval (in seconds) between attempts to prune the module cache
1064
1065.. option:: -fmodules-user-build-path <directory>
1066
1067Specify the module user build path
1068
1069.. option:: -fmodules-validate-once-per-build-session
1070
1071Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
1072
1073.. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
1074
1075Validate the system headers that a module depends on when loading the module
1076
1077.. option:: -fprebuilt-module-path=<directory>
1078
1079Specify the prebuilt module path
1080
1081.. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
1082
1083Add directory to AFTER include search path
1084
1085.. option:: -iframework<arg>
1086
1087Add directory to SYSTEM framework search path
1088
1089.. option:: -iframeworkwithsysroot<directory>
1090
1091Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
1092
1093.. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
1094
1095Include macros from file before parsing
1096
1097.. option:: -include<file>, --include<file>, --include=<arg>
1098
1099Include file before parsing
1100
1101.. option:: -include-pch <file>
1102
1103Include precompiled header file
1104
1105.. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
1106
1107Set the -iwithprefix/-iwithprefixbefore prefix
1108
1109.. option:: -iquote<directory>
1110
1111Add directory to QUOTE include search path
1112
1113.. option:: -isysroot<dir>
1114
1115Set the system root directory (usually /)
1116
1117.. option:: -isystem<directory>
1118
1119Add directory to SYSTEM include search path
1120
1121.. option:: -isystem-after<directory>
1122
1123Add directory to end of the SYSTEM include search path
1124
1125.. option:: -ivfsoverlay<arg>
1126
1127Overlay the virtual filesystem described by file over the real file system
1128
1129.. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
1130
1131Set directory to SYSTEM include search path with prefix
1132
1133.. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
1134
1135Set directory to include search path with prefix
1136
1137.. option:: -iwithsysroot<directory>
1138
1139Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
1140
1141.. option:: --libomptarget-nvptx-path=<arg>
1142
1143Path to libomptarget-nvptx libraries
1144
1145.. option:: --ptxas-path=<arg>
1146
1147Path to ptxas (used for compiling CUDA code)
1148
1149.. option:: --rocm-path=<arg>
1150
1151ROCm installation path, used for finding and automatically linking required bitcode libraries.
1152
1153.. program:: clang1
1154.. option:: -stdlib++-isystem<directory>
1155.. program:: clang
1156
1157Use directory as the C++ standard library include path
1158
1159.. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
1160
1161Treat all #include paths starting with <prefix> as including a system header.
1162
1163Dependency file generation
1164--------------------------
1165
1166Flags controlling generation of a dependency file for ``make``-like build
1167systems.
1168
1169.. option:: -M, --dependencies
1170
1171Like -MD, but also implies -E and writes to stdout by default
1172
1173.. option:: -MD, --write-dependencies
1174
1175Write a depfile containing user and system headers
1176
1177.. option:: -MF<file>
1178
1179Write depfile output from -MMD, -MD, -MM, or -M to <file>
1180
1181.. option:: -MG, --print-missing-file-dependencies
1182
1183Add missing headers to depfile
1184
1185.. option:: -MJ<arg>
1186
1187Write a compilation database entry per input
1188
1189.. option:: -MM, --user-dependencies
1190
1191Like -MMD, but also implies -E and writes to stdout by default
1192
1193.. option:: -MMD, --write-user-dependencies
1194
1195Write a depfile containing user headers
1196
1197.. option:: -MP
1198
1199Create phony target for each dependency (other than main file)
1200
1201.. option:: -MQ<arg>
1202
1203Specify name of main file output to quote in depfile
1204
1205.. option:: -MT<arg>
1206
1207Specify name of main file output in depfile
1208
1209.. option:: -MV
1210
1211Use NMake/Jom format for the depfile
1212
1213Dumping preprocessor state
1214--------------------------
1215
1216Flags allowing the state of the preprocessor to be dumped in various ways.
1217
1218.. option:: -d
1219
1220.. program:: clang1
1221.. option:: -d<arg>
1222.. program:: clang
1223
1224.. option:: -dD
1225
1226Print macro definitions in -E mode in addition to normal output
1227
1228.. option:: -dI
1229
1230Print include directives in -E mode in addition to normal output
1231
1232.. option:: -dM
1233
1234Print macro definitions in -E mode instead of normal output
1235
1236Diagnostic flags
1237~~~~~~~~~~~~~~~~
1238
1239Flags controlling which warnings, errors, and remarks Clang will generate.
1240See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
1241
1242.. option:: -R<remark>
1243
1244Enable the specified remark
1245
1246.. option:: -Rpass-analysis=<arg>
1247
1248Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
1249
1250.. option:: -Rpass-missed=<arg>
1251
1252Report missed transformations by optimization passes whose name matches the given POSIX regular expression
1253
1254.. option:: -Rpass=<arg>
1255
1256Report transformations performed by optimization passes whose name matches the given POSIX regular expression
1257
1258.. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
1259
1260Enable the specified warning
1261
1262.. option:: -Wdeprecated, -Wno-deprecated
1263
1264Enable warnings for deprecated constructs and define \_\_DEPRECATED
1265
1266.. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
1267
1268Target-independent compilation options
1269~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1270.. option:: -Wframe-larger-than=<arg>
1271
1272.. option:: -fPIC, -fno-PIC
1273
1274.. option:: -fPIE, -fno-PIE
1275
1276.. option:: -faddrsig, -fno-addrsig
1277
1278Emit an address-significance table
1279
1280.. option:: -falign-functions, -fno-align-functions
1281
1282.. program:: clang1
1283.. option:: -falign-functions=<arg>
1284.. program:: clang
1285
1286.. program:: clang1
1287.. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
1288.. program:: clang
1289
1290Enable C++17 aligned allocation functions
1291
1292.. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
1293
1294Treat editor placeholders as valid source code
1295
1296.. option:: -fallow-unsupported
1297
1298.. option:: -faltivec, -fno-altivec
1299
1300.. option:: -fansi-escape-codes
1301
1302Use ANSI escape codes for diagnostics
1303
1304.. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
1305
1306Use Apple's kernel extensions ABI
1307
1308.. option:: -fapple-link-rtlib
1309
1310Force linking the clang builtins runtime library
1311
1312.. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
1313
1314Enable Apple gcc-compatible #pragma pack handling
1315
1316.. option:: -fapplication-extension, -fno-application-extension
1317
1318Restrict code to those available for App Extensions
1319
1320.. option:: -fasm, -fno-asm
1321
1322.. option:: -fasm-blocks, -fno-asm-blocks
1323
1324.. option:: -fassociative-math, -fno-associative-math
1325
1326.. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
1327
1328.. option:: -fast
1329
1330.. option:: -fastcp
1331
1332.. option:: -fastf
1333
1334.. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
1335
1336.. option:: -fautolink, -fno-autolink
1337
1338.. option:: -fbasic-block-sections=<arg>
1339
1340Generate labels for each basic block or place each basic block or a subset of basic blocks in its own section.
1341
1342.. option:: -fblocks, -fno-blocks
1343
1344Enable the 'blocks' language feature
1345
1346.. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
1347
1348.. option:: -fborland-extensions, -fno-borland-extensions
1349
1350Accept non-standard constructs supported by the Borland compiler
1351
1352.. option:: -fbracket-depth=<arg>
1353
1354.. option:: -fbuiltin, -fno-builtin
1355
1356.. option:: -fbuiltin-module-map
1357
1358Load the clang builtins module map file.
1359
1360.. option:: -fc++-static-destructors, -fno-c++-static-destructors
1361
1362.. option:: -fcaret-diagnostics, -fno-caret-diagnostics
1363
1364.. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
1365
1366Instrument control-flow architecture protection. Options: return, branch, full, none.
1367
1368.. option:: -fcf-runtime-abi=<arg>
1369
1370.. option:: -fchar8\_t, -fno-char8\_t
1371
1372Enable C++ builtin type char8\_t
1373
1374.. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
1375
1376.. option:: -fcolor-diagnostics, -fno-color-diagnostics
1377
1378Enable colors in diagnostics
1379
1380.. option:: -fcommon, -fno-common
1381
1382Place uninitialized global variables in a common block
1383
1384.. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
1385
1386.. option:: -fconstant-cfstrings, -fno-constant-cfstrings
1387
1388.. option:: -fconstant-string-class=<arg>
1389
1390.. option:: -fconstexpr-backtrace-limit=<arg>
1391
1392.. option:: -fconstexpr-depth=<arg>
1393
1394.. option:: -fconstexpr-steps=<arg>
1395
1396.. option:: -fconvergent-functions
1397
1398Assume functions may be convergent
1399
1400.. option:: -fcoroutines-ts, -fno-coroutines-ts
1401
1402Enable support for the C++ Coroutines TS
1403
1404.. option:: -fcoverage-mapping, -fno-coverage-mapping
1405
1406Generate coverage mapping to enable code coverage analysis
1407
1408.. option:: -fcreate-profile
1409
1410.. option:: -fcs-profile-generate
1411
1412Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1413
1414.. program:: clang1
1415.. option:: -fcs-profile-generate=<directory>
1416.. program:: clang
1417
1418Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1419
1420.. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
1421
1422Use approximate transcendental functions
1423
1424.. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
1425
1426Use 32-bit pointers for accessing const/local/shared address spaces
1427
1428.. option:: -fcxx-exceptions, -fno-cxx-exceptions
1429
1430Enable C++ exceptions
1431
1432.. option:: -fcxx-modules, -fno-cxx-modules
1433
1434.. option:: -fdata-sections, -fno-data-sections
1435
1436Place each data in its own section
1437
1438.. option:: -fdebug-compilation-dir <arg>, -fdebug-compilation-dir=<arg>
1439
1440The compilation directory to embed in the debug info.
1441
1442.. option:: -fdebug-default-version=<arg>
1443
1444Default DWARF version to use, if a -g option caused DWARF debug info to be produced
1445
1446.. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
1447
1448Emit extra debug info to make sample profile more accurate
1449
1450.. option:: -fdebug-macro, -fno-debug-macro
1451
1452Emit macro debug information
1453
1454.. option:: -fdebug-pass-arguments
1455
1456.. option:: -fdebug-pass-structure
1457
1458.. option:: -fdebug-prefix-map=<arg>
1459
1460remap file source paths in debug info
1461
1462.. option:: -fdebug-ranges-base-address, -fno-debug-ranges-base-address
1463
1464Use DWARF base address selection entries in .debug\_ranges
1465
1466.. option:: -fdebug-types-section, -fno-debug-types-section
1467
1468Place debug types in their own section (ELF Only)
1469
1470.. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
1471
1472Parse templated function definitions at the end of the translation unit
1473
1474.. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
1475
1476Treat usage of null pointers as undefined behavior (default)
1477
1478.. option:: -fdenormal-fp-math=<arg>
1479
1480.. option:: -fdiagnostics-absolute-paths
1481
1482Print absolute paths in diagnostics
1483
1484.. option:: -fdiagnostics-color, -fno-diagnostics-color
1485
1486.. program:: clang1
1487.. option:: -fdiagnostics-color=<arg>
1488.. program:: clang
1489
1490.. option:: -fdiagnostics-hotness-threshold=<number>
1491
1492Prevent optimization remarks from being output if they do not have at least this profile count
1493
1494.. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
1495
1496Enable profile hotness information in diagnostic line
1497
1498.. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
1499
1500Display include stacks for diagnostic notes
1501
1502.. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
1503
1504Print option name with mappable diagnostics
1505
1506.. option:: -fdiagnostics-show-template-tree
1507
1508Print a template comparison tree for differing templates
1509
1510.. option:: -fdigraphs, -fno-digraphs
1511
1512Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
1513
1514.. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
1515
1516Allow '$' in identifiers
1517
1518.. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
1519
1520Enable '\[\[\]\]' attributes in all C and C++ language modes
1521
1522.. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
1523
1524.. option:: -fdwarf-exceptions
1525
1526Use DWARF style exceptions
1527
1528.. option:: -felide-constructors, -fno-elide-constructors
1529
1530.. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
1531
1532.. option:: -feliminate-unused-debug-types, -fno-eliminate-unused-debug-types
1533
1534Do not emit  debug info for defined but unused types
1535
1536.. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
1537
1538Embed LLVM bitcode (option: off, all, bitcode, marker)
1539
1540.. option:: -femit-all-decls
1541
1542Emit all declarations, even if unused
1543
1544.. option:: -femulated-tls, -fno-emulated-tls
1545
1546Use emutls functions to access thread\_local variables
1547
1548.. option:: -fenable-matrix
1549
1550Enable matrix data type and related builtin functions
1551
1552.. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
1553
1554.. option:: -ferror-limit=<arg>
1555
1556.. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
1557
1558.. option:: -fexceptions, -fno-exceptions
1559
1560Enable support for exception handling
1561
1562.. option:: -fexec-charset=<arg>
1563
1564.. option:: -fexperimental-new-constant-interpreter
1565
1566Enable the experimental new constant interpreter
1567
1568.. option:: -fexperimental-relative-c++-abi-vtables, -fno-experimental-relative-c++-abi-vtables
1569
1570Use the experimental C++ class ABI for classes with virtual tables
1571
1572.. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
1573
1574.. option:: -ffast-math, -fno-fast-math
1575
1576Allow aggressive, lossy floating-point optimizations
1577
1578.. option:: -ffile-prefix-map=<arg>
1579
1580remap file source paths in debug info and predefined preprocessor macros
1581
1582.. option:: -ffinite-math-only, -fno-finite-math-only
1583
1584.. option:: -ffixed-point, -fno-fixed-point
1585
1586Enable fixed point types
1587
1588.. option:: -ffor-scope, -fno-for-scope
1589
1590.. option:: -fforce-dwarf-frame, -fno-force-dwarf-frame
1591
1592Always emit a debug frame section
1593
1594.. option:: -fforce-emit-vtables, -fno-force-emit-vtables
1595
1596Emits more virtual tables to improve devirtualization
1597
1598.. option:: -fforce-enable-int128, -fno-force-enable-int128
1599
1600Enable support for int128\_t type
1601
1602.. option:: -ffp-contract=<arg>
1603
1604Form fused FP ops (e.g. FMAs): fast (everywhere) \| on (according to FP\_CONTRACT pragma) \| off (never fuse). Default is 'fast' for CUDA/HIP and 'on' otherwise.
1605
1606.. option:: -ffp-exception-behavior=<arg>
1607
1608Specifies the exception behavior of floating-point operations.
1609
1610.. option:: -ffp-model=<arg>
1611
1612Controls the semantics of floating-point calculations.
1613
1614.. option:: -ffreestanding
1615
1616Assert that the compilation takes place in a freestanding environment
1617
1618.. option:: -ffunction-sections, -fno-function-sections
1619
1620Place each function in its own section
1621
1622.. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
1623
1624.. option:: -fgnu-keywords, -fno-gnu-keywords
1625
1626Allow GNU-extension keywords regardless of language standard
1627
1628.. option:: -fgnu-runtime
1629
1630Generate output compatible with the standard GNU Objective-C runtime
1631
1632.. option:: -fgnu89-inline, -fno-gnu89-inline
1633
1634Use the gnu89 inline semantics
1635
1636.. option:: -fgnuc-version=<arg>
1637
1638Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
1639
1640.. option:: -fgpu-allow-device-init, -fno-gpu-allow-device-init
1641
1642Allow device side init function in HIP
1643
1644.. option:: -fgpu-defer-diag, -fno-gpu-defer-diag
1645
1646Defer host/device related diagnostic messages for CUDA/HIP
1647
1648.. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
1649
1650Generate relocatable device code, also known as separate compilation mode
1651
1652.. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
1653
1654Use new kernel launching API for HIP
1655
1656.. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1657
1658.. option:: -fhonor-nans, -fno-honor-nans
1659
1660.. option:: -fhosted
1661
1662.. option:: -fignore-exceptions
1663
1664Enable support for ignoring exception handling constructs
1665
1666.. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1667
1668Implicitly search the file system for module map files.
1669
1670.. option:: -fimplicit-modules, -fno-implicit-modules
1671
1672.. option:: -finput-charset=<arg>
1673
1674.. option:: -finstrument-function-entry-bare
1675
1676Instrument function entry only, after inlining, without arguments to the instrumentation call
1677
1678.. option:: -finstrument-functions
1679
1680Generate calls to instrument function entry and exit
1681
1682.. option:: -finstrument-functions-after-inlining
1683
1684Like -finstrument-functions, but insert the calls after inlining
1685
1686.. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1687
1688Enable the integrated assembler
1689
1690.. option:: -fintegrated-cc1, -fno-integrated-cc1
1691
1692Run cc1 in-process
1693
1694.. option:: -fjump-tables, -fno-jump-tables
1695
1696Use jump tables for lowering switches
1697
1698.. option:: -fkeep-static-consts, -fno-keep-static-consts
1699
1700Keep static const variables if unused
1701
1702.. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
1703
1704Enable implicit vector bit-casts
1705
1706.. option:: -flimited-precision=<arg>
1707
1708.. option:: -flto, -fno-lto
1709
1710Enable LTO in 'full' mode
1711
1712.. option:: -flto-jobs=<arg>
1713
1714Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1715
1716.. program:: clang1
1717.. option:: -flto=<arg>
1718.. program:: clang
1719
1720Set LTO mode to either 'full' or 'thin'
1721
1722.. option:: -fmacro-backtrace-limit=<arg>
1723
1724.. option:: -fmath-errno, -fno-math-errno
1725
1726Require math functions to indicate errors by setting errno
1727
1728.. option:: -fmax-tokens=<arg>
1729
1730Max total number of preprocessed tokens for -Wmax-tokens.
1731
1732.. option:: -fmax-type-align=<arg>
1733
1734Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1735
1736.. option:: -fmemory-profile, -fno-memory-profile
1737
1738Enable heap memory profiling
1739
1740.. option:: -fmerge-all-constants, -fno-merge-all-constants
1741
1742Allow merging of constants
1743
1744.. option:: -fmessage-length=<arg>
1745
1746Format message diagnostics so that they fit within N columns
1747
1748.. option:: -fmodule-file-deps, -fno-module-file-deps
1749
1750.. option:: -fmodule-map-file=<file>
1751
1752Load this module map file
1753
1754.. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
1755
1756Specify the name of the module to build
1757
1758.. option:: -fmodules, -fno-modules
1759
1760Enable the 'modules' language feature
1761
1762.. option:: -fmodules-decluse, -fno-modules-decluse
1763
1764Require declaration of modules used within a module
1765
1766.. option:: -fmodules-ignore-macro=<arg>
1767
1768Ignore the definition of the given macro when building and loading modules
1769
1770.. option:: -fmodules-search-all, -fno-modules-search-all
1771
1772Search even non-imported modules to resolve references
1773
1774.. option:: -fmodules-strict-decluse
1775
1776Like -fmodules-decluse but requires all headers to be in modules
1777
1778.. option:: -fmodules-ts
1779
1780Enable support for the C++ Modules TS
1781
1782.. option:: -fmodules-validate-input-files-content
1783
1784Validate PCM input files based on content if mtime differs
1785
1786.. option:: -fms-compatibility, -fno-ms-compatibility
1787
1788Enable full Microsoft Visual C++ compatibility
1789
1790.. option:: -fms-compatibility-version=<arg>
1791
1792Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1793
1794.. option:: -fms-extensions, -fno-ms-extensions
1795
1796Accept some non-standard constructs supported by the Microsoft compiler
1797
1798.. option:: -fms-memptr-rep=<arg>
1799
1800.. option:: -fms-volatile
1801
1802.. option:: -fmsc-version=<arg>
1803
1804Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1805
1806.. option:: -fmudflap
1807
1808.. option:: -fmudflapth
1809
1810.. option:: -fnested-functions
1811
1812.. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
1813
1814Specifies the largest alignment guaranteed by '::operator new(size\_t)'
1815
1816.. option:: -fnext-runtime
1817
1818.. option:: -fno-access-control, -fno-no-access-control
1819
1820.. option:: -fno-builtin-<arg>
1821
1822Disable implicit builtin knowledge of a specific function
1823
1824.. option:: -fno-elide-type
1825
1826Do not elide types when printing diagnostics
1827
1828.. option:: -fno-max-type-align
1829
1830.. option:: -fno-operator-names
1831
1832Do not treat C++ operator name keywords as synonyms for operators
1833
1834.. option:: -fno-strict-modules-decluse
1835
1836.. option:: -fno-temp-file
1837
1838Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
1839
1840.. option:: -fno-working-directory
1841
1842.. option:: -fno\_modules-validate-input-files-content
1843
1844.. program:: clang1
1845.. option:: -fno\_pch-validate-input-files-content
1846.. program:: clang
1847
1848.. option:: -fnoxray-link-deps
1849
1850.. option:: -fobjc-abi-version=<arg>
1851
1852.. option:: -fobjc-arc, -fno-objc-arc
1853
1854Synthesize retain and release calls for Objective-C pointers
1855
1856.. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
1857
1858Use EH-safe code when synthesizing retains and releases in -fobjc-arc
1859
1860.. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
1861
1862.. option:: -fobjc-exceptions, -fno-objc-exceptions
1863
1864Enable Objective-C exceptions
1865
1866.. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
1867
1868.. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
1869
1870.. option:: -fobjc-link-runtime
1871
1872.. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
1873
1874.. option:: -fobjc-nonfragile-abi-version=<arg>
1875
1876.. option:: -fobjc-runtime=<arg>
1877
1878Specify the target Objective-C runtime kind and version
1879
1880.. option:: -fobjc-sender-dependent-dispatch
1881
1882.. option:: -fobjc-weak, -fno-objc-weak
1883
1884Enable ARC-style weak references in Objective-C
1885
1886.. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
1887
1888.. option:: -fopenmp, -fno-openmp
1889
1890Parse OpenMP pragmas and generate parallel code.
1891
1892.. option:: -fopenmp-simd, -fno-openmp-simd
1893
1894Emit OpenMP code only for SIMD-based constructs.
1895
1896.. option:: -fopenmp-version=<arg>
1897
1898.. program:: clang1
1899.. option:: -fopenmp=<arg>
1900.. program:: clang
1901
1902.. option:: -foperator-arrow-depth=<arg>
1903
1904.. option:: -foptimization-record-file=<file>
1905
1906Specify 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.
1907
1908.. option:: -foptimization-record-passes=<regex>
1909
1910Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
1911
1912.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1913
1914.. option:: -forder-file-instrumentation
1915
1916Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1917
1918.. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1919
1920.. option:: -fpack-struct, -fno-pack-struct
1921
1922.. program:: clang1
1923.. option:: -fpack-struct=<arg>
1924.. program:: clang
1925
1926Specify the default maximum struct packing alignment
1927
1928.. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1929
1930Recognize and construct Pascal-style string literals
1931
1932.. option:: -fpass-plugin=<dsopath>
1933
1934Load pass plugin from a dynamic shared object file (only with new pass manager).
1935
1936.. option:: -fpatchable-function-entry=<N,M>
1937
1938Generate M NOPs before function entry and N-M NOPs after function entry
1939
1940.. option:: -fpcc-struct-return
1941
1942Override the default ABI to return all structs on the stack
1943
1944.. option:: -fpch-codegen, -fno-pch-codegen
1945
1946Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
1947
1948.. option:: -fpch-debuginfo, -fno-pch-debuginfo
1949
1950Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
1951
1952.. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
1953
1954Instantiate templates already while building a PCH
1955
1956.. option:: -fpch-preprocess
1957
1958.. option:: -fpch-validate-input-files-content
1959
1960Validate PCH input files based on content if mtime differs
1961
1962.. option:: -fpic, -fno-pic
1963
1964.. option:: -fpie, -fno-pie
1965
1966.. option:: -fplt, -fno-plt
1967
1968.. option:: -fplugin=<dsopath>
1969
1970Load the named plugin (dynamic shared object)
1971
1972.. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1973
1974.. option:: -fprofile-arcs, -fno-profile-arcs
1975
1976.. option:: -fprofile-dir=<arg>
1977
1978.. option:: -fprofile-exclude-files=<arg>
1979
1980Instrument only functions from files where names don't match all the regexes separated by a semi-colon
1981
1982.. option:: -fprofile-filter-files=<arg>
1983
1984Instrument only functions from files where names match any regex separated by a semi-colon
1985
1986.. option:: -fprofile-generate, -fno-profile-generate
1987
1988Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1989
1990.. program:: clang1
1991.. option:: -fprofile-generate=<directory>
1992.. program:: clang
1993
1994Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1995
1996.. option:: -fprofile-instr-generate, -fno-profile-instr-generate
1997
1998Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1999
2000.. program:: clang1
2001.. option:: -fprofile-instr-generate=<file>
2002.. program:: clang
2003
2004Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
2005
2006.. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
2007
2008.. program:: clang1
2009.. option:: -fprofile-instr-use=<arg>
2010.. program:: clang
2011
2012Use instrumentation data for profile-guided optimization
2013
2014.. option:: -fprofile-remapping-file=<file>, -fprofile-remapping-file <arg>
2015
2016Use the remappings described in <file> to match the profile data against names in the program
2017
2018.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
2019
2020Specifies that the sample profile is accurate. If the sample
2021               profile is accurate, callsites without profile samples are marked
2022               as cold. Otherwise, treat callsites without profile samples as if
2023               we have no profile
2024
2025.. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
2026
2027.. program:: clang1
2028.. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
2029.. program:: clang
2030
2031Enable sample-based profile guided optimizations
2032
2033.. option:: -fprofile-update=<method>
2034
2035Set update method of profile counters (atomic,prefer-atomic,single)
2036
2037.. program:: clang1
2038.. option:: -fprofile-use=<pathname>
2039.. program:: clang
2040
2041Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
2042
2043.. option:: -freciprocal-math, -fno-reciprocal-math
2044
2045Allow division operations to be reassociated
2046
2047.. option:: -freg-struct-return
2048
2049Override the default ABI to return small structs in registers
2050
2051.. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
2052
2053Use atexit or \_\_cxa\_atexit to register global destructors
2054
2055.. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
2056
2057Enable C++17 relaxed template template argument matching
2058
2059.. option:: -freroll-loops, -fno-reroll-loops
2060
2061Turn on loop reroller
2062
2063.. option:: -fretain-comments-from-system-headers
2064
2065.. option:: -frewrite-imports, -fno-rewrite-imports
2066
2067.. option:: -frewrite-includes, -fno-rewrite-includes
2068
2069.. option:: -frewrite-map-file <arg>
2070
2071.. program:: clang1
2072.. option:: -frewrite-map-file=<arg>
2073.. program:: clang
2074
2075.. option:: -fropi, -fno-ropi
2076
2077Generate read-only position independent code (ARM only)
2078
2079.. option:: -frounding-math, -fno-rounding-math
2080
2081.. option:: -frtti, -fno-rtti
2082
2083.. option:: -frtti-data, -fno-rtti-data
2084
2085.. option:: -frwpi, -fno-rwpi
2086
2087Generate read-write position independent code (ARM only)
2088
2089.. option:: -fsave-optimization-record, -fno-save-optimization-record
2090
2091Generate a YAML optimization record file
2092
2093.. program:: clang1
2094.. option:: -fsave-optimization-record=<format>
2095.. program:: clang
2096
2097Generate an optimization record file in a specific format
2098
2099.. option:: -fseh-exceptions
2100
2101Use SEH style exceptions
2102
2103.. option:: -fsemantic-interposition, -fno-semantic-interposition
2104
2105.. option:: -fshort-enums, -fno-short-enums
2106
2107Allocate to an enum type only as many bytes as it needs for the declared range of possible values
2108
2109.. option:: -fshort-wchar, -fno-short-wchar
2110
2111Force wchar\_t to be a short unsigned int
2112
2113.. option:: -fshow-column, -fno-show-column
2114
2115.. option:: -fshow-overloads=<arg>
2116
2117Which overload candidates to show when overload resolution fails: best\|all; defaults to all
2118
2119.. option:: -fshow-source-location, -fno-show-source-location
2120
2121.. option:: -fsignaling-math, -fno-signaling-math
2122
2123.. option:: -fsigned-bitfields
2124
2125.. option:: -fsigned-char, -fno-signed-char, --signed-char
2126
2127char is signed
2128
2129.. option:: -fsigned-zeros, -fno-signed-zeros
2130
2131.. option:: -fsized-deallocation, -fno-sized-deallocation
2132
2133Enable C++14 sized global deallocation functions
2134
2135.. option:: -fsjlj-exceptions
2136
2137Use SjLj style exceptions
2138
2139.. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
2140
2141Enable the superword-level parallelism vectorization passes
2142
2143.. option:: -fspell-checking, -fno-spell-checking
2144
2145.. option:: -fspell-checking-limit=<arg>
2146
2147.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
2148
2149Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
2150
2151.. option:: -fsplit-lto-unit, -fno-split-lto-unit
2152
2153Enables splitting of the LTO unit
2154
2155.. option:: -fsplit-machine-functions, -fno-split-machine-functions
2156
2157Enable late function splitting using profile information (x86 ELF)
2158
2159.. option:: -fsplit-stack
2160
2161.. option:: -fstack-clash-protection, -fno-stack-clash-protection
2162
2163Enable stack clash protection
2164
2165.. option:: -fstack-protector, -fno-stack-protector
2166
2167Enable 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.
2168
2169.. option:: -fstack-protector-all
2170
2171Enable stack protectors for all functions
2172
2173.. option:: -fstack-protector-strong
2174
2175Enable 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
2176
2177.. option:: -fstack-size-section, -fno-stack-size-section
2178
2179Emit section containing metadata on function stack sizes
2180
2181.. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
2182
2183Emit full debug info for all types used by the program
2184
2185.. option:: -fstrict-aliasing, -fno-strict-aliasing
2186
2187.. option:: -fstrict-enums, -fno-strict-enums
2188
2189Enable optimizations based on the strict definition of an enum's value range
2190
2191.. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
2192
2193Assume that overflowing float-to-int casts are undefined (default)
2194
2195.. option:: -fstrict-overflow, -fno-strict-overflow
2196
2197.. option:: -fstrict-return, -fno-strict-return
2198
2199.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
2200
2201Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
2202
2203.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
2204
2205.. option:: -fsymbol-partition=<arg>
2206
2207.. option:: -ftabstop=<arg>
2208
2209.. option:: -ftemplate-backtrace-limit=<arg>
2210
2211.. option:: -ftemplate-depth-<arg>
2212
2213.. option:: -ftemplate-depth=<arg>
2214
2215.. option:: -ftest-coverage, -fno-test-coverage
2216
2217.. option:: -fthin-link-bitcode=<arg>
2218
2219Write minimized bitcode to <file> for the ThinLTO thin link only
2220
2221.. option:: -fthinlto-index=<arg>
2222
2223Perform ThinLTO importing using provided function summary index
2224
2225.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
2226
2227.. option:: -ftime-report
2228
2229.. option:: -ftime-trace
2230
2231
2232Turn on time profiler. Generates JSON file based on output filename. Results
2233can be analyzed with chrome://tracing or `Speedscope App
2234<https://www.speedscope.app>`_ for flamegraph visualization.
2235
2236.. option:: -ftime-trace-granularity=<arg>
2237
2238Minimum time granularity (in microseconds) traced by time profiler
2239
2240.. option:: -ftls-model=<arg>
2241
2242.. option:: -ftrap-function=<arg>
2243
2244Issue call to specified function rather than a trap instruction
2245
2246.. option:: -ftrapping-math, -fno-trapping-math
2247
2248.. option:: -ftrapv
2249
2250Trap on integer overflow
2251
2252.. option:: -ftrapv-handler <arg>
2253
2254.. program:: clang1
2255.. option:: -ftrapv-handler=<function name>
2256.. program:: clang
2257
2258Specify the function to be called on overflow
2259
2260.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
2261
2262Process trigraph sequences
2263
2264.. option:: -ftrivial-auto-var-init-stop-after=<arg>
2265
2266Stop initializing trivial automatic stack variables after the specified number of instances
2267
2268.. option:: -ftrivial-auto-var-init=<arg>
2269
2270Initialize trivial automatic stack variables: uninitialized (default) \| pattern
2271
2272.. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
2273
2274Use unique names for basic block sections (ELF Only)
2275
2276.. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
2277
2278Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
2279
2280.. option:: -funique-section-names, -fno-unique-section-names
2281
2282.. option:: -funit-at-a-time, -fno-unit-at-a-time
2283
2284.. option:: -funroll-loops, -fno-unroll-loops
2285
2286Turn on loop unroller
2287
2288.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2289
2290.. option:: -funsigned-bitfields
2291
2292.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2293
2294.. option:: -funwind-tables, -fno-unwind-tables
2295
2296.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2297
2298.. option:: -fuse-init-array, -fno-use-init-array
2299
2300.. option:: -fuse-ld=<arg>
2301
2302.. option:: -fuse-line-directives, -fno-use-line-directives
2303
2304Use #line in preprocessed output
2305
2306.. option:: -fvalidate-ast-input-files-content
2307
2308Compute 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
2309
2310.. option:: -fveclib=<arg>
2311
2312Use the given vector functions library
2313
2314.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2315
2316Enable the loop vectorization passes
2317
2318.. option:: -fverbose-asm, -dA, -fno-verbose-asm
2319
2320Generate verbose assembly output
2321
2322.. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
2323
2324Enables dead virtual function elimination optimization. Requires -flto=full
2325
2326.. option:: -fvisibility-global-new-delete-hidden
2327
2328Give global C++ operator new and delete declarations hidden visibility
2329
2330.. option:: -fvisibility-inlines-hidden
2331
2332Give inline C++ member functions hidden visibility by default
2333
2334.. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
2335
2336When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
2337
2338.. option:: -fvisibility-ms-compat
2339
2340Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2341
2342.. option:: -fvisibility=<arg>
2343
2344Set the default symbol visibility for all global declarations
2345
2346.. option:: -fwasm-exceptions
2347
2348Use WebAssembly style exceptions
2349
2350.. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2351
2352Enables whole-program vtable optimization. Requires -flto
2353
2354.. option:: -fwrapv, -fno-wrapv
2355
2356Treat signed integer overflow as two's complement
2357
2358.. option:: -fwritable-strings
2359
2360Store string literals as writable data
2361
2362.. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2363
2364Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
2365
2366.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2367
2368Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
2369
2370.. option:: -fxray-always-instrument=<arg>
2371
2372DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2373
2374.. option:: -fxray-attr-list=<arg>
2375
2376Filename defining the list of functions/types for imbuing XRay attributes.
2377
2378.. option:: -fxray-function-groups=<arg>
2379
2380Only instrument 1 of N groups
2381
2382.. option:: -fxray-function-index, -fno-xray-function-index
2383
2384.. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
2385
2386Don't instrument functions with loops unless they also meet the minimum function size
2387
2388.. option:: -fxray-instruction-threshold<arg>
2389
2390.. program:: clang1
2391.. option:: -fxray-instruction-threshold=<arg>
2392.. program:: clang
2393
2394Sets the minimum function size to instrument with XRay
2395
2396.. option:: -fxray-instrument, -fno-xray-instrument
2397
2398Generate XRay instrumentation sleds on function entry and exit
2399
2400.. option:: -fxray-instrumentation-bundle=<arg>
2401
2402Select 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'.
2403
2404.. option:: -fxray-link-deps
2405
2406Tells clang to add the link dependencies for XRay.
2407
2408.. option:: -fxray-modes=<arg>
2409
2410List of modes to link in by default into XRay instrumented binaries.
2411
2412.. option:: -fxray-never-instrument=<arg>
2413
2414DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2415
2416.. option:: -fxray-selected-function-group=<arg>
2417
2418When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
2419
2420.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2421
2422.. option:: -fzvector, -fno-zvector, -mzvector
2423
2424Enable System z vector language extension
2425
2426.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2427
2428.. option:: -pedantic-errors, --pedantic-errors
2429
2430OpenCL flags
2431------------
2432.. option:: -cl-denorms-are-zero
2433
2434OpenCL only. Allow denormals to be flushed to zero.
2435
2436.. option:: -cl-fast-relaxed-math
2437
2438OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2439
2440.. option:: -cl-finite-math-only
2441
2442OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2443
2444.. option:: -cl-fp32-correctly-rounded-divide-sqrt
2445
2446OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2447
2448.. option:: -cl-kernel-arg-info
2449
2450OpenCL only. Generate kernel argument metadata.
2451
2452.. option:: -cl-mad-enable
2453
2454OpenCL only. Allow use of less precise MAD computations in the generated binary.
2455
2456.. option:: -cl-no-signed-zeros
2457
2458OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2459
2460.. option:: -cl-opt-disable
2461
2462OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2463
2464.. option:: -cl-single-precision-constant
2465
2466OpenCL only. Treat double precision floating-point constant as single precision constant.
2467
2468.. option:: -cl-std=<arg>
2469
2470OpenCL language standard to compile for.
2471
2472.. option:: -cl-strict-aliasing
2473
2474OpenCL only. This option is added for compatibility with OpenCL 1.0.
2475
2476.. option:: -cl-uniform-work-group-size
2477
2478OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2479
2480.. option:: -cl-unsafe-math-optimizations
2481
2482OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2483
2484SYCL flags
2485----------
2486.. option:: -fsycl, -fno-sycl
2487
2488Enable SYCL kernels compilation for device
2489
2490.. option:: -sycl-std=<arg>
2491
2492SYCL language standard to compile for.
2493
2494Target-dependent compilation options
2495~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2496.. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
2497
2498Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2499
2500.. option:: -ffixed-x1
2501
2502Reserve the x1 register (AArch64/RISC-V only)
2503
2504.. option:: -ffixed-x10
2505
2506Reserve the x10 register (AArch64/RISC-V only)
2507
2508.. option:: -ffixed-x11
2509
2510Reserve the x11 register (AArch64/RISC-V only)
2511
2512.. option:: -ffixed-x12
2513
2514Reserve the x12 register (AArch64/RISC-V only)
2515
2516.. option:: -ffixed-x13
2517
2518Reserve the x13 register (AArch64/RISC-V only)
2519
2520.. option:: -ffixed-x14
2521
2522Reserve the x14 register (AArch64/RISC-V only)
2523
2524.. option:: -ffixed-x15
2525
2526Reserve the x15 register (AArch64/RISC-V only)
2527
2528.. option:: -ffixed-x16
2529
2530Reserve the x16 register (AArch64/RISC-V only)
2531
2532.. option:: -ffixed-x17
2533
2534Reserve the x17 register (AArch64/RISC-V only)
2535
2536.. option:: -ffixed-x18
2537
2538Reserve the x18 register (AArch64/RISC-V only)
2539
2540.. option:: -ffixed-x19
2541
2542Reserve the x19 register (AArch64/RISC-V only)
2543
2544.. option:: -ffixed-x2
2545
2546Reserve the x2 register (AArch64/RISC-V only)
2547
2548.. option:: -ffixed-x20
2549
2550Reserve the x20 register (AArch64/RISC-V only)
2551
2552.. option:: -ffixed-x21
2553
2554Reserve the x21 register (AArch64/RISC-V only)
2555
2556.. option:: -ffixed-x22
2557
2558Reserve the x22 register (AArch64/RISC-V only)
2559
2560.. option:: -ffixed-x23
2561
2562Reserve the x23 register (AArch64/RISC-V only)
2563
2564.. option:: -ffixed-x24
2565
2566Reserve the x24 register (AArch64/RISC-V only)
2567
2568.. option:: -ffixed-x25
2569
2570Reserve the x25 register (AArch64/RISC-V only)
2571
2572.. option:: -ffixed-x26
2573
2574Reserve the x26 register (AArch64/RISC-V only)
2575
2576.. option:: -ffixed-x27
2577
2578Reserve the x27 register (AArch64/RISC-V only)
2579
2580.. option:: -ffixed-x28
2581
2582Reserve the x28 register (AArch64/RISC-V only)
2583
2584.. option:: -ffixed-x29
2585
2586Reserve the x29 register (AArch64/RISC-V only)
2587
2588.. option:: -ffixed-x3
2589
2590Reserve the x3 register (AArch64/RISC-V only)
2591
2592.. option:: -ffixed-x30
2593
2594Reserve the x30 register (AArch64/RISC-V only)
2595
2596.. option:: -ffixed-x31
2597
2598Reserve the x31 register (AArch64/RISC-V only)
2599
2600.. option:: -ffixed-x4
2601
2602Reserve the x4 register (AArch64/RISC-V only)
2603
2604.. option:: -ffixed-x5
2605
2606Reserve the x5 register (AArch64/RISC-V only)
2607
2608.. option:: -ffixed-x6
2609
2610Reserve the x6 register (AArch64/RISC-V only)
2611
2612.. option:: -ffixed-x7
2613
2614Reserve the x7 register (AArch64/RISC-V only)
2615
2616.. option:: -ffixed-x8
2617
2618Reserve the x8 register (AArch64/RISC-V only)
2619
2620.. option:: -ffixed-x9
2621
2622Reserve the x9 register (AArch64/RISC-V only)
2623
2624.. option:: -m16
2625
2626.. option:: -m32
2627
2628.. option:: -m64
2629
2630.. option:: -mabi=<arg>
2631
2632.. option:: -maix-struct-return
2633
2634Return all structs in memory (PPC32 only)
2635
2636.. option:: -malign-branch-boundary=<arg>
2637
2638Specify the boundary's size to align branches
2639
2640.. option:: -malign-branch=<arg1>,<arg2>...
2641
2642Specify types of branches to align
2643
2644.. option:: -malign-double
2645
2646Align doubles to two words in structs (x86 only)
2647
2648.. option:: -march=<arg>
2649
2650.. option:: -masm=<arg>
2651
2652.. option:: -mbackchain, -mno-backchain
2653
2654Link stack frames through backchain on System Z
2655
2656.. option:: -mbranches-within-32B-boundaries
2657
2658Align selected branches (fused, jcc, jmp) within 32-byte boundary
2659
2660.. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
2661
2662.. option:: -mcode-object-v3, -mno-code-object-v3
2663
2664Legacy option to specify code object ABI V2 (-mnocode-object-v3) or V3 (-mcode-object-v3) (AMDGPU only)
2665
2666.. option:: -mconsole<arg>
2667
2668.. program:: clang1
2669.. 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)
2670.. program:: clang
2671
2672.. option:: -mcrc, -mno-crc
2673
2674Allow use of CRC instructions (ARM/Mips only)
2675
2676.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2677
2678.. option:: -mdll<arg>
2679
2680.. option:: -mdouble=<arg>
2681
2682Force double to be 32 bits or 64 bits
2683
2684.. option:: -mdynamic-no-pic<arg>
2685
2686.. option:: -meabi <arg>
2687
2688Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2689
2690.. option:: -menable-experimental-extensions
2691
2692Enable use of experimental RISC-V extensions.
2693
2694.. option:: -mfentry
2695
2696Insert calls to fentry at function entry (x86/SystemZ only)
2697
2698.. option:: -mfloat-abi=<arg>
2699
2700.. option:: -mfpmath=<arg>
2701
2702.. option:: -mfpu=<arg>
2703
2704.. option:: -mglobal-merge, -mno-global-merge
2705
2706Enable merging of globals
2707
2708.. option:: -mhard-float
2709
2710.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2711
2712.. option:: -mhwmult=<arg>
2713
2714.. option:: -miamcu, -mno-iamcu
2715
2716Use Intel MCU ABI
2717
2718.. option:: -mignore-xcoff-visibility
2719
2720Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
2721
2722.. option:: -mimplicit-float, -mno-implicit-float
2723
2724.. option:: -mimplicit-it=<arg>
2725
2726.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2727
2728(integrated-as) Emit an object file which can be used with an incremental linker
2729
2730.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2731
2732.. option:: -mkernel
2733
2734.. option:: -mlong-calls, -mno-long-calls
2735
2736Generate branches with extended addressability, usually via indirect jumps.
2737
2738.. option:: -mlvi-cfi, -mno-lvi-cfi
2739
2740Enable only control-flow mitigations for Load Value Injection (LVI)
2741
2742.. option:: -mlvi-hardening, -mno-lvi-hardening
2743
2744Enable all mitigations for Load Value Injection (LVI)
2745
2746.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2747
2748Set Mac OS X deployment target
2749
2750.. option:: -mmcu=<arg>
2751
2752.. option:: -mms-bitfields, -mno-ms-bitfields
2753
2754Set the default structure layout to be compatible with the Microsoft compiler standard
2755
2756.. option:: -mnop-mcount
2757
2758Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
2759
2760.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2761
2762Omit frame pointer setup for leaf functions
2763
2764.. option:: -moslib=<arg>
2765
2766.. option:: -mpacked-stack, -mno-packed-stack
2767
2768Use packed stack layout (SystemZ only).
2769
2770.. option:: -mpad-max-prefix-size=<arg>
2771
2772Specify maximum number of prefixes to use for padding
2773
2774.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2775
2776Use copy relocations support for PIE builds
2777
2778.. option:: -mprefer-vector-width=<arg>
2779
2780Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2781
2782.. option:: -mqdsp6-compat
2783
2784Enable hexagon-qdsp6 backward compatibility
2785
2786.. option:: -mrecip
2787
2788.. program:: clang1
2789.. option:: -mrecip=<arg1>,<arg2>...
2790.. program:: clang
2791
2792.. option:: -mrecord-mcount
2793
2794Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
2795
2796.. option:: -mred-zone, -mno-red-zone
2797
2798.. option:: -mregparm=<arg>
2799
2800.. option:: -mrelax, -mno-relax
2801
2802Enable linker relaxation
2803
2804.. option:: -mrelax-all, -mno-relax-all
2805
2806(integrated-as) Relax all machine instructions
2807
2808.. option:: -mretpoline, -mno-retpoline
2809
2810.. option:: -mrtd, -mno-rtd
2811
2812Make StdCall calling convention the default
2813
2814.. option:: -mseses, -mno-seses
2815
2816Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
2817
2818.. option:: -msign-return-address=<arg>
2819
2820Select return address signing scope
2821
2822.. option:: -msim
2823
2824.. option:: -msoft-float, -mno-soft-float
2825
2826Use software floating point
2827
2828.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
2829
2830.. option:: -mstack-alignment=<arg>
2831
2832Set the stack alignment
2833
2834.. option:: -mstack-arg-probe, -mno-stack-arg-probe
2835
2836Enable stack probes
2837
2838.. option:: -mstack-probe-size=<arg>
2839
2840Set the stack probe size
2841
2842.. option:: -mstack-protector-guard-offset=<arg>
2843
2844Use the given offset for addressing the stack-protector guard
2845
2846.. option:: -mstack-protector-guard-reg=<arg>
2847
2848Use the given reg for addressing the stack-protector guard
2849
2850.. option:: -mstack-protector-guard=<arg>
2851
2852Use the given guard (global, tls) for addressing the stack-protector guard
2853
2854.. option:: -mstackrealign, -mno-stackrealign
2855
2856Force realign the stack at entry to every function
2857
2858.. option:: -msvr4-struct-return
2859
2860Return small structs in registers (PPC32 only)
2861
2862.. option:: -mthread-model <arg>
2863
2864The thread model to use, e.g. posix, single (posix by default)
2865
2866.. option:: -mthreads<arg>
2867
2868.. option:: -mthumb, -mno-thumb
2869
2870.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
2871
2872Enable direct TLS access through segment registers (default)
2873
2874.. option:: -mtls-size=<arg>
2875
2876Specify 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)
2877
2878.. program:: clang1
2879.. option:: -mtune=<arg>
2880.. program:: clang
2881
2882Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.
2883
2884.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2885
2886.. option:: -municode<arg>
2887
2888.. option:: -mvx, -mno-vx
2889
2890.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2891
2892.. option:: -mwatchos-version-min=<arg>
2893
2894.. option:: -mwavefrontsize64, -mno-wavefrontsize64
2895
2896Specify wavefront size 64 mode (AMDGPU only)
2897
2898.. option:: -mwindows<arg>
2899
2900.. option:: -mx32
2901
2902AARCH64
2903-------
2904.. option:: -fcall-saved-x10
2905
2906Make the x10 register call-saved (AArch64 only)
2907
2908.. option:: -fcall-saved-x11
2909
2910Make the x11 register call-saved (AArch64 only)
2911
2912.. option:: -fcall-saved-x12
2913
2914Make the x12 register call-saved (AArch64 only)
2915
2916.. option:: -fcall-saved-x13
2917
2918Make the x13 register call-saved (AArch64 only)
2919
2920.. option:: -fcall-saved-x14
2921
2922Make the x14 register call-saved (AArch64 only)
2923
2924.. option:: -fcall-saved-x15
2925
2926Make the x15 register call-saved (AArch64 only)
2927
2928.. option:: -fcall-saved-x18
2929
2930Make the x18 register call-saved (AArch64 only)
2931
2932.. option:: -fcall-saved-x8
2933
2934Make the x8 register call-saved (AArch64 only)
2935
2936.. option:: -fcall-saved-x9
2937
2938Make the x9 register call-saved (AArch64 only)
2939
2940.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2941
2942Workaround Cortex-A53 erratum 835769 (AArch64 only)
2943
2944.. option:: -mgeneral-regs-only
2945
2946Generate code which only uses the general purpose registers (AArch64 only)
2947
2948.. option:: -mmark-bti-property
2949
2950Add .note.gnu.property with BTI to assembly files (AArch64 only)
2951
2952.. option:: -msve-vector-bits=<arg>
2953
2954Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
2955
2956AMDGPU
2957------
2958.. option:: -mcumode, -mno-cumode
2959
2960Specify CU (-mcumode) or WGP (-mno-cumode) wavefront execution mode (AMDGPU only)
2961
2962.. option:: -msram-ecc, -mno-sram-ecc
2963
2964Specify SRAM ECC mode (AMDGPU only)
2965
2966.. option:: -mxnack, -mno-xnack
2967
2968Specify XNACK mode (AMDGPU only)
2969
2970ARM
2971---
2972.. option:: -faapcs-bitfield-load
2973
2974Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
2975
2976.. option:: -faapcs-bitfield-width, -fno-aapcs-bitfield-width
2977
2978Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only).
2979
2980.. option:: -ffixed-r9
2981
2982Reserve the r9 register (ARM only)
2983
2984.. option:: -mcmse
2985
2986Allow use of CMSE (Armv8-M Security Extensions)
2987
2988.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2989
2990Disallow generation of data access to code sections (ARM only)
2991
2992.. option:: -mno-movt
2993
2994Disallow use of movt/movw pairs (ARM only)
2995
2996.. option:: -mno-neg-immediates
2997
2998Disallow converting instructions with negative immediates to their negation or inversion.
2999
3000.. option:: -mnocrc
3001
3002Disallow use of CRC instructions (ARM only)
3003
3004.. option:: -mrestrict-it, -mno-restrict-it
3005
3006Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
3007
3008.. option:: -mtp=<arg>
3009
3010Thread pointer access method (AArch32/AArch64 only)
3011
3012.. option:: -munaligned-access, -mno-unaligned-access
3013
3014Allow memory accesses to be unaligned (AArch32/AArch64 only)
3015
3016Hexagon
3017-------
3018.. option:: -mieee-rnd-near
3019
3020.. option:: -mmemops, -mno-memops
3021
3022Enable generation of memop instructions
3023
3024.. option:: -mnvj, -mno-nvj
3025
3026Enable generation of new-value jumps
3027
3028.. option:: -mnvs, -mno-nvs
3029
3030Enable generation of new-value stores
3031
3032.. option:: -mpackets, -mno-packets
3033
3034Enable generation of instruction packets
3035
3036Hexagon
3037-------
3038.. option:: -mhvx, -mno-hvx
3039
3040Enable Hexagon Vector eXtensions
3041
3042.. option:: -mhvx-length=<arg>
3043
3044Set Hexagon Vector Length
3045
3046.. program:: clang1
3047.. option:: -mhvx=<arg>
3048.. program:: clang
3049
3050Enable Hexagon Vector eXtensions
3051
3052MIPS
3053----
3054.. option:: -mabicalls, -mno-abicalls
3055
3056Enable SVR4-style position-independent code (Mips only)
3057
3058.. option:: -mabs=<arg>
3059
3060.. option:: -mcheck-zero-division, -mno-check-zero-division
3061
3062.. option:: -mcompact-branches=<arg>
3063
3064.. option:: -mdouble-float
3065
3066.. option:: -mdsp, -mno-dsp
3067
3068.. option:: -mdspr2, -mno-dspr2
3069
3070.. option:: -membedded-data, -mno-embedded-data
3071
3072Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
3073
3074.. option:: -mextern-sdata, -mno-extern-sdata
3075
3076Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
3077
3078.. option:: -mfp32
3079
3080Use 32-bit floating point registers (MIPS only)
3081
3082.. option:: -mfp64
3083
3084Use 64-bit floating point registers (MIPS only)
3085
3086.. option:: -mginv, -mno-ginv
3087
3088.. option:: -mgpopt, -mno-gpopt
3089
3090Use GP relative accesses for symbols known to be in a small data section (MIPS)
3091
3092.. option:: -mindirect-jump=<arg>
3093
3094Change indirect jump instructions to inhibit speculation
3095
3096.. option:: -mips16
3097
3098.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
3099
3100.. option:: -mlocal-sdata, -mno-local-sdata
3101
3102Extend the -G behaviour to object local data (MIPS)
3103
3104.. option:: -mmadd4, -mno-madd4
3105
3106Enable the generation of 4-operand madd.s, madd.d and related instructions.
3107
3108.. option:: -mmicromips, -mno-micromips
3109
3110.. option:: -mmsa, -mno-msa
3111
3112Enable MSA ASE (MIPS only)
3113
3114.. option:: -mmt, -mno-mt
3115
3116Enable MT ASE (MIPS only)
3117
3118.. option:: -mnan=<arg>
3119
3120.. option:: -mno-mips16
3121
3122.. option:: -msingle-float
3123
3124.. option:: -mvirt, -mno-virt
3125
3126.. option:: -mxgot, -mno-xgot
3127
3128PowerPC
3129-------
3130.. option:: -maltivec, -mno-altivec
3131
3132.. option:: -mcmpb, -mno-cmpb
3133
3134.. option:: -mcrbits, -mno-crbits
3135
3136.. option:: -mcrypto, -mno-crypto
3137
3138.. option:: -mdirect-move, -mno-direct-move
3139
3140.. option:: -mfloat128, -mno-float128
3141
3142.. option:: -mfprnd, -mno-fprnd
3143
3144.. option:: -mhtm, -mno-htm
3145
3146.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
3147
3148.. option:: -misel, -mno-isel
3149
3150.. option:: -mlongcall, -mno-longcall
3151
3152.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
3153
3154.. option:: -mmma, -mno-mma
3155
3156.. option:: -mpaired-vector-memops, -mno-paired-vector-memops
3157
3158.. option:: -mpcrel, -mno-pcrel
3159
3160.. option:: -mpopcntd, -mno-popcntd
3161
3162.. option:: -mpower10-vector, -mno-power10-vector
3163
3164.. option:: -mpower8-vector, -mno-power8-vector
3165
3166.. option:: -mpower9-vector, -mno-power9-vector
3167
3168.. option:: -mqpx, -mno-qpx
3169
3170.. option:: -msecure-plt
3171
3172.. option:: -mspe, -mno-spe
3173
3174.. option:: -mvsx, -mno-vsx
3175
3176WebAssembly
3177-----------
3178.. option:: -matomics, -mno-atomics
3179
3180.. option:: -mbulk-memory, -mno-bulk-memory
3181
3182.. option:: -mexception-handling, -mno-exception-handling
3183
3184.. option:: -mmultivalue, -mno-multivalue
3185
3186.. option:: -mmutable-globals, -mno-mutable-globals
3187
3188.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
3189
3190.. option:: -mreference-types, -mno-reference-types
3191
3192.. option:: -msign-ext, -mno-sign-ext
3193
3194.. option:: -msimd128, -mno-simd128
3195
3196.. option:: -mtail-call, -mno-tail-call
3197
3198.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
3199
3200WebAssembly Driver
3201------------------
3202.. option:: -mexec-model=<arg>
3203
3204Execution model (WebAssembly only)
3205
3206X86
3207---
3208.. option:: -m3dnow, -mno-3dnow
3209
3210.. option:: -m3dnowa, -mno-3dnowa
3211
3212.. option:: -madx, -mno-adx
3213
3214.. option:: -maes, -mno-aes
3215
3216.. option:: -mamx-bf16, -mno-amx-bf16
3217
3218.. option:: -mamx-int8, -mno-amx-int8
3219
3220.. option:: -mamx-tile, -mno-amx-tile
3221
3222.. option:: -mavx, -mno-avx
3223
3224.. option:: -mavx2, -mno-avx2
3225
3226.. option:: -mavx512bf16, -mno-avx512bf16
3227
3228.. option:: -mavx512bitalg, -mno-avx512bitalg
3229
3230.. option:: -mavx512bw, -mno-avx512bw
3231
3232.. option:: -mavx512cd, -mno-avx512cd
3233
3234.. option:: -mavx512dq, -mno-avx512dq
3235
3236.. option:: -mavx512er, -mno-avx512er
3237
3238.. option:: -mavx512f, -mno-avx512f
3239
3240.. option:: -mavx512ifma, -mno-avx512ifma
3241
3242.. option:: -mavx512pf, -mno-avx512pf
3243
3244.. option:: -mavx512vbmi, -mno-avx512vbmi
3245
3246.. option:: -mavx512vbmi2, -mno-avx512vbmi2
3247
3248.. option:: -mavx512vl, -mno-avx512vl
3249
3250.. option:: -mavx512vnni, -mno-avx512vnni
3251
3252.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
3253
3254.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
3255
3256.. option:: -mavxvnni, -mno-avxvnni
3257
3258.. option:: -mbmi, -mno-bmi
3259
3260.. option:: -mbmi2, -mno-bmi2
3261
3262.. option:: -mcldemote, -mno-cldemote
3263
3264.. option:: -mclflushopt, -mno-clflushopt
3265
3266.. option:: -mclwb, -mno-clwb
3267
3268.. option:: -mclzero, -mno-clzero
3269
3270.. option:: -mcx16, -mno-cx16
3271
3272.. option:: -menqcmd, -mno-enqcmd
3273
3274.. option:: -mf16c, -mno-f16c
3275
3276.. option:: -mfma, -mno-fma
3277
3278.. option:: -mfma4, -mno-fma4
3279
3280.. option:: -mfsgsbase, -mno-fsgsbase
3281
3282.. option:: -mfxsr, -mno-fxsr
3283
3284.. option:: -mgfni, -mno-gfni
3285
3286.. option:: -mhreset, -mno-hreset
3287
3288.. option:: -minvpcid, -mno-invpcid
3289
3290.. option:: -mkl, -mno-kl
3291
3292.. option:: -mlwp, -mno-lwp
3293
3294.. option:: -mlzcnt, -mno-lzcnt
3295
3296.. option:: -mmmx, -mno-mmx
3297
3298.. option:: -mmovbe, -mno-movbe
3299
3300.. option:: -mmovdir64b, -mno-movdir64b
3301
3302.. option:: -mmovdiri, -mno-movdiri
3303
3304.. option:: -mmwaitx, -mno-mwaitx
3305
3306.. option:: -mpclmul, -mno-pclmul
3307
3308.. option:: -mpconfig, -mno-pconfig
3309
3310.. option:: -mpku, -mno-pku
3311
3312.. option:: -mpopcnt, -mno-popcnt
3313
3314.. option:: -mprefetchwt1, -mno-prefetchwt1
3315
3316.. option:: -mprfchw, -mno-prfchw
3317
3318.. option:: -mptwrite, -mno-ptwrite
3319
3320.. option:: -mrdpid, -mno-rdpid
3321
3322.. option:: -mrdrnd, -mno-rdrnd
3323
3324.. option:: -mrdseed, -mno-rdseed
3325
3326.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
3327
3328.. option:: -mrtm, -mno-rtm
3329
3330.. option:: -msahf, -mno-sahf
3331
3332.. option:: -mserialize, -mno-serialize
3333
3334.. option:: -msgx, -mno-sgx
3335
3336.. option:: -msha, -mno-sha
3337
3338.. option:: -mshstk, -mno-shstk
3339
3340.. option:: -msse, -mno-sse
3341
3342.. option:: -msse2, -mno-sse2
3343
3344.. option:: -msse3, -mno-sse3
3345
3346.. option:: -msse4.1, -mno-sse4.1
3347
3348.. program:: clang1
3349.. option:: -msse4.2, -mno-sse4.2, -msse4
3350.. program:: clang
3351
3352.. option:: -msse4a, -mno-sse4a
3353
3354.. option:: -mssse3, -mno-ssse3
3355
3356.. option:: -mtbm, -mno-tbm
3357
3358.. option:: -mtsxldtrk, -mno-tsxldtrk
3359
3360.. option:: -muintr, -mno-uintr
3361
3362.. option:: -mvaes, -mno-vaes
3363
3364.. option:: -mvpclmulqdq, -mno-vpclmulqdq
3365
3366.. option:: -mvzeroupper, -mno-vzeroupper
3367
3368.. option:: -mwaitpkg, -mno-waitpkg
3369
3370.. option:: -mwbnoinvd, -mno-wbnoinvd
3371
3372.. option:: -mwidekl, -mno-widekl
3373
3374.. option:: -mx87, -m80387, -mno-x87
3375
3376.. option:: -mxop, -mno-xop
3377
3378.. option:: -mxsave, -mno-xsave
3379
3380.. option:: -mxsavec, -mno-xsavec
3381
3382.. option:: -mxsaveopt, -mno-xsaveopt
3383
3384.. option:: -mxsaves, -mno-xsaves
3385
3386RISCV
3387-----
3388.. option:: -msave-restore, -mno-save-restore
3389
3390Enable using library calls for save and restore
3391
3392Long double flags
3393-----------------
3394Selects the long double implementation
3395
3396.. option:: -mlong-double-128
3397
3398Force long double to be 128 bits
3399
3400.. option:: -mlong-double-64
3401
3402Force long double to be 64 bits
3403
3404.. option:: -mlong-double-80
3405
3406Force long double to be 80 bits, padded to 128 bits for storage
3407
3408Optimization level
3409~~~~~~~~~~~~~~~~~~
3410
3411Flags controlling how much optimization should be performed.
3412
3413.. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
3414
3415.. option:: -Ofast<arg>
3416
3417Debug information generation
3418~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3419
3420Flags controlling how much and what kind of debug information should be
3421generated.
3422
3423Kind and level of debug information
3424-----------------------------------
3425.. option:: -g, --debug, --debug=<arg>
3426
3427Generate source-level debug information
3428
3429.. option:: -gdwarf
3430
3431Generate source-level debug information with the default dwarf version
3432
3433.. option:: -gdwarf-2
3434
3435Generate source-level debug information with dwarf version 2
3436
3437.. option:: -gdwarf-3
3438
3439Generate source-level debug information with dwarf version 3
3440
3441.. option:: -gdwarf-4
3442
3443Generate source-level debug information with dwarf version 4
3444
3445.. option:: -gdwarf-5
3446
3447Generate source-level debug information with dwarf version 5
3448
3449.. option:: -gfull
3450
3451.. option:: -gused
3452
3453Debug level
3454___________
3455.. option:: -g0
3456
3457.. option:: -g2
3458
3459.. option:: -g3
3460
3461.. option:: -ggdb0
3462
3463.. option:: -ggdb1
3464
3465.. option:: -ggdb2
3466
3467.. option:: -ggdb3
3468
3469.. option:: -gline-directives-only
3470
3471Emit debug line info directives only
3472
3473.. option:: -gline-tables-only, -g1, -gmlt
3474
3475Emit debug line number tables only
3476
3477.. option:: -gmodules
3478
3479Generate debug info with external references to clang modules or precompiled headers
3480
3481Debugger to tune debug information for
3482______________________________________
3483.. option:: -ggdb
3484
3485.. option:: -glldb
3486
3487.. option:: -gsce
3488
3489Debug information flags
3490-----------------------
3491.. option:: -gcolumn-info, -gno-column-info
3492
3493.. option:: -gdwarf-aranges
3494
3495.. option:: -gembed-source, -gno-embed-source
3496
3497Embed source text in DWARF debug sections
3498
3499.. option:: -ggnu-pubnames, -gno-gnu-pubnames
3500
3501.. option:: -gpubnames, -gno-pubnames
3502
3503.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
3504
3505.. option:: -gsplit-dwarf
3506
3507.. program:: clang1
3508.. option:: -gsplit-dwarf=<arg>
3509.. program:: clang
3510
3511Set DWARF fission mode to either 'split' or 'single'
3512
3513.. option:: -gstrict-dwarf, -gno-strict-dwarf
3514
3515.. option:: -gz=<arg>, -gz (equivalent to -gz=zlib)
3516
3517DWARF debug sections compression type
3518
3519Static analyzer flags
3520=====================
3521
3522Flags controlling the behavior of the Clang Static Analyzer.
3523
3524.. option:: -Xanalyzer <arg>
3525
3526Pass <arg> to the static analyzer
3527
3528Fortran compilation flags
3529=========================
3530
3531Flags that will be passed onto the ``gfortran`` compiler when Clang is given
3532a Fortran input.
3533
3534.. option:: -A<arg>, --assert <arg>, --assert=<arg>
3535
3536.. option:: -A-<arg>
3537
3538.. option:: -J<arg>
3539
3540.. option:: -cpp
3541
3542.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
3543
3544.. option:: -falign-commons, -fno-align-commons
3545
3546.. option:: -fall-intrinsics, -fno-all-intrinsics
3547
3548.. option:: -fautomatic, -fno-automatic
3549
3550.. option:: -fbackslash, -fno-backslash
3551
3552.. option:: -fbacktrace, -fno-backtrace
3553
3554.. option:: -fblas-matmul-limit=<arg>
3555
3556.. option:: -fbounds-check, -fno-bounds-check
3557
3558.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
3559
3560.. option:: -fcheck=<arg>
3561
3562.. option:: -fcoarray=<arg>
3563
3564.. option:: -fconvert=<arg>
3565
3566.. option:: -fcray-pointer, -fno-cray-pointer
3567
3568.. option:: -fd-lines-as-code, -fno-d-lines-as-code
3569
3570.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
3571
3572.. option:: -fdefault-double-8, -fno-default-double-8
3573
3574.. option:: -fdefault-integer-8, -fno-default-integer-8
3575
3576.. option:: -fdefault-real-8, -fno-default-real-8
3577
3578.. option:: -fdollar-ok, -fno-dollar-ok
3579
3580.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
3581
3582.. option:: -fdump-fortran-original, -fno-dump-fortran-original
3583
3584.. option:: -fdump-parse-tree, -fno-dump-parse-tree
3585
3586.. option:: -fexternal-blas, -fno-external-blas
3587
3588.. option:: -ff2c, -fno-f2c
3589
3590.. option:: -ffixed-form, -fno-fixed-form
3591
3592.. option:: -ffixed-line-length-<arg>
3593
3594.. option:: -ffpe-trap=<arg>
3595
3596.. option:: -ffree-form, -fno-free-form
3597
3598.. option:: -ffree-line-length-<arg>
3599
3600.. option:: -ffrontend-optimize, -fno-frontend-optimize
3601
3602.. option:: -fimplicit-none, -fno-implicit-none
3603
3604.. option:: -finit-character=<arg>
3605
3606.. option:: -finit-integer=<arg>
3607
3608.. option:: -finit-local-zero, -fno-init-local-zero
3609
3610.. option:: -finit-logical=<arg>
3611
3612.. option:: -finit-real=<arg>
3613
3614.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3615
3616.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3617
3618.. option:: -fmax-array-constructor=<arg>
3619
3620.. option:: -fmax-errors=<arg>
3621
3622.. option:: -fmax-identifier-length, -fno-max-identifier-length
3623
3624.. option:: -fmax-stack-var-size=<arg>
3625
3626.. option:: -fmax-subrecord-length=<arg>
3627
3628.. option:: -fmodule-private, -fno-module-private
3629
3630.. option:: -fpack-derived, -fno-pack-derived
3631
3632.. option:: -fprotect-parens, -fno-protect-parens
3633
3634.. option:: -frange-check, -fno-range-check
3635
3636.. option:: -freal-4-real-10, -fno-real-4-real-10
3637
3638.. option:: -freal-4-real-16, -fno-real-4-real-16
3639
3640.. option:: -freal-4-real-8, -fno-real-4-real-8
3641
3642.. option:: -freal-8-real-10, -fno-real-8-real-10
3643
3644.. option:: -freal-8-real-16, -fno-real-8-real-16
3645
3646.. option:: -freal-8-real-4, -fno-real-8-real-4
3647
3648.. option:: -frealloc-lhs, -fno-realloc-lhs
3649
3650.. option:: -frecord-marker=<arg>
3651
3652.. option:: -frecursive, -fno-recursive
3653
3654.. option:: -frepack-arrays, -fno-repack-arrays
3655
3656.. option:: -fsecond-underscore, -fno-second-underscore
3657
3658.. option:: -fsign-zero, -fno-sign-zero
3659
3660.. option:: -fstack-arrays, -fno-stack-arrays
3661
3662.. option:: -funderscoring, -fno-underscoring
3663
3664.. option:: -fwhole-file, -fno-whole-file
3665
3666.. option:: -imultilib <arg>
3667
3668.. option:: -nocpp
3669
3670.. option:: -static-libgfortran
3671
3672Linker flags
3673============
3674Flags that are passed on to the linker
3675
3676.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3677
3678Add directory to library search path
3679
3680.. option:: -Mach
3681
3682.. option:: -T<script>
3683
3684Specify <script> as linker script
3685
3686.. option:: -Tbss<addr>
3687
3688Set starting address of BSS to <addr>
3689
3690.. option:: -Tdata<addr>
3691
3692Set starting address of DATA to <addr>
3693
3694.. option:: -Ttext<addr>
3695
3696Set starting address of TEXT to <addr>
3697
3698.. option:: -Wl,<arg>,<arg2>...
3699
3700Pass the comma separated arguments in <arg> to the linker
3701
3702.. option:: -X
3703
3704.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3705
3706Pass <arg> to the linker
3707
3708.. program:: clang1
3709.. option:: -Z
3710.. program:: clang
3711
3712.. option:: -coverage, --coverage
3713
3714.. option:: -e<arg>, --entry
3715
3716.. option:: -filelist <arg>
3717
3718.. option:: --hip-device-lib=<arg>
3719
3720HIP device library
3721
3722.. option:: -l<arg>
3723
3724.. option:: --ld-path=<arg>
3725
3726.. option:: -nostartfiles
3727
3728.. program:: clang1
3729.. option:: -nostdlib, --no-standard-libraries
3730.. program:: clang
3731
3732.. option:: -pie
3733
3734.. option:: -r
3735
3736.. option:: -rdynamic
3737
3738.. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
3739
3740ROCm device library path. Alternative to rocm-path.
3741
3742.. option:: -rpath <arg>
3743
3744.. option:: -s
3745
3746.. option:: -shared, --shared
3747
3748.. option:: -specs=<arg>, --specs=<arg>
3749
3750.. option:: -static, --static
3751
3752.. option:: -static-pie
3753
3754.. option:: -t
3755
3756.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3757
3758.. option:: -undef
3759
3760undef all system defines
3761
3762.. option:: -undefined<arg>, --no-undefined
3763
3764.. option:: -z <arg>
3765
3766Pass -z <arg> to the linker
3767
3768