dbxout.c (dbxout_function_decl): Always call dbxout_function_end.

* dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
	(dbxout_function_end): Return after emitting the "Lscope" symbol
	under the same conditions that this function formerly wasn't called.
	Add explanatory comments.

From-SVN: r85546
This commit is contained in:
Zack Weinberg 2004-08-04 07:23:14 +00:00 committed by Zack Weinberg
parent ca0433930a
commit 403f85032f
2 changed files with 18 additions and 6 deletions

View File

@ -1,5 +1,10 @@
2004-08-03 Zack Weinberg <zack@codesourcery.com>
* dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
(dbxout_function_end): Return after emitting the "Lscope" symbol
under the same conditions that this function formerly wasn't called.
Add explanatory comments.
PR 14680
* c-decl.c (record_builtin_type): Call debug_hooks->type_decl
on the new decl.

View File

@ -449,6 +449,8 @@ dbxout_function_end (void)
{
char lscope_label_name[100];
/* The Lscope label must be emitted even if we aren't doing anything
else; dbxout_block needs it. */
function_section (current_function_decl);
/* Convert Ltext into the appropriate format for local labels in case
@ -458,6 +460,16 @@ dbxout_function_end (void)
targetm.asm_out.internal_label (asmfile, "Lscope", scope_labelno);
scope_labelno++;
/* The N_FUN tag at the end of the function is a GNU extension,
which may be undesirable, and is unnecessary if we do not have
named sections. */
if (!use_gnu_debug_info_extensions
#if defined(NO_DBX_FUNCTION_END)
|| NO_DBX_FUNCTION_END
#endif
|| !targetm.have_named_sections)
return;
/* By convention, GCC will mark the end of a function with an N_FUN
symbol and an empty string. */
#ifdef DBX_OUTPUT_NFUN
@ -792,12 +804,7 @@ dbxout_function_decl (tree decl)
#ifdef DBX_OUTPUT_FUNCTION_END
DBX_OUTPUT_FUNCTION_END (asmfile, decl);
#endif
if (use_gnu_debug_info_extensions
#if defined(NO_DBX_FUNCTION_END)
&& ! NO_DBX_FUNCTION_END
#endif
&& targetm.have_named_sections)
dbxout_function_end ();
dbxout_function_end ();
}
#endif /* DBX_DEBUGGING_INFO */