summaryrefslogtreecommitdiff
path: root/gcc/java/jcf-dump.c
diff options
context:
space:
mode:
authorapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-14 05:01:05 +0000
committerapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-14 05:01:05 +0000
commit4654e794323c05fcfabee95cb2bf334fb30a3873 (patch)
treebf1619873e76c17441a1423f1eaba6a4a64f054a /gcc/java/jcf-dump.c
parent86220f453c768a8deb58678e4010a892011a2cce (diff)
downloadgcc-4654e794323c05fcfabee95cb2bf334fb30a3873.tar.gz
Added Java 1.1 language features.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32517 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/jcf-dump.c')
-rw-r--r--gcc/java/jcf-dump.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c
index 8fb63cb34e5..dfff14e6beb 100644
--- a/gcc/java/jcf-dump.c
+++ b/gcc/java/jcf-dump.c
@@ -294,6 +294,38 @@ DEFUN(utf8_equal_string, (jcf, index, value),
else \
JCF_SKIP (jcf, 4 * n); }
+#define HANDLE_INNERCLASSES_ATTRIBUTE(COUNT) \
+{ int n = (COUNT); \
+ COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \
+ while (n--) \
+ { \
+ uint16 inner_class_info_index = JCF_readu2 (jcf); \
+ uint16 outer_class_info_index = JCF_readu2 (jcf); \
+ uint16 inner_name_index = JCF_readu2 (jcf); \
+ uint16 inner_class_access_flags = JCF_readu2 (jcf); \
+ \
+ if (flag_print_class_info) \
+ { \
+ fprintf (out, "\n class: "); \
+ if (flag_print_constant_pool) \
+ fprintf (out, "%d=", inner_class_info_index); \
+ print_constant_terse (out, jcf, \
+ inner_class_info_index, CONSTANT_Class); \
+ fprintf (out, " (%d=", inner_name_index); \
+ print_constant_terse (out, jcf, inner_name_index, CONSTANT_Utf8); \
+ fprintf (out, "), access flags: 0x%x", inner_class_access_flags); \
+ print_access_flags (out, inner_class_access_flags, 'c'); \
+ fprintf (out, ", outer class: "); \
+ if (flag_print_constant_pool) \
+ fprintf (out, "%d=", outer_class_info_index); \
+ print_constant_terse (out, jcf, \
+ outer_class_info_index, CONSTANT_Class); \
+ } \
+ } \
+ if (flag_print_class_info) \
+ fputc ('\n', out); \
+}
+
#define PROCESS_OTHER_ATTRIBUTE(JCF, INDEX, LENGTH) \
{ COMMON_HANDLE_ATTRIBUTE(JCF, INDEX, LENGTH); \
fputc ('\n', out); JCF_SKIP (JCF, LENGTH); }