Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
c6c4a70b
Commit
c6c4a70b
authored
May 01, 2000
by
Alexandre Petit-Bianco
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(The patch contained impurities -- this should fix the situation.)
From-SVN: r33591
parent
7aa88bcf
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
239 additions
and
181 deletions
+239
-181
gcc/java/parse.c
+236
-168
gcc/java/parse.y
+3
-13
No files found.
gcc/java/parse.c
View file @
c6c4a70b
/* A Bison parser, made from ./parse.y
by GNU Bison version 1.25
*/
by GNU Bison version 1.28 */
#define YYBISON 1
/* Identify Bison output. */
...
...
@@ -12,113 +11,113 @@
#define yychar java_char
#define yydebug java_debug
#define yynerrs java_nerrs
#define PLUS_TK 25
8
#define MINUS_TK 25
9
#define MULT_TK 2
60
#define DIV_TK 26
1
#define REM_TK 26
2
#define LS_TK 26
3
#define SRS_TK 26
4
#define ZRS_TK 26
5
#define AND_TK 26
6
#define XOR_TK 26
7
#define OR_TK 26
8
#define BOOL_AND_TK 26
9
#define BOOL_OR_TK 2
70
#define EQ_TK 27
1
#define NEQ_TK 27
2
#define GT_TK 27
3
#define GTE_TK 27
4
#define LT_TK 27
5
#define LTE_TK 27
6
#define PLUS_ASSIGN_TK 27
7
#define MINUS_ASSIGN_TK 27
8
#define MULT_ASSIGN_TK 27
9
#define DIV_ASSIGN_TK 2
80
#define REM_ASSIGN_TK 28
1
#define LS_ASSIGN_TK 28
2
#define SRS_ASSIGN_TK 28
3
#define ZRS_ASSIGN_TK 28
4
#define AND_ASSIGN_TK 28
5
#define XOR_ASSIGN_TK 28
6
#define OR_ASSIGN_TK 28
7
#define PUBLIC_TK 28
8
#define PRIVATE_TK 28
9
#define PROTECTED_TK 2
90
#define STATIC_TK 29
1
#define FINAL_TK 29
2
#define SYNCHRONIZED_TK 29
3
#define VOLATILE_TK 29
4
#define TRANSIENT_TK 29
5
#define NATIVE_TK 29
6
#define PAD_TK 29
7
#define ABSTRACT_TK 29
8
#define MODIFIER_TK 29
9
#define DECR_TK
300
#define INCR_TK 30
1
#define DEFAULT_TK 30
2
#define IF_TK 30
3
#define THROW_TK 30
4
#define BOOLEAN_TK 30
5
#define DO_TK 30
6
#define IMPLEMENTS_TK 30
7
#define THROWS_TK 30
8
#define BREAK_TK 30
9
#define IMPORT_TK 3
10
#define ELSE_TK 31
1
#define INSTANCEOF_TK 31
2
#define RETURN_TK 31
3
#define VOID_TK 31
4
#define CATCH_TK 31
5
#define INTERFACE_TK 31
6
#define CASE_TK 31
7
#define EXTENDS_TK 31
8
#define FINALLY_TK 31
9
#define SUPER_TK 3
20
#define WHILE_TK 32
1
#define CLASS_TK 32
2
#define SWITCH_TK 32
3
#define CONST_TK 32
4
#define TRY_TK 32
5
#define FOR_TK 32
6
#define NEW_TK 32
7
#define CONTINUE_TK 32
8
#define GOTO_TK 32
9
#define PACKAGE_TK 3
30
#define THIS_TK 33
1
#define BYTE_TK 33
2
#define SHORT_TK 33
3
#define INT_TK 33
4
#define LONG_TK 33
5
#define CHAR_TK 33
6
#define INTEGRAL_TK 33
7
#define FLOAT_TK 33
8
#define DOUBLE_TK 33
9
#define FP_TK 3
40
#define ID_TK 34
1
#define REL_QM_TK 34
2
#define REL_CL_TK 34
3
#define NOT_TK 34
4
#define NEG_TK 34
5
#define ASSIGN_ANY_TK 34
6
#define ASSIGN_TK 34
7
#define OP_TK 34
8
#define CP_TK 34
9
#define OCB_TK 3
50
#define CCB_TK 35
1
#define OSB_TK 35
2
#define CSB_TK 35
3
#define SC_TK 35
4
#define C_TK 35
5
#define DOT_TK 35
6
#define STRING_LIT_TK 35
7
#define CHAR_LIT_TK 35
8
#define INT_LIT_TK 35
9
#define FP_LIT_TK 3
60
#define TRUE_TK 36
1
#define FALSE_TK 36
2
#define BOOL_LIT_TK 36
3
#define NULL_TK 36
4
#define PLUS_TK 25
7
#define MINUS_TK 25
8
#define MULT_TK 2
59
#define DIV_TK 26
0
#define REM_TK 26
1
#define LS_TK 26
2
#define SRS_TK 26
3
#define ZRS_TK 26
4
#define AND_TK 26
5
#define XOR_TK 26
6
#define OR_TK 26
7
#define BOOL_AND_TK 26
8
#define BOOL_OR_TK 2
69
#define EQ_TK 27
0
#define NEQ_TK 27
1
#define GT_TK 27
2
#define GTE_TK 27
3
#define LT_TK 27
4
#define LTE_TK 27
5
#define PLUS_ASSIGN_TK 27
6
#define MINUS_ASSIGN_TK 27
7
#define MULT_ASSIGN_TK 27
8
#define DIV_ASSIGN_TK 2
79
#define REM_ASSIGN_TK 28
0
#define LS_ASSIGN_TK 28
1
#define SRS_ASSIGN_TK 28
2
#define ZRS_ASSIGN_TK 28
3
#define AND_ASSIGN_TK 28
4
#define XOR_ASSIGN_TK 28
5
#define OR_ASSIGN_TK 28
6
#define PUBLIC_TK 28
7
#define PRIVATE_TK 28
8
#define PROTECTED_TK 2
89
#define STATIC_TK 29
0
#define FINAL_TK 29
1
#define SYNCHRONIZED_TK 29
2
#define VOLATILE_TK 29
3
#define TRANSIENT_TK 29
4
#define NATIVE_TK 29
5
#define PAD_TK 29
6
#define ABSTRACT_TK 29
7
#define MODIFIER_TK 29
8
#define DECR_TK
299
#define INCR_TK 30
0
#define DEFAULT_TK 30
1
#define IF_TK 30
2
#define THROW_TK 30
3
#define BOOLEAN_TK 30
4
#define DO_TK 30
5
#define IMPLEMENTS_TK 30
6
#define THROWS_TK 30
7
#define BREAK_TK 30
8
#define IMPORT_TK 3
09
#define ELSE_TK 31
0
#define INSTANCEOF_TK 31
1
#define RETURN_TK 31
2
#define VOID_TK 31
3
#define CATCH_TK 31
4
#define INTERFACE_TK 31
5
#define CASE_TK 31
6
#define EXTENDS_TK 31
7
#define FINALLY_TK 31
8
#define SUPER_TK 3
19
#define WHILE_TK 32
0
#define CLASS_TK 32
1
#define SWITCH_TK 32
2
#define CONST_TK 32
3
#define TRY_TK 32
4
#define FOR_TK 32
5
#define NEW_TK 32
6
#define CONTINUE_TK 32
7
#define GOTO_TK 32
8
#define PACKAGE_TK 3
29
#define THIS_TK 33
0
#define BYTE_TK 33
1
#define SHORT_TK 33
2
#define INT_TK 33
3
#define LONG_TK 33
4
#define CHAR_TK 33
5
#define INTEGRAL_TK 33
6
#define FLOAT_TK 33
7
#define DOUBLE_TK 33
8
#define FP_TK 3
39
#define ID_TK 34
0
#define REL_QM_TK 34
1
#define REL_CL_TK 34
2
#define NOT_TK 34
3
#define NEG_TK 34
4
#define ASSIGN_ANY_TK 34
5
#define ASSIGN_TK 34
6
#define OP_TK 34
7
#define CP_TK 34
8
#define OCB_TK 3
49
#define CCB_TK 35
0
#define OSB_TK 35
1
#define CSB_TK 35
2
#define SC_TK 35
3
#define C_TK 35
4
#define DOT_TK 35
5
#define STRING_LIT_TK 35
6
#define CHAR_LIT_TK 35
7
#define INT_LIT_TK 35
8
#define FP_LIT_TK 3
59
#define TRUE_TK 36
0
#define FALSE_TK 36
1
#define BOOL_LIT_TK 36
2
#define NULL_TK 36
3
#line 48 "./parse.y"
...
...
@@ -517,7 +516,7 @@ typedef union {
#define YYFLAG -32768
#define YYNTBASE 110
#define YYTRANSLATE(x) ((unsigned)(x) <= 36
4
? yytranslate[x] : 272)
#define YYTRANSLATE(x) ((unsigned)(x) <= 36
3
? yytranslate[x] : 272)
static
const
char
yytranslate
[]
=
{
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
...
...
@@ -545,18 +544,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
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
1
6
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
2
6
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
3
6
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
4
6
,
47
,
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
5
6
,
57
,
58
,
59
,
60
,
61
,
62
,
63
,
64
,
65
,
6
6
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
75
,
7
6
,
77
,
78
,
79
,
80
,
81
,
82
,
83
,
84
,
85
,
8
6
,
87
,
88
,
89
,
90
,
91
,
92
,
93
,
94
,
95
,
9
6
,
97
,
98
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
10
6
,
10
7
,
108
,
109
2
,
2
,
2
,
2
,
2
,
1
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
1
7
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
2
7
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
3
7
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
4
7
,
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
5
7
,
58
,
59
,
60
,
61
,
62
,
63
,
64
,
65
,
66
,
6
7
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
75
,
76
,
7
7
,
78
,
79
,
80
,
81
,
82
,
83
,
84
,
85
,
86
,
8
7
,
88
,
89
,
90
,
91
,
92
,
93
,
94
,
95
,
96
,
9
7
,
98
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
106
,
107
,
108
,
109
};
#if YYDEBUG != 0
...
...
@@ -2387,7 +2386,8 @@ static const short yycheck[] = { 3,
#define YYPURE 1
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/misc/bison.simple"
#line 3 "/usr/lib/bison.simple"
/* This file comes from bison-1.28. */
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
...
...
@@ -2404,46 +2404,66 @@ static const short yycheck[] = { 3,
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
#ifndef alloca
/* This is the parser code that is written into each bison parser
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__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else
/* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else
/* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
/* We think this test detects Watcom and Microsoft C. */
/* 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>
#endif
#else
/* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
#include <malloc.h>
/* I don't know what this was needed for, but it pollutes the namespace.
So I turned it off. rms, 2 May 1997. */
/* #include <malloc.h> */
#pragma alloca
#else
/* not MSDOS, __TURBOC__, or _AIX */
#ifdef __hpux
#ifdef __cplusplus
extern
"C"
{
void
*
alloca
(
unsigned
int
);
};
#else
/* not __cplusplus */
void
*
alloca
();
#endif
/* not __cplusplus */
#define YYSTACK_USE_ALLOCA
#else
/* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
and on HPUX 10. Eventually we can turn this on. */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif
/* not _AIX */
#endif
/* not MSDOS, or __TURBOC__ */
#endif
/* not sparc. */
#endif
/* not GNU C. */
#endif
/* alloca not defined. */
#endif
/* not sparc */
#endif
/* not GNU C */
#endif
/* alloca not defined */
#endif
/* YYSTACK_USE_ALLOCA not defined */
/* This is the parser code that is written into each bison parser
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. */
#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif
/* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action
...
...
@@ -2453,8 +2473,8 @@ void *alloca ();
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT
return(0)
#define YYABORT
return(1)
#define YYACCEPT
goto yyacceptlab
#define YYABORT
goto yyabortlab
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror.
This remains here temporarily to ease the
...
...
@@ -2535,14 +2555,12 @@ int yydebug; /* nonzero means print parse trace */
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
#ifndef YYPARSE_PARAM
int
yyparse
(
void
);
#endif
#endif
/* Define __yy_memcpy. Note that the size argument
should be passed with type unsigned int, because that is what the non-GCC
definitions require. With GCC, __builtin_memcpy takes an arg
of type size_t, but it can handle unsigned int. */
#if __GNUC__ > 1
/* GNU C and GNU C++ define this. */
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#else
/* not GNU C or C++ */
...
...
@@ -2554,7 +2572,7 @@ static void
__yy_memcpy
(
to
,
from
,
count
)
char
*
to
;
char
*
from
;
int
count
;
unsigned
int
count
;
{
register
char
*
f
=
from
;
register
char
*
t
=
to
;
...
...
@@ -2569,10 +2587,10 @@ __yy_memcpy (to, from, count)
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static
void
__yy_memcpy
(
char
*
to
,
char
*
from
,
int
count
)
__yy_memcpy
(
char
*
to
,
char
*
from
,
unsigned
int
count
)
{
register
char
*
f
=
from
;
register
char
*
t
=
to
;
register
char
*
f
=
from
;
register
int
i
=
count
;
while
(
i
--
>
0
)
...
...
@@ -2582,7 +2600,7 @@ __yy_memcpy (char *to, char *from, int count)
#endif
#endif
#line
196 "/usr/share/misc
/bison.simple"
#line
217 "/usr/lib
/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
...
...
@@ -2603,6 +2621,15 @@ __yy_memcpy (char *to, char *from, int count)
#define YYPARSE_PARAM_DECL
#endif
/* not YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int
yyparse
(
void
*
);
#else
int
yyparse
(
void
);
#endif
#endif
int
yyparse
(
YYPARSE_PARAM_ARG
)
YYPARSE_PARAM_DECL
...
...
@@ -2631,6 +2658,7 @@ yyparse(YYPARSE_PARAM_ARG)
#endif
int
yystacksize
=
YYINITDEPTH
;
int
yyfree_stacks
=
0
;
#ifdef YYPURE
int
yychar
;
...
...
@@ -2715,18 +2743,32 @@ yynewstate:
if
(
yystacksize
>=
YYMAXDEPTH
)
{
yyerror
(
"parser stack overflow"
);
if
(
yyfree_stacks
)
{
free
(
yyss
);
free
(
yyvs
);
#ifdef YYLSP_NEEDED
free
(
yyls
);
#endif
}
return
2
;
}
yystacksize
*=
2
;
if
(
yystacksize
>
YYMAXDEPTH
)
yystacksize
=
YYMAXDEPTH
;
yyss
=
(
short
*
)
alloca
(
yystacksize
*
sizeof
(
*
yyssp
));
__yy_memcpy
((
char
*
)
yyss
,
(
char
*
)
yyss1
,
size
*
sizeof
(
*
yyssp
));
yyvs
=
(
YYSTYPE
*
)
alloca
(
yystacksize
*
sizeof
(
*
yyvsp
));
__yy_memcpy
((
char
*
)
yyvs
,
(
char
*
)
yyvs1
,
size
*
sizeof
(
*
yyvsp
));
#ifndef YYSTACK_USE_ALLOCA
yyfree_stacks
=
1
;
#endif
yyss
=
(
short
*
)
YYSTACK_ALLOC
(
yystacksize
*
sizeof
(
*
yyssp
));
__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
yyls
=
(
YYLTYPE
*
)
alloca
(
yystacksize
*
sizeof
(
*
yylsp
));
__yy_memcpy
((
char
*
)
yyls
,
(
char
*
)
yyls1
,
size
*
sizeof
(
*
yylsp
));
yyls
=
(
YYLTYPE
*
)
YYSTACK_ALLOC
(
yystacksize
*
sizeof
(
*
yylsp
));
__yy_memcpy
((
char
*
)
yyls
,
(
char
*
)
yyls1
,
size
*
(
unsigned
int
)
sizeof
(
*
yylsp
));
#endif
#endif
/* no yyoverflow */
...
...
@@ -4978,7 +5020,7 @@ case 503:
break
;}
}
/* the action file gets copied in in place of this dollarsign */
#line
498 "/usr/share/misc
/bison.simple"
#line
543 "/usr/lib
/bison.simple"
yyvsp
-=
yylen
;
yyssp
-=
yylen
;
...
...
@@ -5173,6 +5215,30 @@ yyerrhandle:
yystate
=
yyn
;
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"
...
...
@@ -7145,7 +7211,7 @@ finish_method_declaration (method_body)
&&
TREE_TYPE
(
current_function_decl
)
&&
TREE_TYPE
(
TREE_TYPE
(
current_function_decl
))
==
void_type_node
)
method_body
=
build1
(
RETURN_EXPR
,
void_type_node
,
NULL
);
BLOCK_EXPR_BODY
(
DECL_FUNCTION_BODY
(
current_function_decl
))
=
method_body
;
maybe_absorb_scoping_blocks
();
/* Exit function's body */
...
...
@@ -7568,7 +7634,9 @@ register_incomplete_type (kind, wfl, decl, ptr)
JDEP_WFL
(
new
)
=
wfl
;
JDEP_CHAIN
(
new
)
=
NULL
;
JDEP_MISC
(
new
)
=
NULL_TREE
;
if
((
kind
==
JDEP_SUPER
||
kind
==
JDEP_INTERFACE
)
/* For some dependencies, set the enclosing class of the current
class to be the enclosing context */
if
((
kind
==
JDEP_SUPER
||
kind
==
JDEP_INTERFACE
||
kind
==
JDEP_ANONYMOUS
)
&&
GET_ENCLOSING_CPC
())
JDEP_ENCLOSING
(
new
)
=
TREE_VALUE
(
GET_ENCLOSING_CPC
());
else
...
...
@@ -9928,8 +9996,7 @@ java_complete_expand_methods (class_decl)
for
(
decl
=
first_decl
;
decl
;
decl
=
TREE_CHAIN
(
decl
))
{
/* Skip abstract or native methods */
if
(
METHOD_ABSTRACT
(
decl
)
||
METHOD_NATIVE
(
decl
)
||
DECL_CONSTRUCTOR_P
(
decl
)
||
DECL_CLINIT_P
(
decl
))
if
(
METHOD_ABSTRACT
(
decl
)
||
METHOD_NATIVE
(
decl
))
continue
;
java_complete_expand_method
(
decl
);
}
...
...
@@ -10064,6 +10131,7 @@ java_complete_expand_method (mdecl)
check_for_initialization
(
block_body
);
ctxp
->
explicit_constructor_p
=
0
;
}
BLOCK_EXPR_BODY
(
fbody
)
=
block_body
;
/* If we saw a return but couldn't evaluate it properly, we'll
...
...
gcc/java/parse.y
View file @
c6c4a70b
...
...
@@ -7297,19 +7297,9 @@ java_complete_expand_methods (class_decl)
/*
First
,
do
the
ordinary
methods
.
*/
for
(
decl
=
first_decl
;
decl
;
decl
=
TREE_CHAIN
(
decl
))
{
/*
Skip
abstract
or
native
methods
--
but
do
handle
native
methods
when
generating
JNI
stubs
.
*/
if
(
METHOD_ABSTRACT
(
decl
)
||
(
! flag_jni && METHOD_NATIVE (decl))
||
DECL_CONSTRUCTOR_P
(
decl
)
||
DECL_CLINIT_P
(
decl
))
/*
Skip
abstract
or
native
methods
*/
if
(
METHOD_ABSTRACT
(
decl
)
||
METHOD_NATIVE
(
decl
))
continue
;
if
(
METHOD_NATIVE
(
decl
))
{
tree
body
=
build_jni_stub
(
decl
);
BLOCK_EXPR_BODY
(
DECL_FUNCTION_BODY
(
decl
))
=
body
;
}
java_complete_expand_method
(
decl
);
}
...
...
@@ -7439,7 +7429,7 @@ java_complete_expand_method (mdecl)
{
block_body
=
java_complete_tree
(
block_body
);
if
(
!
flag_emit_xref && ! METHOD_NATIVE (mdecl)
)
if
(
!
flag_emit_xref
)
check_for_initialization
(
block_body
);
ctxp
->
explicit_constructor_p
=
0
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment