Skip to content

Broken LLVM module: inlinable function call in a function with debug info must have a !dbg location #135332

Closed
@DaniPopes

Description

@DaniPopes

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

Metadata

Metadata

Assignees

Labels

A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.A-LTOArea: Link-time optimization (LTO)A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.E-needs-mcveCall for participation: This issue has a repro, but needs a Minimal Complete and Verifiable ExampleP-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions