]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix problem that caused compiled java code to trigger an internal gdb error.
authorJames E Wilson <wilson@specifixinc.com>
Sat, 19 Mar 2005 03:06:51 +0000 (03:06 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Sat, 19 Mar 2005 03:06:51 +0000 (19:06 -0800)
PR c++/19769
* dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
origin.

From-SVN: r96715

gcc/ChangeLog
gcc/dwarf2out.c

index d0882f39e29be254abc090a32437ec2b5689a022..8033f04b1c1a871e904c3320d15b8742e1349384 100644 (file)
@@ -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
index 5157ae358bcc2a8180efbdb3b15c99c4340340f1..cc3c9f47a5baab9b0892e2abd5cefa47fa67d4cb 100644 (file)
@@ -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)