aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
authorPer Bothner <bothner@cygnus.com>1998-11-15 14:12:42 +0000
committerPer Bothner <bothner@gcc.gnu.org>1998-11-15 06:12:42 -0800
commit0ef38928667f16fbf49c8a422495a7791e4340c9 (patch)
tree60f9d02b1b9c05fbbb80d07ea00e1cbb99a19cd1 /gcc/java/jcf-parse.c
parent46689c0ba4807c2f85b4626972a9b6554b3bea13 (diff)
downloadgcc-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.c12
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;