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