Index: src/Common/Debug.h
===================================================================
--- src/Common/Debug.h	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/Common/Debug.h	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -24,15 +24,34 @@
 #include "SynTree/Declaration.h"
 
-/// debug codegen a translation unit
-static inline void debugCodeGen( const std::list< Declaration * > & translationUnit, const std::string & label ) {
-	std::list< Declaration * > decls;
+#define DEBUG
 
-	filter( translationUnit.begin(), translationUnit.end(), back_inserter( decls ), []( Declaration * decl ) {
-		return ! LinkageSpec::isBuiltin( decl->get_linkage() );
-	});
+namespace Debug {
+	/// debug codegen a translation unit
+	static inline void codeGen( __attribute__((unused)) const std::list< Declaration * > & translationUnit, __attribute__((unused)) const std::string & label ) {
+	#ifdef DEBUG
+		std::list< Declaration * > decls;
 
-	std::cerr << "======" << label << "======" << std::endl;
-	CodeGen::generate( decls, std::cerr, false, true );
-} // dump
+		filter( translationUnit.begin(), translationUnit.end(), back_inserter( decls ), []( Declaration * decl ) {
+			return ! LinkageSpec::isBuiltin( decl->get_linkage() );
+		});
+
+		std::cerr << "======" << label << "======" << std::endl;
+		CodeGen::generate( decls, std::cerr, false, true );
+	#endif
+	} // dump
+
+	static inline void treeDump( __attribute__((unused)) const std::list< Declaration * > & translationUnit, __attribute__((unused)) const std::string & label ) {
+	#ifdef DEBUG
+		std::list< Declaration * > decls;
+
+		filter( translationUnit.begin(), translationUnit.end(), back_inserter( decls ), []( Declaration * decl ) {
+			return ! LinkageSpec::isBuiltin( decl->get_linkage() );
+		});
+
+		std::cerr << "======" << label << "======" << std::endl;
+		printAll( decls, std::cerr );
+	#endif
+	} // dump
+}
 
 // Local Variables: //
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -581,9 +581,9 @@
 		std::vector<unsigned> tupleEls;  /// Number of elements in current tuple element(s)
 
-		ArgPack(const TypeEnvironment& env, const AssertionSet& need, const AssertionSet& have, 
+		ArgPack(const TypeEnvironment& env, const AssertionSet& need, const AssertionSet& have,
 				const OpenVarSet& openVars)
 			: actuals(), env(env), need(need), have(have), openVars(openVars), nextArg(0),
 			  expls(), nextExpl(0), tupleEls() {}
-		
+
 		/// Starts a new tuple expression
 		void beginTuple() {
@@ -620,7 +620,7 @@
 
 	/// Instantiates an argument to match a formal, returns false if no results left
-	bool instantiateArgument( Type* formalType, Initializer* initializer, 
-			const std::vector< AlternativeFinder >& args, 
-			std::vector<ArgPack>& results, std::vector<ArgPack>& nextResults, 
+	bool instantiateArgument( Type* formalType, Initializer* initializer,
+			const std::vector< AlternativeFinder >& args,
+			std::vector<ArgPack>& results, std::vector<ArgPack>& nextResults,
 			const SymTab::Indexer& indexer ) {
 		if ( TupleType* tupleType = dynamic_cast<TupleType*>( formalType ) ) {
@@ -629,5 +629,5 @@
 			for ( Type* type : *tupleType ) {
 				// xxx - dropping initializer changes behaviour from previous, but seems correct
-				if ( ! instantiateArgument( type, nullptr, args, results, nextResults, indexer ) ) 
+				if ( ! instantiateArgument( type, nullptr, args, results, nextResults, indexer ) )
 					return false;
 			}
@@ -658,8 +658,8 @@
 						Type* argType = result.actuals.back().expr->get_result();
 						if ( result.tupleEls.back() == 1 && Tuples::isTtype( argType ) ) {
-							// the case where a ttype value is passed directly is special, e.g. for 
+							// the case where a ttype value is passed directly is special, e.g. for
 							// argument forwarding purposes
 							// xxx - what if passing multiple arguments, last of which is ttype?
-							// xxx - what would happen if unify was changed so that unifying tuple 
+							// xxx - what would happen if unify was changed so that unifying tuple
 							// types flattened both before unifying lists? then pass in TupleType
 							// (ttype) below.
@@ -671,5 +671,5 @@
 						}
 						// check unification for ttype before adding to final
-						if ( unify( ttype, argType, result.env, result.need, result.have, 
+						if ( unify( ttype, argType, result.env, result.need, result.have,
 								result.openVars, indexer ) ) {
 							finalResults.push_back( std::move(result) );
@@ -684,9 +684,9 @@
 						aResult.env.addActual( actual.env, aResult.openVars );
 						Cost cost = actual.cost;
-		
+
 						// explode argument
 						std::vector<Alternative> exploded;
 						Tuples::explode( actual, indexer, back_inserter( exploded ) );
-						
+
 						// add exploded argument to tuple
 						for ( Alternative& aActual : exploded ) {
@@ -706,5 +706,5 @@
 			return ! results.empty();
 		}
-		
+
 		// iterate each current subresult
 		for ( unsigned iResult = 0; iResult < results.size(); ++iResult ) {
@@ -724,6 +724,6 @@
 					std::cerr << std::endl;
 				)
-				
-				if ( unify( formalType, actualType, result.env, result.need, result.have, 
+
+				if ( unify( formalType, actualType, result.env, result.need, result.have,
 						result.openVars, indexer ) ) {
 					++result.nextExpl;
@@ -736,5 +736,5 @@
 				if ( ConstantExpr* cnstExpr = getDefaultValue( initializer ) ) {
 					if ( Constant* cnst = dynamic_cast<Constant*>( cnstExpr->get_constant() ) ) {
-						if ( unify( formalType, cnst->get_type(), result.env, result.need, 
+						if ( unify( formalType, cnst->get_type(), result.env, result.need,
 								result.have, result.openVars, indexer ) ) {
 							nextResults.push_back( std::move(result.withArg( cnstExpr )) );
@@ -791,11 +791,11 @@
 		results.swap( nextResults );
 		nextResults.clear();
-		
+
 		return ! results.empty();
-	}	
+	}
 
 	template<typename OutputIterator>
-	void AlternativeFinder::makeFunctionAlternatives( const Alternative &func, 
-			FunctionType *funcType, const std::vector< AlternativeFinder > &args, 
+	void AlternativeFinder::makeFunctionAlternatives( const Alternative &func,
+			FunctionType *funcType, const std::vector< AlternativeFinder > &args,
 			OutputIterator out ) {
 		OpenVarSet funcOpenVars;
@@ -803,12 +803,12 @@
 		TypeEnvironment funcEnv( func.env );
 		makeUnifiableVars( funcType, funcOpenVars, funcNeed );
-		// add all type variables as open variables now so that those not used in the parameter 
+		// add all type variables as open variables now so that those not used in the parameter
 		// list are still considered open.
 		funcEnv.add( funcType->get_forall() );
-		
+
 		if ( targetType && ! targetType->isVoid() && ! funcType->get_returnVals().empty() ) {
 			// attempt to narrow based on expected target type
 			Type * returnType = funcType->get_returnVals().front()->get_type();
-			if ( ! unify( returnType, targetType, funcEnv, funcNeed, funcHave, funcOpenVars, 
+			if ( ! unify( returnType, targetType, funcEnv, funcNeed, funcHave, funcOpenVars,
 					indexer ) ) {
 				// unification failed, don't pursue this function alternative
@@ -822,5 +822,5 @@
 		for ( DeclarationWithType* formal : funcType->get_parameters() ) {
 			ObjectDecl* obj = strict_dynamic_cast< ObjectDecl* >( formal );
-			if ( ! instantiateArgument( 
+			if ( ! instantiateArgument(
 					obj->get_type(), obj->get_init(), args, results, nextResults, indexer ) )
 				return;
@@ -904,5 +904,5 @@
 
 		std::vector< AlternativeFinder > argAlternatives;
-		findSubExprs( untypedExpr->begin_args(), untypedExpr->end_args(), 
+		findSubExprs( untypedExpr->begin_args(), untypedExpr->end_args(),
 			back_inserter( argAlternatives ) );
 
@@ -934,5 +934,5 @@
 						Alternative newFunc( *func );
 						referenceToRvalueConversion( newFunc.expr );
-						makeFunctionAlternatives( newFunc, function, argAlternatives, 
+						makeFunctionAlternatives( newFunc, function, argAlternatives,
 							std::back_inserter( candidates ) );
 					}
@@ -943,9 +943,9 @@
 							Alternative newFunc( *func );
 							referenceToRvalueConversion( newFunc.expr );
-							makeFunctionAlternatives( newFunc, function, argAlternatives, 
+							makeFunctionAlternatives( newFunc, function, argAlternatives,
 								std::back_inserter( candidates ) );
 						} // if
 					} // if
-				}			
+				}
 			} catch ( SemanticError &e ) {
 				errors.append( e );
@@ -962,11 +962,11 @@
 				try {
 					// check if type is a pointer to function
-					if ( PointerType* pointer = dynamic_cast<PointerType*>( 
+					if ( PointerType* pointer = dynamic_cast<PointerType*>(
 							funcOp->expr->get_result()->stripReferences() ) ) {
-						if ( FunctionType* function = 
+						if ( FunctionType* function =
 								dynamic_cast<FunctionType*>( pointer->get_base() ) ) {
 							Alternative newFunc( *funcOp );
 							referenceToRvalueConversion( newFunc.expr );
-							makeFunctionAlternatives( newFunc, function, argAlternatives, 
+							makeFunctionAlternatives( newFunc, function, argAlternatives,
 								std::back_inserter( candidates ) );
 						}
@@ -1007,12 +1007,15 @@
 		candidates.splice( candidates.end(), alternatives );
 
-		findMinCost( candidates.begin(), candidates.end(), std::back_inserter( alternatives ) );
+		// use a new list so that alternatives are not examined by addAnonConversions twice.
+		AltList winners;
+		findMinCost( candidates.begin(), candidates.end(), std::back_inserter( winners ) );
 
 		// function may return struct or union value, in which case we need to add alternatives for implicit
 		// conversions to each of the anonymous members, must happen after findMinCost since anon conversions
 		// are never the cheapest expression
-		for ( const Alternative & alt : alternatives ) {
+		for ( const Alternative & alt : winners ) {
 			addAnonConversions( alt );
 		}
+		alternatives.splice( alternatives.begin(), winners );
 
 		if ( alternatives.empty() && targetType && ! targetType->isVoid() ) {
Index: src/ResolvExpr/RenameVars.cc
===================================================================
--- src/ResolvExpr/RenameVars.cc	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/ResolvExpr/RenameVars.cc	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -29,5 +29,5 @@
 	RenameVars global_renamer;
 
-	RenameVars::RenameVars() : level( 0 ) {
+	RenameVars::RenameVars() : level( 0 ), resetCount( 0 ) {
 		mapStack.push_front( std::map< std::string, std::string >() );
 	}
@@ -35,4 +35,5 @@
 	void RenameVars::reset() {
 		level = 0;
+		resetCount++;
 	}
 
@@ -130,5 +131,5 @@
 			for ( Type::ForallList::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {
 				std::ostringstream output;
-				output << "_" << level << "_" << (*i)->get_name();
+				output << "_" << resetCount << "_" << level << "_" << (*i)->get_name();
 				std::string newname( output.str() );
 				mapStack.front()[ (*i)->get_name() ] = newname;
Index: src/ResolvExpr/RenameVars.h
===================================================================
--- src/ResolvExpr/RenameVars.h	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/ResolvExpr/RenameVars.h	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -48,5 +48,5 @@
 		void typeBefore( Type *type );
 		void typeAfter( Type *type );
-		int level;
+		int level, resetCount;
 		std::list< std::map< std::string, std::string > > mapStack;
 	};
Index: src/benchmark/Makefile.am
===================================================================
--- src/benchmark/Makefile.am	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/benchmark/Makefile.am	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -23,4 +23,6 @@
 STATS    = ${TOOLSDIR}stat.py
 repeats  = 30
+TIME_FORMAT = "%E"
+PRINT_FORMAT = %20s: #Comments needed for spacing
 
 .NOTPARALLEL:
@@ -29,134 +31,4 @@
 
 all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
-
-bench$(EXEEXT) :
-	@for ccflags in "-debug" "-nodebug"; do \
-		echo ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -lrt bench.c;\
-		${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt bench.c;\
-		./a.out ; \
-	done ; \
-	rm -f ./a.out ;
-
-csv-data$(EXEEXT):
-	@${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=50000000 csv-data.c
-	@./a.out
-	@rm -f ./a.out
-
-## =========================================================================================================
-ctxswitch$(EXEEXT): \
-	ctxswitch-pthread.run		\
-	ctxswitch-cfa_coroutine.run	\
-	ctxswitch-cfa_thread.run	\
-	ctxswitch-upp_coroutine.run	\
-	ctxswitch-upp_thread.run
-
-ctxswitch-cfa_coroutine$(EXEEXT):
-	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-cfa_thread$(EXEEXT):
-	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-upp_coroutine$(EXEEXT):
-	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-upp_thread$(EXEEXT):
-	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-pthread$(EXEEXT):
-	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-## =========================================================================================================
-mutex$(EXEEXT) :\
-	mutex-function.run	\
-	mutex-pthread_lock.run	\
-	mutex-upp.run		\
-	mutex-cfa1.run		\
-	mutex-cfa2.run		\
-	mutex-cfa4.run
-
-mutex-function$(EXEEXT):
-	@BACKEND_CC@ mutex/function.c    -DBENCH_N=500000000   -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-pthread_lock$(EXEEXT):
-	@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-upp$(EXEEXT):
-	u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa1$(EXEEXT):
-	${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa2$(EXEEXT):
-	${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa4$(EXEEXT):
-	${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-## =========================================================================================================
-signal$(EXEEXT) :\
-	signal-upp.run		\
-	signal-cfa1.run		\
-	signal-cfa2.run		\
-	signal-cfa4.run
-
-signal-upp$(EXEEXT):
-	u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa1$(EXEEXT):
-	${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa2$(EXEEXT):
-	${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa4$(EXEEXT):
-	${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-## =========================================================================================================
-waitfor$(EXEEXT) :\
-	waitfor-upp.run		\
-	waitfor-cfa1.run		\
-	waitfor-cfa2.run		\
-	waitfor-cfa4.run
-
-waitfor-upp$(EXEEXT):
-	u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa1$(EXEEXT):
-	${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa2$(EXEEXT):
-	${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa4$(EXEEXT):
-	${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-## =========================================================================================================
-creation$(EXEEXT) :\
-	creation-pthread.run			\
-	creation-cfa_coroutine.run		\
-	creation-cfa_coroutine_eager.run	\
-	creation-cfa_thread.run			\
-	creation-upp_coroutine.run		\
-	creation-upp_thread.run
-
-creation-cfa_coroutine$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-cfa_coroutine_eager$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
-
-creation-cfa_thread$(EXEEXT):
-	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-upp_coroutine$(EXEEXT):
-	u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-upp_thread$(EXEEXT):
-	u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-pthread$(EXEEXT):
-	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-## =========================================================================================================
 
 %.run : %$(EXEEXT) ${REPEAT}
@@ -169,4 +41,204 @@
 	@rm -f a.out .result.log
 
+%.runquiet :
+	@+make $(basename $@)
+	@./a.out
+	@rm -f a.out
+
+%.make :
+	@printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
+	@+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
+
 ${REPEAT} :
 	@+make -C ${TOOLSDIR} repeat
+
+## =========================================================================================================
+
+jenkins$(EXEEXT):
+	@echo "{"
+	@echo -e '\t"githash": "'${githash}'",'
+	@echo -e '\t"arch": "'   ${arch}   '",'
+	@echo -e '\t"compile": {'
+	@+make compile TIME_FORMAT='%e,' PRINT_FORMAT='\t\t\"%s\" :'
+	@echo -e '\t\t"dummy" : {}'
+	@echo -e '\t},'
+	@echo -e '\t"ctxswitch": {'
+	@echo -en '\t\t"coroutine":'
+	@+make ctxswitch-cfa_coroutine.runquiet
+	@echo -en '\t\t,"thread":'
+	@+make ctxswitch-cfa_thread.runquiet
+	@echo -e '\t},'
+	@echo -e '\t"mutex": ['
+	@echo -en '\t\t'
+	@+make mutex-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make mutex-cfa2.runquiet
+	@echo -e '\t],'
+	@echo -e '\t"scheduling": ['
+	@echo -en '\t\t'
+	@+make signal-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make signal-cfa2.runquiet
+	@echo -en '\t\t,'
+	@+make waitfor-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make waitfor-cfa2.runquiet
+	@echo -e '\n\t],'
+	@echo -e '\t"epoch": ' $(shell date +%s)
+	@echo "}"
+
+## =========================================================================================================
+ctxswitch$(EXEEXT): \
+	ctxswitch-pthread.run		\
+	ctxswitch-cfa_coroutine.run	\
+	ctxswitch-cfa_thread.run	\
+	ctxswitch-upp_coroutine.run	\
+	ctxswitch-upp_thread.run
+
+ctxswitch-cfa_coroutine$(EXEEXT):
+	@${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-cfa_thread$(EXEEXT):
+	@${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-upp_coroutine$(EXEEXT):
+	@u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-upp_thread$(EXEEXT):
+	@u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-pthread$(EXEEXT):
+	@@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+## =========================================================================================================
+mutex$(EXEEXT) :\
+	mutex-function.run	\
+	mutex-pthread_lock.run	\
+	mutex-upp.run		\
+	mutex-cfa1.run		\
+	mutex-cfa2.run		\
+	mutex-cfa4.run
+
+mutex-function$(EXEEXT):
+	@@BACKEND_CC@ mutex/function.c    -DBENCH_N=500000000   -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-pthread_lock$(EXEEXT):
+	@@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-upp$(EXEEXT):
+	@u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa1$(EXEEXT):
+	@${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa2$(EXEEXT):
+	@${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa4$(EXEEXT):
+	@${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+## =========================================================================================================
+signal$(EXEEXT) :\
+	signal-upp.run		\
+	signal-cfa1.run		\
+	signal-cfa2.run		\
+	signal-cfa4.run
+
+signal-upp$(EXEEXT):
+	@u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa1$(EXEEXT):
+	@${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa2$(EXEEXT):
+	@${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa4$(EXEEXT):
+	@${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+## =========================================================================================================
+waitfor$(EXEEXT) :\
+	waitfor-upp.run		\
+	waitfor-cfa1.run		\
+	waitfor-cfa2.run		\
+	waitfor-cfa4.run
+
+waitfor-upp$(EXEEXT):
+	@u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa1$(EXEEXT):
+	@${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa2$(EXEEXT):
+	@${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa4$(EXEEXT):
+	@${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+## =========================================================================================================
+creation$(EXEEXT) :\
+	creation-pthread.run			\
+	creation-cfa_coroutine.run		\
+	creation-cfa_coroutine_eager.run	\
+	creation-cfa_thread.run			\
+	creation-upp_coroutine.run		\
+	creation-upp_thread.run
+
+creation-cfa_coroutine$(EXEEXT):
+	@${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-cfa_coroutine_eager$(EXEEXT):
+	@${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
+
+creation-cfa_thread$(EXEEXT):
+	@${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-upp_coroutine$(EXEEXT):
+	@u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-upp_thread$(EXEEXT):
+	@u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-pthread$(EXEEXT):
+	@@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+## =========================================================================================================
+
+compile$(EXEEXT) :\
+	compile-array.make	\
+	compile-attributes.make	\
+	compile-empty.make  	\
+	compile-expression.make	\
+	compile-io.make		\
+	compile-monitor.make	\
+	compile-operators.make	\
+	compile-typeof.make
+
+
+compile-array$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/array.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-attributes$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/attributes.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-empty$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w compile/empty.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-expression$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/expression.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-io$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/io.c			@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-monitor$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/monitor.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-operators$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/operators.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-thread$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/thread.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-typeof$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/typeof.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
Index: src/benchmark/Makefile.in
===================================================================
--- src/benchmark/Makefile.in	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/benchmark/Makefile.in	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -124,5 +124,5 @@
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in
+am__DIST_COMMON = $(srcdir)/Makefile.in compile
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -253,4 +253,6 @@
 STATS = ${TOOLSDIR}stat.py
 repeats = 30
+TIME_FORMAT = "%E"
+PRINT_FORMAT = %20s: #Comments needed for spacing
 all: all-am
 
@@ -446,127 +448,4 @@
 all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
 
-bench$(EXEEXT) :
-	@for ccflags in "-debug" "-nodebug"; do \
-		echo ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -lrt bench.c;\
-		${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt bench.c;\
-		./a.out ; \
-	done ; \
-	rm -f ./a.out ;
-
-csv-data$(EXEEXT):
-	@${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=50000000 csv-data.c
-	@./a.out
-	@rm -f ./a.out
-
-ctxswitch$(EXEEXT): \
-	ctxswitch-pthread.run		\
-	ctxswitch-cfa_coroutine.run	\
-	ctxswitch-cfa_thread.run	\
-	ctxswitch-upp_coroutine.run	\
-	ctxswitch-upp_thread.run
-
-ctxswitch-cfa_coroutine$(EXEEXT):
-	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-cfa_thread$(EXEEXT):
-	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-upp_coroutine$(EXEEXT):
-	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-upp_thread$(EXEEXT):
-	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-ctxswitch-pthread$(EXEEXT):
-	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex$(EXEEXT) :\
-	mutex-function.run	\
-	mutex-pthread_lock.run	\
-	mutex-upp.run		\
-	mutex-cfa1.run		\
-	mutex-cfa2.run		\
-	mutex-cfa4.run
-
-mutex-function$(EXEEXT):
-	@BACKEND_CC@ mutex/function.c    -DBENCH_N=500000000   -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-pthread_lock$(EXEEXT):
-	@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-upp$(EXEEXT):
-	u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa1$(EXEEXT):
-	${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa2$(EXEEXT):
-	${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-mutex-cfa4$(EXEEXT):
-	${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal$(EXEEXT) :\
-	signal-upp.run		\
-	signal-cfa1.run		\
-	signal-cfa2.run		\
-	signal-cfa4.run
-
-signal-upp$(EXEEXT):
-	u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa1$(EXEEXT):
-	${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa2$(EXEEXT):
-	${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-signal-cfa4$(EXEEXT):
-	${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor$(EXEEXT) :\
-	waitfor-upp.run		\
-	waitfor-cfa1.run		\
-	waitfor-cfa2.run		\
-	waitfor-cfa4.run
-
-waitfor-upp$(EXEEXT):
-	u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa1$(EXEEXT):
-	${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa2$(EXEEXT):
-	${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-waitfor-cfa4$(EXEEXT):
-	${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation$(EXEEXT) :\
-	creation-pthread.run			\
-	creation-cfa_coroutine.run		\
-	creation-cfa_coroutine_eager.run	\
-	creation-cfa_thread.run			\
-	creation-upp_coroutine.run		\
-	creation-upp_thread.run
-
-creation-cfa_coroutine$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-cfa_coroutine_eager$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
-
-creation-cfa_thread$(EXEEXT):
-	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-upp_coroutine$(EXEEXT):
-	u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-upp_thread$(EXEEXT):
-	u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
-creation-pthread$(EXEEXT):
-	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
-
 %.run : %$(EXEEXT) ${REPEAT}
 	@rm -f .result.log
@@ -578,6 +457,195 @@
 	@rm -f a.out .result.log
 
+%.runquiet :
+	@+make $(basename $@)
+	@./a.out
+	@rm -f a.out
+
+%.make :
+	@printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
+	@+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
+
 ${REPEAT} :
 	@+make -C ${TOOLSDIR} repeat
+
+jenkins$(EXEEXT):
+	@echo "{"
+	@echo -e '\t"githash": "'${githash}'",'
+	@echo -e '\t"arch": "'   ${arch}   '",'
+	@echo -e '\t"compile": {'
+	@+make compile TIME_FORMAT='%e,' PRINT_FORMAT='\t\t\"%s\" :'
+	@echo -e '\t\t"dummy" : {}'
+	@echo -e '\t},'
+	@echo -e '\t"ctxswitch": {'
+	@echo -en '\t\t"coroutine":'
+	@+make ctxswitch-cfa_coroutine.runquiet
+	@echo -en '\t\t,"thread":'
+	@+make ctxswitch-cfa_thread.runquiet
+	@echo -e '\t},'
+	@echo -e '\t"mutex": ['
+	@echo -en '\t\t'
+	@+make mutex-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make mutex-cfa2.runquiet
+	@echo -e '\t],'
+	@echo -e '\t"scheduling": ['
+	@echo -en '\t\t'
+	@+make signal-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make signal-cfa2.runquiet
+	@echo -en '\t\t,'
+	@+make waitfor-cfa1.runquiet
+	@echo -en '\t\t,'
+	@+make waitfor-cfa2.runquiet
+	@echo -e '\n\t],'
+	@echo -e '\t"epoch": ' $(shell date +%s)
+	@echo "}"
+
+ctxswitch$(EXEEXT): \
+	ctxswitch-pthread.run		\
+	ctxswitch-cfa_coroutine.run	\
+	ctxswitch-cfa_thread.run	\
+	ctxswitch-upp_coroutine.run	\
+	ctxswitch-upp_thread.run
+
+ctxswitch-cfa_coroutine$(EXEEXT):
+	@${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-cfa_thread$(EXEEXT):
+	@${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-upp_coroutine$(EXEEXT):
+	@u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-upp_thread$(EXEEXT):
+	@u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+ctxswitch-pthread$(EXEEXT):
+	@@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex$(EXEEXT) :\
+	mutex-function.run	\
+	mutex-pthread_lock.run	\
+	mutex-upp.run		\
+	mutex-cfa1.run		\
+	mutex-cfa2.run		\
+	mutex-cfa4.run
+
+mutex-function$(EXEEXT):
+	@@BACKEND_CC@ mutex/function.c    -DBENCH_N=500000000   -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-pthread_lock$(EXEEXT):
+	@@BACKEND_CC@ mutex/pthreads.c    -DBENCH_N=50000000    -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-upp$(EXEEXT):
+	@u++          mutex/upp.cc        -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa1$(EXEEXT):
+	@${CC}        mutex/cfa1.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa2$(EXEEXT):
+	@${CC}        mutex/cfa2.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+mutex-cfa4$(EXEEXT):
+	@${CC}        mutex/cfa4.c        -DBENCH_N=5000000     -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal$(EXEEXT) :\
+	signal-upp.run		\
+	signal-cfa1.run		\
+	signal-cfa2.run		\
+	signal-cfa4.run
+
+signal-upp$(EXEEXT):
+	@u++          schedint/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa1$(EXEEXT):
+	@${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa2$(EXEEXT):
+	@${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+signal-cfa4$(EXEEXT):
+	@${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor$(EXEEXT) :\
+	waitfor-upp.run		\
+	waitfor-cfa1.run		\
+	waitfor-cfa2.run		\
+	waitfor-cfa4.run
+
+waitfor-upp$(EXEEXT):
+	@u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa1$(EXEEXT):
+	@${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa2$(EXEEXT):
+	@${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+waitfor-cfa4$(EXEEXT):
+	@${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation$(EXEEXT) :\
+	creation-pthread.run			\
+	creation-cfa_coroutine.run		\
+	creation-cfa_coroutine_eager.run	\
+	creation-cfa_thread.run			\
+	creation-upp_coroutine.run		\
+	creation-upp_thread.run
+
+creation-cfa_coroutine$(EXEEXT):
+	@${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-cfa_coroutine_eager$(EXEEXT):
+	@${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} -DEAGER
+
+creation-cfa_thread$(EXEEXT):
+	@${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-upp_coroutine$(EXEEXT):
+	@u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-upp_thread$(EXEEXT):
+	@u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+creation-pthread$(EXEEXT):
+	@@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile$(EXEEXT) :\
+	compile-array.make	\
+	compile-attributes.make	\
+	compile-empty.make  	\
+	compile-expression.make	\
+	compile-io.make		\
+	compile-monitor.make	\
+	compile-operators.make	\
+	compile-typeof.make
+
+compile-array$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/array.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-attributes$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/attributes.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-empty$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w compile/empty.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-expression$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/expression.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-io$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/io.c			@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-monitor$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/monitor.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-operators$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/operators.c	@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-thread$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/thread.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
+
+compile-typeof$(EXEEXT):
+	@${CC} -nodebug -quiet -fsyntax-only -w ../tests/typeof.c		@CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: src/benchmark/bench.c
===================================================================
--- src/benchmark/bench.c	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ 	(revision )
@@ -1,220 +1,0 @@
-
-#include <fstream>
-#include <stdlib>
-#include <thread>
-
-#include "bench.h"
-
-//=======================================
-// time struct
-//=======================================
-
-// prevent dead-code removal
-struct StructDummy {
-	volatile int i;
-};
-
-void ?{}(StructDummy * this) __attribute__(( noinline )) {
-	this->i = 2;
-}
-
-int get_i(StructDummy * this) {
-	return this->i;
-}
-
-forall( dtype T | { int get_i(T*); } )
-int bidirectional( StructDummy * this ) __attribute__(( noinline )) {
-	return get_i( this );
-}
-
-void BlockStructCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	StructDummy dummy;
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-void DynamicStructCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	StructDummy *dummy = new();
-	delete(dummy);
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-void StructBidirectional( int N ) {
-    long long int StartTime, EndTime;
-    StructDummy dummy;
-    volatile int rv __attribute__(( unused ));
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	rv = bidirectional( &dummy ); 
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-//=======================================
-// time coroutine
-//=======================================
-
-coroutine CoroutineDummy {};
-void main(CoroutineDummy * this) {}
-
-void ?{}(CoroutineDummy * this) {
-	prime(this);
-}
-
-void BlockCoroutineCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	CoroutineDummy dummy;
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-void DynamicCoroutineCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	CoroutineDummy * dummy = new();
-	delete(dummy);
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-coroutine CoroutineResume {
-    int N;
-};
-
-void ?{}(CoroutineResume* this, int N) {
-      this->N = N;
-	prime(this);
-}
-
-void main(CoroutineResume* this) {
-	for ( int i = 1; i <= this->N; i += 1 ) {
-		suspend();
-	}
-}
-
-void resumer(CoroutineResume* this) {
-	long long int StartTime, EndTime;
-
-	StartTime = Time();
-	for ( int i = 1; i <= this->N; i += 1 ) {
-		resume(this);
-	}
-	EndTime = Time();
-	sout | "\t " | ( EndTime - StartTime ) / this->N;
-}
-
-//=======================================
-// time task
-//=======================================
-
-thread ThreadDummy {};
-void main(ThreadDummy * this) {}
-
-void BlockTaskCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	scoped(ThreadDummy) dummy;
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-void DynamicTaskCreateDelete( int N ) {
-    long long int StartTime, EndTime;
-
-    StartTime = Time();
-    for ( int i = 0; i < N; i += 1 ) {
-	scoped(ThreadDummy) * dummy = new();
-	delete(dummy);
-    }
-    EndTime = Time();
-    sout | "\t " | ( EndTime - StartTime ) / N;
-}
-
-thread ContextSwitch {
-    int N;
-    long long result;
-};
-
-void main(ContextSwitch * this) {    
-	long long int StartTime, EndTime;
-
-	StartTime = Time();
-	for ( int i = 1; i <= this->N; i += 1 ) {
-	    yield();
-	} // for
-	EndTime = Time();
-	this->result = ( EndTime - StartTime ) / this->N;
-}
-
-void ?{}(ContextSwitch * this, int N) {
-	this->N = N;
-}
-
-void ^?{}(ContextSwitch * this) {
-	sout | "\t " | this->result;
-}
-
-//=======================================
-// benchmark driver
-//=======================================
-
-
-int main() {
-	const int NoOfTimes =
-#if defined( __U_DEBUG__ )				// takes longer so run fewer iterations
-	100000;
-#else
-	1000000;
-#endif // __U_DEBUG__
-
-	sout | "\t\tcreate\tcreate\tcall/" | endl;
-	sout | "(nsecs)";
-	sout | "\t\tdelete/\tdelete/\tctx" | endl;
-	sout | "\t\tblock\tdynamic\tcycle" | endl;
-
-	sout | "object\t";
-	BlockStructCreateDelete( NoOfTimes );
-	DynamicStructCreateDelete( NoOfTimes );
-	StructBidirectional( NoOfTimes );
-	sout | endl;
-
-	sout | "coroutine";
-	BlockCoroutineCreateDelete( NoOfTimes );
-	DynamicCoroutineCreateDelete( NoOfTimes );
-	{
-		CoroutineResume resumer = { NoOfTimes };
-		resumer(&resumer);
-	}
-	sout | endl;
-
-	sout | "task\t";
-	BlockTaskCreateDelete( NoOfTimes );
-	DynamicTaskCreateDelete( NoOfTimes );
-	{
-		ContextSwitch dummy = { (int)NoOfTimes };		// context switch
-	}
-	sout | "\t" | endl;
-}
Index: src/benchmark/compile/empty.c
===================================================================
--- src/benchmark/compile/empty.c	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
+++ src/benchmark/compile/empty.c	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -0,0 +1,3 @@
+int main() {
+	return 0;
+}
Index: src/benchmark/csv-data.c
===================================================================
--- src/benchmark/csv-data.c	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ 	(revision )
@@ -1,201 +1,0 @@
-#include <fstream>
-#include <monitor>
-#include <stdlib>
-#include <thread>
-
-#include "bench.h"
-
-coroutine GreatSuspender {};
-
-void ?{}( GreatSuspender & this ) {
-	prime(this);
-}
-
-void main( GreatSuspender & this )
-{
-	while( true ) {
-		suspend();
-	}
-}
-
-void resumer( GreatSuspender * this, const unsigned int NoOfTimes ) {
-	for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
-		resume( *this );
-	}
-}
-
-//-----------------------------------------------------------------------------
-// coroutine context switch
-long long int measure_coroutine() {
-	const unsigned int NoOfTimes = N;
-	long long int StartTime, EndTime;
-
-	GreatSuspender s;
-
-	StartTime = Time();
-	resumer( &s, NoOfTimes );
-	EndTime = Time();
-
-	return ( EndTime - StartTime ) / NoOfTimes;
-}
-
-//-----------------------------------------------------------------------------
-// thread context switch
-long long int measure_thread() {
-	const unsigned int NoOfTimes = N;
-	long long int StartTime, EndTime;
-
-	StartTime = Time();
-	for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
-		yield();
-	}
-	EndTime = Time();
-
-	return ( EndTime - StartTime ) / NoOfTimes;
-}
-
-//-----------------------------------------------------------------------------
-// single monitor entry
-monitor mon_t {};
-void dummy( mon_t & mutex m ) {}
-
-long long int measure_1_monitor_entry() {
-	const unsigned int NoOfTimes = N;
-	long long int StartTime, EndTime;
-	mon_t mon;
-
-	StartTime = Time();
-	for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
-		dummy( mon );
-	}
-	EndTime = Time();
-
-	return ( EndTime - StartTime ) / NoOfTimes;
-}
-
-//-----------------------------------------------------------------------------
-// multi monitor entry
-void dummy( mon_t & mutex m1,  mon_t & mutex m2 ) {}
-
-long long int measure_2_monitor_entry() {
-	const unsigned int NoOfTimes = N;
-	long long int StartTime, EndTime;
-	mon_t mon1, mon2;
-
-	StartTime = Time();
-	for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) {
-		dummy( mon1, mon2 );
-	}
-	EndTime = Time();
-
-	return ( EndTime - StartTime ) / NoOfTimes;
-}
-
-//-----------------------------------------------------------------------------
-// single internal sched entry
-mon_t mon1;
-
-condition cond1a;
-condition cond1b;
-
-thread thrd1a { long long int * out; };
-thread thrd1b {};
-
-void ?{}( thrd1a & this, long long int * out ) {
-	this.out = out;
-}
-
-void side1A( mon_t & mutex a, long long int * out ) {
-	long long int StartTime, EndTime;
-
-	StartTime = Time();
-	for( int i = 0;; i++ ) {
-		signal(cond1a);
-		if( i > N ) break;
-		wait(cond1b);
-	}
-	EndTime = Time();
-
-	*out = ( EndTime - StartTime ) / N;
-}
-
-void side1B( mon_t & mutex a ) {
-	for( int i = 0;; i++ ) {
-		signal(cond1b);
-		if( i > N ) break;
-		wait(cond1a);
-	}
-}
-
-void main( thrd1a & this ) { side1A( mon1, this.out ); }
-void main( thrd1b & this ) { side1B( mon1 ); }
-
-long long int measure_1_sched_int() {
-	long long int t;
-	{
-		thrd1a a = { &t };
-		thrd1b b;
-	}
-	return t;
-}
-
-//-----------------------------------------------------------------------------
-// multi internal sched entry
-mon_t mon2;
-
-condition cond2a;
-condition cond2b;
-
-thread thrd2a { long long int * out; };
-thread thrd2b {};
-
-void ?{}( thrd2a & this, long long int * out ) {
-	this.out = out;
-}
-
-void side2A( mon_t & mutex a, mon_t & mutex b, long long int * out ) {
-	long long int StartTime, EndTime;
-
-	StartTime = Time();
-	for( int i = 0;; i++ ) {
-		signal(cond2a);
-		if( i > N ) break;
-		wait(cond2b);
-	}
-	EndTime = Time();
-
-	*out = ( EndTime - StartTime ) / N;
-}
-
-void side2B( mon_t & mutex a, mon_t & mutex b ) {
-	for( int i = 0;; i++ ) {
-		signal(cond2b);
-		if( i > N ) break;
-		wait(cond2a);
-	}
-}
-
-void main( thrd2a & this ) { side2A( mon1, mon2, this.out ); }
-void main( thrd2b & this ) { side2B( mon1, mon2 ); }
-
-long long int measure_2_sched_int() {
-	long long int t;
-	{
-		thrd2a a = { &t };
-		thrd2b b;
-	}
-	return t;
-}
-
-//-----------------------------------------------------------------------------
-// main loop
-int main()
-{
-	sout | time(NULL) | ',';
-	sout | measure_coroutine() | ',';
-	sout | measure_thread() | ',';
-	sout | measure_1_monitor_entry() | ',';
-	sout | measure_2_monitor_entry() | ',';
-	sout | measure_1_sched_int() | ',';
-	sout | measure_2_sched_int() | endl;
-}
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/main.cc	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -206,5 +206,5 @@
 			FILE * extras = fopen( libcfap | treep ? "../prelude/extras.cf" : CFA_LIBDIR "/extras.cf", "r" );
 			assertf( extras, "cannot open extras.cf\n" );
-			parse( extras, LinkageSpec::C );
+			parse( extras, LinkageSpec::BuiltinC );
 
 			if ( ! libcfap ) {
Index: src/tests/.expect/32/KRfunctions.txt
===================================================================
--- src/tests/.expect/32/KRfunctions.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/KRfunctions.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 signed int __f0__Fi_iPCii__1(signed int __a__i_1, const signed int *__b__PCi_1, signed int __c__i_1){
     __attribute__ ((unused)) signed int ___retval_f0__i_1;
Index: src/tests/.expect/32/attributes.txt
===================================================================
--- src/tests/.expect/32/attributes.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/attributes.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 signed int __la__Fi___1(){
     __attribute__ ((unused)) signed int ___retval_la__i_1;
Index: src/tests/.expect/32/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/32/declarationSpecifier.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/declarationSpecifier.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 volatile const signed short int __x1__CVs_1;
 static volatile const signed short int __x2__CVs_1;
@@ -701,10 +695,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
Index: src/tests/.expect/32/extension.txt
===================================================================
--- src/tests/.expect/32/extension.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/extension.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 __extension__ signed int __a__i_1;
 __extension__ signed int __b__i_1;
Index: src/tests/.expect/32/gccExtensions.txt
===================================================================
--- src/tests/.expect/32/gccExtensions.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/gccExtensions.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 extern signed int __x__i_1 asm ( "xx" );
 signed int __main__Fi_iPPCc__1(signed int __argc__i_1, const char **__argv__PPCc_1){
@@ -174,10 +168,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
Index: src/tests/.expect/32/literals.txt
===================================================================
--- src/tests/.expect/32/literals.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/32/literals.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 void __for_each__A0_2_0_0____operator_assign__PFd0_Rd0d0____constructor__PF_Rd0____constructor__PF_Rd0d0____destructor__PF_Rd0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_preincr__PFd0_Rd0____operator_predecr__PFd0_Rd0____operator_equal__PFi_d0d0____operator_notequal__PFi_d0d0____operator_deref__PFRd1_d0__F_d0d0PF_d1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object0)(), void *__anonymous_object1), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object2)(), void *__anonymous_object3), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object4)(), void *__anonymous_object5, void *__anonymous_object6), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object7)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object8), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object9)(), void *__anonymous_object10, void *__anonymous_object11), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object12)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object13, void *__anonymous_object14), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object15)(), void *__anonymous_object16, void *__anonymous_object17), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object18)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object19, void *__anonymous_object20), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object23), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object24, void *__anonymous_object25), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object26), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object27, void *__anonymous_object28), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object29), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object30, void *__anonymous_object31), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object32), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object33), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object34), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object35, void *__anonymous_object36), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object39), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object40));
 void __for_each_reverse__A0_2_0_0____operator_assign__PFd0_Rd0d0____constructor__PF_Rd0____constructor__PF_Rd0d0____destructor__PF_Rd0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_preincr__PFd0_Rd0____operator_predecr__PFd0_Rd0____operator_equal__PFi_d0d0____operator_notequal__PFi_d0d0____operator_deref__PFRd1_d0__F_d0d0PF_d1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object41)(), void *__anonymous_object42), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object43)(), void *__anonymous_object44), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object45)(), void *__anonymous_object46, void *__anonymous_object47), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object48)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object56)(), void *__anonymous_object57, void *__anonymous_object58), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object59)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object60, void *__anonymous_object61), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object62, void *__anonymous_object63), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object64), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object67), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object70), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object73), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object74), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object75), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object78, void *__anonymous_object79), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object80), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object81));
@@ -1377,10 +1371,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi___1(); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
Index: src/tests/.expect/64/KRfunctions.txt
===================================================================
--- src/tests/.expect/64/KRfunctions.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/KRfunctions.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 signed int __f0__Fi_iPCii__1(signed int __a__i_1, const signed int *__b__PCi_1, signed int __c__i_1){
     __attribute__ ((unused)) signed int ___retval_f0__i_1;
Index: src/tests/.expect/64/attributes.txt
===================================================================
--- src/tests/.expect/64/attributes.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/attributes.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 signed int __la__Fi___1(){
     __attribute__ ((unused)) signed int ___retval_la__i_1;
Index: src/tests/.expect/64/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/64/declarationSpecifier.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/declarationSpecifier.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 volatile const signed short int __x1__CVs_1;
 static volatile const signed short int __x2__CVs_1;
@@ -701,10 +695,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
Index: src/tests/.expect/64/extension.txt
===================================================================
--- src/tests/.expect/64/extension.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/extension.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 __extension__ signed int __a__i_1;
 __extension__ signed int __b__i_1;
Index: src/tests/.expect/64/gccExtensions.txt
===================================================================
--- src/tests/.expect/64/gccExtensions.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/gccExtensions.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 extern signed int __x__i_1 asm ( "xx" );
 signed int __main__Fi_iPPCc__1(signed int __argc__i_1, const char **__argv__PPCc_1){
@@ -174,10 +168,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
Index: src/tests/.expect/64/literals.txt
===================================================================
--- src/tests/.expect/64/literals.txt	(revision 65d6de41c2c09d23085e6895805b2ec79ad9c1af)
+++ src/tests/.expect/64/literals.txt	(revision 9e1eabcd0b1110ea5a76cdd8b2b483675b207071)
@@ -1,8 +1,2 @@
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 void __for_each__A0_2_0_0____operator_assign__PFd0_Rd0d0____constructor__PF_Rd0____constructor__PF_Rd0d0____destructor__PF_Rd0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_preincr__PFd0_Rd0____operator_predecr__PFd0_Rd0____operator_equal__PFi_d0d0____operator_notequal__PFi_d0d0____operator_deref__PFRd1_d0__F_d0d0PF_d1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object0)(), void *__anonymous_object1), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object2)(), void *__anonymous_object3), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object4)(), void *__anonymous_object5, void *__anonymous_object6), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object7)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object8), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object9)(), void *__anonymous_object10, void *__anonymous_object11), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object12)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object13, void *__anonymous_object14), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object15)(), void *__anonymous_object16, void *__anonymous_object17), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object18)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object19, void *__anonymous_object20), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object21, void *__anonymous_object22), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object23), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object24, void *__anonymous_object25), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object26), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object27, void *__anonymous_object28), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object29), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object30, void *__anonymous_object31), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object32), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object33), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object34), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object35, void *__anonymous_object36), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object37, void *__anonymous_object38), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object39), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object40));
 void __for_each_reverse__A0_2_0_0____operator_assign__PFd0_Rd0d0____constructor__PF_Rd0____constructor__PF_Rd0d0____destructor__PF_Rd0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_preincr__PFd0_Rd0____operator_predecr__PFd0_Rd0____operator_equal__PFi_d0d0____operator_notequal__PFi_d0d0____operator_deref__PFRd1_d0__F_d0d0PF_d1___1(__attribute__ ((unused)) void (*_adapterF_9telt_type__P)(void (*__anonymous_object41)(), void *__anonymous_object42), __attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object43)(), void *__anonymous_object44), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object45)(), void *__anonymous_object46, void *__anonymous_object47), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object48)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object49), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object50)(), void *__anonymous_object51, void *__anonymous_object52), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object53)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object54, void *__anonymous_object55), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object56)(), void *__anonymous_object57, void *__anonymous_object58), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object59)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object60, void *__anonymous_object61), __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object62, void *__anonymous_object63), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object64), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object65, void *__anonymous_object66), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object67), __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object68, void *__anonymous_object69), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object70), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object71, void *__anonymous_object72), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object73), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object74), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object75), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object76, void *__anonymous_object77), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object78, void *__anonymous_object79), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object80), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void (*__func__PF_9telt_type__1)(void *__anonymous_object81));
@@ -1377,10 +1371,4 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi___1(); }
-__attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(unsigned long int __size);
-__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void);
-__attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern signed int atexit(void (*__func)(void));
-__attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(signed int __status);
-extern signed int printf(const char *__restrict __format, ...);
 static inline signed int invoke_main(signed int argc, char **argv, char **envp);
 signed int main(signed int __argc__i_1, char **__argv__PPc_1, char **__envp__PPc_1){
