aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2001-05-03 11:02:26 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2001-05-03 11:02:26 +0000
commit5158d7eeb777a402440950ee9f3a5ce69586e791 (patch)
tree3af1413c9396f239f12eefc0b036c81205755a9c /gcc
parent05de394bf942c4d6d88b0881ebd61386247a3d5d (diff)
downloadgcc-5158d7eeb777a402440950ee9f3a5ce69586e791.zip
gcc-5158d7eeb777a402440950ee9f3a5ce69586e791.tar.gz
gcc-5158d7eeb777a402440950ee9f3a5ce69586e791.tar.bz2
dump.c (cp_dump_tree, [...]): New case.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/cp/dump.c6
-rw-r--r--gcc/cp/tree.c23
4 files changed, 29 insertions, 10 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index cb625ed..e98d1ab 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 9010092..768fd5f 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -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)
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index a4033c3..3f0a118 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -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;
}
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 73f67bb..5de2b5d 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -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;