* class.c (set_constant_value): When not emiting class files, then a
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Aug 2001 20:07:31 +0000 (20:07 +0000)
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 31 Aug 2001 20:07:31 +0000 (20:07 +0000)
String ConstantValue is a utf8const_ptr_type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45333 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/class.c

index b06dd57..2a89cae 100644 (file)
@@ -1,3 +1,8 @@
+2001-08-31  Per Bothner  <per@bothner.com>
+
+       * class.c (set_constant_value):  When not emiting class files, then a
+       String ConstantValue is a utf8const_ptr_type.
+
 2001-08-30  Per Bothner  <per@bothner.com>
 
        * jcf-write.c (generate_classfile):  Check that field is primitive
index 9aa5366..6086fc0 100644 (file)
@@ -780,8 +780,10 @@ set_constant_value (field, constant)
       if (TREE_TYPE (constant) != TREE_TYPE (field)
          && ! (TREE_TYPE (constant) == int_type_node
                && INTEGRAL_TYPE_P (TREE_TYPE (field))
-               && TYPE_PRECISION (TREE_TYPE (field)) <= 32))
-       warning ("ConstantValue attribute of field '%s' has wrong type",
+               && TYPE_PRECISION (TREE_TYPE (field)) <= 32)
+         && ! (TREE_TYPE (constant) == utf8const_ptr_type
+               && TREE_TYPE (field) == string_ptr_type_node))
+       error ("ConstantValue attribute of field '%s' has wrong type",
               IDENTIFIER_POINTER (DECL_NAME (field)));
       if (FIELD_FINAL (field))
        DECL_FIELD_FINAL_IUD (field) = 1;