Index: tests/alloc.c
===================================================================
--- tests/alloc.c	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/alloc.c	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -10,6 +10,6 @@
 // Created On       : Wed Feb  3 07:56:22 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jul 26 20:58:05 2018
-// Update Count     : 334
+// Last Modified On : Thu Aug  9 06:21:35 2018
+// Update Count     : 337
 //
 
@@ -62,5 +62,5 @@
 	p = (int *)calloc( dim, sizeof( *p ) );				// C array calloc, type unsafe
 	printf( "C   array calloc, fill 0\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 	free( p );
@@ -68,12 +68,12 @@
 	p = calloc( dim );                                  // CFA array calloc, type safe
 	printf( "CFA array calloc, fill 0\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 	free( p );
 
 	p = alloc( dim );                                   // CFA array alloc, type safe
-	for ( int i = 0; i < dim; i += 1 ) { p[i] = 0xdeadbeef; }
+	for ( i; dim ) { p[i] = 0xdeadbeef; }
 	printf( "CFA array alloc, no fill\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 	free( p );
@@ -81,5 +81,5 @@
 	p = alloc( 2 * dim, fill );                         // CFA array alloc, fill
 	printf( "CFA array alloc, fill %#hhx\n", fill );
-	for ( int i = 0; i < 2 * dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; 2 * dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 	// do not free
@@ -90,13 +90,13 @@
 
 	p = (int *)realloc( p, dim * sizeof(*p) );			// C realloc
-	for ( int i = 0; i < dim; i += 1 ) { p[i] = 0xdeadbeef; }
+	for ( i; dim ) { p[i] = 0xdeadbeef; }
 	printf( "C   realloc\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
 	p = realloc( p, 2 * dim * sizeof(*p) );             // CFA realloc
-	for ( int i = dim; i < 2 * dim; i += 1 ) { p[i] = 0x1010101; }
+	for ( i; dim ~ 2 * dim ) { p[i] = 0x1010101; }
 	printf( "CFA realloc\n" );
-	for ( int i = 0; i < 2 * dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; 2 * dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 	// do not free
@@ -107,18 +107,18 @@
 
 	p = alloc( p, dim );                                // CFA resize array alloc
-	for ( int i = 0; i < dim; i += 1 ) { p[i] = 0xdeadbeef; }
+	for ( i; dim ) { p[i] = 0xdeadbeef; }
 	printf( "CFA resize alloc\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
 	p = alloc( p, 2 * dim );                            // CFA resize array alloc
-	for ( int i = dim; i < 2 * dim; i += 1 ) { p[i] = 0x1010101; }
+	for ( i; dim ~ 2 * dim ) { p[i] = 0x1010101; }
 	printf( "CFA resize array alloc\n" );
-	for ( int i = 0; i < 2 * dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; 2 * dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
 	p = alloc( p, dim );                                // CFA array alloc
 	printf( "CFA resize array alloc\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
@@ -128,15 +128,15 @@
 	p = alloc( p, dim, fill );                          // CFA array alloc, fill
 	printf( "CFA resize array alloc, fill\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
 	p = alloc( p, 2 * dim, fill );                      // CFA array alloc, fill
 	printf( "CFA resize array alloc, fill\n" );
-	for ( int i = 0; i < 2 * dim; i += 1 ) { printf( "%#x ", p[i] ); }
+	for ( i; 2 * dim ) { printf( "%#x ", p[i] ); }
 	printf( "\n" );
 
 	p = alloc( p, dim, fill );                          // CFA array alloc, fill
 	printf( "CFA resize array alloc, fill\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x ", p[i] );; }
+	for ( i; dim ) { printf( "%#x ", p[i] );; }
 	printf( "\n" );
 	free( p );
@@ -193,7 +193,7 @@
 	stp = align_alloc( Alignment, dim );                // CFA array memalign
 	assert( (uintptr_t)stp % Alignment == 0 );
-	for ( int i = 0; i < dim; i += 1 ) { stp[i] = (Struct){ 42, 42.5 }; }
+	for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; }
 	printf( "CFA array align_alloc\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%d %g, ", stp[i].x, stp[i].y ); }
+	for ( i; dim ) { printf( "%d %g, ", stp[i].x, stp[i].y ); }
 	printf( "\n" );
 	free( stp );
@@ -202,5 +202,5 @@
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA array align_alloc, fill\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", stp[i].x, stp[i].y ); }
+	for ( i; dim ) { printf( "%#x %a, ", stp[i].x, stp[i].y ); }
 	printf( "\n" );
 	free( stp );
@@ -221,10 +221,10 @@
 	amemset( sta, fill, dim );							// CFA array memset, type safe
 	printf( "CFA array memset\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta[i].x, sta[i].y ); }
+	for ( i; dim ) { printf( "%#x %a, ", sta[i].x, sta[i].y ); }
 	printf( "\n" );
 
 	amemcpy( sta1, sta, dim );							// CFA array memcpy, type safe
 	printf( "CFA array memcpy\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }
+	for ( i; dim ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }
 	printf( "\n" );
 
@@ -241,8 +241,8 @@
 	stp = anew( dim, 42, 42.5 );
 	printf( "CFA array new initialize\n" );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%d %g, ", stp[i].x, stp[i].y ); }
+	for ( i; dim ) { printf( "%d %g, ", stp[i].x, stp[i].y ); }
 	printf( "\n" );
 	stp1 = anew( dim, 42, 42.5 );
-	for ( int i = 0; i < dim; i += 1 ) { printf( "%d %g, ", stp1[i].x, stp1[i].y ); }
+	for ( i; dim ) { printf( "%d %g, ", stp1[i].x, stp1[i].y ); }
 	printf( "\n" );
 	adelete( dim, stp, dim, stp1 );
Index: tests/concurrent/examples/matrixSum.c
===================================================================
--- tests/concurrent/examples/matrixSum.c	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/concurrent/examples/matrixSum.c	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -11,6 +11,6 @@
 // Created On       : Mon Oct  9 08:29:28 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri May 25 09:34:27 2018
-// Update Count     : 10
+// Last Modified On : Thu Aug  9 09:17:30 2018
+// Update Count     : 13
 //
 
@@ -30,5 +30,5 @@
 void main( Adder & adder ) with( adder ) {				// thread starts here
 	subtotal = 0;
-	for ( int c = 0; c < cols; c += 1 ) {
+	for ( c; cols ) {
 		subtotal += row[c];
 	} // for
@@ -36,19 +36,19 @@
 
 int main() {
-	const int rows = 10, cols = 1000;
+	/* const */ int rows = 10, cols = 1000;
 	int matrix[rows][cols], subtotals[rows], total = 0;
 	processor p;										// add kernel thread
 
-	for ( int r = 0; r < rows; r += 1 ) {
-		for ( int c = 0; c < cols; c += 1 ) {
+	for ( r; rows ) {
+		for ( c; cols ) {
 			matrix[r][c] = 1;
 		} // for
 	} // for
 	Adder * adders[rows];
-	for ( int r = 0; r < rows; r += 1 ) {				// start threads to sum rows
+	for ( r; rows ) {									// start threads to sum rows
 		adders[r] = &(*malloc()){ matrix[r], cols, subtotals[r] };
 //		adders[r] = new( matrix[r], cols, &subtotals[r] );
 	} // for
-	for ( int r = 0; r < rows; r += 1 ) {				// wait for threads to finish
+	for ( r; rows ) {									// wait for threads to finish
 		delete( adders[r] );
 		total += subtotals[r];							// total subtotals
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/pybin/tools.py	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -75,5 +75,5 @@
 def diff( lhs, rhs ):
 	# diff the output of the files
-	diff_cmd = ("diff --ignore-all-space "
+	diff_cmd = ("diff --ignore-all-space --text "
 				"--ignore-blank-lines "
 				"--old-group-format='\t\tmissing lines :\n"
Index: tests/raii/.expect/dtor-early-exit-ERR1.txt
===================================================================
--- tests/raii/.expect/dtor-early-exit-ERR1.txt	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/raii/.expect/dtor-early-exit-ERR1.txt	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -1,3 +1,3 @@
-raii/dtor-early-exit.c:153:1 error: jump to label 'L1' crosses initialization of y Branch (Goto)
+raii/dtor-early-exit.c:150:1 error: jump to label 'L1' crosses initialization of y Branch (Goto)
   with target: L1
   with original target: L1
Index: tests/raii/.expect/dtor-early-exit-ERR2.txt
===================================================================
--- tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -1,3 +1,3 @@
-raii/dtor-early-exit.c:217:1 error: jump to label 'L2' crosses initialization of y Branch (Goto)
+raii/dtor-early-exit.c:214:1 error: jump to label 'L2' crosses initialization of y Branch (Goto)
   with target: L2
   with original target: L2
Index: tests/raii/dtor-early-exit.c
===================================================================
--- tests/raii/dtor-early-exit.c	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/raii/dtor-early-exit.c	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -10,14 +10,11 @@
 // Created On       : Wed Aug 17 08:26:25 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug 17 08:29:37 2016
-// Update Count     : 2
-//
-
-#include <fstream.hfa>
-#include <stdlib.hfa>
-extern "C" {
-#define false ((int)0)	// until stdbool.h works
-#define assert(cond) if (! (cond)) { sout | "Assertion failed: (" | #cond | ") at " __FILE__ | ":" | __LINE__ | endl; abort(); }
-}
+// Last Modified On : Sat Aug 11 07:58:39 2018
+// Update Count     : 8
+//
+
+#include <fstream>
+#include <stdlib>
+#include <assert.h>
 
 struct A {
Index: tests/searchsort.c
===================================================================
--- tests/searchsort.c	(revision 0c82701935b7980772f8c8389e4dd256cc274dd2)
+++ tests/searchsort.c	(revision 0e0f128c9f975b8eb3f6b0870c12c639668ef24c)
@@ -10,6 +10,6 @@
 // Created On       : Thu Feb  4 18:17:50 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan  2 08:01:17 2018
-// Update Count     : 100
+// Last Modified On : Thu Aug  9 07:54:57 2018
+// Update Count     : 101
 //
 
@@ -24,5 +24,5 @@
 	int iarr[size];
 
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		iarr[i] = size - i;
 		sout | iarr[i] | ", ";
@@ -32,9 +32,9 @@
 	// ascending sort/search by changing < to >
 	qsort( iarr, size );
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		sout | iarr[i] | ", ";
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {		// C version
+	for ( i; 0u ~ size ) {		// C version
 		int key = size - i;
 		int * v = bsearch( &key, iarr, size, sizeof( iarr[0] ), comp );
@@ -43,10 +43,10 @@
 	sout | endl;
 
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		int * v = bsearch( size - i, iarr, size );
 		sout | size - i | ':' | *v | ", ";
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		unsigned int posn = bsearch( size - i, iarr, size );
 		sout | size - i | ':' | iarr[posn] | ", ";
@@ -55,5 +55,5 @@
 
 	// descending sort/search by changing < to >
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		iarr[i] = i + 1;
 		sout | iarr[i] | ", ";
@@ -63,14 +63,14 @@
 		int ?<?( int x, int y ) { return x > y; }
 		qsort( iarr, size );
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			sout | iarr[i] | ", ";
 		} // for
 		sout | endl;
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			int * v = bsearch( size - i, iarr, size );
 			sout | size - i | ':' | *v | ", ";
 		} // for
 		sout | endl;
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			unsigned int posn = bsearch( size - i, iarr, size );
 			sout | size - i | ':' | iarr[posn] | ", ";
@@ -80,5 +80,5 @@
 
 	double darr[size];
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		darr[i] = size - i + 0.5;
 		sout | darr[i] | ", ";
@@ -86,14 +86,14 @@
 	sout | endl;
 	qsort( darr, size );
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		sout | darr[i] | ", ";
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		double * v = bsearch( size - i + 0.5, darr, size );
 		sout | size - i + 0.5 | ':' | *v | ", ";
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		unsigned int posn = bsearch( size - i + 0.5, darr, size );
 		sout | size - i + 0.5 | ':' | darr[posn] | ", ";
@@ -104,5 +104,5 @@
 	int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
 	ofstream & ?|?( ofstream & os, S v ) { return os | v.i | ' ' | v.j; }
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		sarr[i].i = size - i;
 		sarr[i].j = size - i + 1;
@@ -111,9 +111,9 @@
 	sout | endl;
 	qsort( sarr, size );
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		sout | sarr[i] | ", ";
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		S temp = { size - i, size - i + 1 };
 		S * v = bsearch( temp, sarr, size );
@@ -121,5 +121,5 @@
 	} // for
 	sout | endl;
-	for ( unsigned int i = 0; i < size; i += 1 ) {
+	for ( i; 0u ~ size ) {
 		S temp = { size - i, size - i + 1 };
 		unsigned int posn = bsearch( temp, sarr, size );
@@ -129,14 +129,14 @@
 	{
 		unsigned int getKey( const S & s ) { return s.j; }
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			sout | sarr[i] | ", ";
 		} // for
 		sout | endl;
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			S * v = bsearch( size - i + 1, sarr, size );
 			sout | size - i + 1 | ':' | *v | ", ";
 		} // for
 		sout | endl;
-		for ( unsigned int i = 0; i < size; i += 1 ) {
+		for ( i; 0u ~ size ) {
 			unsigned int posn = bsearch( size - i + 1, sarr, size );
 			sout | size - i + 1 | ':' | sarr[posn] | ", ";
