- case RETURN_STMT:
- case GOTO_STMT:
- {
- tree e = code == RETURN_STMT
- ? RETURN_STMT_EXPR (stmt)
- : GOTO_DESTINATION (stmt);
- if (pp_needs_newline (pp))
- pp_newline_and_indent (pp, 0);
- pp_c_identifier (pp, code == RETURN_STMT ? "return" : "goto");
- pp_c_whitespace (pp);
- if (e)
- {
- if (TREE_CODE (e) == INIT_EXPR
- && TREE_CODE (TREE_OPERAND (e, 0)) == RESULT_DECL)
- e = TREE_OPERAND (e, 1);
- pp_expression (pp, e);
- }
- pp_c_semicolon (pp);
- pp_needs_newline (pp) = true;
- }
- break;
-
- case SCOPE_STMT:
- if (!SCOPE_NULLIFIED_P (stmt) && SCOPE_NO_CLEANUPS_P (stmt))
- {
- int i = 0;
- if (pp_needs_newline (pp))
- pp_newline_and_indent (pp, 0);
- if (SCOPE_BEGIN_P (stmt))
- {
- pp_left_brace (pp);
- i = 3;
- }
- else if (SCOPE_END_P (stmt))
- {
- pp_right_brace (pp);
- i = -3;
- }
- pp_indentation (pp) += i;
- pp_needs_newline (pp) = true;
- }
- break;
-
- case DECL_STMT:
- if (pp_needs_newline (pp))
- pp_newline_and_indent (pp, 0);
- pp_declaration (pp, DECL_STMT_DECL (stmt));
- pp_needs_newline (pp) = true;
- break;
-
- case ASM_STMT:
- {
- bool has_volatile_p = ASM_VOLATILE_P (stmt);
- bool is_extended = has_volatile_p || ASM_INPUTS (stmt)
- || ASM_OUTPUTS (stmt) || ASM_CLOBBERS (stmt);
- pp_c_identifier (pp, is_extended ? "__asm__" : "asm");
- if (has_volatile_p)
- pp_c_identifier (pp, "__volatile__");
- pp_space (pp);
- pp_c_left_paren (pp);
- pp_c_string_literal (pp, ASM_STRING (stmt));
- if (is_extended)
- {
- pp_space (pp);
- pp_separate_with (pp, ':');
- if (ASM_OUTPUTS (stmt))
- pp_expression (pp, ASM_OUTPUTS (stmt));
- pp_space (pp);
- pp_separate_with (pp, ':');
- if (ASM_INPUTS (stmt))
- pp_expression (pp, ASM_INPUTS (stmt));
- pp_space (pp);
- pp_separate_with (pp, ':');
- if (ASM_CLOBBERS (stmt))
- pp_expression (pp, ASM_CLOBBERS (stmt));
- }
- pp_c_right_paren (pp);
- pp_newline (pp);
- }
- break;
-
- case FILE_STMT:
- pp_c_identifier (pp, "__FILE__");
- pp_space (pp);
- pp_equal (pp);
- pp_c_whitespace (pp);
- pp_c_identifier (pp, FILE_STMT_FILENAME (stmt));
- pp_c_semicolon (pp);
- pp_needs_newline (pp) = true;
- break;
-