aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/class.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 4f4b8bd..3521770 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-03 Andrew Haley <aph@redhat.com>
+
+ PR java/18697
+ * class.c (layout_class_method): Don't fail to override a method
+ simply because it has DECL_ARTIFICIAL set.
+
2004-12-02 Tom Tromey <tromey@redhat.com>
PR java/16675:
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 2af0134..c314950 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -2338,8 +2338,7 @@ layout_class_method (tree this_class, tree super_class,
tree super_method = lookup_argument_method (super_class, method_name,
method_sig);
if (super_method != NULL_TREE
- && ! METHOD_DUMMY (super_method)
- && ! DECL_ARTIFICIAL (super_method))
+ && ! METHOD_DUMMY (super_method))
{
method_override = true;
if (! METHOD_PUBLIC (super_method) &&
@@ -2358,7 +2357,8 @@ layout_class_method (tree this_class, tree super_class,
tree method_index = get_method_index (super_method);
set_method_index (method_decl, method_index);
if (method_index == NULL_TREE
- && !CLASS_FROM_SOURCE_P (this_class))
+ && !CLASS_FROM_SOURCE_P (this_class)
+ && ! DECL_ARTIFICIAL (super_method))
error ("%Jnon-static method '%D' overrides static method",
method_decl, method_decl);
}