]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/tree.c
re PR c++/9294 ([new parser] parser enters infinite loop)
authorMark Mitchell <mark@codesourcery.com>
Fri, 17 Jan 2003 20:14:44 +0000 (20:14 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 17 Jan 2003 20:14:44 +0000 (20:14 +0000)
commit5dae1114bb636a814b154c3c47ff6ad149bc81de
tree40087d71f244ec860436c3e670e5323f356750a8
parente607534b43ca5f05409cad81ca1ebc00234851b8
re PR c++/9294 ([new parser] parser enters infinite loop)

PR c++/9294
* cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
* cp-tree.h (BASELINK_BINFO): Adjust.
(BASELINK_FUNCTIONS): Likewise.
(BASELINK_ACCESS_BINFO): Likewise.
(tree_baselink): New structure.
(cp_tree_node_structure_enum): Add TS_CP_BASELINK.
(lang_tree_node): Add baselink.
* decl.c (cp_tree_node_structure): Add BASELINK case.
* search.c (build_baselink): Adjust.
* tree.c (cp_walk_subtrees): Add BASELINK case.  Remove BASELINK_P
test from TREE_LIST case.

PR c++/9272
* parser.c (cp_parser_constructor_declarator_p): Do not assume
that a constructor cannot be declared outside of its own class.

* parser.c (cp_parser_resolve_typename_type): If the scope cannot
be resolved, neither can the qualified name.

* rtti.c (get_pseudo_ti_desc): Fix thinko.

PR c++/9272
* g++.dg/parse/ctor1.C: New test.

PR c++/9294:
* g++.dg/parse/qualified1.C: New test.

* g++.dg/parse/typename3.C: New test.

From-SVN: r61456
12 files changed:
gcc/cp/ChangeLog
gcc/cp/cp-tree.def
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/parser.c
gcc/cp/rtti.c
gcc/cp/search.c
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/ctor1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/qualified1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/typename3.C [new file with mode: 0644]