Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision c19edd15735decafa879b4d91a601aead4397b7e)
+++ src/Parser/parser.yy	(revision ae2f2aec69994587af09cbc09f465b978bed879a)
@@ -56,4 +56,7 @@
 
 #include "SynTree/Attribute.h"     // for Attribute
+
+// lex uses __null in a boolean context, it's fine.
+#pragma GCC diagnostic ignored "-Wparentheses-equality"
 
 extern DeclarationNode * parseTree;
@@ -1240,5 +1243,5 @@
 		{
 			$$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse );
+			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
 		}
 	| WHILE '(' conditional_declaration ')' statement	%prec THEN
@@ -1251,5 +1254,5 @@
 		{
 			$$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse );
+			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
 		}
 	| DO statement WHILE '(' comma_expression ')' ';'
@@ -1262,5 +1265,5 @@
 		{
 			$$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), maybe_build_compound( $4 ) ) );
-			SemanticWarning( yylloc, Warning::SuperfluousElse );
+			SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
 		}
 	| FOR '(' for_control_expression_list ')' statement	%prec THEN
@@ -2394,5 +2397,5 @@
 	| ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}'
 	 	{
-			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 ) 
+			if ( $3->storageClasses.val != 0 || $3->type->qualifiers.val != 0 )
 			{ SemanticError( yylloc, "storage-class and CV qualifiers are not meaningful for enumeration constants, which are const." ); }
 
@@ -2841,5 +2844,5 @@
 			linkage = LinkageSpec::update( yylloc, linkage, $2 );
 		}
-	  up external_definition down 
+	  up external_definition down
 		{
 			linkage = linkageStack.top();
