On 26 Aug 2007 05:21:22 -0000, sabre at nondot dot org <[EMAIL PROTECTED]> wrote: > to not call bar.
The problem is in c-typeck.c (build_unary_op) (around line 2986). the code looks like: if (TREE_CODE (arg) == COMPLEX_CST) return TREE_IMAGPART (arg); else if (TREE_CODE (TREE_TYPE (arg)) == COMPLEX_TYPE) return fold_build1 (IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (arg)), arg); else return convert (TREE_TYPE (arg), integer_zero_node); So there is no check for TREE_SIDE_EFFECTS. Maybe it should use omit_one_operand or build a COMPOUND_EXPR. Either one will fix the bug. -- Pinski