* stmt.c (current_nesting_level): New fn.
* tree.h: Declare it.
* c-semantics.c (genrtl_compound_stmt): Use it.
* dbxout.c (dbxout_symbol): Use DECL_RTL_SET_P.
From-SVN: r43037
+2001-06-08 Jason Merrill <jason_merrill@redhat.com>
+
+ * stmt.c (current_nesting_level): New fn.
+ * tree.h: Declare it.
+ * c-semantics.c (genrtl_compound_stmt): Use it.
+
+ * dbxout.c (dbxout_symbol): Use DECL_RTL_SET_P.
+
2001-06-08 Jakub Jelinek <jakub@redhat.com>
* jump.c (mark_modified_reg): Allow jump threading if condition
documentation should be added to invoke.texi. Avoid an overfull
hbox.
->>>>>>> 1.10276
Thu Jun 7 17:09:50 CEST 2001 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Revert previous patch.
* emit-rtl.c (operand_subword): Remove unused variable.
+>>>>>>> 1.10284
Wed Jun 6 14:51:05 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.md (floatdi?f): Avoid usinf of SSE instructions
genrtl_compound_stmt (t)
tree t;
{
+#ifdef ENABLE_CHECKING
+ struct nesting *n = current_nesting_level ();
+#endif
+
expand_stmt (COMPOUND_BODY (t));
+
+#ifdef ENABLE_CHECKING
+ /* Make sure that we've pushed and popped the same number of levels. */
+ if (n != current_nesting_level ())
+ abort ();
+#endif
}
/* Generate the RTL for an ASM_STMT. */
case RESULT_DECL:
/* Named return value, treat like a VAR_DECL. */
case VAR_DECL:
- if (DECL_RTL (decl) == 0)
+ if (! DECL_RTL_SET_P (decl))
return 0;
/* Don't mention a variable that is external.
Let the file that defines it describe it. */
return block_stack && block_stack->data.block.conditional_code;
}
+/* Return an opaque pointer to the current nesting level, so frontend code
+ can check its own sanity. */
+
+struct nesting *
+current_nesting_level ()
+{
+ return cfun ? block_stack : 0;
+}
+
/* Emit a handler label for a nonlocal goto handler.
Also emit code to store the handler label in SLOT before BEFORE_INSN. */
extern int is_body_block PARAMS ((tree));
extern int conditional_context PARAMS ((void));
+extern struct nesting * current_nesting_level PARAMS ((void));
extern tree last_cleanup_this_contour PARAMS ((void));
extern void expand_start_case PARAMS ((int, tree, tree,
const char *));