Index: src/AST/Convert.cpp
===================================================================
--- src/AST/Convert.cpp	(revision 1cf2a9b7a3f180ec910613bc77e88822c3ec0752)
+++ src/AST/Convert.cpp	(revision 8ff586c75c5393ffce4e017d45e811a1466704c6)
@@ -20,4 +20,5 @@
 
 #include "AST/Attribute.hpp"
+#include "AST/Copy.hpp"
 #include "AST/Decl.hpp"
 #include "AST/Expr.hpp"
@@ -990,6 +991,11 @@
 
 	const ast::Expr * visit( const ast::StmtExpr * node ) override final {
+		auto stmts = node->stmts;
+		// disable sharing between multiple StmtExprs explicitly.
+		if (inCache(stmts)) {
+			stmts = ast::deepCopy(stmts.get());
+		}
 		auto rslt = new StmtExpr(
-			get<CompoundStmt>().accept1(node->stmts)
+			get<CompoundStmt>().accept1(stmts)
 		);
 
