From: Alexandre Petit-Bianco Date: Sun, 12 Sep 1999 03:20:31 +0000 (+0000) Subject: re GNATS gcj/18 (Internal error: segfault on invalid cast) X-Git-Tag: prereleases/libstdc++-2.92~10661 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4e16489df24f0aefb1e054e5eaa951fe5766048;p=thirdparty%2Fgcc.git re GNATS gcj/18 (Internal error: segfault on invalid cast) Sat Sep 11 16:46:44 1999 Alexandre Petit-Bianco * 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 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index e54394f1b938..a07eff5a5a2e 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +Sat Sep 11 16:46:44 1999 Alexandre Petit-Bianco + + * parse.y (find_applicable_accessible_methods_list): Search + abstract classes as interfaces. + Thu Sep 9 17:33:28 1999 Alexandre Petit-Bianco * class.c (finish_class): We're now outside a valid method diff --git a/gcc/java/parse.c b/gcc/java/parse.c index 4f944622cec7..ed1efec9cb54 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 64ba64ee6be2..a8535348daeb 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;