aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-02-05 23:27:46 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-02-05 23:27:46 +0000
commit6d0918702e567af885fc7a24dad75fbd359d788f (patch)
tree74e6b4dac5ca2af6422c493d78c40101e2f92e7f
parent56cf87e779b66135eab2eac40aae1d89d0687a47 (diff)
downloadgcc-6d0918702e567af885fc7a24dad75fbd359d788f.zip
gcc-6d0918702e567af885fc7a24dad75fbd359d788f.tar.gz
gcc-6d0918702e567af885fc7a24dad75fbd359d788f.tar.bz2
re PR java/1866 (Array initializer: undefined reference to `LJv0.0')
* expr.c (java_lang_expand_expr): Don't bother recomputing `length'. Use rest_of_decl_compilation, not make_decl_rtl. Fixes PR java/1866. From-SVN: r39470
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/expr.c8
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 23f5c30..de1e16e 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2001-02-04 Tom Tromey <tromey@redhat.com>
+
+ * expr.c (java_lang_expand_expr): Don't bother recomputing
+ `length'. Use rest_of_decl_compilation, not make_decl_rtl.
+ Fixes PR java/1866.
+
2001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (process_imports): Save the original name of the import
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index d74dfc0..70a2fe9 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -2388,9 +2388,7 @@ java_lang_expand_expr (exp, target, tmode, modifier)
FINISH_RECORD_CONSTRUCTOR (temp);
START_RECORD_CONSTRUCTOR (value, array_type);
PUSH_SUPER_VALUE (value, temp);
- /* FIXME: build a new `length' here to get it on the right
- obstack. */
- PUSH_FIELD_VALUE (value, "length", build_int_2 (ilength, 0));
+ PUSH_FIELD_VALUE (value, "length", length);
PUSH_FIELD_VALUE (value, "data", init);
FINISH_RECORD_CONSTRUCTOR (value);
@@ -2400,7 +2398,7 @@ java_lang_expand_expr (exp, target, tmode, modifier)
DECL_INITIAL (init_decl) = value;
DECL_IGNORED_P (init_decl) = 1;
TREE_READONLY (init_decl) = 1;
- make_decl_rtl (init_decl, NULL);
+ rest_of_decl_compilation (init_decl, NULL, 1, 0);
TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
init = build1 (ADDR_EXPR, TREE_TYPE (exp), init_decl);
r = expand_expr (init, target, tmode, modifier);
@@ -2423,7 +2421,7 @@ java_lang_expand_expr (exp, target, tmode, modifier)
DECL_INITIAL (init_decl) = init;
DECL_IGNORED_P (init_decl) = 1;
TREE_READONLY (init_decl) = 1;
- make_decl_rtl (init_decl, NULL);
+ rest_of_decl_compilation (init_decl, NULL, 1, 0);
TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (init_decl)) = 1;
init = init_decl;
}