This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
patches that affect regression PR c++/9820
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org, lerdsuwa at users dot sourceforge dot net, nathan at codesourcery dot com
- Cc: bangerth at ticam dot utexas dot edu
- Date: Tue, 25 Feb 2003 12:47:49 -0800
- Subject: patches that affect regression PR c++/9820
PR c++/9820 reports an ICE after an error message for code that
ought to be legal. Previous releases of GCC reported the error but
didn't ICE. Between 2002-10-30 and 2002-12-24, the mainline and
the 3.3 branch (after its creation) compiled the test case with no
error message, and then the error message came back, along with the
ICE.
The patch that caused the test case to compile successfully is:
2002-10-30 Kriang Lerdsuwanakij <lerdsuwa at users dot sourceforge dot net>
Core issue 287, PR c++/7639
* cp-tree.h (lang_type_class): Add decl_list field.
(CLASSTYPE_DECL_LIST): New macro.
(maybe_add_class_template_decl_list): Add declaration.
* class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
(unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
(maybe_add_class_template_decl_list): New function.
(add_implicitly_declared_members): Use it.
* decl.c (maybe_process_template_type_declaration): Likewise.
(pushtag): Likewise.
* friend.c (add_friend): Likewise.
(make_friend_class): Likewise.
* semantics.c (finish_member_declaration): Likewise.
(begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
* pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
to process members and friends in the order of declaration.
The patch that brought back the error message, plus the ICE, is:
2002-12-24 Nathan Sidwell <nathan at codesourcery dot com>
PR C++/7964
* cp-tree.h (resolve_scoped_fn_name): Prototype.
* call.c (resolve_scoped_fn_name): New function. Deal with
more template expansion. Broken out of ...
* parse.y (parse_finish_call_expr): ... here. Call it.
* decl2.c (build_expr_from_tree, CALL_EXPR): Use
resolve_scoped_fn_name and build_call_from_tree.
My regression hunt used the original test case, not the very short
one that Wolfgang provided yesterday.
This information has been added to GNATS.
Janis