------- Comment #10 from rguenth at gcc dot gnu dot org 2010-03-27 19:08 ------- The gimplifier of course transforms the COND_EXPRs back to control flow, thus the CFG looks like
D.1616 = D.1612 < 0; D.1617 = D.1612 + 1; if (D.1616 != 0) goto <bb 32>; else goto <bb 33>; <bb 32>: iftmp.17 = 0; goto <bb 34>; <bb 33>: iftmp.17 = D.1617 * 8; <bb 34>: D.1618 = iftmp.17; D.1795 = MAX_EXPR <D.1618, 1>; D.1619 = __builtin_malloc (D.1795); the question is if the check for negative size is really necessary for compiler-generated allocations of array temporaries. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42958