blob: b4b81523c14f3856daf16fa3db195a9433b83355 [file] [log] [blame]
; lang.opt -- Options for the D front end.
; Copyright (C) 2006-2022 Free Software Foundation, Inc.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
; See the GCC internals manual for a description of this file's format.
; Please try to keep this file in ASCII collating order.
Language
D
-dependencies
D Alias(M)
; Documented in C
-print-missing-file-dependencies
D Alias(MG)
; Documented in C
-user-dependencies
D Alias(MM)
; Documented in C
-write-dependencies
D NoDriverArg Separate Alias(MD)
; Documented in C
-write-user-dependencies
D NoDriverArg Separate Alias(MMD)
; Documented in C
H
D
; Different from documented use in C.
Hd
D Joined Separate
-Hd <dir> Write D interface files to directory <dir>.
Hf
D Joined Separate
-Hf <file> Write D interface to <file>.
I
D Joined Separate
; Documented in C
J
D Joined Separate
; Different from documented use in Fortran.
M
D
; Documented in C
MD
D Separate NoDriverArg
; Documented in C
MF
D Joined Separate
; Documented in C
MG
D
; Documented in C
MM
D
; Documented in C
MMD
D Separate NoDriverArg
; Documented in C
MP
D
; Documented in C
MT
D Joined Separate
; Documented in C
MQ
D Joined Separate
; Documented in C
Waddress
D Warning Var(warn_address) LangEnabledBy(D, Wextra)
; Documented in C
Wall
D
; Documented in C
Walloca
D
; Documented in C
Walloca-larger-than=
D
; Documented in C
Wno-alloca-larger-than
D
; Documented in C
Wcast-result
D Warning Var(warn_cast_result) LangEnabledBy(D, Wextra)
Warn about casts that will produce a null result.
Wdeprecated
D
; Documented in common.opt
Werror
D
; Documented in common.opt
Wpsabi
D
; Documented in C
Wspeculative
D
Warn from speculative compiles such as __traits(compiles).
Wunknown-pragmas
D Var(warn_unknown_pragmas) LangEnabledBy(D, Wextra)
; Documented in C
Wvarargs
D
; Documented in C
X
D
Generate JSON file.
Xf
D Joined Separate
-Xf <file> Write JSON output to the given <file>.
debuglib=
Driver Joined
Debug library to use instead of phobos.
defaultlib=
Driver Joined
Default library to use instead of phobos.
dstartfiles
Driver
Do link the standard D startup files in the compilation.
-verbose
D Alias(v)
fall-instantiations
D
Generate code for all template instantiations.
fassert
D Var(flag_assert)
Generate code for assert contracts.
fbounds-check
D
; Documented in common.opt
fbounds-check=
D Joined RejectNegative Enum(bounds_check) Var(flag_bounds_check)
-fbounds-check=[on|safeonly|off] Turn array bounds checks on, in @safe code only, or off.
Enum
Name(bounds_check) Type(int) UnknownError(unknown array bounds setting %qs)
EnumValue
Enum(bounds_check) String(off) Value(0)
EnumValue
Enum(bounds_check) String(safeonly) Value(1)
EnumValue
Enum(bounds_check) String(on) Value(2)
; Generates a secondary ModuleInfo symbol for linking in unittests
fbuilding-libphobos-tests
D Undocumented Var(flag_building_libphobos_tests)
fbuiltin
D Var(flag_no_builtin, 0)
; Documented in C
fcheck=assert
D Alias(fassert)
fcheck=bounds
D Alias(fbounds-check)
fcheck=in
D Alias(fpreconditions)
fcheck=invariant
D Alias(finvariants)
fcheck=out
D Alias(fpostconditions)
fcheck=switch
D Alias(fswitch-errors)
fcheckaction=
D Joined RejectNegative Enum(check_action) Var(flag_check_action)
-fcheckaction=[throw,halt,context] Behavior on contract failure.
Enum
Name(check_action) Type(int) UnknownError(unknown checkaction setting %qs)
EnumValue
Enum(check_action) String(throw) Value(0)
EnumValue
Enum(check_action) String(halt) Value(1)
EnumValue
Enum(check_action) String(context) Value(2)
fdebug
D
Compile in debug code.
fdebug=
D Joined RejectNegative
-fdebug=<level|ident> Compile in debug code, code <= <level>, or code identified by <ident>.
fdoc
D
Generate documentation.
fdoc-dir=
D Joined RejectNegative
-fdoc-dir=<dir> Write documentation file to directory <dir>.
fdoc-file=
D Joined RejectNegative
-fdoc-file=<file> Write documentation to <file>.
fdoc-inc=
D Joined RejectNegative
-fdoc-inc=<file> Include a Ddoc macro <file>.
fdruntime
D
Assume that standard D runtime libraries and \"D main\" exist.
fdump-c++-spec-verbose
D RejectNegative
Add comments for ignored declarations in the generated C++ header.
fdump-c++-spec=
D RejectNegative Joined
-fdump-cxx-spec=<filename> Write all declarations as C++ code to <filename>.
fdump-d-original
D
Display the frontend AST after parsing and semantic passes.
fextern-std=
D Joined RejectNegative Enum(extern_stdcpp) Var(flag_extern_stdcpp)
-fextern-std=<standard> Set C++ name mangling compatibility with <standard>.
Enum
Name(extern_stdcpp) Type(int) UnknownError(unknown C++ standard %qs)
EnumValue
Enum(extern_stdcpp) String(c++98) Value(199711)
EnumValue
Enum(extern_stdcpp) String(c++03) Value(199711)
EnumValue
Enum(extern_stdcpp) String(c++11) Value(201103)
EnumValue
Enum(extern_stdcpp) String(c++14) Value(201402)
EnumValue
Enum(extern_stdcpp) String(c++17) Value(201703)
EnumValue
Enum(extern_stdcpp) String(c++20) Value(202002)
fignore-unknown-pragmas
D
Ignore unsupported pragmas.
finvariants
D Var(flag_invariants)
Generate code for class invariant contracts.
fmain
D RejectNegative
Generate a default D main() function when compiling.
fmodule-file=
D Joined RejectNegative
-fmodule-file=<package.module>=<filespec> use <filespec> as source file for <package.module>.
fmoduleinfo
D Var(flag_moduleinfo)
Generate ModuleInfo struct for output module.
fonly=
D Joined RejectNegative
Process all modules specified on the command line, but only generate code for the module specified by the argument.
fpostconditions
D Var(flag_postconditions)
Generate code for postcondition contracts.
fpreconditions
D Var(flag_preconditions)
Generate code for precondition contracts.
fpreview=all
D RejectNegative
Turn on all upcoming D language features.
fpreview=dip1000
D RejectNegative
Implement DIP1000: Scoped pointers.
fpreview=dip1008
D RejectNegative
Implement DIP1008: Allow exceptions in @nogc code.
fpreview=dip1021
D RejectNegative
Implement DIP1021: Mutable function arguments.
fpreview=dip25
D RejectNegative
Implement DIP25: Sealed references.
fpreview=dtorfields
D RejectNegative
Destruct fields of partially constructed objects.
fpreview=fieldwise
D RejectNegative
Use field-wise comparisons for struct equality.
fpreview=fixaliasthis
D RejectNegative
When a symbol is resolved, check `alias this' scope before going to upper scopes.
fpreview=in
D RejectNegative
Implement 'in' parameters to mean scope const.
fpreview=inclusiveincontracts
D RejectNegative
Implement 'in' contracts of overridden methods to be a superset of parent contract.
fpreview=nosharedaccess
D RejectNegative
Disable access to shared memory objects.
fpreview=rvaluerefparam
D RejectNegative
Enable rvalue arguments to ref parameters.
fpreview=shortenedmethods
D RejectNegative
Allow use of '=>' for methods and top-level functions in addition to lambdas.
frelease
D
Compile release version.
frevert=all
D RejectNegative
Turn off all revertable D language features.
frevert=dip1000
D RejectNegative
Revert DIP1000: Scoped pointers.
frevert=dip25
D RejectNegative
Revert DIP25: Sealed references.
frevert=dtorfields
D RejectNegative
Don't destruct fields of partially constructed objects.
frevert=intpromote
D RejectNegative
Use C-style integral promotion for unary '+', '-' and '~'.
frevert=markdown
D RejectNegative
Disable Markdown replacements in Ddoc.
frtti
D
; Documented in C
fsave-mixins=
D Joined RejectNegative
-fsave-mixins=<filename> Expand and save mixins to file specified by <filename>.
fswitch-errors
D Var(flag_switch_errors)
Generate code for switches without a default case.
ftransition=all
D RejectNegative
List information on all D language transitions.
ftransition=field
D RejectNegative
List all non-mutable fields which occupy an object instance.
ftransition=in
D RejectNegative
List all usages of 'in' on parameter.
ftransition=nogc
D RejectNegative
List all hidden GC allocations.
ftransition=templates
D RejectNegative
List statistics on template instantiations.
ftransition=tls
D RejectNegative
List all variables going into thread local storage.
ftransition=vmarkdown
D RejectNegative
List instances of Markdown replacements in Ddoc.
funittest
D
Compile in unittest code.
fversion=
D Joined RejectNegative
-fversion=<level|ident> Compile in version code >= <level> or identified by <ident>.
fweak-templates
D Var(flag_weak_templates) Init(1)
Emit template instantiations as weak symbols.
imultilib
D Joined Separate
; Documented in C
iprefix
D Joined Separate
; Documented in C
isysroot
D Joined Separate
; Documented in C
isystem
D Joined Separate
; Documented in C
nophoboslib
Driver
Do not link the standard D library in the compilation.
nostdinc
D
; Documented in C
static-libphobos
Driver
Link the standard D library statically in the compilation.
shared-libphobos
Driver
Link the standard D library dynamically in the compilation.
v
D
; Documented in C