Skip to content

"Instruction does not dominate all uses" when translating fixed point combinator #597

Closed
@msullivan

Description

@msullivan

Trying to translate the function

fn fix[A,B](fn (fn (&A) -> B, &A) -> B f, &A x) -> B {
    ret f(bind fix(f, _), x);
}

produces the LLVM messages:

Instruction does not dominate all uses!
  %19 = load %tydesc** %18
  store %tydesc* %19, %tydesc** %6
Instruction does not dominate all uses!
  %21 = load %tydesc** %20
  store %tydesc* %21, %tydesc** %7
Broken module found, compilation aborted!
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'rust_out'.
1.      Running pass 'Module Verifier' on function '@_ZN3fix7thunk14E'
Aborted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions