Repository navigation
Broken LLVM module: inlinable function call in a function with debug info must have a !dbg location #135332
Description
Code
I tried this code foundry-rs/foundry@0cc5355:
git clone https://github.com/foundry-rs/foundry.git
git checkout 0cc535504a909dcee74694fa86f7faafa4cbf4bc
cargo +stable build --bin forge --profile maxperf # takes a while (>5 min)I expected to see this happen: compiles like with dev or release profile
Instead, this happened (see https://github.com/foundry-rs/foundry/actions/runs/12700786553/job/35404155023#step:7:3652):
inlinable function call in a function with debug info must have a !dbg location
tail call fastcc void @_ZN5alloc5alloc18handle_alloc_error17ha0547c441587f574E(i64 noundef 8, i64 noundef 128) #324
... # the last line repeated thousands of times with different arguments
rustc-LLVM ERROR: Broken module found, compilation aborted!
This is caused by the following config combination, as changing any of these values makes it compile again:
debug = "line-tables-only" # any value that's not "none"
lto = "fat"I've also verified that the strip value does not affect the outcome either.
We fixed this by setting debug = "none".
Maybe related to #129063, which modified the function mentioned in the error?
I could reproduce this locally only on 1.84, not on beta or nightly, so feel free to close this if it has already been fixed. Reproducible with RUSTFLAGS="-Zverify-llvm-ir", see #135332 (comment).
Unfortunately I wasn't able to minimize this.
Simpler repro in #135332 (comment).
Version it worked on
It most recently worked on: 1.83.0
Version with regression
rustc --version --verbose:
rustc 1.84.0 (9fc6b4312 2025-01-07)
binary: rustc
commit-hash: 9fc6b43126469e3858e2fe86cafb4f0fd5068869
commit-date: 2025-01-07
host: x86_64-unknown-linux-gnu
release: 1.84.0
LLVM version: 19.1.5
rustc 1.86.0-nightly (824759493 2025-01-09)
binary: rustc
commit-hash: 824759493246ee383beb9cd5ceffa0e15deb9fa4
commit-date: 2025-01-09
host: x86_64-unknown-linux-gnu
release: 1.86.0-nightly
LLVM version: 19.1.6
@rustbot modify labels: +regression-from-stable-to-stable -regression-untriaged
Activity
lqd commentedon Jan 10, 2025
That landed in 1.83 so probably not. We can try to bisect, but 5 minutes per step does not sound like a fun time 😓.
DaniPopes commentedon Jan 10, 2025
Ah sorry, misread the tag in the commit view.
Took about 1 hour, not that bad.
searched nightlies: from nightly-2024-10-13 to nightly-2024-11-22
regressed nightly: nightly-2024-11-11
searched commit range: 59cec72...143ce09
regressed commit: b026d85
bisected with cargo-bisect-rustc v0.6.9
Host triple: x86_64-unknown-linux-gnu
Reproduce with:
I then bisected b026d85 ... 1.84.0 with
--regress no-errorSo:
And in fact building with
RUSTFLAGS="-Zverify-llvm-ir"on the latest nightly fails compilation with the same LLVM error.lqd commentedon Jan 10, 2025
Yup, same, I was bisecting through
2024-11-11myself.Let's at least cc the authors of those PRs: @khuey and @nikic.
13 remaining items
tests: add regression test for #rust-lang#135332
tests: add regression test for #rust-lang#135332
tests: add regression test for rust-lang#135332
tests: add regression test for rust-lang#135332
Refix rust-lang#132900 and fix rust-lang#135332 by emitting locations…
apiraino commentedon Jan 20, 2025
WG-prioritization assigning priority (Zulip discussion).
@rustbot label -I-prioritize +P-high
Auto merge of rust-lang#135643 - khuey:135332, r=jieyouxu
apiraino commentedon Jan 20, 2025
reopening for tracking the backports of #135643
(we usually close fixed regressions only after t-compiler has decided to backport the patch fixing it)
cuviper commentedon Jan 30, 2025
Should be fixed now in 1.84.1.