aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/parse.c5
-rw-r--r--gcc/java/parse.y3
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index e54394f..a07eff5 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+Sat Sep 11 16:46:44 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
+
+ * parse.y (find_applicable_accessible_methods_list): Search
+ abstract classes as interfaces.
+
Thu Sep 9 17:33:28 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (finish_class): We're now outside a valid method
diff --git a/gcc/java/parse.c b/gcc/java/parse.c
index 4f94462..ed1efec 100644
--- a/gcc/java/parse.c
+++ b/gcc/java/parse.c
@@ -2388,8 +2388,10 @@ int yydebug; /* nonzero means print parse trace */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
+#ifndef YYPARSE_PARAM
int yyparse (void);
#endif
+#endif
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
@@ -10184,7 +10186,8 @@ find_applicable_accessible_methods_list (lc, class, name, arglist)
tree list = NULL_TREE, all_list = NULL_TREE;
/* Search interfaces */
- if (CLASS_INTERFACE (TYPE_NAME (class)))
+ if (CLASS_INTERFACE (TYPE_NAME (class))
+ || CLASS_ABSTRACT (TYPE_NAME (class)))
{
static tree searched_interfaces = NULL_TREE;
static int search_not_done = 0;
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 64ba64e..a853534 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -7599,7 +7599,8 @@ find_applicable_accessible_methods_list (lc, class, name, arglist)
tree list = NULL_TREE, all_list = NULL_TREE;
/* Search interfaces */
- if (CLASS_INTERFACE (TYPE_NAME (class)))
+ if (CLASS_INTERFACE (TYPE_NAME (class))
+ || CLASS_ABSTRACT (TYPE_NAME (class)))
{
static tree searched_interfaces = NULL_TREE;
static int search_not_done = 0;