http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57647

--- Comment #7 from vijay Nag <vijunag at gmail dot com> ---
(In reply to vijay Nag from comment #6)
> (In reply to Andreas Schwab from comment #5)
> > ((unsigned long*)foo)++ and ((unsigned long *)foo++) are not equivalent
> > expressions.  The former is the same as foo = (char *)((unsigned long*)foo +
> > 1), the latter is foo += sizeof(*foo) (and the cast has no effect).
> 
((unsigned long*)foo)++ is no longer a valid C expression for the cast
evaluates it to be an R-value rather than L-value.  Why is the second
expression
evaluating as foo += sizeof(*foo) ? ()(parentheses) comes before ++(postfix)
although they both have the same precedence  but associativity is from left to
right.

Reply via email to