fix issue with cmse-nonsecure-entry ABI being both async and c-variadic by folkertdev · Pull Request #146551 · rust-lang/rust (original) (raw)
tracking issue: #75835
fixes #132142
An extern "cmse-nonsecure-entry" function cannot be c-variadic (or, in any case, clang/LLVM does not support it, see https://godbolt.org/z/MaPjzGcE1). So just stop looking at the type if we know it'll be invalid anyway.
I'm not entirely sure how to test this. The ICE is only possible on the thumbv8m.main-none-eabi and some related targets. I think using minicore is the most convenient, but use of async requires quite a long list of lang items to be present. Maybe we want that anyway though? On the other hand, it's extra minicore surface that might go out of date.
An alternative is run-make, that should work, but is much less convenient. See also #t-compiler/help > `async fn` and `minicore`.
r? @ghost