Inspired by #155495, I tried this code:
unsafe extern "C" {
#[link_name = "\0"]
safe fn hack();
}
pub fn main() {
hack();
}
I expected to see this happen: rustc works or emits errors
Instead, this happened:
rustc: /checkout/src/llvm-project/llvm/lib/IR/Value.cpp:346: void llvm::Value::setNameImpl(const Twine &): Assertion `!NameRef.contains(0) && "Null bytes are not allowed in names"' failed.
Also, I tried this code:
unsafe extern "C" {
#[link_name = ""]
safe fn hack();
}
pub fn main() {
hack();
}
I expected to see this happen:
rust-lld: error: undefined symbol:
or rustc emits errors.
Instead, this happened:
rust-lld: error: undefined symbol: anon.ba0403d3885badc6dc2b3e34422528cb.0
Meta
There must be llvm.assertions = true in bootstrap.toml.
Inspired by #155495, I tried this code:
I expected to see this happen: rustc works or emits errors
Instead, this happened:
Also, I tried this code:
I expected to see this happen:
or rustc emits errors.
Instead, this happened:
Meta
There must be
llvm.assertions = trueinbootstrap.toml.