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