diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-05-25 18:19:11 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-05-25 18:19:11 +0200 |
commit | 6bb0a66a9932e8f03e43edb007cb407ac45dbcbd (patch) | |
tree | c5d52ec0a97fd0f5d2874395be7e0a89136c2a9a /gcc/java/decl.c | |
parent | 9602a7a9c8f9ab271f4672a080c17c8b21d0dc14 (diff) | |
download | gcc-6bb0a66a9932e8f03e43edb007cb407ac45dbcbd.zip gcc-6bb0a66a9932e8f03e43edb007cb407ac45dbcbd.tar.gz gcc-6bb0a66a9932e8f03e43edb007cb407ac45dbcbd.tar.bz2 |
re PR debug/43260 (Java static class members lack DWARF location info)
PR debug/43260
* java-tree.h (pending_static_fields): New extern declaration.
(java_write_globals): New prototype.
* lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
* decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
of a static field push it into pending_static_fields vector.
* class.c (pending_static_fields): New variable.
(add_field): If static field is not DECL_EXTERNAL, push it into
pending_static_fields vector.
(java_write_globals): New function.
From-SVN: r159828
Diffstat (limited to 'gcc/java/decl.c')
-rw-r--r-- | gcc/java/decl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 9cb3c75..f78d683 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -2000,7 +2000,11 @@ java_mark_class_local (tree klass) for (t = TYPE_FIELDS (klass); t ; t = TREE_CHAIN (t)) if (FIELD_STATIC (t)) - java_mark_decl_local (t); + { + if (DECL_EXTERNAL (t)) + VEC_safe_push (tree, gc, pending_static_fields, t); + java_mark_decl_local (t); + } for (t = TYPE_METHODS (klass); t ; t = TREE_CHAIN (t)) if (!METHOD_ABSTRACT (t)) |