diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/java/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/java/parse.c | 5 | ||||
| -rw-r--r-- | gcc/java/parse.y | 3 |
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; |
