aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java')
-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))))