diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 10 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c | 9 |
3 files changed, 17 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb889e2..40e73c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-06-24 Aldy Hernandez <aldyh@redhat.com> + + PR debug/66482 + * dwarf2out.c (gen_formal_parameter_die): Remove assert. + 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com> * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 360f67f..843fc1e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -18021,18 +18021,14 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, { /* FIXME: Reuse DIE even with a differing context. - This happens when called through - dwarf2out_abstract_function for formal parameter - packs. The issue is that we're calling + This can happen when calling dwarf2out_abstract_function to build debug info for the abstract instance of a function for which we have already generated a DIE in dwarf2out_early_global_decl. - Once we remove dwarf2out_abstract_function, this - gcc_assert should be a gcc_unreachable. */ - gcc_assert (parm_die->die_parent->die_tag - == DW_TAG_GNU_formal_parameter_pack); + Once we remove dwarf2out_abstract_function, we should + have a call to gcc_unreachable here. */ } } diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c new file mode 100644 index 0000000..880791c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -gdwarf" } */ + +void f(int p) {} +int g() { + void f(); + g(); + return 0; +} |