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