summaryrefslogtreecommitdiff
path: root/src/mir/mir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mir/mir.cpp')
-rw-r--r--src/mir/mir.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/mir/mir.cpp b/src/mir/mir.cpp
index 22a05276..95ad81b3 100644
--- a/src/mir/mir.cpp
+++ b/src/mir/mir.cpp
@@ -161,14 +161,20 @@ namespace MIR {
os << j << " => bb" << e.targets[j] << ", ";
os << ")";
),
- (CallValue,
- os << "Call( " << e.ret_val << " = " << e.fcn_val << "( ";
- for(const auto& arg : e.args)
- os << arg << ", ";
- os << "), bb" << e.ret_block << ", bb" << e.panic_block << ")";
- ),
- (CallPath,
- os << "Call( " << e.ret_val << " = " << e.fcn_path << "( ";
+ (Call,
+ os << "Call( " << e.ret_val << " = ";
+ TU_MATCHA( (e.fcn), (e2),
+ (Value,
+ os << "(" << e2 << ")";
+ ),
+ (Path,
+ os << e2;
+ ),
+ (Intrinsic,
+ os << "\"" << e2 << "\"";
+ )
+ )
+ os << "( ";
for(const auto& arg : e.args)
os << arg << ", ";
os << "), bb" << e.ret_block << ", bb" << e.panic_block << ")";