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
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
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:: -fstrict-aliasing, -fno-strict-aliasing
2158
2159.. option:: -fstrict-enums, -fno-strict-enums
2160
2161Enable optimizations based on the strict definition of an enum's value range
2162
2163.. option:: -fstrict-float-cast-overflow, -fno-strict-float-cast-overflow
2164
2165Assume that overflowing float-to-int casts are undefined (default)
2166
2167.. option:: -fstrict-overflow, -fno-strict-overflow
2168
2169.. option:: -fstrict-return, -fno-strict-return
2170
2171.. option:: -fstrict-vtable-pointers, -fno-strict-vtable-pointers
2172
2173Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
2174
2175.. option:: -fstruct-path-tbaa, -fno-struct-path-tbaa
2176
2177.. option:: -fsymbol-partition=<arg>
2178
2179.. option:: -ftabstop=<arg>
2180
2181.. option:: -ftemplate-backtrace-limit=<arg>
2182
2183.. option:: -ftemplate-depth-<arg>
2184
2185.. option:: -ftemplate-depth=<arg>
2186
2187.. option:: -ftest-coverage, -fno-test-coverage
2188
2189.. option:: -fthin-link-bitcode=<arg>
2190
2191Write minimized bitcode to <file> for the ThinLTO thin link only
2192
2193.. option:: -fthinlto-index=<arg>
2194
2195Perform ThinLTO importing using provided function summary index
2196
2197.. option:: -fthreadsafe-statics, -fno-threadsafe-statics
2198
2199.. option:: -ftime-report
2200
2201.. option:: -ftime-trace
2202
2203
2204Turn on time profiler. Generates JSON file based on output filename. Results
2205can be analyzed with chrome://tracing or `Speedscope App
2206<https://www.speedscope.app>`_ for flamegraph visualization.
2207
2208.. option:: -ftime-trace-granularity=<arg>
2209
2210Minimum time granularity (in microseconds) traced by time profiler
2211
2212.. option:: -ftls-model=<arg>
2213
2214.. option:: -ftrap-function=<arg>
2215
2216Issue call to specified function rather than a trap instruction
2217
2218.. option:: -ftrapping-math, -fno-trapping-math
2219
2220.. option:: -ftrapv
2221
2222Trap on integer overflow
2223
2224.. option:: -ftrapv-handler <arg>
2225
2226.. program:: clang1
2227.. option:: -ftrapv-handler=<function name>
2228.. program:: clang
2229
2230Specify the function to be called on overflow
2231
2232.. option:: -ftrigraphs, -fno-trigraphs, -trigraphs, --trigraphs
2233
2234Process trigraph sequences
2235
2236.. option:: -ftrivial-auto-var-init-stop-after=<arg>
2237
2238Stop initializing trivial automatic stack variables after the specified number of instances
2239
2240.. option:: -ftrivial-auto-var-init=<arg>
2241
2242Initialize trivial automatic stack variables: uninitialized (default) \| pattern
2243
2244.. option:: -funique-basic-block-section-names, -fno-unique-basic-block-section-names
2245
2246Use unique names for basic block sections (ELF Only)
2247
2248.. option:: -funique-internal-linkage-names, -fno-unique-internal-linkage-names
2249
2250Uniqueify Internal Linkage Symbol Names by appending the MD5 hash of the module path
2251
2252.. option:: -funique-section-names, -fno-unique-section-names
2253
2254.. option:: -funit-at-a-time, -fno-unit-at-a-time
2255
2256.. option:: -funroll-loops, -fno-unroll-loops
2257
2258Turn on loop unroller
2259
2260.. option:: -funsafe-math-optimizations, -fno-unsafe-math-optimizations
2261
2262.. option:: -funsigned-bitfields
2263
2264.. option:: -funsigned-char, -fno-unsigned-char, --unsigned-char
2265
2266.. option:: -funwind-tables, -fno-unwind-tables
2267
2268.. option:: -fuse-cxa-atexit, -fno-use-cxa-atexit
2269
2270.. option:: -fuse-init-array, -fno-use-init-array
2271
2272.. option:: -fuse-ld=<arg>
2273
2274.. option:: -fuse-line-directives, -fno-use-line-directives
2275
2276Use #line in preprocessed output
2277
2278.. option:: -fvalidate-ast-input-files-content
2279
2280Compute 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
2281
2282.. option:: -fveclib=<arg>
2283
2284Use the given vector functions library
2285
2286.. option:: -fvectorize, -fno-vectorize, -ftree-vectorize
2287
2288Enable the loop vectorization passes
2289
2290.. option:: -fverbose-asm, -dA, -fno-verbose-asm
2291
2292Generate verbose assembly output
2293
2294.. option:: -fvirtual-function-elimination, -fno-virtual-function-elimination
2295
2296Enables dead virtual function elimination optimization. Requires -flto=full
2297
2298.. option:: -fvisibility-global-new-delete-hidden
2299
2300Give global C++ operator new and delete declarations hidden visibility
2301
2302.. option:: -fvisibility-inlines-hidden
2303
2304Give inline C++ member functions hidden visibility by default
2305
2306.. option:: -fvisibility-ms-compat
2307
2308Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
2309
2310.. option:: -fvisibility=<arg>
2311
2312Set the default symbol visibility for all global declarations
2313
2314.. option:: -fwasm-exceptions
2315
2316Use WebAssembly style exceptions
2317
2318.. option:: -fwhole-program-vtables, -fno-whole-program-vtables
2319
2320Enables whole-program vtable optimization. Requires -flto
2321
2322.. option:: -fwrapv, -fno-wrapv
2323
2324Treat signed integer overflow as two's complement
2325
2326.. option:: -fwritable-strings
2327
2328Store string literals as writable data
2329
2330.. option:: -fxray-always-emit-customevents, -fno-xray-always-emit-customevents
2331
2332Always emit \_\_xray\_customevent(...) calls even if the containing function is not always instrumented
2333
2334.. option:: -fxray-always-emit-typedevents, -fno-xray-always-emit-typedevents
2335
2336Always emit \_\_xray\_typedevent(...) calls even if the containing function is not always instrumented
2337
2338.. option:: -fxray-always-instrument=<arg>
2339
2340DEPRECATED: Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
2341
2342.. option:: -fxray-attr-list=<arg>
2343
2344Filename defining the list of functions/types for imbuing XRay attributes.
2345
2346.. option:: -fxray-function-index, -fno-xray-function-index
2347
2348.. option:: -fxray-ignore-loops, -fno-xray-ignore-loops
2349
2350Don't instrument functions with loops unless they also meet the minimum function size
2351
2352.. option:: -fxray-instruction-threshold<arg>
2353
2354.. program:: clang1
2355.. option:: -fxray-instruction-threshold=<arg>
2356.. program:: clang
2357
2358Sets the minimum function size to instrument with XRay
2359
2360.. option:: -fxray-instrument, -fno-xray-instrument
2361
2362Generate XRay instrumentation sleds on function entry and exit
2363
2364.. option:: -fxray-instrumentation-bundle=<arg>
2365
2366Select 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'.
2367
2368.. option:: -fxray-link-deps
2369
2370Tells clang to add the link dependencies for XRay.
2371
2372.. option:: -fxray-modes=<arg>
2373
2374List of modes to link in by default into XRay instrumented binaries.
2375
2376.. option:: -fxray-never-instrument=<arg>
2377
2378DEPRECATED: Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
2379
2380.. option:: -fzero-initialized-in-bss, -fno-zero-initialized-in-bss
2381
2382.. option:: -fzvector, -fno-zvector, -mzvector
2383
2384Enable System z vector language extension
2385
2386.. option:: -pedantic, --pedantic, -no-pedantic, --no-pedantic
2387
2388.. option:: -pedantic-errors, --pedantic-errors
2389
2390OpenCL flags
2391------------
2392.. option:: -cl-denorms-are-zero
2393
2394OpenCL only. Allow denormals to be flushed to zero.
2395
2396.. option:: -cl-fast-relaxed-math
2397
2398OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines \_\_FAST\_RELAXED\_MATH\_\_.
2399
2400.. option:: -cl-finite-math-only
2401
2402OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
2403
2404.. option:: -cl-fp32-correctly-rounded-divide-sqrt
2405
2406OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
2407
2408.. option:: -cl-kernel-arg-info
2409
2410OpenCL only. Generate kernel argument metadata.
2411
2412.. option:: -cl-mad-enable
2413
2414OpenCL only. Allow use of less precise MAD computations in the generated binary.
2415
2416.. option:: -cl-no-signed-zeros
2417
2418OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
2419
2420.. option:: -cl-opt-disable
2421
2422OpenCL only. This option disables all optimizations. By default optimizations are enabled.
2423
2424.. option:: -cl-single-precision-constant
2425
2426OpenCL only. Treat double precision floating-point constant as single precision constant.
2427
2428.. option:: -cl-std=<arg>
2429
2430OpenCL language standard to compile for.
2431
2432.. option:: -cl-strict-aliasing
2433
2434OpenCL only. This option is added for compatibility with OpenCL 1.0.
2435
2436.. option:: -cl-uniform-work-group-size
2437
2438OpenCL only. Defines that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel
2439
2440.. option:: -cl-unsafe-math-optimizations
2441
2442OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable.
2443
2444SYCL flags
2445----------
2446.. option:: -fsycl, -fno-sycl
2447
2448Enable SYCL kernels compilation for device
2449
2450.. option:: -sycl-std=<arg>
2451
2452SYCL language standard to compile for.
2453
2454Target-dependent compilation options
2455~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2456.. option:: -G<size>, -G=<arg>, -msmall-data-limit=<arg>, -msmall-data-threshold=<arg>
2457
2458Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
2459
2460.. option:: -ffixed-x1
2461
2462Reserve the x1 register (AArch64/RISC-V only)
2463
2464.. option:: -ffixed-x10
2465
2466Reserve the x10 register (AArch64/RISC-V only)
2467
2468.. option:: -ffixed-x11
2469
2470Reserve the x11 register (AArch64/RISC-V only)
2471
2472.. option:: -ffixed-x12
2473
2474Reserve the x12 register (AArch64/RISC-V only)
2475
2476.. option:: -ffixed-x13
2477
2478Reserve the x13 register (AArch64/RISC-V only)
2479
2480.. option:: -ffixed-x14
2481
2482Reserve the x14 register (AArch64/RISC-V only)
2483
2484.. option:: -ffixed-x15
2485
2486Reserve the x15 register (AArch64/RISC-V only)
2487
2488.. option:: -ffixed-x16
2489
2490Reserve the x16 register (AArch64/RISC-V only)
2491
2492.. option:: -ffixed-x17
2493
2494Reserve the x17 register (AArch64/RISC-V only)
2495
2496.. option:: -ffixed-x18
2497
2498Reserve the x18 register (AArch64/RISC-V only)
2499
2500.. option:: -ffixed-x19
2501
2502Reserve the x19 register (AArch64/RISC-V only)
2503
2504.. option:: -ffixed-x2
2505
2506Reserve the x2 register (AArch64/RISC-V only)
2507
2508.. option:: -ffixed-x20
2509
2510Reserve the x20 register (AArch64/RISC-V only)
2511
2512.. option:: -ffixed-x21
2513
2514Reserve the x21 register (AArch64/RISC-V only)
2515
2516.. option:: -ffixed-x22
2517
2518Reserve the x22 register (AArch64/RISC-V only)
2519
2520.. option:: -ffixed-x23
2521
2522Reserve the x23 register (AArch64/RISC-V only)
2523
2524.. option:: -ffixed-x24
2525
2526Reserve the x24 register (AArch64/RISC-V only)
2527
2528.. option:: -ffixed-x25
2529
2530Reserve the x25 register (AArch64/RISC-V only)
2531
2532.. option:: -ffixed-x26
2533
2534Reserve the x26 register (AArch64/RISC-V only)
2535
2536.. option:: -ffixed-x27
2537
2538Reserve the x27 register (AArch64/RISC-V only)
2539
2540.. option:: -ffixed-x28
2541
2542Reserve the x28 register (AArch64/RISC-V only)
2543
2544.. option:: -ffixed-x29
2545
2546Reserve the x29 register (AArch64/RISC-V only)
2547
2548.. option:: -ffixed-x3
2549
2550Reserve the x3 register (AArch64/RISC-V only)
2551
2552.. option:: -ffixed-x30
2553
2554Reserve the x30 register (AArch64/RISC-V only)
2555
2556.. option:: -ffixed-x31
2557
2558Reserve the x31 register (AArch64/RISC-V only)
2559
2560.. option:: -ffixed-x4
2561
2562Reserve the x4 register (AArch64/RISC-V only)
2563
2564.. option:: -ffixed-x5
2565
2566Reserve the x5 register (AArch64/RISC-V only)
2567
2568.. option:: -ffixed-x6
2569
2570Reserve the x6 register (AArch64/RISC-V only)
2571
2572.. option:: -ffixed-x7
2573
2574Reserve the x7 register (AArch64/RISC-V only)
2575
2576.. option:: -ffixed-x8
2577
2578Reserve the x8 register (AArch64/RISC-V only)
2579
2580.. option:: -ffixed-x9
2581
2582Reserve the x9 register (AArch64/RISC-V only)
2583
2584.. option:: -m16
2585
2586.. option:: -m32
2587
2588.. option:: -m64
2589
2590.. option:: -mabi=<arg>
2591
2592.. option:: -maix-struct-return
2593
2594Return all structs in memory (PPC32 only)
2595
2596.. option:: -malign-branch-boundary=<arg>
2597
2598Specify the boundary's size to align branches
2599
2600.. option:: -malign-branch=<arg1>,<arg2>...
2601
2602Specify types of branches to align
2603
2604.. option:: -malign-double
2605
2606Align doubles to two words in structs (x86 only)
2607
2608.. option:: -march=<arg>
2609
2610.. option:: -masm=<arg>
2611
2612.. option:: -mbackchain, -mno-backchain
2613
2614Link stack frames through backchain on System Z
2615
2616.. option:: -mbranches-within-32B-boundaries
2617
2618Align selected branches (fused, jcc, jmp) within 32-byte boundary
2619
2620.. option:: -mcmodel=<arg>, -mcmodel=medany (equivalent to -mcmodel=medium), -mcmodel=medlow (equivalent to -mcmodel=small)
2621
2622.. option:: -mconsole<arg>
2623
2624.. program:: clang1
2625.. 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)
2626.. program:: clang
2627
2628.. option:: -mcrc, -mno-crc
2629
2630Allow use of CRC instructions (ARM/Mips only)
2631
2632.. option:: -mdefault-build-attributes<arg>, -mno-default-build-attributes<arg>
2633
2634.. option:: -mdll<arg>
2635
2636.. option:: -mdouble=<arg>
2637
2638Force double to be 32 bits or 64 bits
2639
2640.. option:: -mdynamic-no-pic<arg>
2641
2642.. option:: -meabi <arg>
2643
2644Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
2645
2646.. option:: -menable-experimental-extensions
2647
2648Enable use of experimental RISC-V extensions.
2649
2650.. option:: -mfentry
2651
2652Insert calls to fentry at function entry (x86/SystemZ only)
2653
2654.. option:: -mfloat-abi=<arg>
2655
2656.. option:: -mfpmath=<arg>
2657
2658.. option:: -mfpu=<arg>
2659
2660.. option:: -mglobal-merge, -mno-global-merge
2661
2662Enable merging of globals
2663
2664.. option:: -mhard-float
2665
2666.. option:: -mhwdiv=<arg>, --mhwdiv <arg>, --mhwdiv=<arg>
2667
2668.. option:: -mhwmult=<arg>
2669
2670.. option:: -miamcu, -mno-iamcu
2671
2672Use Intel MCU ABI
2673
2674.. option:: -mimplicit-float, -mno-implicit-float
2675
2676.. option:: -mimplicit-it=<arg>
2677
2678.. option:: -mincremental-linker-compatible, -mno-incremental-linker-compatible
2679
2680(integrated-as) Emit an object file which can be used with an incremental linker
2681
2682.. option:: -miphoneos-version-min=<arg>, -mios-version-min=<arg>
2683
2684.. option:: -mkernel
2685
2686.. option:: -mlong-calls, -mno-long-calls
2687
2688Generate branches with extended addressability, usually via indirect jumps.
2689
2690.. option:: -mlvi-cfi, -mno-lvi-cfi
2691
2692Enable only control-flow mitigations for Load Value Injection (LVI)
2693
2694.. option:: -mlvi-hardening, -mno-lvi-hardening
2695
2696Enable all mitigations for Load Value Injection (LVI)
2697
2698.. option:: -mmacosx-version-min=<arg>, -mmacos-version-min=<arg>
2699
2700Set Mac OS X deployment target
2701
2702.. option:: -mmcu=<arg>
2703
2704.. option:: -mms-bitfields, -mno-ms-bitfields
2705
2706Set the default structure layout to be compatible with the Microsoft compiler standard
2707
2708.. option:: -mnop-mcount
2709
2710Generate mcount/\_\_fentry\_\_ calls as nops. To activate they need to be patched in.
2711
2712.. option:: -momit-leaf-frame-pointer, -mno-omit-leaf-frame-pointer
2713
2714Omit frame pointer setup for leaf functions
2715
2716.. option:: -moslib=<arg>
2717
2718.. option:: -mpacked-stack, -mno-packed-stack
2719
2720Use packed stack layout (SystemZ only).
2721
2722.. option:: -mpad-max-prefix-size=<arg>
2723
2724Specify maximum number of prefixes to use for padding
2725
2726.. option:: -mpie-copy-relocations, -mno-pie-copy-relocations
2727
2728Use copy relocations support for PIE builds
2729
2730.. option:: -mprefer-vector-width=<arg>
2731
2732Specifies preferred vector width for auto-vectorization. Defaults to 'none' which allows target specific decisions.
2733
2734.. option:: -mqdsp6-compat
2735
2736Enable hexagon-qdsp6 backward compatibility
2737
2738.. option:: -mrecip
2739
2740.. program:: clang1
2741.. option:: -mrecip=<arg1>,<arg2>...
2742.. program:: clang
2743
2744.. option:: -mrecord-mcount
2745
2746Generate a \_\_mcount\_loc section entry for each \_\_fentry\_\_ call.
2747
2748.. option:: -mred-zone, -mno-red-zone
2749
2750.. option:: -mregparm=<arg>
2751
2752.. option:: -mrelax-all, -mno-relax-all
2753
2754(integrated-as) Relax all machine instructions
2755
2756.. option:: -mretpoline, -mno-retpoline
2757
2758.. option:: -mrtd, -mno-rtd
2759
2760Make StdCall calling convention the default
2761
2762.. option:: -mseses, -mno-seses
2763
2764Enable speculative execution side effect suppression (SESES). Includes LVI control flow integrity mitigations
2765
2766.. option:: -msign-return-address=<arg>
2767
2768Select return address signing scope
2769
2770.. option:: -msoft-float, -mno-soft-float
2771
2772Use software floating point
2773
2774.. option:: -mspeculative-load-hardening, -mno-speculative-load-hardening
2775
2776.. option:: -mstack-alignment=<arg>
2777
2778Set the stack alignment
2779
2780.. option:: -mstack-arg-probe, -mno-stack-arg-probe
2781
2782Enable stack probes
2783
2784.. option:: -mstack-probe-size=<arg>
2785
2786Set the stack probe size
2787
2788.. option:: -mstackrealign, -mno-stackrealign
2789
2790Force realign the stack at entry to every function
2791
2792.. option:: -msvr4-struct-return
2793
2794Return small structs in registers (PPC32 only)
2795
2796.. option:: -mthread-model <arg>
2797
2798The thread model to use, e.g. posix, single (posix by default)
2799
2800.. option:: -mthreads<arg>
2801
2802.. option:: -mthumb, -mno-thumb
2803
2804.. option:: -mtls-direct-seg-refs, -mno-tls-direct-seg-refs
2805
2806Enable direct TLS access through segment registers (default)
2807
2808.. option:: -mtls-size=<arg>
2809
2810Specify 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)
2811
2812.. program:: clang1
2813.. option:: -mtune=<arg>
2814.. program:: clang
2815
2816Accepted for compatibility with GCC. Currently has no effect.
2817
2818.. option:: -mtvos-version-min=<arg>, -mappletvos-version-min=<arg>
2819
2820.. option:: -municode<arg>
2821
2822.. option:: -mvx, -mno-vx
2823
2824.. option:: -mwarn-nonportable-cfstrings, -mno-warn-nonportable-cfstrings
2825
2826.. option:: -mwatchos-version-min=<arg>
2827
2828.. option:: -mwavefrontsize64, -mno-wavefrontsize64
2829
2830Wavefront size 64 is used
2831
2832.. option:: -mwindows<arg>
2833
2834.. option:: -mx32
2835
2836AARCH64
2837-------
2838.. option:: -fcall-saved-x10
2839
2840Make the x10 register call-saved (AArch64 only)
2841
2842.. option:: -fcall-saved-x11
2843
2844Make the x11 register call-saved (AArch64 only)
2845
2846.. option:: -fcall-saved-x12
2847
2848Make the x12 register call-saved (AArch64 only)
2849
2850.. option:: -fcall-saved-x13
2851
2852Make the x13 register call-saved (AArch64 only)
2853
2854.. option:: -fcall-saved-x14
2855
2856Make the x14 register call-saved (AArch64 only)
2857
2858.. option:: -fcall-saved-x15
2859
2860Make the x15 register call-saved (AArch64 only)
2861
2862.. option:: -fcall-saved-x18
2863
2864Make the x18 register call-saved (AArch64 only)
2865
2866.. option:: -fcall-saved-x8
2867
2868Make the x8 register call-saved (AArch64 only)
2869
2870.. option:: -fcall-saved-x9
2871
2872Make the x9 register call-saved (AArch64 only)
2873
2874.. option:: -mfix-cortex-a53-835769, -mno-fix-cortex-a53-835769
2875
2876Workaround Cortex-A53 erratum 835769 (AArch64 only)
2877
2878.. option:: -mgeneral-regs-only
2879
2880Generate code which only uses the general purpose registers (AArch64 only)
2881
2882AMDGPU
2883------
2884.. option:: -mcode-object-v3, -mno-code-object-v3
2885
2886Enable code object v3 (AMDGPU only)
2887
2888.. option:: -mcumode, -mno-cumode
2889
2890CU wavefront execution mode is used (AMDGPU only)
2891
2892.. option:: -msram-ecc, -mno-sram-ecc
2893
2894Enable SRAM ECC (AMDGPU only)
2895
2896.. option:: -mxnack, -mno-xnack
2897
2898Enable XNACK (AMDGPU only)
2899
2900ARM
2901---
2902.. option:: -fAAPCSBitfieldLoad
2903
2904Follows the AAPCS standard that all volatile bit-field write generates at least one load. (ARM only).
2905
2906.. option:: -ffixed-r9
2907
2908Reserve the r9 register (ARM only)
2909
2910.. option:: -mcmse
2911
2912Allow use of CMSE (Armv8-M Security Extensions)
2913
2914.. option:: -mexecute-only, -mno-execute-only, -mpure-code
2915
2916Disallow generation of data access to code sections (ARM only)
2917
2918.. option:: -mno-movt
2919
2920Disallow use of movt/movw pairs (ARM only)
2921
2922.. option:: -mno-neg-immediates
2923
2924Disallow converting instructions with negative immediates to their negation or inversion.
2925
2926.. option:: -mnocrc
2927
2928Disallow use of CRC instructions (ARM only)
2929
2930.. option:: -mrestrict-it, -mno-restrict-it
2931
2932Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
2933
2934.. option:: -mtp=<arg>
2935
2936Thread pointer access method (AArch32/AArch64 only)
2937
2938.. option:: -munaligned-access, -mno-unaligned-access
2939
2940Allow memory accesses to be unaligned (AArch32/AArch64 only)
2941
2942Hexagon
2943-------
2944.. option:: -mieee-rnd-near
2945
2946.. option:: -mmemops, -mno-memops
2947
2948Enable generation of memop instructions
2949
2950.. option:: -mnvj, -mno-nvj
2951
2952Enable generation of new-value jumps
2953
2954.. option:: -mnvs, -mno-nvs
2955
2956Enable generation of new-value stores
2957
2958.. option:: -mpackets, -mno-packets
2959
2960Enable generation of instruction packets
2961
2962Hexagon
2963-------
2964.. option:: -mhvx, -mno-hvx
2965
2966Enable Hexagon Vector eXtensions
2967
2968.. option:: -mhvx-length=<arg>
2969
2970Set Hexagon Vector Length
2971
2972.. program:: clang1
2973.. option:: -mhvx=<arg>
2974.. program:: clang
2975
2976Enable Hexagon Vector eXtensions
2977
2978MIPS
2979----
2980.. option:: -mabicalls, -mno-abicalls
2981
2982Enable SVR4-style position-independent code (Mips only)
2983
2984.. option:: -mabs=<arg>
2985
2986.. option:: -mcheck-zero-division, -mno-check-zero-division
2987
2988.. option:: -mcompact-branches=<arg>
2989
2990.. option:: -mdouble-float
2991
2992.. option:: -mdsp, -mno-dsp
2993
2994.. option:: -mdspr2, -mno-dspr2
2995
2996.. option:: -membedded-data, -mno-embedded-data
2997
2998Place constants in the .rodata section instead of the .sdata section even if they meet the -G <size> threshold (MIPS)
2999
3000.. option:: -mextern-sdata, -mno-extern-sdata
3001
3002Assume that externally defined data is in the small data if it meets the -G <size> threshold (MIPS)
3003
3004.. option:: -mfp32
3005
3006Use 32-bit floating point registers (MIPS only)
3007
3008.. option:: -mfp64
3009
3010Use 64-bit floating point registers (MIPS only)
3011
3012.. option:: -mginv, -mno-ginv
3013
3014.. option:: -mgpopt, -mno-gpopt
3015
3016Use GP relative accesses for symbols known to be in a small data section (MIPS)
3017
3018.. option:: -mindirect-jump=<arg>
3019
3020Change indirect jump instructions to inhibit speculation
3021
3022.. option:: -mips16
3023
3024.. option:: -mldc1-sdc1, -mno-ldc1-sdc1
3025
3026.. option:: -mlocal-sdata, -mno-local-sdata
3027
3028Extend the -G behaviour to object local data (MIPS)
3029
3030.. option:: -mmadd4, -mno-madd4
3031
3032Enable the generation of 4-operand madd.s, madd.d and related instructions.
3033
3034.. option:: -mmicromips, -mno-micromips
3035
3036.. option:: -mmsa, -mno-msa
3037
3038Enable MSA ASE (MIPS only)
3039
3040.. option:: -mmt, -mno-mt
3041
3042Enable MT ASE (MIPS only)
3043
3044.. option:: -mnan=<arg>
3045
3046.. option:: -mno-mips16
3047
3048.. option:: -msingle-float
3049
3050.. option:: -mvirt, -mno-virt
3051
3052.. option:: -mxgot, -mno-xgot
3053
3054PowerPC
3055-------
3056.. option:: -maltivec, -mno-altivec
3057
3058.. option:: -mcmpb, -mno-cmpb
3059
3060.. option:: -mcrbits, -mno-crbits
3061
3062.. option:: -mcrypto, -mno-crypto
3063
3064.. option:: -mdirect-move, -mno-direct-move
3065
3066.. option:: -mfloat128, -mno-float128
3067
3068.. option:: -mfprnd, -mno-fprnd
3069
3070.. option:: -mhtm, -mno-htm
3071
3072.. option:: -minvariant-function-descriptors, -mno-invariant-function-descriptors
3073
3074.. option:: -misel, -mno-isel
3075
3076.. option:: -mlongcall, -mno-longcall
3077
3078.. option:: -mmfocrf, -mmfcrf, -mno-mfocrf
3079
3080.. option:: -mpcrel, -mno-pcrel
3081
3082.. option:: -mpopcntd, -mno-popcntd
3083
3084.. option:: -mpower10-vector, -mno-power10-vector
3085
3086.. option:: -mpower8-vector, -mno-power8-vector
3087
3088.. option:: -mpower9-vector, -mno-power9-vector
3089
3090.. option:: -mqpx, -mno-qpx
3091
3092.. option:: -msecure-plt
3093
3094.. option:: -mspe, -mno-spe
3095
3096.. option:: -mvsx, -mno-vsx
3097
3098WebAssembly
3099-----------
3100.. option:: -matomics, -mno-atomics
3101
3102.. option:: -mbulk-memory, -mno-bulk-memory
3103
3104.. option:: -mexception-handling, -mno-exception-handling
3105
3106.. option:: -mmultivalue, -mno-multivalue
3107
3108.. option:: -mmutable-globals, -mno-mutable-globals
3109
3110.. option:: -mnontrapping-fptoint, -mno-nontrapping-fptoint
3111
3112.. option:: -mreference-types, -mno-reference-types
3113
3114.. option:: -msign-ext, -mno-sign-ext
3115
3116.. option:: -msimd128, -mno-simd128
3117
3118.. option:: -mtail-call, -mno-tail-call
3119
3120.. option:: -munimplemented-simd128, -mno-unimplemented-simd128
3121
3122WebAssembly Driver
3123------------------
3124.. option:: -mexec-model=<arg>
3125
3126Execution model (WebAssembly only)
3127
3128X86
3129---
3130.. option:: -m3dnow, -mno-3dnow
3131
3132.. option:: -m3dnowa, -mno-3dnowa
3133
3134.. option:: -madx, -mno-adx
3135
3136.. option:: -maes, -mno-aes
3137
3138.. option:: -mamx-bf16, -mno-amx-bf16
3139
3140.. option:: -mamx-int8, -mno-amx-int8
3141
3142.. option:: -mamx-tile, -mno-amx-tile
3143
3144.. option:: -mavx, -mno-avx
3145
3146.. option:: -mavx2, -mno-avx2
3147
3148.. option:: -mavx512bf16, -mno-avx512bf16
3149
3150.. option:: -mavx512bitalg, -mno-avx512bitalg
3151
3152.. option:: -mavx512bw, -mno-avx512bw
3153
3154.. option:: -mavx512cd, -mno-avx512cd
3155
3156.. option:: -mavx512dq, -mno-avx512dq
3157
3158.. option:: -mavx512er, -mno-avx512er
3159
3160.. option:: -mavx512f, -mno-avx512f
3161
3162.. option:: -mavx512ifma, -mno-avx512ifma
3163
3164.. option:: -mavx512pf, -mno-avx512pf
3165
3166.. option:: -mavx512vbmi, -mno-avx512vbmi
3167
3168.. option:: -mavx512vbmi2, -mno-avx512vbmi2
3169
3170.. option:: -mavx512vl, -mno-avx512vl
3171
3172.. option:: -mavx512vnni, -mno-avx512vnni
3173
3174.. option:: -mavx512vp2intersect, -mno-avx512vp2intersect
3175
3176.. option:: -mavx512vpopcntdq, -mno-avx512vpopcntdq
3177
3178.. option:: -mbmi, -mno-bmi
3179
3180.. option:: -mbmi2, -mno-bmi2
3181
3182.. option:: -mcldemote, -mno-cldemote
3183
3184.. option:: -mclflushopt, -mno-clflushopt
3185
3186.. option:: -mclwb, -mno-clwb
3187
3188.. option:: -mclzero, -mno-clzero
3189
3190.. option:: -mcx16, -mno-cx16
3191
3192.. option:: -menqcmd, -mno-enqcmd
3193
3194.. option:: -mf16c, -mno-f16c
3195
3196.. option:: -mfma, -mno-fma
3197
3198.. option:: -mfma4, -mno-fma4
3199
3200.. option:: -mfsgsbase, -mno-fsgsbase
3201
3202.. option:: -mfxsr, -mno-fxsr
3203
3204.. option:: -mgfni, -mno-gfni
3205
3206.. option:: -minvpcid, -mno-invpcid
3207
3208.. option:: -mlwp, -mno-lwp
3209
3210.. option:: -mlzcnt, -mno-lzcnt
3211
3212.. option:: -mmmx, -mno-mmx
3213
3214.. option:: -mmovbe, -mno-movbe
3215
3216.. option:: -mmovdir64b, -mno-movdir64b
3217
3218.. option:: -mmovdiri, -mno-movdiri
3219
3220.. option:: -mmwaitx, -mno-mwaitx
3221
3222.. option:: -mpclmul, -mno-pclmul
3223
3224.. option:: -mpconfig, -mno-pconfig
3225
3226.. option:: -mpku, -mno-pku
3227
3228.. option:: -mpopcnt, -mno-popcnt
3229
3230.. option:: -mprefetchwt1, -mno-prefetchwt1
3231
3232.. option:: -mprfchw, -mno-prfchw
3233
3234.. option:: -mptwrite, -mno-ptwrite
3235
3236.. option:: -mrdpid, -mno-rdpid
3237
3238.. option:: -mrdrnd, -mno-rdrnd
3239
3240.. option:: -mrdseed, -mno-rdseed
3241
3242.. option:: -mretpoline-external-thunk, -mno-retpoline-external-thunk
3243
3244.. option:: -mrtm, -mno-rtm
3245
3246.. option:: -msahf, -mno-sahf
3247
3248.. option:: -mserialize, -mno-serialize
3249
3250.. option:: -msgx, -mno-sgx
3251
3252.. option:: -msha, -mno-sha
3253
3254.. option:: -mshstk, -mno-shstk
3255
3256.. option:: -msse, -mno-sse
3257
3258.. option:: -msse2, -mno-sse2
3259
3260.. option:: -msse3, -mno-sse3
3261
3262.. option:: -msse4.1, -mno-sse4.1
3263
3264.. program:: clang1
3265.. option:: -msse4.2, -mno-sse4.2, -msse4
3266.. program:: clang
3267
3268.. option:: -msse4a, -mno-sse4a
3269
3270.. option:: -mssse3, -mno-ssse3
3271
3272.. option:: -mtbm, -mno-tbm
3273
3274.. option:: -mtsxldtrk, -mno-tsxldtrk
3275
3276.. option:: -mvaes, -mno-vaes
3277
3278.. option:: -mvpclmulqdq, -mno-vpclmulqdq
3279
3280.. option:: -mvzeroupper, -mno-vzeroupper
3281
3282.. option:: -mwaitpkg, -mno-waitpkg
3283
3284.. option:: -mwbnoinvd, -mno-wbnoinvd
3285
3286.. option:: -mx87, -m80387, -mno-x87
3287
3288.. option:: -mxop, -mno-xop
3289
3290.. option:: -mxsave, -mno-xsave
3291
3292.. option:: -mxsavec, -mno-xsavec
3293
3294.. option:: -mxsaveopt, -mno-xsaveopt
3295
3296.. option:: -mxsaves, -mno-xsaves
3297
3298RISCV
3299-----
3300.. option:: -mrelax, -mno-relax
3301
3302Enable linker relaxation
3303
3304.. option:: -msave-restore, -mno-save-restore
3305
3306Enable using library calls for save and restore
3307
3308Long double flags
3309-----------------
3310Selects the long double implementation
3311
3312.. option:: -mlong-double-128
3313
3314Force long double to be 128 bits
3315
3316.. option:: -mlong-double-64
3317
3318Force long double to be 64 bits
3319
3320.. option:: -mlong-double-80
3321
3322Force long double to be 80 bits, padded to 128 bits for storage
3323
3324Optimization level
3325~~~~~~~~~~~~~~~~~~
3326
3327Flags controlling how much optimization should be performed.
3328
3329.. option:: -O<arg>, -O (equivalent to -O1), --optimize, --optimize=<arg>
3330
3331.. option:: -Ofast<arg>
3332
3333Debug information generation
3334~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3335
3336Flags controlling how much and what kind of debug information should be
3337generated.
3338
3339Kind and level of debug information
3340-----------------------------------
3341.. option:: -g, --debug, --debug=<arg>
3342
3343Generate source-level debug information
3344
3345.. option:: -gdwarf
3346
3347Generate source-level debug information with the default dwarf version
3348
3349.. option:: -gdwarf-2
3350
3351Generate source-level debug information with dwarf version 2
3352
3353.. option:: -gdwarf-3
3354
3355Generate source-level debug information with dwarf version 3
3356
3357.. option:: -gdwarf-4
3358
3359Generate source-level debug information with dwarf version 4
3360
3361.. option:: -gdwarf-5
3362
3363Generate source-level debug information with dwarf version 5
3364
3365.. option:: -gfull
3366
3367.. option:: -gused
3368
3369Debug level
3370___________
3371.. option:: -g0
3372
3373.. option:: -g2
3374
3375.. option:: -g3
3376
3377.. option:: -ggdb0
3378
3379.. option:: -ggdb1
3380
3381.. option:: -ggdb2
3382
3383.. option:: -ggdb3
3384
3385.. option:: -gline-directives-only
3386
3387Emit debug line info directives only
3388
3389.. option:: -gline-tables-only, -g1, -gmlt
3390
3391Emit debug line number tables only
3392
3393.. option:: -gmodules
3394
3395Generate debug info with external references to clang modules or precompiled headers
3396
3397Debugger to tune debug information for
3398______________________________________
3399.. option:: -ggdb
3400
3401.. option:: -glldb
3402
3403.. option:: -gsce
3404
3405Debug information flags
3406-----------------------
3407.. option:: -gcolumn-info, -gno-column-info
3408
3409.. option:: -gdwarf-aranges
3410
3411.. option:: -gembed-source, -gno-embed-source
3412
3413Embed source text in DWARF debug sections
3414
3415.. option:: -ggnu-pubnames, -gno-gnu-pubnames
3416
3417.. option:: -gpubnames, -gno-pubnames
3418
3419.. option:: -grecord-command-line, -gno-record-command-line, -grecord-gcc-switches
3420
3421.. option:: -gsplit-dwarf
3422
3423.. program:: clang1
3424.. option:: -gsplit-dwarf=<arg>
3425.. program:: clang
3426
3427Set DWARF fission mode to either 'split' or 'single'
3428
3429.. option:: -gstrict-dwarf, -gno-strict-dwarf
3430
3431.. option:: -gz
3432
3433DWARF debug sections compression type
3434
3435.. program:: clang1
3436.. option:: -gz=<arg>
3437.. program:: clang
3438
3439DWARF debug sections compression type
3440
3441Static analyzer flags
3442=====================
3443
3444Flags controlling the behavior of the Clang Static Analyzer.
3445
3446.. option:: -Xanalyzer <arg>
3447
3448Pass <arg> to the static analyzer
3449
3450Fortran compilation flags
3451=========================
3452
3453Flags that will be passed onto the ``gfortran`` compiler when Clang is given
3454a Fortran input.
3455
3456.. option:: -A<arg>, --assert <arg>, --assert=<arg>
3457
3458.. option:: -A-<arg>
3459
3460.. option:: -J<arg>
3461
3462.. option:: -cpp
3463
3464.. option:: -faggressive-function-elimination, -fno-aggressive-function-elimination
3465
3466.. option:: -falign-commons, -fno-align-commons
3467
3468.. option:: -fall-intrinsics, -fno-all-intrinsics
3469
3470.. option:: -fautomatic, -fno-automatic
3471
3472.. option:: -fbackslash, -fno-backslash
3473
3474.. option:: -fbacktrace, -fno-backtrace
3475
3476.. option:: -fblas-matmul-limit=<arg>
3477
3478.. option:: -fbounds-check, -fno-bounds-check
3479
3480.. option:: -fcheck-array-temporaries, -fno-check-array-temporaries
3481
3482.. option:: -fcheck=<arg>
3483
3484.. option:: -fcoarray=<arg>
3485
3486.. option:: -fconvert=<arg>
3487
3488.. option:: -fcray-pointer, -fno-cray-pointer
3489
3490.. option:: -fd-lines-as-code, -fno-d-lines-as-code
3491
3492.. option:: -fd-lines-as-comments, -fno-d-lines-as-comments
3493
3494.. option:: -fdefault-double-8, -fno-default-double-8
3495
3496.. option:: -fdefault-integer-8, -fno-default-integer-8
3497
3498.. option:: -fdefault-real-8, -fno-default-real-8
3499
3500.. option:: -fdollar-ok, -fno-dollar-ok
3501
3502.. option:: -fdump-fortran-optimized, -fno-dump-fortran-optimized
3503
3504.. option:: -fdump-fortran-original, -fno-dump-fortran-original
3505
3506.. option:: -fdump-parse-tree, -fno-dump-parse-tree
3507
3508.. option:: -fexternal-blas, -fno-external-blas
3509
3510.. option:: -ff2c, -fno-f2c
3511
3512.. option:: -ffixed-form, -fno-fixed-form
3513
3514.. option:: -ffixed-line-length-<arg>
3515
3516.. option:: -ffpe-trap=<arg>
3517
3518.. option:: -ffree-form, -fno-free-form
3519
3520.. option:: -ffree-line-length-<arg>
3521
3522.. option:: -ffrontend-optimize, -fno-frontend-optimize
3523
3524.. option:: -fimplicit-none, -fno-implicit-none
3525
3526.. option:: -finit-character=<arg>
3527
3528.. option:: -finit-integer=<arg>
3529
3530.. option:: -finit-local-zero, -fno-init-local-zero
3531
3532.. option:: -finit-logical=<arg>
3533
3534.. option:: -finit-real=<arg>
3535
3536.. option:: -finteger-4-integer-8, -fno-integer-4-integer-8
3537
3538.. option:: -fintrinsic-modules-path, -fno-intrinsic-modules-path
3539
3540.. option:: -fmax-array-constructor=<arg>
3541
3542.. option:: -fmax-errors=<arg>
3543
3544.. option:: -fmax-identifier-length, -fno-max-identifier-length
3545
3546.. option:: -fmax-stack-var-size=<arg>
3547
3548.. option:: -fmax-subrecord-length=<arg>
3549
3550.. option:: -fmodule-private, -fno-module-private
3551
3552.. option:: -fpack-derived, -fno-pack-derived
3553
3554.. option:: -fprotect-parens, -fno-protect-parens
3555
3556.. option:: -frange-check, -fno-range-check
3557
3558.. option:: -freal-4-real-10, -fno-real-4-real-10
3559
3560.. option:: -freal-4-real-16, -fno-real-4-real-16
3561
3562.. option:: -freal-4-real-8, -fno-real-4-real-8
3563
3564.. option:: -freal-8-real-10, -fno-real-8-real-10
3565
3566.. option:: -freal-8-real-16, -fno-real-8-real-16
3567
3568.. option:: -freal-8-real-4, -fno-real-8-real-4
3569
3570.. option:: -frealloc-lhs, -fno-realloc-lhs
3571
3572.. option:: -frecord-marker=<arg>
3573
3574.. option:: -frecursive, -fno-recursive
3575
3576.. option:: -frepack-arrays, -fno-repack-arrays
3577
3578.. option:: -fsecond-underscore, -fno-second-underscore
3579
3580.. option:: -fsign-zero, -fno-sign-zero
3581
3582.. option:: -fstack-arrays, -fno-stack-arrays
3583
3584.. option:: -funderscoring, -fno-underscoring
3585
3586.. option:: -fwhole-file, -fno-whole-file
3587
3588.. option:: -imultilib <arg>
3589
3590.. option:: -nocpp
3591
3592.. option:: -static-libgfortran
3593
3594Linker flags
3595============
3596Flags that are passed on to the linker
3597
3598.. option:: -L<dir>, --library-directory <arg>, --library-directory=<arg>
3599
3600Add directory to library search path
3601
3602.. option:: -Mach
3603
3604.. option:: -T<script>
3605
3606Specify <script> as linker script
3607
3608.. option:: -Tbss<addr>
3609
3610Set starting address of BSS to <addr>
3611
3612.. option:: -Tdata<addr>
3613
3614Set starting address of DATA to <addr>
3615
3616.. option:: -Ttext<addr>
3617
3618Set starting address of TEXT to <addr>
3619
3620.. option:: -Wl,<arg>,<arg2>...
3621
3622Pass the comma separated arguments in <arg> to the linker
3623
3624.. option:: -X
3625
3626.. option:: -Xlinker <arg>, --for-linker <arg>, --for-linker=<arg>
3627
3628Pass <arg> to the linker
3629
3630.. program:: clang1
3631.. option:: -Z
3632.. program:: clang
3633
3634.. option:: -e<arg>, --entry
3635
3636.. option:: -filelist <arg>
3637
3638.. option:: --hip-device-lib-path=<arg>
3639
3640HIP device library path. Alternative to rocm-path.
3641
3642.. option:: --hip-device-lib=<arg>
3643
3644HIP device library
3645
3646.. option:: -l<arg>
3647
3648.. option:: -r
3649
3650.. option:: -rpath <arg>
3651
3652.. option:: -s
3653
3654.. option:: -t
3655
3656.. option:: -u<arg>, --force-link <arg>, --force-link=<arg>
3657
3658.. option:: -undef
3659
3660undef all system defines
3661
3662.. option:: -undefined<arg>, --no-undefined
3663
3664.. option:: -z <arg>
3665
3666Pass -z <arg> to the linker
3667
3668