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