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