Is there a problem using 'unwind' with lli? When I run the following program with lli, I get a crash:
define i32 @main() {
entry:
invoke void @throw_something() to label %nounwind unwind label %catch
nounwind:
ret i32 1
catch:
ret i32 0
}
define void @throw_something() noreturn {
entry:
unwind
}
To run this, I am doing:
llvm-as crash.ll
lli -enable-eh crash.bc
I was going to report this as a bug, but I realized after simplifying my example to the smallest possible failure case, that no one could have missed this, so it must be something I am doing wrong or have missed. I also tried running it under gdb, but the debugger wasn't able to make sense of the stack frame at the crash site.
Note that if I add -force-interpreter to the command line, it runs OK. If I change the unwind to a ret void, it also runs OK.
-- Talin