aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Sturm <jsturm@one-point.com>2003-11-03 03:58:50 +0000
committerJeff Sturm <jsturm@gcc.gnu.org>2003-11-03 03:58:50 +0000
commit9bcdf7352caa4c4c929fb3cb5699564358cb8772 (patch)
tree693c37bd0b2829bca5f844560b0d400e36f360a2 /gcc
parent043022f253be2b1ae926e4745108df0532fded10 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/java/parse.y9
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))))