]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/semantics.c
re PR c++/22464 (ICE on classes in template functions which attempt closure)
authorMark Mitchell <mark@codesourcery.com>
Thu, 13 Oct 2005 08:38:40 +0000 (08:38 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Thu, 13 Oct 2005 08:38:40 +0000 (08:38 +0000)
commit8ca4bf259c9e43016064c46ed853191c2ed4abd2
tree47e3bf1306fadcd49657cf8f43c314aa5076aa1f
parentf05c19d12690c180c75cea2f10cdfc853da8060c
re PR c++/22464 (ICE on classes in template functions which attempt closure)

PR c++/22464
* semantics.c (finish_id_expression): Issue errors about uses of
local variables in containing functions even in templates.
PR c++/22180
* call.c (build_new_method_call): Correct pretty-printing of
destructor names.
* pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
identifier.
PR c++/23694
* decl.c (start_method): Return error_mark_node for errors.
PR c++/23307
* pt.c (push_template_decl_real): Complain about attempts to
declare template variables.
PR c++/22352
* pt.c (tsubst_template_parms): Set processing_template_decl while
processing the parameters.
(tsubst_decl): Set processing_template_decl when substituting into
a TEMPLATE_DECL.
PR c++/22405
* pt.c (most_specialized_instantiation): Robustify.
PR c++/22464
* g++.dg/template/crash/41.C: New test.
PR c++/22180
* g++.dg/template/crash40.C: New test.
PR c++/23694
* g++.dg/parse/friend5.C: New test.

PR c++/23307
* g++.dg/template/crash38.C: New test.

PR c++/22352
* g++.dg/template/friend38.C: New test.

PR c++/22405
* g++.dg/template/crash39.C: New test.

From-SVN: r105365
12 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/decl.c
gcc/cp/pt.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/friend5.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash38.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash39.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash40.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash41.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/friend38.C [new file with mode: 0644]