Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision f988834af650698a46072a2a91bb190224a866bd)
+++ src/Parser/ExpressionNode.cc	(revision 71b5aad58696e7080180f82a1dd2c772721ae91d)
@@ -673,6 +673,6 @@
 		ast::LogicalFlag flag ) {
 	return new ast::LogicalExpr( location,
-		notZeroExpr( maybeMoveBuild( expr_node1 ) ),
-		notZeroExpr( maybeMoveBuild( expr_node2 ) ),
+		maybeMoveBuild( expr_node1 ),
+		maybeMoveBuild( expr_node2 ),
 		flag
 	);
@@ -713,5 +713,5 @@
 		ExpressionNode * expr_node3 ) {
 	return new ast::ConditionalExpr( location,
-		notZeroExpr( maybeMoveBuild( expr_node1 ) ),
+		maybeMoveBuild( expr_node1 ),
 		maybeMoveBuild( expr_node2 ),
 		maybeMoveBuild( expr_node3 )
Index: src/Parser/parserutility.cc
===================================================================
--- src/Parser/parserutility.cc	(revision f988834af650698a46072a2a91bb190224a866bd)
+++ src/Parser/parserutility.cc	(revision 71b5aad58696e7080180f82a1dd2c772721ae91d)
@@ -27,5 +27,5 @@
 //    if ( (int)(x != 0) ) ...
 
-ast::Expr * notZeroExpr( ast::Expr * orig ) {
+ast::Expr * notZeroExpr( const ast::Expr * orig ) {
 	return ( !orig ) ? nullptr : new ast::CastExpr( orig->location,
 		ast::UntypedExpr::createCall( orig->location,
Index: src/Parser/parserutility.h
===================================================================
--- src/Parser/parserutility.h	(revision f988834af650698a46072a2a91bb190224a866bd)
+++ src/Parser/parserutility.h	(revision 71b5aad58696e7080180f82a1dd2c772721ae91d)
@@ -21,5 +21,5 @@
 }
 
-ast::Expr * notZeroExpr( ast::Expr *orig );
+ast::Expr * notZeroExpr( const ast::Expr *orig );
 
 template< typename T >
