Commit 473e7b07 by Tom Tromey Committed by Tom Tromey

re GNATS gcj/124 (protected constructor for InvocationTargetException still visible)

	* parse.y (not_accessible_p): Use member's class, not current
	class, when doing inheritance check for protected reference.
	Fixes PR gcj/124.

From-SVN: r33315
parent b3b42a4d
2000-04-20 Tom Tromey <tromey@cygnus.com>
* parse.y (not_accessible_p): Use member's class, not current
class, when doing inheritance check for protected reference.
Fixes PR gcj/124.
Thu Apr 20 18:20:58 2000 Jason Schroeder <shrode@subnature.com> Thu Apr 20 18:20:58 2000 Jason Schroeder <shrode@subnature.com>
* jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction. * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
......
/* A Bison parser, made from ./parse.y /* A Bison parser, made from ./parse.y
by GNU Bison version 1.28 */ by GNU Bison version 1.25
*/
#define YYBISON 1 /* Identify Bison output. */ #define YYBISON 1 /* Identify Bison output. */
...@@ -11,113 +12,113 @@ ...@@ -11,113 +12,113 @@
#define yychar java_char #define yychar java_char
#define yydebug java_debug #define yydebug java_debug
#define yynerrs java_nerrs #define yynerrs java_nerrs
#define PLUS_TK 257 #define PLUS_TK 258
#define MINUS_TK 258 #define MINUS_TK 259
#define MULT_TK 259 #define MULT_TK 260
#define DIV_TK 260 #define DIV_TK 261
#define REM_TK 261 #define REM_TK 262
#define LS_TK 262 #define LS_TK 263
#define SRS_TK 263 #define SRS_TK 264
#define ZRS_TK 264 #define ZRS_TK 265
#define AND_TK 265 #define AND_TK 266
#define XOR_TK 266 #define XOR_TK 267
#define OR_TK 267 #define OR_TK 268
#define BOOL_AND_TK 268 #define BOOL_AND_TK 269
#define BOOL_OR_TK 269 #define BOOL_OR_TK 270
#define EQ_TK 270 #define EQ_TK 271
#define NEQ_TK 271 #define NEQ_TK 272
#define GT_TK 272 #define GT_TK 273
#define GTE_TK 273 #define GTE_TK 274
#define LT_TK 274 #define LT_TK 275
#define LTE_TK 275 #define LTE_TK 276
#define PLUS_ASSIGN_TK 276 #define PLUS_ASSIGN_TK 277
#define MINUS_ASSIGN_TK 277 #define MINUS_ASSIGN_TK 278
#define MULT_ASSIGN_TK 278 #define MULT_ASSIGN_TK 279
#define DIV_ASSIGN_TK 279 #define DIV_ASSIGN_TK 280
#define REM_ASSIGN_TK 280 #define REM_ASSIGN_TK 281
#define LS_ASSIGN_TK 281 #define LS_ASSIGN_TK 282
#define SRS_ASSIGN_TK 282 #define SRS_ASSIGN_TK 283
#define ZRS_ASSIGN_TK 283 #define ZRS_ASSIGN_TK 284
#define AND_ASSIGN_TK 284 #define AND_ASSIGN_TK 285
#define XOR_ASSIGN_TK 285 #define XOR_ASSIGN_TK 286
#define OR_ASSIGN_TK 286 #define OR_ASSIGN_TK 287
#define PUBLIC_TK 287 #define PUBLIC_TK 288
#define PRIVATE_TK 288 #define PRIVATE_TK 289
#define PROTECTED_TK 289 #define PROTECTED_TK 290
#define STATIC_TK 290 #define STATIC_TK 291
#define FINAL_TK 291 #define FINAL_TK 292
#define SYNCHRONIZED_TK 292 #define SYNCHRONIZED_TK 293
#define VOLATILE_TK 293 #define VOLATILE_TK 294
#define TRANSIENT_TK 294 #define TRANSIENT_TK 295
#define NATIVE_TK 295 #define NATIVE_TK 296
#define PAD_TK 296 #define PAD_TK 297
#define ABSTRACT_TK 297 #define ABSTRACT_TK 298
#define MODIFIER_TK 298 #define MODIFIER_TK 299
#define DECR_TK 299 #define DECR_TK 300
#define INCR_TK 300 #define INCR_TK 301
#define DEFAULT_TK 301 #define DEFAULT_TK 302
#define IF_TK 302 #define IF_TK 303
#define THROW_TK 303 #define THROW_TK 304
#define BOOLEAN_TK 304 #define BOOLEAN_TK 305
#define DO_TK 305 #define DO_TK 306
#define IMPLEMENTS_TK 306 #define IMPLEMENTS_TK 307
#define THROWS_TK 307 #define THROWS_TK 308
#define BREAK_TK 308 #define BREAK_TK 309
#define IMPORT_TK 309 #define IMPORT_TK 310
#define ELSE_TK 310 #define ELSE_TK 311
#define INSTANCEOF_TK 311 #define INSTANCEOF_TK 312
#define RETURN_TK 312 #define RETURN_TK 313
#define VOID_TK 313 #define VOID_TK 314
#define CATCH_TK 314 #define CATCH_TK 315
#define INTERFACE_TK 315 #define INTERFACE_TK 316
#define CASE_TK 316 #define CASE_TK 317
#define EXTENDS_TK 317 #define EXTENDS_TK 318
#define FINALLY_TK 318 #define FINALLY_TK 319
#define SUPER_TK 319 #define SUPER_TK 320
#define WHILE_TK 320 #define WHILE_TK 321
#define CLASS_TK 321 #define CLASS_TK 322
#define SWITCH_TK 322 #define SWITCH_TK 323
#define CONST_TK 323 #define CONST_TK 324
#define TRY_TK 324 #define TRY_TK 325
#define FOR_TK 325 #define FOR_TK 326
#define NEW_TK 326 #define NEW_TK 327
#define CONTINUE_TK 327 #define CONTINUE_TK 328
#define GOTO_TK 328 #define GOTO_TK 329
#define PACKAGE_TK 329 #define PACKAGE_TK 330
#define THIS_TK 330 #define THIS_TK 331
#define BYTE_TK 331 #define BYTE_TK 332
#define SHORT_TK 332 #define SHORT_TK 333
#define INT_TK 333 #define INT_TK 334
#define LONG_TK 334 #define LONG_TK 335
#define CHAR_TK 335 #define CHAR_TK 336
#define INTEGRAL_TK 336 #define INTEGRAL_TK 337
#define FLOAT_TK 337 #define FLOAT_TK 338
#define DOUBLE_TK 338 #define DOUBLE_TK 339
#define FP_TK 339 #define FP_TK 340
#define ID_TK 340 #define ID_TK 341
#define REL_QM_TK 341 #define REL_QM_TK 342
#define REL_CL_TK 342 #define REL_CL_TK 343
#define NOT_TK 343 #define NOT_TK 344
#define NEG_TK 344 #define NEG_TK 345
#define ASSIGN_ANY_TK 345 #define ASSIGN_ANY_TK 346
#define ASSIGN_TK 346 #define ASSIGN_TK 347
#define OP_TK 347 #define OP_TK 348
#define CP_TK 348 #define CP_TK 349
#define OCB_TK 349 #define OCB_TK 350
#define CCB_TK 350 #define CCB_TK 351
#define OSB_TK 351 #define OSB_TK 352
#define CSB_TK 352 #define CSB_TK 353
#define SC_TK 353 #define SC_TK 354
#define C_TK 354 #define C_TK 355
#define DOT_TK 355 #define DOT_TK 356
#define STRING_LIT_TK 356 #define STRING_LIT_TK 357
#define CHAR_LIT_TK 357 #define CHAR_LIT_TK 358
#define INT_LIT_TK 358 #define INT_LIT_TK 359
#define FP_LIT_TK 359 #define FP_LIT_TK 360
#define TRUE_TK 360 #define TRUE_TK 361
#define FALSE_TK 361 #define FALSE_TK 362
#define BOOL_LIT_TK 362 #define BOOL_LIT_TK 363
#define NULL_TK 363 #define NULL_TK 364
#line 48 "./parse.y" #line 48 "./parse.y"
...@@ -516,7 +517,7 @@ typedef union { ...@@ -516,7 +517,7 @@ typedef union {
#define YYFLAG -32768 #define YYFLAG -32768
#define YYNTBASE 110 #define YYNTBASE 110
#define YYTRANSLATE(x) ((unsigned)(x) <= 363 ? yytranslate[x] : 272) #define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 272)
static const char yytranslate[] = { 0, static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
...@@ -544,18 +545,18 @@ static const char yytranslate[] = { 0, ...@@ -544,18 +545,18 @@ static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
107, 108, 109 106, 107, 108, 109
}; };
#if YYDEBUG != 0 #if YYDEBUG != 0
...@@ -2386,8 +2387,7 @@ static const short yycheck[] = { 3, ...@@ -2386,8 +2387,7 @@ static const short yycheck[] = { 3,
#define YYPURE 1 #define YYPURE 1
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple" #line 3 "/usr/share/misc/bison.simple"
/* This file comes from bison-1.28. */
/* Skeleton output parser for bison, /* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
...@@ -2404,66 +2404,46 @@ static const short yycheck[] = { 3, ...@@ -2404,66 +2404,46 @@ static const short yycheck[] = { 3,
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a /* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction. Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */ in version 1.24 of Bison. */
/* This is the parser code that is written into each bison parser #ifndef alloca
when the %semantic_parser declaration is not specified in the grammar.
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__ #ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca #define alloca __builtin_alloca
#else /* not GNU C. */ #else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
#define YYSTACK_USE_ALLOCA
#include <alloca.h> #include <alloca.h>
#else /* not sparc */ #else /* not sparc */
/* We think this test detects Watcom and Microsoft C. */ #if defined (MSDOS) && !defined (__TURBOC__)
/* This used to test MSDOS, but that is a bad idea
since that symbol is in the user namespace. */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
instead, just don't use alloca. */
#include <malloc.h> #include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */ #else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX) #if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace. #include <malloc.h>
So I turned it off. rms, 2 May 1997. */
/* #include <malloc.h> */
#pragma alloca #pragma alloca
#define YYSTACK_USE_ALLOCA #else /* not MSDOS, __TURBOC__, or _AIX */
#else /* not MSDOS, or __TURBOC__, or _AIX */ #ifdef __hpux
#if 0 #ifdef __cplusplus
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, extern "C" {
and on HPUX 10. Eventually we can turn this on. */ void *alloca (unsigned int);
#define YYSTACK_USE_ALLOCA };
#define alloca __builtin_alloca #else /* not __cplusplus */
void *alloca ();
#endif /* not __cplusplus */
#endif /* __hpux */ #endif /* __hpux */
#endif
#endif /* not _AIX */ #endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */ #endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */ #endif /* not sparc. */
#endif /* not GNU C */ #endif /* not GNU C. */
#endif /* alloca not defined */ #endif /* alloca not defined. */
#endif /* YYSTACK_USE_ALLOCA not defined */
#ifdef YYSTACK_USE_ALLOCA /* This is the parser code that is written into each bison parser
#define YYSTACK_ALLOC alloca when the %semantic_parser declaration is not specified in the grammar.
#else It was written by Richard Stallman by simplifying the hairy parser
#define YYSTACK_ALLOC malloc used when %semantic_parser is specified. */
#endif
/* Note: there must be only one dollar sign in this file. /* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action It is replaced by the list of actions, each action
...@@ -2473,8 +2453,8 @@ static const short yycheck[] = { 3, ...@@ -2473,8 +2453,8 @@ static const short yycheck[] = { 3,
#define yyclearin (yychar = YYEMPTY) #define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2 #define YYEMPTY -2
#define YYEOF 0 #define YYEOF 0
#define YYACCEPT goto yyacceptlab #define YYACCEPT return(0)
#define YYABORT goto yyabortlab #define YYABORT return(1)
#define YYERROR goto yyerrlab1 #define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror. /* Like YYERROR except do call yyerror.
This remains here temporarily to ease the This remains here temporarily to ease the
...@@ -2556,10 +2536,12 @@ int yydebug; /* nonzero means print parse trace */ ...@@ -2556,10 +2536,12 @@ int yydebug; /* nonzero means print parse trace */
#define YYMAXDEPTH 10000 #define YYMAXDEPTH 10000
#endif #endif
/* Define __yy_memcpy. Note that the size argument /* Prevent warning if -Wstrict-prototypes. */
should be passed with type unsigned int, because that is what the non-GCC #ifdef __GNUC__
definitions require. With GCC, __builtin_memcpy takes an arg #ifndef YYPARSE_PARAM
of type size_t, but it can handle unsigned int. */ int yyparse (void);
#endif
#endif
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
...@@ -2572,7 +2554,7 @@ static void ...@@ -2572,7 +2554,7 @@ static void
__yy_memcpy (to, from, count) __yy_memcpy (to, from, count)
char *to; char *to;
char *from; char *from;
unsigned int count; int count;
{ {
register char *f = from; register char *f = from;
register char *t = to; register char *t = to;
...@@ -2587,10 +2569,10 @@ __yy_memcpy (to, from, count) ...@@ -2587,10 +2569,10 @@ __yy_memcpy (to, from, count)
/* This is the most reliable way to avoid incompatibilities /* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */ in available built-in functions on various systems. */
static void static void
__yy_memcpy (char *to, char *from, unsigned int count) __yy_memcpy (char *to, char *from, int count)
{ {
register char *t = to;
register char *f = from; register char *f = from;
register char *t = to;
register int i = count; register int i = count;
while (i-- > 0) while (i-- > 0)
...@@ -2600,7 +2582,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) ...@@ -2600,7 +2582,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
#endif #endif
#endif #endif
#line 217 "/usr/lib/bison.simple" #line 196 "/usr/share/misc/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed /* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *. into yyparse. The argument should have type void *.
...@@ -2621,15 +2603,6 @@ __yy_memcpy (char *to, char *from, unsigned int count) ...@@ -2621,15 +2603,6 @@ __yy_memcpy (char *to, char *from, unsigned int count)
#define YYPARSE_PARAM_DECL #define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */ #endif /* not YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif
int int
yyparse(YYPARSE_PARAM_ARG) yyparse(YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL YYPARSE_PARAM_DECL
...@@ -2658,7 +2631,6 @@ yyparse(YYPARSE_PARAM_ARG) ...@@ -2658,7 +2631,6 @@ yyparse(YYPARSE_PARAM_ARG)
#endif #endif
int yystacksize = YYINITDEPTH; int yystacksize = YYINITDEPTH;
int yyfree_stacks = 0;
#ifdef YYPURE #ifdef YYPURE
int yychar; int yychar;
...@@ -2743,32 +2715,18 @@ yynewstate: ...@@ -2743,32 +2715,18 @@ yynewstate:
if (yystacksize >= YYMAXDEPTH) if (yystacksize >= YYMAXDEPTH)
{ {
yyerror("parser stack overflow"); yyerror("parser stack overflow");
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 2; return 2;
} }
yystacksize *= 2; yystacksize *= 2;
if (yystacksize > YYMAXDEPTH) if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
yyfree_stacks = 1; __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
#endif yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
__yy_memcpy ((char *)yyss, (char *)yyss1,
size * (unsigned int) sizeof (*yyssp));
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
__yy_memcpy ((char *)yyvs, (char *)yyvs1,
size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED #ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
__yy_memcpy ((char *)yyls, (char *)yyls1, __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
size * (unsigned int) sizeof (*yylsp));
#endif #endif
#endif /* no yyoverflow */ #endif /* no yyoverflow */
...@@ -5020,7 +4978,7 @@ case 503: ...@@ -5020,7 +4978,7 @@ case 503:
break;} break;}
} }
/* the action file gets copied in in place of this dollarsign */ /* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/lib/bison.simple" #line 498 "/usr/share/misc/bison.simple"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
...@@ -5215,30 +5173,6 @@ yyerrhandle: ...@@ -5215,30 +5173,6 @@ yyerrhandle:
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
yyacceptlab:
/* YYACCEPT comes here. */
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 0;
yyabortlab:
/* YYABORT comes here. */
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 1;
} }
#line 2546 "./parse.y" #line 2546 "./parse.y"
...@@ -11823,14 +11757,14 @@ not_accessible_p (reference, member, from_super) ...@@ -11823,14 +11757,14 @@ not_accessible_p (reference, member, from_super)
/* Otherwise, access is granted if occuring from the class where /* Otherwise, access is granted if occuring from the class where
member is declared or a subclass of it */ member is declared or a subclass of it */
if (inherits_from_p (reference, current_class)) if (inherits_from_p (reference, DECL_CONTEXT (member)))
return 0; return 0;
return 1; return 1;
} }
/* Check access on private members. Access is granted only if it /* Check access on private members. Access is granted only if it
occurs from within the class in witch it is declared. Exceptions occurs from within the class in which it is declared. Exceptions
are access from inner-classes. This section is probably not are accesses from inner-classes. This section is probably not
complete. FIXME */ complete. FIXME */
if (access_flag & ACC_PRIVATE) if (access_flag & ACC_PRIVATE)
return (current_class == DECL_CONTEXT (member) ? 0 : return (current_class == DECL_CONTEXT (member) ? 0 :
......
...@@ -9125,14 +9125,14 @@ not_accessible_p (reference, member, from_super) ...@@ -9125,14 +9125,14 @@ not_accessible_p (reference, member, from_super)
/* Otherwise, access is granted if occuring from the class where /* Otherwise, access is granted if occuring from the class where
member is declared or a subclass of it */ member is declared or a subclass of it */
if (inherits_from_p (reference, current_class)) if (inherits_from_p (reference, DECL_CONTEXT (member)))
return 0; return 0;
return 1; return 1;
} }
/* Check access on private members. Access is granted only if it /* Check access on private members. Access is granted only if it
occurs from within the class in witch it is declared. Exceptions occurs from within the class in which it is declared. Exceptions
are access from inner-classes. This section is probably not are accesses from inner-classes. This section is probably not
complete. FIXME */ complete. FIXME */
if (access_flag & ACC_PRIVATE) if (access_flag & ACC_PRIVATE)
return (current_class == DECL_CONTEXT (member) ? 0 : return (current_class == DECL_CONTEXT (member) ? 0 :
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment