Instead of taking a fixed set of arguments, use variadics so that
we can pass arbitrary arguments to the handler. This is the first
step towards using the handler to handle other non-assertion-related
failures, like std::unreachable and an exception being thrown in
-fno-exceptions mode, which would improve user experience by including
additional information in crashes (right now, we call abort() without
additional information).
Details
- Reviewers
philnik - Group Reviewers
Restricted Project - Commits
- rG7de5aca84c54: [libc++] Generalize the customizeable assertion handler
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
I'd like to get this change (and the followups) into LLVM 15, since those will impact the ABI, so it's much simpler to do before we've actually released the current (pre-this-patch) ABI. I may have to cherry-pick this on release/15.x.
libcxx/src/assert.cpp | ||
---|---|---|
28–61 | I'm used to it, I guess. |
libcxx/src/assert.cpp | ||
---|---|---|
53 | This requires API level 21. We still build for older Api levels in some configs. Can this use something that works in older Api levels? (Also, this looks a bit unrelated to making the handler vararg?) |
libcxx/src/assert.cpp | ||
---|---|---|
53 | Ping? |
Duplicate comment?