/* This file contains the definitions and documentation for the common
tree codes used in the GNU C and C++ compilers (see c-common.def
for the standard codes).
- Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Written by Benjamin Chelf (chelf@codesourcery.com).
This file is part of GCC.
{
tree cond = WHILE_COND (t);
- emit_nop ();
emit_line_note (input_location);
expand_start_loop (1);
genrtl_do_pushlevel ();
}
else if (integer_nonzerop (cond))
{
- emit_nop ();
emit_line_note (input_location);
expand_start_loop (1);
}
else
{
- emit_nop ();
emit_line_note (input_location);
expand_start_loop_continue_elsewhere (1);
expand_stmt (FOR_INIT_STMT (t));
/* Expand the initialization. */
- emit_nop ();
emit_line_note (input_location);
if (FOR_EXPR (t))
expand_start_loop_continue_elsewhere (1);
{
emit_line_note (input_location);
if ( ! expand_exit_something ())
- error ("break statement not within loop or switch");
+ abort ();
}
/* Build a continue statement node and return it. */
{
emit_line_note (input_location);
if (! expand_continue_loop (0))
- error ("continue statement not within a loop");
+ abort ();
}
/* Generate the RTL for T, which is a SCOPE_STMT. */
{
if (TREE_CODE (fn) == FUNCTION_DECL
&& DECL_CONTEXT (fn) == current_function_decl
- && DECL_SAVED_INSNS (fn)
- && DECL_SAVED_INSNS (fn)->saved_for_inline
+ && DECL_STRUCT_FUNCTION (fn)
+ && DECL_STRUCT_FUNCTION (fn)->saved_for_inline
&& !TREE_ASM_WRITTEN (fn)
&& TREE_ADDRESSABLE (fn))
{
genrtl_cleanup_stmt (tree t)
{
tree decl = CLEANUP_DECL (t);
- if (!decl || (DECL_SIZE (decl) && TREE_TYPE (decl) != error_mark_node))
+ if (!decl || !DECL_P (decl)
+ || (DECL_SIZE (decl) && TREE_TYPE (decl) != error_mark_node))
expand_decl_cleanup_eh (decl, CLEANUP_EXPR (t), CLEANUP_EH_ONLY (t));
}