------- Comment #2 from dodji at gcc dot gnu dot org  2009-09-22 20:20 -------
Subject: Bug 41266

Author: dodji
Date: Tue Sep 22 20:20:03 2009
New Revision: 152043

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152043
Log:
Fix for PR debug/41266

ChangeLog:

        * include/dwarf2.h (enum dwarf_tag): Add
        DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack.

gcc/ChangeLog:

        * dwarf2out.c (template_parameter_pack_die,
        gen_formal_parameter_pack_die ): New functions.
        (make_ith_pack_parameter_name): Remove this function.
        (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
        DW_TAG_formal_parameter_pack.
        (gen_generic_params_dies): Represent each template parameter pack
        by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
        represented by usual DW_TAG_template_*_parameter DIEs that are
        children of the DW_TAG_template_parameter_pack element DIE.
        (generic_parameter_die): This doesn't deal with parameter pack
        names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
of
        parameter pack DIEs.
        (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
        in certain cases, e.g. for pack elements.
        (gen_formal_types_die, gen_decl_die): Adjust usage of
        gen_formal_parameter_die.
        (gen_subprogram_die): Represent each function parameter pack by a
        DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
        represented by usual DW_TAG_formal_parameter DIEs that are children
        of the DW_TAG_formal_parameter_pack DIE. Remove references to
        ____builtin_va_alist decls as no part of the compiler uses those
        anymore.
        * langhooks.h (struct lang_hooks_for_decls): Add
        function_parm_expanded_from_pack_p, get_generic_function_decl
        and function_parameter_pack_p hooks.  Fix comment for
        get_innermost_generic_parms hook.
        * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
        LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
        macros and use them to initialize lang_hook.

gcc/cp/ChangeLog:

        * cp-lang.c (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
        LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P,
        LANG_HOOKS_GET_GENERIC_FUNCTION_DECL): Initialize these
        hooks for the c++ FE.
        * cp-tree.h (function_parameter_pack_p, get_function_template_decl,
        function_parameter_expanded_from_pack_p): Declare ...
        * pt.c (function_parameter_pack_p, get_function_template_decl,
        function_parameter_expanded_from_pack_p): ... new hooks.
        (get_template_info): Make this more robust.
        (template_args_variadic_p, make_ith_pack_parameter_name): Add a new
        line between comment and function.
        (get_template_argument_pack_elems): Fix comment.
        (tsubst_decl): Arguments of function parameter packs are not
        parameter packs themselves.

gcc/testsuite/ChangeLog:
        * g++.dg/debug/dwarf2/template-func-params-4.C: Adjust.
        * g++.dg/debug/dwarf2/template-func-params-7.C: Likewise.
        * g++.dg/debug/dwarf2/template-params-4.C: Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-lang.c
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/pt.c
    trunk/gcc/dwarf2out.c
    trunk/gcc/langhooks-def.h
    trunk/gcc/langhooks.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C
    trunk/gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C
    trunk/include/ChangeLog
    trunk/include/dwarf2.h


-- 


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

Reply via email to