From d9da31dd9a2c85e33e8f997b88eccf759b2a76c9 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Sun, 14 Jan 2001 09:37:09 -0800 Subject: [PATCH] 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 --- gcc/java/ChangeLog | 6 ++++++ gcc/java/expr.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 7151645..0907e73 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2001-01-13 Per Bothner + + * 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 * gjavah.c (version), jcf-dump.c (version): Update copyright year diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 4ad903e..ddfc473 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -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); -- 2.7.4