On 04/13/2012 04:44 PM, Jakub Jelinek wrote: > On Fri, Apr 13, 2012 at 04:33:17PM +0200, Bernd Schmidt wrote: >> On 04/13/2012 04:20 PM, Mike Stump wrote: >>> On Apr 13, 2012, at 5:30 AM, NightStrike wrote: >>>>> no warning from trunk. Which GCC version emits this warning? >>> >>>> Looks like cygwin gcc 3.4.4 >>> >>> 3.4.4 is a little old now.. We'd encourage an upgrade to a fine new >>> compiler... :-) >> >> The thing is, the else really is ambiguous, so it looks like we have a >> warning regression. > > To the compiler? There is for in between, no need to put extra braces IMHO. > I believe it has been intentionally fixed for 4.0, but my bisect tree only > goes back to r90000.
Well, to the compiler even if () if () x else y has an unambiguous meaning. The problem is that a human might be confused, for example due to bad indentation. Whether there's a for in between doesn't matter for this purpose, the following is most likely a bug: if () for (..) if () x else y Bernd