Skip to content

Atomic Load causes LLVM assertion #6548

@Aatch

Description

@Aatch

The intrinsics-atomics test fails with the following assertion: void llvm::Instruction::setInstructionSubclassData(unsigned short): Assertion(D & HasMetadataBit) == 0 && "Out of range value put into field"' failed.`. The relevant bit of the stack trace is this:

#4  0x00007ffff4b19c70 in setInstructionSubclassData (D=<optimized out>, this=<optimized out>) at /home/james/projects/rust/compiler/src/llvm/include/llvm/IR/Instruction.h:437
#5  getSubclassDataFromInstruction (this=<optimized out>, D=<optimized out>, this=<optimized out>) at /home/james/projects/rust/compiler/src/llvm/include/llvm/IR/Instructions.h:246
#6  setOrdering (this=<optimized out>, Ordering=<optimized out>) at /home/james/projects/rust/compiler/src/llvm/include/llvm/IR/Instructions.h:197
#7  setAtomic (this=<optimized out>, SynchScope=(llvm::CrossThread | unknown: 457338112), Ordering=<optimized out>) at /home/james/projects/rust/compiler/src/llvm/include/llvm/IR/Instructions.h:216
#8  LLVMBuildAtomicLoad (B=<optimized out>, source=<optimized out>, Name=<optimized out>, order=<optimized out>) at /home/james/projects/rust/compiler/src/rustllvm/RustWrapper.cpp:558

I made a small change to output what AtomicLoad was being given as an ordering: 0xf30eb7a0 though it changes every time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions