aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2004-11-09 14:33:32 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-11-09 06:33:32 -0800
commit6571838f58d19afb32c2b8e4b03d2855373dd0e5 (patch)
tree9fec2c29b67ab06ca92cbad5fd005cc167f78685 /gcc/java/parse.y
parenta0eca485f44e435aeffd11c28a10ba6ddc97dc45 (diff)
downloadgcc-6571838f58d19afb32c2b8e4b03d2855373dd0e5.zip
gcc-6571838f58d19afb32c2b8e4b03d2855373dd0e5.tar.gz
gcc-6571838f58d19afb32c2b8e4b03d2855373dd0e5.tar.bz2
re PR java/15576 (Class initialization optimization is disabled)
2004-11-09 Andrew Pinski <pinskia@physics.uc.edu> PR java/15576 * check-init.c (check_init): Ignore DECL_EXPR. * expr.c (always_initialize_class_p): Reenable. (build_class_init): Use a variable to store the decl. Also use boolean_false_node instead of integer_zero_node. * parse.y (attach_init_test_initialization_flags): Add a decl_expr to the block. From-SVN: r90343
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index a2d09bb..d02a448 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -16350,8 +16350,12 @@ attach_init_test_initialization_flags (void **entry, void *ptr)
if (block != error_mark_node)
{
+ tree body = BLOCK_SUBBLOCKS (block);
TREE_CHAIN (ite->value) = BLOCK_EXPR_DECLS (block);
BLOCK_EXPR_DECLS (block) = ite->value;
+ body = build2 (COMPOUND_EXPR, void_type_node,
+ build1 (DECL_EXPR, void_type_node, ite->value), body);
+ BLOCK_SUBBLOCKS (block) = body;
}
return true;
}