Index: tests/ctrl-flow/.expect/loop_else-WRN1.txt
===================================================================
--- tests/ctrl-flow/.expect/loop_else-WRN1.txt	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
+++ tests/ctrl-flow/.expect/loop_else-WRN1.txt	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
@@ -0,0 +1,3 @@
+ctrl-flow/loop_else.cfa:26:1 warning: else clause never executed for empty loop conditional.
+ctrl-flow/loop_else.cfa:27:1 warning: else clause never executed for empty loop conditional.
+ctrl-flow/loop_else.cfa:28:1 warning: else clause never executed for empty loop conditional.
Index: tests/ctrl-flow/.expect/loop_else.txt
===================================================================
--- tests/ctrl-flow/.expect/loop_else.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ tests/ctrl-flow/.expect/loop_else.txt	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
@@ -1,6 +1,12 @@
+empty
+empty
+empty
+empty
 empty
 empty
 empty
 
+else
+else
 false else
 
Index: tests/ctrl-flow/.expect/superfluous.txt
===================================================================
--- tests/ctrl-flow/.expect/superfluous.txt	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ 	(revision )
@@ -1,1 +1,0 @@
-ctrl-flow/superfluous.cfa:8:1 error: else clause never executed for empty loop conditional.
Index: tests/ctrl-flow/loop_else.cfa
===================================================================
--- tests/ctrl-flow/loop_else.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ tests/ctrl-flow/loop_else.cfa	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
@@ -20,11 +20,21 @@
 
 int main() {
+	sout | nlOff;										// turn off auto newline
+
+	// Special cases print warning: else clause never executed for empty loop conditional.
+
+	while () { sout | "empty"; break; } else { sout | "else"; }						sout | nl;
+	do { sout | "empty"; break; } while () else { sout | "else"; }					sout | nl;
+	for () { sout | "empty"; break; } else { sout | "else"; }						sout | nl;
+
 	// Test some loop options.
 
-	sout | nlOff;										// turn off auto newline
 	while ( true ) { sout | "empty"; break; } else { sout | "else"; }				sout | nl;
 	do { sout | "empty"; break; } while ( true ) else { sout | "else"; }			sout | nl;
+	for ( ;; ) { sout | "empty"; break; } else { sout | "else"; }					sout | nl;
 	for ( ; true ; ) { sout | "empty"; break; } else { sout | "else"; }				sout | nl | nl;
 
+	while ( false ) { sout | "false"; break; } else { sout | "else"; }				sout | nl;
+	for ( ; false; ) { sout | "false"; break; } else { sout | "else"; }				sout | nl;
 	do { sout | "false"; } while (false) else { sout | "else"; }					sout | nl | nl;
 
@@ -48,4 +58,5 @@
 
 	// @ means do nothing
+
 	for ( i; 1 ~ @ ) {
 	  if ( i > 10 ) break;
@@ -113,4 +124,5 @@
 
 	// A break (or a continue) in an else clause should target an outer loop.
+
 	sout | "before";
 	while ( true ) {
Index: tests/ctrl-flow/superfluous.cfa
===================================================================
--- tests/ctrl-flow/superfluous.cfa	(revision bada4522ea3690a8c1e1e7fcc062da84bb3a7114)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// Check the superfluous-else warning.
-
-void main() {
-	while () {
-		return;
-	} else {
-		abort();
-	}
-}
