This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/17913] [4.0 Regression] ICE jumping into statement expression
- From: "jsm at polyomino dot org dot uk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Oct 2004 15:05:26 -0000
- Subject: [Bug c/17913] [4.0 Regression] ICE jumping into statement expression
- References: <20041009192304.17913.jsm28@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From jsm at polyomino dot org dot uk 2004-10-28 15:05 -------
Subject: Re: [4.0 Regression] ICE jumping into statement
expression
On Thu, 28 Oct 2004, bonzini at gcc dot gnu dot org wrote:
> 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.
So we have another example of jumps out being used. That doesn't mean we
want to support them - and certainly doesn't mean we can define sensibly
what they mean when the statement expression isn't the full expression
statement - but affirms that if we stop allowing jumps out then we need a
deprecation period.
Whereas jumps in we can reasonably declare invalid, fix that part of bug
772 by putting in an error for jumping in and hopefully fix this
ice-on-invalid as well, without a deprecation period.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17913