Make `missing_fragment_specifier` an unconditional error
This was attempted in 1 then reverted in 2 because of fallout. Recently, this was made an edition-dependent error in 3.
Make missing fragment specifiers an unconditional error again, across all editions.
More context: https://github.com/rust-lang/rust/pull/128006 Most recent crater: https://github.com/rust-lang/rust/pull/128425#issuecomment-2686949847 Fixes: https://github.com/rust-lang/rust/issues/40107
r? @petrochenkov
The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
------
> importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:3aacb9c90579defe09351ac5e8ee504359f8054da6326ff19038f1b7c90e3cb2aafe33685c6d9b76ee8d2ccbd187ca80c46ab5380485abdd8c0ce7d69cd8d8fd:
------
##[endgroup]
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id := 99999999
---
Downloaded boml v0.3.1
Compiling boml v0.3.1
Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
Finished `release` profile [optimized] target(s) in 3.82s
Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
[BUILD] example
[AOT] mini_core_hello_world
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc/mini_core_hello_world
abc
---
---- [rustdoc] tests/rustdoc/macro-generated-macro.rs stdout ----
error: rustdoc failed!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/macro-generated-macro/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/macro-generated-macro" "--deny" "warnings" "/checkout/tests/rustdoc/macro-generated-macro.rs" "-A" "internal_features"
--- stderr -------------------------------
error: missing fragment specifier
##[error] --> /checkout/tests/rustdoc/macro-generated-macro.rs:28:48
|
|
28 | "space between most kinds of tokens": 1 $x + @ :: >>= 'static
|
= note: fragment specifiers must be specified in the 2024 edition
= note: fragment specifiers must be specified in the 2024 edition
= help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `expr_2021`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
help: try adding a specifier here
|
28 | "space between most kinds of tokens": 1 $x +:spec @ :: >>= 'static
error: aborting due to 1 previous error
------------------------------------------
This is just to test the diagnostics, none of the possible code cleanup is included.
@petrochenkov please take a look when you get the chance and start crater if the change seems correct.
@bors try
:hourglass: Trying commit c2492ec0df5fb7804bf6bb47481bbc52df052200 with merge 063c08dd8db6ff113bb809c130456f1781abe72c...
:sunny: Try build successful - checks-actions
Build commit: 063c08dd8db6ff113bb809c130456f1781abe72c (063c08dd8db6ff113bb809c130456f1781abe72c)
@craterbot check
:ok_hand: Experiment pr-128425 created and queued.
:robot: Automatically detected try build 063c08dd8db6ff113bb809c130456f1781abe72c
:mag: You can check out the queue and this experiment's details.
:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
:construction: Experiment pr-128425 is now running
:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
:tada: Experiment pr-128425 is completed!
:bar_chart: 156 regressed and 2 fixed (487733 total)
:newspaper: Open the full report.
:warning: If you notice any spurious failure please add them to the blacklist! :information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
rg 'missing fragment specifier' -l --stats in the logs reports 373 matches. The previous attempt in 2020 had 475 regressions per https://github.com/rust-lang/rust/issues/76605, so that is slight improvement but not much.
Like the previous run, almost all of these (361) come from clap <= 2.20, based on a crude rg 'missing fragment specifier.*\n.*clap' -l --stats -U. Remaining 12:
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout] --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout] --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout] --> src/macros.rs:136:17
We could let this simmer for a while with the new error in deps level (https://github.com/rust-lang/rust/pull/128122) and/or the edition-dependent lint (https://github.com/rust-lang/rust/pull/128006). I don't really know how to feel about these results because all of the relevant clap versions have been yanked for ~4 years, per https://github.com/clap-rs/clap/issues/2076.
Requesting compiler feedback for how to proceed. Context: this was made an e2024 error in https://github.com/rust-lang/rust/pull/128006, making it an error in all editions is being considered here.
@rustbot label +I-compiler-nominated
Discussed briefly in the compiler team triage meeting. Given that nearly all regressions are on very old versions of clap and this has been a compatibility warning since 2017, we think it's reasonable to make this an unconditional error.
Thanks for discussing this. I'll wait for the next beta branch so https://github.com/rust-lang/rust/pull/128122 is on stable for at least a cycle, then continue pushing this forward.
To reflect my above comment
@rustbot blocked
@tgross35 friendly ping in case you still want to pursuit this (I think formally this is not blocked anymore)
@rustbot label -S-blocked
Thanks for discussing this. I'll wait for the next beta branch so #128122 is on stable for at least a cycle, then continue pushing this forward.
@tgross35 Do you plan to return to this? The mentioned beta branch was released long time ago.
Yeah, that came and went. I'll get this rebased soon, should probably rerun crater to see if anything improved.
The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.2s done
#21 DONE 35.6s
##[endgroup]
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
17 | ^
18 |
19 = note: fragment specifiers must be specified in the 2024 edition
- = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `expr_2021`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
+ = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`, along with `expr_2021` and `pat_param` for edition compatibility
21 help: try adding a specifier here
22 |
23 LL | { $+:spec } => {
The actual stderr differed from the expected stderr.
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args parser/macro/issue-33569.rs`
To only update this specific test, also pass `--test-args parser/macro/issue-33569.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/parser/macro/issue-33569.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/parser/macro/issue-33569" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"
--- stderr -------------------------------
error: expected identifier, found `+`
##[error] --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
|
|
LL | { $+ } => { //~ ERROR expected identifier, found `+`
error: expected one of: `*`, `+`, or `?`
|
|
LL | $(x)(y) //~ ERROR expected one of: `*`, `+`, or `?`
error: missing fragment specifier
##[error] --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
|
|
LL | { $+ } => { //~ ERROR expected identifier, found `+`
|
= note: fragment specifiers must be specified in the 2024 edition
= note: fragment specifiers must be specified in the 2024 edition
= help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`, along with `expr_2021` and `pat_param` for edition compatibility
help: try adding a specifier here
|
LL | { $+:spec } => { //~ ERROR expected identifier, found `+`
error: missing fragment specifier
##[error] --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
|
|
LL | { $+ } => { //~ ERROR expected identifier, found `+`
error: aborting due to 4 previous errors
------------------------------------------
The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.2s done
#21 DONE 34.3s
##[endgroup]
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
Downloaded boml v0.3.1
Compiling boml v0.3.1
Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
Finished `release` profile [optimized] target(s) in 3.89s
Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
warning: target feature `x87` must be enabled to ensure that the ABI of the current target can be implemented correctly
|
= note: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #116344 <https://github.com/rust-lang/rust/issues/116344>
---
##[group]Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
Finished `release` profile [optimized] target(s) in 0.14s
##[endgroup]
##[group]Testing stage0 Linkcheck (x86_64-unknown-linux-gnu)
edition-guide/print.html:2728: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2731: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2746: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:164: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:167: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:182: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
number of HTML files scanned: 44244
number of HTML redirects found: 13808
number of links checked: 2447658
number of links ignored due to external: 92482
number of links ignored due to external: 92482
number of links ignored due to exceptions: 24
number of intra doc links ignored: 9
errors found: 6
found some broken links
Command has failed. Rerun with -v to see more details.
local time: Thu Feb 20 18:33:45 UTC 2025
network time: Thu, 20 Feb 2025 18:33:45 GMT
##[error]Process completed with exit code 1.
Post job cleanup.
@bors try
:hourglass: Trying commit d1ce28d0b75f3dab26e75ad7944367177f8a3983 with merge d12484522bcab8d07e325c6570f226a2faace3f7...
The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.1s done
#21 DONE 41.2s
##[endgroup]
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
Downloaded boml v0.3.1
Compiling boml v0.3.1
Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
Finished `release` profile [optimized] target(s) in 4.19s
Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
warning: target feature `x87` must be enabled to ensure that the ABI of the current target can be implemented correctly
|
= note: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #116344 <https://github.com/rust-lang/rust/issues/116344>
---
failures:
---- broken_fragment_local stdout ----
thread 'broken_fragment_local' panicked at src/tools/linkchecker/tests/checks.rs:17:5:
assertion failed: !status.success()
---- broken_fragment_remote stdout ----
thread 'broken_fragment_remote' panicked at src/tools/linkchecker/tests/checks.rs:17:5:
assertion failed: !status.success()
failures:
broken_fragment_local
broken_fragment_remote
:sunny: Try build successful - checks-actions
Build commit: d12484522bcab8d07e325c6570f226a2faace3f7 (d12484522bcab8d07e325c6570f226a2faace3f7)
The PR CI is just stuck on linkcheck. Cratering again to see if anything has changed since the error upgrades.
@craterbot check
:ok_hand: Experiment pr-128425-1 created and queued.
:robot: Automatically detected try build d12484522bcab8d07e325c6570f226a2faace3f7
:mag: You can check out the queue and this experiment's details.
:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
:construction: Experiment pr-128425-1 is now running
:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
:tada: Experiment pr-128425-1 is completed!
:bar_chart: 140 regressed and 0 fixed (589170 total)
:newspaper: Open the full report.
:warning: If you notice any spurious failure please add them to the denylist! :information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more
Waiting on author to analyze the regressions and fix CI. @rustbot author
rg 'missing fragment specifier' -l --stats now reports 350 matches, down from 373 in https://github.com/rust-lang/rust/pull/128425#issuecomment-2287923502. I don't think this indicates any significant change, except now all of the regressions are from yanked versions of clap (I'm assuming sem was removed from crater?).
Worth noting that there are a lot of warnings for unknown lint missing_fragment_specifier, apparently this is denied via attribute/CLI reasonably often.
CI will fail on linkcheck until https://github.com/rust-lang/edition-guide/pull/376 or something similar is merged and the submodule gets synced in.
@rustbot ready
Does this need FCP?
The job x86_64-gnu-llvm-19 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
#18 exporting to docker image format
#18 sending tarball 21.2s done
#18 DONE 32.5s
##[endgroup]
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-19]
[CI_JOB_NAME=x86_64-gnu-llvm-19]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-19', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'build.print-step-timings', '--enable-verbose-tests', '--set', 'build.metrics', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: build.build := x86_64-unknown-linux-gnu
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-19/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
Number of decisions: 4439
longest path: 1159 (code: 152)
longest backtrack: 66 (code: 428)
Shared 87642 out of 154040 states by creating 14936 new states, saving 72706
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc: In function ‘rtx_def* extract_bit_field_1(rtx, poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, bool, rtx_def**)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1864:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized [-Wmaybe-uninitialized]
1864 | rtx sub = extract_bit_field_as_subreg (mode1, op0, imode,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
1865 | bitsize, bitnum);
| ~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1824:19: note: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ was declared here
1824 | scalar_int_mode imode;
| ^~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc: In member function ‘void range_def_chain::dump(FILE*, basic_block, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc:318:19: warning: format not a string literal and no format arguments [-Wformat-security]
318 | fprintf (f, prefix);
| ~~~~~~~~^~~~~~~~~~~
---
from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/region-model.h:33,
from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:38:
In constructor ‘ana::byte_range::byte_range(ana::byte_offset_t, ana::byte_size_t)’,
inlined from ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’ at /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1811:18:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/store.h:312:5: warning: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ may be used uninitialized [-Wmaybe-uninitialized]
312 | m_size_in_bytes (size_in_bytes)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc: In member function ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1807:28: note: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ was declared here
1807 | byte_size_t size_in_bytes
| ^~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc: In function ‘void fancy_abort(const char*, int, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc:1729:15: warning: format not a string literal and no format arguments [-Wformat-security]
1729 | fnotice (stderr, diagnostic_kind_text[DK_ICE]);
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:7938:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
7938 | write (fd, "\n\n", 2);
| ~~~~~~^~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc: In member function ‘void driver::final_actions() const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:9315:13: warning: ignoring return value of ‘int truncate(const char*, __off_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
9315 | truncate(totruncate_file, 0);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gengtype-lex.l: In function ‘int yylex(const char**)’:
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
357 | #define YY_DO_BEFORE_ACTION \
| ~~~~~~~~~~~~~^~~~~~~
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc: In function ‘void lto_resolution_read(splay_tree, FILE*, lto_file*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2095:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
2095 | fscanf (resolution, " "); /* Read white space. */
| ~~~~~~~^~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2097:9: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
2097 | fread (obj_name, sizeof (char), name_len, resolution);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2117:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
2117 | fscanf (resolution, "%u", &num_symbols);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-recording.cc:31:
---
Applying machine_name to sys/rseq.h
Applying io_quotes_use to sys/epoll.h
Applying io_quotes_use to sys/raw.h
Applying io_quotes_use to misc/cxl.h
Applying io_quotes_use to misc/xilinx_sdfec.h
Applying io_quotes_use to misc/mrvl_cn10k_dpi.h
Applying io_quotes_use to misc/ocxl.h
Applying io_quotes_def to sudo_plugin.h
Applying io_quotes_use to sudo_plugin.h
Applying io_quotes_def to unicode/platform.h
Applying glibc_stdint to stdint.h
Applying hpux8_bogus_inlines to math.h
---
Applying io_quotes_use to scsi/cxlflash_ioctl.h
Applying machine_name to openssl/e_os2.h
Applying io_quotes_use to drm/tegra_drm.h
Applying io_quotes_use to drm/vgem_drm.h
Applying io_quotes_use to drm/pvr_drm.h
Applying io_quotes_use to drm/i915_drm.h
Applying io_quotes_use to drm/exynos_drm.h
Applying io_quotes_use to drm/vc4_drm.h
Applying io_quotes_use to drm/nouveau_drm.h
Applying io_quotes_use to drm/xe_drm.h
Applying io_quotes_use to drm/amdgpu_drm.h
Applying io_quotes_use to drm/v3d_drm.h
Applying io_quotes_use to drm/lima_drm.h
Applying io_quotes_use to drm/etnaviv_drm.h
Applying io_quotes_use to drm/qaic_accel.h
Applying io_quotes_use to drm/radeon_drm.h
Applying io_quotes_use to drm/msm_drm.h
Applying io_quotes_use to drm/drm.h
Applying io_quotes_use to drm/habanalabs_accel.h
Applying io_quotes_use to drm/omap_drm.h
Applying io_quotes_use to drm/panfrost_drm.h
Applying io_quotes_use to linux/dma-heap.h
Applying io_quotes_def to linux/version.h
Applying io_quotes_use to linux/omapfb.h
---
Applying io_quotes_use to linux/ndctl.h
Applying io_quotes_use to linux/dm-ioctl.h
Applying io_quotes_use to linux/vfio.h
Applying io_quotes_use to linux/rfkill.h
Applying io_quotes_use to linux/tps6594_pfsm.h
Applying io_quotes_use to linux/genwqe/genwqe_card.h
Applying io_quotes_use to linux/agpgart.h
Applying io_quotes_use to linux/i2o-dev.h
Applying io_quotes_use to linux/pidfd.h
Applying io_quotes_use to linux/psp-dbc.h
---
[RUSTC-TIMING] proc_macro test:false 5.572
[RUSTC-TIMING] test test:false 9.149
Finished `release` profile [optimized] target(s) in 1m 19s
##[endgroup]
[TIMING] core::build_steps::compile::Std { target: x86_64-unknown-linux-gnu, compiler: Compiler { stage: 1, host: x86_64-unknown-linux-gnu, forced_compiler: true }, crates: [], force_recompile: false, extra_rust_args: ["-Csymbol-mangling-version=v0", "-Cpanic=abort"], is_for_mir_opt_tests: false } -- 79.556
Testing GCC stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Downloading crates ...
Downloaded boml v0.3.1
Compiling boml v0.3.1
[RUSTC-TIMING] boml test:false 0.789
Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
[RUSTC-TIMING] y test:false 2.952
Finished `release` profile [optimized] target(s) in 4.17s
Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-backend gcc --gcc-path /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/install/lib --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
`--gcc-path` was provided, ignoring config file. Using `/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/install/lib` as path for libgccjit
[BUILD] mini_core
[RUSTC-TIMING] mini_core test:false 0.209
[BUILD] example
[AOT] mini_core_hello_world
[RUSTC-TIMING] mini_core_hello_world test:false 0.184
---
##[endgroup]
[TIMING] core::build_steps::tool::ToolBuild { compiler: Compiler { stage: 0, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu, tool: "linkchecker", path: "src/tools/linkchecker", mode: ToolBootstrap, source_type: InTree, extra_features: [], allow_features: "", cargo_args: [], artifact_kind: Binary } -- 0.146
[TIMING] core::build_steps::tool::Linkchecker { compiler: Compiler { stage: 0, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu } -- 0.000
##[group]Testing stage0 Linkcheck (x86_64-unknown-linux-gnu)
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:167: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:170: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:182: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2720: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2723: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2735: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
checked links in: 24.8s
number of HTML files scanned: 45807
number of HTML redirects found: 14459
number of links checked: 2514601
number of links ignored due to external: 102609
number of links ignored due to exceptions: 24
number of intra doc links ignored: 9
errors found: 6
found some broken links
Command has failed. Rerun with -v to see more details.
Build completed unsuccessfully in 0:44:59
local time: Sat Apr 26 08:28:35 UTC 2025
network time: Sat, 26 Apr 2025 08:28:36 GMT
##[error]Process completed with exit code 1.
Post job cleanup.
:umbrella: The latest upstream changes (presumably #140366) made this pull request unmergeable. Please resolve the merge conflicts.