diff options
author | Jeff Sturm <jsturm@one-point.com> | 2003-11-03 03:58:50 +0000 |
---|---|---|
committer | Jeff Sturm <jsturm@gcc.gnu.org> | 2003-11-03 03:58:50 +0000 |
commit | 9bcdf7352caa4c4c929fb3cb5699564358cb8772 (patch) | |
tree | 693c37bd0b2829bca5f844560b0d400e36f360a2 /gcc | |
parent | 043022f253be2b1ae926e4745108df0532fded10 (diff) | |
download | gcc-9bcdf7352caa4c4c929fb3cb5699564358cb8772.zip gcc-9bcdf7352caa4c4c929fb3cb5699564358cb8772.tar.gz gcc-9bcdf7352caa4c4c929fb3cb5699564358cb8772.tar.bz2 |
re PR java/12866 (gcj checks `throws' clause on artificial method)
Fixes PR java/12866.
* parse.y (resolve_qualified_expression_name): Move test
for outer field access methods from here...
(check_thrown_exceptions) ...to here.
From-SVN: r73210
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/java/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/java/parse.y | 9 |
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 77c171c..fa42410 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2003-11-02 Jeff Sturm <jsturm@one-point.com> + + Fixes PR java/12866. + * parse.y (resolve_qualified_expression_name): Move test + for outer field access methods from here... + (check_thrown_exceptions) ...to here. + 2003-11-01 Kelley Cook <kcook@gcc.gnu.org> * .cvsignore: Delete. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 3f63300..448e0c8 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -9601,10 +9601,7 @@ resolve_qualified_expression_name (tree wfl, tree *found_decl, instantiation using a primary qualified by a `new' */ RESTORE_THIS_AND_CURRENT_CLASS; - /* EH check. No check on access$<n> functions */ - if (location - && !OUTER_FIELD_ACCESS_IDENTIFIER_P - (DECL_NAME (current_function_decl))) + if (location) { tree arguments = NULL_TREE; if (TREE_CODE (qual_wfl) == CALL_EXPR @@ -15783,6 +15780,10 @@ check_thrown_exceptions (int location, tree decl, tree this_expr) tree throws; int is_array_call = 0; + /* Skip check within generated methods, such as access$<n>. */ + if (OUTER_FIELD_ACCESS_IDENTIFIER_P (DECL_NAME (current_function_decl))) + return; + if (this_expr != NULL_TREE && TREE_CODE (TREE_TYPE (this_expr)) == POINTER_TYPE && TYPE_ARRAY_P (TREE_TYPE (TREE_TYPE (this_expr)))) |