summaryrefslogtreecommitdiff
path: root/gcc/java/jcf-write.c
diff options
context:
space:
mode:
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-04 20:56:01 +0000
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-04 20:56:01 +0000
commit43a20035709c4824a6f73c60c28d4a2cc71e2ddc (patch)
tree5a388d102608c5d677efdc447fcc9f752c7506e8 /gcc/java/jcf-write.c
parent94563e2431974f5b1441bf07fbac70ff5c3a4751 (diff)
downloadgcc-43a20035709c4824a6f73c60c28d4a2cc71e2ddc.tar.gz
* java-tree.h (CONSTANT_VALUE_P): New macro.
* jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P. * parse.y (maybe_build_class_init_for_field): New static function. (resolve_expression_name, resolve_field_access): Use maybe_build_class_init_for_field instead of build_class_init This does not do the init if the field is compile-time-constant. (resolve_field_access): Simplify. * parse.y (fold_constant_for_init): Merge test into switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41094 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/jcf-write.c')
-rw-r--r--gcc/java/jcf-write.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c
index 79ac6916679..3e000daec34 100644
--- a/gcc/java/jcf-write.c
+++ b/gcc/java/jcf-write.c
@@ -2885,11 +2885,7 @@ generate_classfile (clas, state)
build_java_signature (TREE_TYPE (part)));
PUT2(i);
have_value = DECL_INITIAL (part) != NULL_TREE
- && FIELD_STATIC (part)
- && (TREE_CODE (DECL_INITIAL (part)) == STRING_CST
- || (TREE_CODE (DECL_INITIAL (part)) == INTEGER_CST
- && TREE_CODE (TREE_TYPE (DECL_INITIAL (part))) != POINTER_TYPE)
- || TREE_CODE (DECL_INITIAL (part)) == REAL_CST);
+ && FIELD_STATIC (part) && CONSTANT_VALUE_P (DECL_INITIAL (part));
if (have_value)
attr_count++;