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