https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117785
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ok, so do we want some attribute for std::{exception,bad_exception,bad_alloc,bad_cast, bad_typeid,bad_weak_ptr,bad_function_call} and perhaps others which will pretend they have a key function even if they don't? Admittedly that would be quite easy to misuse, to use it properly one would need to make sure the attribute is not used in exactly one translation unit (easily done on the libstdc++ side by compiling those with -std=c++23 or earlier). I'll try to do magic for the exception_ptr methods now.