------- 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