Commit 91da2e7c by Tom Tromey Committed by Tom Tromey

re PR java/28892 (assignment to static field not in class initializer)

	PR java/28892:
	* expr.c (expand_java_field_op): No error for assignments not in
	class initializer or constructor.

From-SVN: r116889
parent 93c094b5
2006-09-12 Tom Tromey <tromey@redhat.com>
PR java/28892:
* expr.c (expand_java_field_op): No error for assignments not in
class initializer or constructor.
2006-08-22 Andrew Haley <aph@redhat.com>
* decl.c (java_add_stmt): Give the statement list a type.
......
......@@ -2846,21 +2846,10 @@ expand_java_field_op (int is_static, int is_putting, int field_ref_index)
if (DECL_CONTEXT (field_decl) != current_class)
error ("assignment to final field %q+D not in field's class",
field_decl);
else if (FIELD_STATIC (field_decl))
{
if (!DECL_CLINIT_P (current_function_decl))
warning (0, "assignment to final static field %q+D not in "
"class initializer",
field_decl);
}
else
{
tree cfndecl_name = DECL_NAME (current_function_decl);
if (! DECL_CONSTRUCTOR_P (current_function_decl)
&& !ID_FINIT_P (cfndecl_name))
warning (0, "assignment to final field %q+D not in constructor",
field_decl);
}
/* We used to check for assignments to final fields not
occurring in the class initializer or in a constructor
here. However, this constraint doesn't seem to be
enforced by the JVM. */
}
if (TREE_THIS_VOLATILE (field_decl))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment