http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57531
--- Comment #5 from vijay Nag <vijunag at gmail dot com> --- (In reply to Andrew Pinski from comment #4) > I think the problem is the comma operator causes it to be a rvalue. In that > ((void)0, x) is considered rvalue rather than what you want as a lvalue. > > Note C does not have ?: as lvalues so this cannot apply to C; only C++. Why did it work with gcc-3.3.6 ? Any revisions in standard ?