------- Comment #1 from pinskia at gcc dot gnu dot org 2008-12-29 03:44 ------- I get a branchless form with -march=i686 -O2: testl %edx, %edx leal 4(%edx), %ecx cmovne %ecx, %eax
Also in your case if d is NULL, then b has to be NULL. Nothing to do with anything else -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35766