[Bug c/17913] [4.0 Regression] ICE jumping into statement expression
bonzini at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Oct 28 13:30:00 GMT 2004
------- 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
More information about the Gcc-bugs
mailing list