From: Per Bothner Date: Mon, 15 Mar 1999 13:09:36 +0000 (-0800) Subject: class.c (make_class): Don't set CLASS_P here (because this function is also called... X-Git-Tag: prereleases/libgcj-0.1~432 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=2728f622015ae0cfdf0461cdc894e6b8745fa708;p=gcc.git class.c (make_class): Don't set CLASS_P here (because this function is also called by... a * class.c (make_class): Don't set CLASS_P here (because this function is also called by build_java_array_type). (push_class): Set CLASS_P here instead. * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant. * jcf-dump.c (print_access_flags): Take extra parameter to indicate context. If the context is class, perfer "super" over "synchronized". * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface. * parse.y (create_class): Don't call parser_check_super here; it is not robust. Always wait until later. * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to match what JDK 1.2 does), but don't set ACC_PUBLIC. From-SVN: r25783 --- diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 7a9cb91ac3a8..cc90341c4bf7 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -2696,7 +2696,9 @@ generate_classfile (clas, state) else i = 8 + 2 * total_supers; ptr = append_chunk (NULL, i, state); - i = get_access_flags (TYPE_NAME (clas)) | ACC_SUPER; + i = get_access_flags (TYPE_NAME (clas)); + if (! (i & ACC_INTERFACE)) + i |= ACC_SUPER; PUT2 (i); /* acces_flags */ i = find_class_constant (&state->cpool, clas); PUT2 (i); /* this_class */ if (clas == object_type_node)