summaryrefslogtreecommitdiff
path: root/gcc/integrate.c
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-26 00:36:56 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-26 00:36:56 +0000
commit0dbc398a316095658e920f48a965aef98ad953ee (patch)
tree86eb94bf7bf8baa171b95fd2c33f84eafa1c186c /gcc/integrate.c
parent6e6a06ca4b3803a7443541cb80d0b788df1fed94 (diff)
downloadgcc-0dbc398a316095658e920f48a965aef98ad953ee.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33430 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r--gcc/integrate.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 6fa0be17fc7..622acf49deb 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;
}