aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c10
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c9
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;
+}