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