xref: /netbsd-src/external/apache2/llvm/dist/clang/docs/ClangCommandLineReference.rst (revision 7330f729ccf0bd976a06f95fad452fe774fc7fd1)
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.. option:: -ffixed-r9
2434
2435Reserve the r9 register (ARM only)
2436
2437.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2438
2439Disallow generation of data access to code sections (ARM only)
2440
2441.. option:: -mno-movt
2442
2443Disallow use of movt/movw pairs (ARM only)
2444
2445.. option:: -mno-neg-immediates
2446
2447Disallow converting instructions with negative immediates to their negation or inversion.
2448
2449.. option:: -mnocrc
2450
2451Disallow use of CRC instructions (ARM only)
2452
2453.. option:: -mrestrict-it, -mno-restrict-it
2454
2455Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2456
2457.. option:: -mtp=<arg>
2458
2459Read thread pointer from coprocessor register (ARM only)
2460
2461.. option:: -munaligned-access, -mno-unaligned-access
2462
2463Allow memory accesses to be unaligned (AArch32/AArch64 only)
2464
2465Hexagon
2466-------
2467.. option:: -mieee-rnd-near
2468
2469.. option:: -mmemops, -mno-memops
2470
2471Enable generation of memop instructions
2472
2473.. option:: -mnvj, -mno-nvj
2474
2475Enable generation of new-value jumps
2476
2477.. option:: -mnvs, -mno-nvs
2478
2479Enable generation of new-value stores
2480
2481.. option:: -mpackets, -mno-packets
2482
2483Enable generation of instruction packets
2484
2485Hexagon
2486-------
2487.. option:: -mhvx, -mno-hvx
2488
2489Enable Hexagon Vector eXtensions
2490
2491.. option:: -mhvx-length=<arg>
2492
2493Set Hexagon Vector Length
2494
2495.. program:: clang1
2496.. option:: -mhvx=<arg>
2497.. program:: clang
2498
2499Enable Hexagon Vector eXtensions
2500
2501MIPS
2502----
2503.. option:: -mabicalls, -mno-abicalls
2504
2505Enable SVR4-style position-independent code (Mips only)
2506
2507.. option:: -mabs=<arg>
2508
2509.. option:: -mcheck-zero-division, -mno-check-zero-division
2510
2511.. option:: -mcompact-branches=<arg>
2512
2513.. option:: -mdouble-float
2514
2515.. option:: -mdsp, -mno-dsp
2516
2517.. option:: -mdspr2, -mno-dspr2
2518
2519.. option:: -membedded-data, -mno-embedded-data
2520
2521Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2522
2523.. option:: -mextern-sdata, -mno-extern-sdata
2524
2525Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
2526
2527.. option:: -mfp32
2528
2529Use 32-bit floating point registers (MIPS only)
2530
2531.. option:: -mfp64
2532
2533Use 64-bit floating point registers (MIPS only)
2534
2535.. option:: -mginv, -mno-ginv
2536
2537.. option:: -mgpopt, -mno-gpopt
2538
2539Use GP relative accesses for symbols known to be in a small data section (MIPS)
2540
2541.. option:: -mindirect-jump=<arg>
2542
2543Change indirect jump instructions to inhibit speculation
2544
2545.. option:: -mips16
2546
2547.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
2548
2549.. option:: -mlocal-sdata, -mno-local-sdata
2550
2551Extend the -G behaviour to object local data (MIPS)
2552
2553.. option:: -mmadd4, -mno-madd4
2554
2555Enable the generation of 4-operand madd.s, madd.d and related instructions.
2556
2557.. option:: -mmicromips, -mno-micromips
2558
2559.. option:: -mmsa, -mno-msa
2560
2561Enable MSA ASE (MIPS only)
2562
2563.. option:: -mmt, -mno-mt
2564
2565Enable MT ASE (MIPS only)
2566
2567.. option:: -mnan=<arg>
2568
2569.. option:: -mno-mips16
2570
2571.. option:: -msingle-float
2572
2573.. option:: -mvirt, -mno-virt
2574
2575.. option:: -mxgot, -mno-xgot
2576
2577PowerPC
2578-------
2579.. option:: -maltivec, -mno-altivec
2580
2581.. option:: -mcmpb, -mno-cmpb
2582
2583.. option:: -mcrbits, -mno-crbits
2584
2585.. option:: -mcrypto, -mno-crypto
2586
2587.. option:: -mdirect-move, -mno-direct-move
2588
2589.. option:: -mfloat128, -mno-float128
2590
2591.. option:: -mfprnd, -mno-fprnd
2592
2593.. option:: -mhtm, -mno-htm
2594
2595.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
2596
2597.. option:: -misel, -mno-isel
2598
2599.. option:: -mlongcall, -mno-longcall
2600
2601.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
2602
2603.. option:: -mpopcntd, -mno-popcntd
2604
2605.. option:: -mpower8-vector, -mno-power8-vector
2606
2607.. option:: -mpower9-vector, -mno-power9-vector
2608
2609.. option:: -mqpx, -mno-qpx
2610
2611.. option:: -msecure-plt
2612
2613.. option:: -mvsx, -mno-vsx
2614
2615WebAssembly
2616-----------
2617.. option:: -mexception-handling, -mno-exception-handling
2618
2619.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
2620
2621.. option:: -msign-ext, -mno-sign-ext
2622
2623.. option:: -msimd128, -mno-simd128
2624
2625X86
2626---
2627.. option:: -m3dnow, -mno-3dnow
2628
2629.. option:: -m3dnowa, -mno-3dnowa
2630
2631.. option:: -madx, -mno-adx
2632
2633.. option:: -maes, -mno-aes
2634
2635.. option:: -mavx, -mno-avx
2636
2637.. option:: -mavx2, -mno-avx2
2638
2639.. option:: -mavx512bitalg, -mno-avx512bitalg
2640
2641.. option:: -mavx512bf16, -mno-avx512bf16
2642
2643.. option:: -mavx512bw, -mno-avx512bw
2644
2645.. option:: -mavx512cd, -mno-avx512cd
2646
2647.. option:: -mavx512dq, -mno-avx512dq
2648
2649.. option:: -mavx512er, -mno-avx512er
2650
2651.. option:: -mavx512f, -mno-avx512f
2652
2653.. option:: -mavx512ifma, -mno-avx512ifma
2654
2655.. option:: -mavx512pf, -mno-avx512pf
2656
2657.. option:: -mavx512vbmi, -mno-avx512vbmi
2658
2659.. option:: -mavx512vbmi2, -mno-avx512vbmi2
2660
2661.. option:: -mavx512vl, -mno-avx512vl
2662
2663.. option:: -mavx512vnni, -mno-avx512vnni
2664
2665.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
2666
2667.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
2668
2669.. option:: -mbmi, -mno-bmi
2670
2671.. option:: -mbmi2, -mno-bmi2
2672
2673.. option:: -mcldemote, -mno-cldemote
2674
2675.. option:: -mclflushopt, -mno-clflushopt
2676
2677.. option:: -mclwb, -mno-clwb
2678
2679.. option:: -mclzero, -mno-clzero
2680
2681.. option:: -mcx16, -mno-cx16
2682
2683.. option:: -menqcmd, -mno-enqcmd
2684
2685.. option:: -mf16c, -mno-f16c
2686
2687.. option:: -mfma, -mno-fma
2688
2689.. option:: -mfma4, -mno-fma4
2690
2691.. option:: -mfsgsbase, -mno-fsgsbase
2692
2693.. option:: -mfxsr, -mno-fxsr
2694
2695.. option:: -mgfni, -mno-gfni
2696
2697.. option:: -minvpcid, -mno-invpcid
2698
2699.. option:: -mlwp, -mno-lwp
2700
2701.. option:: -mlzcnt, -mno-lzcnt
2702
2703.. option:: -mmmx, -mno-mmx
2704
2705.. option:: -mmovbe, -mno-movbe
2706
2707.. option:: -mmovdir64b, -mno-movdir64b
2708
2709.. option:: -mmovdiri, -mno-movdiri
2710
2711.. option:: -mmpx, -mno-mpx
2712
2713.. option:: -mmwaitx, -mno-mwaitx
2714
2715.. option:: -mpclmul, -mno-pclmul
2716
2717.. option:: -mpconfig, -mno-pconfig
2718
2719.. option:: -mpku, -mno-pku
2720
2721.. option:: -mpopcnt, -mno-popcnt
2722
2723.. option:: -mprefetchwt1, -mno-prefetchwt1
2724
2725.. option:: -mprfchw, -mno-prfchw
2726
2727.. option:: -mptwrite, -mno-ptwrite
2728
2729.. option:: -mrdpid, -mno-rdpid
2730
2731.. option:: -mrdrnd, -mno-rdrnd
2732
2733.. option:: -mrdseed, -mno-rdseed
2734
2735.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
2736
2737.. option:: -mrtm, -mno-rtm
2738
2739.. option:: -msahf, -mno-sahf
2740
2741.. option:: -msgx, -mno-sgx
2742
2743.. option:: -msha, -mno-sha
2744
2745.. option:: -mshstk, -mno-shstk
2746
2747.. option:: -msse, -mno-sse
2748
2749.. option:: -msse2, -mno-sse2
2750
2751.. option:: -msse3, -mno-sse3
2752
2753.. option:: -msse4.1, -mno-sse4.1
2754
2755.. program:: clang1
2756.. option:: -msse4.2, -mno-sse4.2, -msse4
2757.. program:: clang
2758
2759.. option:: -msse4a, -mno-sse4a
2760
2761.. option:: -mssse3, -mno-ssse3
2762
2763.. option:: -mtbm, -mno-tbm
2764
2765.. option:: -mvaes, -mno-vaes
2766
2767.. option:: -mvpclmulqdq, -mno-vpclmulqdq
2768
2769.. option:: -mwaitpkg, -mno-waitpkg
2770
2771.. option:: -mwbnoinvd, -mno-wbnoinvd
2772
2773.. option:: -mx87, -m80387, -mno-x87
2774
2775.. option:: -mxop, -mno-xop
2776
2777.. option:: -mxsave, -mno-xsave
2778
2779.. option:: -mxsavec, -mno-xsavec
2780
2781.. option:: -mxsaveopt, -mno-xsaveopt
2782
2783.. option:: -mxsaves, -mno-xsaves
2784
2785RISCV
2786-----
2787.. option:: -mrelax, -mno-relax
2788
2789Enable linker relaxation
2790
2791Optimization level
2792~~~~~~~~~~~~~~~~~~
2793
2794Flags controlling how much optimization should be performed.
2795
2796.. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>
2797
2798.. option:: -Ofast<arg>
2799
2800Debug information generation
2801~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2802
2803Flags controlling how much and what kind of debug information should be
2804generated.
2805
2806Kind and level of debug information
2807-----------------------------------
2808.. option:: -g, --debug, --debug=<arg>
2809
2810Generate source-level debug information
2811
2812.. option:: -gdwarf-2
2813
2814Generate source-level debug information with dwarf version 2
2815
2816.. option:: -gdwarf-3
2817
2818Generate source-level debug information with dwarf version 3
2819
2820.. option:: -gdwarf-4, -gdwarf
2821
2822Generate source-level debug information with dwarf version 4
2823
2824.. option:: -gdwarf-5
2825
2826Generate source-level debug information with dwarf version 5
2827
2828.. option:: -gfull
2829
2830.. option:: -gused
2831
2832Debug level
2833___________
2834.. option:: -g0
2835
2836.. option:: -g2
2837
2838.. option:: -g3
2839
2840.. option:: -ggdb0
2841
2842.. option:: -ggdb1
2843
2844.. option:: -ggdb2
2845
2846.. option:: -ggdb3
2847
2848.. option:: -gline-tables-only, -g1, -gmlt
2849
2850Emit debug line number tables only
2851
2852.. option:: -gmodules
2853
2854Generate debug info with external references to clang modules or precompiled headers
2855
2856Debugger to tune debug information for
2857______________________________________
2858.. option:: -ggdb
2859
2860.. option:: -glldb
2861
2862.. option:: -gsce
2863
2864Debug information flags
2865-----------------------
2866.. option:: -gcolumn-info, -gno-column-info
2867
2868.. option:: -gdwarf-aranges
2869
2870.. option:: -gembed-source, -gno-embed-source
2871
2872Embed source text in DWARF debug sections
2873
2874.. option:: -ggnu-pubnames, -gno-gnu-pubnames
2875
2876.. option:: -gpubnames, -gno-pubnames
2877
2878.. option:: -grecord-command-line, -grecord-gcc-switches, -gno-record-command-line, -gno-record-gcc-switches
2879
2880.. option:: -gsplit-dwarf
2881
2882.. option:: -gstrict-dwarf, -gno-strict-dwarf
2883
2884.. option:: -gz
2885
2886DWARF debug sections compression type
2887
2888.. program:: clang1
2889.. option:: -gz=<arg>
2890.. program:: clang
2891
2892DWARF debug sections compression type
2893
2894Static analyzer flags
2895=====================
2896
2897Flags controlling the behavior of the Clang Static Analyzer.
2898
2899.. option:: -Xanalyzer <arg>
2900
2901Pass <arg> to the static analyzer
2902
2903Fortran compilation flags
2904=========================
2905
2906Flags that will be passed onto the ``gfortran`` compiler when Clang is given
2907a Fortran input.
2908
2909.. option:: -A<arg>, --assert <arg>, --assert=<arg>
2910
2911.. option:: -A-<arg>
2912
2913.. option:: -J<arg>
2914
2915.. option:: -cpp
2916
2917.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
2918
2919.. option:: -falign-commons, -fno-align-commons
2920
2921.. option:: -fall-intrinsics, -fno-all-intrinsics
2922
2923.. option:: -fautomatic, -fno-automatic
2924
2925.. option:: -fbackslash, -fno-backslash
2926
2927.. option:: -fbacktrace, -fno-backtrace
2928
2929.. option:: -fblas-matmul-limit=<arg>
2930
2931.. option:: -fbounds-check, -fno-bounds-check
2932
2933.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
2934
2935.. option:: -fcheck=<arg>
2936
2937.. option:: -fcoarray=<arg>
2938
2939.. option:: -fconvert=<arg>
2940
2941.. option:: -fcray-pointer, -fno-cray-pointer
2942
2943.. option:: -fd-lines-as-code, -fno-d-lines-as-code
2944
2945.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
2946
2947.. option:: -fdefault-double-8, -fno-default-double-8
2948
2949.. option:: -fdefault-integer-8, -fno-default-integer-8
2950
2951.. option:: -fdefault-real-8, -fno-default-real-8
2952
2953.. option:: -fdollar-ok, -fno-dollar-ok
2954
2955.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
2956
2957.. option:: -fdump-fortran-original, -fno-dump-fortran-original
2958
2959.. option:: -fdump-parse-tree, -fno-dump-parse-tree
2960
2961.. option:: -fexternal-blas, -fno-external-blas
2962
2963.. option:: -ff2c, -fno-f2c
2964
2965.. option:: -ffixed-form, -fno-fixed-form
2966
2967.. option:: -ffixed-line-length-<arg>
2968
2969.. option:: -ffpe-trap=<arg>
2970
2971.. option:: -ffree-form, -fno-free-form
2972
2973.. option:: -ffree-line-length-<arg>
2974
2975.. option:: -ffrontend-optimize, -fno-frontend-optimize
2976
2977.. option:: -fimplicit-none, -fno-implicit-none
2978
2979.. option:: -finit-character=<arg>
2980
2981.. option:: -finit-integer=<arg>
2982
2983.. option:: -finit-local-zero, -fno-init-local-zero
2984
2985.. option:: -finit-logical=<arg>
2986
2987.. option:: -finit-real=<arg>
2988
2989.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
2990
2991.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
2992
2993.. option:: -fmax-array-constructor=<arg>
2994
2995.. option:: -fmax-errors=<arg>
2996
2997.. option:: -fmax-identifier-length, -fno-max-identifier-length
2998
2999.. option:: -fmax-stack-var-size=<arg>
3000
3001.. option:: -fmax-subrecord-length=<arg>
3002
3003.. option:: -fmodule-private, -fno-module-private
3004
3005.. option:: -fpack-derived, -fno-pack-derived
3006
3007.. option:: -fprotect-parens, -fno-protect-parens
3008
3009.. option:: -frange-check, -fno-range-check
3010
3011.. option:: -freal-4-real-10, -fno-real-4-real-10
3012
3013.. option:: -freal-4-real-16, -fno-real-4-real-16
3014
3015.. option:: -freal-4-real-8, -fno-real-4-real-8
3016
3017.. option:: -freal-8-real-10, -fno-real-8-real-10
3018
3019.. option:: -freal-8-real-16, -fno-real-8-real-16
3020
3021.. option:: -freal-8-real-4, -fno-real-8-real-4
3022
3023.. option:: -frealloc-lhs, -fno-realloc-lhs
3024
3025.. option:: -frecord-marker=<arg>
3026
3027.. option:: -frecursive, -fno-recursive
3028
3029.. option:: -frepack-arrays, -fno-repack-arrays
3030
3031.. option:: -fsecond-underscore, -fno-second-underscore
3032
3033.. option:: -fsign-zero, -fno-sign-zero
3034
3035.. option:: -fstack-arrays, -fno-stack-arrays
3036
3037.. option:: -funderscoring, -fno-underscoring
3038
3039.. option:: -fwhole-file, -fno-whole-file
3040
3041.. option:: -imultilib <arg>
3042
3043.. option:: -nocpp
3044
3045.. option:: -static-libgfortran
3046
3047Linker flags
3048============
3049Flags that are passed on to the linker
3050
3051.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3052
3053Add directory to library search path
3054
3055.. option:: -Mach
3056
3057.. option:: -T<script>
3058
3059Specify <script> as linker script
3060
3061.. option:: -Tbss<addr>
3062
3063Set starting address of BSS to <addr>
3064
3065.. option:: -Tdata<addr>
3066
3067Set starting address of DATA to <addr>
3068
3069.. option:: -Ttext<addr>
3070
3071Set starting address of TEXT to <addr>
3072
3073.. option:: -Wl,<arg>,<arg2>...
3074
3075Pass the comma separated arguments in <arg> to the linker
3076
3077.. option:: -X
3078
3079.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3080
3081Pass <arg> to the linker
3082
3083.. program:: clang1
3084.. option:: -Z
3085.. program:: clang
3086
3087.. option:: -e<arg>, --entry
3088
3089.. option:: -filelist <arg>
3090
3091.. option:: --hip-device-lib-path=<arg>
3092
3093HIP device library path
3094
3095.. option:: --hip-device-lib=<arg>
3096
3097HIP device library
3098
3099.. option:: -l<arg>
3100
3101.. option:: -r
3102
3103.. option:: -rpath <arg>
3104
3105.. option:: -s
3106
3107.. option:: -t
3108
3109.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3110
3111.. option:: -undef
3112
3113undef all system defines
3114
3115.. option:: -undefined<arg>, --no-undefined
3116
3117.. option:: -z <arg>
3118
3119Pass -z <arg> to the linker
3120
3121