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-rdc, -fcuda-rdc, -fno-gpu-rdc
1645
1646Generate relocatable device code, also known as separate compilation mode
1647
1648.. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
1649
1650Use new kernel launching API for HIP
1651
1652.. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1653
1654.. option:: -fhonor-nans, -fno-honor-nans
1655
1656.. option:: -fhosted
1657
1658.. option:: -fignore-exceptions
1659
1660Enable support for ignoring exception handling constructs
1661
1662.. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1663
1664Implicitly search the file system for module map files.
1665
1666.. option:: -fimplicit-modules, -fno-implicit-modules
1667
1668.. option:: -finput-charset=<arg>
1669
1670.. option:: -finstrument-function-entry-bare
1671
1672Instrument function entry only, after inlining, without arguments to the instrumentation call
1673
1674.. option:: -finstrument-functions
1675
1676Generate calls to instrument function entry and exit
1677
1678.. option:: -finstrument-functions-after-inlining
1679
1680Like -finstrument-functions, but insert the calls after inlining
1681
1682.. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1683
1684Enable the integrated assembler
1685
1686.. option:: -fintegrated-cc1, -fno-integrated-cc1
1687
1688Run cc1 in-process
1689
1690.. option:: -fjump-tables, -fno-jump-tables
1691
1692Use jump tables for lowering switches
1693
1694.. option:: -fkeep-static-consts, -fno-keep-static-consts
1695
1696Keep static const variables if unused
1697
1698.. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
1699
1700Enable implicit vector bit-casts
1701
1702.. option:: -flimited-precision=<arg>
1703
1704.. option:: -flto, -fno-lto
1705
1706Enable LTO in 'full' mode
1707
1708.. option:: -flto-jobs=<arg>
1709
1710Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1711
1712.. program:: clang1
1713.. option:: -flto=<arg>
1714.. program:: clang
1715
1716Set LTO mode to either 'full' or 'thin'
1717
1718.. option:: -fmacro-backtrace-limit=<arg>
1719
1720.. option:: -fmath-errno, -fno-math-errno
1721
1722Require math functions to indicate errors by setting errno
1723
1724.. option:: -fmax-tokens=<arg>
1725
1726Max total number of preprocessed tokens for -Wmax-tokens.
1727
1728.. option:: -fmax-type-align=<arg>
1729
1730Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1731
1732.. option:: -fmemory-profile, -fno-memory-profile
1733
1734Enable heap memory profiling
1735
1736.. option:: -fmerge-all-constants, -fno-merge-all-constants
1737
1738Allow merging of constants
1739
1740.. option:: -fmessage-length=<arg>
1741
1742Format message diagnostics so that they fit within N columns
1743
1744.. option:: -fmodule-file-deps, -fno-module-file-deps
1745
1746.. option:: -fmodule-map-file=<file>
1747
1748Load this module map file
1749
1750.. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
1751
1752Specify the name of the module to build
1753
1754.. option:: -fmodules, -fno-modules
1755
1756Enable the 'modules' language feature
1757
1758.. option:: -fmodules-decluse, -fno-modules-decluse
1759
1760Require declaration of modules used within a module
1761
1762.. option:: -fmodules-ignore-macro=<arg>
1763
1764Ignore the definition of the given macro when building and loading modules
1765
1766.. option:: -fmodules-search-all, -fno-modules-search-all
1767
1768Search even non-imported modules to resolve references
1769
1770.. option:: -fmodules-strict-decluse
1771
1772Like -fmodules-decluse but requires all headers to be in modules
1773
1774.. option:: -fmodules-ts
1775
1776Enable support for the C++ Modules TS
1777
1778.. option:: -fmodules-validate-input-files-content
1779
1780Validate PCM input files based on content if mtime differs
1781
1782.. option:: -fms-compatibility, -fno-ms-compatibility
1783
1784Enable full Microsoft Visual C++ compatibility
1785
1786.. option:: -fms-compatibility-version=<arg>
1787
1788Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1789
1790.. option:: -fms-extensions, -fno-ms-extensions
1791
1792Accept some non-standard constructs supported by the Microsoft compiler
1793
1794.. option:: -fms-memptr-rep=<arg>
1795
1796.. option:: -fms-volatile
1797
1798.. option:: -fmsc-version=<arg>
1799
1800Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1801
1802.. option:: -fmudflap
1803
1804.. option:: -fmudflapth
1805
1806.. option:: -fnested-functions
1807
1808.. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
1809
1810Specifies the largest alignment guaranteed by '::operator new(size\_t)'
1811
1812.. option:: -fnext-runtime
1813
1814.. option:: -fno-access-control, -fno-no-access-control
1815
1816.. option:: -fno-builtin-<arg>
1817
1818Disable implicit builtin knowledge of a specific function
1819
1820.. option:: -fno-elide-type
1821
1822Do not elide types when printing diagnostics
1823
1824.. option:: -fno-max-type-align
1825
1826.. option:: -fno-operator-names
1827
1828Do not treat C++ operator name keywords as synonyms for operators
1829
1830.. option:: -fno-strict-modules-decluse
1831
1832.. option:: -fno-temp-file
1833
1834Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
1835
1836.. option:: -fno-working-directory
1837
1838.. option:: -fno\_modules-validate-input-files-content
1839
1840.. program:: clang1
1841.. option:: -fno\_pch-validate-input-files-content
1842.. program:: clang
1843
1844.. option:: -fnoxray-link-deps
1845
1846.. option:: -fobjc-abi-version=<arg>
1847
1848.. option:: -fobjc-arc, -fno-objc-arc
1849
1850Synthesize retain and release calls for Objective-C pointers
1851
1852.. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
1853
1854Use EH-safe code when synthesizing retains and releases in -fobjc-arc
1855
1856.. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
1857
1858.. option:: -fobjc-exceptions, -fno-objc-exceptions
1859
1860Enable Objective-C exceptions
1861
1862.. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
1863
1864.. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
1865
1866.. option:: -fobjc-link-runtime
1867
1868.. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
1869
1870.. option:: -fobjc-nonfragile-abi-version=<arg>
1871
1872.. option:: -fobjc-runtime=<arg>
1873
1874Specify the target Objective-C runtime kind and version
1875
1876.. option:: -fobjc-sender-dependent-dispatch
1877
1878.. option:: -fobjc-weak, -fno-objc-weak
1879
1880Enable ARC-style weak references in Objective-C
1881
1882.. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
1883
1884.. option:: -fopenmp, -fno-openmp
1885
1886Parse OpenMP pragmas and generate parallel code.
1887
1888.. option:: -fopenmp-simd, -fno-openmp-simd
1889
1890Emit OpenMP code only for SIMD-based constructs.
1891
1892.. option:: -fopenmp-version=<arg>
1893
1894.. program:: clang1
1895.. option:: -fopenmp=<arg>
1896.. program:: clang
1897
1898.. option:: -foperator-arrow-depth=<arg>
1899
1900.. option:: -foptimization-record-file=<file>
1901
1902Specify 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.
1903
1904.. option:: -foptimization-record-passes=<regex>
1905
1906Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
1907
1908.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1909
1910.. option:: -forder-file-instrumentation
1911
1912Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1913
1914.. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1915
1916.. option:: -fpack-struct, -fno-pack-struct
1917
1918.. program:: clang1
1919.. option:: -fpack-struct=<arg>
1920.. program:: clang
1921
1922Specify the default maximum struct packing alignment
1923
1924.. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1925
1926Recognize and construct Pascal-style string literals
1927
1928.. option:: -fpass-plugin=<dsopath>
1929
1930Load pass plugin from a dynamic shared object file (only with new pass manager).
1931
1932.. option:: -fpatchable-function-entry=<N,M>
1933
1934Generate M NOPs before function entry and N-M NOPs after function entry
1935
1936.. option:: -fpcc-struct-return
1937
1938Override the default ABI to return all structs on the stack
1939
1940.. option:: -fpch-codegen, -fno-pch-codegen
1941
1942Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
1943
1944.. option:: -fpch-debuginfo, -fno-pch-debuginfo
1945
1946Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
1947
1948.. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
1949
1950Instantiate templates already while building a PCH
1951
1952.. option:: -fpch-preprocess
1953
1954.. option:: -fpch-validate-input-files-content
1955
1956Validate PCH input files based on content if mtime differs
1957
1958.. option:: -fpic, -fno-pic
1959
1960.. option:: -fpie, -fno-pie
1961
1962.. option:: -fplt, -fno-plt
1963
1964.. option:: -fplugin=<dsopath>
1965
1966Load the named plugin (dynamic shared object)
1967
1968.. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1969
1970.. option:: -fprofile-arcs, -fno-profile-arcs
1971
1972.. option:: -fprofile-dir=<arg>
1973
1974.. option:: -fprofile-exclude-files=<arg>
1975
1976Instrument only functions from files where names don't match all the regexes separated by a semi-colon
1977
1978.. option:: -fprofile-filter-files=<arg>
1979
1980Instrument only functions from files where names match any regex separated by a semi-colon
1981
1982.. option:: -fprofile-generate, -fno-profile-generate
1983
1984Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1985
1986.. program:: clang1
1987.. option:: -fprofile-generate=<directory>
1988.. program:: clang
1989
1990Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1991
1992.. option:: -fprofile-instr-generate, -fno-profile-instr-generate
1993
1994Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1995
1996.. program:: clang1
1997.. option:: -fprofile-instr-generate=<file>
1998.. program:: clang
1999
2000Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
2001
2002.. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
2003
2004.. program:: clang1
2005.. option:: -fprofile-instr-use=<arg>
2006.. program:: clang
2007
2008Use instrumentation data for profile-guided optimization
2009
2010.. option:: -fprofile-remapping-file=<file>, -fprofile-remapping-file <arg>
2011
2012Use the remappings described in <file> to match the profile data against names in the program
2013
2014.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
2015
2016Specifies that the sample profile is accurate. If the sample
2017               profile is accurate, callsites without profile samples are marked
2018               as cold. Otherwise, treat callsites without profile samples as if
2019               we have no profile
2020
2021.. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
2022
2023.. program:: clang1
2024.. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
2025.. program:: clang
2026
2027Enable sample-based profile guided optimizations
2028
2029.. option:: -fprofile-update=<method>
2030
2031Set update method of profile counters (atomic,prefer-atomic,single)
2032
2033.. program:: clang1
2034.. option:: -fprofile-use=<pathname>
2035.. program:: clang
2036
2037Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
2038
2039.. option:: -freciprocal-math, -fno-reciprocal-math
2040
2041Allow division operations to be reassociated
2042
2043.. option:: -freg-struct-return
2044
2045Override the default ABI to return small structs in registers
2046
2047.. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
2048
2049Use atexit or \_\_cxa\_atexit to register global destructors
2050
2051.. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
2052
2053Enable C++17 relaxed template template argument matching
2054
2055.. option:: -freroll-loops, -fno-reroll-loops
2056
2057Turn on loop reroller
2058
2059.. option:: -fretain-comments-from-system-headers
2060
2061.. option:: -frewrite-imports, -fno-rewrite-imports
2062
2063.. option:: -frewrite-includes, -fno-rewrite-includes
2064
2065.. option:: -frewrite-map-file <arg>
2066
2067.. program:: clang1
2068.. option:: -frewrite-map-file=<arg>
2069.. program:: clang
2070
2071.. option:: -fropi, -fno-ropi
2072
2073Generate read-only position independent code (ARM only)
2074
2075.. option:: -frounding-math, -fno-rounding-math
2076
2077.. option:: -frtti, -fno-rtti
2078
2079.. option:: -frtti-data, -fno-rtti-data
2080
2081.. option:: -frwpi, -fno-rwpi
2082
2083Generate read-write position independent code (ARM only)
2084
2085.. option:: -fsave-optimization-record, -fno-save-optimization-record
2086
2087Generate a YAML optimization record file
2088
2089.. program:: clang1
2090.. option:: -fsave-optimization-record=<format>
2091.. program:: clang
2092
2093Generate an optimization record file in a specific format
2094
2095.. option:: -fseh-exceptions
2096
2097Use SEH style exceptions
2098
2099.. option:: -fsemantic-interposition, -fno-semantic-interposition
2100
2101.. option:: -fshort-enums, -fno-short-enums
2102
2103Allocate to an enum type only as many bytes as it needs for the declared range of possible values
2104
2105.. option:: -fshort-wchar, -fno-short-wchar
2106
2107Force wchar\_t to be a short unsigned int
2108
2109.. option:: -fshow-column, -fno-show-column
2110
2111.. option:: -fshow-overloads=<arg>
2112
2113Which overload candidates to show when overload resolution fails: best\|all; defaults to all
2114
2115.. option:: -fshow-source-location, -fno-show-source-location
2116
2117.. option:: -fsignaling-math, -fno-signaling-math
2118
2119.. option:: -fsigned-bitfields
2120
2121.. option:: -fsigned-char, -fno-signed-char, --signed-char
2122
2123char is signed
2124
2125.. option:: -fsigned-zeros, -fno-signed-zeros
2126
2127.. option:: -fsized-deallocation, -fno-sized-deallocation
2128
2129Enable C++14 sized global deallocation functions
2130
2131.. option:: -fsjlj-exceptions
2132
2133Use SjLj style exceptions
2134
2135.. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
2136
2137Enable the superword-level parallelism vectorization passes
2138
2139.. option:: -fspell-checking, -fno-spell-checking
2140
2141.. option:: -fspell-checking-limit=<arg>
2142
2143.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
2144
2145Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
2146
2147.. option:: -fsplit-lto-unit, -fno-split-lto-unit
2148
2149Enables splitting of the LTO unit
2150
2151.. option:: -fsplit-machine-functions, -fno-split-machine-functions
2152
2153Enable late function splitting using profile information (x86 ELF)
2154
2155.. option:: -fsplit-stack
2156
2157.. option:: -fstack-clash-protection, -fno-stack-clash-protection
2158
2159Enable stack clash protection
2160
2161.. option:: -fstack-protector, -fno-stack-protector
2162
2163Enable 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.
2164
2165.. option:: -fstack-protector-all
2166
2167Enable stack protectors for all functions
2168
2169.. option:: -fstack-protector-strong
2170
2171Enable 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
2172
2173.. option:: -fstack-size-section, -fno-stack-size-section
2174
2175Emit section containing metadata on function stack sizes
2176
2177.. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
2178
2179Emit full debug info for all types used by the program
2180
2181.. option:: -fstrict-aliasing, -fno-strict-aliasing
2182
2183.. option:: -fstrict-enums, -fno-strict-enums
2184
2185Enable optimizations based on the strict definition of an enum's value range
2186
2187.. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
2188
2189Assume that overflowing float-to-int casts are undefined (default)
2190
2191.. option:: -fstrict-overflow, -fno-strict-overflow
2192
2193.. option:: -fstrict-return, -fno-strict-return
2194
2195.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
2196
2197Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
2198
2199.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
2200
2201.. option:: -fsymbol-partition=<arg>
2202
2203.. option:: -ftabstop=<arg>
2204
2205.. option:: -ftemplate-backtrace-limit=<arg>
2206
2207.. option:: -ftemplate-depth-<arg>
2208
2209.. option:: -ftemplate-depth=<arg>
2210
2211.. option:: -ftest-coverage, -fno-test-coverage
2212
2213.. option:: -fthin-link-bitcode=<arg>
2214
2215Write minimized bitcode to <file> for the ThinLTO thin link only
2216
2217.. option:: -fthinlto-index=<arg>
2218
2219Perform ThinLTO importing using provided function summary index
2220
2221.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
2222
2223.. option:: -ftime-report
2224
2225.. option:: -ftime-trace
2226
2227
2228Turn on time profiler. Generates JSON file based on output filename. Results
2229can be analyzed with chrome://tracing or `Speedscope App
2230<https://www.speedscope.app>`_ for flamegraph visualization.
2231
2232.. option:: -ftime-trace-granularity=<arg>
2233
2234Minimum time granularity (in microseconds) traced by time profiler
2235
2236.. option:: -ftls-model=<arg>
2237
2238.. option:: -ftrap-function=<arg>
2239
2240Issue call to specified function rather than a trap instruction
2241
2242.. option:: -ftrapping-math, -fno-trapping-math
2243
2244.. option:: -ftrapv
2245
2246Trap on integer overflow
2247
2248.. option:: -ftrapv-handler <arg>
2249
2250.. program:: clang1
2251.. option:: -ftrapv-handler=<function name>
2252.. program:: clang
2253
2254Specify the function to be called on overflow
2255
2256.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
2257
2258Process trigraph sequences
2259
2260.. option:: -ftrivial-auto-var-init-stop-after=<arg>
2261
2262Stop initializing trivial automatic stack variables after the specified number of instances
2263
2264.. option:: -ftrivial-auto-var-init=<arg>
2265
2266Initialize trivial automatic stack variables: uninitialized (default) \| pattern
2267
2268.. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
2269
2270Use unique names for basic block sections (ELF Only)
2271
2272.. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
2273
2274Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
2275
2276.. option:: -funique-section-names, -fno-unique-section-names
2277
2278.. option:: -funit-at-a-time, -fno-unit-at-a-time
2279
2280.. option:: -funroll-loops, -fno-unroll-loops
2281
2282Turn on loop unroller
2283
2284.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2285
2286.. option:: -funsigned-bitfields
2287
2288.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2289
2290.. option:: -funwind-tables, -fno-unwind-tables
2291
2292.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2293
2294.. option:: -fuse-init-array, -fno-use-init-array
2295
2296.. option:: -fuse-ld=<arg>
2297
2298.. option:: -fuse-line-directives, -fno-use-line-directives
2299
2300Use #line in preprocessed output
2301
2302.. option:: -fvalidate-ast-input-files-content
2303
2304Compute 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
2305
2306.. option:: -fveclib=<arg>
2307
2308Use the given vector functions library
2309
2310.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2311
2312Enable the loop vectorization passes
2313
2314.. option:: -fverbose-asm, -dA, -fno-verbose-asm
2315
2316Generate verbose assembly output
2317
2318.. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
2319
2320Enables dead virtual function elimination optimization. Requires -flto=full
2321
2322.. option:: -fvisibility-global-new-delete-hidden
2323
2324Give global C++ operator new and delete declarations hidden visibility
2325
2326.. option:: -fvisibility-inlines-hidden
2327
2328Give inline C++ member functions hidden visibility by default
2329
2330.. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
2331
2332When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
2333
2334.. option:: -fvisibility-ms-compat
2335
2336Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2337
2338.. option:: -fvisibility=<arg>
2339
2340Set the default symbol visibility for all global declarations
2341
2342.. option:: -fwasm-exceptions
2343
2344Use WebAssembly style exceptions
2345
2346.. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2347
2348Enables whole-program vtable optimization. Requires -flto
2349
2350.. option:: -fwrapv, -fno-wrapv
2351
2352Treat signed integer overflow as two's complement
2353
2354.. option:: -fwritable-strings
2355
2356Store string literals as writable data
2357
2358.. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2359
2360Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
2361
2362.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2363
2364Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
2365
2366.. option:: -fxray-always-instrument=<arg>
2367
2368DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2369
2370.. option:: -fxray-attr-list=<arg>
2371
2372Filename defining the list of functions/types for imbuing XRay attributes.
2373
2374.. option:: -fxray-function-groups=<arg>
2375
2376Only instrument 1 of N groups
2377
2378.. option:: -fxray-function-index, -fno-xray-function-index
2379
2380.. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
2381
2382Don't instrument functions with loops unless they also meet the minimum function size
2383
2384.. option:: -fxray-instruction-threshold<arg>
2385
2386.. program:: clang1
2387.. option:: -fxray-instruction-threshold=<arg>
2388.. program:: clang
2389
2390Sets the minimum function size to instrument with XRay
2391
2392.. option:: -fxray-instrument, -fno-xray-instrument
2393
2394Generate XRay instrumentation sleds on function entry and exit
2395
2396.. option:: -fxray-instrumentation-bundle=<arg>
2397
2398Select 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'.
2399
2400.. option:: -fxray-link-deps
2401
2402Tells clang to add the link dependencies for XRay.
2403
2404.. option:: -fxray-modes=<arg>
2405
2406List of modes to link in by default into XRay instrumented binaries.
2407
2408.. option:: -fxray-never-instrument=<arg>
2409
2410DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2411
2412.. option:: -fxray-selected-function-group=<arg>
2413
2414When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
2415
2416.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2417
2418.. option:: -fzvector, -fno-zvector, -mzvector
2419
2420Enable System z vector language extension
2421
2422.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2423
2424.. option:: -pedantic-errors, --pedantic-errors
2425
2426OpenCL flags
2427------------
2428.. option:: -cl-denorms-are-zero
2429
2430OpenCL only. Allow denormals to be flushed to zero.
2431
2432.. option:: -cl-fast-relaxed-math
2433
2434OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2435
2436.. option:: -cl-finite-math-only
2437
2438OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2439
2440.. option:: -cl-fp32-correctly-rounded-divide-sqrt
2441
2442OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2443
2444.. option:: -cl-kernel-arg-info
2445
2446OpenCL only. Generate kernel argument metadata.
2447
2448.. option:: -cl-mad-enable
2449
2450OpenCL only. Allow use of less precise MAD computations in the generated binary.
2451
2452.. option:: -cl-no-signed-zeros
2453
2454OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2455
2456.. option:: -cl-opt-disable
2457
2458OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2459
2460.. option:: -cl-single-precision-constant
2461
2462OpenCL only. Treat double precision floating-point constant as single precision constant.
2463
2464.. option:: -cl-std=<arg>
2465
2466OpenCL language standard to compile for.
2467
2468.. option:: -cl-strict-aliasing
2469
2470OpenCL only. This option is added for compatibility with OpenCL 1.0.
2471
2472.. option:: -cl-uniform-work-group-size
2473
2474OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2475
2476.. option:: -cl-unsafe-math-optimizations
2477
2478OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2479
2480SYCL flags
2481----------
2482.. option:: -fsycl, -fno-sycl
2483
2484Enable SYCL kernels compilation for device
2485
2486.. option:: -sycl-std=<arg>
2487
2488SYCL language standard to compile for.
2489
2490Target-dependent compilation options
2491~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2492.. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
2493
2494Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2495
2496.. option:: -ffixed-x1
2497
2498Reserve the x1 register (AArch64/RISC-V only)
2499
2500.. option:: -ffixed-x10
2501
2502Reserve the x10 register (AArch64/RISC-V only)
2503
2504.. option:: -ffixed-x11
2505
2506Reserve the x11 register (AArch64/RISC-V only)
2507
2508.. option:: -ffixed-x12
2509
2510Reserve the x12 register (AArch64/RISC-V only)
2511
2512.. option:: -ffixed-x13
2513
2514Reserve the x13 register (AArch64/RISC-V only)
2515
2516.. option:: -ffixed-x14
2517
2518Reserve the x14 register (AArch64/RISC-V only)
2519
2520.. option:: -ffixed-x15
2521
2522Reserve the x15 register (AArch64/RISC-V only)
2523
2524.. option:: -ffixed-x16
2525
2526Reserve the x16 register (AArch64/RISC-V only)
2527
2528.. option:: -ffixed-x17
2529
2530Reserve the x17 register (AArch64/RISC-V only)
2531
2532.. option:: -ffixed-x18
2533
2534Reserve the x18 register (AArch64/RISC-V only)
2535
2536.. option:: -ffixed-x19
2537
2538Reserve the x19 register (AArch64/RISC-V only)
2539
2540.. option:: -ffixed-x2
2541
2542Reserve the x2 register (AArch64/RISC-V only)
2543
2544.. option:: -ffixed-x20
2545
2546Reserve the x20 register (AArch64/RISC-V only)
2547
2548.. option:: -ffixed-x21
2549
2550Reserve the x21 register (AArch64/RISC-V only)
2551
2552.. option:: -ffixed-x22
2553
2554Reserve the x22 register (AArch64/RISC-V only)
2555
2556.. option:: -ffixed-x23
2557
2558Reserve the x23 register (AArch64/RISC-V only)
2559
2560.. option:: -ffixed-x24
2561
2562Reserve the x24 register (AArch64/RISC-V only)
2563
2564.. option:: -ffixed-x25
2565
2566Reserve the x25 register (AArch64/RISC-V only)
2567
2568.. option:: -ffixed-x26
2569
2570Reserve the x26 register (AArch64/RISC-V only)
2571
2572.. option:: -ffixed-x27
2573
2574Reserve the x27 register (AArch64/RISC-V only)
2575
2576.. option:: -ffixed-x28
2577
2578Reserve the x28 register (AArch64/RISC-V only)
2579
2580.. option:: -ffixed-x29
2581
2582Reserve the x29 register (AArch64/RISC-V only)
2583
2584.. option:: -ffixed-x3
2585
2586Reserve the x3 register (AArch64/RISC-V only)
2587
2588.. option:: -ffixed-x30
2589
2590Reserve the x30 register (AArch64/RISC-V only)
2591
2592.. option:: -ffixed-x31
2593
2594Reserve the x31 register (AArch64/RISC-V only)
2595
2596.. option:: -ffixed-x4
2597
2598Reserve the x4 register (AArch64/RISC-V only)
2599
2600.. option:: -ffixed-x5
2601
2602Reserve the x5 register (AArch64/RISC-V only)
2603
2604.. option:: -ffixed-x6
2605
2606Reserve the x6 register (AArch64/RISC-V only)
2607
2608.. option:: -ffixed-x7
2609
2610Reserve the x7 register (AArch64/RISC-V only)
2611
2612.. option:: -ffixed-x8
2613
2614Reserve the x8 register (AArch64/RISC-V only)
2615
2616.. option:: -ffixed-x9
2617
2618Reserve the x9 register (AArch64/RISC-V only)
2619
2620.. option:: -m16
2621
2622.. option:: -m32
2623
2624.. option:: -m64
2625
2626.. option:: -mabi=<arg>
2627
2628.. option:: -maix-struct-return
2629
2630Return all structs in memory (PPC32 only)
2631
2632.. option:: -malign-branch-boundary=<arg>
2633
2634Specify the boundary's size to align branches
2635
2636.. option:: -malign-branch=<arg1>,<arg2>...
2637
2638Specify types of branches to align
2639
2640.. option:: -malign-double
2641
2642Align doubles to two words in structs (x86 only)
2643
2644.. option:: -march=<arg>
2645
2646.. option:: -masm=<arg>
2647
2648.. option:: -mbackchain, -mno-backchain
2649
2650Link stack frames through backchain on System Z
2651
2652.. option:: -mbranches-within-32B-boundaries
2653
2654Align selected branches (fused, jcc, jmp) within 32-byte boundary
2655
2656.. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
2657
2658.. option:: -mconsole<arg>
2659
2660.. program:: clang1
2661.. 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)
2662.. program:: clang
2663
2664.. option:: -mcrc, -mno-crc
2665
2666Allow use of CRC instructions (ARM/Mips only)
2667
2668.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2669
2670.. option:: -mdll<arg>
2671
2672.. option:: -mdouble=<arg>
2673
2674Force double to be 32 bits or 64 bits
2675
2676.. option:: -mdynamic-no-pic<arg>
2677
2678.. option:: -meabi <arg>
2679
2680Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2681
2682.. option:: -menable-experimental-extensions
2683
2684Enable use of experimental RISC-V extensions.
2685
2686.. option:: -mfentry
2687
2688Insert calls to fentry at function entry (x86/SystemZ only)
2689
2690.. option:: -mfloat-abi=<arg>
2691
2692.. option:: -mfpmath=<arg>
2693
2694.. option:: -mfpu=<arg>
2695
2696.. option:: -mglobal-merge, -mno-global-merge
2697
2698Enable merging of globals
2699
2700.. option:: -mhard-float
2701
2702.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2703
2704.. option:: -mhwmult=<arg>
2705
2706.. option:: -miamcu, -mno-iamcu
2707
2708Use Intel MCU ABI
2709
2710.. option:: -mignore-xcoff-visibility
2711
2712Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
2713
2714.. option:: -mimplicit-float, -mno-implicit-float
2715
2716.. option:: -mimplicit-it=<arg>
2717
2718.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2719
2720(integrated-as) Emit an object file which can be used with an incremental linker
2721
2722.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2723
2724.. option:: -mkernel
2725
2726.. option:: -mlong-calls, -mno-long-calls
2727
2728Generate branches with extended addressability, usually via indirect jumps.
2729
2730.. option:: -mlvi-cfi, -mno-lvi-cfi
2731
2732Enable only control-flow mitigations for Load Value Injection (LVI)
2733
2734.. option:: -mlvi-hardening, -mno-lvi-hardening
2735
2736Enable all mitigations for Load Value Injection (LVI)
2737
2738.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2739
2740Set Mac OS X deployment target
2741
2742.. option:: -mmcu=<arg>
2743
2744.. option:: -mms-bitfields, -mno-ms-bitfields
2745
2746Set the default structure layout to be compatible with the Microsoft compiler standard
2747
2748.. option:: -mnop-mcount
2749
2750Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
2751
2752.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2753
2754Omit frame pointer setup for leaf functions
2755
2756.. option:: -moslib=<arg>
2757
2758.. option:: -mpacked-stack, -mno-packed-stack
2759
2760Use packed stack layout (SystemZ only).
2761
2762.. option:: -mpad-max-prefix-size=<arg>
2763
2764Specify maximum number of prefixes to use for padding
2765
2766.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2767
2768Use copy relocations support for PIE builds
2769
2770.. option:: -mprefer-vector-width=<arg>
2771
2772Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2773
2774.. option:: -mqdsp6-compat
2775
2776Enable hexagon-qdsp6 backward compatibility
2777
2778.. option:: -mrecip
2779
2780.. program:: clang1
2781.. option:: -mrecip=<arg1>,<arg2>...
2782.. program:: clang
2783
2784.. option:: -mrecord-mcount
2785
2786Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
2787
2788.. option:: -mred-zone, -mno-red-zone
2789
2790.. option:: -mregparm=<arg>
2791
2792.. option:: -mrelax, -mno-relax
2793
2794Enable linker relaxation
2795
2796.. option:: -mrelax-all, -mno-relax-all
2797
2798(integrated-as) Relax all machine instructions
2799
2800.. option:: -mretpoline, -mno-retpoline
2801
2802.. option:: -mrtd, -mno-rtd
2803
2804Make StdCall calling convention the default
2805
2806.. option:: -mseses, -mno-seses
2807
2808Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
2809
2810.. option:: -msign-return-address=<arg>
2811
2812Select return address signing scope
2813
2814.. option:: -msim
2815
2816.. option:: -msoft-float, -mno-soft-float
2817
2818Use software floating point
2819
2820.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
2821
2822.. option:: -mstack-alignment=<arg>
2823
2824Set the stack alignment
2825
2826.. option:: -mstack-arg-probe, -mno-stack-arg-probe
2827
2828Enable stack probes
2829
2830.. option:: -mstack-probe-size=<arg>
2831
2832Set the stack probe size
2833
2834.. option:: -mstackrealign, -mno-stackrealign
2835
2836Force realign the stack at entry to every function
2837
2838.. option:: -msvr4-struct-return
2839
2840Return small structs in registers (PPC32 only)
2841
2842.. option:: -mthread-model <arg>
2843
2844The thread model to use, e.g. posix, single (posix by default)
2845
2846.. option:: -mthreads<arg>
2847
2848.. option:: -mthumb, -mno-thumb
2849
2850.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
2851
2852Enable direct TLS access through segment registers (default)
2853
2854.. option:: -mtls-size=<arg>
2855
2856Specify 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)
2857
2858.. program:: clang1
2859.. option:: -mtune=<arg>
2860.. program:: clang
2861
2862Only supported on X86. Otherwise accepted for compatibility with GCC.
2863
2864.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2865
2866.. option:: -municode<arg>
2867
2868.. option:: -mvx, -mno-vx
2869
2870.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2871
2872.. option:: -mwatchos-version-min=<arg>
2873
2874.. option:: -mwavefrontsize64, -mno-wavefrontsize64
2875
2876Wavefront size 64 is used
2877
2878.. option:: -mwindows<arg>
2879
2880.. option:: -mx32
2881
2882AARCH64
2883-------
2884.. option:: -fcall-saved-x10
2885
2886Make the x10 register call-saved (AArch64 only)
2887
2888.. option:: -fcall-saved-x11
2889
2890Make the x11 register call-saved (AArch64 only)
2891
2892.. option:: -fcall-saved-x12
2893
2894Make the x12 register call-saved (AArch64 only)
2895
2896.. option:: -fcall-saved-x13
2897
2898Make the x13 register call-saved (AArch64 only)
2899
2900.. option:: -fcall-saved-x14
2901
2902Make the x14 register call-saved (AArch64 only)
2903
2904.. option:: -fcall-saved-x15
2905
2906Make the x15 register call-saved (AArch64 only)
2907
2908.. option:: -fcall-saved-x18
2909
2910Make the x18 register call-saved (AArch64 only)
2911
2912.. option:: -fcall-saved-x8
2913
2914Make the x8 register call-saved (AArch64 only)
2915
2916.. option:: -fcall-saved-x9
2917
2918Make the x9 register call-saved (AArch64 only)
2919
2920.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2921
2922Workaround Cortex-A53 erratum 835769 (AArch64 only)
2923
2924.. option:: -mgeneral-regs-only
2925
2926Generate code which only uses the general purpose registers (AArch64 only)
2927
2928.. option:: -mmark-bti-property
2929
2930Add .note.gnu.property with BTI to assembly files (AArch64 only)
2931
2932.. option:: -msve-vector-bits=<arg>
2933
2934Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
2935
2936AMDGPU
2937------
2938.. option:: -mcode-object-v3, -mno-code-object-v3
2939
2940Legacy option to specify code object v3 (AMDGPU only)
2941
2942.. option:: -mcumode, -mno-cumode
2943
2944CU wavefront execution mode is used (AMDGPU only)
2945
2946.. option:: -msram-ecc, -mno-sram-ecc
2947
2948Enable SRAM ECC (AMDGPU only)
2949
2950.. option:: -mxnack, -mno-xnack
2951
2952Enable XNACK (AMDGPU only)
2953
2954ARM
2955---
2956.. option:: -fAAPCSBitfieldLoad
2957
2958Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
2959
2960.. option:: -ffixed-r9
2961
2962Reserve the r9 register (ARM only)
2963
2964.. option:: -mcmse
2965
2966Allow use of CMSE (Armv8-M Security Extensions)
2967
2968.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2969
2970Disallow generation of data access to code sections (ARM only)
2971
2972.. option:: -mno-movt
2973
2974Disallow use of movt/movw pairs (ARM only)
2975
2976.. option:: -mno-neg-immediates
2977
2978Disallow converting instructions with negative immediates to their negation or inversion.
2979
2980.. option:: -mnocrc
2981
2982Disallow use of CRC instructions (ARM only)
2983
2984.. option:: -mrestrict-it, -mno-restrict-it
2985
2986Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2987
2988.. option:: -mtp=<arg>
2989
2990Thread pointer access method (AArch32/AArch64 only)
2991
2992.. option:: -munaligned-access, -mno-unaligned-access
2993
2994Allow memory accesses to be unaligned (AArch32/AArch64 only)
2995
2996Hexagon
2997-------
2998.. option:: -mieee-rnd-near
2999
3000.. option:: -mmemops, -mno-memops
3001
3002Enable generation of memop instructions
3003
3004.. option:: -mnvj, -mno-nvj
3005
3006Enable generation of new-value jumps
3007
3008.. option:: -mnvs, -mno-nvs
3009
3010Enable generation of new-value stores
3011
3012.. option:: -mpackets, -mno-packets
3013
3014Enable generation of instruction packets
3015
3016Hexagon
3017-------
3018.. option:: -mhvx, -mno-hvx
3019
3020Enable Hexagon Vector eXtensions
3021
3022.. option:: -mhvx-length=<arg>
3023
3024Set Hexagon Vector Length
3025
3026.. program:: clang1
3027.. option:: -mhvx=<arg>
3028.. program:: clang
3029
3030Enable Hexagon Vector eXtensions
3031
3032MIPS
3033----
3034.. option:: -mabicalls, -mno-abicalls
3035
3036Enable SVR4-style position-independent code (Mips only)
3037
3038.. option:: -mabs=<arg>
3039
3040.. option:: -mcheck-zero-division, -mno-check-zero-division
3041
3042.. option:: -mcompact-branches=<arg>
3043
3044.. option:: -mdouble-float
3045
3046.. option:: -mdsp, -mno-dsp
3047
3048.. option:: -mdspr2, -mno-dspr2
3049
3050.. option:: -membedded-data, -mno-embedded-data
3051
3052Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
3053
3054.. option:: -mextern-sdata, -mno-extern-sdata
3055
3056Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
3057
3058.. option:: -mfp32
3059
3060Use 32-bit floating point registers (MIPS only)
3061
3062.. option:: -mfp64
3063
3064Use 64-bit floating point registers (MIPS only)
3065
3066.. option:: -mginv, -mno-ginv
3067
3068.. option:: -mgpopt, -mno-gpopt
3069
3070Use GP relative accesses for symbols known to be in a small data section (MIPS)
3071
3072.. option:: -mindirect-jump=<arg>
3073
3074Change indirect jump instructions to inhibit speculation
3075
3076.. option:: -mips16
3077
3078.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
3079
3080.. option:: -mlocal-sdata, -mno-local-sdata
3081
3082Extend the -G behaviour to object local data (MIPS)
3083
3084.. option:: -mmadd4, -mno-madd4
3085
3086Enable the generation of 4-operand madd.s, madd.d and related instructions.
3087
3088.. option:: -mmicromips, -mno-micromips
3089
3090.. option:: -mmsa, -mno-msa
3091
3092Enable MSA ASE (MIPS only)
3093
3094.. option:: -mmt, -mno-mt
3095
3096Enable MT ASE (MIPS only)
3097
3098.. option:: -mnan=<arg>
3099
3100.. option:: -mno-mips16
3101
3102.. option:: -msingle-float
3103
3104.. option:: -mvirt, -mno-virt
3105
3106.. option:: -mxgot, -mno-xgot
3107
3108PowerPC
3109-------
3110.. option:: -maltivec, -mno-altivec
3111
3112.. option:: -mcmpb, -mno-cmpb
3113
3114.. option:: -mcrbits, -mno-crbits
3115
3116.. option:: -mcrypto, -mno-crypto
3117
3118.. option:: -mdirect-move, -mno-direct-move
3119
3120.. option:: -mfloat128, -mno-float128
3121
3122.. option:: -mfprnd, -mno-fprnd
3123
3124.. option:: -mhtm, -mno-htm
3125
3126.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
3127
3128.. option:: -misel, -mno-isel
3129
3130.. option:: -mlongcall, -mno-longcall
3131
3132.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
3133
3134.. option:: -mmma, -mno-mma
3135
3136.. option:: -mpaired-vector-memops, -mno-paired-vector-memops
3137
3138.. option:: -mpcrel, -mno-pcrel
3139
3140.. option:: -mpopcntd, -mno-popcntd
3141
3142.. option:: -mpower10-vector, -mno-power10-vector
3143
3144.. option:: -mpower8-vector, -mno-power8-vector
3145
3146.. option:: -mpower9-vector, -mno-power9-vector
3147
3148.. option:: -mqpx, -mno-qpx
3149
3150.. option:: -msecure-plt
3151
3152.. option:: -mspe, -mno-spe
3153
3154.. option:: -mvsx, -mno-vsx
3155
3156WebAssembly
3157-----------
3158.. option:: -matomics, -mno-atomics
3159
3160.. option:: -mbulk-memory, -mno-bulk-memory
3161
3162.. option:: -mexception-handling, -mno-exception-handling
3163
3164.. option:: -mmultivalue, -mno-multivalue
3165
3166.. option:: -mmutable-globals, -mno-mutable-globals
3167
3168.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
3169
3170.. option:: -mreference-types, -mno-reference-types
3171
3172.. option:: -msign-ext, -mno-sign-ext
3173
3174.. option:: -msimd128, -mno-simd128
3175
3176.. option:: -mtail-call, -mno-tail-call
3177
3178.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
3179
3180WebAssembly Driver
3181------------------
3182.. option:: -mexec-model=<arg>
3183
3184Execution model (WebAssembly only)
3185
3186X86
3187---
3188.. option:: -m3dnow, -mno-3dnow
3189
3190.. option:: -m3dnowa, -mno-3dnowa
3191
3192.. option:: -madx, -mno-adx
3193
3194.. option:: -maes, -mno-aes
3195
3196.. option:: -mamx-bf16, -mno-amx-bf16
3197
3198.. option:: -mamx-int8, -mno-amx-int8
3199
3200.. option:: -mamx-tile, -mno-amx-tile
3201
3202.. option:: -mavx, -mno-avx
3203
3204.. option:: -mavx2, -mno-avx2
3205
3206.. option:: -mavx512bf16, -mno-avx512bf16
3207
3208.. option:: -mavx512bitalg, -mno-avx512bitalg
3209
3210.. option:: -mavx512bw, -mno-avx512bw
3211
3212.. option:: -mavx512cd, -mno-avx512cd
3213
3214.. option:: -mavx512dq, -mno-avx512dq
3215
3216.. option:: -mavx512er, -mno-avx512er
3217
3218.. option:: -mavx512f, -mno-avx512f
3219
3220.. option:: -mavx512ifma, -mno-avx512ifma
3221
3222.. option:: -mavx512pf, -mno-avx512pf
3223
3224.. option:: -mavx512vbmi, -mno-avx512vbmi
3225
3226.. option:: -mavx512vbmi2, -mno-avx512vbmi2
3227
3228.. option:: -mavx512vl, -mno-avx512vl
3229
3230.. option:: -mavx512vnni, -mno-avx512vnni
3231
3232.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
3233
3234.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
3235
3236.. option:: -mbmi, -mno-bmi
3237
3238.. option:: -mbmi2, -mno-bmi2
3239
3240.. option:: -mcldemote, -mno-cldemote
3241
3242.. option:: -mclflushopt, -mno-clflushopt
3243
3244.. option:: -mclwb, -mno-clwb
3245
3246.. option:: -mclzero, -mno-clzero
3247
3248.. option:: -mcx16, -mno-cx16
3249
3250.. option:: -menqcmd, -mno-enqcmd
3251
3252.. option:: -mf16c, -mno-f16c
3253
3254.. option:: -mfma, -mno-fma
3255
3256.. option:: -mfma4, -mno-fma4
3257
3258.. option:: -mfsgsbase, -mno-fsgsbase
3259
3260.. option:: -mfxsr, -mno-fxsr
3261
3262.. option:: -mgfni, -mno-gfni
3263
3264.. option:: -mhreset, -mno-hreset
3265
3266.. option:: -minvpcid, -mno-invpcid
3267
3268.. option:: -mkl, -mno-kl
3269
3270.. option:: -mlwp, -mno-lwp
3271
3272.. option:: -mlzcnt, -mno-lzcnt
3273
3274.. option:: -mmmx, -mno-mmx
3275
3276.. option:: -mmovbe, -mno-movbe
3277
3278.. option:: -mmovdir64b, -mno-movdir64b
3279
3280.. option:: -mmovdiri, -mno-movdiri
3281
3282.. option:: -mmwaitx, -mno-mwaitx
3283
3284.. option:: -mpclmul, -mno-pclmul
3285
3286.. option:: -mpconfig, -mno-pconfig
3287
3288.. option:: -mpku, -mno-pku
3289
3290.. option:: -mpopcnt, -mno-popcnt
3291
3292.. option:: -mprefetchwt1, -mno-prefetchwt1
3293
3294.. option:: -mprfchw, -mno-prfchw
3295
3296.. option:: -mptwrite, -mno-ptwrite
3297
3298.. option:: -mrdpid, -mno-rdpid
3299
3300.. option:: -mrdrnd, -mno-rdrnd
3301
3302.. option:: -mrdseed, -mno-rdseed
3303
3304.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
3305
3306.. option:: -mrtm, -mno-rtm
3307
3308.. option:: -msahf, -mno-sahf
3309
3310.. option:: -mserialize, -mno-serialize
3311
3312.. option:: -msgx, -mno-sgx
3313
3314.. option:: -msha, -mno-sha
3315
3316.. option:: -mshstk, -mno-shstk
3317
3318.. option:: -msse, -mno-sse
3319
3320.. option:: -msse2, -mno-sse2
3321
3322.. option:: -msse3, -mno-sse3
3323
3324.. option:: -msse4.1, -mno-sse4.1
3325
3326.. program:: clang1
3327.. option:: -msse4.2, -mno-sse4.2, -msse4
3328.. program:: clang
3329
3330.. option:: -msse4a, -mno-sse4a
3331
3332.. option:: -mssse3, -mno-ssse3
3333
3334.. option:: -mtbm, -mno-tbm
3335
3336.. option:: -mtsxldtrk, -mno-tsxldtrk
3337
3338.. option:: -mvaes, -mno-vaes
3339
3340.. option:: -mvpclmulqdq, -mno-vpclmulqdq
3341
3342.. option:: -mvzeroupper, -mno-vzeroupper
3343
3344.. option:: -mwaitpkg, -mno-waitpkg
3345
3346.. option:: -mwbnoinvd, -mno-wbnoinvd
3347
3348.. option:: -mwidekl, -mno-widekl
3349
3350.. option:: -mx87, -m80387, -mno-x87
3351
3352.. option:: -mxop, -mno-xop
3353
3354.. option:: -mxsave, -mno-xsave
3355
3356.. option:: -mxsavec, -mno-xsavec
3357
3358.. option:: -mxsaveopt, -mno-xsaveopt
3359
3360.. option:: -mxsaves, -mno-xsaves
3361
3362RISCV
3363-----
3364.. option:: -msave-restore, -mno-save-restore
3365
3366Enable using library calls for save and restore
3367
3368Long double flags
3369-----------------
3370Selects the long double implementation
3371
3372.. option:: -mlong-double-128
3373
3374Force long double to be 128 bits
3375
3376.. option:: -mlong-double-64
3377
3378Force long double to be 64 bits
3379
3380.. option:: -mlong-double-80
3381
3382Force long double to be 80 bits, padded to 128 bits for storage
3383
3384Optimization level
3385~~~~~~~~~~~~~~~~~~
3386
3387Flags controlling how much optimization should be performed.
3388
3389.. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
3390
3391.. option:: -Ofast<arg>
3392
3393Debug information generation
3394~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3395
3396Flags controlling how much and what kind of debug information should be
3397generated.
3398
3399Kind and level of debug information
3400-----------------------------------
3401.. option:: -g, --debug, --debug=<arg>
3402
3403Generate source-level debug information
3404
3405.. option:: -gdwarf
3406
3407Generate source-level debug information with the default dwarf version
3408
3409.. option:: -gdwarf-2
3410
3411Generate source-level debug information with dwarf version 2
3412
3413.. option:: -gdwarf-3
3414
3415Generate source-level debug information with dwarf version 3
3416
3417.. option:: -gdwarf-4
3418
3419Generate source-level debug information with dwarf version 4
3420
3421.. option:: -gdwarf-5
3422
3423Generate source-level debug information with dwarf version 5
3424
3425.. option:: -gfull
3426
3427.. option:: -gused
3428
3429Debug level
3430___________
3431.. option:: -g0
3432
3433.. option:: -g2
3434
3435.. option:: -g3
3436
3437.. option:: -ggdb0
3438
3439.. option:: -ggdb1
3440
3441.. option:: -ggdb2
3442
3443.. option:: -ggdb3
3444
3445.. option:: -gline-directives-only
3446
3447Emit debug line info directives only
3448
3449.. option:: -gline-tables-only, -g1, -gmlt
3450
3451Emit debug line number tables only
3452
3453.. option:: -gmodules
3454
3455Generate debug info with external references to clang modules or precompiled headers
3456
3457Debugger to tune debug information for
3458______________________________________
3459.. option:: -ggdb
3460
3461.. option:: -glldb
3462
3463.. option:: -gsce
3464
3465Debug information flags
3466-----------------------
3467.. option:: -gcolumn-info, -gno-column-info
3468
3469.. option:: -gdwarf-aranges
3470
3471.. option:: -gembed-source, -gno-embed-source
3472
3473Embed source text in DWARF debug sections
3474
3475.. option:: -ggnu-pubnames, -gno-gnu-pubnames
3476
3477.. option:: -gpubnames, -gno-pubnames
3478
3479.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
3480
3481.. option:: -gsplit-dwarf
3482
3483.. program:: clang1
3484.. option:: -gsplit-dwarf=<arg>
3485.. program:: clang
3486
3487Set DWARF fission mode to either 'split' or 'single'
3488
3489.. option:: -gstrict-dwarf, -gno-strict-dwarf
3490
3491.. option:: -gz
3492
3493DWARF debug sections compression type
3494
3495.. program:: clang1
3496.. option:: -gz=<arg>
3497.. program:: clang
3498
3499DWARF debug sections compression type
3500
3501Static analyzer flags
3502=====================
3503
3504Flags controlling the behavior of the Clang Static Analyzer.
3505
3506.. option:: -Xanalyzer <arg>
3507
3508Pass <arg> to the static analyzer
3509
3510Fortran compilation flags
3511=========================
3512
3513Flags that will be passed onto the ``gfortran`` compiler when Clang is given
3514a Fortran input.
3515
3516.. option:: -A<arg>, --assert <arg>, --assert=<arg>
3517
3518.. option:: -A-<arg>
3519
3520.. option:: -J<arg>
3521
3522.. option:: -cpp
3523
3524.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
3525
3526.. option:: -falign-commons, -fno-align-commons
3527
3528.. option:: -fall-intrinsics, -fno-all-intrinsics
3529
3530.. option:: -fautomatic, -fno-automatic
3531
3532.. option:: -fbackslash, -fno-backslash
3533
3534.. option:: -fbacktrace, -fno-backtrace
3535
3536.. option:: -fblas-matmul-limit=<arg>
3537
3538.. option:: -fbounds-check, -fno-bounds-check
3539
3540.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
3541
3542.. option:: -fcheck=<arg>
3543
3544.. option:: -fcoarray=<arg>
3545
3546.. option:: -fconvert=<arg>
3547
3548.. option:: -fcray-pointer, -fno-cray-pointer
3549
3550.. option:: -fd-lines-as-code, -fno-d-lines-as-code
3551
3552.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
3553
3554.. option:: -fdefault-double-8, -fno-default-double-8
3555
3556.. option:: -fdefault-integer-8, -fno-default-integer-8
3557
3558.. option:: -fdefault-real-8, -fno-default-real-8
3559
3560.. option:: -fdollar-ok, -fno-dollar-ok
3561
3562.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
3563
3564.. option:: -fdump-fortran-original, -fno-dump-fortran-original
3565
3566.. option:: -fdump-parse-tree, -fno-dump-parse-tree
3567
3568.. option:: -fexternal-blas, -fno-external-blas
3569
3570.. option:: -ff2c, -fno-f2c
3571
3572.. option:: -ffixed-form, -fno-fixed-form
3573
3574.. option:: -ffixed-line-length-<arg>
3575
3576.. option:: -ffpe-trap=<arg>
3577
3578.. option:: -ffree-form, -fno-free-form
3579
3580.. option:: -ffree-line-length-<arg>
3581
3582.. option:: -ffrontend-optimize, -fno-frontend-optimize
3583
3584.. option:: -fimplicit-none, -fno-implicit-none
3585
3586.. option:: -finit-character=<arg>
3587
3588.. option:: -finit-integer=<arg>
3589
3590.. option:: -finit-local-zero, -fno-init-local-zero
3591
3592.. option:: -finit-logical=<arg>
3593
3594.. option:: -finit-real=<arg>
3595
3596.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3597
3598.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3599
3600.. option:: -fmax-array-constructor=<arg>
3601
3602.. option:: -fmax-errors=<arg>
3603
3604.. option:: -fmax-identifier-length, -fno-max-identifier-length
3605
3606.. option:: -fmax-stack-var-size=<arg>
3607
3608.. option:: -fmax-subrecord-length=<arg>
3609
3610.. option:: -fmodule-private, -fno-module-private
3611
3612.. option:: -fpack-derived, -fno-pack-derived
3613
3614.. option:: -fprotect-parens, -fno-protect-parens
3615
3616.. option:: -frange-check, -fno-range-check
3617
3618.. option:: -freal-4-real-10, -fno-real-4-real-10
3619
3620.. option:: -freal-4-real-16, -fno-real-4-real-16
3621
3622.. option:: -freal-4-real-8, -fno-real-4-real-8
3623
3624.. option:: -freal-8-real-10, -fno-real-8-real-10
3625
3626.. option:: -freal-8-real-16, -fno-real-8-real-16
3627
3628.. option:: -freal-8-real-4, -fno-real-8-real-4
3629
3630.. option:: -frealloc-lhs, -fno-realloc-lhs
3631
3632.. option:: -frecord-marker=<arg>
3633
3634.. option:: -frecursive, -fno-recursive
3635
3636.. option:: -frepack-arrays, -fno-repack-arrays
3637
3638.. option:: -fsecond-underscore, -fno-second-underscore
3639
3640.. option:: -fsign-zero, -fno-sign-zero
3641
3642.. option:: -fstack-arrays, -fno-stack-arrays
3643
3644.. option:: -funderscoring, -fno-underscoring
3645
3646.. option:: -fwhole-file, -fno-whole-file
3647
3648.. option:: -imultilib <arg>
3649
3650.. option:: -nocpp
3651
3652.. option:: -static-libgfortran
3653
3654Linker flags
3655============
3656Flags that are passed on to the linker
3657
3658.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3659
3660Add directory to library search path
3661
3662.. option:: -Mach
3663
3664.. option:: -T<script>
3665
3666Specify <script> as linker script
3667
3668.. option:: -Tbss<addr>
3669
3670Set starting address of BSS to <addr>
3671
3672.. option:: -Tdata<addr>
3673
3674Set starting address of DATA to <addr>
3675
3676.. option:: -Ttext<addr>
3677
3678Set starting address of TEXT to <addr>
3679
3680.. option:: -Wl,<arg>,<arg2>...
3681
3682Pass the comma separated arguments in <arg> to the linker
3683
3684.. option:: -X
3685
3686.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3687
3688Pass <arg> to the linker
3689
3690.. program:: clang1
3691.. option:: -Z
3692.. program:: clang
3693
3694.. option:: -coverage, --coverage
3695
3696.. option:: -e<arg>, --entry
3697
3698.. option:: -filelist <arg>
3699
3700.. option:: --hip-device-lib=<arg>
3701
3702HIP device library
3703
3704.. option:: -l<arg>
3705
3706.. option:: --ld-path=<arg>
3707
3708.. option:: -nostartfiles
3709
3710.. program:: clang1
3711.. option:: -nostdlib, --no-standard-libraries
3712.. program:: clang
3713
3714.. option:: -pie
3715
3716.. option:: -r
3717
3718.. option:: -rdynamic
3719
3720.. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
3721
3722ROCm device library path. Alternative to rocm-path.
3723
3724.. option:: -rpath <arg>
3725
3726.. option:: -s
3727
3728.. option:: -shared, --shared
3729
3730.. option:: -specs=<arg>, --specs=<arg>
3731
3732.. option:: -static, --static
3733
3734.. option:: -static-pie
3735
3736.. option:: -t
3737
3738.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3739
3740.. option:: -undef
3741
3742undef all system defines
3743
3744.. option:: -undefined<arg>, --no-undefined
3745
3746.. option:: -z <arg>
3747
3748Pass -z <arg> to the linker
3749
3750