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

Reply via email to