aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/dwarf.h3
-rw-r--r--gcc/dwarf2.h3
-rw-r--r--gcc/dwarf2out.c13
-rw-r--r--gcc/dwarfout.c2
5 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71fc4295..57a57bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/dwarf.h b/gcc/dwarf.h
index 3928574..db4526e 100644
--- a/gcc/dwarf.h
+++ b/gcc/dwarf.h
@@ -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 */
diff --git a/gcc/dwarf2.h b/gcc/dwarf2.h
index e9c4382..08a1cae 100644
--- a/gcc/dwarf2.h
+++ b/gcc/dwarf2.h
@@ -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
};
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index ed78012..5b1ec04 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -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
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c
index 9e3d5c6..7df90f2 100644
--- a/gcc/dwarfout.c
+++ b/gcc/dwarfout.c
@@ -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