aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2003-11-12 17:00:53 +0000
committerAndrew Haley <aph@gcc.gnu.org>2003-11-12 17:00:53 +0000
commit0adaa7e4a5ef81122c11a64a4735da9bcfa35379 (patch)
tree592d5fa9013478a3b5bd9f35e47957384f037be2 /gcc
parentc9389e79d44d90d591ea189b3dcf55ee75991639 (diff)
downloadgcc-0adaa7e4a5ef81122c11a64a4735da9bcfa35379.zip
gcc-0adaa7e4a5ef81122c11a64a4735da9bcfa35379.tar.gz
gcc-0adaa7e4a5ef81122c11a64a4735da9bcfa35379.tar.bz2
re PR java/11045 (int cast bug)
2003-11-12 Andrew Haley <aph@redhat.com> PR java/11045 * parse.y (fold_constant_for_init): Check that we really do have a constant. From-SVN: r73497
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog4
-rw-r--r--gcc/java/parse.y10
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 303e71c..96d03d0 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,5 +1,9 @@
2003-11-12 Andrew Haley <aph@redhat.com>
+ PR java/11045
+ * parse.y (fold_constant_for_init): Check that we really do have a
+ constant.
+
PR java/11533
* lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
init_test_decls being inlined.
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index c1b70dd..8a13e51 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -12080,8 +12080,8 @@ java_complete_lhs (tree node)
/* When we have a primitype type, or a string and we're not
emitting a class file, we actually don't want to generate
anything for the assignment. */
- if (value != NULL_TREE &&
- (JPRIMITIVE_TYPE_P (TREE_TYPE (value)) ||
+ if (value != NULL_TREE &&
+ (JPRIMITIVE_TYPE_P (TREE_TYPE (value)) ||
(TREE_TYPE (value) == string_ptr_type_node &&
! flag_emit_class_files)))
{
@@ -16089,7 +16089,11 @@ fold_constant_for_init (tree node, tree context)
if (val == NULL_TREE || ! TREE_CONSTANT (val))
return NULL_TREE;
TREE_OPERAND (node, 0) = val;
- return patch_unaryop (node, op0);
+ val = patch_unaryop (node, op0);
+ if (! TREE_CONSTANT (val))
+ return NULL_TREE;
+ return val;
+
break;
case COND_EXPR: