aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarfout.c
diff options
context:
space:
mode:
authorJason Merrill <jason@casey.cygnus.com>2000-04-26 00:36:56 +0000
committerJason Merrill <jason@gcc.gnu.org>2000-04-25 20:36:56 -0400
commit1cfdcc15effc096604f32fb88ddc1ad8f67aab07 (patch)
tree86eb94bf7bf8baa171b95fd2c33f84eafa1c186c /gcc/dwarfout.c
parentd25ed420a21ee1692ab894f53effeb3a0eac0207 (diff)
downloadgcc-1cfdcc15effc096604f32fb88ddc1ad8f67aab07.zip
gcc-1cfdcc15effc096604f32fb88ddc1ad8f67aab07.tar.gz
gcc-1cfdcc15effc096604f32fb88ddc1ad8f67aab07.tar.bz2
dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
* dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR. * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs. * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE is the primary DIE for a member function. (gen_decl_die): Call set_decl_origin_self here. * dwarfout.c (output_decl): And here. * integrate.c (output_inline_function): Not here. Don't clear DECL_INLINE until after calling rest_of_compilation. (set_decl_origin_self): No longer static. * tree.h: Add prototype. * toplev.c (note_deferral_of_defined_inline_function): Only write out abstract instance for actual inlines. * cp/decl.c (finish_function): Don't play games with DECL_INLINE. From-SVN: r33430
Diffstat (limited to 'gcc/dwarfout.c')
-rw-r--r--gcc/dwarfout.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c
index 400dc78..fafbcaa 100644
--- a/gcc/dwarfout.c
+++ b/gcc/dwarfout.c
@@ -4791,6 +4791,13 @@ output_decl (decl, containing_scope)
output_type (origin, containing_scope);
}
+ /* If we're emitting an out-of-line copy of an inline function,
+ set up to refer to the abstract instance emitted from
+ note_deferral_of_defined_inline_function. */
+ if (DECL_INLINE (decl) && ! DECL_ABSTRACT (decl)
+ && ! (containing_scope && TYPE_P (containing_scope)))
+ set_decl_origin_self (decl);
+
/* If the following DIE will represent a function definition for a
function with "extern" linkage, output a special "pubnames" DIE
label just ahead of the actual DIE. A reference to this label
@@ -5084,6 +5091,10 @@ output_decl (decl, containing_scope)
output_die (output_formal_parameter_die, decl);
break;
+ case NAMESPACE_DECL:
+ /* Ignore for now. */
+ break;
+
default:
abort ();
}