Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/CodeGen/CodeGenerator.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By :
-// Last Modified On : Sun Jul 31 08:42:18 2016
-// Update Count     : 345
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Aug  4 11:16:21 2016
+// Update Count     : 351
 //
 
@@ -48,5 +48,5 @@
 	}
 
-	void CodeGenerator::extension( Expression *expr ) {
+	void CodeGenerator::extension( Expression * expr ) {
 		if ( expr->get_extension() ) {
 			output << "__extension__ ";
@@ -54,5 +54,5 @@
 	} // extension
 
-	void CodeGenerator::extension( Declaration *decl ) {
+	void CodeGenerator::extension( Declaration * decl ) {
 		if ( decl->get_extension() ) {
 			output << "__extension__ ";
@@ -73,5 +73,5 @@
 	}
 
-	ostream & operator<<( ostream & output, CodeGenerator::LabelPrinter &printLabels ) {
+	ostream & operator<<( ostream & output, CodeGenerator::LabelPrinter & printLabels ) {
 		std::list< Label > & labs = *printLabels.labels;
 		// l.unique(); // assumes a sorted list. Why not use set? Does order matter?
@@ -79,21 +79,21 @@
 			output << l.get_name() + ": ";
 			printLabels.cg.genAttributes( l.get_attributes() );
-		}
+		} // for
 		return output;
 	}
 
-	CodeGenerator::CodeGenerator( std::ostream &os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) {}
-
-	CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp )
+	CodeGenerator::CodeGenerator( std::ostream & os ) : indent( *this), cur_indent( 0 ), insideFunction( false ), output( os ), printLabels( *this ) {}
+
+	CodeGenerator::CodeGenerator( std::ostream & os, std::string init, int indentation, bool infunp )
 			: indent( *this), cur_indent( indentation ), insideFunction( infunp ), output( os ), printLabels( *this ) {
 		//output << std::string( init );
 	}
 
-	CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp )
+	CodeGenerator::CodeGenerator( std::ostream & os, char * init, int indentation, bool infunp )
 			: indent( *this ), cur_indent( indentation ), insideFunction( infunp ), output( os ), printLabels( *this ) {
 		//output << std::string( init );
 	}
 
-	string mangleName( DeclarationWithType *decl ) {
+	string mangleName( DeclarationWithType * decl ) {
 		if ( decl->get_mangleName() != "" ) {
 			// need to incorporate scope level in order to differentiate names for destructors
@@ -112,14 +112,14 @@
 					genCommaList( attr->get_parameters().begin(), attr->get_parameters().end() );
 					output << ")";
-				}
+				} // if
 				output << ",";
-			}
+			} // for
 			output << ")) ";
-		}
+		} // if
 	}
 
 
 	//*** Declarations
-	void CodeGenerator::visit( FunctionDecl *functionDecl ) {
+	void CodeGenerator::visit( FunctionDecl * functionDecl ) {
 		extension( functionDecl );
 		genAttributes( functionDecl->get_attributes() );
@@ -146,5 +146,5 @@
 	}
 
-	void CodeGenerator::visit( ObjectDecl *objectDecl ) {
+	void CodeGenerator::visit( ObjectDecl * objectDecl ) {
 		extension( objectDecl );
 		genAttributes( objectDecl->get_attributes() );
@@ -164,12 +164,12 @@
 	}
 
-	void CodeGenerator::handleAggregate( AggregateDecl *aggDecl ) {
+	void CodeGenerator::handleAggregate( AggregateDecl * aggDecl ) {
 		if ( aggDecl->get_name() != "" )
 			output << aggDecl->get_name();
 
-		std::list< Declaration * > &memb = aggDecl->get_members();
+		std::list< Declaration * > & memb = aggDecl->get_members();
 		if ( ! memb.empty() ) {
 //		if ( aggDecl->has_body() ) {
-//			std::list< Declaration * > &memb = aggDecl->get_members();
+//			std::list< Declaration * > & memb = aggDecl->get_members();
 			output << " {" << endl;
 
@@ -187,5 +187,5 @@
 	}
 
-	void CodeGenerator::visit( StructDecl *structDecl ) {
+	void CodeGenerator::visit( StructDecl * structDecl ) {
 		extension( structDecl );
 		output << "struct ";
@@ -193,5 +193,5 @@
 	}
 
-	void CodeGenerator::visit( UnionDecl *unionDecl ) {
+	void CodeGenerator::visit( UnionDecl * unionDecl ) {
 		extension( unionDecl );
 		output << "union ";
@@ -199,5 +199,5 @@
 	}
 
-	void CodeGenerator::visit( EnumDecl *enumDecl ) {
+	void CodeGenerator::visit( EnumDecl * enumDecl ) {
 		extension( enumDecl );
 		output << "enum ";
@@ -213,5 +213,5 @@
 			cur_indent += CodeGenerator::tabsize;
 			for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
-				ObjectDecl *obj = dynamic_cast< ObjectDecl* >( *i );
+				ObjectDecl * obj = dynamic_cast< ObjectDecl* >( *i );
 				assert( obj );
 				output << indent << mangleName( obj );
@@ -229,7 +229,7 @@
 	}
 
-	void CodeGenerator::visit( TraitDecl *traitDecl ) {}
-
-	void CodeGenerator::visit( TypedefDecl *typeDecl ) {
+	void CodeGenerator::visit( TraitDecl * traitDecl ) {}
+
+	void CodeGenerator::visit( TypedefDecl * typeDecl ) {
 		assert( false && "Typedefs are removed and substituted in earlier passes." );
 		//output << "typedef ";
@@ -237,5 +237,5 @@
 	}
 
-	void CodeGenerator::visit( TypeDecl *typeDecl ) {
+	void CodeGenerator::visit( TypeDecl * typeDecl ) {
 		// really, we should mutate this into something that isn't a TypeDecl but that requires large-scale changes,
 		// still to be done
@@ -265,10 +265,10 @@
 	}
 
-	void CodeGenerator::visit( SingleInit *init ) {
+	void CodeGenerator::visit( SingleInit * init ) {
 		printDesignators( init->get_designators() );
 		init->get_value()->accept( *this );
 	}
 
-	void CodeGenerator::visit( ListInit *init ) {
+	void CodeGenerator::visit( ListInit * init ) {
 		printDesignators( init->get_designators() );
 		output << "{ ";
@@ -278,16 +278,16 @@
 		} else {
 			genCommaList( init->begin(), init->end() );
-		}
+		} // if
 		output << " }";
 	}
 
-	void CodeGenerator::visit( Constant *constant ) {
+	void CodeGenerator::visit( Constant * constant ) {
 		output << constant->get_value() ;
 	}
 
 	//*** Expressions
-	void CodeGenerator::visit( ApplicationExpr *applicationExpr ) {
+	void CodeGenerator::visit( ApplicationExpr * applicationExpr ) {
 		extension( applicationExpr );
-		if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) {
+		if ( VariableExpr * varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) {
 			OperatorInfo opInfo;
 			if ( varExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( varExpr->get_var()->get_name(), opInfo ) ) {
@@ -301,10 +301,10 @@
 					{
 						assert( arg != applicationExpr->get_args().end() );
-						if ( AddressExpr *addrExpr = dynamic_cast< AddressExpr * >( *arg ) ) {
+						if ( AddressExpr * addrExpr = dynamic_cast< AddressExpr * >( *arg ) ) {
 							// remove & from first assignment/ctor argument
 							*arg = addrExpr->get_arg();
 						} else {
 							// no address-of operator, so must be a pointer - add dereference
-							UntypedExpr *newExpr = new UntypedExpr( new NameExpr( "*?" ) );
+							UntypedExpr * newExpr = new UntypedExpr( new NameExpr( "*?" ) );
 							newExpr->get_args().push_back( *arg );
 							assert( (*arg)->get_results().size() == 1 );
@@ -354,5 +354,5 @@
 						// no constructors with 0 or more than 2 parameters
 						assert( false );
-					}
+					} // if
 					break;
 
@@ -403,7 +403,7 @@
 	}
 
-	void CodeGenerator::visit( UntypedExpr *untypedExpr ) {
+	void CodeGenerator::visit( UntypedExpr * untypedExpr ) {
 		extension( untypedExpr );
-		if ( NameExpr *nameExpr = dynamic_cast< NameExpr* >( untypedExpr->get_function() ) ) {
+		if ( NameExpr * nameExpr = dynamic_cast< NameExpr* >( untypedExpr->get_function() ) ) {
 			OperatorInfo opInfo;
 			if ( operatorLookup( nameExpr->get_name(), opInfo ) ) {
@@ -474,5 +474,5 @@
 				} // switch
 			} else {
-				if ( nameExpr->get_name() == "Range" ) { // case V1 ... V2 or case V1~V2
+				if ( nameExpr->get_name() == "..." ) { // case V1 ... V2 or case V1~V2
 					assert( untypedExpr->get_args().size() == 2 );
 					(*untypedExpr->get_args().begin())->accept( *this );
@@ -494,5 +494,5 @@
 	}
 
-	void CodeGenerator::visit( NameExpr *nameExpr ) {
+	void CodeGenerator::visit( NameExpr * nameExpr ) {
 		extension( nameExpr );
 		OperatorInfo opInfo;
@@ -505,9 +505,9 @@
 	}
 
-	void CodeGenerator::visit( AddressExpr *addressExpr ) {
+	void CodeGenerator::visit( AddressExpr * addressExpr ) {
 		extension( addressExpr );
 		output << "(&";
 		// this hack makes sure that we don't convert "constant_zero" to "0" if we're taking its address
-		if ( VariableExpr *variableExpr = dynamic_cast< VariableExpr* >( addressExpr->get_arg() ) ) {
+		if ( VariableExpr * variableExpr = dynamic_cast< VariableExpr* >( addressExpr->get_arg() ) ) {
 			output << mangleName( variableExpr->get_var() );
 		} else {
@@ -517,5 +517,5 @@
 	}
 
-	void CodeGenerator::visit( CastExpr *castExpr ) {
+	void CodeGenerator::visit( CastExpr * castExpr ) {
 		extension( castExpr );
 		output << "(";
@@ -535,9 +535,9 @@
 	}
 
-	void CodeGenerator::visit( UntypedMemberExpr *memberExpr ) {
+	void CodeGenerator::visit( UntypedMemberExpr * memberExpr ) {
 		assert( false );
 	}
 
-	void CodeGenerator::visit( MemberExpr *memberExpr ) {
+	void CodeGenerator::visit( MemberExpr * memberExpr ) {
 		extension( memberExpr );
 		memberExpr->get_aggregate()->accept( *this );
@@ -545,5 +545,5 @@
 	}
 
-	void CodeGenerator::visit( VariableExpr *variableExpr ) {
+	void CodeGenerator::visit( VariableExpr * variableExpr ) {
 		extension( variableExpr );
 		OperatorInfo opInfo;
@@ -555,5 +555,5 @@
 	}
 
-	void CodeGenerator::visit( ConstantExpr *constantExpr ) {
+	void CodeGenerator::visit( ConstantExpr * constantExpr ) {
 		assert( constantExpr->get_constant() );
 		extension( constantExpr );
@@ -561,5 +561,5 @@
 	}
 
-	void CodeGenerator::visit( SizeofExpr *sizeofExpr ) {
+	void CodeGenerator::visit( SizeofExpr * sizeofExpr ) {
 		extension( sizeofExpr );
 		output << "sizeof(";
@@ -572,5 +572,5 @@
 	}
 
-	void CodeGenerator::visit( AlignofExpr *alignofExpr ) {
+	void CodeGenerator::visit( AlignofExpr * alignofExpr ) {
 		// use GCC extension to avoid bumping std to C11
 		extension( alignofExpr );
@@ -584,9 +584,9 @@
 	}
 
-	void CodeGenerator::visit( UntypedOffsetofExpr *offsetofExpr ) {
+	void CodeGenerator::visit( UntypedOffsetofExpr * offsetofExpr ) {
 		assert( false && "UntypedOffsetofExpr should not reach code generation." );
 	}
 
-	void CodeGenerator::visit( OffsetofExpr *offsetofExpr ) {
+	void CodeGenerator::visit( OffsetofExpr * offsetofExpr ) {
 		// use GCC builtin
 		output << "__builtin_offsetof(";
@@ -596,9 +596,9 @@
 	}
 
-	void CodeGenerator::visit( OffsetPackExpr *offsetPackExpr ) {
+	void CodeGenerator::visit( OffsetPackExpr * offsetPackExpr ) {
 		assert( false && "OffsetPackExpr should not reach code generation." );
 	}
 
-	void CodeGenerator::visit( LogicalExpr *logicalExpr ) {
+	void CodeGenerator::visit( LogicalExpr * logicalExpr ) {
 		extension( logicalExpr );
 		output << "(";
@@ -613,5 +613,5 @@
 	}
 
-	void CodeGenerator::visit( ConditionalExpr *conditionalExpr ) {
+	void CodeGenerator::visit( ConditionalExpr * conditionalExpr ) {
 		extension( conditionalExpr );
 		output << "(";
@@ -624,5 +624,5 @@
 	}
 
-	void CodeGenerator::visit( CommaExpr *commaExpr ) {
+	void CodeGenerator::visit( CommaExpr * commaExpr ) {
 		extension( commaExpr );
 		output << "(";
@@ -633,9 +633,9 @@
 	}
 
-	void CodeGenerator::visit( TupleExpr *tupleExpr ) {}
-
-	void CodeGenerator::visit( TypeExpr *typeExpr ) {}
-
-	void CodeGenerator::visit( AsmExpr *asmExpr ) {
+	void CodeGenerator::visit( TupleExpr * tupleExpr ) {}
+
+	void CodeGenerator::visit( TypeExpr * typeExpr ) {}
+
+	void CodeGenerator::visit( AsmExpr * asmExpr ) {
 		if ( asmExpr->get_inout() ) {
 			output << "[ ";
@@ -650,5 +650,5 @@
 
 	//*** Statements
-	void CodeGenerator::visit( CompoundStmt *compoundStmt ) {
+	void CodeGenerator::visit( CompoundStmt * compoundStmt ) {
 		std::list<Statement*> ks = compoundStmt->get_kids();
 		output << "{" << endl;
@@ -664,5 +664,5 @@
 				output << endl;
 			} // if
-		}
+		} // for
 		cur_indent -= CodeGenerator::tabsize;
 
@@ -670,5 +670,5 @@
 	}
 
-	void CodeGenerator::visit( ExprStmt *exprStmt ) {
+	void CodeGenerator::visit( ExprStmt * exprStmt ) {
 		assert( exprStmt );
 		// cast the top-level expression to void to reduce gcc warnings.
@@ -678,5 +678,5 @@
 	}
 
-	void CodeGenerator::visit( AsmStmt *asmStmt ) {
+	void CodeGenerator::visit( AsmStmt * asmStmt ) {
 		output << "asm ";
 		if ( asmStmt->get_voltile() ) output << "volatile ";
@@ -701,5 +701,5 @@
 	}
 
-	void CodeGenerator::visit( IfStmt *ifStmt ) {
+	void CodeGenerator::visit( IfStmt * ifStmt ) {
 		output << "if ( ";
 		ifStmt->get_condition()->accept( *this );
@@ -714,5 +714,5 @@
 	}
 
-	void CodeGenerator::visit( SwitchStmt *switchStmt ) {
+	void CodeGenerator::visit( SwitchStmt * switchStmt ) {
 		output << "switch ( " ;
 		switchStmt->get_condition()->accept( *this );
@@ -721,13 +721,10 @@
 		output << "{" << std::endl;
 		cur_indent += CodeGenerator::tabsize;
-
-		acceptAll( switchStmt->get_branches(), *this );
-
+		acceptAll( switchStmt->get_statements(), *this );
 		cur_indent -= CodeGenerator::tabsize;
-
 		output << indent << "}";
 	}
 
-	void CodeGenerator::visit( CaseStmt *caseStmt ) {
+	void CodeGenerator::visit( CaseStmt * caseStmt ) {
 		output << indent;
 		if ( caseStmt->isDefault()) {
@@ -750,5 +747,5 @@
 	}
 
-	void CodeGenerator::visit( BranchStmt *branchStmt ) {
+	void CodeGenerator::visit( BranchStmt * branchStmt ) {
 		switch ( branchStmt->get_type()) {
 		  case BranchStmt::Goto:
@@ -773,5 +770,5 @@
 
 
-	void CodeGenerator::visit( ReturnStmt *returnStmt ) {
+	void CodeGenerator::visit( ReturnStmt * returnStmt ) {
 		output << "return ";
 		maybeAccept( returnStmt->get_expr(), *this );
@@ -779,5 +776,5 @@
 	}
 
-	void CodeGenerator::visit( WhileStmt *whileStmt ) {
+	void CodeGenerator::visit( WhileStmt * whileStmt ) {
 		if ( whileStmt->get_isDoWhile() ) {
 			output << "do" ;
@@ -801,5 +798,5 @@
 	}
 
-	void CodeGenerator::visit( ForStmt *forStmt ) {
+	void CodeGenerator::visit( ForStmt * forStmt ) {
 		// initialization is always hoisted, so don't bother doing anything with that
 		output << "for (;";
@@ -823,10 +820,10 @@
 	}
 
-	void CodeGenerator::visit( NullStmt *nullStmt ) {
+	void CodeGenerator::visit( NullStmt * nullStmt ) {
 		//output << indent << CodeGenerator::printLabels( nullStmt->get_labels() );
 		output << "/* null statement */ ;";
 	}
 
-	void CodeGenerator::visit( DeclStmt *declStmt ) {
+	void CodeGenerator::visit( DeclStmt * declStmt ) {
 		declStmt->get_decl()->accept( *this );
 
@@ -836,5 +833,5 @@
 	}
 
-	void CodeGenerator::handleStorageClass( Declaration *decl ) {
+	void CodeGenerator::handleStorageClass( Declaration * decl ) {
 		switch ( decl->get_storageClass() ) {
 		  case DeclarationNode::Extern:
Index: src/ControlStruct/CaseRangeMutator.cc
===================================================================
--- src/ControlStruct/CaseRangeMutator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ 	(revision )
@@ -1,89 +1,0 @@
-//
-// 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.
-//
-// CaseRangeMutator.cc -- 
-//
-// Author           : Rodolfo G. Esteves
-// Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : 
-// Last Modified On : Sun Jul 31 12:16:28 2016
-// Update Count     : 32
-//
-
-#include <list>
-#include <cassert>
-#include <cstdlib>
-#include <iterator>
-
-#include "Common/utility.h"
-
-#include "SynTree/Statement.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Constant.h"
-#include "SynTree/Type.h"
-#include "CaseRangeMutator.h"
-
-namespace ControlStruct {
-	Statement *CaseRangeMutator::mutate( SwitchStmt *switchStmt ) {
-		std::list< Statement * > &cases = switchStmt->get_branches();
-
-		// a `for' would be more natural... all this contortions are because `replace' invalidates the iterator
-		std::list< Statement * >::iterator i = cases.begin();
-		while ( i != cases.end() ) {
-			(*i)->acceptMutator( *this );
-
-			if ( ! newCaseLabels.empty() ) {
-				std::cout << "FRED" << std::endl;
-				std::list< Statement * > newCases;
-
-				// transform( newCaseLabels.begin(), newCaseLabels.end(), bnd1st( ptr_fun( ctor< CaseStmt, Label, Expression * > ) ) );
-
-				for ( std::list< Expression * >::iterator j = newCaseLabels.begin(); j != newCaseLabels.end(); j++ ) {
-					std::list< Label > emptyLabels;
-					std::list< Statement * > emptyStmts;
-					newCases.push_back( new CaseStmt( emptyLabels, *j, emptyStmts ) );
-				} // for
-
-				if ( CaseStmt *currentCase = dynamic_cast< CaseStmt * >( *i ) )
-					if ( ! currentCase->get_statements().empty() ) {
-						CaseStmt *lastCase = dynamic_cast< CaseStmt * >( newCases.back() );
-						if ( lastCase == 0 ) { throw ( 0 ); /* FIXME */ } // something is very wrong, as I just made these, and they were all cases
-						// transfer the statement block ( if any ) to the new list:
-						lastCase->set_statements( currentCase->get_statements() );
-					} // if
-				std::list< Statement * >::iterator j = i;
-				advance( j, 1 );
-				replace( cases, i, newCases );
-				i = j;
-				newCaseLabels.clear();
-			} else
-				i++;
-		} // while
-
-		return switchStmt;
-	} // CaseRangeMutator::mutate
-
-	Statement *CaseRangeMutator::mutate( CaseStmt *caseStmt ) {
-		// case list, e.g., case 1, 3, 5:
-		if ( TupleExpr *tcond = dynamic_cast< TupleExpr * >( caseStmt->get_condition() ) ) {
-			assert( ! tcond->get_exprs().empty() );
-			for ( std::list< Expression * >::iterator i = tcond->get_exprs().begin(); i != tcond->get_exprs().end(); i++ ) {
-				newCaseLabels.push_back( *i );			// do I need to clone them?
-			} // for
-		} // if
-
-		std::list< Statement * > &stmts = caseStmt->get_statements();
-		mutateAll( stmts, *this );
-
-		return caseStmt;
-	} // CaseRangeMutator::mutate
-} // namespace ControlStruct
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/ControlStruct/CaseRangeMutator.h
===================================================================
--- src/ControlStruct/CaseRangeMutator.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ 	(revision )
@@ -1,43 +1,0 @@
-//
-// 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.
-//
-// CaseRangeMutator.h -- 
-//
-// Author           : Rodolfo G. Esteves
-// Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 30 23:41:57 2016
-// Update Count     : 5
-//
-
-#ifndef CASERNG_MUTATOR_H
-#define CASERNG_MUTATOR_H
-
-#include <list>
-
-#include "SynTree/Mutator.h"
-
-namespace ControlStruct {
-	/// expand case ranges and turn fallthru into a null statement
-	class CaseRangeMutator : public Mutator {
-	  public:
-		CaseRangeMutator() {}
-
-		virtual Statement *mutate( SwitchStmt * );
-		virtual Statement *mutate( CaseStmt * );
-	  private:
-		Expression *currentCondition;
-		std::list< Expression * > newCaseLabels;
-	};
-} // namespace ControlStruct
-
-#endif // CASERNG_MUTATOR_H
-
-// Local Variables: //
-// tab-width: 4 //
-// mode: c++ //
-// compile-command: "make install" //
-// End: //
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/ControlStruct/MLEMutator.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:36:51 2016
-// Update Count     : 197
+// Last Modified On : Thu Aug  4 11:21:32 2016
+// Update Count     : 202
 //
 
@@ -128,5 +128,5 @@
 		Label brkLabel = generator->newLabel("switchBreak");
 		enclosingControlStructures.push_back( Entry(switchStmt, brkLabel) );
-		mutateAll( switchStmt->get_branches(), *this );
+		mutateAll( switchStmt->get_statements(), *this );
 
 		Entry &e = enclosingControlStructures.back();
@@ -138,13 +138,13 @@
 			// switch should be CastStmts), append the exit label + break to the last case statement; create a default
 			// case if there are no cases
-			std::list< Statement * > &branches = switchStmt->get_branches();
-			if ( branches.empty() ) {
-				branches.push_back( CaseStmt::makeDefault() );
-			} // if
-
-			if ( CaseStmt * c = dynamic_cast< CaseStmt * >( branches.back() ) ) {
+			std::list< Statement * > &statements = switchStmt->get_statements();
+			if ( statements.empty() ) {
+				statements.push_back( CaseStmt::makeDefault() );
+			} // if
+
+			if ( CaseStmt * c = dynamic_cast< CaseStmt * >( statements.back() ) ) {
 				std::list<Label> temp; temp.push_back( brkLabel );
 				c->get_statements().push_back( new BranchStmt( temp, Label("brkLabel"), BranchStmt::Break ) );
-			} else assert(0); // as of this point, all branches of a switch are still CaseStmts
+			} else assert(0); // as of this point, all statements of a switch are still CaseStmts
 		} // if
 
Index: src/ControlStruct/Mutate.cc
===================================================================
--- src/ControlStruct/Mutate.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/ControlStruct/Mutate.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:37:45 2016
-// Update Count     : 8
+// Last Modified On : Thu Aug  4 11:39:08 2016
+// Update Count     : 9
 //
 
@@ -22,5 +22,4 @@
 #include "LabelFixer.h"
 #include "MLEMutator.h"
-#include "CaseRangeMutator.h"
 #include "ForExprMutator.h"
 #include "LabelTypeChecker.h"
@@ -41,7 +40,4 @@
 		LabelFixer lfix;
 
-		// expand case ranges and turn fallthru into a null statement
-		CaseRangeMutator ranges;
-
 		//ExceptMutator exc;
 		// LabelTypeChecker lbl;
@@ -49,5 +45,4 @@
 		mutateAll( translationUnit, formut );
 		acceptAll( translationUnit, lfix );
-		mutateAll( translationUnit, ranges );
 		//mutateAll( translationUnit, exc );
 		//acceptAll( translationUnit, lbl );
Index: src/ControlStruct/module.mk
===================================================================
--- src/ControlStruct/module.mk	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/ControlStruct/module.mk	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -11,6 +11,6 @@
 ## Created On       : Mon Jun  1 17:49:17 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Tue Jul 12 17:40:31 2016
-## Update Count     : 2
+## Last Modified On : Thu Aug  4 11:38:06 2016
+## Update Count     : 3
 ###############################################################################
 
@@ -18,5 +18,4 @@
 	ControlStruct/LabelFixer.cc \
         ControlStruct/MLEMutator.cc \
-	ControlStruct/CaseRangeMutator.cc \
 	ControlStruct/Mutate.cc \
 	ControlStruct/ForExprMutator.cc \
Index: src/GenPoly/DeclMutator.cc
===================================================================
--- src/GenPoly/DeclMutator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/GenPoly/DeclMutator.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Fri Nov 27 14:44:00 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:38:46 2016
-// Update Count     : 2
+// Last Modified On : Thu Aug  4 11:16:43 2016
+// Update Count     : 3
 //
 
@@ -163,5 +163,5 @@
 	Statement* DeclMutator::mutate(SwitchStmt *switchStmt) {
 		switchStmt->set_condition( maybeMutate( switchStmt->get_condition(), *this ) );
-		mutateAll( switchStmt->get_branches(), *this );
+		mutateAll( switchStmt->get_statements(), *this );
 		return switchStmt;
 	}
Index: src/GenPoly/PolyMutator.cc
===================================================================
--- src/GenPoly/PolyMutator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/GenPoly/PolyMutator.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:39:32 2016
-// Update Count     : 12
+// Last Modified On : Thu Aug  4 11:26:22 2016
+// Update Count     : 16
 //
 
@@ -99,5 +99,5 @@
 
 	Statement * PolyMutator::mutate(SwitchStmt *switchStmt) {
-		mutateStatementList( switchStmt->get_branches() );
+		mutateStatementList( switchStmt->get_statements() );
 		switchStmt->set_condition( mutateExpression( switchStmt->get_condition() ) );
 		return switchStmt;
Index: src/Makefile.in
===================================================================
--- src/Makefile.in	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Makefile.in	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -108,5 +108,4 @@
 	ControlStruct/driver_cfa_cpp-LabelFixer.$(OBJEXT) \
 	ControlStruct/driver_cfa_cpp-MLEMutator.$(OBJEXT) \
-	ControlStruct/driver_cfa_cpp-CaseRangeMutator.$(OBJEXT) \
 	ControlStruct/driver_cfa_cpp-Mutate.$(OBJEXT) \
 	ControlStruct/driver_cfa_cpp-ForExprMutator.$(OBJEXT) \
@@ -372,6 +371,6 @@
 	Common/SemanticError.cc Common/UniqueName.cc \
 	ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \
-	ControlStruct/MLEMutator.cc ControlStruct/CaseRangeMutator.cc \
-	ControlStruct/Mutate.cc ControlStruct/ForExprMutator.cc \
+	ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \
+	ControlStruct/ForExprMutator.cc \
 	ControlStruct/LabelTypeChecker.cc Designators/Processor.cc \
 	GenPoly/Box.cc GenPoly/GenPoly.cc GenPoly/PolyMutator.cc \
@@ -542,7 +541,4 @@
 	ControlStruct/$(DEPDIR)/$(am__dirstamp)
 ControlStruct/driver_cfa_cpp-MLEMutator.$(OBJEXT):  \
-	ControlStruct/$(am__dirstamp) \
-	ControlStruct/$(DEPDIR)/$(am__dirstamp)
-ControlStruct/driver_cfa_cpp-CaseRangeMutator.$(OBJEXT):  \
 	ControlStruct/$(am__dirstamp) \
 	ControlStruct/$(DEPDIR)/$(am__dirstamp)
@@ -820,5 +816,4 @@
 	-rm -f Common/driver_cfa_cpp-SemanticError.$(OBJEXT)
 	-rm -f Common/driver_cfa_cpp-UniqueName.$(OBJEXT)
-	-rm -f ControlStruct/driver_cfa_cpp-CaseRangeMutator.$(OBJEXT)
 	-rm -f ControlStruct/driver_cfa_cpp-ForExprMutator.$(OBJEXT)
 	-rm -f ControlStruct/driver_cfa_cpp-LabelFixer.$(OBJEXT)
@@ -930,5 +925,4 @@
 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/driver_cfa_cpp-ForExprMutator.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelFixer.Po@am__quote@
@@ -1212,18 +1206,4 @@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`
 
-ControlStruct/driver_cfa_cpp-CaseRangeMutator.o: ControlStruct/CaseRangeMutator.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc
-
-ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj: ControlStruct/CaseRangeMutator.cc
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`
-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/driver_cfa_cpp-CaseRangeMutator.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`
-
 ControlStruct/driver_cfa_cpp-Mutate.o: ControlStruct/Mutate.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o ControlStruct/driver_cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Parser/ExpressionNode.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 13:17:07 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul  5 13:41:55 2016
-// Update Count     : 320
+// Last Modified On : Tue Aug  2 15:10:23 2016
+// Update Count     : 322
 //
 
@@ -83,7 +83,7 @@
 }
 
-CommaExprNode *ExpressionNode::add_to_list( ExpressionNode *exp ) {
-	return new CommaExprNode( this, exp );
-}
+// CommaExprNode *ExpressionNode::add_to_list( ExpressionNode *exp ) {
+// 	return new CommaExprNode( this, exp );
+// }
 
 //##############################################################################
@@ -246,5 +246,5 @@
 	"?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?",
 	"?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
-	"?[?]", "FieldSel", "PFieldSel", "Range",
+	"?[?]", "FieldSel", "PFieldSel", "...",
 	// monadic
 	"+?", "-?", "AddressOf", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "&&"
@@ -616,9 +616,9 @@
 }
 
-CommaExprNode *CommaExprNode::add_to_list( ExpressionNode *exp ) {
-	add_arg( exp );
-
-	return this;
-}
+// CommaExprNode *CommaExprNode::add_to_list( ExpressionNode *exp ) {
+// 	add_arg( exp );
+//
+// 	return this;
+// }
 
 CommaExprNode::CommaExprNode( const CommaExprNode &other ) : CompositeExprNode( other ) {
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Parser/ParseNode.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -77,5 +77,5 @@
 	virtual ExpressionNode *clone() const = 0;
 
-	virtual CommaExprNode *add_to_list( ExpressionNode * );
+	// virtual CommaExprNode *add_to_list( ExpressionNode * );
 
 	ExpressionNode *get_argName() const { return argName; }
@@ -299,5 +299,5 @@
 	CommaExprNode( const CommaExprNode &other );
 
-	virtual CommaExprNode *add_to_list( ExpressionNode * );
+	// virtual CommaExprNode *add_to_list( ExpressionNode * );
 	virtual CommaExprNode *clone() const { return new CommaExprNode( *this ); }
 };
@@ -485,5 +485,5 @@
 	std::string get_target() const;
 
-	StatementNode *add_controlexp( ExpressionNode * );
+	// StatementNode *add_controlexp( ExpressionNode * );
 	StatementNode *append_block( StatementNode * );
 	StatementNode *append_last_case( StatementNode * );
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Parser/StatementNode.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -107,9 +107,9 @@
 }
 
-StatementNode *StatementNode::add_controlexp( ExpressionNode *e ) {
-	if ( control && e )
-		control->add_to_list( e ); // xxx - check this
-	return this;
-}
+// StatementNode *StatementNode::add_controlexp( ExpressionNode *e ) {
+// 	if ( control && e )
+// 		control->add_to_list( e ); // xxx - check this
+// 	return this;
+// }
 
 StatementNode *StatementNode::append_block( StatementNode *stmt ) {
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Parser/parser.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -1031,6 +1031,6 @@
      631,   632,   638,   639,   640,   641,   642,   643,   644,   645,
      646,   656,   663,   665,   675,   676,   681,   683,   689,   691,
-     695,   696,   701,   706,   709,   711,   713,   722,   724,   735,
-     736,   738,   742,   743,   748,   749,   754,   755,   759,   764,
+     695,   696,   701,   706,   709,   711,   713,   723,   725,   736,
+     737,   739,   743,   744,   748,   749,   754,   755,   759,   764,
      765,   769,   771,   777,   778,   782,   784,   786,   788,   794,
      795,   799,   801,   806,   808,   810,   815,   817,   822,   824,
@@ -6009,5 +6009,6 @@
 			// *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
 			// statement around the switch.  Statements after the initial declaration list can never be executed, and
-			// therefore, are removed from the grammar even though C allows it. Change also applies to choose statement.
+			// therefore, are removed from the grammar even though C allows it. The change also applies to choose
+			// statement.
 			(yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw;
 		}
@@ -6017,5 +6018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 723 "parser.yy"
+#line 724 "parser.yy"
     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     break;
@@ -6024,5 +6025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 725 "parser.yy"
+#line 726 "parser.yy"
     {
 			StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
@@ -6034,5 +6035,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 735 "parser.yy"
+#line 736 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -6041,13 +6042,20 @@
 
 /* Line 1806 of yacc.c  */
-#line 737 "parser.yy"
+#line 738 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     break;
 
+  case 162:
+
+/* Line 1806 of yacc.c  */
+#line 743 "parser.yy"
+    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); }
+    break;
+
   case 163:
 
 /* Line 1806 of yacc.c  */
 #line 744 "parser.yy"
-    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
+    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }
     break;
 
@@ -6056,5 +6064,5 @@
 /* Line 1806 of yacc.c  */
 #line 748 "parser.yy"
-    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
+    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     break;
 
@@ -9417,5 +9425,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 9420 "Parser/parser.cc"
+#line 9428 "Parser/parser.cc"
       default: break;
     }
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/Parser/parser.yy	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 23 17:01:30 2016
-// Update Count     : 1668
+// Last Modified On : Thu Aug  4 11:28:18 2016
+// Update Count     : 1672
 //
 
@@ -150,6 +150,6 @@
 %type<sn> block_item_list				block_item
 %type<sn> case_clause
-%type<en> case_value					case_value_list
-%type<sn> case_label					case_label_list
+%type<en> case_value
+%type<sn> case_value_list				case_label					case_label_list
 %type<sn> switch_clause_list_opt		switch_clause_list			choose_clause_list_opt		choose_clause_list
 %type<pn> handler_list					handler_clause				finally_clause
@@ -717,5 +717,6 @@
 			// *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
 			// statement around the switch.  Statements after the initial declaration list can never be executed, and
-			// therefore, are removed from the grammar even though C allows it. Change also applies to choose statement.
+			// therefore, are removed from the grammar even though C allows it. The change also applies to choose
+			// statement.
 			$$ = $7 != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( $7 ))->set_link( sw )) ) : sw;
 		}
@@ -740,11 +741,10 @@
 
 case_value_list:										// CFA
-	case_value
-	| case_value_list ',' case_value
-		{ $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( $1 ))->set_link( $3 ) ); }
+	case_value									{ $$ = new StatementNode( StatementNode::Case, $1, 0 ); }
+	| case_value_list ',' case_value			{ $$ = (StatementNode *)($1->set_link( new StatementNode( StatementNode::Case, $3, 0 ) ) ); }
 	;
 
 case_label:												// CFA
-	CASE case_value_list ':'					{ $$ = new StatementNode( StatementNode::Case, $2, 0 ); }
+	CASE case_value_list ':'					{ $$ = $2; }
 	| DEFAULT ':'								{ $$ = new StatementNode( StatementNode::Default ); }
 		// A semantic check is required to ensure only one default clause per switch/choose statement.
Index: src/SymTab/AddVisit.h
===================================================================
--- src/SymTab/AddVisit.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SymTab/AddVisit.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 16:14:32 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:46:33 2016
-// Update Count     : 6
+// Last Modified On : Thu Aug  4 11:22:01 2016
+// Update Count     : 9
 //
 
@@ -33,5 +33,5 @@
 	template< typename Visitor >
 	inline void addVisit(SwitchStmt *switchStmt, Visitor &visitor) {
-		addVisitStatementList( switchStmt->get_branches(), visitor );
+		addVisitStatementList( switchStmt->get_statements(), visitor );
 		maybeAccept( switchStmt->get_condition(), visitor );
 	}
Index: src/SynTree/AddStmtVisitor.cc
===================================================================
--- src/SynTree/AddStmtVisitor.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/AddStmtVisitor.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jun 22 12:11:17 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:49:59 2016
-// Update Count     : 12
+// Last Modified On : Thu Aug  4 11:23:47 2016
+// Update Count     : 16
 //
 
@@ -71,5 +71,5 @@
 
 void AddStmtVisitor::visit(SwitchStmt *switchStmt) {
-	visitStatementList( switchStmt->get_branches() );
+	visitStatementList( switchStmt->get_statements() );
 	maybeAccept( switchStmt->get_condition(), *this );
 }
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Expression.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jun 13 16:03:39 2016
-// Update Count     : 42
+// Last Modified On : Wed Aug  3 17:06:51 2016
+// Update Count     : 45
 //
 
@@ -529,4 +529,12 @@
 }
 
+RangeExpr::RangeExpr( ConstantExpr *low, ConstantExpr *high ) : low( low ), high( high ) {}
+RangeExpr::RangeExpr( const RangeExpr &other ) : low( other.low->clone() ), high( other.high->clone() ) {}
+void RangeExpr::print( std::ostream &os, int indent ) const {
+	os << std::string( indent, ' ' ) << "Range Expression: ";
+	low->print( os, indent );
+	os << " ... ";
+	high->print( os, indent );
+}
 
 std::ostream & operator<<( std::ostream & out, Expression * expr ) {
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Expression.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul  4 14:45:32 2016
-// Update Count     : 23
+// Last Modified On : Wed Aug  3 17:08:44 2016
+// Update Count     : 27
 //
 
@@ -18,4 +18,5 @@
 
 #include <map>
+#include <memory>
 #include "SynTree.h"
 #include "Visitor.h"
@@ -634,4 +635,22 @@
 };
 
+class RangeExpr : public Expression {
+  public:
+	RangeExpr( ConstantExpr *low, ConstantExpr *high );
+	RangeExpr( const RangeExpr &other );
+
+	ConstantExpr * get_low() const { return low.get(); }
+	ConstantExpr * get_high() const { return high.get(); }
+	RangeExpr * set_low( ConstantExpr *low ) { RangeExpr::low.reset( low ); return this; }
+	RangeExpr * set_high( ConstantExpr *high ) { RangeExpr::high.reset( high ); return this; }
+
+	virtual RangeExpr *clone() const { return new RangeExpr( *this ); }
+	virtual void accept( Visitor &v ) { v.visit( this ); }
+	virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); }
+	virtual void print( std::ostream &os, int indent = 0 ) const;
+  private:
+	std::unique_ptr<ConstantExpr> low, high;
+};
+
 std::ostream & operator<<( std::ostream & out, Expression * expr );
 
Index: src/SynTree/Mutator.cc
===================================================================
--- src/SynTree/Mutator.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Mutator.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:51:19 2016
-// Update Count     : 17
+// Last Modified On : Thu Aug  4 11:23:21 2016
+// Update Count     : 19
 //
 
@@ -126,5 +126,5 @@
 Statement *Mutator::mutate( SwitchStmt *switchStmt ) {
 	switchStmt->set_condition( maybeMutate( switchStmt->get_condition(), *this ) );
-	mutateAll( switchStmt->get_branches(), *this );
+	mutateAll( switchStmt->get_statements(), *this );
 	return switchStmt;
 }
@@ -349,4 +349,10 @@
 	compLitExpr->set_initializer( maybeMutate( compLitExpr->get_initializer(), *this ) );
 	return compLitExpr;
+}
+
+Expression *Mutator::mutate( RangeExpr *rangeExpr ) {
+	rangeExpr->set_low( maybeMutate( rangeExpr->get_low(), *this ) );
+	rangeExpr->set_high( maybeMutate( rangeExpr->get_high(), *this ) );
+	return rangeExpr;
 }
 
Index: src/SynTree/Mutator.h
===================================================================
--- src/SynTree/Mutator.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Mutator.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:51:43 2016
-// Update Count     : 11
+// Last Modified On : Wed Aug  3 16:59:45 2016
+// Update Count     : 12
 //
 #include <cassert>
@@ -78,4 +78,5 @@
 	virtual Expression* mutate( UntypedValofExpr *valofExpr );
 	virtual Expression* mutate( CompoundLiteralExpr *compLitExpr );
+	virtual Expression* mutate( RangeExpr *rangeExpr );
 
 	virtual Type* mutate( VoidType *basicType );
Index: src/SynTree/Statement.cc
===================================================================
--- src/SynTree/Statement.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Statement.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:52:32 2016
-// Update Count     : 55
+// Last Modified On : Thu Aug  4 11:25:20 2016
+// Update Count     : 61
 //
 
@@ -143,19 +143,17 @@
 }
 
-SwitchStmt::SwitchStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_branches ):
-	Statement( _labels ), condition( _condition ), branches( _branches ) {
+SwitchStmt::SwitchStmt( std::list<Label> _labels, Expression * _condition, std::list<Statement *> &_statements ):
+	Statement( _labels ), condition( _condition ), statements( _statements ) {
 }
 
 SwitchStmt::SwitchStmt( const SwitchStmt & other ):
 	Statement( other ), condition( maybeClone( other.condition ) ) {
-	cloneAll( other.branches, branches );
+	cloneAll( other.statements, statements );
 }
 
 SwitchStmt::~SwitchStmt() {
 	delete condition;
-	// destroy branches
-}
-
-void SwitchStmt::add_case( CaseStmt *c ) {}
+	// destroy statements
+}
 
 void SwitchStmt::print( std::ostream &os, int indent ) const {
@@ -164,10 +162,10 @@
 	os << endl;
 
-	// branches
+	// statements
 	std::list<Statement *>::const_iterator i;
-	for ( i = branches.begin(); i != branches.end(); i++)
+	for ( i = statements.begin(); i != statements.end(); i++)
 		(*i)->print( os, indent + 4 );
 
-	//for_each( branches.begin(), branches.end(), mem_fun( bind1st(&Statement::print ), os ));
+	//for_each( statements.begin(), statements.end(), mem_fun( bind1st(&Statement::print ), os ));
 }
 
@@ -187,6 +185,6 @@
 }
 
-CaseStmt * CaseStmt::makeDefault( std::list<Label> labels, std::list<Statement *> branches ) {
-	return new CaseStmt( labels, 0, branches, true );
+CaseStmt * CaseStmt::makeDefault( std::list<Label> labels, std::list<Statement *> stmts ) {
+	return new CaseStmt( labels, 0, stmts, true );
 }
 
Index: src/SynTree/Statement.h
===================================================================
--- src/SynTree/Statement.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Statement.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:53:29 2016
-// Update Count     : 47
+// Last Modified On : Thu Aug  4 11:26:02 2016
+// Update Count     : 64
 //
 
@@ -129,5 +129,5 @@
 class SwitchStmt : public Statement {
   public:
-	SwitchStmt( std::list<Label> labels, Expression *condition, std::list<Statement *> &branches );
+	SwitchStmt( std::list<Label> labels, Expression *condition, std::list<Statement *> &statements );
 	SwitchStmt( const SwitchStmt &other );
 	virtual ~SwitchStmt();
@@ -136,6 +136,5 @@
 	void set_condition( Expression *newValue ) { condition = newValue; }
 
-	std::list<Statement *> & get_branches() { return branches; }
-	void add_case( CaseStmt * );
+	std::list<Statement *> & get_statements() { return statements; }
 
 	virtual void accept( Visitor &v ) { v.visit( this ); }
@@ -146,16 +145,14 @@
   private:
 	Expression * condition;
-	std::list<Statement *> branches; // should be list of CaseStmt
+	std::list<Statement *> statements;
 };
 
 class CaseStmt : public Statement {
   public:
-	CaseStmt( std::list<Label> labels, Expression *conditions,
-	      std::list<Statement *> &stmts, bool isdef = false ) throw(SemanticError);
+	CaseStmt( std::list<Label> labels, Expression *conditions, std::list<Statement *> &stmts, bool isdef = false ) throw(SemanticError);
 	CaseStmt( const CaseStmt &other );
 	virtual ~CaseStmt();
 
-	static CaseStmt * makeDefault( std::list<Label> labels = std::list<Label>(),
-		std::list<Statement *> stmts = std::list<Statement *>() );
+	static CaseStmt * makeDefault( std::list<Label> labels = std::list<Label>(), std::list<Statement *> stmts = std::list<Statement *>() );
 
 	bool isDefault() const { return _isDefault; }
Index: src/SynTree/SynTree.h
===================================================================
--- src/SynTree/SynTree.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/SynTree.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:54:02 2016
-// Update Count     : 6
+// Last Modified On : Wed Aug  3 17:02:34 2016
+// Update Count     : 7
 //
 
@@ -83,4 +83,5 @@
 class UntypedValofExpr;
 class CompoundLiteralExpr;
+class RangeExpr;
 
 class Type;
Index: src/SynTree/Visitor.cc
===================================================================
--- src/SynTree/Visitor.cc	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Visitor.cc	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:54:39 2016
-// Update Count     : 19
+// Last Modified On : Thu Aug  4 11:24:25 2016
+// Update Count     : 21
 //
 
@@ -109,5 +109,5 @@
 void Visitor::visit( SwitchStmt *switchStmt ) {
 	maybeAccept( switchStmt->get_condition(), *this );
-	acceptAll( switchStmt->get_branches(), *this );
+	acceptAll( switchStmt->get_statements(), *this );
 }
 
@@ -296,4 +296,9 @@
 	maybeAccept( compLitExpr->get_type(), *this );
 	maybeAccept( compLitExpr->get_initializer(), *this );
+}
+
+void Visitor::visit( RangeExpr *rangeExpr ) {
+	maybeAccept( rangeExpr->get_low(), *this );
+	maybeAccept( rangeExpr->get_high(), *this );
 }
 
Index: src/SynTree/Visitor.h
===================================================================
--- src/SynTree/Visitor.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/SynTree/Visitor.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:55:09 2016
-// Update Count     : 8
+// Last Modified On : Wed Aug  3 17:01:50 2016
+// Update Count     : 9
 //
 
@@ -78,4 +78,5 @@
 	virtual void visit( UntypedValofExpr *valofExpr );
 	virtual void visit( CompoundLiteralExpr *compLitExpr );
+	virtual void visit( RangeExpr *rangeExpr );
 
 	virtual void visit( VoidType *basicType );
Index: src/examples/gc_no_raii/bug-repro/return_template.c
===================================================================
--- src/examples/gc_no_raii/bug-repro/return_template.c	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/bug-repro/return_template.c	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -5,6 +5,11 @@
 };
 
+forall(otype T) void ?{}(wrap(T)* this);
+forall(otype T) void ?{}(wrap(T)* this, wrap(T)* rhs);
+forall(otype T) void ^?{}(wrap(T)* this);
+forall(otype T) void ?=?(wrap(T)* this, wrap(T)* rhs);
+
 forall(otype T)
-static inline wrap(T) test()
+wrap(T) test()
 {
 	wrap(T) tester;
Index: src/examples/gc_no_raii/src/gc.h
===================================================================
--- src/examples/gc_no_raii/src/gc.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/gc.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -7,7 +7,9 @@
 static inline gcpointer(T) gcmalloc()
 {
-    gcpointer(T) test;
-    // ctor(&test, gc_allocate(sizeof(T)));
-    // gc_conditional_collect();
-    return test;
+    gcpointer(T) ptr;
+    void* address = gc_allocate(sizeof(T));
+    (&ptr){ address };
+    ctor(&ptr, address);
+    gc_conditional_collect();
+    return ptr;
 }
Index: src/examples/gc_no_raii/src/gcpointers.c
===================================================================
--- src/examples/gc_no_raii/src/gcpointers.c	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/gcpointers.c	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -1,5 +1,5 @@
 #include "gcpointers.h"
 
-#include "gc.h"
+// #include "gc.h"
 #include "internal/collector.h"
 #include "internal/object_header.h"
Index: src/examples/gc_no_raii/src/gcpointers.h
===================================================================
--- src/examples/gc_no_raii/src/gcpointers.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/gcpointers.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,9 +10,9 @@
 };
 
-void gcpointer_ctor(gcpointer_t* this);
-void gcpointer_ctor(gcpointer_t* this, void* address);
-void gcpointer_ctor(gcpointer_t* this, gcpointer_t* other);
-void gcpointer_dtor(gcpointer_t* this);
-gcpointer_t* gcpointer_assign(gcpointer_t* this, gcpointer_t* rhs);
+void ?{}(gcpointer_t* this);
+void ?{}(gcpointer_t* this, void* address);
+void ?{}(gcpointer_t* this, gcpointer_t other);
+void ^?{}(gcpointer_t* this);
+gcpointer_t* ?=?(gcpointer_t this, gcpointer_t rhs);
 
 //Logical operators
@@ -27,60 +27,16 @@
 };
 
-forall(otype T)
-static inline void ctor(gcpointer(T)* this)
-{
-	gcpointer_ctor(&this->internal);
-}
+//
+forall(otype T) void ?{}(gcpointer(T)* this);
+forall(otype T) void ?{}(gcpointer(T)* this, void* address);
+forall(otype T) void ctor(gcpointer(T)* this, void* address);
+forall(otype T) void ?{}(gcpointer(T)* this, gcpointer(T)* other);
+forall(otype T) void ^?{}(gcpointer(T)* this);
+forall(otype T) gcpointer(T) ?=?(gcpointer(T) this, gcpointer(T) rhs);
 
-// forall(otype T)
-// static inline void ctor(gcpointer(T)* this, int null)
-// {
-// 	gcpointer_ctor(&this->internal, NULL);
-// }
 
-forall(otype T)
-static inline void ctor(gcpointer(T)* this, void* address)
-{
-	gcpointer_ctor(&this->internal, address);
-}
-
-forall(otype T)
-static inline void ctor(gcpointer(T)* this, gcpointer(T)* other)
-{
-	gcpointer_ctor(&this->internal, other);
-}
-
-forall(otype T)
-static inline void dtor(gcpointer(T)* this)
-{
-	gcpointer_dtor(&this->internal);
-}
-
-forall(otype T)
-static inline gcpointer(T)* ?=?(gcpointer(T)* this, gcpointer(T)* rhs)
-{
-	gcpointer_assign(&this->internal, &rhs->internal);
-	return this;
-}
-
-forall(otype T)
-static inline T *?(gcpointer(T) this)
-{
-	return *(T*)this.internal.ptr;
-}
+forall(otype T) T *?(gcpointer(T) this);
 
 //Logical operators
-forall(otype T)
-static inline int ?!=?(gcpointer(T) this, gcpointer(T) rhs)
-{
-	return this.internal.ptr != rhs.internal.ptr;
-}
-
-forall(otype T)
-static inline int ?==?(gcpointer(T) this, gcpointer(T) rhs)
-{
-	return !(this == rhs);
-}
-
-forall(otype T)
-extern struct gcpointer(T) 0;
+forall(otype T) int ?!=?(gcpointer(T) this, gcpointer(T) rhs);
+forall(otype T) int ?==?(gcpointer(T) this, gcpointer(T) rhs);
Index: src/examples/gc_no_raii/src/internal/memory_pool.h
===================================================================
--- src/examples/gc_no_raii/src/internal/memory_pool.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/internal/memory_pool.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -3,4 +3,5 @@
 extern "C" {
 #include <stdbool.h>
+#include <stddef.h>
 #include <stdint.h>
 }
Index: src/examples/gc_no_raii/src/internal/state.h
===================================================================
--- src/examples/gc_no_raii/src/internal/state.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/internal/state.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -1,9 +1,15 @@
 #pragma once
 
+#ifdef __cforall
+extern "C" {
+#endif
 #include <stddef.h>
 #include <stdint.h>
+#ifdef __cforall
+}
+#endif
+#include <vector>
 
 #include "tools.h"
-#include "vector.h"
 
 typedef vector(struct gc_memory_pool*, heap_allocator(struct gc_memory_pool*)) pools_table_t;
Index: src/examples/gc_no_raii/src/tools/worklist.h
===================================================================
--- src/examples/gc_no_raii/src/tools/worklist.h	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/src/tools/worklist.h	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,5 +10,5 @@
 #endif
 
-#include "vector.h"
+#include <vector>
 
 typedef vector(intptr_t*, heap_allocator(intptr_t*)) worklist_t;
Index: src/examples/gc_no_raii/test/badlll.c
===================================================================
--- src/examples/gc_no_raii/test/badlll.c	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/test/badlll.c	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -7,46 +7,50 @@
 };
 
+void ?{}(List_t* this);
+List_t* ?=?(List_t* this, List_t* rhs);
+
 typedef gcpointer(List_t) LLL;
 
 #define MAX (1024 * 1024)
 
-LLL buildLLL(int sz)
+// LLL buildLLL(int sz)
+void bla()
 {
 	int i;
-	LLL ll0, lll, llc;
-
-	ll0 = gcmalloc();
-	ll0->val = 0;
-	lll = ll0;
-
-	for (i = 1; i < sz; i++)
-	{
-		llc = gcmalloc();
-		llc->val = i;
-		lll->next = llc;
-		lll = llc;
-	}
-
-	return ll0;
+	// LLL ll0;//, lll, llc;
+//
+// 	ll0 = gcmalloc();
+// 	ll0->val = 0;
+// 	lll = ll0;
+//
+// 	for (i = 1; i < sz; i++)
+// 	{
+// 		llc = gcmalloc();
+// 		llc->val = i;
+// 		lll->next = llc;
+// 		lll = llc;
+// 	}
+//
+	// return ll0;
 }
-
-void testLLL(LLL lll)
-{
-	unsigned char *counted;
-
-	counted = (unsigned char *) calloc(MAX, sizeof(unsigned char));
-	while (lll)
-	{
-		counted[lll->val]++;
-		if (counted[lll->val] > 1)
-		{
-			fprintf(stderr, "ERROR! Encountered %d twice!\n", lll->val);
-			exit(1);
-		}
-		lll = lll->next;
-	}
-
-	return;
-}
+//
+// void testLLL(LLL lll)
+// {
+// 	unsigned char *counted;
+//
+// 	counted = (unsigned char *) calloc(MAX, sizeof(unsigned char));
+// 	while (lll)
+// 	{
+// 		counted[lll->val]++;
+// 		if (counted[lll->val] > 1)
+// 		{
+// 			fprintf(stderr, "ERROR! Encountered %d twice!\n", lll->val);
+// 			exit(1);
+// 		}
+// 		lll = lll->next;
+// 	}
+//
+// 	return;
+// }
 
 int main(void)
@@ -54,7 +58,7 @@
 	LLL mylll;
 
-	mylll = buildLLL(MAX);
-
-	testLLL(mylll);
+	// mylll = buildLLL(MAX);
+	//
+	// testLLL(mylll);
 
 	return 0;
Index: src/examples/gc_no_raii/test/gctest.c
===================================================================
--- src/examples/gc_no_raii/test/gctest.c	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/examples/gc_no_raii/test/gctest.c	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -7,3 +7,5 @@
 int main() {
 	sout | "Bonjour au monde!\n";
+
+	gcpointer(int) anInt = gcmalloc();
 }
Index: src/tests/switch.c
===================================================================
--- src/tests/switch.c	(revision f9cebb5b27ac03463e4eca5c0e87d48d548e9502)
+++ src/tests/switch.c	(revision 4819cac3f92df14bab85977a7bb5ac22cd64c8a0)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jul 12 06:50:22 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 30 14:41:32 2016
-// Update Count     : 30
+// Last Modified On : Thu Aug  4 11:44:29 2016
+// Update Count     : 31
 // 
 
@@ -39,4 +39,12 @@
 	  case 4:
 		j = 0;
+	}
+
+	switch ( i ) {
+	  case 1, 2, 3:
+		switch ( i ) {
+		  case 2, 3, 4:
+			7;
+		}
 	}
 
