aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/decl.c')
-rw-r--r--gcc/java/decl.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index f9bbc9f..eaa7c48 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -1543,13 +1543,20 @@ set_block (block)
/* integrate_decl_tree calls this function. */
void
-copy_lang_decl (node)
+java_dup_lang_specific_decl (node)
tree node;
{
- int lang_decl_size
- = TREE_CODE (node) == VAR_DECL ? sizeof (struct lang_decl_var)
- : sizeof (struct lang_decl);
- struct lang_decl *x = (struct lang_decl *) ggc_alloc (lang_decl_size);
+ int lang_decl_size;
+ struct lang_decl *x;
+
+ if (!DECL_LANG_SPECIFIC (node))
+ return;
+
+ if (TREE_CODE (node) == VAR_DECL)
+ lang_decl_size = sizeof (struct lang_decl_var);
+ else
+ lang_decl_size = sizeof (struct lang_decl);
+ x = (struct lang_decl *) ggc_alloc (lang_decl_size);
memcpy (x, DECL_LANG_SPECIFIC (node), lang_decl_size);
DECL_LANG_SPECIFIC (node) = x;
}