Index: src/InitTweak/FixGlobalInit.cc
===================================================================
--- src/InitTweak/FixGlobalInit.cc	(revision 0db6fc0e30a15a277876f071902c2fced6294c93)
+++ src/InitTweak/FixGlobalInit.cc	(revision c81ebf924fb91ca84affb100df945a8a6441e956)
@@ -129,10 +129,10 @@
 
 	// only modify global variables
-	void GlobalFixer::visit( FunctionDecl *functionDecl ) {}
-	void GlobalFixer::visit( StructDecl *aggregateDecl ) {}
-	void GlobalFixer::visit( UnionDecl *aggregateDecl ) {}
-	void GlobalFixer::visit( EnumDecl *aggregateDecl ) {}
-	void GlobalFixer::visit( TraitDecl *aggregateDecl ) {}
-	void GlobalFixer::visit( TypeDecl *typeDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) FunctionDecl *functionDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) StructDecl *aggregateDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) UnionDecl *aggregateDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) EnumDecl *aggregateDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) TraitDecl *aggregateDecl ) {}
+	void GlobalFixer::visit( __attribute__((unused)) TypeDecl *typeDecl ) {}
 
 } // namespace InitTweak
Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision 0db6fc0e30a15a277876f071902c2fced6294c93)
+++ src/InitTweak/FixInit.cc	(revision c81ebf924fb91ca84affb100df945a8a6441e956)
@@ -110,5 +110,5 @@
 
 			// don't go into other functions
-			virtual void visit( FunctionDecl *decl ) override {}
+			virtual void visit( __attribute__((unused)) FunctionDecl *decl ) override {}
 
 		  protected:
Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision 0db6fc0e30a15a277876f071902c2fced6294c93)
+++ src/InitTweak/InitTweak.cc	(revision c81ebf924fb91ca84affb100df945a8a6441e956)
@@ -92,5 +92,5 @@
 		InitImpl( Initializer * init ) : init( init ) {}
 
-		virtual std::list< Expression * > next( std::list< Expression * > & indices ) {
+		virtual std::list< Expression * > next( __attribute((unused)) std::list< Expression * > & indices ) {
 			// this is wrong, but just a placeholder for now
 			// if ( ! flattened ) flatten( indices );
@@ -248,5 +248,5 @@
 	}
 
-	Statement * ExprImpl::buildListInit( UntypedExpr * dst, std::list< Expression * > & indices ) {
+	Statement * ExprImpl::buildListInit( __attribute((unused)) UntypedExpr * dst, __attribute((unused)) std::list< Expression * > & indices ) {
 		return NULL;
 	}
@@ -475,6 +475,6 @@
 		ConstExprChecker() : isConstExpr( true ) {}
 
-		virtual void visit( ApplicationExpr *applicationExpr ) { isConstExpr = false; }
-		virtual void visit( UntypedExpr *untypedExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) ApplicationExpr *applicationExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) UntypedExpr *untypedExpr ) { isConstExpr = false; }
 		virtual void visit( NameExpr *nameExpr ) {
 			// xxx - temporary hack, because 0 and 1 really should be constexprs, even though they technically aren't in Cforall today
@@ -487,8 +487,8 @@
 			if ( ! dynamic_cast< NameExpr * >( arg) && ! dynamic_cast< VariableExpr * >( arg ) && ! dynamic_cast< MemberExpr * >( arg ) && ! dynamic_cast< UntypedMemberExpr * >( arg ) ) isConstExpr = false;
 		}
-		virtual void visit( LabelAddressExpr *labAddressExpr ) { isConstExpr = false; }
-		virtual void visit( UntypedMemberExpr *memberExpr ) { isConstExpr = false; }
-		virtual void visit( MemberExpr *memberExpr ) { isConstExpr = false; }
-		virtual void visit( VariableExpr *variableExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) LabelAddressExpr *labAddressExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) UntypedMemberExpr *memberExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) MemberExpr *memberExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) VariableExpr *variableExpr ) { isConstExpr = false; }
 		// these might be okay?
 		// virtual void visit( SizeofExpr *sizeofExpr );
@@ -501,11 +501,11 @@
 		// virtual void visit( LogicalExpr *logicalExpr );
 		// virtual void visit( ConditionalExpr *conditionalExpr );
-		virtual void visit( TypeExpr *typeExpr ) { isConstExpr = false; }
-		virtual void visit( AsmExpr *asmExpr ) { isConstExpr = false; }
-		virtual void visit( UntypedValofExpr *valofExpr ) { isConstExpr = false; }
-		virtual void visit( CompoundLiteralExpr *compLitExpr ) { isConstExpr = false; }
-		virtual void visit( UntypedTupleExpr *tupleExpr ) { isConstExpr = false; }
-		virtual void visit( TupleExpr *tupleExpr ) { isConstExpr = false; }
-		virtual void visit( TupleAssignExpr *tupleExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) TypeExpr *typeExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) AsmExpr *asmExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) UntypedValofExpr *valofExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) CompoundLiteralExpr *compLitExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) UntypedTupleExpr *tupleExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) TupleExpr *tupleExpr ) { isConstExpr = false; }
+		virtual void visit( __attribute((unused)) TupleAssignExpr *tupleExpr ) { isConstExpr = false; }
 
 		bool isConstExpr;
