aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/check-init.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/check-init.c')
-rw-r--r--gcc/java/check-init.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/java/check-init.c b/gcc/java/check-init.c
index c4e39484410..454aca5e19b 100644
--- a/gcc/java/check-init.c
+++ b/gcc/java/check-init.c
@@ -164,6 +164,11 @@ static void check_final_reassigned (tree, words);
static tree
get_variable_decl (tree exp)
{
+ /* A static field can be wrapped in a COMPOUND_EXPR where the first
+ argument initializes the class. */
+ if (TREE_CODE (exp) == COMPOUND_EXPR)
+ exp = extract_field_decl (exp);
+
if (TREE_CODE (exp) == VAR_DECL)
{
if (! TREE_STATIC (exp) || FIELD_FINAL (exp))