Commit d9da31dd by Per Bothner Committed by Per Bothner

expr.c (expand_java_field_op): Assigning to a final field outside an initializer…

expr.c (expand_java_field_op): Assigning to a final field outside an initializer does not violate JVM spec...


	* expr.c (expand_java_field_op):  Assigning to a final field outside
	an initializer does not violate JVM spec, so should be warning, not
	error.  (Sun's verifier does not complain - though MicroSoft's does.)

From-SVN: r39013
parent 6de8f7fc
2001-01-13 Per Bothner <per@bothner.com>
* expr.c (expand_java_field_op): Assigning to a final field outside
an initializer does not violate JVM spec, so should be warning, not
error. (Sun's verifier does not complain - though MicroSoft's does.)
2001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
* gjavah.c (version), jcf-dump.c (version): Update copyright year
......
......@@ -2215,7 +2215,7 @@ expand_java_field_op (is_static, is_putting, field_ref_index)
else if (FIELD_STATIC (field_decl))
{
if (!DECL_CLINIT_P (current_function_decl))
error_with_decl (field_decl,
warning_with_decl (field_decl,
"assignment to final static field `%s' not in class initializer");
}
else
......@@ -2223,7 +2223,7 @@ expand_java_field_op (is_static, is_putting, field_ref_index)
tree cfndecl_name = DECL_NAME (current_function_decl);
if (! DECL_CONSTRUCTOR_P (current_function_decl)
&& !ID_FINIT_P (cfndecl_name))
error_with_decl (field_decl, "assignment to final field `%s' not in constructor");
warning_with_decl (field_decl, "assignment to final field `%s' not in constructor");
}
}
expand_assignment (field_ref, new_value, 0, 0);
......
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