https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117267

--- Comment #15 from Stas Sergeev <stsp at users dot sourceforge.net> ---
So in this case is this really good
to disallow the always_inline attribute?

- It just throws the meaningless error.
Its meaningless because clang has no
such problem, so stating "can never be copied"
is plain wrong: it can and clang knows how.
- The translation of that error is also wrong.
It says:
функция «setjmp» не может быть скопирована, поскольку имеют нелокальные
переходы в эту функцию
It should say:
функция «setjmp» не может быть скопирована, поскольку имеютСЯ нелокальные
переходы в эту функцию
- It complicates the use. You need to use macro
and compound statement extension.

Also when gcc detects a return after
setjmp(), it generates the intentionally
bad code. Andrew argues that this is UB
anyway, and that's certainly is. But why
not to generate an error then, rather than
when the properly valid attribute always_inline
is used?
But gcc choose to generate an error when
there is no UB, and generate bad code when
there is...

Reply via email to