aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jcf-parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r--gcc/java/jcf-parse.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index 4c3dff7..6d4f246 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -684,9 +684,22 @@ parse_class_file ()
{
JCF *jcf = current_jcf;
- if (METHOD_NATIVE (method) || METHOD_ABSTRACT (method))
+ if (METHOD_ABSTRACT (method))
continue;
+ if (METHOD_NATIVE (method))
+ {
+ if (! flag_jni)
+ continue;
+ DECL_MAX_LOCALS (method)
+ = list_length (TYPE_ARG_TYPES (TREE_TYPE (method)));
+ start_java_method (method);
+ give_name_to_locals (jcf);
+ expand_expr_stmt (build_jni_stub (method));
+ end_java_method ();
+ continue;
+ }
+
if (DECL_CODE_OFFSET (method) == 0)
{
error ("missing Code attribute");