diff options
author | Per Bothner <bothner@cygnus.com> | 1998-11-15 14:12:42 +0000 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1998-11-15 06:12:42 -0800 |
commit | 0ef38928667f16fbf49c8a422495a7791e4340c9 (patch) | |
tree | 60f9d02b1b9c05fbbb80d07ea00e1cbb99a19cd1 /gcc/java/jcf-parse.c | |
parent | 46689c0ba4807c2f85b4626972a9b6554b3bea13 (diff) | |
download | gcc-0ef38928667f16fbf49c8a422495a7791e4340c9.zip gcc-0ef38928667f16fbf49c8a422495a7791e4340c9.tar.gz gcc-0ef38928667f16fbf49c8a422495a7791e4340c9.tar.bz2 |
jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
8
* jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
* jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
From-SVN: r23659
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r-- | gcc/java/jcf-parse.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index dd411b3..9e277da 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -155,6 +155,18 @@ set_source_filename (jcf, index) DECL_LINENUMBERS_OFFSET (current_method) = JCF_TELL (jcf) - 2; \ JCF_SKIP (jcf, n * 4); } +#define HANDLE_EXCEPTIONS_ATTRIBUTE(COUNT) \ +{ \ + int n = COUNT; \ + tree list = DECL_FUNCTION_THROWS (current_method); \ + while (--n >= 0) \ + { \ + tree thrown_class = get_class_constant (jcf, JCF_readu2 (jcf)); \ + list = tree_cons (NULL_TREE, thrown_class, list); \ + } \ + DECL_FUNCTION_THROWS (current_method) = nreverse (list); \ +} + #include "jcf-reader.c" static int yydebug; |