https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113401
--- Comment #8 from Florian Weimer <fw at gcc dot gnu.org> --- Which version of the manual page are you looking at? https://man7.org/linux/man-pages/man3/pthread_cleanup_push.3.html seems pretty clear about the scope-based nature (search for discussion of break/return/goto).