diff options
Diffstat (limited to 'src/mir/mir.cpp')
-rw-r--r-- | src/mir/mir.cpp | 22 |
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 << ")"; |