From b72f55580cf78fb93f05a04ec10e9ae34ea58202 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 4 Feb 2022 11:48:18 -0800 Subject: [PATCH 1/2] Document -C symbol-mangling-version --- src/doc/rustc/src/codegen-options/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/doc/rustc/src/codegen-options/index.md b/src/doc/rustc/src/codegen-options/index.md index 0201b88417a8b..3e3d68da4c9fd 100644 --- a/src/doc/rustc/src/codegen-options/index.md +++ b/src/doc/rustc/src/codegen-options/index.md @@ -541,6 +541,21 @@ Supported values for this option are: - `symbols` - same as `debuginfo`, but the rest of the symbol table section is stripped as well if the linker supports it. +## symbol-mangling-version + +This option controls the [name mangling] format for encoding Rust item names +for the purpose of generating object code and linking. + +Supported values for this option are: + +* `v0` — The "v0" mangling scheme. The specific format is not specified at + this time. + +The default if not specified will use a compiler-chosen default which may +change in the future. + +[name mangling]: https://en.wikipedia.org/wiki/Name_mangling + ## target-cpu This instructs `rustc` to generate code specifically for a particular processor. From 800e0e2cfa845be5a01c611c8f370172b3a7cea5 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 4 Feb 2022 12:10:05 -0800 Subject: [PATCH 2/2] Document --json=future-incompat --- src/doc/rustc/src/command-line-arguments.md | 3 +++ src/doc/rustc/src/json.md | 26 +++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/doc/rustc/src/command-line-arguments.md b/src/doc/rustc/src/command-line-arguments.md index 11925ab978588..6ed28f1a84521 100644 --- a/src/doc/rustc/src/command-line-arguments.md +++ b/src/doc/rustc/src/command-line-arguments.md @@ -384,6 +384,9 @@ to customize the output: argument](#option-emit), and as soon as the artifact is available on the filesystem a notification will be emitted. +- `future-incompat` - includes a JSON message that contains a report if the + crate contains any code that may fail to compile in the future. + Note that it is invalid to combine the `--json` argument with the [`--color`](#option-color) argument, and it is required to combine `--json` with `--error-format=json`. diff --git a/src/doc/rustc/src/json.md b/src/doc/rustc/src/json.md index 5dee603142dcd..efbf861eaa68c 100644 --- a/src/doc/rustc/src/json.md +++ b/src/doc/rustc/src/json.md @@ -229,6 +229,32 @@ flag][option-emit] documentation. } ``` +## Future-incompatible reports + +If the [`--json=future-incompat`][option-json] flag is used, then a separate +JSON structure will be emitted if the crate may stop compiling in the future. +This contains diagnostic information about the particular warnings that may be +turned into a hard error in the future. This will include the diagnostic +information, even if the diagnostics have been suppressed (such as with an +`#[allow]` attribute or the `--cap-lints` option). + +```javascript +{ + /* An array of objects describing a warning that will become a hard error + in the future. + */ + "future_incompat_report": + [ + { + /* A diagnostic structure as defined in + https://doc.rust-lang.org/rustc/json.html#diagnostics + */ + "diagnostic": {...}, + } + ] +} +``` + [option-emit]: command-line-arguments.md#option-emit [option-error-format]: command-line-arguments.md#option-error-format [option-json]: command-line-arguments.md#option-json