re PR c++/9798 (Infinite recursion (segfault) in cp/decl.c:push_using_directive with recusive using directives)

PR c++/9798
        * decl.c (push_using_directive): Push before recursing.

From-SVN: r64135
This commit is contained in:
Jason Merrill 2003-03-10 17:11:08 -05:00 committed by Jason Merrill
parent d06488d83d
commit 1122c73cfa
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2003-03-10 Jason Merrill <jason@redhat.com>
PR c++/9798
* decl.c (push_using_directive): Push before recursing.
2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/9602

View File

@ -4539,14 +4539,15 @@ push_using_directive (used)
if (purpose_member (used, ud) != NULL_TREE)
return NULL_TREE;
/* Recursively add all namespaces used. */
for (iter = DECL_NAMESPACE_USING (used); iter; iter = TREE_CHAIN (iter))
push_using_directive (TREE_PURPOSE (iter));
ancestor = namespace_ancestor (current_decl_namespace (), used);
ud = current_binding_level->using_directives;
ud = tree_cons (used, ancestor, ud);
current_binding_level->using_directives = ud;
/* Recursively add all namespaces used. */
for (iter = DECL_NAMESPACE_USING (used); iter; iter = TREE_CHAIN (iter))
push_using_directive (TREE_PURPOSE (iter));
return ud;
}