B. rustc Command-Line Interface¶
- -A <lints>¶
Testing category: narrow impact
Compiler argument
-Aindicates which lints are suppressed. A suppressed lint is never checked and does not emit a diagnostic.<lints>must be a comma-separated list of lint names and lint category names. The list must contain at least one element.Example:
$ rustc -A warnings,absolute-paths-not-starting-with-crate
The effects of compiler argument
-Adepend on its position within the sequence of compiler arguments and the presence of other lint-related compiler arguments, where precedence increases from left to right.A list of size
Nis equivalent toNcompiler arguments-A, one for each element.Example:
$ rustc -A warnings -A absolute-paths-not-starting-with-crate
- -C codegen-units=<number>¶
Testing category: narrow impact
Code generation option
codegen-unitsinstructs the compiler to split the crate being compiled into multiple units. This may increase parallelism, but may also produce slower code.<number>must be a positive number.Example:
$ rustc -C codegen-units=4 my_program.rs
Multiple
codegen-unitscode generation options are allowed on the command line, where precedence increases from left to right.
- -C debug-assertions=<flag>¶
Testing category: narrow impact
Code generation option
debug-assertionsenables (or disables) conditional compilation that is predicated on attribute#[cfg(debug_assertions)].<flag>must be eitheroff,on,n,no,y, oryes, or can be altogether missing.The effects of
<flag>are as follows:<flag>effects
on,y,yes, no valueEnables debug assertions.
off,n,noDisables debug assertions.
Example:
$ rustc -C debug-assertions=yes my_program.rs
Multiple
debug-assertionscode generation options are allowed on the command line, where precedence increases from left to right.
- -C debuginfo=<level>¶
Testing category: narrow impact
Code generation option
debuginfoindicates the level of detail of the debug information produced by the compiler.<level>must be either0,1, or2.The effects of
<level>are as follows:<level>effects
0No debug information is produced.
1Only line tables are produced.
2Full debug information is produced.
Example:
$ rustc -C debuginfo=2 my_program.rs
Multiple
debuginfocode generation options are allowed on the command line, where precedence increases from left to right.
- -C extra-filename=<suffix>¶
Testing category: narrow impact
Code generation option
extra-filenameappends a suffix to the name of each output file.<suffix>must be a string literal.Example:
$ rustc -C extra-filename="_backup" my_program.rs
Multiple
extra-filenamecode generation options are allowed on the command line, where precedence increases from left to right.
- -C llvm-args=<args>¶
Caution
This argument is outside the scope of the Ferrocene qualification, and must not be used in a safety critical context. Its documentation is presented for your convenience.
Code generation option
llvm-argscan be used to pass a list of arguments directly to LLVM. The list must be separated by spaces.Example:
$ rustc -C llvm-args=--inline-threshold=123 my_program.rs
- -C link-arg=<arg>¶
Testing category: wide impact
Caution
Only the values listed in Compilation targets section for each target can be used in a safety critical context.
Code generation option
link-argappends a single extra argument to the invocation of the linker.<arg>must be a valid linker argument.Example:
$ rustc -C link-arg=--arch=sm_60 my_program.rs
The effects of code generation option
link-argdepend on its position within the sequence of linker argument-related code generation options, where precedence increases from left to right.Multiple
link-argcode generation options are allowed on the command line.
- -C link-args=<args>¶
Testing category: wide impact
Caution
Only the values listed in Compilation targets section for each target can be used in a safety critical context.
Code generation option
link-argsappends multiple extra arguments to the invocation of the linker.<args>must be a space-separated list of valid linker arguments. The list must contain at least one element.Example:
$ rustc -C link-args="-pie --relax" my_program.rs
The effects of code generation option
link-argsdepend on its position within the sequence of linker argument-related code generation options, where precedence increases from left to right.Multiple
link-argscode generation options are allowed on the command line.
- -C link-dead-code=<flag>¶
Testing category: narrow impact
Code generation option
link-dead-codeindicates whether dead code is linked.<flag>must be eitheroff,on,n,no,y, oryes, or can be altogether missing.The effects of
<flag>are as follows:<flag>effects
on,y,yes, no valueLinks dead code.
off,n,noDefault. Do not link dead code.
Example:
$ rustc -C link-dead-code=yes my_program.rs
Multiple
link-dead-codecode generation options are allowed on the command line, where precedence increases from left to right.
- -C linker=<path>¶
Testing category: wide impact
Caution
This can only be used for targets that require a linker driver, in which case the linker driver must adhere to the linker options restrictions.
Code generation option
linkerindicates the path to the linker. If this compiler argument is not specified, then the linker is inferred based on the target.<path>must denote a valid path.Example:
$ rustc -C linker=/usr/local/bin my_program.rs
Multiple
linkercode generation options are allowed on the command line, where precedence increases from left to right.
- -C linker-flavor=<flavor>¶
Testing category: wide impact
Caution
Only the flavors listed in Compilation targets section for each target can be used in a safety critical context.
Code generation option
linker-flavorindicates the flavor of the linker.If the linker is specified using compiler argument
-C linker, then the flavor is inferred.If no linker is specified, then the flavor is used to select the linker to use.
<flavor>must be eitherbpf-linker,em,gcc,ld,ld.lld,ld64.lld,lld-link,msvc,ptx-linker,wasm-ld.The effects of
<flavor>are as follows:<flavor>effects
bpf-linkerUse
bpf-linkerfor eBPF support.emUse Emscripten
emcc.gccUse
cc.ldUse
ld.ld.lldUse LLVM
lldwith the-flavor gnuflag for GNU binutils’ld.ld64.lldUse LLVM
lldwith the-flavor darwinflag for Apple’sld.lld-linkUse LLVM
lldwith the-flavor linkflag for Microsoft’slink.mscvUse
linkfrom Microsoft Visual Studio.ptx-linkerUse
rust-ptx-linkerfor Nvidia NVPTX GPGPU support.wasm-ldUse
wasm-ld.Example:
$ rustc -C linker-flavor=gcc my_program.rs
Multiple
linker-flavorcode generation options are allowed on the command line.
- -C metadata=<data>¶
Testing category: narrow impact
Code generation option
metadataenhances symbol mangling by supplying additional data used in the hashed suffixes of symbols.<data>must be a comma-separated list of string literals. The list must contain at least one element.Example:
$ rustc -C metadata=prod,arm32 my_program.rs
Multiple
metadatacode generation options are allowed on the command line, where precedence increases from left to right.
- -C no-vectorize-loops¶
Caution
This argument is outside the scope of the Ferrocene qualification, and must not be used in a safety critical context. Its documentation is presented for your convenience.
Code generation option
no-vectorize-loopsdisables loop vectorization.Example:
$ rustc -C no-vectorize-loops my_program.rs
Multiple
no-vectorize-loopscode generation options are allowed on the command line, where precedence increases from left to right.
- -C opt-level=<level>¶
Testing category: wide impact
Caution
Only level
2is within the scope of the Ferrocene qualification.Code generation option
opt-levelindicates the optimization level in effect.<level>must be either0,1,2,3,s, orz.The effects of
<level>are as follows:<level>effects
0No optimizations.
1Basic optimizations.
2Some optimizations. Same as compiler argument
-O.3All optimizations.
sOptimize for binary size.
zOptimize for binary size with disabled loop vectorization.
$ rustc -C opt-level=2 my_program.rs
Multiple
opt-levelcode generation options are allowed on the command line, where precedence increases from left to right.
- -C overflow-checks=<flag>¶
Testing category: narrow impact
Code generation option
overflow-checksenables (or disables) checks on runtime integer overflow. If overflow checks are enabled and integer overflow occurs, then the code panics.<flag>must be eitheroff,on,n,no,y, oryes, or can be altogether missing.The effects of
<flag>are as follows:<flag>effects
on,y,yes, no valueEnables overflow checks.
off,n,noDisables overflow checks.
Example:
$ rustc -C overflow-checks=yes my_program.rs
Multiple
overflow-checkscode generation options are allowed on the command line, where precedence increases from left to right.
- -C panic=<behavior>¶
Testing category: narrow impact
Code generation option
panicindicates the behavior of panics.<behavior>must be eitherabortorunwind.The effects of
<behavior>are as follows:<behavior>effects
abortThe process terminates upon panic.
unwindThe stack unwinds upon panic.
Example:
$ rustc -C panic=abort my_program.rs
Multiple
paniccode generation options are allowed on the command line, where precedence increases from left to right.
- -C prefer-dynamic=<flag>¶
Testing category: narrow impact
Code generation option
prefer-dynamicindicates whether dynamic linking is preferable when both a static and a dynamic version of a library are available.<flag>must be eitheroff,on,n,no,y, oryes, or can be altogether missing.The effects of
<flag>are as follows:<flag>effects
on,y,yes, no valueUse dynamic linking.
off,n,noDefault. Use static linking.
Example:
$ rustc -C prefer-dynamic=y my_program.rs
Multiple
prefer-dynamiccode generation options are allowed on the command line, where precedence increases from left to right.
- -C relocation-model=<model>¶
Caution
This argument is outside the scope of the Ferrocene qualification, and must not be used in a safety critical context. Its documentation is presented for your convenience.
Code generation option
relocation-modelenables the generation of position-independent code.<model>is set tostaticon ARM architectures.Multiple
relocation-modelcode generation options are allowed on the command line, where precedence increases from left to right.
- -C rpath=<flag>¶
Testing category: narrow impact
Code generation option
rpathindicates whether the run-time search path is enabled (or disabled).<flag>must be eitheroff,on,n,no,y, oryes, or can be altogether missing.The effects of
<flag>are as follows:<flag>effects
on,y,yes, no valueEnables the run-time search path.
off,n,noDefault. Disables the run-time search path.
Example:
$ rustc -C rpath=no my_program.rs
Multiple
rpathcode generation options are allowed on the command line, where precedence increases from left to right.
- -C target-cpu=<cpu>¶
Caution
This argument is outside the scope of the Ferrocene qualification, and must not be used in a safety critical context. Its documentation is presented for your convenience.
Code generation option
target-cpuindicates the CPU of the target to generate code for.<cpu>must be one of the CPU kinds reported by compiler argument--print target-cpus.Example:
$ rustc -C target-cpu=x86-64 my_program.rs
Multiple
target-cpucode generation options are allowed on the command line, where precedence increases from left to right.
- -C target-feature=<features>¶
Caution
This argument is outside the scope of the Ferrocene qualification, and must not be used in a safety critical context. Its documentation is presented for your convenience.
Code generation option
target-featureenables (or disables) a feature of the target.This code generation option is unsafe and may result in undefined behavior.
<features>must be a comma-separated list of feature details. The list must contain at least one element.The valid feature details and their effects are as follows:
feature detail
effects
+FEATUREEnables the feature.
-FEATUREDisables the feature.
FEATUREmust be one of the features reported by compiler argument--print target-features.The effects of compiler argument
-C target-featuredepends on its position within the sequence of compiler arguments and the presence of other such compiler arguments, where precedence increases from left to right.Examples:
$ rustc -C target-feature=adx,f16c my_program.rs
Multiple
target-featurecode generation options are allowed on the command line.
- --cap-lints <level>¶
Testing category: narrow impact
Compiler argument
--cap-lintsindicates the overall diagnostic level of all lints.<level>must be eitherallow,deny,forbid, orwarn.Example:
$ rustc --cap-lints warn my_program.rs
Specifying a particular
levelenacts the effects of the following lint-related compiler arguments for all lints:<level>compiler argument
allow-Adeny-Dforbid-Fwarn-WThe effects of compiler argument
--cap-lintsdepend on its position within the sequence of compiler arguments and the presence of other lint-related compiler arguments, where precedence increases from left to right.Multiple
--cap-lintscompiler arguments are allowed on the command line.
- --cfg <option>¶
Testing category: narrow impact
Compiler argument
--cfgspecifies conditional compilation option keys and values.<option>must either denote a key of the formkeyor a key-value pair of the formkey="value".Example:
$ rustc --cfg verbose my_program.rs $ rustc --cfg feature="serde" my_program.rs
A compiler argument of the form
--cfg keycorresponds to attribute#[cfg(key)].A compiler argument of the form
--cfg key="value"corresponds to attribute#[cfg(key = "value")].Multiple
--cfgcompiler arguments are allowed on the command line.
- --color <option>¶
Testing category: informational
Compiler argument
--colorsets the color of the output.<option>must denote eitheralways,auto, ornever, whereautois the default.The effects of
<option>are as follows:<option>effects
alwaysAlways use color in the output.
autoDefault. Use color only when the output goes to a TTY.
neverNever use color in the output.
Example:
$ rustc --color always my_program.rs
Only one
--colorcompiler argument is allowed on the command line.
- --crate-name <name>¶
Testing category: narrow impact
Compiler argument
--crate-namespecifies the name of the crate to build.<name>must be a string literal.Example:
$ rustc --crate-name my_crate_name my_program.rs
If the crate root module is subject to attribute
crate_name, then<name>and the name specified by the attribute must be the same.Only one
--crate-namecompiler argument is allowed on the command line.
- --crate-type <types>¶
Testing category: narrow impact
Caution
Only the
bin,lib,rlibandstaticlibcrate types can be used in a safety critical context.Compiler argument
--crate-typespecifies the type of crate to build.<types>must be a comma-separated list of crate types. The list must contain at least one element.The valid crate types are:
<types>binA runnable executable.
cdylibA native dynamic library.
dylibA Rust dynamic library.
libA compiler-favored library kind, defaults to
rlib.proc-macroA procedural macro library.
rlibA Rust static library.
staticlibA native static library.
Example:
$ rustc --crate-type dylib,rlib my_library.rs
If the crate root module is subject to attribute
crate_type, then<types>overrides the types specified by the attribute.A list of size
Nis equivalent toNcompiler arguments--crate-type, one for each element.Example:
$ rustc --crate-type dylib --crate-type rlib my_library.rs
- -D <lints>¶
Testing category: narrow impact
Compiler argument
-Dindicates which lints emit their diagnostics as errors. This compiler argument may be used to treat warnings as errors. An error stops compilation while a warning does not.<lints>must be a comma-separated list of lint names and lint category names. The list must contain at least one element.Example:
$ rustc -D warnings,absolute-paths-not-starting-with-crate
The effects of compiler argument
-Ddepend on its position within the sequence of compiler arguments and the presence of other lint-related compiler arguments, where precedence increases from left to right.A list of size
Nis equivalent toNcompiler arguments-D, one for each element.Example:
$ rustc -D warnings -D absolute-paths-not-starting-with-crate
- --edition <edition>¶
Testing category: wide impact
Caution
Only edition
2021is within the scope of the Ferrocene qualification.Compiler argument
--editionindicates the edition of the Rust programming language used during compilation.<edition>must denote either2015,2018, or2021, where2015is the default.Example:
$ rustc --edition 2021 my_program.rs
Only one
--editioncompiler argument is allowed on the command line.
- --emit <kinds>¶
Testing category: narrow impact
Compiler argument
--emitindicates which kind of output to emit.<kinds>must be a comma-separated list of output kinds. The list must contain at least one element.The valid output kinds and their effects are as follows:
<kinds>effects
dep-infoGenerate file
CRATE_NAME.dwhich indicates the files loaded when generating the crate, using Makefile syntax.metadataGenerate file
libCRATE_NAME.rmetawhich contains metadata about the crate.Example:
$ rustc --emit dep-info,metadata my_program.rs
A list of size
Nis equivalent toNcompiler arguments--emit, one for each element.Example:
$ rustc --emit dep-info --emit metadata my_program.rs
- --error-format <kind>¶
Testing category: informational
Indicate which kind of error format to use.
Compiler argument
--error-formatindicates which error format to use when emitting diagnostics.<kind>must denote eitherhuman,json, orshort, wherehumanis the default.The effects of
<kind>are as follows:<kind>effects
humanDefault. Generate human-readable output.
jsonGenerate structured JSON output.
shortGenerate one-line diagnostics.
Example:
$ rustc --error-format short my_program.rs
Only one
--error-formatcompiler argument is allowed on the command line.
- --explain <code>¶
Testing category: informational
Compiler argument
--explainoutputs a verbose explanation of an error denoted by a code.<code>must have the formEnnnn, where eachndenotes a digit from 0 to 9.Example:
$ rustc --explain E0708
Only one
--explaincompiler argument is allowed on the command line.
- --extern <details>¶
Testing category: narrow impact
Compiler argument
--externindicates the name and location of an external crate. The crate is added to the external prelude, and will be linked only when used.<details>must be a comma-separated list of crate details. The list must contain at least one element.The valid crate details and their effects are as follows:
crate details
effects
CRATE_NAMEIndicates the name of the crate within the search path.
CRATE_NAME=PATHIndicates the name and path of the crate.
CRATE_NAMEdoes not have to be unique within the union of all<details>. If the sameCRATE_NAMEis specified with and without aPATH, the version withPATHtakes precedence.Example:
$ rustc --extern \ my_library, \ my_other_library=/usr/lib/libmy_other_library.so \ my_program.rsA list of size
Nis equivalent toNcompiler arguments--extern, one for each element.Example:
$ rustc --extern my_library \ --extern my_other_library=/usr/lib/libmy_other_library.so \ my_program.rs
- -F <lints>¶
Testing category: narrow impact
Compiler argument
-Findicates which lints always emit their diagnostics as errors, regardless of whether other lint-related compiler arguments are present. This compiler argument may be used to treat warnings as errors. An error stops compilation while a warning does not.<lints>must be a comma-separated list of lint names and lint category names. The list must contain at least one element.Example:
$ rustc -F warnings,absolute-paths-not-starting-with-crate
The effects of compiler argument
-Fdepend on its position within the sequence of compiler arguments and the presence of other lint-related compiler arguments, where precedence increases from left to right.A list of size
Nis equivalent toNcompiler arguments-W, one for each element.Example:
$ rustc -F warnings -F absolute-paths-not-starting-with-crate
- -g¶
Testing category: narrow impact
Compiler argument
-gis identical to compiler argument-C debuginfo=2.
- -h¶
Testing category: informational
Compiler option
-his identical to compiler argument--help.
- --help¶
Testing category: informational
Compiler argument
--helpemits usage and help information.Example:
$ rustc -help
- --json <format>¶
Testing category: informational
Compiler argument
--jsonindicates the format of the JSON output when compiler argument--error-format jsonis in effect.<format>must denote eitherartifacts,diagnostic-short,diagnostic-rendered-ansi, orfuture-incompat.The effects of
<format>are as follows:<format>effects
artifactsOutput a JSON blob for each artifact produced by compiler argument
--emit.diagnostic-shortOutput a JSON blob as if compiler argument
--error-format shortis in effect.diagnostic-rendered-ansiOutput a JSON blob with ANSI color codes.
future-incompatOutput a JSON blob indicating future incompatibilities in the code.
Example:
$ rustc --error-format json --json artifacts my_program.rs
Only one
--jsoncompiler argument is allowed on the command line.
- -L <details>¶
Testing category: narrow impact
Compiler argument
-Lindicates the kind and location of a search path.<details>must be a comma-separated list of path details. The list must contain at least one element.The valid path details and their effects are as follows:
path details
effects
PATHIdentical to
all=PATH.all=PATHAdd a search path for all kinds of dependencies and libraries.
crate=PATHAdd a search path for direct dependencies only.
dependency=PATHAdd a search path for transitive dependencies only.
native=PATHAdd a search path for native libraries only.
Example:
$ rustc -L libraries,native=include/c_libraries my_program.rs
A list of size
Nis equivalent toNcompiler arguments-L, one for each element.Example:
$ rust -L libraries -L native=include/c_libraries my_program.rs
- -l <details>¶
Testing category: narrow impact
Compiler argument
-lindicates a native library to link.<details>must be a comma-separated list of library details. The list must contain at least one element.The valid library details and their effects are as follows:
library details
effects
NAMELink a native library denoted by its name.
KIND=NAMELink a specific kind of native library denoted by its name.
A valid
NAMEis as follows:NAMEACTUAL_NAMEThe actual name of the native library.
ALIAS:ACTUAL_NAMEThe actual name of the native library bound to an alias.
A valid
KINDis as follows:KINDLIB_KINDThe kind of the native library,
dylibfor a dynamic native library,staticfor a static native library.LIB_KIND:MODIFIERSThe kind of the native library subject to modifiers.
MODIFIERSis a comma-separated list of library modifiers. The list must contain at least one element. Specifying multiple identical library modifiers is not supported.Library modifiers are only compatible with the
staticKIND. The valid library modifiers and their effects are as follows:library modifier
effects
+bundleDefault. Causes the static native library to be packed into an rlib or a static archive, and then retrieved from there during the linking of the final binary.
-bundleCauses the static native library to be registered as a dependency of an rlib “by name”, and then retrieved “by name” during the linking of the final binary.
+whole-archiveCauses the static native library to be linked as a whole archive. This library modifier translates to
--whole-archiveforld-like linkers, to/WHOLEARCHIVEforlink.exe, and to-force-loadforld64.-whole-archiveDefault.
Library modifiers
+bundleand+whole-archiveare mutually exclusive.Examples:
$ rustc -l libmy_library my_program.rs $ rustc -l mine:libmy_library my_program.rs $ rustc -l static=libmy_static_library my_program.rs $ rustc -l static=mine:libmy_static_library my_program.rs $ rustc -l static+bundle=libmy_static_library my_program.rs $ rustc -l static+bundle=mine:libmy_static_library my_program.rs
- -O¶
Testing category: wide impact
Compiler argument
-Ois identical to compiler argument-C opt-level=2.
- -o <name>¶
Testing category: narrow impact
Compiler argument
-oindicates the name of the compilation output file.<name>must be a string literal.Example:
$ rustc -o driver my_program.rs
Compiler argument
-ocauses compiler argument--out-dirto be ignored.Only one
-ocompiler argument is allowed on the command line.
- --out-dir <directory>¶
Testing category: narrow impact
Compiler argument
--out-dirindicates the output directory.<directory>must be a valid path. It is not necessary for the path to exist prior to compilation.Example:
$ rustc --out-dir my_project/bin my_program.rs
Compiler argument
--out-diris ignored when compiler argument-ois in effect.Only one
--out-dircompiler argument is allowed on the command line.
- --print <option>¶
Testing category: informational
Compiler argument
--printemits information about the compiler.<option>must denote eithercfg,crate-name,link-args,native-static-lib,sysroot,target-libdir,target-list.The effects of
<option>are as follows:<option>effects
cfgOutputs all keys and key-value pairs related to conditional compilation that are in effect.
crate-nameOutputs the name of the crate.
link-argsOutputs the full linker invocation.
native-static-libOutputs the linker flags used when linking a static library.
sysrootOutputs the path to the compiler installation root.
target-libdirOutputs the path to the target libdir.
target-listOutputs a list of known targets.
Example:
$ rustc --print file-names my_program.rs
Multiple
--printcompiler arguments are allowed on the command line.
- --remap-path-prefix <from>=<to>¶
Testing category: narrow impact
Remap source path prefixes in all output. Compiler argument
--remap-path-prefixcauses path prefixes in all output to be replaced with another prefix.<from>must be a string literal.<to>must be a string literal, but exclude character 0x3D (equals sign).Example:
$ rustc --remap-path-prefix /usr/bin=/my_project/executables
Multiple
--remap-path-prefixcompiler arguments are allowed on the command line.
- --sysroot¶
Testing category: narrow impact
Compiler option
--sysrootindicates the compiler installation root.Example:
$ rustc --sysroot my_project/bin my_program.rs
Only one
--sysrootcompiler argument is allowed on the command line.
- --target <target>¶
Testing category: wide impact
Compiler argument
--targetindicates the target tuple to build.<target>must denote what is it for ARM?Example:
$ rustc --target ??? my_program.rs
Only one
--targetcompiler argument is allowed on the command line.
- --test¶
Testing category: narrow impact
Compiler argument
--testbuilds a test harness in the form of an executable binary.Example:
$ rustc --test my_program.rs
Only one
--testcompiler argument is allowed on the command line.
- -V¶
Testing category: informational
Compiler argument
-Vis identical to compiler argument--version.
- -v¶
Testing category: informational
Compiler argument
-vis identical to compiler argument--verbose.
- --verbose¶
Testing category: informational
Compiler argument
--verboseemits verbose output.Example:
$ rustc --verbose my_program.rs
Only one
--verbosecompiler argument is allowed on the command line.
- --version¶
Testing category: informational
Compiler argument
--versionemits the compiler version.Example:
$ rustc --version
Only one
--versioncompiler argument is allowed on the command line.
- -W <lints>¶
Testing category: narrow impact
Compiler argument
-Windicates which lints emit their diagnostics as warnings. This compiler argument may be used to treat errors as warnings. An error stops compilation while a warning does not.<lints>must be a comma-separated list of lint names and lint category names. The list must contain at least one element.Example:
$ rustc -W warnings,absolute-paths-not-starting-with-crate
The effects of compiler argument
-Wdepend on its position within the sequence of compiler arguments and the presence of other lint-related compiler arguments, where precedence increases from left to right.A list of size
Nis equivalent toNcompiler arguments-W, one for each element.Example:
$ rustc -W warnings -W absolute-paths-not-starting-with-crate