diff options
author | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-12 03:20:31 +0000 |
---|---|---|
committer | apbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-12 03:20:31 +0000 |
commit | 544a1a88ec02e5f10742eb246b729047dd7dcbc6 (patch) | |
tree | de64c8d4fb6871b1fd5bf4b509e684866e602cae /gcc/java | |
parent | 10bee8fe499aa145826d30d084fa6eadf1aeda7f (diff) | |
download | gcc-544a1a88ec02e5f10742eb246b729047dd7dcbc6.tar.gz |
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.
(Fix to Java PR #18:
http://sourceware.cygnus.com/ml/java-prs/1999-q3/msg00015.html)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29352 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java')
-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 e54394f1b93..a07eff5a5a2 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 4f944622cec..ed1efec9cb5 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 64ba64ee6be..a8535348dae 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; |