From 966a57c4c22c90af0dc7399fba8599a4aa45a249 Mon Sep 17 00:00:00 2001 From: tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 15 Mar 2006 17:39:16 +0000 Subject: [PATCH] * parse.y (analyze_clinit_body): Ignore empty statements. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112092 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/ChangeLog | 4 ++++ gcc/java/parse.y | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index d80ff952754d..485e362b0948 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2006-03-15 Tom Tromey <tromey@redhat.com> + + * parse.y (analyze_clinit_body): Ignore empty statements. + 2006-03-08 David Daney <ddaney@avtrex.com> * gcj.texi: Document -static-libgcj option. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 4ba158171b0f..48a56d8f1d83 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -1,6 +1,6 @@ /* Source code parsing and tree node generation for the GNU compiler for the Java(TM) language. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com) @@ -8006,7 +8006,8 @@ maybe_generate_pre_expand_clinit (tree class_type) } /* Analyzes a method body and look for something that isn't a - MODIFY_EXPR with a constant value. */ + MODIFY_EXPR with a constant value. Return true if <clinit> is + needed, false otherwise. */ static int analyze_clinit_body (tree this_class, tree bbody) @@ -8045,6 +8046,11 @@ analyze_clinit_body (tree this_class, tree bbody) || ! DECL_INITIAL (TREE_OPERAND (bbody, 0)) || DECL_CONTEXT (TREE_OPERAND (bbody, 0)) != this_class); + case NOP_EXPR: + /* We might see an empty statement here, which is + ignorable. */ + return ! IS_EMPTY_STMT (bbody); + default: return 1; } -- GitLab