Skip to content

LLVM assertion failed: conflicting locations for variable #29541

Closed
@tomaka

Description

@tomaka

To reproduce, just clone this repo: https://github.com/tomaka/rustc-issue-repro (it's a stripped down version of my project)

cargo build should trigger:

Assertion failed: std::all_of(Expr.begin(), Expr.end(), [](const DIExpression *E) { return E && E->isBitPiece(); }) && "conflicting locations for variable", file c:\bot\slave\nightly-dist-rustc-win-msvc-64\build\src\llvm\lib\codegen\asmprinter\DwarfDebug.h, line 154

This is with the MSVC 64bits nightly from a few days ago.

The only clue that I have is that here if you replace the call to VertexBuffer::immutable with unsafe { ::std::mem::zeroed() }, it fixes the problem.

The problematic call graph is:

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-lowLow priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions