aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2005-03-19 03:06:51 +0000
committerJim Wilson <wilson@gcc.gnu.org>2005-03-18 19:06:51 -0800
commit0eb971bd259728516731359bf8a4ac39512a0c30 (patch)
tree5b8eec255bd29b8f66c2de2a5c97d8e6f4bc684e
parentffee7efdad6bd273a275578a0260cae9a7639c4d (diff)
downloadgcc-0eb971bd259728516731359bf8a4ac39512a0c30.zip
gcc-0eb971bd259728516731359bf8a4ac39512a0c30.tar.gz
gcc-0eb971bd259728516731359bf8a4ac39512a0c30.tar.bz2
Fix problem that caused compiled java code to trigger an internal gdb error.
PR c++/19769 * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract origin. From-SVN: r96715
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d0882f3..8033f04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-18 James E Wilson <wilson@specifixinc.com>
+
+ PR c++/19769
+ * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
+ origin.
+
2005-03-18 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300-protos.h: Remove the prototypes for
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 5157ae3..cc3c9f4 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12557,6 +12557,12 @@ declare_in_namespace (tree thing, dw_die_ref context_die)
if (debug_info_level <= DINFO_LEVEL_TERSE)
return;
+ /* If this decl is from an inlined function, then don't try to emit it in its
+ namespace, as we will get confused. It would have already been emitted
+ when the abstract instance of the inline function was emitted anyways. */
+ if (DECL_P (thing) && DECL_ABSTRACT_ORIGIN (thing))
+ return;
+
ns_context = setup_namespace_context (thing, context_die);
if (ns_context != context_die)