diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc
index d48683b595eee03ea573486c5913257706d4f3da..ec54db444b72628cd00c49412a8067ab5e59c431 100644
--- a/src/macro/Expressions.cc
+++ b/src/macro/Expressions.cc
@@ -175,7 +175,7 @@ Real::logical_and(const BaseTypePtr &btp) const
 BoolPtr
 Real::logical_or(const BaseTypePtr &btp) const
 {
-  if (auto btp2 = dynamic_pointer_cast<Real>(btp); !btp2)
+  if (auto btp2 = dynamic_pointer_cast<Real>(btp); btp2)
     return make_shared<Bool>(value || *btp2, env);
 
   if (auto btp2 = dynamic_pointer_cast<Bool>(btp); btp2)