Index: tests/ctrl-flow/.expect/loop_else.txt
===================================================================
--- tests/ctrl-flow/.expect/loop_else.txt	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
+++ tests/ctrl-flow/.expect/loop_else.txt	(revision 4c5ce70cefb1ca083ae70b36f9038493fc67b4e3)
@@ -69,3 +69,8 @@
 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else
 
-before begin else after
+before
+ begin
+ else
+ after
+key 11 not found at position 10
+key 11 not found at position 10
Index: tests/ctrl-flow/loop_else.cfa
===================================================================
--- tests/ctrl-flow/loop_else.cfa	(revision bbbff10c7298866851953ec442ea30d05e91b2a8)
+++ tests/ctrl-flow/loop_else.cfa	(revision 4c5ce70cefb1ca083ae70b36f9038493fc67b4e3)
@@ -123,4 +123,6 @@
 	sout | nl;
 
+	sout | nlOn;										// turn on auto newline
+
 	// A break (or a continue) in an else clause should target an outer loop.
 
@@ -136,4 +138,17 @@
 		sout | " end";
 	}
-	sout | " after" | nl;
+	sout | " after";
+
+	// A loop index for while and for is accessible in the else clause.
+	// Do-while has no local declarations in condition.
+
+	int key = 11, size = 10, arr[size] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+	while ( int i = 0; i < size ) {
+		if ( arr[i] == key ) sout | "key" | key | "found at posstion" | i;
+		i += 1;
+	} else sout | "key" | key | "not found at position" | i;
+			
+	for ( i; size ) {
+		if ( arr[i] == key ) sout | "key" | key | "found at posstion" | i;
+	} else sout | "key" | key | "not found at position" | i;
 }
