summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mir/optimise.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mir/optimise.cpp b/src/mir/optimise.cpp
index d99c5b7c..fd8a9a48 100644
--- a/src/mir/optimise.cpp
+++ b/src/mir/optimise.cpp
@@ -17,6 +17,9 @@
#include <iomanip>
#include <trans/target.hpp>
+#include <hir/expr.hpp> // HACK
+
+
#define DUMP_BEFORE_ALL 1
#define DUMP_BEFORE_CONSTPROPAGATE 0
#define CHECK_AFTER_PASS 1
@@ -2939,6 +2942,9 @@ void MIR_OptimiseCrate(::HIR::Crate& crate, bool do_minimal_optimisation)
{
::MIR::OuterVisitor ov { crate, [do_minimal_optimisation](const auto& res, const auto& p, auto& expr, const auto& args, const auto& ty)
{
+ if( ! dynamic_cast<::HIR::ExprNode_Block*>(expr.get()) ) {
+ return ;
+ }
if( do_minimal_optimisation ) {
MIR_OptimiseMin(res, p, *expr.m_mir, args, ty);
}