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