[Bug c++/39208] New: Incorrect mangled name for function as template argument
Given the following code: templateint (p)(int, int) struct X { }; int f(int, int) { } void g(Xf) { } GCC produces the mangled name: _Z1g1XILZ1fiiEE for the function 'g'. However, the correct mangled name is: _Z1g1XIL_Z1fiiEE GCC is missing the '_' prior to the 'Z' in the mangled name of the template argument 'f'. -- Summary: Incorrect mangled name for function as template argument Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dgregor at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39208
[Bug c++/25185] deep typedef substitution in error message
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-11-06 20:19 --- This bug should be really easy to fix, now that GCC has canonical types. Just map each of the template type arguments down to its canonical type before doing the substitution. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185
[Bug c++/37553] [4.3/4.4 Regression] ICE in build_c_cast
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-10-14 15:05 --- Subject: Bug 37553 Author: dgregor Date: Tue Oct 14 15:03:51 2008 New Revision: 14 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=14 Log: 2008-10-14 Douglas Gregor [EMAIL PROTECTED] PR c++/37553 * tree.c (build_type_attribute_qual_variant): Hash on the unqualified type, and don't overwrite an existing (type_hash_eq): Make the TYPE_NAME of the types significant, to allow distinguishing between wchar_t and its underlying type. This also means that we'll retain a little more typedef information. 2008-10-14 Douglas Gregor [EMAIL PROTECTED] PR c++/37553 * g++.dg/ext/alias-canon2.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/alias-canon2.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37553
[Bug c++/37540] [4.4 regression] ICE on __decltype of method call in function template
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-09-24 13:51 --- We need to look at CALL_EXPR_FN's type because the decltype of a call retrieves the return type of the the function called, which may be a REFERENCE_TYPE. The type of the expression will have stripped away that reference. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37540
[Bug c++/36461] [c++0x] Exception throws don't use rvalue reference constructors
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-09-24 20:20 --- GCC is doing the right thing here. In this constructor: Thing2(Thing2 o) : Thing(o) { } the parameter o is treated as an lvalue, because it has a name. Using std::move(o) to treat it as an rvalue. Similarly, there are no automatically generated move constructors or move-assignment operators, so if you leave Thing2() empty, you'll just get the copy constructor and therefore do a copy. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36461
[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-09-05 17:05 --- Subject: Bug 37342 Author: dgregor Date: Fri Sep 5 17:04:12 2008 New Revision: 140037 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140037 Log: 2008-09-05 Douglas Gregor [EMAIL PROTECTED] PR c++/37342 * tree.c (cp_build_qualified_type_real): Deal with sharing of TYPE_LANG_SPECIFIC in the canonical types of pointer-to-method types. 2008-09-05 Douglas Gregor [EMAIL PROTECTED] PR c++/37342 * g++.dg/other/canon-37342.C: New. Added: trunk/gcc/testsuite/g++.dg/other/canon-37342.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37342
[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-09-05 17:06 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37342
[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-09-04 04:35 --- Thanks for the reduced test case. I'm on it. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-09-03 09:04:48 |2008-09-04 04:35:09 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37342
[Bug c++/37342] [4.4 Regression] same canonical type node for different types void (Asm::*)(std::ostream) and void (Asm::* const)(std::ostream)
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-09-04 05:42 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-09/msg00321.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37342
[Bug c++/37208] New: C++0x deleted functions and SFINAE
Deleted functions don't cause SFINAE failures (or any kind of failure), but they should. -- Summary: C++0x deleted functions and SFINAE Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dgregor at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37208
[Bug c++/37208] C++0x deleted functions and SFINAE
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-08-23 04:59 --- Created an attachment (id=16133) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16133action=view) Test case illustrating the problem -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37208
[Bug c++/36460] No space between 's not always handled in C++0x
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-08-06 13:48:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36460
[Bug c++/36460] No space between 's not always handled in C++0x
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-08-06 14:30 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00382.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36460
[Bug c++/36460] No space between 's not always handled in C++0x
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-08-06 19:09 --- Subject: Bug 36460 Author: dgregor Date: Wed Aug 6 19:08:12 2008 New Revision: 138819 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=138819 Log: 2008-08-06 Douglas Gregor [EMAIL PROTECTED] PR c++/36460 * parser.c (cp_parser_template_argument): Don't assume that '' following a type-id is an error when in C++0x mode. 2008-08-06 Douglas Gregor [EMAIL PROTECTED] PR c++/36460 * g++.dg/cpp0x/bracket3.C: Add another test case for the warning under -Wc++0x-compat. * g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/bracket3.C trunk/gcc/testsuite/g++.dg/cpp0x/bracket4.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36460
[Bug c++/36460] No space between 's not always handled in C++0x
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-08-06 19:12 --- Fixed on the trunk. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36460
[Bug c++/36408] [4.3/4.4 regression] ICE with statement expression in template
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-08-01 11:55 --- Thanks Jakub, Dodji for working on this. Some comments: Some nits: - the error message we give in this case is pretty poor. Here we have an empty initializer, but the error message we get back is void value not ignored as it ought to be, which really doesn't tell us much of anything about the problem. The real issue here is that the statement expression has no return value, so we should say as such. This same problem can occur with non-empty statement expressions whose last statement does not produce a value, right? We should test this case, too. - since the statement-expression is obviously empty, can we produce this error message at template definition time, rather than waiting until instantiation time? (If the answer isn't a quick yes, don't worry about it; I'll eventually be going through the initialization bits to check more of them at template definition time anyway.) - is_pack_expansion_node_p is a pretty general name for a function that is specific to initializer lists (in general, a TREE_LIST with a pack expansion in its TREE_VALUE isn't necessarily an expansion node). I suggest calling this initializer_is_pack_expansion_p. - Please put some braces inside the if (init !t) block. Omitting the braces for then and else is okay for small one-liner bodies, but shouldn't be done when there are if-elses nested inside. - parse/empty-statement.C is a strange place to put this check, which deals with template instantiation. Perhaps call it template/empty-init-statement.C? - In the top of the testcase, PR c++/P36408 should be PR c++/36408 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36408
[Bug c++/36408] [4.3/4.4 regression] ICE with statement expression in template
--- Comment #10 from dgregor at gcc dot gnu dot org 2008-08-01 14:05 --- (In reply to comment #9) - the error message we give in this case is pretty poor. Here we have an empty initializer, but the error message we get back is void value not ignored as it ought to be, which really doesn't tell us much of anything about the problem. I agree. Though I think addressing that should be best done in another bug that we can open straight away when we close this one, if you agree. Agreed. - since the statement-expression is obviously empty, can we produce this error message at template definition time, rather than waiting until instantiation time? (If the answer isn't a quick yes, don't worry about it; I'll eventually be going through the initialization bits to check more of them at template definition time anyway.) Yes, that would be handy. Though here again, I think we should be opening another bug to track that. It's probably not worth opening a bug report for this, unless it's some placeholder bug that says, we should diagnose as many errors as template definition time as possible. Such a bug is almost impossible to close :) Your updated patch looks good, but I can't approve it. I suggesting pinging Jason to get approval. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36408
[Bug c++/36628] [c++0x] incorrect decltype() handling of conditional operator
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-07-07 23:28 --- The problem here is that fold() is simplifying the expression before we look at its type. The simplification here turns something that's not a function call (a conditional expression) into a function call, thereby triggering a different branch in the decltype code (which returns the return type of a function being called). -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-07-07 23:28:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36628
[Bug web/35375] A couple of typos in links on Status of Experimental C++0x Support page
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-04-14 13:56 --- The links on the C++0x status web pages have been fixed. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35375
[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-03-27 14:49:45 date|| Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35704
[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-03-27 14:54 --- Subject: Bug 35704 Author: dgregor Date: Thu Mar 27 14:53:57 2008 New Revision: 133643 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133643 Log: 2008-03-27 Douglas Gregor [EMAIL PROTECTED] PR obj-c++/35704 * typeck.c (build_x_compound_expr): Use cp_build_compound_expr. (build_compound_expr): New, for compatibility with C build_compound_expr. (cp_build_compound_expr): Renamed from build_compound_expr. (build_c_cast): New, for compatibility with C build_c_cast. (cp_build_c_cast): Renamed from build_c_cast. * init.c (build_vec_delete_1): Fix calls to build_compound_expr. * decl.c (cxx_maybe_build_cleanup): Ditto. * cp-tree.h (build_compound_expr): Add C-compatibile prototype. (cp_build_compound_expr): Renamed from build_compound_expr. (build_c_cast): Add C-compatible prototype. (cp_build_c_cast): Renamed from build_c_cast. * typeck2.c (build_functional_cast): Use cp_build_c_cast. * parser.c (cp_parser_cast_expression): Fix call to build_c_cast. 2008-03-27 Douglas Gregor [EMAIL PROTECTED] PR obj-c++/35704 * objc-act.c (objc_build_component_ref): Fix call to finish_class_member_access_expr. (objc_generate_cxx_ctor_or_dtor): Fix call to build_special_member_call. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/init.c trunk/gcc/cp/parser.c trunk/gcc/cp/typeck.c trunk/gcc/cp/typeck2.c trunk/gcc/objc/ChangeLog trunk/gcc/objc/objc-act.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35704
[Bug bootstrap/35704] Bootstrap failure on i686-apple-darwin9 at revision 133519 (take 2).
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-03-27 14:54 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35704
[Bug c++/35722] New: [C++0x] Variadic templates expansion into non-variadic class template
The following well-formed example produces the incorrect error: error: cannot expand G ... into a fixed-length argument list templatetypename G = void, typename H = void struct foo {}; templatetypename... G struct bar : fooG... {}; int main() { barint, float f; } -- Summary: [C++0x] Variadic templates expansion into non-variadic class template Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dgregor at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35722
[Bug c++/35722] [C++0x] Variadic templates expansion into non-variadic class template
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-03-27 17:31:52 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35722
[Bug c++/34022] C++0x: rvalue references and std::forward() broken with built-in types
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-03-19 13:12 --- This is core issue 664: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#664 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34022
[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-03-01 16:29 --- Fixed on mainline and 4.3 branch. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35315
[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-29 21:42 --- Subject: Bug 35315 Author: dgregor Date: Fri Feb 29 21:41:38 2008 New Revision: 132779 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132779 Log: 2008-02-29 Douglas Gregor [EMAIL PROTECTED] PR c++/35315 * tree-inline.c (build_duplicate_type): When we make a duplicate type, make it unique in the canonical types system. 2008-02-29 Douglas Gregor [EMAIL PROTECTED] PR c++/35315 * g++.dg/ext/attrib32.C: Add another test case. Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/ext/attrib32.C trunk/gcc/tree-inline.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35315
[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-03-01 05:38 --- Subject: Bug 35315 Author: dgregor Date: Sat Mar 1 05:37:41 2008 New Revision: 132798 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132798 Log: 2008-02-29 Douglas Gregor [EMAIL PROTECTED] PR c++/35315 * tree-inline.c (build_duplicate_type): When we make a duplicate type, make it unique in the canonical types system. 2008-02-29 Douglas Gregor [EMAIL PROTECTED] PR c++/35315 * g++.dg/ext/attrib32.C: New. Added: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/ext/attrib32.C Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/testsuite/ChangeLog branches/gcc-4_3-branch/gcc/tree-inline.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35315
[Bug c++/35315] [4.4 regression] ICE with attribute transparent_union
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-26 07:16 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01272.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35315
[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-02-15 17:33 --- Subject: Bug 35026 Author: dgregor Date: Fri Feb 15 17:33:02 2008 New Revision: 132348 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348 Log: 2008-02-15 Douglas Gregor [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35026
[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-02-15 17:33 --- Subject: Bug 35023 Author: dgregor Date: Fri Feb 15 17:33:02 2008 New Revision: 132348 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348 Log: 2008-02-15 Douglas Gregor [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35023
[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-02-15 17:33 --- Subject: Bug 35024 Author: dgregor Date: Fri Feb 15 17:33:02 2008 New Revision: 132348 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132348 Log: 2008-02-15 Douglas Gregor [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-35023.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35024.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-35026.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35024
[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-15 17:34 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35023
[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-15 17:35 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35024
[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-15 17:35 --- Fixed for 4.3 -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35026
[Bug c++/35153] Taking address of result of calling function returning rvalue reference should not compile.
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-15 19:55 --- After discussing this with Howard Hinnant, we agree that it is a bug. I'll handle it. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-02-15 19:55:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35153
[Bug c++/35147] ICE trying to expand an argument pack with zero arguments
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-14 21:38 --- This code is actually ill-formed. The problem is here: bind(h, forwardArgs...(args...)) For N arguments, the second argument expands to: bind(h, forwardArgs1, Args2, ..., ArgsN(args1, args2, ..., argsN)) However, that's ill-formed because forward() accepts one template argument and one function argument. We should have given a better error message when we try to instantiate it with 0 arguments (instead, we crash). The intent of the example is for the second argument to expand into N different arguments: bind(h, forwardArgs1(args1), forwardArgs2(args2), ..., forwardArgsN(argsN) That can be expressed like so: bind(h, forwardArgs(args)...) With that change, and replacing h (a function) with c (the Callable function object given to this function), this program runs. Here is a simpler test case that produces the same compile-time failure without including any C++0x headers: templatetypename _Tp inline _Tp forward(_Tp __t) { return __t; } void f(...); templatetypename... Args void g(Args... args) { f(forwardArgs...(args...)); } void h() { g(); } -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Keywords||ice-on-invalid-code Last reconfirmed|-00-00 00:00:00 |2008-02-14 21:38:40 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35147
[Bug c++/35022] [4.3 regression] ICE with parameter pack in template constant parameter
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-30 10:09:31 |2008-02-14 21:41:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35022
[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-30 10:05:22 |2008-02-14 21:45:58 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35026
[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-30 10:08:22 |2008-02-14 21:43:43 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35024
[Bug c++/35025] [4.3 regression] ICE with invalid specialization of variadic template
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-30 10:07:52 |2008-02-14 21:44:56 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35025
[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-30 10:09:07 |2008-02-14 21:42:20 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35023
[Bug c++/34050] [4.3 regression] ICE derived classes and variadic templates
--- Comment #11 from dgregor at gcc dot gnu dot org 2008-02-15 03:10 --- Subject: Bug 34050 Author: dgregor Date: Fri Feb 15 03:09:18 2008 New Revision: 132331 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132331 Log: 2008-02-14 Douglas Gregor [EMAIL PROTECTED] PR c++/34050 * pt.c (tsubst_initializer_list): Deal with the use of VOID_TYPE_NODE to indicate value-initialization of the bases. 2008-02-14 Douglas Gregor [EMAIL PROTECTED] PR c++/34050 * g++.dg/cpp0x/vt-34050.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34050.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34050
[Bug c++/34050] [4.3 regression] ICE derived classes and variadic templates
--- Comment #12 from dgregor at gcc dot gnu dot org 2008-02-15 03:10 --- Thanks, Mark! Fixed on mainline. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34050
[Bug c++/35022] [4.3 regression] ICE with parameter pack in template constant parameter
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-15 03:35 --- This test case actually exposes two (!) related issues, one of which is a rejects-valid: templatetypename... T, templateT... class X void foo(X0); and the other, which is an ice-on-valid-code: templatetypename... T, templateT...p class X void foo(X0); The issue for both the original test case and this last test case is that coerce_template_parameter_pack doesn't expect to get a pack expansion back from tsubst_pack_expansion, but of course this happens in nested templates like this template template parameter. Note to myself: the parameter pack SIZEOF_EXPR handling doesn't deal with pack expansions coming back from tsubst_pack_expansion, either. I can probably craft a test case to illustrate this issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35022
[Bug c++/35023] [4.3 regression] ICE with parameter pack in variable declaration
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-15 03:51 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html -- dgregor at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||02/msg00529.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35023
[Bug c++/35024] [4.3 regression] ICE with parameter pack in nested type
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-15 03:51 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html -- dgregor at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||02/msg00529.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35024
[Bug c++/35026] [4.3 regression] ICE with parameter pack in pointer type
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-02-15 03:52 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00529.html We could tweak this ice-on-invalid-code to create some ice-on-valid-code failures. See the e-mail with the patch. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||02/msg00529.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35026
[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-02-11 18:59 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35113
[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-02-11 18:59 --- Subject: Bug 35113 Author: dgregor Date: Mon Feb 11 18:58:16 2008 New Revision: 132242 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132242 Log: 2008-02-11 Douglas Gregor [EMAIL PROTECTED] PR c++/35113 * tree.c (cp_build_qualified_type_real): When building a cv-qualified array type, build it as a unique type with build_cplus_array_type_1 and then adopt the unqualified type's main variant. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35113
[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-02-07 19:06 --- Fixed. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35115
[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-07 19:04 --- Subject: Bug 35115 Author: dgregor Date: Thu Feb 7 19:03:40 2008 New Revision: 132173 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132173 Log: 2008-02-06 Douglas Gregor [EMAIL PROTECTED] * g++.dg/ext/vector13.C: Fix for compilation under -pedantic. 2008-02-07 Andreas Tobler [EMAIL PROTECTED] Douglas Gregor [EMAIL PROTECTED] PR bootstrap/35115 * objcp-decl.c (objcp_comptypes): Call cp_comptypes, not comptypes. Modified: trunk/gcc/objcp/ChangeLog trunk/gcc/objcp/objcp-decl.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35115
[Bug bootstrap/35115] [4.3 Regression] ../../gcc-4.3-work/gcc/objcp/objcp-decl.c:98: error: implicit declaration of function 'comptypes'
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-02-07 18:59 --- This is fallout from my comptypes patch. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||02/msg00195.html Status|NEW |ASSIGNED Last reconfirmed|2008-02-06 23:01:33 |2008-02-07 18:59:57 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35115
[Bug c++/35113] [4.3 Regression] g++.dg/ext/vector13.C doesn't work
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-02-07 18:56 --- This is definitely a canonical-types bug. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||02/msg00230.html Status|NEW |ASSIGNED Last reconfirmed|2008-02-07 15:13:39 |2008-02-07 18:56:38 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35113
[Bug c++/35096] [4.3 regression] ICE with vector attribute
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-02-06 15:18 --- This is the comptypes issue dealt with in PR 35049. I've verified that the fix for that issue handles this test case, too. *** This bug has been marked as a duplicate of 35049 *** -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35096
[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')
--- Comment #9 from dgregor at gcc dot gnu dot org 2008-02-06 15:18 --- *** Bug 35096 has been marked as a duplicate of this bug. *** -- dgregor at gcc dot gnu dot org changed: What|Removed |Added CC||reichelt at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35049
[Bug c++/35096] [4.3 regression] ICE with vector attribute
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-02-06 18:49 --- Subject: Bug 35096 Author: dgregor Date: Wed Feb 6 18:49:03 2008 New Revision: 132152 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132152 Log: 2008-02-06 Douglas Gregor [EMAIL PROTECTED] PR c++/35049 PR c++/35096 * typeck.c (structural_comptypes): Call cp_comptypes. (comptypes): New; called from the C/C++ common bits to perform strict checks. (cp_comptypes): Renamed from comptypes, which is already used, with a different signature, by the C++ front end. (build_reinterpret_cast_1): Call cp_comptypes. (ptr_reasonably_similar): Ditto. * decl.c (decls_match): Ditto. * cvt.c (convert_to_reference): Ditto. * cp-tree.h (same_type_p): Ditto. (same_or_base_type_p): Ditto. (comptypes): Rename to cp_comptypes. * pt.c (canonical_type_parameter): Call cp_comptypes. 2008-02-06 Douglas Gregor [EMAIL PROTECTED] PR c++/35049 PR c++/35096 * g++.dg/ext/vector13.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/vector13.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/cvt.c trunk/gcc/cp/decl.c trunk/gcc/cp/pt.c trunk/gcc/cp/typeck.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35096
[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')
--- Comment #11 from dgregor at gcc dot gnu dot org 2008-02-06 18:49 --- Subject: Bug 35049 Author: dgregor Date: Wed Feb 6 18:49:03 2008 New Revision: 132152 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132152 Log: 2008-02-06 Douglas Gregor [EMAIL PROTECTED] PR c++/35049 PR c++/35096 * typeck.c (structural_comptypes): Call cp_comptypes. (comptypes): New; called from the C/C++ common bits to perform strict checks. (cp_comptypes): Renamed from comptypes, which is already used, with a different signature, by the C++ front end. (build_reinterpret_cast_1): Call cp_comptypes. (ptr_reasonably_similar): Ditto. * decl.c (decls_match): Ditto. * cvt.c (convert_to_reference): Ditto. * cp-tree.h (same_type_p): Ditto. (same_or_base_type_p): Ditto. (comptypes): Rename to cp_comptypes. * pt.c (canonical_type_parameter): Call cp_comptypes. 2008-02-06 Douglas Gregor [EMAIL PROTECTED] PR c++/35049 PR c++/35096 * g++.dg/ext/vector13.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/vector13.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/cvt.c trunk/gcc/cp/decl.c trunk/gcc/cp/pt.c trunk/gcc/cp/typeck.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35049
[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')
--- Comment #12 from dgregor at gcc dot gnu dot org 2008-02-06 18:50 --- Fixed in mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35049
[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-02-05 13:30 --- Subject: Bug 35074 Author: dgregor Date: Tue Feb 5 13:29:43 2008 New Revision: 132120 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132120 Log: 2008-02-05 Douglas Gregor [EMAIL PROTECTED] PR c++/35074 * decl2.c (save_template_attributes): When we're modifying the TYPE_MAIN_VARIANT to add new attributes, be sure to also modify all of the other variants to add those same attributes. Otherwise, the main variant will be inconsistent with those other variants. 2008-02-05 Douglas Gregor [EMAIL PROTECTED] PR c++/35074 * g++.dg/ext/attrib30.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/attrib30.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35074
[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-02-05 13:30 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35074
[Bug c++/33620] [4.3 regression] internal compiler error: canonical types differ for identical types const QListQStringList and const QListQStringList
--- Comment #11 from dgregor at gcc dot gnu dot org 2008-02-05 13:34 --- This latest problem is identical to PR c++/35074, which has now been fixed. The new test case in this bug is passing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33620
[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-02-05 14:35 --- This is a canonical types issue; I'm on it. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-02-01 11:33:25 |2008-02-05 14:35:12 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35049
[Bug c++/35049] [4.3 Regression] g++.dg/conversion/simd3.C:12: error: invalid operands to binary + (have 'float __vector__' and 'int __vector__')
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-02-05 18:06 --- Well, this was a fun one. Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00146.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35049
[Bug c++/35074] [4.3 regression] ICE with attribute aligned for template classes
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-02-04 23:31 --- Looking into this a little bit, the new save_template_attributes is modifying the type node directly (adding new attributes), but that type node can then get out of sync with other type nodes if it was the TYPE_MAIN_VARIANT (as it is for this case). So, we need to do the same thing that decl_attributes does to update all of the other variants with the new attributes. Patch in progress. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added CC||dgregor at gcc dot gnu dot ||org AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-02-04 13:42:26 |2008-02-04 23:31:41 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35074
[Bug c++/34936] ICE with double and attribute may_alias
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-01-31 20:07 --- Subject: Bug 34936 Author: dgregor Date: Thu Jan 31 20:06:33 2008 New Revision: 131984 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131984 Log: 2008-01-31 Douglas Gregor [EMAIL PROTECTED] Jakub Jelinek [EMAIL PROTECTED] PR c++/34935 PR c++/34936 * typeck.c (structural_comptypes): Handle comparisons of VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. * mangle.c (write_builtin_type): Map down to the canonical type, which will be one of the predefined type nodes. 2008-01-31 Douglas Gregor [EMAIL PROTECTED] Jakub Jelinek [EMAIL PROTECTED] PR c++/34935 PR c++/34936 * g++.dg/ext/alias-canon.C: New. * g++.dg/ext/alias-mangle.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/alias-canon.C trunk/gcc/testsuite/g++.dg/ext/alias-mangle.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/mangle.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34936
[Bug c++/34935] [4.3 regression] ICE with attribute may_alias
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-31 20:07 --- Subject: Bug 34935 Author: dgregor Date: Thu Jan 31 20:06:33 2008 New Revision: 131984 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131984 Log: 2008-01-31 Douglas Gregor [EMAIL PROTECTED] Jakub Jelinek [EMAIL PROTECTED] PR c++/34935 PR c++/34936 * typeck.c (structural_comptypes): Handle comparisons of VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes. * mangle.c (write_builtin_type): Map down to the canonical type, which will be one of the predefined type nodes. 2008-01-31 Douglas Gregor [EMAIL PROTECTED] Jakub Jelinek [EMAIL PROTECTED] PR c++/34935 PR c++/34936 * g++.dg/ext/alias-canon.C: New. * g++.dg/ext/alias-mangle.C: New. Added: trunk/gcc/testsuite/g++.dg/ext/alias-canon.C trunk/gcc/testsuite/g++.dg/ext/alias-mangle.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/mangle.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34935
[Bug c++/34935] [4.3 regression] ICE with attribute may_alias
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-01-31 20:07 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34935
[Bug c++/34936] ICE with double and attribute may_alias
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-01-31 20:08 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34936
[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-01-29 14:26 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34919
[Bug c++/34755] [4.3 regression] ICE with invalid argument in variadic template function
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-29 14:26 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34755
[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-29 14:25 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34753
[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-01-29 14:25 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34606
[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #9 from dgregor at gcc dot gnu dot org 2008-01-29 14:24 --- Fixed in mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34055
[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-01-29 14:22 --- Actually, I don't know whether maxT, Params... is valid or not. My inclination is that it is invalid, because when Params is empty, it becomes an invalid specialization maxT. (This happens, for example, if we try to compute maxint, 17::value. However, it's not clear to me whether the wording in the C++0x working draft supports that view or not. We say this about function parameter pack arguments not matching to normal function parameters in partial ordering, but we don't talk about this case at all. I am going to submit an issue to the C++ Core Working Group to get this clarified. Until then, I'm going to suspend this bug: then we'll either close it (if the committee deems this code ill-formed) or re-open it to be fixed in GCC 4.4. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|SUSPENDED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34219
[Bug c++/34753] [4.3 regression] ICE with invalid template parameter in variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34753 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34753
[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34055 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34055
[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34919 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34919
[Bug c++/34755] [4.3 regression] ICE with invalid argument in variadic template function
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34755 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34755
[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34961 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34961
[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-01-29 14:24 --- Fixed on mainline -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34219
[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-29 14:25 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34754
[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions
--- Comment #17 from dgregor at gcc dot gnu dot org 2008-01-29 14:24 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34103
[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34606 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34606
[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions
--- Comment #16 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34103 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34103
[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)
--- Comment #6 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34219 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34219
[Bug c++/34754] [4.3 regression] ICE with invalid function arguments in variadic template
--- Comment #2 from dgregor at gcc dot gnu dot org 2008-01-29 14:01 --- Subject: Bug 34754 Author: dgregor Date: Tue Jan 29 13:59:59 2008 New Revision: 131938 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=131938 Log: 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print qualifiers for an ERROR_MARK_NODE or a NULL_TREE. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * typeck.c (check_return_expr): Tweak call to check_for_bare_parameter_packs. * class.c (add_method): Be careful with error_mark_nodes. * cp-tree.h (check_for_bare_parameter_packs): Remove * from signature. * pt.c (struct find_parameter_pack_data): Remove SET_PACKS_TO_ERROR. (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR. (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR. (make_pack_expansion): Ditto. (check_for_bare_parameter_packs): Parameter is now a tree, not a tree*. (process_template_parm): Tweak call to check_for_bare_parameter_packs. (push_template_decl_real): Tweak calls to check_for_bare_parameter_packs. If bare parameter packs are found in the list of exceptions, clear out that list after giving an error. * semantics.c (finish_cond): Tweak call to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Ditto. (finish_mem_initializers): Ditto. (finish_member_declaration): Ditto. (finish_static_assert): Check for bare parameter packs in the condition. * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the attributes of a declaration. * parser.c (cp_parser_using_declaration): Tweak call to check_for_bare_parameter_packs. (cp_parser_base_clause): Ditto. 2008-01-29 Douglas Gregor [EMAIL PROTECTED] PR c++/34055 PR c++/34103 PR c++/34219 PR c++/34606 PR c++/34753 PR c++/34754 PR c++/34755 PR c++/34919 PR c++/34961 * g++.dg/cpp0x/vt-34219-2.C: New. * g++.dg/cpp0x/pr32126.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34961.C: New. * g++.dg/cpp0x/vt-34055.C: Tweak error messages; add new test cases from the re-opened PR. * g++.dg/cpp0x/vt-34753.C: New. * g++.dg/cpp0x/vt-34919.C: New. * g++.dg/cpp0x/vt-34754.C: New. * g++.dg/cpp0x/vt-34606.C: New. * g++.dg/cpp0x/vt-34219.C: New. * g++.dg/cpp0x/pr32125.C: Tweak expected error messages. * g++.dg/cpp0x/vt-34755.C: New. * g++.dg/cpp0x/pr31438.C: Ditto. * g++.dg/cpp0x/variadic81.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34219.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34606.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34753.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34754.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34755.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34919.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34961.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-pretty-print.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/cpp0x/vt-34055.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34754
[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-29 14:27 --- Fixed on mainline -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34961
[Bug c++/34103] [4.3 regression] ICE with invalid variadic template functions
--- Comment #15 from dgregor at gcc dot gnu dot org 2008-01-28 21:35 --- Thanks everyone; I can reproduce this on i686-pc-linux-gnu. Patch in the works. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |ASSIGNED Last reconfirmed|2008-01-16 13:40:59 |2008-01-28 21:35:20 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34103
[Bug c++/34913] [4.1/4.2 Regression] ICE vector in template
--- Comment #8 from dgregor at gcc dot gnu dot org 2008-01-28 21:52 --- This is fixed on the trunk. Marking it as such... -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34913
[Bug c++/34055] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #7 from dgregor at gcc dot gnu dot org 2008-01-28 22:05 --- Darn! Mine again. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|REOPENED|ASSIGNED Last reconfirmed|2007-12-20 21:02:29 |2008-01-28 22:05:37 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34055
[Bug c++/34961] [4.3 Regression] ICE with invalid use of parameter pack in attribute
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-25 09:53:35 |2008-01-28 21:40:03 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34961
[Bug c++/34919] [4.3 Regression] ICE with invalid use of parameter pack
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-28 21:58 --- Yep, we should be diagnosing but this error but we aren't. I'm on it. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-22 10:56:51 |2008-01-28 21:58:41 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34919
[Bug c++/34892] [4.3 regression] ICE with ellipsis in default template argument
--- Comment #1 from dgregor at gcc dot gnu dot org 2008-01-28 21:59 --- Confirmed. This is mine. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-21 10:10:51 |2008-01-28 21:59:57 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34892
[Bug c++/34606] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-28 22:08 --- This one's mine. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-16 21:50:58 |2008-01-28 22:08:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34606
[Bug c++/34219] gcc doesn't accept const members of variadic templates as const (regression)
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-28 23:40 --- There are some problems with the example code. For example, the expression maxT, Params does not expand the parameter pack Params. The compiler should have warned you about this, both in this case and in the static_assert case. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Keywords|rejects-valid |error-recovery, ice-on- ||invalid-code Summary|gcc doesn't accept const|gcc doesn't accept const |members of variadic |members of variadic |templates as const |templates as const ||(regression) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34219
[Bug c++/34935] [4.3 regression] ICE with attribute may_alias
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-25 21:15 --- It turns out that the canonical types system is doing the right thing, and that the older type-comparison mechanisms are getting the wrong answer. This is still my bug, and it is a regression. Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01161.html -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-23 10:46:20 |2008-01-25 21:15:54 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34935
[Bug c++/34936] ICE with double and attribute may_alias
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-25 21:16 --- I don't know if this is a regression or not, but it's roughly the same issue as PR 34395 and is fixed by the same patch: http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01161.html -- dgregor at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dgregor at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-01-23 10:50:51 |2008-01-25 21:16:52 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34936
[Bug libstdc++/34480] Argument packs treat __null oddly
--- Comment #5 from dgregor at gcc dot gnu dot org 2008-01-18 16:33 --- Suspended for now. We'll pick up the library work again once the C++ committee has resolved this issue. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |SUSPENDED Component|c++ |libstdc++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34480
[Bug c++/34480] Argument packs treat __null oddly
--- Comment #4 from dgregor at gcc dot gnu dot org 2008-01-18 16:32 --- Confirmed. This is the right behavior according to the C++0x specification, but the backward-compatibility issue with push_back is a problem. The C++ committee is aware is the issue. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-01-18 16:32:16 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34480