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=<file>
1703
1704Implies -fsave-optimization-record. On Darwin platforms, this
1705  cannot be used with multiple -arch <arch> options.
1706
1707.. option:: -foptimization-record-passes=<regex>
1708
1709Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
1710
1711.. option:: -foptimize-sibling-calls, -fno-optimize-sibling-calls
1712
1713.. option:: -foutput-class-dir=<arg>, --output-class-directory <arg>, --output-class-directory=<arg>
1714
1715.. option:: -fpack-struct, -fno-pack-struct
1716
1717.. program:: clang1
1718.. option:: -fpack-struct=<arg>
1719.. program:: clang
1720
1721Specify the default maximum struct packing alignment
1722
1723.. option:: -fpascal-strings, -fno-pascal-strings, -mpascal-strings
1724
1725Recognize and construct Pascal-style string literals
1726
1727.. option:: -fpcc-struct-return
1728
1729Override the default ABI to return all structs on the stack
1730
1731.. option:: -fpch-preprocess
1732
1733.. option:: -fpic, -fno-pic
1734
1735.. option:: -fpie, -fno-pie
1736
1737.. option:: -fplt, -fno-plt
1738
1739Use the PLT to make function calls
1740
1741.. option:: -fplugin=<dsopath>
1742
1743Load the named plugin (dynamic shared object)
1744
1745.. option:: -fpreserve-as-comments, -fno-preserve-as-comments
1746
1747.. option:: -fprofile-arcs, -fno-profile-arcs
1748
1749.. option:: -fprofile-dir=<arg>
1750
1751.. option:: -fprofile-generate, -fno-profile-generate
1752
1753Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1754
1755.. program:: clang1
1756.. option:: -fprofile-generate=<directory>
1757.. program:: clang
1758
1759Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM\_PROFILE\_FILE env var)
1760
1761.. option:: -fprofile-instr-generate, -fno-profile-instr-generate
1762
1763Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM\_PROFILE\_FILE env var)
1764
1765.. program:: clang1
1766.. option:: -fprofile-instr-generate=<file>
1767.. program:: clang
1768
1769Generate instrumented code to collect execution counts into <file> (overridden by LLVM\_PROFILE\_FILE env var)
1770
1771.. option:: -fprofile-instr-use, -fno-profile-instr-use, -fprofile-use
1772
1773.. program:: clang1
1774.. option:: -fprofile-instr-use=<arg>
1775.. program:: clang
1776
1777Use instrumentation data for profile-guided optimization
1778
1779.. option:: -fprofile-sample-accurate, -fauto-profile-accurate, -fno-profile-sample-accurate
1780
1781Specifies that the sample profile is accurate. If the sample
1782               profile is accurate, callsites without profile samples are marked
1783               as cold. Otherwise, treat callsites without profile samples as if
1784               we have no profile
1785
1786.. option:: -fprofile-sample-use, -fauto-profile, -fno-profile-sample-use
1787
1788.. program:: clang1
1789.. option:: -fprofile-sample-use=<arg>, -fauto-profile=<arg>
1790.. program:: clang
1791
1792Enable sample-based profile guided optimizations
1793
1794.. program:: clang1
1795.. option:: -fprofile-use=<pathname>
1796.. program:: clang
1797
1798Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
1799
1800.. option:: -freciprocal-math, -fno-reciprocal-math
1801
1802Allow division operations to be reassociated
1803
1804.. option:: -freg-struct-return
1805
1806Override the default ABI to return small structs in registers
1807
1808.. option:: -fregister-global-dtors-with-atexit, -fno-register-global-dtors-with-atexit
1809
1810Use atexit or \_\_cxa\_atexit to register global destructors
1811
1812.. option:: -frelaxed-template-template-args, -fno-relaxed-template-template-args
1813
1814Enable C++17 relaxed template template argument matching
1815
1816.. option:: -freroll-loops, -fno-reroll-loops
1817
1818Turn on loop reroller
1819
1820.. option:: -fretain-comments-from-system-headers
1821
1822.. option:: -frewrite-imports, -fno-rewrite-imports
1823
1824.. option:: -frewrite-includes, -fno-rewrite-includes
1825
1826.. option:: -frewrite-map-file <arg>
1827
1828.. program:: clang1
1829.. option:: -frewrite-map-file=<arg>
1830.. program:: clang
1831
1832.. option:: -fropi, -fno-ropi
1833
1834.. option:: -frtti, -fno-rtti
1835
1836.. option:: -frwpi, -fno-rwpi
1837
1838.. option:: -fsave-optimization-record, -fno-save-optimization-record
1839
1840Generate a YAML optimization record file
1841
1842.. program:: clang1
1843.. option:: -fsave-optimization-record=<format>
1844.. program:: clang
1845
1846Generate an optimization record file in a specific format.
1847
1848.. option:: -fseh-exceptions
1849
1850Use SEH style exceptions
1851
1852.. option:: -fshort-enums, -fno-short-enums
1853
1854Allocate to an enum type only as many bytes as it needs for the declared range of possible values
1855
1856.. option:: -fshort-wchar, -fno-short-wchar
1857
1858Force wchar\_t to be a short unsigned int
1859
1860.. option:: -fshow-column, -fno-show-column
1861
1862.. option:: -fshow-overloads=<arg>
1863
1864Which overload candidates to show when overload resolution fails: best\|all; defaults to all
1865
1866.. option:: -fshow-source-location, -fno-show-source-location
1867
1868.. option:: -fsignaling-math, -fno-signaling-math
1869
1870.. option:: -fsigned-bitfields
1871
1872.. option:: -fsigned-char, -fno-signed-char, --signed-char
1873
1874.. option:: -fsigned-zeros, -fno-signed-zeros
1875
1876.. option:: -fsized-deallocation, -fno-sized-deallocation
1877
1878Enable C++14 sized global deallocation functions
1879
1880.. option:: -fsjlj-exceptions
1881
1882Use SjLj style exceptions
1883
1884.. option:: -fslp-vectorize, -fno-slp-vectorize, -ftree-slp-vectorize
1885
1886Enable the superword-level parallelism vectorization passes
1887
1888.. option:: -fspell-checking, -fno-spell-checking
1889
1890.. option:: -fspell-checking-limit=<arg>
1891
1892.. option:: -fsplit-dwarf-inlining, -fno-split-dwarf-inlining
1893
1894Provide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARF
1895
1896.. option:: -fsplit-stack
1897
1898.. option:: -fstack-protector, -fno-stack-protector
1899
1900Enable stack protectors for functions potentially vulnerable to stack smashing
1901
1902.. option:: -fstack-protector-all
1903
1904Force the usage of stack protectors for all functions
1905
1906.. option:: -fstack-protector-strong
1907
1908Use a strong heuristic to apply stack protectors to functions
1909
1910.. option:: -fstack-size-section, -fno-stack-size-section
1911
1912Emit section containing metadata on function stack sizes
1913
1914.. option:: -fstandalone-debug, -fno-limit-debug-info, -fno-standalone-debug
1915
1916Emit full debug info for all types used by the program
1917
1918.. option:: -fstrict-aliasing, -fno-strict-aliasing
1919
1920.. option:: -fstrict-enums, -fno-strict-enums
1921
1922Enable optimizations based on the strict definition of an enum's value range
1923
1924.. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
1925
1926Assume that overflowing float-to-int casts are undefined (default)
1927
1928.. option:: -fstrict-overflow, -fno-strict-overflow
1929
1930.. option:: -fstrict-return, -fno-strict-return
1931
1932Always treat control flow paths that fall off the end of a non-void function as unreachable
1933
1934.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
1935
1936Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
1937
1938.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
1939
1940.. option:: -ftabstop=<arg>
1941
1942.. option:: -ftemplate-backtrace-limit=<arg>
1943
1944.. option:: -ftemplate-depth-<arg>
1945
1946.. option:: -ftemplate-depth=<arg>
1947
1948.. option:: -ftest-coverage
1949
1950.. option:: -fthinlto-index=<arg>
1951
1952Perform ThinLTO importing using provided function summary index
1953
1954.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
1955
1956.. option:: -ftime-report
1957
1958.. option:: -ftime-trace
1959
1960Turn on time profiler. Results can be analyzed with chrome://tracing or
1961`Speedscope App <https://www.speedscope.app>`_ for flamegraph visualization
1962
1963.. option:: -ftime-trace-granularity=<arg>
1964
1965Minimum time granularity (in microseconds) traced by time profiler
1966
1967.. option:: -ftls-model=<arg>
1968
1969.. option:: -ftrap-function=<arg>
1970
1971Issue call to specified function rather than a trap instruction
1972
1973.. option:: -ftrapping-math, -fno-trapping-math
1974
1975.. option:: -ftrapv
1976
1977Trap on integer overflow
1978
1979.. option:: -ftrapv-handler <arg>
1980
1981.. program:: clang1
1982.. option:: -ftrapv-handler=<function name>
1983.. program:: clang
1984
1985Specify the function to be called on overflow
1986
1987.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
1988
1989Process trigraph sequences
1990
1991.. option:: -funique-section-names, -fno-unique-section-names
1992
1993Use unique names for text and data sections (ELF Only)
1994
1995.. option:: -funit-at-a-time, -fno-unit-at-a-time
1996
1997.. option:: -funroll-loops, -fno-unroll-loops
1998
1999Turn on loop unroller
2000
2001.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2002
2003.. option:: -funsigned-bitfields
2004
2005.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2006
2007.. option:: -funwind-tables, -fno-unwind-tables
2008
2009.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2010
2011.. option:: -fuse-init-array, -fno-use-init-array
2012
2013Use .init\_array instead of .ctors
2014
2015.. option:: -fuse-ld=<arg>
2016
2017.. option:: -fuse-line-directives, -fno-use-line-directives
2018
2019.. option:: -fveclib=<arg>
2020
2021Use the given vector functions library
2022
2023.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2024
2025Enable the loop vectorization passes
2026
2027.. option:: -fverbose-asm, -fno-verbose-asm, -dA
2028
2029.. option:: -fvisibility-inlines-hidden
2030
2031Give inline C++ member functions hidden visibility by default
2032
2033.. option:: -fvisibility-ms-compat
2034
2035Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2036
2037.. option:: -fvisibility=<arg>
2038
2039Set the default symbol visibility for all global declarations
2040
2041.. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2042
2043Enables whole-program vtable optimization. Requires -flto
2044
2045.. option:: -fwrapv, -fno-wrapv
2046
2047Treat signed integer overflow as two's complement
2048
2049.. option:: -fwritable-strings
2050
2051Store string literals as writable data
2052
2053.. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2054
2055Determine whether to always emit \_\_xray\_customevent(...) calls even if the function it appears in is not always instrumented.
2056
2057.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2058
2059Determine whether to always emit \_\_xray\_typedevent(...) calls even if the function it appears in is not always instrumented.
2060
2061.. option:: -fxray-always-instrument=<arg>
2062
2063DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2064
2065.. option:: -fxray-attr-list=<arg>
2066
2067Filename defining the list of functions/types for imbuing XRay attributes.
2068
2069.. option:: -fxray-instruction-threshold<arg>
2070
2071.. program:: clang1
2072.. option:: -fxray-instruction-threshold=<arg>
2073.. program:: clang
2074
2075Sets the minimum function size to instrument with XRay
2076
2077.. option:: -fxray-instrument, -fno-xray-instrument
2078
2079Generate XRay instrumentation sleds on function entry and exit
2080
2081.. option:: -fxray-instrumentation-bundle=<arg>
2082
2083Select which XRay instrumentation points to emit. Options: all, none, function, custom. Default is 'all'.
2084
2085.. option:: -fxray-link-deps
2086
2087Tells clang to add the link dependencies for XRay.
2088
2089.. option:: -fxray-modes=<arg>
2090
2091List of modes to link in by default into XRay instrumented binaries.
2092
2093.. option:: -fxray-never-instrument=<arg>
2094
2095DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2096
2097.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2098
2099.. option:: -fzvector, -fno-zvector, -mzvector
2100
2101Enable System z vector language extension
2102
2103.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2104
2105.. option:: -pedantic-errors, --pedantic-errors
2106
2107OpenCL flags
2108------------
2109.. option:: -cl-denorms-are-zero
2110
2111OpenCL only. Allow denormals to be flushed to zero.
2112
2113.. option:: -cl-fast-relaxed-math
2114
2115OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2116
2117.. option:: -cl-finite-math-only
2118
2119OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2120
2121.. option:: -cl-fp32-correctly-rounded-divide-sqrt
2122
2123OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2124
2125.. option:: -cl-kernel-arg-info
2126
2127OpenCL only. Generate kernel argument metadata.
2128
2129.. option:: -cl-mad-enable
2130
2131OpenCL only. Allow use of less precise MAD computations in the generated binary.
2132
2133.. option:: -cl-no-signed-zeros
2134
2135OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2136
2137.. option:: -cl-opt-disable
2138
2139OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2140
2141.. option:: -cl-single-precision-constant
2142
2143OpenCL only. Treat double precision floating-point constant as single precision constant.
2144
2145.. option:: -cl-std=<arg>
2146
2147OpenCL language standard to compile for.
2148
2149.. option:: -cl-strict-aliasing
2150
2151OpenCL only. This option is added for compatibility with OpenCL 1.0.
2152
2153.. option:: -cl-uniform-work-group-size
2154
2155OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2156
2157.. option:: -cl-unsafe-math-optimizations
2158
2159OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2160
2161Target-dependent compilation options
2162~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2163.. option:: -G<size>, -G=<arg>, -msmall-data-threshold=<arg>
2164
2165Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2166
2167.. option:: -m16
2168
2169.. option:: -m32
2170
2171.. option:: -m64
2172
2173.. option:: -mabi=<arg>
2174
2175.. option:: -malign-double
2176
2177Align doubles to two words in structs (x86 only)
2178
2179.. option:: -march=<arg>
2180
2181.. option:: -masm=<arg>
2182
2183.. option:: -mbackchain, -mno-backchain
2184
2185Link stack frames through backchain on System Z
2186
2187.. option:: -mcmodel=<arg>
2188
2189.. option:: -mconsole<arg>
2190
2191.. 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)
2192
2193Use -mcpu=? to see a list of supported cpu models.
2194
2195.. option:: -mcrc, -mno-crc
2196
2197Allow use of CRC instructions (ARM/Mips only)
2198
2199.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2200
2201.. option:: -mdll<arg>
2202
2203.. option:: -mdynamic-no-pic<arg>
2204
2205.. option:: -meabi <arg>
2206
2207Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2208
2209.. option:: -mfentry
2210
2211Insert calls to fentry at function entry (x86/SystemZ only)
2212
2213.. option:: -mfloat-abi=<arg>
2214
2215.. option:: -mfpmath=<arg>
2216
2217.. option:: -mfpu=<arg>
2218
2219.. option:: -mglobal-merge, -mno-global-merge
2220
2221Enable merging of globals
2222
2223.. option:: -mhard-float
2224
2225.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2226
2227.. option:: -miamcu, -mno-iamcu
2228
2229Use Intel MCU ABI
2230
2231.. option:: -mimplicit-float, -mno-implicit-float
2232
2233.. option:: -mimplicit-it=<arg>
2234
2235.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2236
2237(integrated-as) Emit an object file which can be used with an incremental linker
2238
2239.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2240
2241.. option:: -mkernel
2242
2243.. option:: -mlong-calls, -mno-long-calls
2244
2245Generate branches with extended addressability, usually via indirect jumps.
2246
2247.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2248
2249Set macOS deployment target
2250
2251.. option:: -mmcu=<arg>
2252
2253.. option:: -mms-bitfields, -mno-ms-bitfields
2254
2255Set the default structure layout to be compatible with the Microsoft compiler standard
2256
2257.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2258
2259Omit frame pointer setup for leaf functions
2260
2261.. option:: -moslib=<arg>
2262
2263.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2264
2265Use copy relocations support for PIE builds
2266
2267.. option:: -mprefer-vector-width=<arg>
2268
2269Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2270
2271.. option:: -mqdsp6-compat
2272
2273Enable hexagon-qdsp6 backward compatibility
2274
2275.. option:: -mrecip
2276
2277.. program:: clang1
2278.. option:: -mrecip=<arg1>,<arg2>...
2279.. program:: clang
2280
2281.. option:: -mred-zone, -mno-red-zone
2282
2283.. option:: -mregparm=<arg>
2284
2285.. option:: -mrelax-all, -mno-relax-all
2286
2287(integrated-as) Relax all machine instructions
2288
2289.. option:: -mretpoline, -mno-retpoline
2290
2291.. option:: -mrtd, -mno-rtd
2292
2293Make StdCall calling convention the default
2294
2295.. option:: -msign-return-address=<arg>
2296
2297Select return address signing scope
2298
2299.. option:: -msoft-float, -mno-soft-float
2300
2301Use software floating point
2302
2303.. option:: -mstack-alignment=<arg>
2304
2305Set the stack alignment
2306
2307.. option:: -mstack-arg-probe, -mno-stack-arg-probe
2308
2309Enable stack probes
2310
2311.. option:: -mstack-probe-size=<arg>
2312
2313Set the stack probe size
2314
2315.. option:: -mstackrealign, -mno-stackrealign
2316
2317Force realign the stack at entry to every function
2318
2319.. option:: -mthread-model <arg>
2320
2321The thread model to use, e.g. posix, single (posix by default)
2322
2323.. option:: -mthreads<arg>
2324
2325.. option:: -mthumb, -mno-thumb
2326
2327.. option:: -mtune=<arg>
2328
2329Use -mtune=? to see a list of supported cpu models.
2330
2331.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2332
2333.. option:: -municode<arg>
2334
2335.. option:: -mvx, -mno-vx
2336
2337.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2338
2339.. option:: -mwatchos-version-min=<arg>
2340
2341.. option:: -mwindows<arg>
2342
2343.. option:: -mx32
2344
2345AARCH64
2346-------
2347.. option:: -ffixed-x1
2348
2349Reserve the x1 register (AArch64 only)
2350
2351.. option:: -ffixed-x2
2352
2353Reserve the x2 register (AArch64 only)
2354
2355.. option:: -ffixed-x3
2356
2357Reserve the x3 register (AArch64 only)
2358
2359.. option:: -ffixed-x4
2360
2361Reserve the x4 register (AArch64 only)
2362
2363.. option:: -ffixed-x5
2364
2365Reserve the x5 register (AArch64 only)
2366
2367.. option:: -ffixed-x6
2368
2369Reserve the x6 register (AArch64 only)
2370
2371.. option:: -ffixed-x7
2372
2373Reserve the x7 register (AArch64 only)
2374
2375.. option:: -ffixed-x18
2376
2377Reserve the x18 register (AArch64 only)
2378
2379.. option:: -ffixed-x20
2380
2381Reserve the x20 register (AArch64 only)
2382
2383.. option:: -fcall-saved-x8
2384
2385Make the x8 register call-saved (AArch64 only)
2386
2387.. option:: -fcall-saved-x9
2388
2389Make the x9 register call-saved (AArch64 only)
2390
2391.. option:: -fcall-saved-x10
2392
2393Make the x10 register call-saved (AArch64 only)
2394
2395.. option:: -fcall-saved-x11
2396
2397Make the x11 register call-saved (AArch64 only)
2398
2399.. option:: -fcall-saved-x12
2400
2401Make the x12 register call-saved (AArch64 only)
2402
2403.. option:: -fcall-saved-x13
2404
2405Make the x13 register call-saved (AArch64 only)
2406
2407.. option:: -fcall-saved-x14
2408
2409Make the x14 register call-saved (AArch64 only)
2410
2411.. option:: -fcall-saved-x15
2412
2413Make the x15 register call-saved (AArch64 only)
2414
2415.. option:: -fcall-saved-x18
2416
2417Make the x18 register call-saved (AArch64 only)
2418
2419.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2420
2421Workaround Cortex-A53 erratum 835769 (AArch64 only)
2422
2423.. option:: -mgeneral-regs-only
2424
2425Generate code which only uses the general purpose registers (AArch64 only)
2426
2427AMDGPU
2428------
2429.. option:: -mcumode, -mno-cumode
2430
2431CU wavefront execution mode is used if enabled and WGP wavefront execution mode
2432is used if disabled (AMDGPU only)
2433
2434.. option:: -mwavefrontsize64, -mno-wavefrontsize64
2435
2436Wavefront size 64 is used if enabled and wavefront size 32 if disabled (AMDGPU only)
2437
2438.. option:: -mxnack, -mno-xnack
2439
2440Enable XNACK (AMDGPU only)
2441
2442ARM
2443---
2444.. option:: -ffixed-r9
2445
2446Reserve the r9 register (ARM only)
2447
2448.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2449
2450Disallow generation of data access to code sections (ARM only)
2451
2452.. option:: -mno-movt
2453
2454Disallow use of movt/movw pairs (ARM only)
2455
2456.. option:: -mno-neg-immediates
2457
2458Disallow converting instructions with negative immediates to their negation or inversion.
2459
2460.. option:: -mnocrc
2461
2462Disallow use of CRC instructions (ARM only)
2463
2464.. option:: -mrestrict-it, -mno-restrict-it
2465
2466Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2467
2468.. option:: -mtp=<arg>
2469
2470Read thread pointer from coprocessor register (ARM only)
2471
2472.. option:: -munaligned-access, -mno-unaligned-access
2473
2474Allow memory accesses to be unaligned (AArch32/AArch64 only)
2475
2476Hexagon
2477-------
2478.. option:: -mieee-rnd-near
2479
2480.. option:: -mmemops, -mno-memops
2481
2482Enable generation of memop instructions
2483
2484.. option:: -mnvj, -mno-nvj
2485
2486Enable generation of new-value jumps
2487
2488.. option:: -mnvs, -mno-nvs
2489
2490Enable generation of new-value stores
2491
2492.. option:: -mpackets, -mno-packets
2493
2494Enable generation of instruction packets
2495
2496Hexagon
2497-------
2498.. option:: -mhvx, -mno-hvx
2499
2500Enable Hexagon Vector eXtensions
2501
2502.. option:: -mhvx-length=<arg>
2503
2504Set Hexagon Vector Length
2505
2506.. program:: clang1
2507.. option:: -mhvx=<arg>
2508.. program:: clang
2509
2510Enable Hexagon Vector eXtensions
2511
2512MIPS
2513----
2514.. option:: -mabicalls, -mno-abicalls
2515
2516Enable SVR4-style position-independent code (Mips only)
2517
2518.. option:: -mabs=<arg>
2519
2520.. option:: -mcheck-zero-division, -mno-check-zero-division
2521
2522.. option:: -mcompact-branches=<arg>
2523
2524.. option:: -mdouble-float
2525
2526.. option:: -mdsp, -mno-dsp
2527
2528.. option:: -mdspr2, -mno-dspr2
2529
2530.. option:: -membedded-data, -mno-embedded-data
2531
2532Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2533
2534.. option:: -mextern-sdata, -mno-extern-sdata
2535
2536Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
2537
2538.. option:: -mfp32
2539
2540Use 32-bit floating point registers (MIPS only)
2541
2542.. option:: -mfp64
2543
2544Use 64-bit floating point registers (MIPS only)
2545
2546.. option:: -mginv, -mno-ginv
2547
2548.. option:: -mgpopt, -mno-gpopt
2549
2550Use GP relative accesses for symbols known to be in a small data section (MIPS)
2551
2552.. option:: -mindirect-jump=<arg>
2553
2554Change indirect jump instructions to inhibit speculation
2555
2556.. option:: -mips16
2557
2558.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
2559
2560.. option:: -mlocal-sdata, -mno-local-sdata
2561
2562Extend the -G behaviour to object local data (MIPS)
2563
2564.. option:: -mmadd4, -mno-madd4
2565
2566Enable the generation of 4-operand madd.s, madd.d and related instructions.
2567
2568.. option:: -mmicromips, -mno-micromips
2569
2570.. option:: -mmsa, -mno-msa
2571
2572Enable MSA ASE (MIPS only)
2573
2574.. option:: -mmt, -mno-mt
2575
2576Enable MT ASE (MIPS only)
2577
2578.. option:: -mnan=<arg>
2579
2580.. option:: -mno-mips16
2581
2582.. option:: -msingle-float
2583
2584.. option:: -mvirt, -mno-virt
2585
2586.. option:: -mxgot, -mno-xgot
2587
2588PowerPC
2589-------
2590.. option:: -maltivec, -mno-altivec
2591
2592.. option:: -mcmpb, -mno-cmpb
2593
2594.. option:: -mcrbits, -mno-crbits
2595
2596.. option:: -mcrypto, -mno-crypto
2597
2598.. option:: -mdirect-move, -mno-direct-move
2599
2600.. option:: -mfloat128, -mno-float128
2601
2602.. option:: -mfprnd, -mno-fprnd
2603
2604.. option:: -mhtm, -mno-htm
2605
2606.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
2607
2608.. option:: -misel, -mno-isel
2609
2610.. option:: -mlongcall, -mno-longcall
2611
2612.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
2613
2614.. option:: -mpopcntd, -mno-popcntd
2615
2616.. option:: -mpower8-vector, -mno-power8-vector
2617
2618.. option:: -mpower9-vector, -mno-power9-vector
2619
2620.. option:: -mqpx, -mno-qpx
2621
2622.. option:: -msecure-plt
2623
2624.. option:: -mvsx, -mno-vsx
2625
2626WebAssembly
2627-----------
2628.. option:: -mexception-handling, -mno-exception-handling
2629
2630.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
2631
2632.. option:: -msign-ext, -mno-sign-ext
2633
2634.. option:: -msimd128, -mno-simd128
2635
2636X86
2637---
2638.. option:: -m3dnow, -mno-3dnow
2639
2640.. option:: -m3dnowa, -mno-3dnowa
2641
2642.. option:: -madx, -mno-adx
2643
2644.. option:: -maes, -mno-aes
2645
2646.. option:: -mavx, -mno-avx
2647
2648.. option:: -mavx2, -mno-avx2
2649
2650.. option:: -mavx512bitalg, -mno-avx512bitalg
2651
2652.. option:: -mavx512bf16, -mno-avx512bf16
2653
2654.. option:: -mavx512bw, -mno-avx512bw
2655
2656.. option:: -mavx512cd, -mno-avx512cd
2657
2658.. option:: -mavx512dq, -mno-avx512dq
2659
2660.. option:: -mavx512er, -mno-avx512er
2661
2662.. option:: -mavx512f, -mno-avx512f
2663
2664.. option:: -mavx512ifma, -mno-avx512ifma
2665
2666.. option:: -mavx512pf, -mno-avx512pf
2667
2668.. option:: -mavx512vbmi, -mno-avx512vbmi
2669
2670.. option:: -mavx512vbmi2, -mno-avx512vbmi2
2671
2672.. option:: -mavx512vl, -mno-avx512vl
2673
2674.. option:: -mavx512vnni, -mno-avx512vnni
2675
2676.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
2677
2678.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
2679
2680.. option:: -mbmi, -mno-bmi
2681
2682.. option:: -mbmi2, -mno-bmi2
2683
2684.. option:: -mcldemote, -mno-cldemote
2685
2686.. option:: -mclflushopt, -mno-clflushopt
2687
2688.. option:: -mclwb, -mno-clwb
2689
2690.. option:: -mclzero, -mno-clzero
2691
2692.. option:: -mcx16, -mno-cx16
2693
2694.. option:: -menqcmd, -mno-enqcmd
2695
2696.. option:: -mf16c, -mno-f16c
2697
2698.. option:: -mfma, -mno-fma
2699
2700.. option:: -mfma4, -mno-fma4
2701
2702.. option:: -mfsgsbase, -mno-fsgsbase
2703
2704.. option:: -mfxsr, -mno-fxsr
2705
2706.. option:: -mgfni, -mno-gfni
2707
2708.. option:: -minvpcid, -mno-invpcid
2709
2710.. option:: -mlwp, -mno-lwp
2711
2712.. option:: -mlzcnt, -mno-lzcnt
2713
2714.. option:: -mmmx, -mno-mmx
2715
2716.. option:: -mmovbe, -mno-movbe
2717
2718.. option:: -mmovdir64b, -mno-movdir64b
2719
2720.. option:: -mmovdiri, -mno-movdiri
2721
2722.. option:: -mmpx, -mno-mpx
2723
2724.. option:: -mmwaitx, -mno-mwaitx
2725
2726.. option:: -mpclmul, -mno-pclmul
2727
2728.. option:: -mpconfig, -mno-pconfig
2729
2730.. option:: -mpku, -mno-pku
2731
2732.. option:: -mpopcnt, -mno-popcnt
2733
2734.. option:: -mprefetchwt1, -mno-prefetchwt1
2735
2736.. option:: -mprfchw, -mno-prfchw
2737
2738.. option:: -mptwrite, -mno-ptwrite
2739
2740.. option:: -mrdpid, -mno-rdpid
2741
2742.. option:: -mrdrnd, -mno-rdrnd
2743
2744.. option:: -mrdseed, -mno-rdseed
2745
2746.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
2747
2748.. option:: -mrtm, -mno-rtm
2749
2750.. option:: -msahf, -mno-sahf
2751
2752.. option:: -msgx, -mno-sgx
2753
2754.. option:: -msha, -mno-sha
2755
2756.. option:: -mshstk, -mno-shstk
2757
2758.. option:: -msse, -mno-sse
2759
2760.. option:: -msse2, -mno-sse2
2761
2762.. option:: -msse3, -mno-sse3
2763
2764.. option:: -msse4.1, -mno-sse4.1
2765
2766.. program:: clang1
2767.. option:: -msse4.2, -mno-sse4.2, -msse4
2768.. program:: clang
2769
2770.. option:: -msse4a, -mno-sse4a
2771
2772.. option:: -mssse3, -mno-ssse3
2773
2774.. option:: -mtbm, -mno-tbm
2775
2776.. option:: -mvaes, -mno-vaes
2777
2778.. option:: -mvpclmulqdq, -mno-vpclmulqdq
2779
2780.. option:: -mwaitpkg, -mno-waitpkg
2781
2782.. option:: -mwbnoinvd, -mno-wbnoinvd
2783
2784.. option:: -mx87, -m80387, -mno-x87
2785
2786.. option:: -mxop, -mno-xop
2787
2788.. option:: -mxsave, -mno-xsave
2789
2790.. option:: -mxsavec, -mno-xsavec
2791
2792.. option:: -mxsaveopt, -mno-xsaveopt
2793
2794.. option:: -mxsaves, -mno-xsaves
2795
2796RISCV
2797-----
2798.. option:: -mrelax, -mno-relax
2799
2800Enable linker relaxation
2801
2802Optimization level
2803~~~~~~~~~~~~~~~~~~
2804
2805Flags controlling how much optimization should be performed.
2806
2807.. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>
2808
2809.. option:: -Ofast<arg>
2810
2811Debug information generation
2812~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2813
2814Flags controlling how much and what kind of debug information should be
2815generated.
2816
2817Kind and level of debug information
2818-----------------------------------
2819.. option:: -g, --debug, --debug=<arg>
2820
2821Generate source-level debug information
2822
2823.. option:: -gdwarf-2
2824
2825Generate source-level debug information with dwarf version 2
2826
2827.. option:: -gdwarf-3
2828
2829Generate source-level debug information with dwarf version 3
2830
2831.. option:: -gdwarf-4, -gdwarf
2832
2833Generate source-level debug information with dwarf version 4
2834
2835.. option:: -gdwarf-5
2836
2837Generate source-level debug information with dwarf version 5
2838
2839.. option:: -gfull
2840
2841.. option:: -gused
2842
2843Debug level
2844___________
2845.. option:: -g0
2846
2847.. option:: -g2
2848
2849.. option:: -g3
2850
2851.. option:: -ggdb0
2852
2853.. option:: -ggdb1
2854
2855.. option:: -ggdb2
2856
2857.. option:: -ggdb3
2858
2859.. option:: -gline-tables-only, -g1, -gmlt
2860
2861Emit debug line number tables only
2862
2863.. option:: -gmodules
2864
2865Generate debug info with external references to clang modules or precompiled headers
2866
2867Debugger to tune debug information for
2868______________________________________
2869.. option:: -ggdb
2870
2871.. option:: -glldb
2872
2873.. option:: -gsce
2874
2875Debug information flags
2876-----------------------
2877.. option:: -gcolumn-info, -gno-column-info
2878
2879.. option:: -gdwarf-aranges
2880
2881.. option:: -gembed-source, -gno-embed-source
2882
2883Embed source text in DWARF debug sections
2884
2885.. option:: -ggnu-pubnames, -gno-gnu-pubnames
2886
2887.. option:: -gpubnames, -gno-pubnames
2888
2889.. option:: -grecord-command-line, -grecord-gcc-switches, -gno-record-command-line, -gno-record-gcc-switches
2890
2891.. option:: -gsplit-dwarf
2892
2893.. option:: -gstrict-dwarf, -gno-strict-dwarf
2894
2895.. option:: -gz
2896
2897DWARF debug sections compression type
2898
2899.. program:: clang1
2900.. option:: -gz=<arg>
2901.. program:: clang
2902
2903DWARF debug sections compression type
2904
2905Static analyzer flags
2906=====================
2907
2908Flags controlling the behavior of the Clang Static Analyzer.
2909
2910.. option:: -Xanalyzer <arg>
2911
2912Pass <arg> to the static analyzer
2913
2914Fortran compilation flags
2915=========================
2916
2917Flags that will be passed onto the ``gfortran`` compiler when Clang is given
2918a Fortran input.
2919
2920.. option:: -A<arg>, --assert <arg>, --assert=<arg>
2921
2922.. option:: -A-<arg>
2923
2924.. option:: -J<arg>
2925
2926.. option:: -cpp
2927
2928.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
2929
2930.. option:: -falign-commons, -fno-align-commons
2931
2932.. option:: -fall-intrinsics, -fno-all-intrinsics
2933
2934.. option:: -fautomatic, -fno-automatic
2935
2936.. option:: -fbackslash, -fno-backslash
2937
2938.. option:: -fbacktrace, -fno-backtrace
2939
2940.. option:: -fblas-matmul-limit=<arg>
2941
2942.. option:: -fbounds-check, -fno-bounds-check
2943
2944.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
2945
2946.. option:: -fcheck=<arg>
2947
2948.. option:: -fcoarray=<arg>
2949
2950.. option:: -fconvert=<arg>
2951
2952.. option:: -fcray-pointer, -fno-cray-pointer
2953
2954.. option:: -fd-lines-as-code, -fno-d-lines-as-code
2955
2956.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
2957
2958.. option:: -fdefault-double-8, -fno-default-double-8
2959
2960.. option:: -fdefault-integer-8, -fno-default-integer-8
2961
2962.. option:: -fdefault-real-8, -fno-default-real-8
2963
2964.. option:: -fdollar-ok, -fno-dollar-ok
2965
2966.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
2967
2968.. option:: -fdump-fortran-original, -fno-dump-fortran-original
2969
2970.. option:: -fdump-parse-tree, -fno-dump-parse-tree
2971
2972.. option:: -fexternal-blas, -fno-external-blas
2973
2974.. option:: -ff2c, -fno-f2c
2975
2976.. option:: -ffixed-form, -fno-fixed-form
2977
2978.. option:: -ffixed-line-length-<arg>
2979
2980.. option:: -ffpe-trap=<arg>
2981
2982.. option:: -ffree-form, -fno-free-form
2983
2984.. option:: -ffree-line-length-<arg>
2985
2986.. option:: -ffrontend-optimize, -fno-frontend-optimize
2987
2988.. option:: -fimplicit-none, -fno-implicit-none
2989
2990.. option:: -finit-character=<arg>
2991
2992.. option:: -finit-integer=<arg>
2993
2994.. option:: -finit-local-zero, -fno-init-local-zero
2995
2996.. option:: -finit-logical=<arg>
2997
2998.. option:: -finit-real=<arg>
2999
3000.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3001
3002.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3003
3004.. option:: -fmax-array-constructor=<arg>
3005
3006.. option:: -fmax-errors=<arg>
3007
3008.. option:: -fmax-identifier-length, -fno-max-identifier-length
3009
3010.. option:: -fmax-stack-var-size=<arg>
3011
3012.. option:: -fmax-subrecord-length=<arg>
3013
3014.. option:: -fmodule-private, -fno-module-private
3015
3016.. option:: -fpack-derived, -fno-pack-derived
3017
3018.. option:: -fprotect-parens, -fno-protect-parens
3019
3020.. option:: -frange-check, -fno-range-check
3021
3022.. option:: -freal-4-real-10, -fno-real-4-real-10
3023
3024.. option:: -freal-4-real-16, -fno-real-4-real-16
3025
3026.. option:: -freal-4-real-8, -fno-real-4-real-8
3027
3028.. option:: -freal-8-real-10, -fno-real-8-real-10
3029
3030.. option:: -freal-8-real-16, -fno-real-8-real-16
3031
3032.. option:: -freal-8-real-4, -fno-real-8-real-4
3033
3034.. option:: -frealloc-lhs, -fno-realloc-lhs
3035
3036.. option:: -frecord-marker=<arg>
3037
3038.. option:: -frecursive, -fno-recursive
3039
3040.. option:: -frepack-arrays, -fno-repack-arrays
3041
3042.. option:: -fsecond-underscore, -fno-second-underscore
3043
3044.. option:: -fsign-zero, -fno-sign-zero
3045
3046.. option:: -fstack-arrays, -fno-stack-arrays
3047
3048.. option:: -funderscoring, -fno-underscoring
3049
3050.. option:: -fwhole-file, -fno-whole-file
3051
3052.. option:: -imultilib <arg>
3053
3054.. option:: -nocpp
3055
3056.. option:: -static-libgfortran
3057
3058Linker flags
3059============
3060Flags that are passed on to the linker
3061
3062.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3063
3064Add directory to library search path
3065
3066.. option:: -Mach
3067
3068.. option:: -T<script>
3069
3070Specify <script> as linker script
3071
3072.. option:: -Tbss<addr>
3073
3074Set starting address of BSS to <addr>
3075
3076.. option:: -Tdata<addr>
3077
3078Set starting address of DATA to <addr>
3079
3080.. option:: -Ttext<addr>
3081
3082Set starting address of TEXT to <addr>
3083
3084.. option:: -Wl,<arg>,<arg2>...
3085
3086Pass the comma separated arguments in <arg> to the linker
3087
3088.. option:: -X
3089
3090.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3091
3092Pass <arg> to the linker
3093
3094.. program:: clang1
3095.. option:: -Z
3096.. program:: clang
3097
3098.. option:: -e<arg>, --entry
3099
3100.. option:: -filelist <arg>
3101
3102.. option:: --hip-device-lib-path=<arg>
3103
3104HIP device library path
3105
3106.. option:: --hip-device-lib=<arg>
3107
3108HIP device library
3109
3110.. option:: -l<arg>
3111
3112.. option:: -r
3113
3114.. option:: -rpath <arg>
3115
3116.. option:: -s
3117
3118.. option:: -t
3119
3120.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3121
3122.. option:: -undef
3123
3124undef all system defines
3125
3126.. option:: -undefined<arg>, --no-undefined
3127
3128.. option:: -z <arg>
3129
3130Pass -z <arg> to the linker
3131
3132