re GNATS gcj/18 (Internal error: segfault on invalid cast)
authorAlexandre Petit-Bianco <apbianco@cygnus.com>
Sun, 12 Sep 1999 03:20:31 +0000 (03:20 +0000)
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>
Sun, 12 Sep 1999 03:20:31 +0000 (20:20 -0700)
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)

From-SVN: r29352

gcc/java/ChangeLog
gcc/java/parse.c
gcc/java/parse.y

index e54394f..a07eff5 100644 (file)
@@ -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
index 4f94462..ed1efec 100644 (file)
@@ -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
 \f
 #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;
index 64ba64e..a853534 100644 (file)
@@ -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;