Revision: 9932
Author:   sco...@google.com
Date:     Fri Apr  1 12:57:25 2011
Log:      Fix ICE in GenerateJavaAST

An empty for statement can generate an ICE.

for (Integer xyzzy : new ArrayList<Integer>())
; // TODO

http://gwt-code-reviews.appspot.com/1400801/

Review by: zun...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=9932

Modified:
 /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
 /trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java

=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java Thu Mar 3 14:34:14 2011 +++ /trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java Fri Apr 1 12:57:25 2011
@@ -1639,7 +1639,9 @@
         body = (JBlock) action;
       } else {
         body = new JBlock(info);
-        body.addStmt(action);
+        if (action != null) {
+          body.addStmt(action);
+        }
       }

       JLocal elementVar = (JLocal) typeMap.get(x.elementVariable.binding);
=======================================
--- /trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java Thu Dec 16 11:33:51 2010 +++ /trunk/user/test/com/google/gwt/dev/jjs/test/CompilerTest.java Fri Apr 1 12:57:25 2011
@@ -20,6 +20,7 @@

 import junit.framework.Assert;

+import java.util.ArrayList;
 import java.util.EventListener;

 /**
@@ -723,6 +724,12 @@

     for (; b;);

+    for (int i = 0; i < 10; ++i);
+
+    for (int i : new int[10]);
+
+    for (Integer i : new ArrayList<Integer>());
+
     for (;;)
       break;

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to