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