diff options
author | Douglas B Rupp <rupp@gnat.com> | 2001-12-02 09:38:07 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-12-02 09:38:07 -0500 |
commit | 7a0c8d71088734946dd249184acb92f594ba9ddd (patch) | |
tree | e42e03bca7b1d30a4e1957a95213853fa5c9a849 /gcc/final.c | |
parent | e773246d9c11d0d34f03a921959e9db75ed7a84b (diff) | |
download | gcc-7a0c8d71088734946dd249184acb92f594ba9ddd.zip gcc-7a0c8d71088734946dd249184acb92f594ba9ddd.tar.gz gcc-7a0c8d71088734946dd249184acb92f594ba9ddd.tar.bz2 |
vms.h (VMS_DEBUGGING_INFO): New macro.
* config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro.
(PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG.
(ASM_SPEC): Don't redefine.
(OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define.
* config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm.
* config/alpha/vms-dwarf2.asm: New file.
* Makefile.in (OBJS): Add vmsdbgout.c and its rule.
* c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG.
* debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks.
(vmsdbgout_after_prologue): New declaration.
* defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE.
* dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address.
* dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG.
(dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG.
(dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address.
(add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO
* final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG.
Test VMS_DEBUGGING_INFO.
(final_end_function): Test for VMS_AND_DWARF2_DEBUG.
(final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG.
* flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG.
* toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and
VMS_AND_DWARF2_DEBUG.
(rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG.
(decode_g_option): Add "vms" to debug_type_names.
(process_options): Set vmsdbg_debug_hooks if -gvms.
(lang_independent_init): Emit line number for VMS unless -g0.
* tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG.
* vmsdbg.h, vmsdbgout.c: New files.
From-SVN: r47532
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/final.c b/gcc/final.c index b225334..7af2c1f 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1678,7 +1678,7 @@ final_start_function (first, file, optimize) (*debug_hooks->begin_prologue) (last_linenum, last_filename); #if defined (DWARF2_UNWIND_INFO) || defined (IA64_UNWIND_INFO) - if (write_symbols != DWARF2_DEBUG) + if (write_symbols != DWARF2_DEBUG && write_symbols != VMS_AND_DWARF2_DEBUG) dwarf2out_begin_prologue (0, NULL); #endif @@ -1715,6 +1715,12 @@ final_start_function (first, file, optimize) /* First output the function prologue: code to set up the stack frame. */ (*targetm.asm_out.function_prologue) (file, get_frame_size ()); +#ifdef VMS_DEBUGGING_INFO + /* Output label after the prologue of the function. */ + if (write_symbols == VMS_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG) + vmsdbgout_after_prologue (); +#endif + /* If the machine represents the prologue as RTL, the profiling code must be emitted when NOTE_INSN_PROLOGUE_END is scanned. */ #ifdef HAVE_prologue @@ -1846,7 +1852,8 @@ final_end_function () (*debug_hooks->end_epilogue) (); #if defined (DWARF2_UNWIND_INFO) - if (write_symbols != DWARF2_DEBUG && dwarf2out_do_frame ()) + if (write_symbols != DWARF2_DEBUG && write_symbols != VMS_AND_DWARF2_DEBUG + && dwarf2out_do_frame ()) dwarf2out_end_epilogue (); #endif @@ -2160,7 +2167,9 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) if (debug_info_level == DINFO_LEVEL_NORMAL || debug_info_level == DINFO_LEVEL_VERBOSE || write_symbols == DWARF_DEBUG - || write_symbols == DWARF2_DEBUG) + || write_symbols == DWARF2_DEBUG + || write_symbols == VMS_AND_DWARF2_DEBUG + || write_symbols == VMS_DEBUG) { int n = BLOCK_NUMBER (NOTE_BLOCK (insn)); @@ -2180,7 +2189,9 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) if (debug_info_level == DINFO_LEVEL_NORMAL || debug_info_level == DINFO_LEVEL_VERBOSE || write_symbols == DWARF_DEBUG - || write_symbols == DWARF2_DEBUG) + || write_symbols == DWARF2_DEBUG + || write_symbols == VMS_AND_DWARF2_DEBUG + || write_symbols == VMS_DEBUG) { int n = BLOCK_NUMBER (NOTE_BLOCK (insn)); |