summaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-12 03:20:31 +0000
committerapbianco <apbianco@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-12 03:20:31 +0000
commit544a1a88ec02e5f10742eb246b729047dd7dcbc6 (patch)
treede64c8d4fb6871b1fd5bf4b509e684866e602cae /gcc/java
parent10bee8fe499aa145826d30d084fa6eadf1aeda7f (diff)
downloadgcc-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/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 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;