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 (); }
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); }