From 403f85032fa1a664f6625cc44e6bbc57b3fc106f Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 4 Aug 2004 07:23:14 +0000 Subject: 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 --- gcc/dbxout.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'gcc/dbxout.c') diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 8171757..9a9e447 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 */ -- cgit v1.1