RISC-V: Make stack_save_restore tests more robust
[official-gcc.git] / gcc / d / lang.opt
blob98a95c1dc381fb5c4021e8946d0d8915a4ea9681
1 ; lang.opt -- Options for the D front end.
2 ; Copyright (C) 2006-2023 Free Software Foundation, Inc.
4 ; GCC is free software; you can redistribute it and/or modify it under
5 ; the terms of the GNU General Public License as published by the Free
6 ; Software Foundation; either version 3, or (at your option) any later
7 ; version.
9 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
10 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 ; for more details.
14 ; You should have received a copy of the GNU General Public License
15 ; along with GCC; see the file COPYING3.  If not see
16 ; <http://www.gnu.org/licenses/>.
18 ; See the GCC internals manual for a description of this file's format.
20 ; Please try to keep this file in ASCII collating order.
22 Language
25 -dependencies
26 D Alias(M)
27 ; Documented in C
29 -print-missing-file-dependencies
30 D Alias(MG)
31 ; Documented in C
33 -user-dependencies
34 D Alias(MM)
35 ; Documented in C
37 -write-dependencies
38 D NoDriverArg Separate Alias(MD)
39 ; Documented in C
41 -write-user-dependencies
42 D NoDriverArg Separate Alias(MMD)
43 ; Documented in C
47 ; Different from documented use in C.
50 D Joined Separate
51 -Hd <dir>       Write D interface files to directory <dir>.
54 D Joined Separate
55 -Hf <file>      Write D interface to <file>.
58 D Joined Separate
59 ; Documented in C
62 D Joined Separate
63 ; Different from documented use in Fortran.
67 ; Documented in C
70 D Separate NoDriverArg
71 ; Documented in C
74 D Joined Separate
75 ; Documented in C
79 ; Documented in C
83 ; Documented in C
85 MMD
86 D Separate NoDriverArg
87 ; Documented in C
91 ; Documented in C
94 D Joined Separate
95 ; Documented in C
98 D Joined Separate
99 ; Documented in C
101 Waddress
102 D Warning Var(warn_address) LangEnabledBy(D, Wextra)
103 ; Documented in C
105 Wall
107 ; Documented in C
109 Walloca
111 ; Documented in C
113 Walloca-larger-than=
115 ; Documented in C
117 Wno-alloca-larger-than
119 ; Documented in C
121 Wbuiltin-declaration-mismatch
123 ; Documented in C
125 Wcast-result
126 D Warning Var(warn_cast_result) LangEnabledBy(D, Wextra)
127 Warn about casts that will produce a null result.
129 Wdeprecated
131 ; Documented in common.opt
133 Werror
135 ; Documented in common.opt
137 Wextra
138 D Warning
139 ; Documented in common.opt
141 Wmismatched-special-enum
142 D Warning Var(warn_mismatched_special_enum) LangEnabledBy(D, Wextra)
143 Warn when a special enum is declared with the wrong base type.
145 Wpsabi
147 ; Documented in C
149 Wspeculative
151 Warn from speculative compiles such as __traits(compiles).
153 Wunknown-pragmas
154 D Var(warn_unknown_pragmas) LangEnabledBy(D, Wextra)
155 ; Documented in C
157 Wvarargs
159 ; Documented in C
163 Generate JSON file.
166 D Joined Separate
167 -Xf <file>      Write JSON output to the given <file>.
169 debuglib=
170 Driver Joined
171 Debug library to use instead of phobos.
173 defaultlib=
174 Driver Joined
175 Default library to use instead of phobos.
177 dstartfiles
178 Driver
179 Do link the standard D startup files in the compilation.
181 -verbose
182 D Alias(v)
184 fall-instantiations
186 Generate code for all template instantiations.
188 fassert
189 D Var(flag_assert)
190 Generate code for assert contracts.
192 fbounds-check
194 ; Documented in common.opt
196 fbounds-check=
197 D Joined RejectNegative Enum(bounds_check) Var(flag_bounds_check)
198 -fbounds-check=[on|safeonly|off]        Turn array bounds checks on, in @safe code only, or off.
200 Enum
201 Name(bounds_check) Type(int) UnknownError(unknown array bounds setting %qs)
203 EnumValue
204 Enum(bounds_check) String(off) Value(0)
206 EnumValue
207 Enum(bounds_check) String(safeonly) Value(1)
209 EnumValue
210 Enum(bounds_check) String(on) Value(2)
212 ; Generates a secondary ModuleInfo symbol for linking in unittests
213 fbuilding-libphobos-tests
214 D Undocumented Var(flag_building_libphobos_tests)
216 fbuiltin
217 D Var(flag_no_builtin, 0)
218 ; Documented in C
220 fcheck=assert
221 D Alias(fassert)
223 fcheck=bounds
224 D Alias(fbounds-check)
226 fcheck=in
227 D Alias(fpreconditions)
229 fcheck=invariant
230 D Alias(finvariants)
232 fcheck=out
233 D Alias(fpostconditions)
235 fcheck=switch
236 D Alias(fswitch-errors)
238 fcheckaction=
239 D Joined RejectNegative Enum(check_action) Var(flag_check_action)
240 -fcheckaction=[throw,halt,context]      Behavior on contract failure.
242 Enum
243 Name(check_action) Type(int) UnknownError(unknown checkaction setting %qs)
245 EnumValue
246 Enum(check_action) String(throw) Value(0)
248 EnumValue
249 Enum(check_action) String(halt) Value(1)
251 EnumValue
252 Enum(check_action) String(context) Value(2)
254 fdebug
256 Compile in debug code.
258 fdebug=
259 D Joined RejectNegative
260 -fdebug=<ident> Compile in debug code identified by <ident>.
262 fdoc
264 Generate documentation.
266 fdoc-dir=
267 D Joined RejectNegative
268 -fdoc-dir=<dir> Write documentation file to directory <dir>.
270 fdoc-file=
271 D Joined RejectNegative
272 -fdoc-file=<file>       Write documentation to <file>.
274 fdoc-inc=
275 D Joined RejectNegative
276 -fdoc-inc=<file>        Include a Ddoc macro <file>.
278 fdruntime
280 Assume that standard D runtime libraries and \"D main\" exist.
282 fdump-c++-spec-verbose
283 D RejectNegative
284 Add comments for ignored declarations in the generated C++ header.
286 fdump-c++-spec=
287 D RejectNegative Joined
288 -fdump-cxx-spec=<filename>      Write all declarations as C++ code to <filename>.
290 fdump-d-original
292 Display the frontend AST after parsing and semantic passes.
294 fexceptions
296 ; Documented in common.opt
298 fextern-std=
299 D Joined RejectNegative Enum(extern_stdcpp) Var(flag_extern_stdcpp)
300 -fextern-std=<standard> Set C++ name mangling compatibility with <standard>.
302 Enum
303 Name(extern_stdcpp) Type(int) UnknownError(unknown C++ standard %qs)
305 EnumValue
306 Enum(extern_stdcpp) String(c++98) Value(199711)
308 EnumValue
309 Enum(extern_stdcpp) String(c++03) Value(199711)
311 EnumValue
312 Enum(extern_stdcpp) String(c++11) Value(201103)
314 EnumValue
315 Enum(extern_stdcpp) String(c++14) Value(201402)
317 EnumValue
318 Enum(extern_stdcpp) String(c++17) Value(201703)
320 EnumValue
321 Enum(extern_stdcpp) String(c++20) Value(202002)
323 fignore-unknown-pragmas
325 Ignore unsupported pragmas.
327 finvariants
328 D Var(flag_invariants)
329 Generate code for class invariant contracts.
331 fmain
332 D RejectNegative
333 Generate a default D main() function when compiling.
335 fmodule-file=
336 D Joined RejectNegative
337 -fmodule-file=<package.module>=<filespec>       use <filespec> as source file for <package.module>.
339 fmoduleinfo
340 D Var(flag_moduleinfo)
341 Generate ModuleInfo struct for output module.
343 fonly=
344 D Joined RejectNegative
345 Process all modules specified on the command line, but only generate code for the module specified by the argument.
347 fpostconditions
348 D Var(flag_postconditions)
349 Generate code for postcondition contracts.
351 fpreconditions
352 D Var(flag_preconditions)
353 Generate code for precondition contracts.
355 fpreview=all
356 D RejectNegative
357 Turn on all upcoming D language features.
359 fpreview=bitfields
360 D RejectNegative
361 Implement D bit-fields.
363 fpreview=dip1000
364 D RejectNegative
365 Implement DIP1000: Scoped pointers.
367 fpreview=dip1008
368 D RejectNegative
369 Implement DIP1008: Allow exceptions in @nogc code.
371 fpreview=dip1021
372 D RejectNegative
373 Implement DIP1021: Mutable function arguments.
375 fpreview=dtorfields
376 D RejectNegative
377 Destruct fields of partially constructed objects.
379 fpreview=fieldwise
380 D RejectNegative
381 Use field-wise comparisons for struct equality.
383 fpreview=fixaliasthis
384 D RejectNegative
385 When a symbol is resolved, check `alias this' scope before going to upper scopes.
387 fpreview=fiximmutableconv
388 D RejectNegative
389 Disallow unsound immutable conversions that were formerly incorrectly permitted.
391 fpreview=in
392 D RejectNegative
393 Implement 'in' parameters to mean scope const.
395 fpreview=inclusiveincontracts
396 D RejectNegative
397 Implement 'in' contracts of overridden methods to be a superset of parent contract.
399 fpreview=nosharedaccess
400 D RejectNegative
401 Disable access to shared memory objects.
403 fpreview=rvaluerefparam
404 D RejectNegative
405 Enable rvalue arguments to ref parameters.
407 fpreview=systemvariables
408 D RejectNegative
409 Disable access to variables marked `@system' from @safe code.
411 frelease
413 Compile release version.
415 frevert=all
416 D RejectNegative
417 Turn off all revertable D language features.
419 frevert=dip1000
420 D RejectNegative
421 Revert DIP1000: Scoped pointers.
423 frevert=dtorfields
424 D RejectNegative
425 Don't destruct fields of partially constructed objects.
427 frevert=intpromote
428 D RejectNegative
429 Don't use C-style integral promotion for unary '+', '-' and '~'.
431 frtti
433 ; Documented in C
435 fsave-mixins=
436 D Joined RejectNegative
437 -fsave-mixins=<filename>        Expand and save mixins to file specified by <filename>.
439 fswitch-errors
440 D Var(flag_switch_errors)
441 Generate code for switches without a default case.
443 ftransition=all
444 D RejectNegative
445 List information on all D language transitions.
447 ftransition=field
448 D RejectNegative
449 List all non-mutable fields which occupy an object instance.
451 ftransition=in
452 D RejectNegative
453 List all usages of 'in' on parameter.
455 ftransition=nogc
456 D RejectNegative
457 List all hidden GC allocations.
459 ftransition=templates
460 D RejectNegative
461 List statistics on template instantiations.
463 ftransition=tls
464 D RejectNegative
465 List all variables going into thread local storage.
467 funittest
469 Compile in unittest code.
471 fversion=
472 D Joined RejectNegative
473 -fversion=<ident>       Compile in version code identified by <ident>.
475 fweak-templates
476 D Var(flag_weak_templates) Init(1)
477 Emit template instantiations as weak symbols.
479 imultilib
480 D Joined Separate
481 ; Documented in C
483 iprefix
484 D Joined Separate
485 ; Documented in C
487 isysroot
488 D Joined Separate
489 ; Documented in C
491 isystem
492 D Joined Separate
493 ; Documented in C
495 nophoboslib
496 Driver
497 Do not link the standard D library in the compilation.
499 nostdinc
501 ; Documented in C
503 static-libphobos
504 Driver
505 Link the standard D library statically in the compilation.
507 shared-libphobos
508 Driver
509 Link the standard D library dynamically in the compilation.
513 ; Documented in C