This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/30818] [4.1/4.2/4.3 Regression] templates and typedefs cause function prototype not to match
- From: "nathan at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Jul 2007 16:26:05 -0000
- Subject: [Bug c++/30818] [4.1/4.2/4.3 Regression] templates and typedefs cause function prototype not to match
- References: <bug-30818-5268@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from nathan at gcc dot gnu dot org 2007-07-22 16:26 -------
Subject: Bug 30818
Author: nathan
Date: Sun Jul 22 16:25:54 2007
New Revision: 126825
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126825
Log:
cp/
PR c++/30818
* typeck.c (structural_comptypes): No need to check
resolve_typename_type return value here.
* cp-tree.h (TYPENAME_IS_RESOLVING_P): New.
* pt.c (resolve_typename_type): Follow typename typedefs. Return
original type rather than error_mark_node in case of failure.
* parser.c (cp_parser_nested_name_specifier_opt): Adjust
resolve_typename_type result check.
(cp_parser_direct_declarator, cp_parser_head,
cp_parser_constructor_declarator_p): Likewise.
testsuite/
PR c++/30818
* g++.dg/template/crash47.C: Adjust errors.
* g++.dg/template/crash48.C: Adjust errors.
* g++.dg/template/typename12.C: New.
* g++.dg/template/typename13.C: New.
* g++.dg/template/typename14.C: New.
* g++.dg/template/typedef6.C: Adjust errors.
Added:
trunk/gcc/testsuite/g++.dg/template/typename12.C
trunk/gcc/testsuite/g++.dg/template/typename13.C
trunk/gcc/testsuite/g++.dg/template/typename14.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/template/crash47.C
trunk/gcc/testsuite/g++.dg/template/crash48.C
trunk/gcc/testsuite/g++.dg/template/typedef6.C
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30818