From: Tom Tromey Date: Mon, 26 Aug 2002 23:30:02 +0000 (+0000) Subject: parse.y (try_builtin_assignconv): Allow narrowing primitive conversion if RHS_TYPE... X-Git-Tag: releases/gcc-3.3.0~3158 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83dd5faeabc2ed171c4bba02cab19c75698dc450;p=thirdparty%2Fgcc.git parse.y (try_builtin_assignconv): Allow narrowing primitive conversion if RHS_TYPE is byte, short, or char. * parse.y (try_builtin_assignconv): Allow narrowing primitive conversion if RHS_TYPE is byte, short, or char. From-SVN: r56589 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index fe4e8f2cbbc1..dd5061b76ac5 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2002-08-26 Tom Tromey + + * parse.y (try_builtin_assignconv): Allow narrowing primitive + conversion if RHS_TYPE is byte, short, or char. + 2002-08-22 Tom Tromey * gcj.texi (Invoking gij): Document -cp and -classpath. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 3dabe3593d0f..30a2dce28ac8 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -12915,11 +12915,14 @@ try_builtin_assignconv (wfl_op1, lhs_type, rhs) new_rhs = convert (lhs_type, rhs); /* Try a narrowing primitive conversion (5.1.3): - - expression is a constant expression of type int AND + - expression is a constant expression of type byte, short, char, +   or int, AND - variable is byte, short or char AND - The value of the expression is representable in the type of the variable */ - else if (rhs_type == int_type_node && TREE_CONSTANT (rhs) + else if ((rhs_type == byte_type_node || rhs_type == short_type_node + || rhs_type == char_type_node || rhs_type == int_type_node) + && TREE_CONSTANT (rhs) && (lhs_type == byte_type_node || lhs_type == char_type_node || lhs_type == short_type_node)) {