[Bug c++/53039] [4.7 Regression] including <functional> breaks std::is_convertible with template-pack expansion

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 29 20:18:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53039

--- Comment #20 from Jason Merrill <jason at gcc dot gnu.org> 2012-11-29 20:16:57 UTC ---
Author: jason
Date: Thu Nov 29 20:16:46 2012
New Revision: 193955

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193955
Log:
    PR c++/50852
    PR c++/53039
    * tree.c (strip_typedefs_expr): New.
    * cp-tree.h: Declare it.
    * pt.c (convert_template_argument, unify): Use it.
    * parser.c (cp_parser_template_declaration_after_export): Don't call
    fixup_template_parms.

    * cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove.
    (struct template_parm_index_s): Remove num_siblings.
    * pt.c (fixup_template_parms, fixup_template_parm_index): Remove.
    (fixup_template_type_parm_type): Remove.
    (build_template_parm_index): Remove num_siblings parm.
    (process_template_parm): Likewise.
    * parser.c (cp_parser_template_parameter_list): Adjust.
    * tree.c (cp_tree_equal): Don't compare num_siblings.
    * typeck.c (comp_template_parms_position): Likewise.

    * pt.c (arg_from_parm_pack_p): Go back to using same_type_p or
    cp_tree_equal.

Added:
    branches/gcc-4_7-branch/gcc/testsuite/g++.dg/cpp0x/alias-decl-20.C
    branches/gcc-4_7-branch/gcc/testsuite/g++.dg/cpp0x/variadic133.C
    branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/typedef39.C
Modified:
    branches/gcc-4_7-branch/gcc/cp/ChangeLog
    branches/gcc-4_7-branch/gcc/cp/cp-tree.h
    branches/gcc-4_7-branch/gcc/cp/parser.c
    branches/gcc-4_7-branch/gcc/cp/pt.c
    branches/gcc-4_7-branch/gcc/cp/tree.c
    branches/gcc-4_7-branch/gcc/cp/typeck.c
    branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/param1.C



More information about the Gcc-bugs mailing list