PR c++/25635
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Jan 2006 08:41:21 +0000 (08:41 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Jan 2006 08:41:21 +0000 (08:41 +0000)
commit7be1bc1f6b2c144e41bc9e0323636b8462c8ff88
tree9713a84588cc7b909eb491c5c4a8940742cf7efa
parent996daf00e6d6533aa713cbbde1e6ffd147bf1749
PR c++/25635
* class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
conversion operator.
* decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
PR c++/25638
* class.c (add_method): Never associate more than one destructor
with a single class.
PR c++/25637
* cp-tree.h (do_friend): Adjust prototype.
* decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
(grokdeclarator): Likewise.  Refine check for invalid
declarations/definitions of member functions outside of their own
class.
* friend.c (do_friend): Make funcdef_flag a bool, not an int.
PR c++/25633
* parser.c (cp_parser_mem_initializer_list): Check result of
cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
(cp_parser_mem_initializer): Return error_mark_node for failure.
PR c++/25634
* parser.c (cp_parser_template_parameter_list): Call
begin_template_parm_list and end_template_parm_list here.
(cp_parser_type_parameter): Not here.
(cp_parser_template_declaration_after_export): Or here.
(cp_parser_elaborated_type_specifier): Call
cp_parser_check_template_parameters.
* tree.c (build_target_expr_with_type): Use force_target_expr.
PR c++/25635
* g++.dg/parse/operator6.C: New test.
PR c++/25637
* g++.dg/parse/error29.C: New test.
PR c++/25638
* g++.dg/parse/dtor6.C: New test.
PR c++/25633
* g++.dg/parse/ctor3.C: New test.
PR c++/25634
* g++.dg/template/class3.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109270 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/friend.c
gcc/cp/parser.c
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/ctor3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/dtor6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/error29.C [new file with mode: 0644]
gcc/testsuite/g++.dg/parse/operator6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/class3.C [new file with mode: 0644]