コード例 #1
0
void
genrtl_if_stmt (tree t)
{
    tree cond;
    genrtl_do_pushlevel ();
    cond = expand_cond (IF_COND (t));
    emit_line_note (input_location);
    expand_start_cond (cond, 0);
    if (THEN_CLAUSE (t))
    {
        tree nextt = THEN_CLAUSE (t);

        if (cond && integer_zerop (cond))
            nextt = expand_unreachable_stmt (nextt, warn_notreached);
        expand_stmt (nextt);
    }

    if (ELSE_CLAUSE (t))
    {
        tree nextt = ELSE_CLAUSE (t);
        expand_start_else ();
        if (cond && integer_nonzerop (cond))
            nextt = expand_unreachable_stmt (nextt, warn_notreached);
        expand_stmt (nextt);
    }
    expand_end_cond ();
}
コード例 #2
0
ファイル: treetree.c プロジェクト: aosm/gccfast
void
tree_code_if_start (tree exp, unsigned char* filename, int lineno)
{
  tree cond_exp;
  cond_exp = build (NE_EXPR, 
                 TREE_TYPE (exp), 
                 exp, 
                 build1 (CONVERT_EXPR, TREE_TYPE (exp), integer_zero_node));
  emit_line_note ((const char *)filename, lineno); /* Output the line number information.  */
  expand_start_cond (cond_exp, /* Exit-able if nonzero.  */ 0);
}