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