aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/expr.c
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2004-12-17 15:09:11 +0000
committerAndrew Haley <aph@gcc.gnu.org>2004-12-17 15:09:11 +0000
commitcd5fcd336698c4a9acaf5ec42c2444b3d432aaf2 (patch)
tree84788bbf3494f51aaf3b9a72b5efd940a15ed280 /gcc/java/expr.c
parentb9a490a0cb9683fb985762334680a9489dce6090 (diff)
downloadgcc-cd5fcd336698c4a9acaf5ec42c2444b3d432aaf2.zip
gcc-cd5fcd336698c4a9acaf5ec42c2444b3d432aaf2.tar.gz
gcc-cd5fcd336698c4a9acaf5ec42c2444b3d432aaf2.tar.bz2
re PR java/18931 (Java bytecode ICE in except.c remove_unreachable_regions)
2004-12-17 Andrew Haley <aph@redhat.com> PR java/18931 * typeck.c (convert): Use a CONVERT_EXPR when converting to BOOLEAN_TYPE or CHAR_TYPE. (convert_to_boolean, convert_to_char) : Remove. * convert.h (convert_to_boolean, convert_to_char) : Remove. * expr.c (expand_load_internal): Do type conversion if type is not as required. From-SVN: r92314
Diffstat (limited to 'gcc/java/expr.c')
-rw-r--r--gcc/java/expr.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index fdc8ae6..8c1ad70 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -1329,6 +1329,9 @@ expand_load_internal (int index, tree type, int pc)
value into it. Then we push this new local on the stack.
Hopefully this all gets optimized out. */
copy = build_decl (VAR_DECL, NULL_TREE, type);
+ if (INTEGRAL_TYPE_P (type)
+ && TREE_TYPE (copy) != TREE_TYPE (var))
+ var = convert (type, var);
java_add_local_var (copy);
java_add_stmt (build2 (MODIFY_EXPR, TREE_TYPE (var), copy, var));