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>, -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)
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:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2338
2339Workaround Cortex-A53 erratum 835769 (AArch64 only)
2340
2341.. option:: -mgeneral-regs-only
2342
2343Generate code which only uses the general purpose registers (AArch64 only)
2344
2345AMDGPU
2346------
2347.. option:: -mxnack, -mno-xnack
2348
2349Enable XNACK (AMDGPU only)
2350
2351ARM
2352---
2353.. option:: -ffixed-r9
2354
2355Reserve the r9 register (ARM only)
2356
2357.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2358
2359Disallow generation of data access to code sections (ARM only)
2360
2361.. option:: -mno-movt
2362
2363Disallow use of movt/movw pairs (ARM only)
2364
2365.. option:: -mno-neg-immediates
2366
2367Disallow converting instructions with negative immediates to their negation or inversion.
2368
2369.. option:: -mnocrc
2370
2371Disallow use of CRC instructions (ARM only)
2372
2373.. option:: -mrestrict-it, -mno-restrict-it
2374
2375Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2376
2377.. option:: -mtp=<arg>
2378
2379Read thread pointer from coprocessor register (ARM only)
2380
2381.. option:: -munaligned-access, -mno-unaligned-access
2382
2383Allow memory accesses to be unaligned (AArch32/AArch64 only)
2384
2385Hexagon
2386-------
2387.. option:: -mieee-rnd-near
2388
2389.. option:: -mmemops, -mno-memops
2390
2391Enable generation of memop instructions
2392
2393.. option:: -mnvj, -mno-nvj
2394
2395Enable generation of new-value jumps
2396
2397.. option:: -mnvs, -mno-nvs
2398
2399Enable generation of new-value stores
2400
2401.. option:: -mpackets, -mno-packets
2402
2403Enable generation of instruction packets
2404
2405Hexagon
2406-------
2407.. option:: -mhvx, -mno-hvx
2408
2409Enable Hexagon Vector eXtensions
2410
2411.. option:: -mhvx-length=<arg>
2412
2413Set Hexagon Vector Length
2414
2415.. program:: clang1
2416.. option:: -mhvx=<arg>
2417.. program:: clang
2418
2419Enable Hexagon Vector eXtensions
2420
2421MIPS
2422----
2423.. option:: -mabicalls, -mno-abicalls
2424
2425Enable SVR4-style position-independent code (Mips only)
2426
2427.. option:: -mabs=<arg>
2428
2429.. option:: -mcheck-zero-division, -mno-check-zero-division
2430
2431.. option:: -mcompact-branches=<arg>
2432
2433.. option:: -mdouble-float
2434
2435.. option:: -mdsp, -mno-dsp
2436
2437.. option:: -mdspr2, -mno-dspr2
2438
2439.. option:: -membedded-data, -mno-embedded-data
2440
2441Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2442
2443.. option:: -mextern-sdata, -mno-extern-sdata
2444
2445Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
2446
2447.. option:: -mfp32
2448
2449Use 32-bit floating point registers (MIPS only)
2450
2451.. option:: -mfp64
2452
2453Use 64-bit floating point registers (MIPS only)
2454
2455.. option:: -mginv, -mno-ginv
2456
2457.. option:: -mgpopt, -mno-gpopt
2458
2459Use GP relative accesses for symbols known to be in a small data section (MIPS)
2460
2461.. option:: -mindirect-jump=<arg>
2462
2463Change indirect jump instructions to inhibit speculation
2464
2465.. option:: -mips16
2466
2467.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
2468
2469.. option:: -mlocal-sdata, -mno-local-sdata
2470
2471Extend the -G behaviour to object local data (MIPS)
2472
2473.. option:: -mmadd4, -mno-madd4
2474
2475Enable the generation of 4-operand madd.s, madd.d and related instructions.
2476
2477.. option:: -mmicromips, -mno-micromips
2478
2479.. option:: -mmsa, -mno-msa
2480
2481Enable MSA ASE (MIPS only)
2482
2483.. option:: -mmt, -mno-mt
2484
2485Enable MT ASE (MIPS only)
2486
2487.. option:: -mnan=<arg>
2488
2489.. option:: -mno-mips16
2490
2491.. option:: -msingle-float
2492
2493.. option:: -mvirt, -mno-virt
2494
2495.. option:: -mxgot, -mno-xgot
2496
2497PowerPC
2498-------
2499.. option:: -maltivec, -mno-altivec
2500
2501.. option:: -mcmpb, -mno-cmpb
2502
2503.. option:: -mcrbits, -mno-crbits
2504
2505.. option:: -mcrypto, -mno-crypto
2506
2507.. option:: -mdirect-move, -mno-direct-move
2508
2509.. option:: -mfloat128, -mno-float128
2510
2511.. option:: -mfprnd, -mno-fprnd
2512
2513.. option:: -mhtm, -mno-htm
2514
2515.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
2516
2517.. option:: -misel, -mno-isel
2518
2519.. option:: -mlongcall, -mno-longcall
2520
2521.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
2522
2523.. option:: -mpopcntd, -mno-popcntd
2524
2525.. option:: -mpower8-vector, -mno-power8-vector
2526
2527.. option:: -mpower9-vector, -mno-power9-vector
2528
2529.. option:: -mqpx, -mno-qpx
2530
2531.. option:: -msecure-plt
2532
2533.. option:: -mvsx, -mno-vsx
2534
2535WebAssembly
2536-----------
2537.. option:: -mexception-handling, -mno-exception-handling
2538
2539.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
2540
2541.. option:: -msign-ext, -mno-sign-ext
2542
2543.. option:: -msimd128, -mno-simd128
2544
2545X86
2546---
2547.. option:: -m3dnow, -mno-3dnow
2548
2549.. option:: -m3dnowa, -mno-3dnowa
2550
2551.. option:: -madx, -mno-adx
2552
2553.. option:: -maes, -mno-aes
2554
2555.. option:: -mavx, -mno-avx
2556
2557.. option:: -mavx2, -mno-avx2
2558
2559.. option:: -mavx512bitalg, -mno-avx512bitalg
2560
2561.. option:: -mavx512bw, -mno-avx512bw
2562
2563.. option:: -mavx512cd, -mno-avx512cd
2564
2565.. option:: -mavx512dq, -mno-avx512dq
2566
2567.. option:: -mavx512er, -mno-avx512er
2568
2569.. option:: -mavx512f, -mno-avx512f
2570
2571.. option:: -mavx512ifma, -mno-avx512ifma
2572
2573.. option:: -mavx512pf, -mno-avx512pf
2574
2575.. option:: -mavx512vbmi, -mno-avx512vbmi
2576
2577.. option:: -mavx512vbmi2, -mno-avx512vbmi2
2578
2579.. option:: -mavx512vl, -mno-avx512vl
2580
2581.. option:: -mavx512vnni, -mno-avx512vnni
2582
2583.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
2584
2585.. option:: -mbmi, -mno-bmi
2586
2587.. option:: -mbmi2, -mno-bmi2
2588
2589.. option:: -mcldemote, -mno-cldemote
2590
2591.. option:: -mclflushopt, -mno-clflushopt
2592
2593.. option:: -mclwb, -mno-clwb
2594
2595.. option:: -mclzero, -mno-clzero
2596
2597.. option:: -mcx16, -mno-cx16
2598
2599.. option:: -mf16c, -mno-f16c
2600
2601.. option:: -mfma, -mno-fma
2602
2603.. option:: -mfma4, -mno-fma4
2604
2605.. option:: -mfsgsbase, -mno-fsgsbase
2606
2607.. option:: -mfxsr, -mno-fxsr
2608
2609.. option:: -mgfni, -mno-gfni
2610
2611.. option:: -minvpcid, -mno-invpcid
2612
2613.. option:: -mlwp, -mno-lwp
2614
2615.. option:: -mlzcnt, -mno-lzcnt
2616
2617.. option:: -mmmx, -mno-mmx
2618
2619.. option:: -mmovbe, -mno-movbe
2620
2621.. option:: -mmovdir64b, -mno-movdir64b
2622
2623.. option:: -mmovdiri, -mno-movdiri
2624
2625.. option:: -mmpx, -mno-mpx
2626
2627.. option:: -mmwaitx, -mno-mwaitx
2628
2629.. option:: -mpclmul, -mno-pclmul
2630
2631.. option:: -mpconfig, -mno-pconfig
2632
2633.. option:: -mpku, -mno-pku
2634
2635.. option:: -mpopcnt, -mno-popcnt
2636
2637.. option:: -mprefetchwt1, -mno-prefetchwt1
2638
2639.. option:: -mprfchw, -mno-prfchw
2640
2641.. option:: -mptwrite, -mno-ptwrite
2642
2643.. option:: -mrdpid, -mno-rdpid
2644
2645.. option:: -mrdrnd, -mno-rdrnd
2646
2647.. option:: -mrdseed, -mno-rdseed
2648
2649.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
2650
2651.. option:: -mrtm, -mno-rtm
2652
2653.. option:: -msahf, -mno-sahf
2654
2655.. option:: -msgx, -mno-sgx
2656
2657.. option:: -msha, -mno-sha
2658
2659.. option:: -mshstk, -mno-shstk
2660
2661.. option:: -msse, -mno-sse
2662
2663.. option:: -msse2, -mno-sse2
2664
2665.. option:: -msse3, -mno-sse3
2666
2667.. option:: -msse4.1, -mno-sse4.1
2668
2669.. program:: clang1
2670.. option:: -msse4.2, -mno-sse4.2, -msse4
2671.. program:: clang
2672
2673.. option:: -msse4a, -mno-sse4a
2674
2675.. option:: -mssse3, -mno-ssse3
2676
2677.. option:: -mtbm, -mno-tbm
2678
2679.. option:: -mvaes, -mno-vaes
2680
2681.. option:: -mvpclmulqdq, -mno-vpclmulqdq
2682
2683.. option:: -mwaitpkg, -mno-waitpkg
2684
2685.. option:: -mwbnoinvd, -mno-wbnoinvd
2686
2687.. option:: -mx87, -m80387, -mno-x87
2688
2689.. option:: -mxop, -mno-xop
2690
2691.. option:: -mxsave, -mno-xsave
2692
2693.. option:: -mxsavec, -mno-xsavec
2694
2695.. option:: -mxsaveopt, -mno-xsaveopt
2696
2697.. option:: -mxsaves, -mno-xsaves
2698
2699RISCV
2700-----
2701.. option:: -mrelax, -mno-relax
2702
2703Enable linker relaxation
2704
2705Optimization level
2706~~~~~~~~~~~~~~~~~~
2707
2708Flags controlling how much optimization should be performed.
2709
2710.. option:: -O<arg>, -O (equivalent to -O2), --optimize, --optimize=<arg>
2711
2712.. option:: -Ofast<arg>
2713
2714Debug information generation
2715~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2716
2717Flags controlling how much and what kind of debug information should be
2718generated.
2719
2720Kind and level of debug information
2721-----------------------------------
2722.. option:: -g, --debug, --debug=<arg>
2723
2724Generate source-level debug information
2725
2726.. option:: -gdwarf-2
2727
2728Generate source-level debug information with dwarf version 2
2729
2730.. option:: -gdwarf-3
2731
2732Generate source-level debug information with dwarf version 3
2733
2734.. option:: -gdwarf-4, -gdwarf
2735
2736Generate source-level debug information with dwarf version 4
2737
2738.. option:: -gdwarf-5
2739
2740Generate source-level debug information with dwarf version 5
2741
2742.. option:: -gfull
2743
2744.. option:: -gused
2745
2746Debug level
2747___________
2748.. option:: -g0
2749
2750.. option:: -g2
2751
2752.. option:: -g3
2753
2754.. option:: -ggdb0
2755
2756.. option:: -ggdb1
2757
2758.. option:: -ggdb2
2759
2760.. option:: -ggdb3
2761
2762.. option:: -gline-tables-only, -g1, -gmlt
2763
2764Emit debug line number tables only
2765
2766.. option:: -gmodules
2767
2768Generate debug info with external references to clang modules or precompiled headers
2769
2770Debugger to tune debug information for
2771______________________________________
2772.. option:: -ggdb
2773
2774.. option:: -glldb
2775
2776.. option:: -gsce
2777
2778Debug information flags
2779-----------------------
2780.. option:: -gcolumn-info, -gno-column-info
2781
2782.. option:: -gdwarf-aranges
2783
2784.. option:: -gembed-source, -gno-embed-source
2785
2786Embed source text in DWARF debug sections
2787
2788.. option:: -ggnu-pubnames, -gno-gnu-pubnames
2789
2790.. option:: -gpubnames, -gno-pubnames
2791
2792.. option:: -grecord-gcc-switches, -gno-record-gcc-switches
2793
2794.. option:: -gsplit-dwarf
2795
2796.. option:: -gstrict-dwarf, -gno-strict-dwarf
2797
2798.. option:: -gz
2799
2800DWARF debug sections compression type
2801
2802.. program:: clang1
2803.. option:: -gz=<arg>
2804.. program:: clang
2805
2806DWARF debug sections compression type
2807
2808Static analyzer flags
2809=====================
2810
2811Flags controlling the behavior of the Clang Static Analyzer.
2812
2813.. option:: -Xanalyzer <arg>
2814
2815Pass <arg> to the static analyzer
2816
2817Fortran compilation flags
2818=========================
2819
2820Flags that will be passed onto the ``gfortran`` compiler when Clang is given
2821a Fortran input.
2822
2823.. option:: -A<arg>, --assert <arg>, --assert=<arg>
2824
2825.. option:: -A-<arg>
2826
2827.. option:: -J<arg>
2828
2829.. option:: -cpp
2830
2831.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
2832
2833.. option:: -falign-commons, -fno-align-commons
2834
2835.. option:: -fall-intrinsics, -fno-all-intrinsics
2836
2837.. option:: -fautomatic, -fno-automatic
2838
2839.. option:: -fbackslash, -fno-backslash
2840
2841.. option:: -fbacktrace, -fno-backtrace
2842
2843.. option:: -fblas-matmul-limit=<arg>
2844
2845.. option:: -fbounds-check, -fno-bounds-check
2846
2847.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
2848
2849.. option:: -fcheck=<arg>
2850
2851.. option:: -fcoarray=<arg>
2852
2853.. option:: -fconvert=<arg>
2854
2855.. option:: -fcray-pointer, -fno-cray-pointer
2856
2857.. option:: -fd-lines-as-code, -fno-d-lines-as-code
2858
2859.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
2860
2861.. option:: -fdefault-double-8, -fno-default-double-8
2862
2863.. option:: -fdefault-integer-8, -fno-default-integer-8
2864
2865.. option:: -fdefault-real-8, -fno-default-real-8
2866
2867.. option:: -fdollar-ok, -fno-dollar-ok
2868
2869.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
2870
2871.. option:: -fdump-fortran-original, -fno-dump-fortran-original
2872
2873.. option:: -fdump-parse-tree, -fno-dump-parse-tree
2874
2875.. option:: -fexternal-blas, -fno-external-blas
2876
2877.. option:: -ff2c, -fno-f2c
2878
2879.. option:: -ffixed-form, -fno-fixed-form
2880
2881.. option:: -ffixed-line-length-<arg>
2882
2883.. option:: -ffpe-trap=<arg>
2884
2885.. option:: -ffree-form, -fno-free-form
2886
2887.. option:: -ffree-line-length-<arg>
2888
2889.. option:: -ffrontend-optimize, -fno-frontend-optimize
2890
2891.. option:: -fimplicit-none, -fno-implicit-none
2892
2893.. option:: -finit-character=<arg>
2894
2895.. option:: -finit-integer=<arg>
2896
2897.. option:: -finit-local-zero, -fno-init-local-zero
2898
2899.. option:: -finit-logical=<arg>
2900
2901.. option:: -finit-real=<arg>
2902
2903.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
2904
2905.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
2906
2907.. option:: -fmax-array-constructor=<arg>
2908
2909.. option:: -fmax-errors=<arg>
2910
2911.. option:: -fmax-identifier-length, -fno-max-identifier-length
2912
2913.. option:: -fmax-stack-var-size=<arg>
2914
2915.. option:: -fmax-subrecord-length=<arg>
2916
2917.. option:: -fmodule-private, -fno-module-private
2918
2919.. option:: -fpack-derived, -fno-pack-derived
2920
2921.. option:: -fprotect-parens, -fno-protect-parens
2922
2923.. option:: -frange-check, -fno-range-check
2924
2925.. option:: -freal-4-real-10, -fno-real-4-real-10
2926
2927.. option:: -freal-4-real-16, -fno-real-4-real-16
2928
2929.. option:: -freal-4-real-8, -fno-real-4-real-8
2930
2931.. option:: -freal-8-real-10, -fno-real-8-real-10
2932
2933.. option:: -freal-8-real-16, -fno-real-8-real-16
2934
2935.. option:: -freal-8-real-4, -fno-real-8-real-4
2936
2937.. option:: -frealloc-lhs, -fno-realloc-lhs
2938
2939.. option:: -frecord-marker=<arg>
2940
2941.. option:: -frecursive, -fno-recursive
2942
2943.. option:: -frepack-arrays, -fno-repack-arrays
2944
2945.. option:: -fsecond-underscore, -fno-second-underscore
2946
2947.. option:: -fsign-zero, -fno-sign-zero
2948
2949.. option:: -fstack-arrays, -fno-stack-arrays
2950
2951.. option:: -funderscoring, -fno-underscoring
2952
2953.. option:: -fwhole-file, -fno-whole-file
2954
2955.. option:: -imultilib <arg>
2956
2957.. option:: -nocpp
2958
2959.. option:: -static-libgfortran
2960
2961Linker flags
2962============
2963Flags that are passed on to the linker
2964
2965.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
2966
2967Add directory to library search path
2968
2969.. option:: -Mach
2970
2971.. option:: -T<script>
2972
2973Specify <script> as linker script
2974
2975.. option:: -Tbss<addr>
2976
2977Set starting address of BSS to <addr>
2978
2979.. option:: -Tdata<addr>
2980
2981Set starting address of DATA to <addr>
2982
2983.. option:: -Ttext<addr>
2984
2985Set starting address of TEXT to <addr>
2986
2987.. option:: -Wl,<arg>,<arg2>...
2988
2989Pass the comma separated arguments in <arg> to the linker
2990
2991.. option:: -X
2992
2993.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
2994
2995Pass <arg> to the linker
2996
2997.. program:: clang1
2998.. option:: -Z
2999.. program:: clang
3000
3001.. option:: -e<arg>, --entry
3002
3003.. option:: -filelist <arg>
3004
3005.. option:: --hip-device-lib-path=<arg>
3006
3007HIP device library path
3008
3009.. option:: --hip-device-lib=<arg>
3010
3011HIP device library
3012
3013.. option:: -l<arg>
3014
3015.. option:: -r
3016
3017.. option:: -rpath <arg>
3018
3019.. option:: -s
3020
3021.. option:: -t
3022
3023.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3024
3025.. option:: -undef
3026
3027undef all system defines
3028
3029.. option:: -undefined<arg>, --no-undefined
3030
3031.. option:: -z <arg>
3032
3033Pass -z <arg> to the linker
3034
3035