diff options
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 4e467739d24..26e68939634 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -155,7 +155,7 @@ static int source_label_number = 1; #endif #ifdef DEBUG_SYMS_TEXT -#define FORCE_TEXT text_section (); +#define FORCE_TEXT function_section (current_function_decl); #else #define FORCE_TEXT #endif @@ -392,16 +392,20 @@ dbxout_function_end () the system doesn't insert underscores in front of user generated labels. */ ASM_GENERATE_INTERNAL_LABEL (lscope_label_name, "Lscope", scope_labelno); - ASM_OUTPUT_INTERNAL_LABEL (asmfile, "Lscope", scope_labelno); + (*targetm.asm_out.internal_label) (asmfile, "Lscope", scope_labelno); scope_labelno++; /* By convention, GCC will mark the end of a function with an N_FUN symbol and an empty string. */ +#ifdef DBX_OUTPUT_NFUN + DBX_OUTPUT_NFUN (asmfile, lscope_label_name, current_function_decl); +#else fprintf (asmfile, "%s\"\",%d,0,0,", ASM_STABS_OP, N_FUN); assemble_name (asmfile, lscope_label_name); putc ('-', asmfile); assemble_name (asmfile, XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); fprintf (asmfile, "\n"); +#endif } #endif /* DBX_DEBUGGING_INFO */ @@ -461,7 +465,7 @@ dbxout_init (input_file_name) assemble_name (asmfile, ltext_label_name); fputc ('\n', asmfile); text_section (); - ASM_OUTPUT_INTERNAL_LABEL (asmfile, "Ltext", 0); + (*targetm.asm_out.internal_label) (asmfile, "Ltext", 0); #endif /* no DBX_OUTPUT_MAIN_SOURCE_FILENAME */ #ifdef DBX_OUTPUT_GCC_MARKER @@ -589,7 +593,7 @@ dbxout_source_file (file, filename) ; /* Don't change section amid function. */ else text_section (); - ASM_OUTPUT_INTERNAL_LABEL (file, "Ltext", source_label_number); + (*targetm.asm_out.internal_label) (file, "Ltext", source_label_number); source_label_number++; #endif lastfile = filename; @@ -620,7 +624,7 @@ dbxout_begin_block (line, n) unsigned int line ATTRIBUTE_UNUSED; unsigned int n; { - ASM_OUTPUT_INTERNAL_LABEL (asmfile, "LBB", n); + (*targetm.asm_out.internal_label) (asmfile, "LBB", n); } /* Describe the end line-number of an internal block within a function. */ @@ -630,7 +634,7 @@ dbxout_end_block (line, n) unsigned int line ATTRIBUTE_UNUSED; unsigned int n; { - ASM_OUTPUT_INTERNAL_LABEL (asmfile, "LBE", n); + (*targetm.asm_out.internal_label) (asmfile, "LBE", n); } /* Output dbx data for a function definition. @@ -2456,7 +2460,7 @@ dbxout_finish_symbol (sym) #endif } -/* Output definitions of all the decls in a chain. Return non-zero if +/* Output definitions of all the decls in a chain. Return nonzero if anything was output */ int @@ -2677,6 +2681,7 @@ dbxout_parms (parms) current_sym_value = INTVAL (XEXP (XEXP (XEXP (DECL_RTL (parms), 0), 0), 1)); current_sym_addr = 0; + current_sym_code = N_PSYM; FORCE_TEXT; fprintf (asmfile, "%s\"%s:v", ASM_STABS_OP, decl_name); |