stmt.c (current_nesting_level): New fn.
authorJason Merrill <jason@gcc.gnu.org>
Fri, 8 Jun 2001 18:12:54 +0000 (14:12 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 8 Jun 2001 18:12:54 +0000 (14:12 -0400)
        * 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

gcc/ChangeLog
gcc/c-semantics.c
gcc/dbxout.c
gcc/stmt.c
gcc/tree.h

index 2bcea06f39a6983cb385b420c204901e38859c84..984633dcb037131d16497fb2d2514b6ef2454ee7 100644 (file)
@@ -1,3 +1,11 @@
+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
@@ -134,7 +142,6 @@ Thu Jun  7 16:17:40 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        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.
@@ -169,6 +176,7 @@ Thu Jun  7 12:12:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
 
        * 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
index 63b4b14fad52e35e0453d54be2c664367295f07d..6a963a9a10e20eda71ed84eb73de18e56e469560 100644 (file)
@@ -666,7 +666,17 @@ void
 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. */
index 6648727f0c1f862775cf1e4da0816aefa7b1c9ff..ee51faecde0cbc3a6a70488a3f5a870602bd6efe 100644 (file)
@@ -1816,7 +1816,7 @@ dbxout_symbol (decl, local)
     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.  */
index c20a99e6ad22f651d4b308cc6688a0830b902d70..3cefc7ce3eed1b05319d5f369bed52e167c9a015 100644 (file)
@@ -3395,6 +3395,15 @@ conditional_context ()
   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.  */
 
index 8f29728849b8c1f98e9cf1719a0913fcdba202b3..7805ef8987b6ad29a6ac6bf35c4a608921145a37 100644 (file)
@@ -2567,6 +2567,7 @@ extern void end_cleanup_deferral          PARAMS ((void));
 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 *));