OSDN Git Service

* parse.y (analyze_clinit_body): Ignore empty statements.
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Mar 2006 17:39:16 +0000 (17:39 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Mar 2006 17:39:16 +0000 (17:39 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112092 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/parse.y

index d80ff95..485e362 100644 (file)
@@ -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.
index 4ba1581..48a56d8 100644 (file)
@@ -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;
       }