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