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