Index: tests/Makefile.in
===================================================================
--- tests/Makefile.in	(revision 200fcb3c496b08f843f691550554b21d786aad38)
+++ tests/Makefile.in	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -296,8 +296,26 @@
 AUTOMAKE_OPTIONS = foreign    # do not require all the GNU file names
 CFACOMPILE = $(CFACC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CFAFLAGS) $(CFAFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCFACOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CFACC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CFAFLAGS) $(CFAFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+
 AM_V_CFA = $(am__v_CFA_@AM_V@)
 am__v_CFA_ = $(am__v_CFA_@AM_DEFAULT_V@)
 am__v_CFA_0 = @echo "  CFA     " $@;
 am__v_CFA_1 = 
+AM_V_JAVAC = $(am__v_JAVAC_@AM_V@)
+am__v_JAVAC_ = $(am__v_JAVAC_@AM_DEFAULT_V@)
+am__v_JAVAC_0 = @echo "  JAVAC   " $@;
+am__v_JAVAC_1 = 
+AM_V_GOC = $(am__v_GOC_@AM_V@)
+am__v_GOC_ = $(am__v_GOC_@AM_DEFAULT_V@)
+am__v_GOC_0 = @echo "  GOC     " $@;
+am__v_GOC_1 = 
+UPPCOMPILE = $(UPPCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_UPPFLAGS) $(UPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_UPP = $(am__v_UPP_@AM_V@)
+am__v_UPP_ = $(am__v_UPP_@AM_DEFAULT_V@)
+am__v_UPP_0 = @echo "  UPP     " $@;
+am__v_UPP_1 = 
 debug = yes
 installed = no
@@ -316,5 +334,5 @@
 
 .SUFFIXES:
-.SUFFIXES: .c .cfa .o .obj .validate
+.SUFFIXES: .c .cfa .lo .o .obj .validate
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/src/cfa.make $(am__configure_deps)
 	@for dep in $?; do \
@@ -615,4 +633,9 @@
 	$(am__mv) $$depbase.Tpo $$depbase.Po
 
+.cfa.lo:
+	$(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+	$(LTCFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+	$(am__mv) $$depbase.Tpo $$depbase.Plo
+
 .PHONY: list .validate
 .INTERMEDIATE: .validate .validate.cfa
Index: tests/loopctrl.c
===================================================================
--- tests/loopctrl.c	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
+++ tests/loopctrl.c	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -0,0 +1,79 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// forctrl.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Wed Aug  8 18:32:59 2018
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Oct 21 08:59:27 2018
+// Update Count     : 44
+// 
+
+#include <fstream.hfa>
+
+struct S { int i, j; };
+void ?{}( S & s ) { s.[i, j] = 0; }
+void ?{}( S & s, int i ) { s.[i, j] = [i, 0]; }
+void ?{}( S & s, int i, int j ) { s.[i, j] = [i, j]; }
+void ?{}( S & s, zero_t ) { s.[i, j] = 0; }
+void ?{}( S & s, one_t ) { s.[i, j] = 1; }
+int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
+int ?<=?( S t1, S t2 ) { return t1.i <= t2.i && t1.j <= t2.j; }
+int ?>?( S t1, S t2 ) { return t1.i > t2.i && t1.j > t2.j; }
+int ?>=?( S t1, S t2 ) { return t1.i >= t2.i && t1.j >= t2.j; }
+S ?=?( S & t1, S t2 ) { t1.i = t2.i; t1.j = t2.j; return t1; }
+S ?+=?( S & t1, S t2 ) { t1.i += t2.i; t1.j += t2.j; return t1; }
+S ?+=?( S & t, one_t ) { t.i += 1; t.j += 1; return t; }
+S ?-=?( S & t1, S t2 ) { t1.i -= t2.i; t1.j -= t2.j; return t1; }
+S ?-=?( S & t, one_t ) { t.i -= 1; t.j -= 1; return t; }
+ofstream & ?|?( ofstream & os, S v ) { return os | '(' | v.i | v.j | ')'; }
+
+int main() {
+	while () { sout | "empty"; break; }			sout | endl;
+	do { sout | "empty"; break; } while ();		sout | endl;
+	for () { sout | "empty"; break; }			sout | endl | endl;
+
+	for ( 0 ) { sout | "A"; }					sout | "zero" | endl;
+	for ( 1 ) { sout | "A"; }					sout | endl;
+	for ( 10 ) { sout | "A"; }					sout | endl;
+
+	for ( 1 ~= 10 ~ 2 ) { sout | "B"; }			sout | endl;
+	for ( 10 -~= 1 ~ 2 ) { sout | "C"; }		sout | endl;
+	for ( 0.5 ~ 5.5 ) { sout | "D"; }			sout | endl;
+	for ( 5.5 -~ 0.5 ) { sout | "E"; }			sout | endl | endl;
+
+	for ( i; 10 ) { sout | i; }					sout | endl;
+	for ( i; 1 ~= 10 ~ 2 ) { sout | i; }		sout | endl;
+	for ( i; 10 -~= 1 ~ 2 ) { sout | i; }		sout | endl;
+	for ( i; 0.5 ~ 5.5 ) { sout | i; }			sout | endl;
+	for ( i; 5.5 -~ 0.5 ) { sout | i; }			sout | endl;
+
+	for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }	sout | endl;
+	for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; }	sout | endl | endl | endl;
+
+	int start = 3, comp = 10, inc = 2;
+	for ( i; start ~ comp ~ inc + 1 ) { sout | i; } sout | endl;
+
+	sout | endl;
+	for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} ) { sout | s; } sout | endl;
+	sout | endl;
+	for ( s; (S){0} ~ (S){10,10} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~ (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~= (S){10,10} ) { sout | s; } sout | endl;
+	for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
+	sout | endl;
+	for ( s; (S){10,10} -~ (S){0} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~= (S){0} ) { sout | s; } sout | endl;
+	for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | endl;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa forctrl.c" //
+// End: //
