diff options
author | Tom Tromey <tromey@redhat.com> | 2002-01-28 16:52:27 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-01-28 16:52:27 +0000 |
commit | adc8cb5dea72b7f9993b32a963c243007961bbff (patch) | |
tree | 8ed3e8b997f63faf1389995024ab7a0566889b73 /gcc/java | |
parent | 5a721dab82a65ae66c4b4a7ef05c8f287299a212 (diff) | |
download | gcc-adc8cb5dea72b7f9993b32a963c243007961bbff.zip gcc-adc8cb5dea72b7f9993b32a963c243007961bbff.tar.gz gcc-adc8cb5dea72b7f9993b32a963c243007961bbff.tar.bz2 |
expr.c (build_jni_stub): Ensure storage for `meth' is generated.
* expr.c (build_jni_stub): Ensure storage for `meth' is
generated.
* parse.y (java_complete_expand_methods): Set
current_function_decl before building JNI stub.
From-SVN: r49286
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/java/expr.c | 7 | ||||
-rw-r--r-- | gcc/java/parse.y | 6 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 14274b1..8e434f2 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2002-01-28 Tom Tromey <tromey@redhat.com> + + * expr.c (build_jni_stub): Ensure storage for `meth' is + generated. + * parse.y (java_complete_expand_methods): Set + current_function_decl before building JNI stub. + 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch> * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not diff --git a/gcc/java/expr.c b/gcc/java/expr.c index e3eaf35..a7cb59e 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -2168,8 +2168,13 @@ build_jni_stub (method) TREE_PUBLIC (meth_var) = 0; DECL_EXTERNAL (meth_var) = 0; DECL_CONTEXT (meth_var) = method; + DECL_ARTIFICIAL (meth_var) = 1; + DECL_INITIAL (meth_var) = null_pointer_node; + TREE_USED (meth_var) = 1; + chainon (env_var, meth_var); + layout_decl (meth_var, 0); make_decl_rtl (meth_var, NULL); - meth_var = pushdecl_top_level (meth_var); + rest_of_decl_compilation (meth_var, NULL, 0, 0); /* One strange way that the front ends are different is that they store arguments differently. */ diff --git a/gcc/java/parse.y b/gcc/java/parse.y index a75e3f9..8b33fad 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -1,6 +1,6 @@ /* Source code parsing and tree node generation for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) This file is part of GNU CC. @@ -7723,7 +7723,9 @@ java_complete_expand_methods (class_decl) if (METHOD_NATIVE (decl)) { - tree body = build_jni_stub (decl); + tree body; + current_function_decl = decl; + body = build_jni_stub (decl); BLOCK_EXPR_BODY (DECL_FUNCTION_BODY (decl)) = body; } |