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