diff options
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 22 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C | 6 | ||||
-rw-r--r-- | include/ChangeLog | 6 | ||||
-rw-r--r-- | include/dwarf2.h | 15 |
8 files changed, 48 insertions, 34 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e7367faa9d..733d2f5ad67 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,10 +1,10 @@ -2009-09-25 Richard Henderson <rth@redhat.com> +2009-09-25 Dodji Seketeli <dodji@redhat.com> - PR middle-end/41469 - * tree-eh.c (lower_resx): Resolve RESX with no source region to - __builtin_trap. - (gate_lower_resx): New. - (gate_lower_eh_dispatch): Rename from gate_lower_ehcontrol. + * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies, + generic_parameter_die, template_parameter_pack_die, + gen_formal_parameter_die, gen_subprogram_die): Adjust after renaming + DW_TAG_formal_parameter_pack and DW_TAG_template_parameter_pack into + DW_TAG_GNU_formal_parameter_pack and DW_TAG_GNU_template_parameter_pack. 2009-09-25 Anatoly Sokolov <aesok@post.ru> diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 2338e29cd55..bbb21b01d30 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -6340,10 +6340,10 @@ dwarf_tag_name (unsigned int tag) return "DW_TAG_condition"; case DW_TAG_shared_type: return "DW_TAG_shared_type"; - case DW_TAG_template_parameter_pack: - return "DW_TAG_template_parameter_pack"; - case DW_TAG_formal_parameter_pack: - return "DW_TAG_formal_parameter_pack"; + case DW_TAG_GNU_template_parameter_pack: + return "DW_TAG_GNU_template_parameter_pack"; + case DW_TAG_GNU_formal_parameter_pack: + return "DW_TAG_GNU_formal_parameter_pack"; case DW_TAG_MIPS_loop: return "DW_TAG_MIPS_loop"; case DW_TAG_format_label: @@ -10560,7 +10560,7 @@ gen_generic_params_dies (tree t) if (parm && TREE_VALUE (parm) && arg) { /* If PARM represents a template parameter pack, - emit a DW_TAG_template_parameter_pack DIE, followed + emit a DW_TAG_GNU_template_parameter_pack DIE, followed by DW_TAG_template_*_parameter DIEs for the argument pack elements of ARG. Note that ARG would then be an argument pack. */ @@ -10675,7 +10675,7 @@ generic_parameter_die (tree parm, tree arg, return tmpl_die; } -/* Generate and return a DW_TAG_template_parameter_pack DIE representing. +/* Generate and return a DW_TAG_GNU_template_parameter_pack DIE representing. PARM_PACK must be a template parameter pack. The returned DIE will be child DIE of PARENT_DIE. */ @@ -10691,7 +10691,7 @@ template_parameter_pack_die (tree parm_pack, && parm_pack && DECL_NAME (parm_pack)); - die = new_die (DW_TAG_template_parameter_pack, parent_die, parm_pack); + die = new_die (DW_TAG_GNU_template_parameter_pack, parent_die, parm_pack); add_AT_string (die, DW_AT_name, IDENTIFIER_POINTER (DECL_NAME (parm_pack))); for (j = 0; j < TREE_VEC_LENGTH (parm_pack_args); j++) @@ -15425,7 +15425,7 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, return parm_die; } -/* Generate and return a DW_TAG_formal_parameter_pack. Also generate +/* Generate and return a DW_TAG_GNU_formal_parameter_pack. Also generate children DW_TAG_formal_parameter DIEs representing the arguments of the parameter pack. @@ -15450,7 +15450,7 @@ gen_formal_parameter_pack_die (tree parm_pack, && DECL_NAME (parm_pack) && subr_die); - parm_pack_die = new_die (DW_TAG_formal_parameter_pack, subr_die, parm_pack); + parm_pack_die = new_die (DW_TAG_GNU_formal_parameter_pack, subr_die, parm_pack); add_AT_string (parm_pack_die, DW_AT_name, IDENTIFIER_POINTER (DECL_NAME (parm_pack))); @@ -15988,10 +15988,10 @@ gen_subprogram_die (tree decl, dw_die_ref context_die) DECL itself. This is useful because we want to emit specific DIEs for function parameter packs and those are declared as part of the generic function declaration. In that particular case, - the parameter pack yields a DW_TAG_formal_parameter_pack DIE. + the parameter pack yields a DW_TAG_GNU_formal_parameter_pack DIE. That DIE has children DIEs representing the set of arguments of the pack. Note that the set of pack arguments can be empty. - In that case, the DW_TAG_formal_parameter_pack DIE will not have any + In that case, the DW_TAG_GNU_formal_parameter_pack DIE will not have any children DIE. Otherwise, we just consider the parameters of DECL. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 03410b9f410..3157ff9c00f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2009-09-25 Dodji Seketeli <dodji@redhat.com> + + * g++.dg/debug/dwarf2/template-func-params-4.C: Adjust after renaming + DW_TAG_template_parameter_pack and DW_TAG_formal_parameter_pack + into DW_TAG_GNU_template_parameter_pack and + DW_TAG_GNU_formal_parameter_pack. + * g++.dg/debug/dwarf2/template-params-4.C: Likewise. + * g++.dg/debug/dwarf2/template-func-params-7.C: Likewise. + 2009-09-25 Nathan Froyd <froydnj@codesourcery.com> * gcc.dg/vect/vect.exp: Append extra parameters as separate diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C index f75d0e66999..45b0cf89a38 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C @@ -6,10 +6,10 @@ // count<char, long> and count<long>. In practice, only // count<int, char, long> is emitted, thanks to constant folding. // So in theory, each of the 3 instances of count yields a -// DW_TAG_tempalate_parameter_pack DIE, but in practise, there is only one -// DW_TAG_template_parameter_pack as there is only count<int, char, long> +// DW_TAG_GNU_template_parameter_pack DIE, but in practise, there is only one +// DW_TAG_GNU_template_parameter_pack as there is only count<int, char, long> // is emitted. -// { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_template_parameter_pack" 1} } +// { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_GNU_template_parameter_pack" 1} } // { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_template_type_param" 3} } diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C index 8a883f832ff..a19217c3bb0 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C @@ -17,9 +17,9 @@ // printf<int, char, int> and printf<char, int> have a pack expansion as // function parameters. There should then be 3 -// DW_TAG_template_parameter_pack and 3 DW_TAG_formal_parameter_pack DIEs -// { dg-final {scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_template_parameter_pack" 3 } } -// { dg-final {scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_formal_parameter_pack" 3 } } +// DW_TAG_GNU_template_parameter_pack and 3 DW_TAG_GNU_formal_parameter_pack DIEs +// { dg-final {scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_GNU_template_parameter_pack" 3 } } +// { dg-final {scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_GNU_formal_parameter_pack" 3 } } // These 3 function template instantiations has a total of 3 template // parameters named T. // { dg_final {scan-assembler-times "\.ascii \"T.0\"\[\t \]+.*?DW_AT_name" 3 } } diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C index e83ef61e060..09e85cb8ea2 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C @@ -6,10 +6,10 @@ // count<char, long> and count<long>. In practice, only // count<int, char, long> is emitted, thanks to constant folding. // So in theory, each of the 3 instances of count yields a -// DW_TAG_tempalate_parameter_pack DIE, but in practise, there is only one -// DW_TAG_template_parameter_pack as there is only count<int, char, long> +// DW_TAG_GNU_template_parameter_pack DIE, but in practise, there is only one +// DW_TAG_GNU_template_parameter_pack as there is only count<int, char, long> // is emitted. -// { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_template_parameter_pack" 1} } +// { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_GNU_template_parameter_pack" 1} } // { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_template_type_param" 3} } template <typename... Args> struct count; diff --git a/include/ChangeLog b/include/ChangeLog index b1158a2dd90..f99325ec351 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,9 @@ +2009-09-25 Dodji Seketeli <dodji@redhat.com> + + * dwarf2.h (enum dwarf_tag): Rename DW_TAG_template_parameter_pack and + DW_TAG_formal_parameter_pack into DW_TAG_GNU_template_parameter_pack + and DW_TAG_formal_parameter_pack until DWARF 5 is out. + 2009-09-25 Cary Coutant <ccoutant@google.com> Add rest of new values from DWARF Version 4. diff --git a/include/dwarf2.h b/include/dwarf2.h index 4aa10d5a873..385ab2256fa 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -202,14 +202,6 @@ enum dwarf_tag DW_TAG_lo_user = 0x4080, DW_TAG_hi_user = 0xffff, - /* DWARF 5? */ - - /* Template parameter pack extension, specified at - http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates - . */ - DW_TAG_template_parameter_pack = 0x43, - DW_TAG_formal_parameter_pack = 0x44, - /* SGI/MIPS Extensions. */ DW_TAG_MIPS_loop = 0x4081, /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ @@ -223,6 +215,13 @@ enum dwarf_tag /* Template template parameter. See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */ DW_TAG_GNU_template_template_param = 0x4106, + + /* Template parameter pack extension, specified at + http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates + The values of these two TAGS are in the DW_TAG_GNU_* space until the tags + are properly part of DWARF 5. */ + DW_TAG_GNU_template_parameter_pack = 0x4107, + DW_TAG_GNU_formal_parameter_pack = 0x4108, /* Extensions for UPC. See: http://upc.gwu.edu/~upc. */ DW_TAG_upc_shared_type = 0x8765, DW_TAG_upc_strict_type = 0x8766, |