[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Bug java/1427] gcj should generate N_MAIN stab or DW_AT_entry_point dwarf2 debug info




------- Comment #19 from steven at gcc dot gnu dot org  2006-10-14 14:17 -------
Someone should make gdb understand the DW_AT_calling_convention attribute. 
This is the bit necessary to make it work for Fortran.  I considered stealing a
bit on FUNCTION_DECL to mark it as the main program but it seems to me that
this hard-coded solution should be acceptable as well (but, your thoughts?).


Index: dwarf2out.c
===================================================================
--- dwarf2out.c (revision 117672)
+++ dwarf2out.c (working copy)
@@ -11105,11 +11105,18 @@ add_calling_convention_attribute (dw_die
 {
   enum dwarf_calling_convention value = DW_CC_normal;

-  value = targetm.dwarf_calling_convention (type);
+  if (is_fortran ())
+    {
+      /* The subroutine named MAIN__ is the main program for Fortran.  */
+      const char *subroutine_name = get_AT_string (subr_die, DW_AT_name);
+      if (strcmp (subroutine_name, "MAIN__") == 0)
+       value = DW_CC_program;
+    }
+  else
+    value = targetm.dwarf_calling_convention (type);

-  /* Only add the attribute if the backend requests it, and
-     is not DW_CC_normal.  */
-  if (value && (value != DW_CC_normal))
+  /* Only add the attribute if it is not DW_CC_normal.  */
+  if (value != DW_CC_normal)
     add_AT_unsigned (subr_die, DW_AT_calling_convention, value);
 }


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |steven at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1427

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



Reply to: