diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/dwarf.h | 3 | ||||
-rw-r--r-- | gcc/dwarf2.h | 3 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 13 | ||||
-rw-r--r-- | gcc/dwarfout.c | 2 |
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 |