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