------- Additional Comments From bonzini at gcc dot gnu dot org 2004-10-28 13:30
-------
> Jumps out of statement expressions are or were used in real code
> <http://gcc.gnu.org/ml/gcc-patches/2003-05/msg00770.html>. I don't think
> they are well-defined (except for jumps using longjmp), but I believe we
> need a deprecation period before removing them (e.g. deprecate in 4.0,
> remove in 4.1).
I remember using once a void statement expression "((void) ({ ... })" instead of
"do ... while (0)" in macros. It had something to do with emulated recursion,
so I wanted to use "continue" inside the macro to do the recursion. The
emulated recursive calls were ten or so in that function, hence using macros.
I had tried "if (1) ... else" as well, but then GCC gave warnings about possible
dangling "else"s.
Paolo
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17913