aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorDouglas B Rupp <rupp@gnat.com>2010-06-25 18:49:36 +0000
committerDouglas Rupp <rupp@gcc.gnu.org>2010-06-25 18:49:36 +0000
commit8e7745dce20f0cf618b50afab811955e37a7da10 (patch)
tree7b24c98ceafdd26537ce1ffb8a7338ee0e8b357b /gcc/dwarf2out.c
parent5c8b27d7da8d5ba797bb4156caef9ad855f4d96d (diff)
downloadgcc-8e7745dce20f0cf618b50afab811955e37a7da10.zip
gcc-8e7745dce20f0cf618b50afab811955e37a7da10.tar.gz
gcc-8e7745dce20f0cf618b50afab811955e37a7da10.tar.bz2
dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
* dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function. * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function. * config/ia64/ia64-protos.h (ia64_start_function): Declare. * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents to ia64_start_function. Invoke it. * config/ia64/ia64.c (ia64_start_function): Call new function dwarf2out_vms_debug_main_pointer. From-SVN: r161402
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 5c4999d..ecfb37e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -17414,6 +17414,39 @@ add_name_and_src_coords_attributes (dw_die_ref die, tree decl)
#endif
}
+#ifdef VMS_DEBUGGING_INFO
+
+/* Output the debug main pointer die for VMS */
+
+void
+dwarf2out_vms_debug_main_pointer (void)
+{
+ char label[MAX_ARTIFICIAL_LABEL_BYTES];
+ dw_die_ref die;
+
+ /* Allocate the VMS debug main subprogram die. */
+ die = ggc_alloc_cleared_die_node ();
+ die->die_tag = DW_TAG_subprogram;
+ add_name_attribute (die, VMS_DEBUG_MAIN_POINTER);
+ ASM_GENERATE_INTERNAL_LABEL (label, PROLOGUE_END_LABEL,
+ current_function_funcdef_no);
+ add_AT_lbl_id (die, DW_AT_entry_pc, label);
+
+ /* Make it the first child of comp_unit_die. */
+ die->die_parent = comp_unit_die;
+ if (comp_unit_die->die_child)
+ {
+ die->die_sib = comp_unit_die->die_child->die_sib;
+ comp_unit_die->die_child->die_sib = die;
+ }
+ else
+ {
+ die->die_sib = die;
+ comp_unit_die->die_child = die;
+ }
+}
+#endif
+
/* Push a new declaration scope. */
static void