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