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. For C++ input, if
1020there are multiple -I options, these directories are searched
1021in the order they are given before the standard system directories
1022are searched. If the same directory is in the SYSTEM include search
1023paths, for example if also specified with -isystem, the -I option
1024will be ignored
1025
1026.. option:: -I-, --include-barrier
1027
1028Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
1029
1030.. option:: --cuda-path-ignore-env
1031
1032Ignore environment variables to detect CUDA installation
1033
1034.. option:: --cuda-path=<arg>
1035
1036CUDA installation path
1037
1038.. option:: -cxx-isystem<directory>
1039
1040Add directory to the C++ SYSTEM include search path
1041
1042.. option:: -fbuild-session-file=<file>
1043
1044Use the last modification time of <file> as the build session timestamp
1045
1046.. option:: -fbuild-session-timestamp=<time since Epoch in seconds>
1047
1048Time when the current build session started
1049
1050.. option:: -fmodule-file=\[<name>=\]<file>
1051
1052Specify the mapping of module name to precompiled module file, or load a module file if name is omitted.
1053
1054.. option:: -fmodules-cache-path=<directory>
1055
1056Specify the module cache path
1057
1058.. option:: -fmodules-disable-diagnostic-validation
1059
1060Disable validation of the diagnostic options when loading the module
1061
1062.. option:: -fmodules-prune-after=<seconds>
1063
1064Specify the interval (in seconds) after which a module file will be considered unused
1065
1066.. option:: -fmodules-prune-interval=<seconds>
1067
1068Specify the interval (in seconds) between attempts to prune the module cache
1069
1070.. option:: -fmodules-user-build-path <directory>
1071
1072Specify the module user build path
1073
1074.. option:: -fmodules-validate-once-per-build-session
1075
1076Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
1077
1078.. option:: -fmodules-validate-system-headers, -fno-modules-validate-system-headers
1079
1080Validate the system headers that a module depends on when loading the module
1081
1082.. option:: -fprebuilt-module-path=<directory>
1083
1084Specify the prebuilt module path
1085
1086.. option:: -idirafter<arg>, --include-directory-after <arg>, --include-directory-after=<arg>
1087
1088Add directory to AFTER include search path
1089
1090.. option:: -iframework<arg>
1091
1092Add directory to SYSTEM framework search path
1093
1094.. option:: -iframeworkwithsysroot<directory>
1095
1096Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
1097
1098.. option:: -imacros<file>, --imacros<file>, --imacros=<arg>
1099
1100Include macros from file before parsing
1101
1102.. option:: -include<file>, --include<file>, --include=<arg>
1103
1104Include file before parsing
1105
1106.. option:: -include-pch <file>
1107
1108Include precompiled header file
1109
1110.. option:: -iprefix<dir>, --include-prefix <arg>, --include-prefix=<arg>
1111
1112Set the -iwithprefix/-iwithprefixbefore prefix
1113
1114.. option:: -iquote<directory>
1115
1116Add directory to QUOTE include search path
1117
1118.. option:: -isysroot<dir>
1119
1120Set the system root directory (usually /)
1121
1122.. option:: -isystem<directory>
1123
1124Add directory to SYSTEM include search path
1125
1126.. option:: -isystem-after<directory>
1127
1128Add directory to end of the SYSTEM include search path
1129
1130.. option:: -ivfsoverlay<arg>
1131
1132Overlay the virtual filesystem described by file over the real file system
1133
1134.. option:: -iwithprefix<dir>, --include-with-prefix <arg>, --include-with-prefix-after <arg>, --include-with-prefix-after=<arg>, --include-with-prefix=<arg>
1135
1136Set directory to SYSTEM include search path with prefix
1137
1138.. option:: -iwithprefixbefore<dir>, --include-with-prefix-before <arg>, --include-with-prefix-before=<arg>
1139
1140Set directory to include search path with prefix
1141
1142.. option:: -iwithsysroot<directory>
1143
1144Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
1145
1146.. option:: --libomptarget-nvptx-bc-path=<arg>
1147
1148Path to libomptarget-nvptx bitcode library
1149
1150.. option:: --ptxas-path=<arg>
1151
1152Path to ptxas (used for compiling CUDA code)
1153
1154.. option:: --rocm-path=<arg>
1155
1156ROCm installation path, used for finding and automatically linking required bitcode libraries.
1157
1158.. program:: clang1
1159.. option:: -stdlib++-isystem<directory>
1160.. program:: clang
1161
1162Use directory as the C++ standard library include path
1163
1164.. option:: --system-header-prefix=<prefix>, --no-system-header-prefix=<prefix>, --system-header-prefix <arg>
1165
1166Treat all #include paths starting with <prefix> as including a system header.
1167
1168Dependency file generation
1169--------------------------
1170
1171Flags controlling generation of a dependency file for ``make``-like build
1172systems.
1173
1174.. option:: -M, --dependencies
1175
1176Like -MD, but also implies -E and writes to stdout by default
1177
1178.. option:: -MD, --write-dependencies
1179
1180Write a depfile containing user and system headers
1181
1182.. option:: -MF<file>
1183
1184Write depfile output from -MMD, -MD, -MM, or -M to <file>
1185
1186.. option:: -MG, --print-missing-file-dependencies
1187
1188Add missing headers to depfile
1189
1190.. option:: -MJ<arg>
1191
1192Write a compilation database entry per input
1193
1194.. option:: -MM, --user-dependencies
1195
1196Like -MMD, but also implies -E and writes to stdout by default
1197
1198.. option:: -MMD, --write-user-dependencies
1199
1200Write a depfile containing user headers
1201
1202.. option:: -MP
1203
1204Create phony target for each dependency (other than main file)
1205
1206.. option:: -MQ<arg>
1207
1208Specify name of main file output to quote in depfile
1209
1210.. option:: -MT<arg>
1211
1212Specify name of main file output in depfile
1213
1214.. option:: -MV
1215
1216Use NMake/Jom format for the depfile
1217
1218Dumping preprocessor state
1219--------------------------
1220
1221Flags allowing the state of the preprocessor to be dumped in various ways.
1222
1223.. option:: -d
1224
1225.. program:: clang1
1226.. option:: -d<arg>
1227.. program:: clang
1228
1229.. option:: -dD
1230
1231Print macro definitions in -E mode in addition to normal output
1232
1233.. option:: -dI
1234
1235Print include directives in -E mode in addition to normal output
1236
1237.. option:: -dM
1238
1239Print macro definitions in -E mode instead of normal output
1240
1241Diagnostic flags
1242~~~~~~~~~~~~~~~~
1243
1244Flags controlling which warnings, errors, and remarks Clang will generate.
1245See the :doc:`full list of warning and remark flags <DiagnosticsReference>`.
1246
1247.. option:: -R<remark>
1248
1249Enable the specified remark
1250
1251.. option:: -Rpass-analysis=<arg>
1252
1253Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
1254
1255.. option:: -Rpass-missed=<arg>
1256
1257Report missed transformations by optimization passes whose name matches the given POSIX regular expression
1258
1259.. option:: -Rpass=<arg>
1260
1261Report transformations performed by optimization passes whose name matches the given POSIX regular expression
1262
1263.. option:: -W<warning>, --extra-warnings, --warn-<arg>, --warn-=<arg>
1264
1265Enable the specified warning
1266
1267.. option:: -Wdeprecated, -Wno-deprecated
1268
1269Enable warnings for deprecated constructs and define \_\_DEPRECATED
1270
1271.. option:: -Wnonportable-cfstrings<arg>, -Wno-nonportable-cfstrings<arg>
1272
1273Target-independent compilation options
1274~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1275.. option:: -Wframe-larger-than=<arg>
1276
1277.. option:: -fPIC, -fno-PIC
1278
1279.. option:: -fPIE, -fno-PIE
1280
1281.. option:: -faddrsig, -fno-addrsig
1282
1283Emit an address-significance table
1284
1285.. option:: -falign-functions, -fno-align-functions
1286
1287.. program:: clang1
1288.. option:: -falign-functions=<arg>
1289.. program:: clang
1290
1291.. program:: clang1
1292.. option:: -faligned-allocation, -faligned-new, -fno-aligned-allocation
1293.. program:: clang
1294
1295Enable C++17 aligned allocation functions
1296
1297.. option:: -fallow-editor-placeholders, -fno-allow-editor-placeholders
1298
1299Treat editor placeholders as valid source code
1300
1301.. option:: -fallow-unsupported
1302
1303.. option:: -faltivec, -fno-altivec
1304
1305.. option:: -fansi-escape-codes
1306
1307Use ANSI escape codes for diagnostics
1308
1309.. option:: -fapple-kext, -findirect-virtual-calls, -fterminated-vtables
1310
1311Use Apple's kernel extensions ABI
1312
1313.. option:: -fapple-link-rtlib
1314
1315Force linking the clang builtins runtime library
1316
1317.. option:: -fapple-pragma-pack, -fno-apple-pragma-pack
1318
1319Enable Apple gcc-compatible #pragma pack handling
1320
1321.. option:: -fapplication-extension, -fno-application-extension
1322
1323Restrict code to those available for App Extensions
1324
1325.. option:: -fasm, -fno-asm
1326
1327.. option:: -fasm-blocks, -fno-asm-blocks
1328
1329.. option:: -fassociative-math, -fno-associative-math
1330
1331.. option:: -fassume-sane-operator-new, -fno-assume-sane-operator-new
1332
1333.. option:: -fast
1334
1335.. option:: -fastcp
1336
1337.. option:: -fastf
1338
1339.. option:: -fasynchronous-unwind-tables, -fno-asynchronous-unwind-tables
1340
1341.. option:: -fautolink, -fno-autolink
1342
1343.. option:: -fbasic-block-sections=<arg>
1344
1345Generate labels for each basic block or place each basic block or a subset of basic blocks in its own section.
1346
1347.. option:: -fblocks, -fno-blocks
1348
1349Enable the 'blocks' language feature
1350
1351.. option:: -fbootclasspath=<arg>, --bootclasspath <arg>, --bootclasspath=<arg>
1352
1353.. option:: -fborland-extensions, -fno-borland-extensions
1354
1355Accept non-standard constructs supported by the Borland compiler
1356
1357.. option:: -fbracket-depth=<arg>
1358
1359.. option:: -fbuiltin, -fno-builtin
1360
1361.. option:: -fbuiltin-module-map
1362
1363Load the clang builtins module map file.
1364
1365.. option:: -fc++-static-destructors, -fno-c++-static-destructors
1366
1367.. option:: -fcaret-diagnostics, -fno-caret-diagnostics
1368
1369.. option:: -fcf-protection=<arg>, -fcf-protection (equivalent to -fcf-protection=full)
1370
1371Instrument control-flow architecture protection. Options: return, branch, full, none.
1372
1373.. option:: -fcf-runtime-abi=<arg>
1374
1375.. option:: -fchar8\_t, -fno-char8\_t
1376
1377Enable C++ builtin type char8\_t
1378
1379.. option:: -fclasspath=<arg>, --CLASSPATH <arg>, --CLASSPATH=<arg>, --classpath <arg>, --classpath=<arg>
1380
1381.. option:: -fcolor-diagnostics, -fno-color-diagnostics
1382
1383Enable colors in diagnostics
1384
1385.. option:: -fcommon, -fno-common
1386
1387Place uninitialized global variables in a common block
1388
1389.. option:: -fcompile-resource=<arg>, --resource <arg>, --resource=<arg>
1390
1391.. option:: -fconstant-cfstrings, -fno-constant-cfstrings
1392
1393.. option:: -fconstant-string-class=<arg>
1394
1395.. option:: -fconstexpr-backtrace-limit=<arg>
1396
1397.. option:: -fconstexpr-depth=<arg>
1398
1399.. option:: -fconstexpr-steps=<arg>
1400
1401.. option:: -fconvergent-functions
1402
1403Assume functions may be convergent
1404
1405.. option:: -fcoroutines-ts, -fno-coroutines-ts
1406
1407Enable support for the C++ Coroutines TS
1408
1409.. option:: -fcoverage-mapping, -fno-coverage-mapping
1410
1411Generate coverage mapping to enable code coverage analysis
1412
1413.. option:: -fcreate-profile
1414
1415.. option:: -fcs-profile-generate
1416
1417Generate instrumented code to collect context sensitive execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1418
1419.. program:: clang1
1420.. option:: -fcs-profile-generate=<directory>
1421.. program:: clang
1422
1423Generate instrumented code to collect context sensitive execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1424
1425.. option:: -fcuda-approx-transcendentals, -fno-cuda-approx-transcendentals
1426
1427Use approximate transcendental functions
1428
1429.. option:: -fcuda-short-ptr, -fno-cuda-short-ptr
1430
1431Use 32-bit pointers for accessing const/local/shared address spaces
1432
1433.. option:: -fcxx-exceptions, -fno-cxx-exceptions
1434
1435Enable C++ exceptions
1436
1437.. option:: -fcxx-modules, -fno-cxx-modules
1438
1439.. option:: -fdata-sections, -fno-data-sections
1440
1441Place each data in its own section
1442
1443.. option:: -fdebug-compilation-dir <arg>, -fdebug-compilation-dir=<arg>
1444
1445The compilation directory to embed in the debug info.
1446
1447.. option:: -fdebug-default-version=<arg>
1448
1449Default DWARF version to use, if a -g option caused DWARF debug info to be produced
1450
1451.. option:: -fdebug-info-for-profiling, -fno-debug-info-for-profiling
1452
1453Emit extra debug info to make sample profile more accurate
1454
1455.. option:: -fdebug-macro, -fno-debug-macro
1456
1457Emit macro debug information
1458
1459.. option:: -fdebug-pass-arguments
1460
1461.. option:: -fdebug-pass-structure
1462
1463.. option:: -fdebug-prefix-map=<arg>
1464
1465remap file source paths in debug info
1466
1467.. option:: -fdebug-ranges-base-address, -fno-debug-ranges-base-address
1468
1469Use DWARF base address selection entries in .debug\_ranges
1470
1471.. option:: -fdebug-types-section, -fno-debug-types-section
1472
1473Place debug types in their own section (ELF Only)
1474
1475.. option:: -fdelayed-template-parsing, -fno-delayed-template-parsing
1476
1477Parse templated function definitions at the end of the translation unit
1478
1479.. option:: -fdelete-null-pointer-checks, -fno-delete-null-pointer-checks
1480
1481Treat usage of null pointers as undefined behavior (default)
1482
1483.. option:: -fdenormal-fp-math=<arg>
1484
1485.. option:: -fdiagnostics-absolute-paths
1486
1487Print absolute paths in diagnostics
1488
1489.. option:: -fdiagnostics-color, -fno-diagnostics-color
1490
1491.. program:: clang1
1492.. option:: -fdiagnostics-color=<arg>
1493.. program:: clang
1494
1495.. option:: -fdiagnostics-hotness-threshold=<number>
1496
1497Prevent optimization remarks from being output if they do not have at least this profile count
1498
1499.. option:: -fdiagnostics-show-hotness, -fno-diagnostics-show-hotness
1500
1501Enable profile hotness information in diagnostic line
1502
1503.. option:: -fdiagnostics-show-note-include-stack, -fno-diagnostics-show-note-include-stack
1504
1505Display include stacks for diagnostic notes
1506
1507.. option:: -fdiagnostics-show-option, -fno-diagnostics-show-option
1508
1509Print option name with mappable diagnostics
1510
1511.. option:: -fdiagnostics-show-template-tree
1512
1513Print a template comparison tree for differing templates
1514
1515.. option:: -fdigraphs, -fno-digraphs
1516
1517Enable alternative token representations '<:', ':>', '<%', '%>', '%:', '%:%:' (default)
1518
1519.. option:: -fdollars-in-identifiers, -fno-dollars-in-identifiers
1520
1521Allow '$' in identifiers
1522
1523.. option:: -fdouble-square-bracket-attributes, -fno-double-square-bracket-attributes
1524
1525Enable '\[\[\]\]' attributes in all C and C++ language modes
1526
1527.. option:: -fdwarf-directory-asm, -fno-dwarf-directory-asm
1528
1529.. option:: -fdwarf-exceptions
1530
1531Use DWARF style exceptions
1532
1533.. option:: -felide-constructors, -fno-elide-constructors
1534
1535.. option:: -feliminate-unused-debug-symbols, -fno-eliminate-unused-debug-symbols
1536
1537.. option:: -feliminate-unused-debug-types, -fno-eliminate-unused-debug-types
1538
1539Do not emit  debug info for defined but unused types
1540
1541.. option:: -fembed-bitcode=<option>, -fembed-bitcode (equivalent to -fembed-bitcode=all), -fembed-bitcode-marker (equivalent to -fembed-bitcode=marker)
1542
1543Embed LLVM bitcode (option: off, all, bitcode, marker)
1544
1545.. option:: -femit-all-decls
1546
1547Emit all declarations, even if unused
1548
1549.. option:: -femulated-tls, -fno-emulated-tls
1550
1551Use emutls functions to access thread\_local variables
1552
1553.. option:: -fenable-matrix
1554
1555Enable matrix data type and related builtin functions
1556
1557.. option:: -fencoding=<arg>, --encoding <arg>, --encoding=<arg>
1558
1559.. option:: -ferror-limit=<arg>
1560
1561.. option:: -fescaping-block-tail-calls, -fno-escaping-block-tail-calls
1562
1563.. option:: -fexceptions, -fno-exceptions
1564
1565Enable support for exception handling
1566
1567.. option:: -fexec-charset=<arg>
1568
1569.. option:: -fexperimental-new-constant-interpreter
1570
1571Enable the experimental new constant interpreter
1572
1573.. option:: -fexperimental-relative-c++-abi-vtables, -fno-experimental-relative-c++-abi-vtables
1574
1575Use the experimental C++ class ABI for classes with virtual tables
1576
1577.. option:: -fextdirs=<arg>, --extdirs <arg>, --extdirs=<arg>
1578
1579.. option:: -ffast-math, -fno-fast-math
1580
1581Allow aggressive, lossy floating-point optimizations
1582
1583.. option:: -ffile-prefix-map=<arg>
1584
1585remap file source paths in debug info and predefined preprocessor macros
1586
1587.. option:: -ffinite-math-only, -fno-finite-math-only
1588
1589.. option:: -ffixed-point, -fno-fixed-point
1590
1591Enable fixed point types
1592
1593.. option:: -ffor-scope, -fno-for-scope
1594
1595.. option:: -fforce-dwarf-frame, -fno-force-dwarf-frame
1596
1597Always emit a debug frame section
1598
1599.. option:: -fforce-emit-vtables, -fno-force-emit-vtables
1600
1601Emits more virtual tables to improve devirtualization
1602
1603.. option:: -fforce-enable-int128, -fno-force-enable-int128
1604
1605Enable support for int128\_t type
1606
1607.. option:: -ffp-contract=<arg>
1608
1609Form 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.
1610
1611.. option:: -ffp-exception-behavior=<arg>
1612
1613Specifies the exception behavior of floating-point operations.
1614
1615.. option:: -ffp-model=<arg>
1616
1617Controls the semantics of floating-point calculations.
1618
1619.. option:: -ffreestanding
1620
1621Assert that the compilation takes place in a freestanding environment
1622
1623.. option:: -ffunction-sections, -fno-function-sections
1624
1625Place each function in its own section
1626
1627.. option:: -fgnu-inline-asm, -fno-gnu-inline-asm
1628
1629.. option:: -fgnu-keywords, -fno-gnu-keywords
1630
1631Allow GNU-extension keywords regardless of language standard
1632
1633.. option:: -fgnu-runtime
1634
1635Generate output compatible with the standard GNU Objective-C runtime
1636
1637.. option:: -fgnu89-inline, -fno-gnu89-inline
1638
1639Use the gnu89 inline semantics
1640
1641.. option:: -fgnuc-version=<arg>
1642
1643Sets various macros to claim compatibility with the given GCC version (default is 4.2.1)
1644
1645.. option:: -fgpu-allow-device-init, -fno-gpu-allow-device-init
1646
1647Allow device side init function in HIP
1648
1649.. option:: -fgpu-defer-diag, -fno-gpu-defer-diag
1650
1651Defer host/device related diagnostic messages for CUDA/HIP
1652
1653.. option:: -fgpu-rdc, -fcuda-rdc, -fno-gpu-rdc
1654
1655Generate relocatable device code, also known as separate compilation mode
1656
1657.. option:: -fhip-new-launch-api, -fno-hip-new-launch-api
1658
1659Use new kernel launching API for HIP
1660
1661.. option:: -fhonor-infinities, -fhonor-infinites, -fno-honor-infinities
1662
1663.. option:: -fhonor-nans, -fno-honor-nans
1664
1665.. option:: -fhosted
1666
1667.. option:: -fignore-exceptions
1668
1669Enable support for ignoring exception handling constructs
1670
1671.. option:: -fimplicit-module-maps, -fmodule-maps, -fno-implicit-module-maps
1672
1673Implicitly search the file system for module map files.
1674
1675.. option:: -fimplicit-modules, -fno-implicit-modules
1676
1677.. option:: -finput-charset=<arg>
1678
1679.. option:: -finstrument-function-entry-bare
1680
1681Instrument function entry only, after inlining, without arguments to the instrumentation call
1682
1683.. option:: -finstrument-functions
1684
1685Generate calls to instrument function entry and exit
1686
1687.. option:: -finstrument-functions-after-inlining
1688
1689Like -finstrument-functions, but insert the calls after inlining
1690
1691.. option:: -fintegrated-as, -fno-integrated-as, -integrated-as
1692
1693Enable the integrated assembler
1694
1695.. option:: -fintegrated-cc1, -fno-integrated-cc1
1696
1697Run cc1 in-process
1698
1699.. option:: -fjump-tables, -fno-jump-tables
1700
1701Use jump tables for lowering switches
1702
1703.. option:: -fkeep-static-consts, -fno-keep-static-consts
1704
1705Keep static const variables if unused
1706
1707.. option:: -flax-vector-conversions=<arg>, -flax-vector-conversions (equivalent to -flax-vector-conversions=integer), -fno-lax-vector-conversions (equivalent to -flax-vector-conversions=none)
1708
1709Enable implicit vector bit-casts
1710
1711.. option:: -flimited-precision=<arg>
1712
1713.. option:: -flto, -fno-lto
1714
1715Enable LTO in 'full' mode
1716
1717.. option:: -flto-jobs=<arg>
1718
1719Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
1720
1721.. program:: clang1
1722.. option:: -flto=<arg>
1723.. program:: clang
1724
1725Set LTO mode to either 'full' or 'thin'
1726
1727.. option:: -fmacro-backtrace-limit=<arg>
1728
1729.. option:: -fmath-errno, -fno-math-errno
1730
1731Require math functions to indicate errors by setting errno
1732
1733.. option:: -fmax-tokens=<arg>
1734
1735Max total number of preprocessed tokens for -Wmax-tokens.
1736
1737.. option:: -fmax-type-align=<arg>
1738
1739Specify the maximum alignment to enforce on pointers lacking an explicit alignment
1740
1741.. option:: -fmemory-profile, -fno-memory-profile
1742
1743Enable heap memory profiling
1744
1745.. option:: -fmerge-all-constants, -fno-merge-all-constants
1746
1747Allow merging of constants
1748
1749.. option:: -fmessage-length=<arg>
1750
1751Format message diagnostics so that they fit within N columns
1752
1753.. option:: -fmodule-file-deps, -fno-module-file-deps
1754
1755.. option:: -fmodule-map-file=<file>
1756
1757Load this module map file
1758
1759.. option:: -fmodule-name=<name>, -fmodule-implementation-of <arg>, -fmodule-name <arg>
1760
1761Specify the name of the module to build
1762
1763.. option:: -fmodules, -fno-modules
1764
1765Enable the 'modules' language feature
1766
1767.. option:: -fmodules-decluse, -fno-modules-decluse
1768
1769Require declaration of modules used within a module
1770
1771.. option:: -fmodules-ignore-macro=<arg>
1772
1773Ignore the definition of the given macro when building and loading modules
1774
1775.. option:: -fmodules-search-all, -fno-modules-search-all
1776
1777Search even non-imported modules to resolve references
1778
1779.. option:: -fmodules-strict-decluse
1780
1781Like -fmodules-decluse but requires all headers to be in modules
1782
1783.. option:: -fmodules-ts
1784
1785Enable support for the C++ Modules TS
1786
1787.. option:: -fmodules-validate-input-files-content
1788
1789Validate PCM input files based on content if mtime differs
1790
1791.. option:: -fms-compatibility, -fno-ms-compatibility
1792
1793Enable full Microsoft Visual C++ compatibility
1794
1795.. option:: -fms-compatibility-version=<arg>
1796
1797Dot-separated value representing the Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1798
1799.. option:: -fms-extensions, -fno-ms-extensions
1800
1801Accept some non-standard constructs supported by the Microsoft compiler
1802
1803.. option:: -fms-memptr-rep=<arg>
1804
1805.. option:: -fms-volatile
1806
1807.. option:: -fmsc-version=<arg>
1808
1809Microsoft compiler version number to report in \_MSC\_VER (0 = don't define it (default))
1810
1811.. option:: -fmudflap
1812
1813.. option:: -fmudflapth
1814
1815.. option:: -fnested-functions
1816
1817.. option:: -fnew-alignment=<align>, -fnew-alignment <arg>
1818
1819Specifies the largest alignment guaranteed by '::operator new(size\_t)'
1820
1821.. option:: -fnext-runtime
1822
1823.. option:: -fno-access-control, -fno-no-access-control
1824
1825.. option:: -fno-builtin-<arg>
1826
1827Disable implicit builtin knowledge of a specific function
1828
1829.. option:: -fno-elide-type
1830
1831Do not elide types when printing diagnostics
1832
1833.. option:: -fno-max-type-align
1834
1835.. option:: -fno-operator-names
1836
1837Do not treat C++ operator name keywords as synonyms for operators
1838
1839.. option:: -fno-strict-modules-decluse
1840
1841.. option:: -fno-temp-file
1842
1843Directly create compilation output files. This may lead to incorrect incremental builds if the compiler crashes
1844
1845.. option:: -fno-working-directory
1846
1847.. option:: -fno\_modules-validate-input-files-content
1848
1849.. program:: clang1
1850.. option:: -fno\_pch-validate-input-files-content
1851.. program:: clang
1852
1853.. option:: -fnoxray-link-deps
1854
1855.. option:: -fobjc-abi-version=<arg>
1856
1857.. option:: -fobjc-arc, -fno-objc-arc
1858
1859Synthesize retain and release calls for Objective-C pointers
1860
1861.. option:: -fobjc-arc-exceptions, -fno-objc-arc-exceptions
1862
1863Use EH-safe code when synthesizing retains and releases in -fobjc-arc
1864
1865.. option:: -fobjc-convert-messages-to-runtime-calls, -fno-objc-convert-messages-to-runtime-calls
1866
1867.. option:: -fobjc-exceptions, -fno-objc-exceptions
1868
1869Enable Objective-C exceptions
1870
1871.. option:: -fobjc-infer-related-result-type, -fno-objc-infer-related-result-type
1872
1873.. option:: -fobjc-legacy-dispatch, -fno-objc-legacy-dispatch
1874
1875.. option:: -fobjc-link-runtime
1876
1877.. option:: -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi
1878
1879.. option:: -fobjc-nonfragile-abi-version=<arg>
1880
1881.. option:: -fobjc-runtime=<arg>
1882
1883Specify the target Objective-C runtime kind and version
1884
1885.. option:: -fobjc-sender-dependent-dispatch
1886
1887.. option:: -fobjc-weak, -fno-objc-weak
1888
1889Enable ARC-style weak references in Objective-C
1890
1891.. option:: -fomit-frame-pointer, -fno-omit-frame-pointer
1892
1893.. option:: -fopenmp, -fno-openmp
1894
1895Parse OpenMP pragmas and generate parallel code.
1896
1897.. option:: -fopenmp-simd, -fno-openmp-simd
1898
1899Emit OpenMP code only for SIMD-based constructs.
1900
1901.. option:: -fopenmp-version=<arg>
1902
1903.. program:: clang1
1904.. option:: -fopenmp=<arg>
1905.. program:: clang
1906
1907.. option:: -foperator-arrow-depth=<arg>
1908
1909.. option:: -foptimization-record-file=<file>
1910
1911Specify 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.
1912
1913.. option:: -foptimization-record-passes=<regex>
1914
1915Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
1916
1917.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1918
1919.. option:: -forder-file-instrumentation
1920
1921Generate instrumented code to collect order file into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1922
1923.. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1924
1925.. option:: -fpack-struct, -fno-pack-struct
1926
1927.. program:: clang1
1928.. option:: -fpack-struct=<arg>
1929.. program:: clang
1930
1931Specify the default maximum struct packing alignment
1932
1933.. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1934
1935Recognize and construct Pascal-style string literals
1936
1937.. option:: -fpass-plugin=<dsopath>
1938
1939Load pass plugin from a dynamic shared object file (only with new pass manager).
1940
1941.. option:: -fpatchable-function-entry=<N,M>
1942
1943Generate M NOPs before function entry and N-M NOPs after function entry
1944
1945.. option:: -fpcc-struct-return
1946
1947Override the default ABI to return all structs on the stack
1948
1949.. option:: -fpch-codegen, -fno-pch-codegen
1950
1951Generate code for uses of this PCH that assumes an explicit object file will be built for the PCH
1952
1953.. option:: -fpch-debuginfo, -fno-pch-debuginfo
1954
1955Generate debug info for types in an object file built from this PCH and do not generate them elsewhere
1956
1957.. option:: -fpch-instantiate-templates, -fno-pch-instantiate-templates
1958
1959Instantiate templates already while building a PCH
1960
1961.. option:: -fpch-preprocess
1962
1963.. option:: -fpch-validate-input-files-content
1964
1965Validate PCH input files based on content if mtime differs
1966
1967.. option:: -fpic, -fno-pic
1968
1969.. option:: -fpie, -fno-pie
1970
1971.. option:: -fplt, -fno-plt
1972
1973.. option:: -fplugin=<dsopath>
1974
1975Load the named plugin (dynamic shared object)
1976
1977.. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1978
1979.. option:: -fprofile-arcs, -fno-profile-arcs
1980
1981.. option:: -fprofile-dir=<arg>
1982
1983.. option:: -fprofile-exclude-files=<arg>
1984
1985Instrument only functions from files where names don't match all the regexes separated by a semi-colon
1986
1987.. option:: -fprofile-filter-files=<arg>
1988
1989Instrument only functions from files where names match any regex separated by a semi-colon
1990
1991.. option:: -fprofile-generate, -fno-profile-generate
1992
1993Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1994
1995.. program:: clang1
1996.. option:: -fprofile-generate=<directory>
1997.. program:: clang
1998
1999Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
2000
2001.. option:: -fprofile-instr-generate, -fno-profile-instr-generate
2002
2003Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
2004
2005.. program:: clang1
2006.. option:: -fprofile-instr-generate=<file>
2007.. program:: clang
2008
2009Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
2010
2011.. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
2012
2013.. program:: clang1
2014.. option:: -fprofile-instr-use=<arg>
2015.. program:: clang
2016
2017Use instrumentation data for profile-guided optimization
2018
2019.. option:: -fprofile-remapping-file=<file>, -fprofile-remapping-file <arg>
2020
2021Use the remappings described in <file> to match the profile data against names in the program
2022
2023.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
2024
2025Specifies that the sample profile is accurate. If the sample
2026               profile is accurate, callsites without profile samples are marked
2027               as cold. Otherwise, treat callsites without profile samples as if
2028               we have no profile
2029
2030.. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
2031
2032.. program:: clang1
2033.. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
2034.. program:: clang
2035
2036Enable sample-based profile guided optimizations
2037
2038.. option:: -fprofile-update=<method>
2039
2040Set update method of profile counters (atomic,prefer-atomic,single)
2041
2042.. program:: clang1
2043.. option:: -fprofile-use=<pathname>
2044.. program:: clang
2045
2046Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
2047
2048.. program:: clang1
2049.. option:: -fprofile-list=<file>
2050.. program:: clang
2051
2052Filename defining the list of functions/files to instrument. The file uses the sanitizer special case list format.
2053
2054.. option:: -freciprocal-math, -fno-reciprocal-math
2055
2056Allow division operations to be reassociated
2057
2058.. option:: -freg-struct-return
2059
2060Override the default ABI to return small structs in registers
2061
2062.. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
2063
2064Use atexit or \_\_cxa\_atexit to register global destructors
2065
2066.. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
2067
2068Enable C++17 relaxed template template argument matching
2069
2070.. option:: -freroll-loops, -fno-reroll-loops
2071
2072Turn on loop reroller
2073
2074.. option:: -fretain-comments-from-system-headers
2075
2076.. option:: -frewrite-imports, -fno-rewrite-imports
2077
2078.. option:: -frewrite-includes, -fno-rewrite-includes
2079
2080.. option:: -frewrite-map-file <arg>
2081
2082.. program:: clang1
2083.. option:: -frewrite-map-file=<arg>
2084.. program:: clang
2085
2086.. option:: -fropi, -fno-ropi
2087
2088Generate read-only position independent code (ARM only)
2089
2090.. option:: -frounding-math, -fno-rounding-math
2091
2092.. option:: -frtti, -fno-rtti
2093
2094.. option:: -frtti-data, -fno-rtti-data
2095
2096.. option:: -frwpi, -fno-rwpi
2097
2098Generate read-write position independent code (ARM only)
2099
2100.. option:: -fsave-optimization-record, -fno-save-optimization-record
2101
2102Generate a YAML optimization record file
2103
2104.. program:: clang1
2105.. option:: -fsave-optimization-record=<format>
2106.. program:: clang
2107
2108Generate an optimization record file in a specific format
2109
2110.. option:: -fseh-exceptions
2111
2112Use SEH style exceptions
2113
2114.. option:: -fsemantic-interposition, -fno-semantic-interposition
2115
2116.. option:: -fshort-enums, -fno-short-enums
2117
2118Allocate to an enum type only as many bytes as it needs for the declared range of possible values
2119
2120.. option:: -fshort-wchar, -fno-short-wchar
2121
2122Force wchar\_t to be a short unsigned int
2123
2124.. option:: -fshow-column, -fno-show-column
2125
2126.. option:: -fshow-overloads=<arg>
2127
2128Which overload candidates to show when overload resolution fails: best\|all; defaults to all
2129
2130.. option:: -fshow-source-location, -fno-show-source-location
2131
2132.. option:: -fsignaling-math, -fno-signaling-math
2133
2134.. option:: -fsigned-bitfields
2135
2136.. option:: -fsigned-char, -fno-signed-char, --signed-char
2137
2138char is signed
2139
2140.. option:: -fsigned-zeros, -fno-signed-zeros
2141
2142.. option:: -fsized-deallocation, -fno-sized-deallocation
2143
2144Enable C++14 sized global deallocation functions
2145
2146.. option:: -fsjlj-exceptions
2147
2148Use SjLj style exceptions
2149
2150.. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
2151
2152Enable the superword-level parallelism vectorization passes
2153
2154.. option:: -fspell-checking, -fno-spell-checking
2155
2156.. option:: -fspell-checking-limit=<arg>
2157
2158.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
2159
2160Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
2161
2162.. option:: -fsplit-lto-unit, -fno-split-lto-unit
2163
2164Enables splitting of the LTO unit
2165
2166.. option:: -fsplit-machine-functions, -fno-split-machine-functions
2167
2168Enable late function splitting using profile information (x86 ELF)
2169
2170.. option:: -fsplit-stack
2171
2172.. option:: -fstack-clash-protection, -fno-stack-clash-protection
2173
2174Enable stack clash protection
2175
2176.. option:: -fstack-protector, -fno-stack-protector
2177
2178Enable 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.
2179
2180.. option:: -fstack-protector-all
2181
2182Enable stack protectors for all functions
2183
2184.. option:: -fstack-protector-strong
2185
2186Enable 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
2187
2188.. option:: -fstack-size-section, -fno-stack-size-section
2189
2190Emit section containing metadata on function stack sizes
2191
2192.. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
2193
2194Emit full debug info for all types used by the program
2195
2196.. option:: -fstrict-aliasing, -fno-strict-aliasing
2197
2198.. option:: -fstrict-enums, -fno-strict-enums
2199
2200Enable optimizations based on the strict definition of an enum's value range
2201
2202.. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
2203
2204Assume that overflowing float-to-int casts are undefined (default)
2205
2206.. option:: -fstrict-overflow, -fno-strict-overflow
2207
2208.. option:: -fstrict-return, -fno-strict-return
2209
2210.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
2211
2212Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
2213
2214.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
2215
2216.. option:: -fsymbol-partition=<arg>
2217
2218.. option:: -ftabstop=<arg>
2219
2220.. option:: -ftemplate-backtrace-limit=<arg>
2221
2222.. option:: -ftemplate-depth-<arg>
2223
2224.. option:: -ftemplate-depth=<arg>
2225
2226.. option:: -ftest-coverage, -fno-test-coverage
2227
2228.. option:: -fthin-link-bitcode=<arg>
2229
2230Write minimized bitcode to <file> for the ThinLTO thin link only
2231
2232.. option:: -fthinlto-index=<arg>
2233
2234Perform ThinLTO importing using provided function summary index
2235
2236.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
2237
2238.. option:: -ftime-report
2239
2240.. option:: -ftime-trace
2241
2242
2243Turn on time profiler. Generates JSON file based on output filename. Results
2244can be analyzed with chrome://tracing or `Speedscope App
2245<https://www.speedscope.app>`_ for flamegraph visualization.
2246
2247.. option:: -ftime-trace-granularity=<arg>
2248
2249Minimum time granularity (in microseconds) traced by time profiler
2250
2251.. option:: -ftls-model=<arg>
2252
2253.. option:: -ftrap-function=<arg>
2254
2255Issue call to specified function rather than a trap instruction
2256
2257.. option:: -ftrapping-math, -fno-trapping-math
2258
2259.. option:: -ftrapv
2260
2261Trap on integer overflow
2262
2263.. option:: -ftrapv-handler <arg>
2264
2265.. program:: clang1
2266.. option:: -ftrapv-handler=<function name>
2267.. program:: clang
2268
2269Specify the function to be called on overflow
2270
2271.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
2272
2273Process trigraph sequences
2274
2275.. option:: -ftrivial-auto-var-init-stop-after=<arg>
2276
2277Stop initializing trivial automatic stack variables after the specified number of instances
2278
2279.. option:: -ftrivial-auto-var-init=<arg>
2280
2281Initialize trivial automatic stack variables: uninitialized (default) \| pattern
2282
2283.. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
2284
2285Use unique names for basic block sections (ELF Only)
2286
2287.. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
2288
2289Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
2290
2291.. option:: -funique-section-names, -fno-unique-section-names
2292
2293.. option:: -funit-at-a-time, -fno-unit-at-a-time
2294
2295.. option:: -funroll-loops, -fno-unroll-loops
2296
2297Turn on loop unroller
2298
2299.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2300
2301.. option:: -funsigned-bitfields
2302
2303.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2304
2305.. option:: -funwind-tables, -fno-unwind-tables
2306
2307.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2308
2309.. option:: -fuse-init-array, -fno-use-init-array
2310
2311.. option:: -fuse-ld=<arg>
2312
2313.. option:: -fuse-line-directives, -fno-use-line-directives
2314
2315Use #line in preprocessed output
2316
2317.. option:: -fvalidate-ast-input-files-content
2318
2319Compute 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
2320
2321.. option:: -fveclib=<arg>
2322
2323Use the given vector functions library
2324
2325.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2326
2327Enable the loop vectorization passes
2328
2329.. option:: -fverbose-asm, -dA, -fno-verbose-asm
2330
2331Generate verbose assembly output
2332
2333.. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
2334
2335Enables dead virtual function elimination optimization. Requires -flto=full
2336
2337.. option:: -fvisibility-global-new-delete-hidden
2338
2339Give global C++ operator new and delete declarations hidden visibility
2340
2341.. option:: -fvisibility-inlines-hidden
2342
2343Give inline C++ member functions hidden visibility by default
2344
2345.. option:: -fvisibility-inlines-hidden-static-local-var, -fno-visibility-inlines-hidden-static-local-var
2346
2347When -fvisibility-inlines-hidden is enabled, static variables in inline C++ member functions will also be given hidden visibility by default
2348
2349.. option:: -fvisibility-ms-compat
2350
2351Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2352
2353.. option:: -fvisibility=<arg>
2354
2355Set the default symbol visibility for all global declarations
2356
2357.. option:: -fwasm-exceptions
2358
2359Use WebAssembly style exceptions
2360
2361.. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2362
2363Enables whole-program vtable optimization. Requires -flto
2364
2365.. option:: -fwrapv, -fno-wrapv
2366
2367Treat signed integer overflow as two's complement
2368
2369.. option:: -fwritable-strings
2370
2371Store string literals as writable data
2372
2373.. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2374
2375Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
2376
2377.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2378
2379Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
2380
2381.. option:: -fxray-always-instrument=<arg>
2382
2383DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2384
2385.. option:: -fxray-attr-list=<arg>
2386
2387Filename defining the list of functions/types for imbuing XRay attributes.
2388
2389.. option:: -fxray-function-groups=<arg>
2390
2391Only instrument 1 of N groups
2392
2393.. option:: -fxray-function-index, -fno-xray-function-index
2394
2395.. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
2396
2397Don't instrument functions with loops unless they also meet the minimum function size
2398
2399.. option:: -fxray-instruction-threshold<arg>
2400
2401.. program:: clang1
2402.. option:: -fxray-instruction-threshold=<arg>
2403.. program:: clang
2404
2405Sets the minimum function size to instrument with XRay
2406
2407.. option:: -fxray-instrument, -fno-xray-instrument
2408
2409Generate XRay instrumentation sleds on function entry and exit
2410
2411.. option:: -fxray-instrumentation-bundle=<arg>
2412
2413Select 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'.
2414
2415.. option:: -fxray-link-deps
2416
2417Tells clang to add the link dependencies for XRay.
2418
2419.. option:: -fxray-modes=<arg>
2420
2421List of modes to link in by default into XRay instrumented binaries.
2422
2423.. option:: -fxray-never-instrument=<arg>
2424
2425DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2426
2427.. option:: -fxray-selected-function-group=<arg>
2428
2429When using -fxray-function-groups, select which group of functions to instrument. Valid range is 0 to fxray-function-groups - 1
2430
2431.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2432
2433.. option:: -fzvector, -fno-zvector, -mzvector
2434
2435Enable System z vector language extension
2436
2437.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2438
2439.. option:: -pedantic-errors, --pedantic-errors
2440
2441OpenCL flags
2442------------
2443.. option:: -cl-denorms-are-zero
2444
2445OpenCL only. Allow denormals to be flushed to zero.
2446
2447.. option:: -cl-fast-relaxed-math
2448
2449OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2450
2451.. option:: -cl-finite-math-only
2452
2453OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2454
2455.. option:: -cl-fp32-correctly-rounded-divide-sqrt
2456
2457OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2458
2459.. option:: -cl-kernel-arg-info
2460
2461OpenCL only. Generate kernel argument metadata.
2462
2463.. option:: -cl-mad-enable
2464
2465OpenCL only. Allow use of less precise MAD computations in the generated binary.
2466
2467.. option:: -cl-no-signed-zeros
2468
2469OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2470
2471.. option:: -cl-opt-disable
2472
2473OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2474
2475.. option:: -cl-single-precision-constant
2476
2477OpenCL only. Treat double precision floating-point constant as single precision constant.
2478
2479.. option:: -cl-std=<arg>
2480
2481OpenCL language standard to compile for.
2482
2483.. option:: -cl-strict-aliasing
2484
2485OpenCL only. This option is added for compatibility with OpenCL 1.0.
2486
2487.. option:: -cl-uniform-work-group-size
2488
2489OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2490
2491.. option:: -cl-unsafe-math-optimizations
2492
2493OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2494
2495SYCL flags
2496----------
2497.. option:: -fsycl, -fno-sycl
2498
2499Enable SYCL kernels compilation for device
2500
2501.. option:: -sycl-std=<arg>
2502
2503SYCL language standard to compile for.
2504
2505Target-dependent compilation options
2506~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2507.. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
2508
2509Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2510
2511.. option:: -ffixed-x1
2512
2513Reserve the x1 register (AArch64/RISC-V only)
2514
2515.. option:: -ffixed-x10
2516
2517Reserve the x10 register (AArch64/RISC-V only)
2518
2519.. option:: -ffixed-x11
2520
2521Reserve the x11 register (AArch64/RISC-V only)
2522
2523.. option:: -ffixed-x12
2524
2525Reserve the x12 register (AArch64/RISC-V only)
2526
2527.. option:: -ffixed-x13
2528
2529Reserve the x13 register (AArch64/RISC-V only)
2530
2531.. option:: -ffixed-x14
2532
2533Reserve the x14 register (AArch64/RISC-V only)
2534
2535.. option:: -ffixed-x15
2536
2537Reserve the x15 register (AArch64/RISC-V only)
2538
2539.. option:: -ffixed-x16
2540
2541Reserve the x16 register (AArch64/RISC-V only)
2542
2543.. option:: -ffixed-x17
2544
2545Reserve the x17 register (AArch64/RISC-V only)
2546
2547.. option:: -ffixed-x18
2548
2549Reserve the x18 register (AArch64/RISC-V only)
2550
2551.. option:: -ffixed-x19
2552
2553Reserve the x19 register (AArch64/RISC-V only)
2554
2555.. option:: -ffixed-x2
2556
2557Reserve the x2 register (AArch64/RISC-V only)
2558
2559.. option:: -ffixed-x20
2560
2561Reserve the x20 register (AArch64/RISC-V only)
2562
2563.. option:: -ffixed-x21
2564
2565Reserve the x21 register (AArch64/RISC-V only)
2566
2567.. option:: -ffixed-x22
2568
2569Reserve the x22 register (AArch64/RISC-V only)
2570
2571.. option:: -ffixed-x23
2572
2573Reserve the x23 register (AArch64/RISC-V only)
2574
2575.. option:: -ffixed-x24
2576
2577Reserve the x24 register (AArch64/RISC-V only)
2578
2579.. option:: -ffixed-x25
2580
2581Reserve the x25 register (AArch64/RISC-V only)
2582
2583.. option:: -ffixed-x26
2584
2585Reserve the x26 register (AArch64/RISC-V only)
2586
2587.. option:: -ffixed-x27
2588
2589Reserve the x27 register (AArch64/RISC-V only)
2590
2591.. option:: -ffixed-x28
2592
2593Reserve the x28 register (AArch64/RISC-V only)
2594
2595.. option:: -ffixed-x29
2596
2597Reserve the x29 register (AArch64/RISC-V only)
2598
2599.. option:: -ffixed-x3
2600
2601Reserve the x3 register (AArch64/RISC-V only)
2602
2603.. option:: -ffixed-x30
2604
2605Reserve the x30 register (AArch64/RISC-V only)
2606
2607.. option:: -ffixed-x31
2608
2609Reserve the x31 register (AArch64/RISC-V only)
2610
2611.. option:: -ffixed-x4
2612
2613Reserve the x4 register (AArch64/RISC-V only)
2614
2615.. option:: -ffixed-x5
2616
2617Reserve the x5 register (AArch64/RISC-V only)
2618
2619.. option:: -ffixed-x6
2620
2621Reserve the x6 register (AArch64/RISC-V only)
2622
2623.. option:: -ffixed-x7
2624
2625Reserve the x7 register (AArch64/RISC-V only)
2626
2627.. option:: -ffixed-x8
2628
2629Reserve the x8 register (AArch64/RISC-V only)
2630
2631.. option:: -ffixed-x9
2632
2633Reserve the x9 register (AArch64/RISC-V only)
2634
2635.. option:: -m16
2636
2637.. option:: -m32
2638
2639.. option:: -m64
2640
2641.. option:: -mabi=<arg>
2642
2643.. option:: -maix-struct-return
2644
2645Return all structs in memory (PPC32 only)
2646
2647.. option:: -malign-branch-boundary=<arg>
2648
2649Specify the boundary's size to align branches
2650
2651.. option:: -malign-branch=<arg1>,<arg2>...
2652
2653Specify types of branches to align
2654
2655.. option:: -malign-double
2656
2657Align doubles to two words in structs (x86 only)
2658
2659.. option:: -march=<arg>
2660
2661.. option:: -masm=<arg>
2662
2663.. option:: -mbackchain, -mno-backchain
2664
2665Link stack frames through backchain on System Z
2666
2667.. option:: -mbranches-within-32B-boundaries
2668
2669Align selected branches (fused, jcc, jmp) within 32-byte boundary
2670
2671.. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
2672
2673.. option:: -mcode-object-v3, -mno-code-object-v3
2674
2675Legacy option to specify code object ABI V2 (-mnocode-object-v3) or V3 (-mcode-object-v3) (AMDGPU only)
2676
2677.. option:: -mcode-object-version=<version>
2678
2679Specify code object ABI version. Defaults to 4. (AMDGPU only)
2680
2681.. option:: -mconsole<arg>
2682
2683.. program:: clang1
2684.. 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)
2685.. program:: clang
2686
2687.. option:: -mcrc, -mno-crc
2688
2689Allow use of CRC instructions (ARM/Mips only)
2690
2691.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2692
2693.. option:: -mdll<arg>
2694
2695.. option:: -mdouble=<arg>
2696
2697Force double to be 32 bits or 64 bits
2698
2699.. option:: -mdynamic-no-pic<arg>
2700
2701.. option:: -meabi <arg>
2702
2703Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2704
2705.. option:: -menable-experimental-extensions
2706
2707Enable use of experimental RISC-V extensions.
2708
2709.. option:: -mfentry
2710
2711Insert calls to fentry at function entry (x86/SystemZ only)
2712
2713.. option:: -mfloat-abi=<arg>
2714
2715.. option:: -mfpmath=<arg>
2716
2717.. option:: -mfpu=<arg>
2718
2719.. option:: -mglobal-merge, -mno-global-merge
2720
2721Enable merging of globals
2722
2723.. option:: -mhard-float
2724
2725.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2726
2727.. option:: -mhwmult=<arg>
2728
2729.. option:: -miamcu, -mno-iamcu
2730
2731Use Intel MCU ABI
2732
2733.. option:: -mignore-xcoff-visibility
2734
2735Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file
2736
2737.. option:: -mimplicit-float, -mno-implicit-float
2738
2739.. option:: -mimplicit-it=<arg>
2740
2741.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2742
2743(integrated-as) Emit an object file which can be used with an incremental linker
2744
2745.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2746
2747.. option:: -mkernel
2748
2749.. option:: -mlong-calls, -mno-long-calls
2750
2751Generate branches with extended addressability, usually via indirect jumps.
2752
2753.. option:: -mlvi-cfi, -mno-lvi-cfi
2754
2755Enable only control-flow mitigations for Load Value Injection (LVI)
2756
2757.. option:: -mlvi-hardening, -mno-lvi-hardening
2758
2759Enable all mitigations for Load Value Injection (LVI)
2760
2761.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2762
2763Set Mac OS X deployment target
2764
2765.. option:: -mmcu=<arg>
2766
2767.. option:: -mms-bitfields, -mno-ms-bitfields
2768
2769Set the default structure layout to be compatible with the Microsoft compiler standard
2770
2771.. option:: -mnop-mcount
2772
2773Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
2774
2775.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2776
2777Omit frame pointer setup for leaf functions
2778
2779.. option:: -moslib=<arg>
2780
2781.. option:: -mpacked-stack, -mno-packed-stack
2782
2783Use packed stack layout (SystemZ only).
2784
2785.. option:: -mpad-max-prefix-size=<arg>
2786
2787Specify maximum number of prefixes to use for padding
2788
2789.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2790
2791Use copy relocations support for PIE builds
2792
2793.. option:: -mprefer-vector-width=<arg>
2794
2795Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2796
2797.. option:: -mqdsp6-compat
2798
2799Enable hexagon-qdsp6 backward compatibility
2800
2801.. option:: -mrecip
2802
2803.. program:: clang1
2804.. option:: -mrecip=<arg1>,<arg2>...
2805.. program:: clang
2806
2807.. option:: -mrecord-mcount
2808
2809Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
2810
2811.. option:: -mred-zone, -mno-red-zone
2812
2813.. option:: -mregparm=<arg>
2814
2815.. option:: -mrelax, -mno-relax
2816
2817Enable linker relaxation
2818
2819.. option:: -mrelax-all, -mno-relax-all
2820
2821(integrated-as) Relax all machine instructions
2822
2823.. option:: -mretpoline, -mno-retpoline
2824
2825.. option:: -mrtd, -mno-rtd
2826
2827Make StdCall calling convention the default
2828
2829.. option:: -mseses, -mno-seses
2830
2831Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
2832
2833.. option:: -msign-return-address=<arg>
2834
2835Select return address signing scope
2836
2837.. option:: -msim
2838
2839.. option:: -msoft-float, -mno-soft-float
2840
2841Use software floating point
2842
2843.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
2844
2845.. option:: -mstack-alignment=<arg>
2846
2847Set the stack alignment
2848
2849.. option:: -mstack-arg-probe, -mno-stack-arg-probe
2850
2851Enable stack probes
2852
2853.. option:: -mstack-probe-size=<arg>
2854
2855Set the stack probe size
2856
2857.. option:: -mstack-protector-guard-offset=<arg>
2858
2859Use the given offset for addressing the stack-protector guard
2860
2861.. option:: -mstack-protector-guard-reg=<arg>
2862
2863Use the given reg for addressing the stack-protector guard
2864
2865.. option:: -mstack-protector-guard=<arg>
2866
2867Use the given guard (global, tls) for addressing the stack-protector guard
2868
2869.. option:: -mstackrealign, -mno-stackrealign
2870
2871Force realign the stack at entry to every function
2872
2873.. option:: -msvr4-struct-return
2874
2875Return small structs in registers (PPC32 only)
2876
2877.. option:: -mthread-model <arg>
2878
2879The thread model to use, e.g. posix, single (posix by default)
2880
2881.. option:: -mthreads<arg>
2882
2883.. option:: -mthumb, -mno-thumb
2884
2885.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
2886
2887Enable direct TLS access through segment registers (default)
2888
2889.. option:: -mtls-size=<arg>
2890
2891Specify 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)
2892
2893.. program:: clang1
2894.. option:: -mtune=<arg>
2895.. program:: clang
2896
2897Only supported on X86 and RISC-V. Otherwise accepted for compatibility with GCC.
2898
2899.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2900
2901.. option:: -municode<arg>
2902
2903.. option:: -mabi=vec-extabi, -mabi=vec-default
2904
2905Only supported on AIX. Specify usage of the extended vector ABI on AIX and of non-volatile vector registers. Defaults to '-mabi=default' when Altivec is enabled.
2906
2907.. option:: -mvx, -mno-vx
2908
2909.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2910
2911.. option:: -mwatchos-version-min=<arg>
2912
2913.. option:: -mwavefrontsize64, -mno-wavefrontsize64
2914
2915Specify wavefront size 64 mode (AMDGPU only)
2916
2917.. option:: -mwindows<arg>
2918
2919.. option:: -mx32
2920
2921AARCH64
2922-------
2923.. option:: -fcall-saved-x10
2924
2925Make the x10 register call-saved (AArch64 only)
2926
2927.. option:: -fcall-saved-x11
2928
2929Make the x11 register call-saved (AArch64 only)
2930
2931.. option:: -fcall-saved-x12
2932
2933Make the x12 register call-saved (AArch64 only)
2934
2935.. option:: -fcall-saved-x13
2936
2937Make the x13 register call-saved (AArch64 only)
2938
2939.. option:: -fcall-saved-x14
2940
2941Make the x14 register call-saved (AArch64 only)
2942
2943.. option:: -fcall-saved-x15
2944
2945Make the x15 register call-saved (AArch64 only)
2946
2947.. option:: -fcall-saved-x18
2948
2949Make the x18 register call-saved (AArch64 only)
2950
2951.. option:: -fcall-saved-x8
2952
2953Make the x8 register call-saved (AArch64 only)
2954
2955.. option:: -fcall-saved-x9
2956
2957Make the x9 register call-saved (AArch64 only)
2958
2959.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2960
2961Workaround Cortex-A53 erratum 835769 (AArch64 only)
2962
2963.. option:: -mgeneral-regs-only
2964
2965Generate code which only uses the general purpose registers (AArch64 only)
2966
2967.. option:: -mmark-bti-property
2968
2969Add .note.gnu.property with BTI to assembly files (AArch64 only)
2970
2971.. option:: -msve-vector-bits=<arg>
2972
2973Specify the size in bits of an SVE vector register. Defaults to the vector length agnostic value of "scalable". (AArch64 only)
2974
2975AMDGPU
2976------
2977.. option:: -mcumode, -mno-cumode
2978
2979Specify CU (-mcumode) or WGP (-mno-cumode) wavefront execution mode (AMDGPU only)
2980
2981.. option:: -msram-ecc, -mno-sram-ecc
2982
2983Specify SRAM ECC mode (AMDGPU only)
2984
2985.. option:: -mxnack, -mno-xnack
2986
2987Specify XNACK mode (AMDGPU only)
2988
2989ARM
2990---
2991.. option:: -faapcs-bitfield-load
2992
2993Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
2994
2995.. option:: -faapcs-bitfield-width, -fno-aapcs-bitfield-width
2996
2997Follow the AAPCS standard requirement stating that volatile bit-field width is dictated by the field container type. (ARM only).
2998
2999.. option:: -ffixed-r9
3000
3001Reserve the r9 register (ARM only)
3002
3003.. option:: -mcmse
3004
3005Allow use of CMSE (Armv8-M Security Extensions)
3006
3007.. option:: -mexecute-only, -mno-execute-only, -mpure-code
3008
3009Disallow generation of data access to code sections (ARM only)
3010
3011.. option:: -mno-movt
3012
3013Disallow use of movt/movw pairs (ARM only)
3014
3015.. option:: -mno-neg-immediates
3016
3017Disallow converting instructions with negative immediates to their negation or inversion.
3018
3019.. option:: -mnocrc
3020
3021Disallow use of CRC instructions (ARM only)
3022
3023.. option:: -mrestrict-it, -mno-restrict-it
3024
3025Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
3026
3027.. option:: -mtp=<arg>
3028
3029Thread pointer access method (AArch32/AArch64 only)
3030
3031.. option:: -munaligned-access, -mno-unaligned-access
3032
3033Allow memory accesses to be unaligned (AArch32/AArch64 only)
3034
3035Hexagon
3036-------
3037.. option:: -mieee-rnd-near
3038
3039.. option:: -mmemops, -mno-memops
3040
3041Enable generation of memop instructions
3042
3043.. option:: -mnvj, -mno-nvj
3044
3045Enable generation of new-value jumps
3046
3047.. option:: -mnvs, -mno-nvs
3048
3049Enable generation of new-value stores
3050
3051.. option:: -mpackets, -mno-packets
3052
3053Enable generation of instruction packets
3054
3055Hexagon
3056-------
3057.. option:: -mhvx, -mno-hvx
3058
3059Enable Hexagon Vector eXtensions
3060
3061.. option:: -mhvx-length=<arg>
3062
3063Set Hexagon Vector Length
3064
3065.. program:: clang1
3066.. option:: -mhvx=<arg>
3067.. program:: clang
3068
3069Enable Hexagon Vector eXtensions
3070
3071MIPS
3072----
3073.. option:: -mabicalls, -mno-abicalls
3074
3075Enable SVR4-style position-independent code (Mips only)
3076
3077.. option:: -mabs=<arg>
3078
3079.. option:: -mcheck-zero-division, -mno-check-zero-division
3080
3081.. option:: -mcompact-branches=<arg>
3082
3083.. option:: -mdouble-float
3084
3085.. option:: -mdsp, -mno-dsp
3086
3087.. option:: -mdspr2, -mno-dspr2
3088
3089.. option:: -membedded-data, -mno-embedded-data
3090
3091Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
3092
3093.. option:: -mextern-sdata, -mno-extern-sdata
3094
3095Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
3096
3097.. option:: -mfp32
3098
3099Use 32-bit floating point registers (MIPS only)
3100
3101.. option:: -mfp64
3102
3103Use 64-bit floating point registers (MIPS only)
3104
3105.. option:: -mginv, -mno-ginv
3106
3107.. option:: -mgpopt, -mno-gpopt
3108
3109Use GP relative accesses for symbols known to be in a small data section (MIPS)
3110
3111.. option:: -mindirect-jump=<arg>
3112
3113Change indirect jump instructions to inhibit speculation
3114
3115.. option:: -mips16
3116
3117.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
3118
3119.. option:: -mlocal-sdata, -mno-local-sdata
3120
3121Extend the -G behaviour to object local data (MIPS)
3122
3123.. option:: -mmadd4, -mno-madd4
3124
3125Enable the generation of 4-operand madd.s, madd.d and related instructions.
3126
3127.. option:: -mmicromips, -mno-micromips
3128
3129.. option:: -mmsa, -mno-msa
3130
3131Enable MSA ASE (MIPS only)
3132
3133.. option:: -mmt, -mno-mt
3134
3135Enable MT ASE (MIPS only)
3136
3137.. option:: -mnan=<arg>
3138
3139.. option:: -mno-mips16
3140
3141.. option:: -msingle-float
3142
3143.. option:: -mvirt, -mno-virt
3144
3145.. option:: -mxgot, -mno-xgot
3146
3147PowerPC
3148-------
3149.. option:: -maltivec, -mno-altivec
3150
3151.. option:: -mcmpb, -mno-cmpb
3152
3153.. option:: -mcrbits, -mno-crbits
3154
3155.. option:: -mcrypto, -mno-crypto
3156
3157.. option:: -mdirect-move, -mno-direct-move
3158
3159.. option:: -mefpu2
3160
3161.. option:: -mfloat128, -mno-float128
3162
3163.. option:: -mfprnd, -mno-fprnd
3164
3165.. option:: -mhtm, -mno-htm
3166
3167.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
3168
3169.. option:: -misel, -mno-isel
3170
3171.. option:: -mlongcall, -mno-longcall
3172
3173.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
3174
3175.. option:: -mmma, -mno-mma
3176
3177.. option:: -mpaired-vector-memops, -mno-paired-vector-memops
3178
3179.. option:: -mpcrel, -mno-pcrel
3180
3181.. option:: -mpopcntd, -mno-popcntd
3182
3183.. option:: -mpower10-vector, -mno-power10-vector
3184
3185.. option:: -mpower8-vector, -mno-power8-vector
3186
3187.. option:: -mpower9-vector, -mno-power9-vector
3188
3189.. option:: -msecure-plt
3190
3191.. option:: -mspe, -mno-spe
3192
3193.. option:: -mvsx, -mno-vsx
3194
3195WebAssembly
3196-----------
3197.. option:: -matomics, -mno-atomics
3198
3199.. option:: -mbulk-memory, -mno-bulk-memory
3200
3201.. option:: -mexception-handling, -mno-exception-handling
3202
3203.. option:: -mmultivalue, -mno-multivalue
3204
3205.. option:: -mmutable-globals, -mno-mutable-globals
3206
3207.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
3208
3209.. option:: -mreference-types, -mno-reference-types
3210
3211.. option:: -msign-ext, -mno-sign-ext
3212
3213.. option:: -msimd128, -mno-simd128
3214
3215.. option:: -mtail-call, -mno-tail-call
3216
3217.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
3218
3219WebAssembly Driver
3220------------------
3221.. option:: -mexec-model=<arg>
3222
3223Execution model (WebAssembly only)
3224
3225X86
3226---
3227.. option:: -m3dnow, -mno-3dnow
3228
3229.. option:: -m3dnowa, -mno-3dnowa
3230
3231.. option:: -madx, -mno-adx
3232
3233.. option:: -maes, -mno-aes
3234
3235.. option:: -mamx-bf16, -mno-amx-bf16
3236
3237.. option:: -mamx-int8, -mno-amx-int8
3238
3239.. option:: -mamx-tile, -mno-amx-tile
3240
3241.. option:: -mavx, -mno-avx
3242
3243.. option:: -mavx2, -mno-avx2
3244
3245.. option:: -mavx512bf16, -mno-avx512bf16
3246
3247.. option:: -mavx512bitalg, -mno-avx512bitalg
3248
3249.. option:: -mavx512bw, -mno-avx512bw
3250
3251.. option:: -mavx512cd, -mno-avx512cd
3252
3253.. option:: -mavx512dq, -mno-avx512dq
3254
3255.. option:: -mavx512er, -mno-avx512er
3256
3257.. option:: -mavx512f, -mno-avx512f
3258
3259.. option:: -mavx512ifma, -mno-avx512ifma
3260
3261.. option:: -mavx512pf, -mno-avx512pf
3262
3263.. option:: -mavx512vbmi, -mno-avx512vbmi
3264
3265.. option:: -mavx512vbmi2, -mno-avx512vbmi2
3266
3267.. option:: -mavx512vl, -mno-avx512vl
3268
3269.. option:: -mavx512vnni, -mno-avx512vnni
3270
3271.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
3272
3273.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
3274
3275.. option:: -mavxvnni, -mno-avxvnni
3276
3277.. option:: -mbmi, -mno-bmi
3278
3279.. option:: -mbmi2, -mno-bmi2
3280
3281.. option:: -mcldemote, -mno-cldemote
3282
3283.. option:: -mclflushopt, -mno-clflushopt
3284
3285.. option:: -mclwb, -mno-clwb
3286
3287.. option:: -mclzero, -mno-clzero
3288
3289.. option:: -mcx16, -mno-cx16
3290
3291.. option:: -menqcmd, -mno-enqcmd
3292
3293.. option:: -mf16c, -mno-f16c
3294
3295.. option:: -mfma, -mno-fma
3296
3297.. option:: -mfma4, -mno-fma4
3298
3299.. option:: -mfsgsbase, -mno-fsgsbase
3300
3301.. option:: -mfxsr, -mno-fxsr
3302
3303.. option:: -mgfni, -mno-gfni
3304
3305.. option:: -mhreset, -mno-hreset
3306
3307.. option:: -minvpcid, -mno-invpcid
3308
3309.. option:: -mkl, -mno-kl
3310
3311.. option:: -mlwp, -mno-lwp
3312
3313.. option:: -mlzcnt, -mno-lzcnt
3314
3315.. option:: -mmmx, -mno-mmx
3316
3317.. option:: -mmovbe, -mno-movbe
3318
3319.. option:: -mmovdir64b, -mno-movdir64b
3320
3321.. option:: -mmovdiri, -mno-movdiri
3322
3323.. option:: -mmwaitx, -mno-mwaitx
3324
3325.. option:: -mpclmul, -mno-pclmul
3326
3327.. option:: -mpconfig, -mno-pconfig
3328
3329.. option:: -mpku, -mno-pku
3330
3331.. option:: -mpopcnt, -mno-popcnt
3332
3333.. option:: -mprefetchwt1, -mno-prefetchwt1
3334
3335.. option:: -mprfchw, -mno-prfchw
3336
3337.. option:: -mptwrite, -mno-ptwrite
3338
3339.. option:: -mrdpid, -mno-rdpid
3340
3341.. option:: -mrdrnd, -mno-rdrnd
3342
3343.. option:: -mrdseed, -mno-rdseed
3344
3345.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
3346
3347.. option:: -mrtm, -mno-rtm
3348
3349.. option:: -msahf, -mno-sahf
3350
3351.. option:: -mserialize, -mno-serialize
3352
3353.. option:: -msgx, -mno-sgx
3354
3355.. option:: -msha, -mno-sha
3356
3357.. option:: -mshstk, -mno-shstk
3358
3359.. option:: -msse, -mno-sse
3360
3361.. option:: -msse2, -mno-sse2
3362
3363.. option:: -msse3, -mno-sse3
3364
3365.. option:: -msse4.1, -mno-sse4.1
3366
3367.. program:: clang1
3368.. option:: -msse4.2, -mno-sse4.2, -msse4
3369.. program:: clang
3370
3371.. option:: -msse4a, -mno-sse4a
3372
3373.. option:: -mssse3, -mno-ssse3
3374
3375.. option:: -mtbm, -mno-tbm
3376
3377.. option:: -mtsxldtrk, -mno-tsxldtrk
3378
3379.. option:: -muintr, -mno-uintr
3380
3381.. option:: -mvaes, -mno-vaes
3382
3383.. option:: -mvpclmulqdq, -mno-vpclmulqdq
3384
3385.. option:: -mvzeroupper, -mno-vzeroupper
3386
3387.. option:: -mwaitpkg, -mno-waitpkg
3388
3389.. option:: -mwbnoinvd, -mno-wbnoinvd
3390
3391.. option:: -mwidekl, -mno-widekl
3392
3393.. option:: -mx87, -m80387, -mno-x87
3394
3395.. option:: -mxop, -mno-xop
3396
3397.. option:: -mxsave, -mno-xsave
3398
3399.. option:: -mxsavec, -mno-xsavec
3400
3401.. option:: -mxsaveopt, -mno-xsaveopt
3402
3403.. option:: -mxsaves, -mno-xsaves
3404
3405RISCV
3406-----
3407.. option:: -msave-restore, -mno-save-restore
3408
3409Enable using library calls for save and restore
3410
3411Long double flags
3412-----------------
3413Selects the long double implementation
3414
3415.. option:: -mlong-double-128
3416
3417Force long double to be 128 bits
3418
3419.. option:: -mlong-double-64
3420
3421Force long double to be 64 bits
3422
3423.. option:: -mlong-double-80
3424
3425Force long double to be 80 bits, padded to 128 bits for storage
3426
3427Optimization level
3428~~~~~~~~~~~~~~~~~~
3429
3430Flags controlling how much optimization should be performed.
3431
3432.. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
3433
3434.. option:: -Ofast<arg>
3435
3436Debug information generation
3437~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3438
3439Flags controlling how much and what kind of debug information should be
3440generated.
3441
3442Kind and level of debug information
3443-----------------------------------
3444.. option:: -g, --debug, --debug=<arg>
3445
3446Generate source-level debug information
3447
3448.. option:: -gdwarf
3449
3450Generate source-level debug information with the default dwarf version
3451
3452.. option:: -gdwarf-2
3453
3454Generate source-level debug information with dwarf version 2
3455
3456.. option:: -gdwarf-3
3457
3458Generate source-level debug information with dwarf version 3
3459
3460.. option:: -gdwarf-4
3461
3462Generate source-level debug information with dwarf version 4
3463
3464.. option:: -gdwarf-5
3465
3466Generate source-level debug information with dwarf version 5
3467
3468.. option:: -gfull
3469
3470.. option:: -gused
3471
3472Debug level
3473___________
3474.. option:: -g0
3475
3476.. option:: -g2
3477
3478.. option:: -g3
3479
3480.. option:: -ggdb0
3481
3482.. option:: -ggdb1
3483
3484.. option:: -ggdb2
3485
3486.. option:: -ggdb3
3487
3488.. option:: -gline-directives-only
3489
3490Emit debug line info directives only
3491
3492.. option:: -gline-tables-only, -g1, -gmlt
3493
3494Emit debug line number tables only
3495
3496.. option:: -gmodules
3497
3498Generate debug info with external references to clang modules or precompiled headers
3499
3500Debugger to tune debug information for
3501______________________________________
3502.. option:: -ggdb
3503
3504.. option:: -glldb
3505
3506.. option:: -gsce
3507
3508Debug information flags
3509-----------------------
3510.. option:: -gcolumn-info, -gno-column-info
3511
3512.. option:: -gdwarf-aranges
3513
3514.. option:: -gembed-source, -gno-embed-source
3515
3516Embed source text in DWARF debug sections
3517
3518.. option:: -ggnu-pubnames, -gno-gnu-pubnames
3519
3520.. option:: -gpubnames, -gno-pubnames
3521
3522.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
3523
3524.. option:: -gsplit-dwarf
3525
3526.. program:: clang1
3527.. option:: -gsplit-dwarf=<arg>
3528.. program:: clang
3529
3530Set DWARF fission mode to either 'split' or 'single'
3531
3532.. option:: -gstrict-dwarf, -gno-strict-dwarf
3533
3534.. option:: -gz=<arg>, -gz (equivalent to -gz=zlib)
3535
3536DWARF debug sections compression type
3537
3538Static analyzer flags
3539=====================
3540
3541Flags controlling the behavior of the Clang Static Analyzer.
3542
3543.. option:: -Xanalyzer <arg>
3544
3545Pass <arg> to the static analyzer
3546
3547Fortran compilation flags
3548=========================
3549
3550Flags that will be passed onto the ``gfortran`` compiler when Clang is given
3551a Fortran input.
3552
3553.. option:: -A<arg>, --assert <arg>, --assert=<arg>
3554
3555.. option:: -A-<arg>
3556
3557.. option:: -J<arg>
3558
3559.. option:: -cpp
3560
3561.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
3562
3563.. option:: -falign-commons, -fno-align-commons
3564
3565.. option:: -fall-intrinsics, -fno-all-intrinsics
3566
3567.. option:: -fautomatic, -fno-automatic
3568
3569.. option:: -fbackslash, -fno-backslash
3570
3571.. option:: -fbacktrace, -fno-backtrace
3572
3573.. option:: -fblas-matmul-limit=<arg>
3574
3575.. option:: -fbounds-check, -fno-bounds-check
3576
3577.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
3578
3579.. option:: -fcheck=<arg>
3580
3581.. option:: -fcoarray=<arg>
3582
3583.. option:: -fconvert=<arg>
3584
3585.. option:: -fcray-pointer, -fno-cray-pointer
3586
3587.. option:: -fd-lines-as-code, -fno-d-lines-as-code
3588
3589.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
3590
3591.. option:: -fdefault-double-8, -fno-default-double-8
3592
3593.. option:: -fdefault-integer-8, -fno-default-integer-8
3594
3595.. option:: -fdefault-real-8, -fno-default-real-8
3596
3597.. option:: -fdollar-ok, -fno-dollar-ok
3598
3599.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
3600
3601.. option:: -fdump-fortran-original, -fno-dump-fortran-original
3602
3603.. option:: -fdump-parse-tree, -fno-dump-parse-tree
3604
3605.. option:: -fexternal-blas, -fno-external-blas
3606
3607.. option:: -ff2c, -fno-f2c
3608
3609.. option:: -ffixed-form, -fno-fixed-form
3610
3611.. option:: -ffixed-line-length-<arg>
3612
3613.. option:: -ffpe-trap=<arg>
3614
3615.. option:: -ffree-form, -fno-free-form
3616
3617.. option:: -ffree-line-length-<arg>
3618
3619.. option:: -ffrontend-optimize, -fno-frontend-optimize
3620
3621.. option:: -fimplicit-none, -fno-implicit-none
3622
3623.. option:: -finit-character=<arg>
3624
3625.. option:: -finit-integer=<arg>
3626
3627.. option:: -finit-local-zero, -fno-init-local-zero
3628
3629.. option:: -finit-logical=<arg>
3630
3631.. option:: -finit-real=<arg>
3632
3633.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3634
3635.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3636
3637.. option:: -fmax-array-constructor=<arg>
3638
3639.. option:: -fmax-errors=<arg>
3640
3641.. option:: -fmax-identifier-length, -fno-max-identifier-length
3642
3643.. option:: -fmax-stack-var-size=<arg>
3644
3645.. option:: -fmax-subrecord-length=<arg>
3646
3647.. option:: -fmodule-private, -fno-module-private
3648
3649.. option:: -fpack-derived, -fno-pack-derived
3650
3651.. option:: -fprotect-parens, -fno-protect-parens
3652
3653.. option:: -frange-check, -fno-range-check
3654
3655.. option:: -freal-4-real-10, -fno-real-4-real-10
3656
3657.. option:: -freal-4-real-16, -fno-real-4-real-16
3658
3659.. option:: -freal-4-real-8, -fno-real-4-real-8
3660
3661.. option:: -freal-8-real-10, -fno-real-8-real-10
3662
3663.. option:: -freal-8-real-16, -fno-real-8-real-16
3664
3665.. option:: -freal-8-real-4, -fno-real-8-real-4
3666
3667.. option:: -frealloc-lhs, -fno-realloc-lhs
3668
3669.. option:: -frecord-marker=<arg>
3670
3671.. option:: -frecursive, -fno-recursive
3672
3673.. option:: -frepack-arrays, -fno-repack-arrays
3674
3675.. option:: -fsecond-underscore, -fno-second-underscore
3676
3677.. option:: -fsign-zero, -fno-sign-zero
3678
3679.. option:: -fstack-arrays, -fno-stack-arrays
3680
3681.. option:: -funderscoring, -fno-underscoring
3682
3683.. option:: -fwhole-file, -fno-whole-file
3684
3685.. option:: -imultilib <arg>
3686
3687.. option:: -nocpp
3688
3689.. option:: -static-libgfortran
3690
3691Linker flags
3692============
3693Flags that are passed on to the linker
3694
3695.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3696
3697Add directory to library search path
3698
3699.. option:: -Mach
3700
3701.. option:: -T<script>
3702
3703Specify <script> as linker script
3704
3705.. option:: -Tbss<addr>
3706
3707Set starting address of BSS to <addr>
3708
3709.. option:: -Tdata<addr>
3710
3711Set starting address of DATA to <addr>
3712
3713.. option:: -Ttext<addr>
3714
3715Set starting address of TEXT to <addr>
3716
3717.. option:: -Wl,<arg>,<arg2>...
3718
3719Pass the comma separated arguments in <arg> to the linker
3720
3721.. option:: -X
3722
3723.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3724
3725Pass <arg> to the linker
3726
3727.. program:: clang1
3728.. option:: -Z
3729.. program:: clang
3730
3731.. option:: -coverage, --coverage
3732
3733.. option:: -e<arg>, --entry
3734
3735.. option:: -filelist <arg>
3736
3737.. option:: --hip-device-lib=<arg>
3738
3739HIP device library
3740
3741.. option:: -l<arg>
3742
3743.. option:: --ld-path=<arg>
3744
3745.. option:: -nostartfiles
3746
3747.. program:: clang1
3748.. option:: -nostdlib, --no-standard-libraries
3749.. program:: clang
3750
3751.. option:: -pie
3752
3753.. option:: -r
3754
3755.. option:: -rdynamic
3756
3757.. option:: --rocm-device-lib-path=<arg>, --hip-device-lib-path=<arg>
3758
3759ROCm device library path. Alternative to rocm-path.
3760
3761.. option:: -rpath <arg>
3762
3763.. option:: -s
3764
3765.. option:: -shared, --shared
3766
3767.. option:: -specs=<arg>, --specs=<arg>
3768
3769.. option:: -static, --static
3770
3771.. option:: -static-pie
3772
3773.. option:: -t
3774
3775.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3776
3777.. option:: -undef
3778
3779undef all system defines
3780
3781.. option:: -undefined<arg>, --no-undefined
3782
3783.. option:: -z <arg>
3784
3785Pass -z <arg> to the linker
3786
3787