Apply patch from Anthony Green to add java language support to Dwarf generation.
authorAnthony Green <green@cygnus.com>
Thu, 3 Aug 2000 21:04:42 +0000 (21:04 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 3 Aug 2000 21:04:42 +0000 (21:04 +0000)
From-SVN: r35460

gcc/ChangeLog
gcc/dwarf.h
gcc/dwarf2.h
gcc/dwarf2out.c
gcc/dwarfout.c

index 71fc42958d088449a6a58a1e61b8750399277727..57a57bbb08a3030acf98c2d431f5a01f853189fd 100644 (file)
@@ -1,3 +1,12 @@
+2000-08-03  Anthony Green  <green@cygnus.com>
+
+       * dwarf2out.c (gen_compile_unit_die): Add java language support.
+       (add_bound_info): Check for java language.
+       (is_java): New function.
+       * dwarfout.c (output_compile_unit_die): Ditto.
+       * dwarf.h (dwarf_source_language): Add java source language type.
+       * dwarf2.h (dwarf_source_language): Ditto.
+
 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
        * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
index 3928574a3f16c5ed000f1c46c9c64c1c5b1e913f..db4526e02f7f170941e46ad7402a850bf52eac3c 100644 (file)
@@ -302,7 +302,8 @@ enum dwarf_source_language {
     LANG_FORTRAN77     = 0x00000007,
     LANG_FORTRAN90     = 0x00000008,
     LANG_PASCAL83      = 0x00000009,
-    LANG_MODULA2       = 0x0000000a
+    LANG_MODULA2       = 0x0000000a,
+    LANG_JAVA          = 0x00009af4
 };
 
 #define LANG_lo_user   0x00008000  /* implementation-defined range start */
index e9c43829d6501ea403a8cb4e4e534de23af4bfed..08a1caedbacc5609809866c1a9d3ee0d769d00e2 100644 (file)
@@ -534,7 +534,8 @@ enum dwarf_source_language
     DW_LANG_Fortran90 = 0x0008,
     DW_LANG_Pascal83 = 0x0009,
     DW_LANG_Modula2 = 0x000a,
-    DW_LANG_Mips_Assembler = 0x8001
+    DW_LANG_Mips_Assembler = 0x8001,
+    DW_LANG_Java = 0x9af4
   };
 
 
index ed78012127aa505802f5d7144c714a0a2797bd0c..5b1ec0427c25eea3c0bfb2ee03617b78613d01bb 100644 (file)
@@ -3324,6 +3324,7 @@ static unsigned get_AT_unsigned           PARAMS ((dw_die_ref,
 static inline dw_die_ref get_AT_ref    PARAMS ((dw_die_ref,
                                                 enum dwarf_attribute));
 static int is_c_family                 PARAMS ((void));
+static int is_java                     PARAMS ((void));
 static int is_fortran                  PARAMS ((void));
 static void remove_AT                  PARAMS ((dw_die_ref,
                                                 enum dwarf_attribute));
@@ -4516,6 +4517,14 @@ is_fortran ()
   return (lang == DW_LANG_Fortran77 || lang == DW_LANG_Fortran90);
 } 
 
+static inline int
+is_java ()
+{
+  register unsigned lang = get_AT_unsigned (comp_unit_die, DW_AT_language);
+
+  return (lang == DW_LANG_Java);
+}
+
 /* Free up the memory used by A.  */
 
 static inline void free_AT PARAMS ((dw_attr_ref));
@@ -7407,7 +7416,7 @@ add_bound_info (subrange_die, bound_attr, bound)
     case INTEGER_CST:
       if (! host_integerp (bound, 0)
          || (bound_attr == DW_AT_lower_bound
-             && ((is_c_family () && integer_zerop (bound))
+             && (((is_c_family () || is_java ()) &&  integer_zerop (bound))
                  || (is_fortran () && integer_onep (bound)))))
        /* use the default */
        ;
@@ -9036,6 +9045,8 @@ gen_compile_unit_die (filename)
     language = DW_LANG_Fortran77;
   else if (strcmp (language_string, "GNU Pascal") == 0)
     language = DW_LANG_Pascal83;
+  else if (strcmp (language_string, "GNU Java") == 0)
+    language = DW_LANG_Java;
   else if (flag_traditional)
     language = DW_LANG_C;
   else
index 9e3d5c6639ccf61cebeebf19a989e3b3386082e0..7df90f20b8fc3dc6c04feab69a3dc0a487c3b5a1 100644 (file)
@@ -3703,6 +3703,8 @@ output_compile_unit_die (arg)
     language_attribute (LANG_FORTRAN77);
   else if (strcmp (language_string, "GNU Pascal") == 0)
     language_attribute (LANG_PASCAL83);
+  else if (strcmp (language_string, "GNU Java") == 0)
+    language_attribute (LANG_JAVA);
   else if (flag_traditional)
     language_attribute (LANG_C);
   else