digitalmars.D - C undefined behaviour
- bearophile <bearophileHUGS lycos.com> May 15 2011
"What Every C Programmer Should Know About Undefined Behavior", #1/3 and #2/3, by Chris Lattner himself (main author of LLVM): http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html http://www.reddit.com/r/programming/comments/h9rf9/what_every_c_programmer_should_know_about/ http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html http://www.reddit.com/r/programming/comments/hbepu/what_every_c_programmer_should_know_about/ The third blog post is yet to be shown. From my tests the Clang -fcatch-undefined-behavior -ftrapv switches work, they are going to be used for my C code. But I'd like a similar switch for unsigned values too, because currently it doesn't catch situations like: Using: clang -fcatch-undefined-behavior -ftrapv #include <stdio.h> int main(void) { long x = 2000000000; unsigned y = 2000000000; long z = x + y; printf("z = %ld\n", z); return 0; } Outputs the wrong result still: z = -294967296 This attitude of C compiler writers (and C language standard writers) is terrible (this also is why I use Python everywhere I can). Bye, bearophile
May 15 2011








bearophile <bearophileHUGS lycos.com>