From: Zack Weinberg Date: Wed, 4 Aug 2004 07:23:14 +0000 (+0000) Subject: dbxout.c (dbxout_function_decl): Always call dbxout_function_end. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=403f85032fa1a664f6625cc44e6bbc57b3fc106f;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eddeed81151..50a6f80f034 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-08-03 Zack Weinberg + * 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. diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 81717577973..9a9e44732d0 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -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 */