dump.c (cp_dump_tree, [...]): New case.
authorNathan Sidwell <nathan@codesourcery.com>
Thu, 3 May 2001 11:02:26 +0000 (11:02 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 3 May 2001 11:02:26 +0000 (11:02 +0000)
* dump.c (cp_dump_tree, USING_STMT case): New case.
* tree.c (cp_statement_code_p): Add USING_STMT.
* decl2.c (do_using_directive): Add the using directive statement.

* tree.c (walk_tree): Reformat an if block.

From-SVN: r41783

gcc/cp/ChangeLog
gcc/cp/decl2.c
gcc/cp/dump.c
gcc/cp/tree.c

index cb625edc3cf83f903dfb191ce1b50b8844d4bb68..e98d1abc98e9efadcdacf61643ad6f2efe111c5c 100644 (file)
@@ -1,3 +1,11 @@
+2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * dump.c (cp_dump_tree, USING_STMT case): New case.
+       * tree.c (cp_statement_code_p): Add USING_STMT.
+       * decl2.c (do_using_directive): Add the using directive statement.
+
+       * tree.c (walk_tree): Reformat an if block.
+
 2001-05-02  Mark Mitchell  <mark@codesourcery.com>
 
        * decl.c (compute_array_index_type): Don't try to do anything with
index 9010092e6ed32c3f1e17fb91311a9c2c0dc8cef8..768fd5ffd8faba18c6de460b8b970151e27a7a63 100644 (file)
@@ -5204,6 +5204,8 @@ do_using_directive (namespace)
 {
   if (namespace == fake_std_node)
     return;
+  if (building_stmt_tree ())
+    add_stmt (build_stmt (USING_STMT, namespace));
   
   /* using namespace A::B::C; */
   if (TREE_CODE (namespace) == SCOPE_REF)
index a4033c3db530d00a204244c579ae5608ebbd4632..3f0a11803c378c0b71f30bc085c5f363c7d6dbb3 100644 (file)
@@ -252,6 +252,12 @@ cp_dump_tree (di, t)
       dump_next_stmt (di, t);
       break;
 
+    case USING_STMT:
+      dump_stmt (di, t);
+      dump_child ("nmsp", USING_STMT_NAMESPACE (t));
+      dump_next_stmt (di, t);
+      break;
+      
     default:
       break;
     }
index 73f67bb86b44461ea463aa691120b26ce4b7bda9..5de2b5d10e81a209948428de809f7eeccf28666c 100644 (file)
@@ -1038,6 +1038,7 @@ cp_statement_code_p (code)
     case TRY_BLOCK:
     case HANDLER:
     case EH_SPEC_BLOCK:
+    case USING_STMT:
       return 1;
 
     default:
@@ -1188,16 +1189,18 @@ walk_tree (tp, func, data, htab)
   if (!*tp)
     return NULL_TREE;
 
-  if (htab) {
-    void **slot;
-    /* Don't walk the same tree twice, if the user has requested that we
-       avoid doing so. */
-    if (htab_find (htab, *tp))
-      return NULL_TREE;
-    /* If we haven't already seen this node, add it to the table. */
-    slot = htab_find_slot (htab, *tp, INSERT);
-    *slot = *tp;
-  }
+  if (htab)
+    {
+      void **slot;
+      
+      /* Don't walk the same tree twice, if the user has requested
+         that we avoid doing so. */
+      if (htab_find (htab, *tp))
+       return NULL_TREE;
+      /* If we haven't already seen this node, add it to the table. */
+      slot = htab_find_slot (htab, *tp, INSERT);
+      *slot = *tp;
+    }
 
   /* Call the function.  */
   walk_subtrees = 1;