From 837491bcc84cbf36b19c2be07768ac7e6918a0e9 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Tue, 1 Mar 2005 09:03:45 -0800 Subject: [PATCH] jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE... * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined. From-SVN: r95748 --- gcc/java/ChangeLog | 6 ++++++ gcc/java/jcf-dump.c | 7 +++++++ gcc/java/jcf-reader.c | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index ce77d68cd26..7be7e7c45bd 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2005-03-01 Per Bothner + + * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) + if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined. + * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents. + 2005-03-01 Per Bothner * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro. diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c index 93d640f05bc..297bfed378c 100644 --- a/gcc/java/jcf-dump.c +++ b/gcc/java/jcf-dump.c @@ -342,6 +342,13 @@ utf8_equal_string (JCF *jcf, int index, const char * value) fputc ('\n', out); \ } +#define HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE(LENGTH) \ +{ int i, n = (LENGTH), c = 0; \ + COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \ + fputc ('\n', out); \ + for (i = 0; i < n; i++) { c = JCF_readu(jcf); fputc(c, out); } \ + if (c != '\r' && c != '\n') fputc('\n', out); } + #define PROCESS_OTHER_ATTRIBUTE(JCF, INDEX, LENGTH) \ { COMMON_HANDLE_ATTRIBUTE(JCF, INDEX, LENGTH); \ fputc ('\n', out); JCF_SKIP (JCF, LENGTH); } diff --git a/gcc/java/jcf-reader.c b/gcc/java/jcf-reader.c index 9b3ad161773..8353920d8dd 100644 --- a/gcc/java/jcf-reader.c +++ b/gcc/java/jcf-reader.c @@ -227,6 +227,13 @@ get_attribute (JCF *jcf) HANDLE_DEPRECATED_ATTRIBUTE (); } else +#endif +#ifdef HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE + if (MATCH_ATTRIBUTE ("SourceDebugExtension")) /* JSR 45 */ + { + HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE (attribute_length); + } + else #endif { #ifdef PROCESS_OTHER_ATTRIBUTE