Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
+++ src/Parser/DeclarationNode.cc	(revision 60aa49a7be2cfe369ed612ced04b3e4327b9a1a1)
@@ -50,7 +50,7 @@
 	newnode->isInline = isInline;
 	newnode->isNoreturn = isNoreturn;
-	newnode->bitfieldWidth = bitfieldWidth;
+	newnode->bitfieldWidth = maybeClone( bitfieldWidth );
 	newnode->hasEllipsis = hasEllipsis;
-	newnode->initializer = initializer;
+	newnode->initializer = maybeClone( initializer );
 	newnode->set_next( maybeClone( get_next() ) );
 	newnode->linkage = linkage;
@@ -804,4 +804,5 @@
 					*out++ = decl;
 				} // if
+				delete extr;
 			} // if
 			Declaration *decl = cur->build();
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
+++ src/Parser/ParseNode.h	(revision 60aa49a7be2cfe369ed612ced04b3e4327b9a1a1)
@@ -109,5 +109,5 @@
 	ExpressionNode( const ExpressionNode &other );
 	virtual ~ExpressionNode() {}
-	virtual ExpressionNode *clone() const { assert( false ); return nullptr; }
+	virtual ExpressionNode *clone() const { return expr ? new ExpressionNode( expr->clone() ) : nullptr; }
 
 	bool get_extension() const { return extension; }
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
+++ src/Parser/StatementNode.cc	(revision 60aa49a7be2cfe369ed612ced04b3e4327b9a1a1)
@@ -44,5 +44,5 @@
 			agg = decl;
 		} // if
-		stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) );
+		stmt.reset( new DeclStmt( noLabels, maybeMoveBuild< Declaration >(agg) ) );
 	} else {
 		assert( false );
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
+++ src/Parser/TypeData.cc	(revision 60aa49a7be2cfe369ed612ced04b3e4327b9a1a1)
@@ -182,5 +182,5 @@
 		break;
 	  case Array:
-		newtype->array->dimension = array->dimension;
+		newtype->array->dimension = maybeClone( array->dimension );
 		newtype->array->isVarLen = array->isVarLen;
 		newtype->array->isStatic = array->isStatic;
