On Friday, 28 March 2014 at 20:59:34 UTC, Justin Whear wrote:
On Fri, 28 Mar 2014 19:35:20 +0000, Frustrated wrote:
either way, all increment i, which actually never happens in
D. As was
pointed out, VS does it properly... D does it wrong. Accept it
and stop
trying to validate how D does it so you can say D is correct.
Not only is it logically wrong, it is not consistent with
previous
interpretations of other compilers/languages nor with itself.
It is
wrong on all levels. Just because you believe in unicorns
doesn't prove
that they exist. All the evidence says you are wrong.
Nope, Frustrated is the one who is dead wrong.
test.c:
-----------------------------
#include <stdio.h>
int main()
{
int i = 0;
i = i++;
printf("%i\n", i);
return 0;
}
-----------------------------
$ gcc test.c && ./a.out
0
$ clang test.c && ./a.out
test.c:7:7: warning: multiple unsequenced modifications to 'i'
[-
Wunsequenced]
i = i++;
~ ^
1 warning generated.
0
Both gcc and clang agree that in C, assigning a post-increment
to itself
results in the original value. At least Clang warns, which is
good, but
D is consistent with C's behavior on this point.
Justin
Oh yeah, this makes hell of a lot of sense. I'm the one who's
wrong, yet monarch claims it his is correct and yet clang gives a
warning. Great logic there! I'll be sure to mark every post you
have as special so I can study your logic to become so smart.