diff options
author | Jason Merrill <jason@casey.cygnus.com> | 2000-04-26 00:36:56 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-04-25 20:36:56 -0400 |
commit | 1cfdcc15effc096604f32fb88ddc1ad8f67aab07 (patch) | |
tree | 86eb94bf7bf8baa171b95fd2c33f84eafa1c186c /gcc/integrate.c | |
parent | d25ed420a21ee1692ab894f53effeb3a0eac0207 (diff) | |
download | gcc-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/integrate.c')
-rw-r--r-- | gcc/integrate.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 6fa0be1..622acf4 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -78,7 +78,6 @@ static tree integrate_decl_tree PARAMS ((tree, static void subst_constants PARAMS ((rtx *, rtx, struct inline_remap *, int)); static void set_block_origin_self PARAMS ((tree)); -static void set_decl_origin_self PARAMS ((tree)); static void set_block_abstract_flags PARAMS ((tree, int)); static void process_reg_param PARAMS ((struct inline_remap *, rtx, rtx)); @@ -2647,7 +2646,7 @@ set_block_origin_self (stmt) set *their* DECL_ABSTRACT_ORIGIN or BLOCK_ABSTRACT_ORIGIN values to point to themselves. */ -static void +void set_decl_origin_self (decl) register tree decl; { @@ -2738,16 +2737,8 @@ output_inline_function (fndecl) set_new_last_label_num (f->inl_max_label_num); - /* We must have already output DWARF debugging information for the - original (abstract) inline function declaration/definition, so - we want to make sure that the debugging information we generate - for this special instance of the inline function refers back to - the information we already generated. To make sure that happens, - we simply have to set the DECL_ABSTRACT_ORIGIN for the function - node (and for all of the local ..._DECL nodes which are its children) - so that they all point to themselves. */ - - set_decl_origin_self (fndecl); + /* Compile this function all the way down to assembly code. */ + rest_of_compilation (fndecl); /* We're not deferring this any longer. */ DECL_DEFER_OUTPUT (fndecl) = 0; @@ -2756,9 +2747,6 @@ output_inline_function (fndecl) f->inlinable = 0; DECL_INLINE (fndecl) = 0; - /* Compile this function all the way down to assembly code. */ - rest_of_compilation (fndecl); - cfun = old_cfun; current_function_decl = old_cfun ? old_cfun->decl : 0; } |