Hacker News new | ask | show | jobs
by PassTheAmmo 5808 days ago
I had to try it just because I wanted to know. With -Wall GCC says: pquest.c:279: warning: operation on 'fp' may be undefined

Not sure what 'may' means though

EDIT:

So to clarify, my suspicion is that the expression could mean either:

1)

    *fp = *fp >> 4;
    *fp++;
or

2)

    *fp = *(fp+1) >> 4;
    *fp++;
1 comments

It is not the addressed value which is being incremented, but the pointer itself. There is no ambiguity.
I never claimed that the addressed value would be incremented, and that is not what is being discussed here, even though that too would have been a problem.

The thing is, at some point the compiler must calculate the address where to store the value. The question is then if there is a sequence point between calculating the data to store and the address which to store to. Otherwise there is ambiguity and the result is undefined.

According to http://en.wikipedia.org/wiki/Sequence_point there is no sequence point because of assignment (only initialization which this is not)

Btw was it you that downvoted my comment?