From b82daa87018663e0eb5db1ff1618070a55b08dc1 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Fri, 8 Jan 1999 15:50:10 +0000 Subject: [PATCH] check-init.c (check_init): If compiling to native, we don't see THROW_EXPR. @ * check-init.c (check_init): If compiling to native, we don't see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw). From-SVN: r24575 --- gcc/java/ChangeLog | 5 +++++ gcc/java/check-init.c | 15 ++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 4adf908..3e25bdf 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +Fri Jan 8 15:48:03 1999 Per Bothner + + * check-init.c (check_init): If compiling to native, we don't + see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw). + 1999-01-08 Tom Tromey * parse-scan.y (variable_declarator_id): Set or increment diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c index c4b73e2..ec3e5ad 100644 --- a/gcc/java/check-init.c +++ b/gcc/java/check-init.c @@ -571,12 +571,12 @@ check_init (exp, before) case THROW_EXPR: if (TREE_OPERAND (exp, 0)) check_init (TREE_OPERAND (exp, 0), before); - SET_ALL (before); - return; + goto never_continues; case ERROR_MARK: + never_continues: SET_ALL (before); - break; + return; case COND_EXPR: case TRUTH_ANDIF_EXPR: @@ -649,11 +649,16 @@ check_init (exp, before) case NEW_CLASS_EXPR: case CALL_EXPR: { + tree func = TREE_OPERAND (exp, 0); tree x = TREE_OPERAND (exp, 1); - check_init (TREE_OPERAND (exp, 0), before); - + if (TREE_CODE (func) == ADDR_EXPR) + func = TREE_OPERAND (func, 0); + check_init (func, before); + for ( ; x != NULL_TREE; x = TREE_CHAIN (x)) check_init (TREE_VALUE (x), before); + if (func == throw_node) + goto never_continues; } break; -- 2.7.4