Does anyone have experience debugging failing llvm assertions? I managed to get a partial backtrace using lldb, but it's missing all the "in between" call locations (the ones that are inlined). I'm not sure it would actually help, either
This is the one I'm getting:
rustc: /users/mahewson/rust2/src/llvm/lib/IR/Value.cpp:256: void llvm::Value::setNameImpl(const llvm::Twine&): Assertion `!getType()->isVoidTy() && "Cannot assign a name to void values!"' failed.
Usually what I do is first see what is the source of an assertion
if it comes from deep within LLVM while it is optimising stuff, it is usually an LLVM’s fault
in that case I just use LLVM’s logging functionality (
-print-before-all and friends)
OK thanks. Yeah, it's during lto, so I guess a full backtrace wouldn't show any of the code that I worked on, instead it's the generated IR that's triggering the assertion failure somehow