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