]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/pt.c
re PR c++/35023 (ICE with parameter pack in variable declaration)
authorDouglas Gregor <doug.gregor@gmail.com>
Fri, 15 Feb 2008 17:33:02 +0000 (17:33 +0000)
committerDoug Gregor <dgregor@gcc.gnu.org>
Fri, 15 Feb 2008 17:33:02 +0000 (17:33 +0000)
commit92fab505d29cc38f12ad0369648ef7d0a54a3aef
tree4be6e73c708aaa2c7d6a020cbfcf01b14cf713f1
parente8900287b29f4a9093299f76ab8838f79ea151c6
re PR c++/35023 (ICE with parameter pack in variable declaration)

2008-02-15  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/35023
PR c++/35024
PR c++/35026
* pt.c (finish_member_template_decl): If the type in a TYPE_DECL
is error_mark_node, return an error early.
(find_parameter_packs_r): Pass the pointer set along to recursive
calls of cp_walk_subtrees; don't try to manage the pointer set
ourselves.
(uses_parameter_packs): Pass the pointer set to cp_walk_tree.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Ditto. Also, don't bother taking
a second pass through the tree with find_parameter_packs_r; that
second pass no longer does anything.
(push_template_decl_real): If we have an erroneous declaration,
set its type to error_mark_node before returning an error.

2008-02-15  Douglas Gregor  <doug.gregor@gmail.com>

PR c++/35023
PR c++/35024
PR c++/35026
* g++.dg/cpp0x/vt-35026.C: New.
* g++.dg/cpp0x/vt-35023.C: New.
* g++.dg/cpp0x/vt-34055.C: Tweak expected error messages.
* g++.dg/cpp0x/vt-35024.C: New.

From-SVN: r132348
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/vt-34055.C
gcc/testsuite/g++.dg/cpp0x/vt-35023.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/vt-35024.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/vt-35026.C [new file with mode: 0644]