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