[Bug c++/20599] variadic template support
--- Comment #12 from dgregor at gcc dot gnu dot org 2007-03-10 01:59 --- Subject: Bug 20599 Author: dgregor Date: Sat Mar 10 01:58:58 2007 New Revision: 122788 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122788 Log: 2007-03-09 Douglas Gregor <[EMAIL PROTECTED]> PR c++/20599 * typeck.c (check_return_expr): Check for bare parameter packs. (comptypes): Compare template parameter packs and type pack expansions. * decl.c (grokdeclarator): Deal with the declaration of function parameter packs. (grokparms): Verify that the (optional) function parameter pack is at the end of the parameter list. (xref_basetypes): Handle pack expansions in the base class. (cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT. * cp-tree.def (TYPE_ARGUMENT_PACK): New. (NONTYPE_ARGUMENT_PACK): New. (TYPE_PACK_EXPANSION): New. (EXPR_PACK_EXPANSION): New. (ARGUMENT_PACK_SELECT): New. * cp-objcp-common.c (cp_tree_size): Compute size of (NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and ARGUMENT_PACK_SELECT. * error.c (dump_template_argument): Print template argument packs. (dump_template_argument_list): Ditto. (dump_template_parameter): Dump `...' for template type parameter packs. (dump_type): Dump TYPE_PACK_EXPANSION nodes. (dump_parameters): Print function parameter packs. (dump_template_parms): Print template argument packs. (dump_expr): Dump EXPR_PACK_EXPANSION nodes. (maybe_warn_variadic_templates): New. * operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION. * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK, NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION, CAST_EXPR. * mangle.c (write_type): Mangle TYPE_PACK_EXPANSION. (write_template_arg): Write argument packs as separate arguments. * cp-tree.h (struct template_parm_index_s): Add flag that indicates that the template parameter is actually a parameter pack. (struct tree_argument_pack_select): New. (enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT. (union lang_tree_node): Add argument_pack_select. (FUNCTION_PARAMETER_PACK_P): New. (PACK_EXPANSION_P): New. (PACK_EXPANSION_PATTERN): New. (SET_PACK_EXPANSION_PATTERN): New. (PACK_EXPANSION_PARAMETER_PACKS): New. (ARGUMENT_PACK_P): New. (ARGUMENT_PACK_ARGS): New. (SET_ARGUMENT_PACK_ARGS): New. (ARGUMENT_PACK_INCOMPLETE_P): New. (ARGUMENT_PACK_EXPLICIT_ARGS): New. (TEMPLATE_PARM_PARAMETER_PACK): New. (TEMPLATE_TYPE_PARAMETER_PACK): New. (ARGUMENT_PACK_SELECT_FROM_PACK): New. (ARGUMENT_PACK_SELECT_INDEX): New. (ARGUMENT_PACK_SELECT_ARG): New. (struct cp_declarator): Add parameter_pack_p flag. (maybe_warn_variadic_templates): Declare. (process_template_parm): Add bool parameter IS_PARAMETER_PACK, to indicate a template parameter pack. (uses_parameter_packs): Declare. (template_parameter_pack_p): Declare. (template_parms_variadic_p): Declare. (make_pack_expansion): Declare. (check_for_bare_parameter_packs): Declare. * cxx-pretty-print.c (pp_cxx_unary_expression): Print sizeof... expressions. (pp_cxx_expression): Print pack expansions and non-type argument packs. (pp_cxx_exception_specification): Print pack expansions. (pp_cxx_direct_declarator): Print ellipsis for parameter packs. (pp_cxx_ctor_initializer): Print pack expansions. (pp_cxx_type_id): Print pack expansions. (pp_cxx_template_argument_list): Print argument packs. (pp_cxx_template_parameter): Print ellipsis for template parameter packs. * pt.c (comp_template_parms): Compare template parameter packs. (template_parameter_pack_p): New. (template_parms_variadic_p): New. (template_args_variadic_p): New. (make_ith_pack_parameter_name): New. (struct find_parameter_pack_data): New. (find_parameter_packs_r): New. (uses_parameter_packs): New. (make_pack_expansion): New. (check_for_bare_parameter_packs): New. (expand_template_argument_pack): New. (reduce_template_parm_level): Propagate parameter pack flag. (process_template_parm): Add is_parameter_pack parameter to state when the parameter is actually a parameter pack. Create template parameter packs when is_parameter_pack is true. (current_template_args): The argument for a template parameter pack is an argument pack containing a single pack expansion. (process_partial_specialization): When checking that non-ty
[Bug c++/20599] variadic template support
--- Comment #13 from dgregor at gcc dot gnu dot org 2007-03-10 02:02 --- Subject: Bug 20599 Author: dgregor Date: Sat Mar 10 02:01:49 2007 New Revision: 122789 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122789 Log: 2007-03-09 Douglas Gregor <[EMAIL PROTECTED]> PR c++/20599 * g++.dg/cpp0x/variadic-bind.C: New. * g++.dg/cpp0x/variadic-function.C: New. * g++.dg/cpp0x/variadic-mem_fn.C: New. * g++.dg/cpp0x/variadic-tuple.C: New. * g++.dg/cpp0x/variadic1.C: New. * g++.dg/cpp0x/variadic2.C: New. * g++.dg/cpp0x/variadic3.C: New. * g++.dg/cpp0x/variadic4.C: New. * g++.dg/cpp0x/variadic5.C: New. * g++.dg/cpp0x/variadic6.C: New. * g++.dg/cpp0x/variadic7.C: New. * g++.dg/cpp0x/variadic8.C: New. * g++.dg/cpp0x/variadic9.C: New. * g++.dg/cpp0x/variadic10.C: New. * g++.dg/cpp0x/variadic11.C: New. * g++.dg/cpp0x/variadic12.C: New. * g++.dg/cpp0x/variadic13.C: New. * g++.dg/cpp0x/variadic14.C: New. * g++.dg/cpp0x/variadic15.C: New. * g++.dg/cpp0x/variadic16.C: New. * g++.dg/cpp0x/variadic17.C: New. * g++.dg/cpp0x/variadic18.C: New. * g++.dg/cpp0x/variadic19.C: New. * g++.dg/cpp0x/variadic20.C: New. * g++.dg/cpp0x/variadic21.C: New. * g++.dg/cpp0x/variadic22.C: New. * g++.dg/cpp0x/variadic23.C: New. * g++.dg/cpp0x/variadic24.C: New. * g++.dg/cpp0x/variadic25.C: New. * g++.dg/cpp0x/variadic26.C: New. * g++.dg/cpp0x/variadic27.C: New. * g++.dg/cpp0x/variadic28.C: New. * g++.dg/cpp0x/variadic29.C: New. * g++.dg/cpp0x/variadic30.C: New. * g++.dg/cpp0x/variadic31.C: New. * g++.dg/cpp0x/variadic32.C: New. * g++.dg/cpp0x/variadic33.C: New. * g++.dg/cpp0x/variadic34.C: New. * g++.dg/cpp0x/variadic35.C: New. * g++.dg/cpp0x/variadic36.C: New. * g++.dg/cpp0x/variadic37.C: New. * g++.dg/cpp0x/variadic38.C: New. * g++.dg/cpp0x/variadic39.C: New. * g++.dg/cpp0x/variadic40.C: New. * g++.dg/cpp0x/variadic41.C: New. * g++.dg/cpp0x/variadic42.C: New. * g++.dg/cpp0x/variadic43.C: New. * g++.dg/cpp0x/variadic44.C: New. * g++.dg/cpp0x/variadic45.C: New. * g++.dg/cpp0x/variadic46.C: New. * g++.dg/cpp0x/variadic47.C: New. * g++.dg/cpp0x/variadic48.C: New. * g++.dg/cpp0x/variadic49.C: New. * g++.dg/cpp0x/variadic50.C: New. * g++.dg/cpp0x/variadic51.C: New. * g++.dg/cpp0x/variadic52.C: New. * g++.dg/cpp0x/variadic53.C: New. * g++.dg/cpp0x/variadic54.C: New. * g++.dg/cpp0x/variadic55.C: New. * g++.dg/cpp0x/variadic56.C: New. * g++.dg/cpp0x/variadic57.C: New. * g++.dg/cpp0x/variadic58.C: New. * g++.dg/cpp0x/variadic59.C: New. * g++.dg/cpp0x/variadic60.C : New. * g++.dg/cpp0x/variadic61.C : New. * g++.dg/cpp0x/variadic62.C : New. * g++.dg/cpp0x/variadic63.C : New. * g++.dg/cpp0x/variadic64.C : New. * g++.dg/cpp0x/variadic65.C : New. * g++.dg/cpp0x/variadic66.C : New. * g++.dg/cpp0x/variadic67.C : New. * g++.dg/cpp0x/variadic68.C : New. * g++.dg/cpp0x/variadic69.C : New. * g++.dg/cpp0x/variadic70.C : New. * g++.dg/cpp0x/variadic71.C : New. * g++.dg/cpp0x/variadic72.C : New. * g++.dg/cpp0x/variadic73.C : New. * g++.dg/cpp0x/variadic74.C : New. * g++.dg/cpp0x/variadic75.C : New. * g++.dg/cpp0x/variadic-ex1.C : New. * g++.dg/cpp0x/variadic-ex2.C : New. * g++.dg/cpp0x/variadic-ex3.C : New. * g++.dg/cpp0x/variadic-ex4.C : New. * g++.dg/cpp0x/variadic-ex5.C : New. * g++.dg/cpp0x/variadic-ex6.C : New. * g++.dg/cpp0x/variadic-ex7.C : New. * g++.dg/cpp0x/variadic-ex8.C : New. * g++.dg/cpp0x/variadic-ex9.C : New. * g++.dg/cpp0x/variadic-ex10.C : New. * g++.dg/cpp0x/variadic-ex11.C : New. * g++.dg/cpp0x/variadic-ex12.C : New. * g++.dg/cpp0x/variadic-ex13.C : New. * g++.dg/cpp0x/variadic-ex14.C : New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic-bind.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex11.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex12.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex5.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex6.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C
[Bug c++/29993] typdef declaration of cv-qualified function in class
--- Comment #5 from dgregor at gcc dot gnu dot org 2007-03-28 13:31 --- Subject: Bug 29993 Author: dgregor Date: Wed Mar 28 13:31:37 2007 New Revision: 123294 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123294 Log: 2007-03-28 Douglas Gregor <[EMAIL PROTECTED]> PR c++/29993 * decl.c (grokdeclarator): Deal with cv-qualified function type typedefs in the same way for member and non-member functions. 2007-03-28 Douglas Gregor <[EMAIL PROTECTED]> PR c++/29993 * g++.dg/other/cv_func2.C: New. Added: trunk/gcc/testsuite/g++.dg/other/cv_func2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29993
[Bug c++/29993] typdef declaration of cv-qualified function in class
--- Comment #6 from dgregor at gcc dot gnu dot org 2007-03-28 15:28 --- Committed fix to mainline. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29993
[Bug c++/20599] variadic template support
--- Comment #16 from dgregor at gcc dot gnu dot org 2007-03-28 15:30 --- This functionality is part of the experimental C++0x mode, and is under control of the -std=gnu++0x flag in the mainline (4.3.0) compiler. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|SUSPENDED |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20599
[Bug middle-end/30666] [4.3 Regression] warning: canonical types differ for identical types double __complex__ and double __complex__
-- 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|2007-03-02 15:37:59 |2007-03-28 15:30:33 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30666
[Bug c++/31138] [4.3 regression] ICE with ellipsis
-- 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 |2007-03-28 15:31:26 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31138
[Bug c++/31140] [4.3 regression] ICE with ellipsis in template parameter list
-- 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 |2007-03-28 15:31:44 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31140
[Bug c++/31141] [4.3 regression] ICE with ellipsis in template parameter list
-- 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 |2007-03-28 15:31:54 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31141
[Bug objc++/31134] [4.3 Regression] Objective-C++ has ran into the tree number limit
--- Comment #9 from dgregor at gcc dot gnu dot org 2007-03-28 19:46 --- This problem has been solved by 16-bit tree codes: http://gcc.gnu.org/ml/gcc-patches/2007-03/msg01721.html -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31134
[Bug middle-end/30666] [4.3 Regression] warning: canonical types differ for identical types double __complex__ and double __complex__
--- Comment #11 from dgregor at gcc dot gnu dot org 2007-03-29 15:11 --- Subject: Bug 30666 Author: dgregor Date: Thu Mar 29 15:11:28 2007 New Revision: 123330 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123330 Log: 2007-03-29 Douglas Gregor <[EMAIL PROTECTED]> PR tree-optimization/30666 * tree.c (build_complex_type): When creating type names for DWARF2 debug info, create TYPE_DECLs for TYPE_NAME instead of IDENTIFIER_NODEs. (build_common_tree_nodes_2): Use build_complex_type when building predefined complex types, to preserve canonical types. Modified: trunk/gcc/ChangeLog trunk/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30666
[Bug middle-end/30666] [4.3 Regression] warning: canonical types differ for identical types double __complex__ and double __complex__
--- Comment #12 from dgregor at gcc dot gnu dot org 2007-03-29 15:14 --- Fix committed to 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=30666
[Bug c++/31141] [4.3 regression] ICE with ellipsis in template parameter list
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-03-31 13:41 --- Subject: Bug 31141 Author: dgregor Date: Sat Mar 31 13:41:30 2007 New Revision: 123380 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123380 Log: 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31138 PR c++/31140 PR c++/31141 * parser.c (declarator_can_be_parameter_pack): New. (cp_parser_template_parameter): Only parse the `...' if the declarator can be a parameter pack. (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE is NULL. * pt.c (find_parameter_packs_r): Look into the bounds on integer types (they could be used as array bounds). (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX. (tsubst_pack_expansion): Handle failure to expand parameter packs. 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> * g++.dg/parser/pr31138.C: New. * g++.dg/parser/pr31140.C: New. * g++.dg/parser/pr31141.C: New. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31141
[Bug c++/31140] [4.3 regression] ICE with ellipsis in template parameter list
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-03-31 13:41 --- Subject: Bug 31140 Author: dgregor Date: Sat Mar 31 13:41:30 2007 New Revision: 123380 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123380 Log: 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31138 PR c++/31140 PR c++/31141 * parser.c (declarator_can_be_parameter_pack): New. (cp_parser_template_parameter): Only parse the `...' if the declarator can be a parameter pack. (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE is NULL. * pt.c (find_parameter_packs_r): Look into the bounds on integer types (they could be used as array bounds). (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX. (tsubst_pack_expansion): Handle failure to expand parameter packs. 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> * g++.dg/parser/pr31138.C: New. * g++.dg/parser/pr31140.C: New. * g++.dg/parser/pr31141.C: New. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31140
[Bug c++/31138] [4.3 regression] ICE with ellipsis
--- Comment #6 from dgregor at gcc dot gnu dot org 2007-03-31 13:41 --- Subject: Bug 31138 Author: dgregor Date: Sat Mar 31 13:41:30 2007 New Revision: 123380 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123380 Log: 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31138 PR c++/31140 PR c++/31141 * parser.c (declarator_can_be_parameter_pack): New. (cp_parser_template_parameter): Only parse the `...' if the declarator can be a parameter pack. (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE is NULL. * pt.c (find_parameter_packs_r): Look into the bounds on integer types (they could be used as array bounds). (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX. (tsubst_pack_expansion): Handle failure to expand parameter packs. 2007-03-31 Douglas Gregor <[EMAIL PROTECTED]> * g++.dg/parser/pr31138.C: New. * g++.dg/parser/pr31140.C: New. * g++.dg/parser/pr31141.C: New. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31138
[Bug c++/31138] [4.3 regression] ICE with ellipsis
--- Comment #7 from dgregor at gcc dot gnu dot org 2007-03-31 13:43 --- Fixed in mainline compiler -- 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=31138
[Bug c++/31140] [4.3 regression] ICE with ellipsis in template parameter list
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-03-31 13:44 --- Fixed in mainline compiler -- 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=31140
[Bug c++/31141] [4.3 regression] ICE with ellipsis in template parameter list
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-03-31 13:44 --- Fixed in mainline compiler -- 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=31141
[Bug libstdc++/31426] New: TR1 includes do not work with -std=c++0x
When the compiler is provided with -std=c++0x to enable the experimental C++0x mode, includes of TR1 facilities (e.g., tr1/tuple) do not put TR1 functionality into namespace std::tr1, breaking backward compatibility. Here's an example program that compiles without -std=c++0x but does not compile with it: #include int main() { std::tr1::tuple x(17, 3.14); return 0; } -- Summary: TR1 includes do not work with -std=c++0x Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ 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=31426
[Bug libstdc++/31426] TR1 includes do not work with -std=c++0x
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-04-02 16:32 --- I don't think it is a feature. In C++0x mode, if one includes , one should get std::tuple. That's what the C++0x working paper says. In any mode, if one includes , one should get std::tr1::tuple. That's what TR1 says (well, TR1 might say that you get std::tr1::tuple from including ; different vendors have done different things, here). I don't think support for C++0x precludes support for TR1. They coexist very well, especially because TR1 was designed to be compatible with C++0x. For example, C++0x-conforming implementations of the TR1 facilities also meet the requirements of TR1. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31426
[Bug c++/31078] [4.3 Regression] warning: same canonical type node for different types with const strings
-- 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|2007-03-08 13:10:49 |2007-04-05 04:43:14 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31078
[Bug c++/31103] [4.3 Regression] same canonical type node for VLAs
-- dgregor at gcc dot gnu dot org changed: What|Removed |Added CC|doug dot gregor at gmail dot| |com | 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 |2007-04-05 04:40:40 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31103
[Bug c++/31505] [4.3 Regression] Canonical types failures
--- Comment #6 from dgregor at gcc dot gnu dot org 2007-04-09 10:39 --- This is clearly my bug, but I am not able to reproduce it on i686-pc-linux-gnu. Does the following patch fix the problem? http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00188.html If not, which platform are you seeing the problem on? -- 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|2007-04-08 05:55:43 |2007-04-09 10:39:33 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31505
[Bug c++/31505] [4.3 Regression] Canonical types failures
--- Comment #9 from dgregor at gcc dot gnu dot org 2007-04-09 15:09 --- I can't reproduce this bug with r123671 on i686-pc-linux-gnu. However, since the above patch does fix the problem, I'll add this PR to the ChangeLog for that patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31505
[Bug c++/31078] [4.3 Regression] warning: same canonical type node for different types with const strings
--- Comment #13 from dgregor at gcc dot gnu dot org 2007-04-12 12:48 --- Subject: Bug 31078 Author: dgregor Date: Thu Apr 12 12:47:56 2007 New Revision: 123740 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123740 Log: 2007-04-12 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31078 PR c++/31103 * c-common.c (c_build_qualified_type): Set canonical type appropriately. 2007-04-12 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31078 * g++.dg/other/pr31078.C: New. Added: trunk/gcc/testsuite/g++.dg/other/pr31078.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31078
[Bug c++/31103] [4.3 Regression] same canonical type node for VLAs
--- Comment #4 from dgregor at gcc dot gnu dot org 2007-04-12 12:48 --- Subject: Bug 31103 Author: dgregor Date: Thu Apr 12 12:47:56 2007 New Revision: 123740 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123740 Log: 2007-04-12 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31078 PR c++/31103 * c-common.c (c_build_qualified_type): Set canonical type appropriately. 2007-04-12 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31078 * g++.dg/other/pr31078.C: New. Added: trunk/gcc/testsuite/g++.dg/other/pr31078.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31103
[Bug c++/31078] [4.3 Regression] warning: same canonical type node for different types with const strings
--- Comment #14 from dgregor at gcc dot gnu dot org 2007-04-12 12:50 --- 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=31078
[Bug c++/31103] [4.3 Regression] same canonical type node for VLAs
--- Comment #5 from dgregor at gcc dot gnu dot org 2007-04-12 12:50 --- 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=31103
[Bug c++/31505] [4.3 Regression] Canonical types failures
--- Comment #13 from dgregor at gcc dot gnu dot org 2007-04-12 12:52 --- Same problem/cause as 31103, which is now fixed on mainline. *** This bug has been marked as a duplicate of 31103 *** -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31505
[Bug c++/31103] [4.3 Regression] same canonical type node for VLAs
--- Comment #6 from dgregor at gcc dot gnu dot org 2007-04-12 12:52 --- *** Bug 31505 has been marked as a duplicate of this bug. *** -- dgregor at gcc dot gnu dot org changed: What|Removed |Added CC||bangerth at dealii dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31103
[Bug c++/31439] [4.3 regression] ICE with variadic template and broken specialization
-- 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 |2007-04-25 16:44:18 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31439
[Bug c++/31441] [4.3 regression] ICE with variadic template and specialization
-- 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 |2007-04-25 16:44:51 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31441
[Bug c++/31442] [4.3 regression] ICE with variadic template and default argument
-- 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 |2007-04-25 16:45:13 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31442
[Bug c++/31443] [4.3 regression] ICE with invalid use of parameter pack in member 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 |2007-04-25 16:45:46 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31443
[Bug c++/31444] [4.3 regression] ICE with invalid use of parameter pack in member 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 |2007-04-25 16:46:21 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31444
[Bug c++/31445] [4.3 regression] type_argument_pack not supported by dump_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|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-04-25 16:46:50 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31445
[Bug c++/31431] [4.3 regression] ICE with invalid parameter pack
-- 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 |2007-04-25 17:57:35 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31431
[Bug c++/31432] [4.3 regression] ICE with invalid parameter pack for template struct
-- 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 |2007-04-25 17:58:26 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31432
[Bug c++/31433] [4.3 regression] ICE with invalid parameter pack for template struct
-- 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 |2007-04-25 17:58:46 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31433
[Bug c++/31434] [4.3 regression] ICE with invalid use of parameter pack in function arg
-- 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 |2007-04-25 17:59:04 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31434
[Bug c++/31435] [4.3 regression] ICE with invalid use of parameter pack in function arg
-- 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 |2007-04-25 17:59:24 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31435
[Bug c++/31436] [4.3 regression] ICE with invalid use of parameter pack in function arg
-- 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 |2007-04-25 17:59:43 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31436
[Bug c++/31437] [4.3 regression] ICE with invalid use of parameter pack in member function arg
-- 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 |2007-04-25 18:00:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31437
[Bug c++/31438] [4.3 regression] ICE with invalid use of parameter pack in specialization
-- 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 |2007-04-25 18:00:43 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31438
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-08-28 20:26 --- Has anyone been able to reproduce this problem? I'm not able to trigger the failure with the preprocessed source. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33185
[Bug c++/33194] [4.3 Regression] ICE: canonical types differ for identical types void ()(const char*, ...) and void ()(const char*, ...)
-- 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 |2007-08-28 20:34:54 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33194
[Bug c++/33194] [4.3 Regression] ICE: canonical types differ for identical types void ()(const char*, ...) and void ()(const char*, ...)
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-08-28 21:12 --- Patch available here: http://gcc.gnu.org/ml/gcc-patches/2007-08/msg02013.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33194
[Bug c++/33194] [4.3 Regression] ICE: canonical types differ for identical types void ()(const char*, ...) and void ()(const char*, ...)
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-08-29 12:25 --- Subject: Bug 33194 Author: dgregor Date: Wed Aug 29 12:25:01 2007 New Revision: 127896 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=127896 Log: 2007-08-29 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33194 * tree.c (build_type_attribute_qual_variant): Set canonical types on the final, unqualified attribute variant before building the qualified version. 2007-08-29 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33194 * g++.dg/other/canon-33194.C: New. Added: trunk/gcc/testsuite/g++.dg/other/canon-33194.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33194
[Bug c++/33194] [4.3 Regression] ICE: canonical types differ for identical types void ()(const char*, ...) and void ()(const char*, ...)
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-08-29 12:28 --- Fixed on mailine -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33194
[Bug c++/33235] New: C++0x overloading problem with move constructor and trivial copy constructor
Overload resolution is picking the wrong candidate for the construction of b3, below: base2 b3(static_cast(b)); Instead of choosing the move constructor, it is picking the trivial copy constructor. However, adding a normal copy constructor fixes the problem. Naturally, this only occurs in C++0x mode. -- Summary: C++0x overloading problem with move constructor and trivial copy constructor Product: gcc Version: 4.3.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=33235
[Bug c++/33235] C++0x overloading problem with move constructor and trivial copy constructor
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-08-29 16:16 --- Created an attachment (id=14133) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14133&action=view) Failing test-case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33235
[Bug c++/32597] New operation with empty parameter pack does not value-initialize
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-08-31 19:18 --- Subject: Bug 32597 Author: dgregor Date: Fri Aug 31 19:18:20 2007 New Revision: 128000 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128000 Log: 2007-08-31 Douglas Gregor <[EMAIL PROTECTED]> PR c++/32597 * init.c (build_default_init): Make extern. * cp-tree.h (build_default_init): Declare here. * pt.c (tsubst_expr): When the instantiation of the initializer of a variable results in an empty list, default-initialize the variable. (tsubst_copy_and_build): When the instantiation of the initializer in a new expression results in an empty initializer list, default-initialize it. 2007-08-31 Douglas Gregor <[EMAIL PROTECTED]> PR c++/32597 * gcc/testsuite/g++.dg/cpp0x/variadic-new2.C: New. * gcc/testsuite/g++.dg/cpp0x/variadic-new.C: New. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic-new.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic-new2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/init.c trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32597
[Bug c++/32597] New operation with empty parameter pack does not value-initialize
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-08-31 19:19 --- 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=32597
[Bug c++/33112] ICE : canonical types differ for identical types const _CharT* [14] and const _CharT* [14]
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-09-10 20:38 --- Could someone try the patch at http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00910.html to determine whether this fixes the bug? I am unable to reproduce the bug locally. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33112
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #5 from dgregor at gcc dot gnu dot org 2007-09-10 20:38 --- Could someone try the patch at http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00910.html to determine whether this fixes the bug? I am unable to reproduce the bug locally. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33185
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #7 from dgregor at gcc dot gnu dot org 2007-09-19 21:45 --- Here is the real fix: http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01544.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|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-09-19 21:45:34 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33185
[Bug c++/33112] ICE : canonical types differ for identical types const _CharT* [14] and const _CharT* [14]
--- Comment #4 from dgregor at gcc dot gnu dot org 2007-09-19 21:45 --- Here is the real fix: http://gcc.gnu.org/ml/gcc-patches/2007-09/msg01544.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|2007-08-19 13:04:48 |2007-09-19 21:45:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33112
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #10 from dgregor at gcc dot gnu dot org 2007-09-24 12:15 --- Subject: Bug 33185 Author: dgregor Date: Mon Sep 24 12:14:57 2007 New Revision: 128711 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128711 Log: 2007-09-24 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33112 PR c++/33185 * tree.c (cplus_array_compare): Compare pointers, not types. (build_cplus_array_type_1): Store new array type into the hash table before building the canonical type; build the canonical type correctly. (cp_build_qualified_type_real): Put all of the array types with cv-qualified element types into the C++ array hash table, built as variants of the unqualified versions. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33185
[Bug c++/33112] ICE : canonical types differ for identical types const _CharT* [14] and const _CharT* [14]
--- Comment #5 from dgregor at gcc dot gnu dot org 2007-09-24 12:15 --- Subject: Bug 33112 Author: dgregor Date: Mon Sep 24 12:14:57 2007 New Revision: 128711 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128711 Log: 2007-09-24 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33112 PR c++/33185 * tree.c (cplus_array_compare): Compare pointers, not types. (build_cplus_array_type_1): Store new array type into the hash table before building the canonical type; build the canonical type correctly. (cp_build_qualified_type_real): Put all of the array types with cv-qualified element types into the C++ array hash table, built as variants of the unqualified versions. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33112
[Bug c++/33112] ICE : canonical types differ for identical types const _CharT* [14] and const _CharT* [14]
--- Comment #6 from dgregor at gcc dot gnu dot org 2007-09-24 12:52 --- Fixed by the patch below -- 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=33112
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #11 from dgregor at gcc dot gnu dot org 2007-09-24 13:46 --- Subject: Bug 33185 Author: dgregor Date: Mon Sep 24 13:46:40 2007 New Revision: 128717 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128717 Log: 2007-09-24 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33185 * tree.c (cp_build_qualified_type_real): Build a canonical ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33185
[Bug c++/33185] [4.3 Regression] ICE: canonical types differ for identical types T [] and T []
--- Comment #12 from dgregor at gcc dot gnu dot org 2007-09-24 13:47 --- Fixed, for real. Thanks for the ice_canonical.cpp test-case: it illustrated the (other) underlying problem that wasn't apparent in 33112. -- 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=33185
[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=gcc&view=rev&rev=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++/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=16133&action=view) Test case illustrating the problem -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37208
gcc-bugs@gcc.gnu.org
--- 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
gcc-bugs@gcc.gnu.org
--- 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
gcc-bugs@gcc.gnu.org
--- 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=gcc&view=rev&rev=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
gcc-bugs@gcc.gnu.org
--- 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++/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++/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=gcc&view=rev&rev=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++/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 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
[Bug c++/14031] [DR 226] Resolution of Core DR 226 (WP) not implemented
--- Comment #3 from dgregor at gcc dot gnu dot org 2008-01-18 16:48 --- Fixed for C++0x. -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14031
[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 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 max 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++/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 max is valid or not. My inclination is that it is invalid, because when Params is empty, it becomes an invalid specialization max. (This happens, for example, if we try to compute max::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=gcc&view=rev&rev=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=gcc&view=rev&rev=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=gcc&view=rev&rev=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=gcc&view=rev&rev=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=gcc&view=rev&rev=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