diff options
Diffstat (limited to 'gcc/java/jcf-parse.c')
-rw-r--r-- | gcc/java/jcf-parse.c | 15 |
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"); |