Hello, I'm compiling the following test with GCC 4.6.0 and I do not see that MAX_EXPR is generated for (num)<0)?0:(num). With GCC 4.3.2 it is generated OK in original dump (both compilation were made with -O3). Is there a flag I should use to generate MAX_EXPR with GCC 4.6.0?
Thanks, Revital #define TEST(num) (unsigned char)(((num)>0xFF)?0xff:(((num)<0)?0:(num))) int foo(const unsigned char *tmp, int i, int val) { return TEST(tmp[i] + val); }